diff --git a/virtual-patient-web/src/main/java/com/supervision/controller/DiagnoseHallController.java b/virtual-patient-web/src/main/java/com/supervision/controller/DiagnoseHallController.java index a09ca938..7badd484 100644 --- a/virtual-patient-web/src/main/java/com/supervision/controller/DiagnoseHallController.java +++ b/virtual-patient-web/src/main/java/com/supervision/controller/DiagnoseHallController.java @@ -26,6 +26,7 @@ public class DiagnoseHallController { private final DiagnoseHallService diagnoseHallService; @ApiOperation("获取问诊资源") + @GetMapping("achieveDiagnoseResource") public boolean achieveDiagnoseResource(){ return diagnoseHallService.achieveDiagnoseResource(); } diff --git a/virtual-patient-web/src/main/java/com/supervision/pojo/vo/BasisConfirmResultResVO.java b/virtual-patient-web/src/main/java/com/supervision/pojo/vo/BasisConfirmResultResVO.java index ea24b419..11df78e7 100644 --- a/virtual-patient-web/src/main/java/com/supervision/pojo/vo/BasisConfirmResultResVO.java +++ b/virtual-patient-web/src/main/java/com/supervision/pojo/vo/BasisConfirmResultResVO.java @@ -11,7 +11,7 @@ import java.util.List; public class BasisConfirmResultResVO { @ApiModelProperty("证实诊断依据") - private List confirmingDiagnosis; + private String confirmingDiagnosis; @ApiModelProperty("证实诊断列表") private List nodeList; diff --git a/virtual-patient-web/src/main/java/com/supervision/pojo/vo/BasisIdentificationResultResVO.java b/virtual-patient-web/src/main/java/com/supervision/pojo/vo/BasisIdentificationResultResVO.java index ce1b7b97..ab7a19b5 100644 --- a/virtual-patient-web/src/main/java/com/supervision/pojo/vo/BasisIdentificationResultResVO.java +++ b/virtual-patient-web/src/main/java/com/supervision/pojo/vo/BasisIdentificationResultResVO.java @@ -9,7 +9,7 @@ import java.util.List; public class BasisIdentificationResultResVO { @ApiModelProperty("证实诊断依据") - private List identificationDiagnosis; + private String identificationDiagnosis; @ApiModelProperty("证实诊断列表") private List nodeList; diff --git a/virtual-patient-web/src/main/java/com/supervision/pojo/vo/BasisPrimaryResultResVO.java b/virtual-patient-web/src/main/java/com/supervision/pojo/vo/BasisPrimaryResultResVO.java index e40ffae5..4db1127e 100644 --- a/virtual-patient-web/src/main/java/com/supervision/pojo/vo/BasisPrimaryResultResVO.java +++ b/virtual-patient-web/src/main/java/com/supervision/pojo/vo/BasisPrimaryResultResVO.java @@ -10,7 +10,7 @@ public class BasisPrimaryResultResVO { @ApiModelProperty("初步诊断依据-每一种病都有一种初步诊断依据-vp_disease疾病表中的preliminary_diagnosis") - private List preliminaryDiagnosis; + private String preliminaryDiagnosis; @ApiModelProperty("初步诊断依据列表-医生做的某些操作项,require_check=1") private List nodeList; diff --git a/virtual-patient-web/src/main/java/com/supervision/pojo/vo/ExpertDiagnosisResultResVO.java b/virtual-patient-web/src/main/java/com/supervision/pojo/vo/ExpertDiagnosisResultResVO.java index 5ea70cdb..320f23c3 100644 --- a/virtual-patient-web/src/main/java/com/supervision/pojo/vo/ExpertDiagnosisResultResVO.java +++ b/virtual-patient-web/src/main/java/com/supervision/pojo/vo/ExpertDiagnosisResultResVO.java @@ -13,7 +13,7 @@ import java.util.List; @ApiModel public class ExpertDiagnosisResultResVO { - @ApiModelProperty("诊断") + @ApiModelProperty("诊断/症状") private String diagnosis; @ApiModelProperty("用户诊断结果") diff --git a/virtual-patient-web/src/main/java/com/supervision/service/impl/AskDiagnosisResultServiceImpl.java b/virtual-patient-web/src/main/java/com/supervision/service/impl/AskDiagnosisResultServiceImpl.java index 7c61c025..6166d952 100644 --- a/virtual-patient-web/src/main/java/com/supervision/service/impl/AskDiagnosisResultServiceImpl.java +++ b/virtual-patient-web/src/main/java/com/supervision/service/impl/AskDiagnosisResultServiceImpl.java @@ -49,8 +49,7 @@ public class AskDiagnosisResultServiceImpl implements AskDiagnosisResultService private final TreatmentPlanRecordService treatmentPlanRecordService; - private final DiseaseTreatmentPlanService diseaseTreatmentPlanService; - + private final DiseaseTreatmentPlanService diseaseTreatmentPlanService; private final DiseaseTreatmentPlanDrugService diseaseTreatmentPlanDrugService; @@ -63,9 +62,9 @@ public class AskDiagnosisResultServiceImpl implements AskDiagnosisResultService // 最终诊断结果,从初步诊断中获取 List list = diagnosisPrimaryService.lambdaQuery() .eq(DiagnosisPrimary::getProcessId, reqVO.getProcessId()) - .eq(DiagnosisPrimary::getExcludeFlag,0) + .eq(DiagnosisPrimary::getExcludeFlag, 0) .list(); - if (CollectionUtil.isEmpty(list)){ + if (CollectionUtil.isEmpty(list)) { throw new BusinessException("您还未进行有效的初步诊断!"); } diagnosisResult.setFinalDiagnosis(list.stream().map(DiagnosisPrimary::getPrimaryDiagnosisId).collect(Collectors.toList())); @@ -73,7 +72,8 @@ public class AskDiagnosisResultServiceImpl implements AskDiagnosisResultService diagnosisResult.setTreatmentPlan(reqVO.getTreatmentPlan()); diagnosisResultService.save(diagnosisResult); - // todo:修改流程状态 + // 修改流程状态 + processService.lambdaUpdate().set(Process::getStatus, 2).eq(Process::getId, reqVO.getProcessId()).update(); } @Override @@ -90,11 +90,11 @@ public class AskDiagnosisResultServiceImpl implements AskDiagnosisResultService // 1.生成预期诊断结果 diagnosisResultResVO.setExpertDiagnosisResult(creatExpertDiagnosisResult(medicalRec, diagnosisResult, diseasesList)); // 2.生成初步诊断依据 - diagnosisResultResVO.setBasisPrimaryResultResVO(createBasisPrimaryResult(patient, processId, diseasesList)); + diagnosisResultResVO.setBasisPrimaryResultResVO(createBasisPrimaryResult(patient, medicalRec, process)); // 3.生成证实诊断依据 - diagnosisResultResVO.setBasisConfirmResultResVO(createBasisConfirmResult(processId, diseasesList)); + diagnosisResultResVO.setBasisConfirmResultResVO(createBasisConfirmResult(medicalRec, processId, diseasesList)); // 4.生成鉴别诊断依据 - diagnosisResultResVO.setBasisIdentificationResult(createBasisIdentificationResult(processId, diseasesList)); + diagnosisResultResVO.setBasisIdentificationResult(createBasisIdentificationResult(medicalRec,processId)); // 5.全面检查-(暂无相关数据) 后面再看 diagnosisResultResVO.setFullCheck(null); // 6.处置方案 @@ -108,7 +108,7 @@ public class AskDiagnosisResultServiceImpl implements AskDiagnosisResultService // 1. 查询处置计划记录 List treatmentPlanRecordList = treatmentPlanRecordService.lambdaQuery().eq(TreatmentPlanRecord::getProcessId, processId).list(); - if (CollectionUtil.isEmpty(treatmentPlanRecordList)){ + if (CollectionUtil.isEmpty(treatmentPlanRecordList)) { return dealPlanResVO; } @@ -127,9 +127,9 @@ public class AskDiagnosisResultServiceImpl implements AskDiagnosisResultService DealPlanResVO.TreatmentPlanResult bean = BeanUtil.toBean(treatmentPlanRecord, DealPlanResVO.TreatmentPlanResult.class); boolean flag = bean.getDisposalPlan().equals(1) ? drugIds.contains(bean.getDrugId()) : planIds.contains(bean.getTreatmentPlanId()); bean.setFlag(flag ? 1 : 0); - if (bean.getDisposalPlan().equals(1)){ + if (bean.getDisposalPlan().equals(1)) { drugTreatmentPlanResults.add(bean); - }else { + } else { otherTreatmentPlanResults.add(bean); } @@ -142,80 +142,80 @@ public class AskDiagnosisResultServiceImpl implements AskDiagnosisResultService } - private BasisIdentificationResultResVO createBasisIdentificationResult(String processId, List diseasesList) { + private BasisIdentificationResultResVO createBasisIdentificationResult(MedicalRec medicalRec,String processId) { BasisIdentificationResultResVO basisIdentificationResultResVO = new BasisIdentificationResultResVO(); - // todo : 由于修改了表结构,导致证实依据字段不存在。。。 - basisIdentificationResultResVO.setIdentificationDiagnosis(diseasesList.stream().map(e->"").collect(Collectors.toList())); + // 鉴别诊断依据,来自于medicalRec的DifferentialDiagnosisCriteria + basisIdentificationResultResVO.setIdentificationDiagnosis(medicalRec.getDifferentialDiagnosisCriteria()); // 2.2 获取体格检查 List physicalRecordList = diagnosisPhysicalRecordService.queryPhysicalResultByProcessId(processId); List nodeList = physicalRecordList.stream() .filter(distinctPredicateNotNull(PhysicalRecordByResultDAO::getToolLocationName)).map(e -> { - BasisDiagnosisNodeResVO nodeResVO = new BasisDiagnosisNodeResVO(); - nodeResVO.setType(1); - nodeResVO.setRecordName(e.getToolLocationName()); - nodeResVO.setRecordId(e.getRecordId()); - // 如果是必做的,则是正确 - nodeResVO.setCorrect(null == e.getBasisIdentification() ? Integer.valueOf(0) : e.getBasisIdentification()); - return nodeResVO; - }).collect(Collectors.toList()); + BasisDiagnosisNodeResVO nodeResVO = new BasisDiagnosisNodeResVO(); + nodeResVO.setType(1); + nodeResVO.setRecordName(e.getToolLocationName()); + nodeResVO.setRecordId(e.getRecordId()); + // 如果是必做的,则是正确 + nodeResVO.setCorrect(null == e.getBasisIdentification() ? Integer.valueOf(0) : e.getBasisIdentification()); + return nodeResVO; + }).collect(Collectors.toList()); // 2.3 获取辅助检查 List ancillaryRecordList = diagnosisAncillaryRecordService.queryAncillaryResultByProcessId(processId); List collect = ancillaryRecordList.stream() .filter(distinctPredicateNotNull(AncillaryRecordByResultDAO::getItemName)).map(e -> { - BasisDiagnosisNodeResVO nodeResVO = new BasisDiagnosisNodeResVO(); - nodeResVO.setCorrect(null == e.getBasisIdentification() ? Integer.valueOf(0) : e.getBasisIdentification()); - nodeResVO.setRecordId(e.getRecordId()); - nodeResVO.setRecordName(e.getItemName()); - nodeResVO.setType(2); - return nodeResVO; - }).collect(Collectors.toList()); + BasisDiagnosisNodeResVO nodeResVO = new BasisDiagnosisNodeResVO(); + nodeResVO.setCorrect(null == e.getBasisIdentification() ? Integer.valueOf(0) : e.getBasisIdentification()); + nodeResVO.setRecordId(e.getRecordId()); + nodeResVO.setRecordName(e.getItemName()); + nodeResVO.setType(2); + return nodeResVO; + }).collect(Collectors.toList()); nodeList.addAll(collect); basisIdentificationResultResVO.setNodeList(nodeList); return basisIdentificationResultResVO; } - private BasisConfirmResultResVO createBasisConfirmResult(String processId, List diseasesList) { + private BasisConfirmResultResVO createBasisConfirmResult(MedicalRec medicalRec, String processId, List diseasesList) { BasisConfirmResultResVO basisConfirmResultResVO = new BasisConfirmResultResVO(); - //todo: 由于修改了表结构,导致证实依据不存在.... - basisConfirmResultResVO.setConfirmingDiagnosis(diseasesList.stream().map(e->"").collect(Collectors.toList())); + // 正式诊断依据,来自于medicalRec的ConfirmDiagnosisCriteria + basisConfirmResultResVO.setConfirmingDiagnosis(medicalRec.getConfirmDiagnosisCriteria()); // 2.2 获取体格检查 List physicalRecordList = diagnosisPhysicalRecordService.queryPhysicalResultByProcessId(processId); List nodeList = physicalRecordList.stream() .filter(distinctPredicateNotNull(PhysicalRecordByResultDAO::getToolLocationName)).map(e -> { - BasisDiagnosisNodeResVO nodeResVO = new BasisDiagnosisNodeResVO(); - nodeResVO.setType(1); - nodeResVO.setRecordName(e.getToolLocationName()); - nodeResVO.setRecordId(e.getRecordId()); - // 如果是必做的,则是正确 - nodeResVO.setCorrect(null == e.getBasisConfirm() ? Integer.valueOf(0) : e.getBasisConfirm()); - return nodeResVO; - }).collect(Collectors.toList()); + BasisDiagnosisNodeResVO nodeResVO = new BasisDiagnosisNodeResVO(); + nodeResVO.setType(1); + nodeResVO.setRecordName(e.getToolLocationName()); + nodeResVO.setRecordId(e.getRecordId()); + // 如果是必做的,则是正确 + nodeResVO.setCorrect(null == e.getBasisConfirm() ? Integer.valueOf(0) : e.getBasisConfirm()); + return nodeResVO; + }).collect(Collectors.toList()); // 2.3 获取辅助检查 List ancillaryRecordList = diagnosisAncillaryRecordService.queryAncillaryResultByProcessId(processId); List collect = ancillaryRecordList.stream() .filter(distinctPredicateNotNull(AncillaryRecordByResultDAO::getItemName)).map(e -> { - BasisDiagnosisNodeResVO nodeResVO = new BasisDiagnosisNodeResVO(); - nodeResVO.setCorrect(null == e.getBasisConfirm() ? Integer.valueOf(0) : e.getBasisConfirm()); - nodeResVO.setRecordId(e.getRecordId()); - nodeResVO.setRecordName(e.getItemName()); - nodeResVO.setType(2); - return nodeResVO; - }).collect(Collectors.toList()); + BasisDiagnosisNodeResVO nodeResVO = new BasisDiagnosisNodeResVO(); + nodeResVO.setCorrect(null == e.getBasisConfirm() ? Integer.valueOf(0) : e.getBasisConfirm()); + nodeResVO.setRecordId(e.getRecordId()); + nodeResVO.setRecordName(e.getItemName()); + nodeResVO.setType(2); + return nodeResVO; + }).collect(Collectors.toList()); nodeList.addAll(collect); basisConfirmResultResVO.setNodeList(nodeList); return basisConfirmResultResVO; } - private BasisPrimaryResultResVO createBasisPrimaryResult(Patient patient, String processId, List diseasesList) { + private BasisPrimaryResultResVO createBasisPrimaryResult(Patient patient, MedicalRec medicalRec, Process process) { BasisPrimaryResultResVO basisPrimaryResultResVO = new BasisPrimaryResultResVO(); - //todo: 由于修改了表结构导致初步诊断不存在 - basisPrimaryResultResVO.setPreliminaryDiagnosis(diseasesList.stream().map(e->"").collect(Collectors.toList())); + // 初步诊断依据 vp_medical_rec的primarily_diagnosis_criteria + basisPrimaryResultResVO.setPreliminaryDiagnosis(medicalRec.getPrimarilyDiagnosisCriteria()); // 根据record记录寻找符合初步诊断依据的项目 // 2.1 首先获取对话 List basisDiagnosisNodeResVOS = new ArrayList<>(); - List qaRecordList = diagnosisQaRecordService.lambdaQuery().eq(DiagnosisQaRecord::getProcessId, processId).list(); + List qaRecordList = diagnosisQaRecordService.lambdaQuery().eq(DiagnosisQaRecord::getProcessId, process.getId()).list(); if (CollectionUtil.isNotEmpty(qaRecordList)) { List list = askPatientAnswerService.lambdaQuery() .eq(AskPatientAnswer::getPatientId, patient.getId()).list(); @@ -233,29 +233,29 @@ public class AskDiagnosisResultServiceImpl implements AskDiagnosisResultService basisDiagnosisNodeResVOS.addAll(qaList); } // 2.2 获取体格检查 - List physicalRecordList = diagnosisPhysicalRecordService.queryPhysicalResultByProcessId(processId); + List physicalRecordList = diagnosisPhysicalRecordService.queryPhysicalResultByProcessId(process.getId()); List physicalList = physicalRecordList.stream() .filter(distinctPredicateNotNull(PhysicalRecordByResultDAO::getToolLocationName)).map(e -> { - BasisDiagnosisNodeResVO nodeResVO = new BasisDiagnosisNodeResVO(); - nodeResVO.setType(1); - nodeResVO.setRecordName(e.getToolLocationName()); - nodeResVO.setRecordId(e.getRecordId()); - // 如果是必做的,则是正确 - nodeResVO.setCorrect(null == e.getRequireCheck() ? Integer.valueOf(0) : e.getRequireCheck()); - return nodeResVO; - }).collect(Collectors.toList()); + BasisDiagnosisNodeResVO nodeResVO = new BasisDiagnosisNodeResVO(); + nodeResVO.setType(1); + nodeResVO.setRecordName(e.getToolLocationName()); + nodeResVO.setRecordId(e.getRecordId()); + // 如果是必做的,则是正确 + nodeResVO.setCorrect(null == e.getRequireCheck() ? Integer.valueOf(0) : e.getRequireCheck()); + return nodeResVO; + }).collect(Collectors.toList()); basisDiagnosisNodeResVOS.addAll(physicalList); // 2.3 获取辅助检查 - List ancillaryRecordList = diagnosisAncillaryRecordService.queryAncillaryResultByProcessId(processId); + List ancillaryRecordList = diagnosisAncillaryRecordService.queryAncillaryResultByProcessId(process.getId()); List collect = ancillaryRecordList.stream() .filter(distinctPredicateNotNull(AncillaryRecordByResultDAO::getItemName)).map(e -> { - BasisDiagnosisNodeResVO nodeResVO = new BasisDiagnosisNodeResVO(); - nodeResVO.setCorrect(null == e.getRequireCheck() ? Integer.valueOf(0) : e.getRequireCheck()); - nodeResVO.setRecordId(e.getRecordId()); - nodeResVO.setRecordName(e.getItemName()); - nodeResVO.setType(2); - return nodeResVO; - }).collect(Collectors.toList()); + BasisDiagnosisNodeResVO nodeResVO = new BasisDiagnosisNodeResVO(); + nodeResVO.setCorrect(null == e.getRequireCheck() ? Integer.valueOf(0) : e.getRequireCheck()); + nodeResVO.setRecordId(e.getRecordId()); + nodeResVO.setRecordName(e.getItemName()); + nodeResVO.setType(2); + return nodeResVO; + }).collect(Collectors.toList()); basisDiagnosisNodeResVOS.addAll(collect); basisPrimaryResultResVO.setNodeList(basisDiagnosisNodeResVOS); @@ -268,7 +268,7 @@ public class AskDiagnosisResultServiceImpl implements AskDiagnosisResultService */ private ExpertDiagnosisResultResVO creatExpertDiagnosisResult(MedicalRec medicalRec, DiagnosisResult diagnosisResult, List diseasesList) { ExpertDiagnosisResultResVO expertDiagnosisResultResVO = new ExpertDiagnosisResultResVO(); - expertDiagnosisResultResVO.setDiagnosis(StrUtil.join(";",diseasesList.stream().map(Disease::getDiseaseName).collect(Collectors.toList()))); + expertDiagnosisResultResVO.setDiagnosis(medicalRec.getSymptoms()); Set expertDiseaseIdSet = diseasesList.stream().map(Disease::getId).collect(Collectors.toSet()); List userDiagnosisDiseaseList = CollUtil.isEmpty(diagnosisResult.getFinalDiagnosis()) ? CollUtil.newArrayList() : diseaseService.listByIds(diagnosisResult.getFinalDiagnosis()); @@ -293,10 +293,10 @@ public class AskDiagnosisResultServiceImpl implements AskDiagnosisResultService } - public static Predicate distinctPredicateNotNull(Function function){ + public static Predicate distinctPredicateNotNull(Function function) { ConcurrentHashMap map = new ConcurrentHashMap<>(); - return t-> null != function.apply(t) && null == map.putIfAbsent(function.apply(t), true); + return t -> null != function.apply(t) && null == map.putIfAbsent(function.apply(t), true); }