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 ff1163c2..6ebb79b2 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 @@ -1,7 +1,10 @@ package com.openhis.web.doctorstation.appservice; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.core.common.core.domain.R; +import com.openhis.web.doctorstation.dto.ConditionDefinitionMetadata; import com.openhis.web.doctorstation.dto.DiagnosisBelongBindingDto; +import com.openhis.web.doctorstation.dto.SaveDiagnosisParam; /** * 医生站-诊断 应用Service @@ -44,4 +47,23 @@ public interface IDoctorStationDiagnosisAppService { */ R delDiagnosisBelongBinding(Long id); + /** + * 查询诊断信息 + * + * @param searchKey 模糊查询关键字 + * @param pageNo 当前页 + * @param pageSize 每页多少条 + * @return 诊断信息 + */ + Page getConditionDefinitionMetadataSearchKey(String searchKey, Integer pageNo, + Integer pageSize); + + /** + * 医生保存诊断 + * + * @param saveDiagnosisParam 诊断信息 + * @return 结果 + */ + R saveDoctorDiagnosis(SaveDiagnosisParam saveDiagnosisParam); + } 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 fa598ac5..cb26ea67 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 @@ -2,6 +2,7 @@ package com.openhis.web.doctorstation.appservice.impl; import java.util.Arrays; import java.util.HashSet; +import java.util.List; import javax.annotation.Resource; @@ -14,14 +15,28 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.core.common.core.domain.R; import com.core.common.utils.MessageUtils; +import com.openhis.administration.domain.EncounterDiagnosis; +import com.openhis.administration.service.IEncounterDiagnosisService; +import com.openhis.clinical.domain.Condition; +import com.openhis.clinical.domain.ConditionDefinition; import com.openhis.clinical.domain.DiagnosisBelongBinding; +import com.openhis.clinical.mapper.ConditionDefinitionMapper; +import com.openhis.clinical.service.IConditionService; import com.openhis.clinical.service.IDiagnosisBelongBindingService; +import com.openhis.common.constant.CommonConstants; import com.openhis.common.constant.PromptMsgConstant; import com.openhis.common.enums.BindingType; +import com.openhis.common.enums.ConditionDefinitionSource; +import com.openhis.common.enums.PublicationStatus; +import com.openhis.common.enums.WhetherContainUnknown; 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.mapper.DoctorStationDiagnosisAppMapper; /** @@ -36,6 +51,15 @@ public class DoctorStationDiagnosisAppServiceImpl implements IDoctorStationDiagn @Resource DoctorStationDiagnosisAppMapper doctorStationDiagnosisAppMapper; + @Resource + ConditionDefinitionMapper conditionDefinitionMapper; + + @Resource + IConditionService iConditionService; + + @Resource + IEncounterDiagnosisService iEncounterDiagnosisService; + /** * 新增诊断归属绑定 * @@ -119,4 +143,84 @@ public class DoctorStationDiagnosisAppServiceImpl implements IDoctorStationDiagn : R.fail(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00006, null)); } + /** + * 查询诊断信息 + * + * @param searchKey 模糊查询关键字 + * @param pageNo 当前页 + * @param pageSize 每页多少条 + * @return 诊断信息 + */ + @Override + public Page getConditionDefinitionMetadataSearchKey(String searchKey, Integer pageNo, + Integer pageSize) { + // 构建查询条件 + ConditionDefinition conditionDefinition = new ConditionDefinition(); + // 查询状态是有效的 + conditionDefinition.setStatusEnum(PublicationStatus.ACTIVE.getValue()); + QueryWrapper queryWrapper = HisQueryUtils.buildQueryWrapper(conditionDefinition, searchKey, + new HashSet<>(Arrays.asList("name", "py_str", "wb_str")), null); + // 设置排序 + queryWrapper.orderByDesc("update_time"); + // 诊断信息 + 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())); + }); + return conditionDefinitionMetadataPage; + } + + /** + * 医生保存诊断 + * + * @param saveDiagnosisParam 诊断信息 + * @return 结果 + */ + @Override + public R saveDoctorDiagnosis(SaveDiagnosisParam saveDiagnosisParam) { + // 患者id + Long patientId = saveDiagnosisParam.getPatientId(); + // 就诊ID + Long encounterId = saveDiagnosisParam.getEncounterId(); + // 诊断定义集合 + List diagnosisChildList = saveDiagnosisParam.getDiagnosisChildList(); + // 保存诊断管理 + Condition condition; + for (SaveDiagnosisChildParam saveDiagnosisChildParam : diagnosisChildList) { + condition = new Condition(); + condition.setVerificationStatusEnum(saveDiagnosisChildParam.getVerificationStatusEnum()); + condition.setPatientId(patientId); + condition.setDefinitionId(saveDiagnosisChildParam.getDefinitionId()); + condition.setYbNo(saveDiagnosisChildParam.getYbNo()); + // 返回诊断id + Long conditionId = iConditionService.saveConditionByDoctor(condition); + saveDiagnosisChildParam.setConditionId(conditionId); + } + // 保存就诊诊断 + EncounterDiagnosis encounterDiagnosis; + for (SaveDiagnosisChildParam saveDiagnosisChildParam : diagnosisChildList) { + encounterDiagnosis = new EncounterDiagnosis(); + encounterDiagnosis.setEncounterId(encounterId); + encounterDiagnosis.setConditionId(saveDiagnosisChildParam.getConditionId()); + encounterDiagnosis.setMaindiseFlag(saveDiagnosisChildParam.getMaindiseFlag()); + iEncounterDiagnosisService.save(encounterDiagnosis); + } + + return R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00002, new Object[] {"诊断"})); + } + } 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 ff42f1a0..239cfc76 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 @@ -12,9 +12,11 @@ import org.springframework.web.bind.annotation.*; import com.core.common.core.domain.R; import com.openhis.common.enums.BindingType; +import com.openhis.common.enums.ConditionVerificationStatus; import com.openhis.web.doctorstation.appservice.IDoctorStationDiagnosisAppService; import com.openhis.web.doctorstation.dto.DiagnosisBelongBindingDto; import com.openhis.web.doctorstation.dto.DiagnosisBelongBindingInitDto; +import com.openhis.web.doctorstation.dto.SaveDiagnosisParam; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -31,7 +33,7 @@ public class DoctorStationDiagnosisController { private final IDoctorStationDiagnosisAppService iDoctorStationDiagnosisAppService; /** - * 诊断归属绑定基础数据 + * 诊断相关数据初始化 * * @return */ @@ -39,12 +41,20 @@ public class DoctorStationDiagnosisController { public R init() { DiagnosisBelongBindingInitDto diagnosisBelongBindingInitDto = new DiagnosisBelongBindingInitDto(); // 诊断绑定类型 - 用于维护诊断归属绑定关系 - List diagnosisBelongBindingOption = + List diagnosisBelongBindingOptions = Stream.of(BindingType.values()) .map(status -> new DiagnosisBelongBindingInitDto.DiagnosisBelongBindingOption(status.getValue(), status.getInfo())) .collect(Collectors.toList()); - diagnosisBelongBindingInitDto.setDiagnosisBelongBindingOptions(diagnosisBelongBindingOption); + diagnosisBelongBindingInitDto.setDiagnosisBelongBindingOptions(diagnosisBelongBindingOptions); + // 诊断验证状态 - 用于医生开诊断"疑似"的取值 + List verificationStatusOptions = + Stream.of(ConditionVerificationStatus.values()) + .map(status -> new DiagnosisBelongBindingInitDto.VerificationStatusOption(status.getValue(), + status.getInfo())) + .collect(Collectors.toList()); + diagnosisBelongBindingInitDto.setVerificationStatusOptions(verificationStatusOptions); + return R.ok(diagnosisBelongBindingInitDto); } @@ -100,4 +110,31 @@ public class DoctorStationDiagnosisController { return iDoctorStationDiagnosisAppService.delDiagnosisBelongBinding(id); } + /** + * 查询诊断定义列表 + * + * @param searchKey 模糊查询关键字 + * @param pageNo 当前页 + * @param pageSize 每页多少条 + * @return 诊断定义列表 + */ + @GetMapping(value = "/condition-definition-metadata") + public R getConditionDefinitionMetadata(@RequestParam(value = "searchKey", defaultValue = "") String searchKey, + @RequestParam(value = "pageNo", defaultValue = "1") Integer pageNo, + @RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize) { + return R + .ok(iDoctorStationDiagnosisAppService.getConditionDefinitionMetadataSearchKey(searchKey, pageNo, pageSize)); + } + + /** + * 医生保存诊断 + * + * @param saveDiagnosisParam 诊断信息 + * @return 结果 + */ + @PostMapping(value = "/save-doctor-diagnosis") + public R saveDoctorDiagnosis(@RequestBody SaveDiagnosisParam saveDiagnosisParam) { + return iDoctorStationDiagnosisAppService.saveDoctorDiagnosis(saveDiagnosisParam); + } + } diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/outpatientservice/dto/ConditionDefinitionMetadata.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/doctorstation/dto/ConditionDefinitionMetadata.java similarity index 73% rename from openhis-server/openhis-application/src/main/java/com/openhis/web/outpatientservice/dto/ConditionDefinitionMetadata.java rename to openhis-server/openhis-application/src/main/java/com/openhis/web/doctorstation/dto/ConditionDefinitionMetadata.java index cbc7ce8b..a2ced011 100644 --- a/openhis-server/openhis-application/src/main/java/com/openhis/web/outpatientservice/dto/ConditionDefinitionMetadata.java +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/doctorstation/dto/ConditionDefinitionMetadata.java @@ -1,4 +1,4 @@ -package com.openhis.web.outpatientservice.dto; +package com.openhis.web.doctorstation.dto; import com.fasterxml.jackson.databind.annotation.JsonSerialize; import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; @@ -7,7 +7,7 @@ import lombok.Data; import lombok.experimental.Accessors; /** - * 诊断 元数据 + * 诊断定义 元数据 */ @Data @Accessors(chain = true) @@ -17,6 +17,10 @@ public class ConditionDefinitionMetadata { @JsonSerialize(using = ToStringSerializer.class) private Long id; + /** 所属分类 */ + private Integer sourceEnum; + private String sourceEnum_enumText; + /** 编码 */ private String conditionCode; @@ -34,4 +38,9 @@ public class ConditionDefinitionMetadata { private Integer ybMatchFlag; private String ybMatchFlag_enumText; + /** + * 诊断类型(中医诊断或西医诊断) + */ + private String typeName; + } diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/doctorstation/dto/DiagnosisBelongBindingInitDto.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/doctorstation/dto/DiagnosisBelongBindingInitDto.java index 6a91b008..ddfebdd2 100644 --- a/openhis-server/openhis-application/src/main/java/com/openhis/web/doctorstation/dto/DiagnosisBelongBindingInitDto.java +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/doctorstation/dto/DiagnosisBelongBindingInitDto.java @@ -13,6 +13,7 @@ import lombok.experimental.Accessors; public class DiagnosisBelongBindingInitDto { private List diagnosisBelongBindingOptions; + private List verificationStatusOptions; /** * 诊断绑定类型 - 用于维护诊断归属绑定关系 @@ -28,4 +29,18 @@ public class DiagnosisBelongBindingInitDto { } } + /** + * 诊断验证状态 - 用于医生开诊断"疑似"的取值 + */ + @Data + public static class VerificationStatusOption { + private Integer value; + private String label; + + public VerificationStatusOption(Integer value, String label) { + this.value = value; + this.label = label; + } + } + } diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/doctorstation/dto/SaveDiagnosisChildParam.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/doctorstation/dto/SaveDiagnosisChildParam.java new file mode 100644 index 00000000..2c030ee0 --- /dev/null +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/doctorstation/dto/SaveDiagnosisChildParam.java @@ -0,0 +1,45 @@ +package com.openhis.web.doctorstation.dto; + +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; + +import lombok.Data; +import lombok.experimental.Accessors; + +/** + * 保存诊断 子参数类 + * + * @author system + * @date 2025-02-20 + */ +@Data +@Accessors(chain = true) +public class SaveDiagnosisChildParam { + + /** + * 诊断定义id + */ + @JsonSerialize(using = ToStringSerializer.class) + private Long definitionId; + + /** + * 医保编码 + */ + private String ybNo; + + /** + * 验证状态 + */ + private Integer verificationStatusEnum; + + /** + * 主诊断标记 (1:是,0:否) + */ + private Integer maindiseFlag; + + /** + * 诊断ID - 用于存储 adm_encounter_diagnosis表 + */ + private Long conditionId; + +} diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/doctorstation/dto/SaveDiagnosisParam.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/doctorstation/dto/SaveDiagnosisParam.java new file mode 100644 index 00000000..9cefbd2b --- /dev/null +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/doctorstation/dto/SaveDiagnosisParam.java @@ -0,0 +1,39 @@ +package com.openhis.web.doctorstation.dto; + +import java.util.List; + +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; + +import lombok.Data; +import lombok.experimental.Accessors; + +/** + * 保存诊断 主参数类 + * + * @author system + * @date 2025-02-20 + */ +@Data +@Accessors(chain = true) +public class SaveDiagnosisParam { + + /** + * 患者id + */ + @JsonSerialize(using = ToStringSerializer.class) + private Long patientId; + + /** + * 就诊ID + */ + @JsonSerialize(using = ToStringSerializer.class) + private Long encounterId; + + /** + * 诊断子集合 + */ + private List diagnosisChildList; + + +} diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/outpatientservice/appservice/IOutpatientRegistrationAppService.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/outpatientservice/appservice/IOutpatientRegistrationAppService.java index 5b27cd47..12aa8a25 100644 --- a/openhis-server/openhis-application/src/main/java/com/openhis/web/outpatientservice/appservice/IOutpatientRegistrationAppService.java +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/outpatientservice/appservice/IOutpatientRegistrationAppService.java @@ -30,17 +30,6 @@ public interface IOutpatientRegistrationAppService { */ List getContractMetadata(); - /** - * 查询诊断信息 - * - * @param searchKey 模糊查询关键字 - * @param pageNo 当前页 - * @param pageSize 每页多少条 - * @return 诊断信息 - */ - Page getConditionDefinitionMetadataSearchKey(String searchKey, Integer pageNo, - Integer pageSize); - /** * 根据位置id筛选医生 * diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/outpatientservice/appservice/impl/OutpatientRegistrationAppServiceImpl.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/outpatientservice/appservice/impl/OutpatientRegistrationAppServiceImpl.java index 94cae88b..634b2283 100644 --- a/openhis-server/openhis-application/src/main/java/com/openhis/web/outpatientservice/appservice/impl/OutpatientRegistrationAppServiceImpl.java +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/outpatientservice/appservice/impl/OutpatientRegistrationAppServiceImpl.java @@ -20,8 +20,6 @@ import com.core.common.utils.bean.BeanUtils; import com.openhis.administration.domain.*; import com.openhis.administration.mapper.PatientMapper; import com.openhis.administration.service.*; -import com.openhis.clinical.domain.ConditionDefinition; -import com.openhis.clinical.mapper.ConditionDefinitionMapper; import com.openhis.common.constant.CommonConstants; import com.openhis.common.constant.PromptMsgConstant; import com.openhis.common.enums.*; @@ -49,9 +47,6 @@ public class OutpatientRegistrationAppServiceImpl implements IOutpatientRegistra @Resource ContractMapper contractMapper; - @Resource - ConditionDefinitionMapper conditionDefinitionMapper; - @Resource OutpatientRegistrationAppMapper outpatientRegistrationAppMapper; @@ -130,37 +125,6 @@ public class OutpatientRegistrationAppServiceImpl implements IOutpatientRegistra }).collect(Collectors.toList()); } - /** - * 查询诊断信息 - * - * @param searchKey 模糊查询关键字 - * @param pageNo 当前页 - * @param pageSize 每页多少条 - * @return 诊断信息 - */ - @Override - public Page getConditionDefinitionMetadataSearchKey(String searchKey, Integer pageNo, - Integer pageSize) { - // 构建查询条件 - ConditionDefinition conditionDefinition = new ConditionDefinition(); - // 查询状态是有效的 - conditionDefinition.setStatusEnum(PublicationStatus.ACTIVE.getValue()); - QueryWrapper queryWrapper = HisQueryUtils.buildQueryWrapper(conditionDefinition, searchKey, - new HashSet<>(Arrays.asList("name", "py_str", "wb_str")), null); - // 设置排序 - queryWrapper.orderByDesc("update_time"); - // 诊断信息 - Page conditionDefinitionMetadataPage = HisPageUtils - .selectPage(conditionDefinitionMapper, queryWrapper, pageNo, pageSize, ConditionDefinitionMetadata.class); - conditionDefinitionMetadataPage.getRecords().forEach(e -> { - // 医保标记 - e.setYbFlag_enumText(EnumUtils.getInfoByValue(WhetherContainUnknown.class, e.getYbFlag())); - // 医保对码标记 - e.setYbMatchFlag_enumText(EnumUtils.getInfoByValue(WhetherContainUnknown.class, e.getYbMatchFlag())); - }); - return conditionDefinitionMetadataPage; - } - /** * 根据位置id筛选医生 * diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/outpatientservice/controller/OutpatientRegistrationController.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/outpatientservice/controller/OutpatientRegistrationController.java index 9340f01b..1f8b1cae 100644 --- a/openhis-server/openhis-application/src/main/java/com/openhis/web/outpatientservice/controller/OutpatientRegistrationController.java +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/outpatientservice/controller/OutpatientRegistrationController.java @@ -74,17 +74,6 @@ public class OutpatientRegistrationController { return R.ok(iOutpatientRegistrationAppService.getContractMetadata()); } - /** - * 查询诊断信息 - */ - @GetMapping(value = "/condition-definition-metadata") - public R getConditionDefinitionMetadata(@RequestParam(value = "searchKey", defaultValue = "") String searchKey, - @RequestParam(value = "pageNo", defaultValue = "1") Integer pageNo, - @RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize) { - return R - .ok(iOutpatientRegistrationAppService.getConditionDefinitionMetadataSearchKey(searchKey, pageNo, pageSize)); - } - /** * 查询就诊位置 * diff --git a/openhis-server/openhis-common/src/main/java/com/openhis/common/constant/CommonConstants.java b/openhis-server/openhis-common/src/main/java/com/openhis/common/constant/CommonConstants.java index cd70d042..d98795ce 100644 --- a/openhis-server/openhis-common/src/main/java/com/openhis/common/constant/CommonConstants.java +++ b/openhis-server/openhis-common/src/main/java/com/openhis/common/constant/CommonConstants.java @@ -84,4 +84,20 @@ public class CommonConstants { String BusNo = "bus_no"; } + /** + * 业务常量 + */ + public interface BusinessName { + + /** + * 西医诊断 + */ + String WESTERN_MEDICINE_DIAGNOSIS = "西医诊断"; + + /** + * 中医诊断 + */ + String TCM_DIAGNOSIS = "中医诊断"; + } + } diff --git a/openhis-server/openhis-common/src/main/java/com/openhis/common/enums/ConditionVerificationStatus.java b/openhis-server/openhis-common/src/main/java/com/openhis/common/enums/ConditionVerificationStatus.java index 5db32bd5..c7d3f8ac 100644 --- a/openhis-server/openhis-common/src/main/java/com/openhis/common/enums/ConditionVerificationStatus.java +++ b/openhis-server/openhis-common/src/main/java/com/openhis/common/enums/ConditionVerificationStatus.java @@ -1,18 +1,27 @@ package com.openhis.common.enums; import com.baomidou.mybatisplus.annotation.EnumValue; + import lombok.AllArgsConstructor; import lombok.Getter; +/** + * 验证状态 + */ @Getter @AllArgsConstructor -public enum ConditionVerificationStatus { - UNCONFIRMED(1, "UNCONFIRMED", "未确诊The disease status is unconfirmed."), - PROVISIONAL(2, "PROVISIONAL", "疑似诊断The disease status is provisional."), - DIFFERENTIAL(3, "DIFFERENTIAL", "多个诊断选项之一The diagnosis is one of several possibilities."), - CONFIRMED(4, "CONFIRMED", "已确诊The disease status has been confirmed."), - REFUTED(5, "REFUTED", "已排除The disease status has been refuted."), - ENTERED_IN_ERROR(6, "ENTERED_IN_ERROR", "The disease status was entered in error."); +public enum ConditionVerificationStatus implements HisEnumInterface { + UNCONFIRMED(1, "UNCONFIRMED", "未确诊"), + + PROVISIONAL(2, "PROVISIONAL", "疑似"), + + DIFFERENTIAL(3, "DIFFERENTIAL", "有差异"), + + CONFIRMED(4, "CONFIRMED", "已确诊"), + + REFUTED(5, "REFUTED", "已排除"), + + ENTERED_IN_ERROR(6, "ENTERED_IN_ERROR", "未知"); @EnumValue private final Integer value; diff --git a/openhis-server/openhis-domain/src/main/java/com/openhis/administration/domain/EncounterDiagnosis.java b/openhis-server/openhis-domain/src/main/java/com/openhis/administration/domain/EncounterDiagnosis.java index 6c515eae..a88c6a89 100644 --- a/openhis-server/openhis-domain/src/main/java/com/openhis/administration/domain/EncounterDiagnosis.java +++ b/openhis-server/openhis-domain/src/main/java/com/openhis/administration/domain/EncounterDiagnosis.java @@ -1,13 +1,10 @@ package com.openhis.administration.domain; -import java.math.BigDecimal; -import java.util.Date; - import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; - import com.core.common.core.domain.HisBaseEntity; + import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; @@ -52,5 +49,4 @@ public class EncounterDiagnosis extends HisBaseEntity { /** 最高诊断依据标记 */ private Integer highDiseEvidFlag; - } \ No newline at end of file diff --git a/openhis-server/openhis-domain/src/main/java/com/openhis/clinical/domain/Condition.java b/openhis-server/openhis-domain/src/main/java/com/openhis/clinical/domain/Condition.java index 68d23ec2..06df7db3 100644 --- a/openhis-server/openhis-domain/src/main/java/com/openhis/clinical/domain/Condition.java +++ b/openhis-server/openhis-domain/src/main/java/com/openhis/clinical/domain/Condition.java @@ -1,17 +1,12 @@ package com.openhis.clinical.domain; -import java.math.BigDecimal; import java.util.Date; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; - import com.core.common.core.domain.HisBaseEntity; -import com.openhis.common.enums.ConditionCategory; -import com.openhis.common.enums.ConditionClinicalStatus; -import com.openhis.common.enums.ConditionSeverity; -import com.openhis.common.enums.ConditionVerificationStatus; + import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; @@ -33,16 +28,16 @@ public class Condition extends HisBaseEntity { private Long id; /** 验证状态 */ - private ConditionVerificationStatus verificationStatusEnum; + private Integer verificationStatusEnum; /** 临床特征 */ - private ConditionClinicalStatus clinicalStatusEnum; + private Integer clinicalStatusEnum; /** 分类 */ - private ConditionCategory categoryEnum; + private Integer categoryEnum; /** 严重程度 */ - private ConditionSeverity severityEnum; + private Integer severityEnum; /** 疾病或诊断编码 */ private String busNo; @@ -92,5 +87,7 @@ public class Condition extends HisBaseEntity { /** 医保编码 */ private String ybNo; + /** 诊断定义Id */ + private Long definitionId; } diff --git a/openhis-server/openhis-domain/src/main/java/com/openhis/clinical/service/IConditionService.java b/openhis-server/openhis-domain/src/main/java/com/openhis/clinical/service/IConditionService.java index 3c86f7d1..3a302a6e 100644 --- a/openhis-server/openhis-domain/src/main/java/com/openhis/clinical/service/IConditionService.java +++ b/openhis-server/openhis-domain/src/main/java/com/openhis/clinical/service/IConditionService.java @@ -11,4 +11,12 @@ import com.openhis.clinical.domain.Condition; */ public interface IConditionService extends IService { + /** + * 医生门诊就诊时保存诊断 + * + * @param condition 诊断信息 + * @return 主键ID + */ + Long saveConditionByDoctor(Condition condition); + } \ No newline at end of file diff --git a/openhis-server/openhis-domain/src/main/java/com/openhis/clinical/service/impl/ConditionServiceImpl.java b/openhis-server/openhis-domain/src/main/java/com/openhis/clinical/service/impl/ConditionServiceImpl.java index 6e3d6e6d..b5305067 100644 --- a/openhis-server/openhis-domain/src/main/java/com/openhis/clinical/service/impl/ConditionServiceImpl.java +++ b/openhis-server/openhis-domain/src/main/java/com/openhis/clinical/service/impl/ConditionServiceImpl.java @@ -1,8 +1,11 @@ package com.openhis.clinical.service.impl; +import java.util.Date; + import org.springframework.stereotype.Service; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.core.common.utils.SecurityUtils; import com.openhis.clinical.domain.Condition; import com.openhis.clinical.mapper.ConditionMapper; import com.openhis.clinical.service.IConditionService; @@ -16,4 +19,18 @@ import com.openhis.clinical.service.IConditionService; @Service public class ConditionServiceImpl extends ServiceImpl implements IConditionService { + /** + * 医生门诊就诊时保存诊断 + * + * @param condition 诊断信息 + * @return 主键ID + */ + @Override + public Long saveConditionByDoctor(Condition condition) { + condition.setRecordedDatetime(new Date()); + condition.setRecorderId(SecurityUtils.getLoginUser().getUserId()); + baseMapper.insert(condition); + return condition.getId(); + } + } \ No newline at end of file