From 4dbc0af031e876b38cfd96646dc0f0156a063d7f Mon Sep 17 00:00:00 2001 From: "Wang.Huan" Date: Wed, 12 Mar 2025 10:58:04 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8C=BB=E7=94=9F=E7=AB=99-=E6=9F=A5=E8=AF=A2?= =?UTF-8?q?=E8=AF=8A=E6=96=AD=E5=88=86=E7=B1=BB=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../IDoctorStationDiagnosisAppService.java | 8 +++ .../DoctorStationDiagnosisAppServiceImpl.java | 67 +++++++++++++------ .../impl/DoctorStationMainAppServiceImpl.java | 4 ++ .../DoctorStationDiagnosisController.java | 11 +++ .../dto/ConditionDefinitionBusinessClass.java | 34 ++++++++++ .../DoctorStationDiagnosisAppMapper.java | 13 ++++ .../DoctorStationDiagnosisAppMapper.xml | 21 ++++++ 7 files changed, 137 insertions(+), 21 deletions(-) create mode 100644 openhis-server/openhis-application/src/main/java/com/openhis/web/doctorstation/dto/ConditionDefinitionBusinessClass.java diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/doctorstation/appservice/IDoctorStationDiagnosisAppService.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/doctorstation/appservice/IDoctorStationDiagnosisAppService.java index 6ebb79b2..745d5cee 100644 --- a/openhis-server/openhis-application/src/main/java/com/openhis/web/doctorstation/appservice/IDoctorStationDiagnosisAppService.java +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/doctorstation/appservice/IDoctorStationDiagnosisAppService.java @@ -66,4 +66,12 @@ public interface IDoctorStationDiagnosisAppService { */ R saveDoctorDiagnosis(SaveDiagnosisParam saveDiagnosisParam); + /** + * 查询诊断定义业务分类数据 + * + * @param patientId 患者id + * @return 诊断定义业务分类数据 + */ + R getConditionDefinitionBusinessClass(Long patientId); + } diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/doctorstation/appservice/impl/DoctorStationDiagnosisAppServiceImpl.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/doctorstation/appservice/impl/DoctorStationDiagnosisAppServiceImpl.java index cb26ea67..8431a795 100644 --- a/openhis-server/openhis-application/src/main/java/com/openhis/web/doctorstation/appservice/impl/DoctorStationDiagnosisAppServiceImpl.java +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/doctorstation/appservice/impl/DoctorStationDiagnosisAppServiceImpl.java @@ -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 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 patientHistoryList = + doctorStationDiagnosisAppMapper.getPatientHistoryList(PublicationStatus.ACTIVE.getValue(), patientId); + this.handleConditionDefinitionMetadata(patientHistoryList); + conditionDefinitionBusinessClass.setPatientHistoryList(patientHistoryList); + // + + return R.ok(conditionDefinitionBusinessClass); + } + + /** + * 处理诊断定义元数据 + * + * @param conditionDefinitionMetadataList 诊断定义元数据集合 + */ + private void handleConditionDefinitionMetadata(List 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())); + }); + } + } diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/doctorstation/appservice/impl/DoctorStationMainAppServiceImpl.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/doctorstation/appservice/impl/DoctorStationMainAppServiceImpl.java index 3d520804..29a64b7b 100644 --- a/openhis-server/openhis-application/src/main/java/com/openhis/web/doctorstation/appservice/impl/DoctorStationMainAppServiceImpl.java +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/doctorstation/appservice/impl/DoctorStationMainAppServiceImpl.java @@ -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 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 patientInfo = doctorStationMainAppMapper.getPatientInfo(new Page<>(pageNo, pageSize), ParticipantType.ADMITTER.getCode(), ClinicalStatus.INACTIVE.getValue(), null, null, queryWrapper); patientInfo.getRecords().forEach(e -> { diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/doctorstation/controller/DoctorStationDiagnosisController.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/doctorstation/controller/DoctorStationDiagnosisController.java index 239cfc76..e0607259 100644 --- a/openhis-server/openhis-application/src/main/java/com/openhis/web/doctorstation/controller/DoctorStationDiagnosisController.java +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/doctorstation/controller/DoctorStationDiagnosisController.java @@ -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); + } + } diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/doctorstation/dto/ConditionDefinitionBusinessClass.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/doctorstation/dto/ConditionDefinitionBusinessClass.java new file mode 100644 index 00000000..68852385 --- /dev/null +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/doctorstation/dto/ConditionDefinitionBusinessClass.java @@ -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 patientHistoryList; + + /** + * 医生常用诊断 + */ + List doctorCommonUseList; + + /** + * 用户个人诊断 + */ + List userPersonalList; + + /** + * 科室诊断 + */ + List organizationList; +} diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/doctorstation/mapper/DoctorStationDiagnosisAppMapper.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/doctorstation/mapper/DoctorStationDiagnosisAppMapper.java index aab9a673..b19c6d45 100644 --- a/openhis-server/openhis-application/src/main/java/com/openhis/web/doctorstation/mapper/DoctorStationDiagnosisAppMapper.java +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/doctorstation/mapper/DoctorStationDiagnosisAppMapper.java @@ -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 queryWrapper); + /** + * 查询病人历史诊断 + * + * @param statusEnum 状态 + * @param patientId 患者id + * @return 病人历史诊断 + */ + List getPatientHistoryList(@Param("statusEnum") Integer statusEnum, + @Param("patientId") Long patientId); + } diff --git a/openhis-server/openhis-application/src/main/resources/mapper/doctorstation/DoctorStationDiagnosisAppMapper.xml b/openhis-server/openhis-application/src/main/resources/mapper/doctorstation/DoctorStationDiagnosisAppMapper.xml index 02260247..2f5037e3 100644 --- a/openhis-server/openhis-application/src/main/resources/mapper/doctorstation/DoctorStationDiagnosisAppMapper.xml +++ b/openhis-server/openhis-application/src/main/resources/mapper/doctorstation/DoctorStationDiagnosisAppMapper.xml @@ -37,4 +37,25 @@ ${ew.customSqlSegment} + + \ No newline at end of file