Merge remote-tracking branch 'origin/dev_2.0.0' into dev_2.0.0

dev_2.0.0
xueqingkun 1 year ago
commit 4bf72b2938

@ -26,6 +26,7 @@ public class DiagnoseHallController {
private final DiagnoseHallService diagnoseHallService;
@ApiOperation("获取问诊资源")
@GetMapping("achieveDiagnoseResource")
public boolean achieveDiagnoseResource(){
return diagnoseHallService.achieveDiagnoseResource();
}

@ -11,7 +11,7 @@ import java.util.List;
public class BasisConfirmResultResVO {
@ApiModelProperty("证实诊断依据")
private List<String> confirmingDiagnosis;
private String confirmingDiagnosis;
@ApiModelProperty("证实诊断列表")
private List<BasisDiagnosisNodeResVO> nodeList;

@ -9,7 +9,7 @@ import java.util.List;
public class BasisIdentificationResultResVO {
@ApiModelProperty("证实诊断依据")
private List<String> identificationDiagnosis;
private String identificationDiagnosis;
@ApiModelProperty("证实诊断列表")
private List<BasisDiagnosisNodeResVO> nodeList;

@ -10,7 +10,7 @@ public class BasisPrimaryResultResVO {
@ApiModelProperty("初步诊断依据-每一种病都有一种初步诊断依据-vp_disease疾病表中的preliminary_diagnosis")
private List<String> preliminaryDiagnosis;
private String preliminaryDiagnosis;
@ApiModelProperty("初步诊断依据列表-医生做的某些操作项,require_check=1")
private List<BasisDiagnosisNodeResVO> nodeList;

@ -13,7 +13,7 @@ import java.util.List;
@ApiModel
public class ExpertDiagnosisResultResVO {
@ApiModelProperty("诊断")
@ApiModelProperty("诊断/症状")
private String diagnosis;
@ApiModelProperty("用户诊断结果")

@ -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<DiagnosisPrimary> 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<TreatmentPlanRecord> 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<Disease> 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<PhysicalRecordByResultDAO> physicalRecordList = diagnosisPhysicalRecordService.queryPhysicalResultByProcessId(processId);
List<BasisDiagnosisNodeResVO> 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<AncillaryRecordByResultDAO> ancillaryRecordList = diagnosisAncillaryRecordService.queryAncillaryResultByProcessId(processId);
List<BasisDiagnosisNodeResVO> 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<Disease> diseasesList) {
private BasisConfirmResultResVO createBasisConfirmResult(MedicalRec medicalRec, String processId, List<Disease> diseasesList) {
BasisConfirmResultResVO basisConfirmResultResVO = new BasisConfirmResultResVO();
//todo: 由于修改了表结构,导致证实依据不存在....
basisConfirmResultResVO.setConfirmingDiagnosis(diseasesList.stream().map(e->"").collect(Collectors.toList()));
// 正式诊断依据,来自于medicalRec的ConfirmDiagnosisCriteria
basisConfirmResultResVO.setConfirmingDiagnosis(medicalRec.getConfirmDiagnosisCriteria());
// 2.2 获取体格检查
List<PhysicalRecordByResultDAO> physicalRecordList = diagnosisPhysicalRecordService.queryPhysicalResultByProcessId(processId);
List<BasisDiagnosisNodeResVO> 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<AncillaryRecordByResultDAO> ancillaryRecordList = diagnosisAncillaryRecordService.queryAncillaryResultByProcessId(processId);
List<BasisDiagnosisNodeResVO> 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<Disease> 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<BasisDiagnosisNodeResVO> basisDiagnosisNodeResVOS = new ArrayList<>();
List<DiagnosisQaRecord> qaRecordList = diagnosisQaRecordService.lambdaQuery().eq(DiagnosisQaRecord::getProcessId, processId).list();
List<DiagnosisQaRecord> qaRecordList = diagnosisQaRecordService.lambdaQuery().eq(DiagnosisQaRecord::getProcessId, process.getId()).list();
if (CollectionUtil.isNotEmpty(qaRecordList)) {
List<AskPatientAnswer> list = askPatientAnswerService.lambdaQuery()
.eq(AskPatientAnswer::getPatientId, patient.getId()).list();
@ -233,29 +233,29 @@ public class AskDiagnosisResultServiceImpl implements AskDiagnosisResultService
basisDiagnosisNodeResVOS.addAll(qaList);
}
// 2.2 获取体格检查
List<PhysicalRecordByResultDAO> physicalRecordList = diagnosisPhysicalRecordService.queryPhysicalResultByProcessId(processId);
List<PhysicalRecordByResultDAO> physicalRecordList = diagnosisPhysicalRecordService.queryPhysicalResultByProcessId(process.getId());
List<BasisDiagnosisNodeResVO> 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<AncillaryRecordByResultDAO> ancillaryRecordList = diagnosisAncillaryRecordService.queryAncillaryResultByProcessId(processId);
List<AncillaryRecordByResultDAO> ancillaryRecordList = diagnosisAncillaryRecordService.queryAncillaryResultByProcessId(process.getId());
List<BasisDiagnosisNodeResVO> 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<Disease> diseasesList) {
ExpertDiagnosisResultResVO expertDiagnosisResultResVO = new ExpertDiagnosisResultResVO();
expertDiagnosisResultResVO.setDiagnosis(StrUtil.join(";",diseasesList.stream().map(Disease::getDiseaseName).collect(Collectors.toList())));
expertDiagnosisResultResVO.setDiagnosis(medicalRec.getSymptoms());
Set<String> expertDiseaseIdSet = diseasesList.stream().map(Disease::getId).collect(Collectors.toSet());
List<Disease> userDiagnosisDiseaseList = CollUtil.isEmpty(diagnosisResult.getFinalDiagnosis()) ? CollUtil.newArrayList()
: diseaseService.listByIds(diagnosisResult.getFinalDiagnosis());
@ -293,10 +293,10 @@ public class AskDiagnosisResultServiceImpl implements AskDiagnosisResultService
}
public static <K> Predicate<K> distinctPredicateNotNull(Function<K,Object> function){
public static <K> Predicate<K> distinctPredicateNotNull(Function<K, Object> function) {
ConcurrentHashMap<Object, Boolean> 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);
}

Loading…
Cancel
Save