医生站-查询诊断分类数据
This commit is contained in:
@@ -66,4 +66,12 @@ public interface IDoctorStationDiagnosisAppService {
|
||||
*/
|
||||
R<?> saveDoctorDiagnosis(SaveDiagnosisParam saveDiagnosisParam);
|
||||
|
||||
/**
|
||||
* 查询诊断定义业务分类数据
|
||||
*
|
||||
* @param patientId 患者id
|
||||
* @return 诊断定义业务分类数据
|
||||
*/
|
||||
R<?> getConditionDefinitionBusinessClass(Long patientId);
|
||||
|
||||
}
|
||||
|
||||
@@ -33,10 +33,7 @@ import com.openhis.common.utils.EnumUtils;
|
||||
import com.openhis.common.utils.HisPageUtils;
|
||||
import com.openhis.common.utils.HisQueryUtils;
|
||||
import com.openhis.web.doctorstation.appservice.IDoctorStationDiagnosisAppService;
|
||||
import com.openhis.web.doctorstation.dto.ConditionDefinitionMetadata;
|
||||
import com.openhis.web.doctorstation.dto.DiagnosisBelongBindingDto;
|
||||
import com.openhis.web.doctorstation.dto.SaveDiagnosisChildParam;
|
||||
import com.openhis.web.doctorstation.dto.SaveDiagnosisParam;
|
||||
import com.openhis.web.doctorstation.dto.*;
|
||||
import com.openhis.web.doctorstation.mapper.DoctorStationDiagnosisAppMapper;
|
||||
|
||||
/**
|
||||
@@ -165,22 +162,7 @@ public class DoctorStationDiagnosisAppServiceImpl implements IDoctorStationDiagn
|
||||
// 诊断信息
|
||||
Page<ConditionDefinitionMetadata> conditionDefinitionMetadataPage = HisPageUtils
|
||||
.selectPage(conditionDefinitionMapper, queryWrapper, pageNo, pageSize, ConditionDefinitionMetadata.class);
|
||||
conditionDefinitionMetadataPage.getRecords().forEach(e -> {
|
||||
// 所属分类
|
||||
e.setSourceEnum_enumText(EnumUtils.getInfoByValue(ConditionDefinitionSource.class, e.getSourceEnum()));
|
||||
// 中医诊断/西医诊断
|
||||
if (ConditionDefinitionSource.TRADITIONAL_CHINESE_MEDICINE_DIAGNOSIS.getValue().equals(e.getSourceEnum())
|
||||
|| ConditionDefinitionSource.TRADITIONAL_CHINESE_MEDICINE_SYNDROME_CATALOG.getValue()
|
||||
.equals(e.getSourceEnum())) {
|
||||
e.setTypeName(CommonConstants.BusinessName.TCM_DIAGNOSIS);
|
||||
} else {
|
||||
e.setTypeName(CommonConstants.BusinessName.WESTERN_MEDICINE_DIAGNOSIS);
|
||||
}
|
||||
// 医保标记
|
||||
e.setYbFlag_enumText(EnumUtils.getInfoByValue(WhetherContainUnknown.class, e.getYbFlag()));
|
||||
// 医保对码标记
|
||||
e.setYbMatchFlag_enumText(EnumUtils.getInfoByValue(WhetherContainUnknown.class, e.getYbMatchFlag()));
|
||||
});
|
||||
this.handleConditionDefinitionMetadata(conditionDefinitionMetadataPage.getRecords());
|
||||
return conditionDefinitionMetadataPage;
|
||||
}
|
||||
|
||||
@@ -219,8 +201,51 @@ public class DoctorStationDiagnosisAppServiceImpl implements IDoctorStationDiagn
|
||||
encounterDiagnosis.setMaindiseFlag(saveDiagnosisChildParam.getMaindiseFlag());
|
||||
iEncounterDiagnosisService.save(encounterDiagnosis);
|
||||
}
|
||||
|
||||
return R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00002, new Object[] {"诊断"}));
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询诊断定义业务分类数据
|
||||
*
|
||||
* @param patientId 患者id
|
||||
* @return 诊断定义业务分类数据
|
||||
*/
|
||||
@Override
|
||||
public R<?> getConditionDefinitionBusinessClass(Long patientId) {
|
||||
// 诊断定义业务分类信息
|
||||
ConditionDefinitionBusinessClass conditionDefinitionBusinessClass = new ConditionDefinitionBusinessClass();
|
||||
// 病人历史诊断
|
||||
List<ConditionDefinitionMetadata> patientHistoryList =
|
||||
doctorStationDiagnosisAppMapper.getPatientHistoryList(PublicationStatus.ACTIVE.getValue(), patientId);
|
||||
this.handleConditionDefinitionMetadata(patientHistoryList);
|
||||
conditionDefinitionBusinessClass.setPatientHistoryList(patientHistoryList);
|
||||
//
|
||||
|
||||
return R.ok(conditionDefinitionBusinessClass);
|
||||
}
|
||||
|
||||
/**
|
||||
* 处理诊断定义元数据
|
||||
*
|
||||
* @param conditionDefinitionMetadataList 诊断定义元数据集合
|
||||
*/
|
||||
private void handleConditionDefinitionMetadata(List<ConditionDefinitionMetadata> conditionDefinitionMetadataList) {
|
||||
conditionDefinitionMetadataList.forEach(e -> {
|
||||
// 所属分类
|
||||
e.setSourceEnum_enumText(EnumUtils.getInfoByValue(ConditionDefinitionSource.class, e.getSourceEnum()));
|
||||
// 中医诊断/西医诊断
|
||||
if (ConditionDefinitionSource.TRADITIONAL_CHINESE_MEDICINE_DIAGNOSIS.getValue().equals(e.getSourceEnum())
|
||||
|| ConditionDefinitionSource.TRADITIONAL_CHINESE_MEDICINE_SYNDROME_CATALOG.getValue()
|
||||
.equals(e.getSourceEnum())) {
|
||||
e.setTypeName(CommonConstants.BusinessName.TCM_DIAGNOSIS);
|
||||
} else {
|
||||
e.setTypeName(CommonConstants.BusinessName.WESTERN_MEDICINE_DIAGNOSIS);
|
||||
}
|
||||
// 医保标记
|
||||
e.setYbFlag_enumText(EnumUtils.getInfoByValue(WhetherContainUnknown.class, e.getYbFlag()));
|
||||
// 医保对码标记
|
||||
e.setYbMatchFlag_enumText(EnumUtils.getInfoByValue(WhetherContainUnknown.class, e.getYbMatchFlag()));
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -5,6 +5,7 @@ import java.util.HashSet;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
import com.core.common.utils.SecurityUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
@@ -49,6 +50,9 @@ public class DoctorStationMainAppServiceImpl implements IDoctorStationMainAppSer
|
||||
// 构建查询条件
|
||||
QueryWrapper<PatientInfoDto> queryWrapper = HisQueryUtils.buildQueryWrapper(patientInfoDto, searchKey,
|
||||
new HashSet<>(Arrays.asList("patient_name", "id_card", "phone")), null);
|
||||
// TODO: userId(当前登录账号ID) 和 currentUserOrganizationId(当前登录账号所属的科室ID) 待补充
|
||||
// 当前登录账号ID
|
||||
Long userId = SecurityUtils.getLoginUser().getUserId();
|
||||
IPage<PatientInfoDto> patientInfo = doctorStationMainAppMapper.getPatientInfo(new Page<>(pageNo, pageSize),
|
||||
ParticipantType.ADMITTER.getCode(), ClinicalStatus.INACTIVE.getValue(), null, null, queryWrapper);
|
||||
patientInfo.getRecords().forEach(e -> {
|
||||
|
||||
@@ -137,4 +137,15 @@ public class DoctorStationDiagnosisController {
|
||||
return iDoctorStationDiagnosisAppService.saveDoctorDiagnosis(saveDiagnosisParam);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询诊断定义业务分类数据
|
||||
*
|
||||
* @param patientId 患者id
|
||||
* @return 诊断定义业务分类数据
|
||||
*/
|
||||
@GetMapping(value = "/get-condition-definition-class")
|
||||
public R<?> getConditionDefinitionBusinessClass(@RequestParam Long patientId) {
|
||||
return iDoctorStationDiagnosisAppService.getConditionDefinitionBusinessClass(patientId);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,34 @@
|
||||
package com.openhis.web.doctorstation.dto;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
/**
|
||||
* 诊断定义 业务分类
|
||||
*/
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
public class ConditionDefinitionBusinessClass {
|
||||
|
||||
/**
|
||||
* 病人历史诊断
|
||||
*/
|
||||
List<ConditionDefinitionMetadata> patientHistoryList;
|
||||
|
||||
/**
|
||||
* 医生常用诊断
|
||||
*/
|
||||
List<ConditionDefinitionMetadata> doctorCommonUseList;
|
||||
|
||||
/**
|
||||
* 用户个人诊断
|
||||
*/
|
||||
List<ConditionDefinitionMetadata> userPersonalList;
|
||||
|
||||
/**
|
||||
* 科室诊断
|
||||
*/
|
||||
List<ConditionDefinitionMetadata> organizationList;
|
||||
}
|
||||
@@ -1,5 +1,7 @@
|
||||
package com.openhis.web.doctorstation.mapper;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
@@ -7,6 +9,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Constants;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.openhis.web.doctorstation.dto.ConditionDefinitionMetadata;
|
||||
import com.openhis.web.doctorstation.dto.DiagnosisBelongBindingDto;
|
||||
|
||||
/**
|
||||
@@ -28,4 +31,14 @@ public interface DoctorStationDiagnosisAppMapper {
|
||||
@Param("bindingType1") Integer bindingType1, @Param("bindingType2") Integer bindingType2,
|
||||
@Param(Constants.WRAPPER) QueryWrapper<DiagnosisBelongBindingDto> queryWrapper);
|
||||
|
||||
/**
|
||||
* 查询病人历史诊断
|
||||
*
|
||||
* @param statusEnum 状态
|
||||
* @param patientId 患者id
|
||||
* @return 病人历史诊断
|
||||
*/
|
||||
List<ConditionDefinitionMetadata> getPatientHistoryList(@Param("statusEnum") Integer statusEnum,
|
||||
@Param("patientId") Long patientId);
|
||||
|
||||
}
|
||||
|
||||
@@ -37,4 +37,25 @@
|
||||
${ew.customSqlSegment}
|
||||
</select>
|
||||
|
||||
<select id="getPatientHistoryList" resultType="com.openhis.web.doctorstation.dto.ConditionDefinitionMetadata">
|
||||
SELECT T1.ID,
|
||||
T1.source_enum,
|
||||
T1.condition_code,
|
||||
T1.NAME,
|
||||
T1.yb_flag,
|
||||
T1.yb_no,
|
||||
T1.yb_match_flag
|
||||
FROM cli_condition_definition AS T1
|
||||
WHERE T1.delete_flag = '0'
|
||||
AND T1.status_enum = #{statusEnum}
|
||||
AND EXISTS(
|
||||
SELECT 1
|
||||
FROM cli_condition AS T2
|
||||
WHERE T2.delete_flag = '0'
|
||||
AND T2.definition_id IS NOT NULL
|
||||
AND T2.patient_id = #{patientId}
|
||||
AND T2.definition_id = T1.ID
|
||||
)
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
Reference in New Issue
Block a user