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

dev_2.1.0
xueqingkun 1 year ago
commit 462a5eb52c

@ -3,7 +3,6 @@ package com.supervision.service.impl;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
import cn.hutool.core.lang.Assert;
import cn.hutool.core.lang.Snowflake; import cn.hutool.core.lang.Snowflake;
import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.NumberUtil; import cn.hutool.core.util.NumberUtil;
@ -87,13 +86,13 @@ public class GraphNebulaServiceImpl implements GraphNebulaService {
Process process = Optional.ofNullable(processService.getById(processId)).orElseThrow(() -> new BusinessException("未找到流程,创建图谱失败")); Process process = Optional.ofNullable(processService.getById(processId)).orElseThrow(() -> new BusinessException("未找到流程,创建图谱失败"));
// 根据processId找到对应的诊疗计划,如果没有找到,说明治疗流程未完成,诊断失败 // 根据processId找到对应的诊疗计划,如果没有找到,说明治疗流程未完成,诊断失败
List<TreatmentPlanRecord> treatmentPlanRecordList = treatmentPlanRecordService.lambdaQuery().eq(TreatmentPlanRecord::getProcessId, processId).list(); List<TreatmentPlanRecord> treatmentPlanRecordList = treatmentPlanRecordService.lambdaQuery().eq(TreatmentPlanRecord::getProcessId, processId).list();
Assert.notEmpty(treatmentPlanRecordList, () -> new BusinessException("治疗计划为空,请先完成治疗计划")); Integer disposalMethod = treatmentPlanRecordList.stream().findAny().orElse(new TreatmentPlanRecord()).getDisposalMethod();
Integer disposalMethod = treatmentPlanRecordList.stream().findAny().orElseThrow(() -> new BusinessException("治疗计划为空,请先完成治疗计划")).getDisposalMethod();
MedicalRec medicalRec = Optional.ofNullable(medicalRecService.getById(process.getMedicalRecId())).orElseThrow(() -> new BusinessException("未找到病历")); MedicalRec medicalRec = Optional.ofNullable(medicalRecService.getById(process.getMedicalRecId())).orElseThrow(() -> new BusinessException("未找到病历"));
// 首先创建一个病历 // 首先创建一个病历
MedicalRecVertex medicalRecVertex = new MedicalRecVertex(); MedicalRecVertex medicalRecVertex = new MedicalRecVertex();
// 格式:患者名称-门诊(时间) // 格式:患者名称-门诊/住院(时间)
medicalRecVertex.setNodeValue((disposalMethod == 0 ? "门诊" : "住院") + "-" + medicalRec.getPatientName() + "(" + DateUtil.format(process.getCreateTime(), "yyyy-MM-dd") + ")"); // 如果没有填写治疗计划,默认为门诊
medicalRecVertex.setNodeValue((ObjectUtil.isEmpty(disposalMethod) || disposalMethod == 0 ? "门诊" : "住院") + "-" + medicalRec.getPatientName() + "(" + DateUtil.format(process.getCreateTime(), "yyyy-MM-dd") + ")");
medicalRecDao.insert(medicalRecVertex); medicalRecDao.insert(medicalRecVertex);
log.info("病历图谱ID:{}", medicalRecVertex.getId()); log.info("病历图谱ID:{}", medicalRecVertex.getId());
// 根据processId找到电子病历 // 根据processId找到电子病历

@ -178,7 +178,7 @@ public class DiseaseTreatmentPlanManageServiceImpl implements DiseaseTreatmentPl
// 3. 初始化flag // 3. 初始化flag
if (CollUtil.isNotEmpty(diseaseTreatmentPlanResVos)){ if (CollUtil.isNotEmpty(diseaseTreatmentPlanResVos)){
rootNode.initFlag(diseaseTreatmentPlanResVos.stream().map(DiseaseTreatmentPlanResVo::getPlanId).collect(Collectors.toList())); rootNode.initFlag(diseaseTreatmentPlanResVos.stream().map(DiseaseTreatmentPlanResVo::getTreatmentPlanId).collect(Collectors.toList()));
} }
return rootNode.getChild(); return rootNode.getChild();

@ -18,9 +18,9 @@ public class DiseaseTreatmentPlanResVo extends ConfigTreatmentPlan {
@ApiModelProperty("疾病id") @ApiModelProperty("疾病id")
private String diseaseId; private String diseaseId;
@Deprecated // @Deprecated
@ApiModelProperty("计划id") // @ApiModelProperty("计划id")
private String planId; // private String planId;
@ApiModelProperty("计划id 用来代替planId") @ApiModelProperty("计划id 用来代替planId")
private String treatmentPlanId; private String treatmentPlanId;

@ -95,11 +95,11 @@ public class AskDiagnosisResultServiceImpl implements AskDiagnosisResultService
return dealPlanResVO; return dealPlanResVO;
} }
// 2. 查询出疾病处置计划 // 2. 查询出疾病处置计划(疾病配置的处置计划)
List<DiseaseTreatmentPlanResVo> diseaseTreatmentPlanResVos = diseaseTreatmentPlanService.queryListByDiseaseId(diseaseId); List<DiseaseTreatmentPlanResVo> diseaseTreatmentPlanResVos = diseaseTreatmentPlanService.queryListByDiseaseId(diseaseId);
List<String> planIds = diseaseTreatmentPlanResVos.stream().map(DiseaseTreatmentPlanResVo::getPlanId).distinct().collect(Collectors.toList()); List<String> treatmentPlanId = diseaseTreatmentPlanResVos.stream().map(DiseaseTreatmentPlanResVo::getTreatmentPlanId).distinct().collect(Collectors.toList());
// 3. 查出疾病处置计划用药 // 3. 查出疾病处置计划用药(疾病配置的用药计划)
List<DiseaseTreatmentPlanDrug> diseaseTreatmentPlanDrugList = diseaseTreatmentPlanDrugService.lambdaQuery().eq(DiseaseTreatmentPlanDrug::getDiseaseId, diseaseId).list(); List<DiseaseTreatmentPlanDrug> diseaseTreatmentPlanDrugList = diseaseTreatmentPlanDrugService.lambdaQuery().eq(DiseaseTreatmentPlanDrug::getDiseaseId, diseaseId).list();
List<String> drugIds = diseaseTreatmentPlanDrugList.stream().map(DiseaseTreatmentPlanDrug::getDrugId).distinct().collect(Collectors.toList()); List<String> drugIds = diseaseTreatmentPlanDrugList.stream().map(DiseaseTreatmentPlanDrug::getDrugId).distinct().collect(Collectors.toList());
@ -109,7 +109,7 @@ public class AskDiagnosisResultServiceImpl implements AskDiagnosisResultService
for (TreatmentPlanRecord treatmentPlanRecord : treatmentPlanRecordList) { for (TreatmentPlanRecord treatmentPlanRecord : treatmentPlanRecordList) {
TreatmentPlanRecordVo bean = BeanUtil.toBean(treatmentPlanRecord, TreatmentPlanRecordVo.class); TreatmentPlanRecordVo bean = BeanUtil.toBean(treatmentPlanRecord, TreatmentPlanRecordVo.class);
// 是否正确 // 是否正确
boolean flag = StrUtil.isNotEmpty(bean.getDrugId()) ? drugIds.contains(bean.getDrugId()) : planIds.contains(bean.getTreatmentPlanId()); boolean flag = StrUtil.isNotEmpty(bean.getDrugId()) ? drugIds.contains(bean.getDrugId()) : treatmentPlanId.contains(bean.getTreatmentPlanId());
bean.setFlag(flag ? 1 : 0); bean.setFlag(flag ? 1 : 0);
if (StrUtil.isNotEmpty(bean.getDrugId())) { if (StrUtil.isNotEmpty(bean.getDrugId())) {
drugTreatmentPlanResults.add(bean); drugTreatmentPlanResults.add(bean);
@ -432,24 +432,27 @@ public class AskDiagnosisResultServiceImpl implements AskDiagnosisResultService
* ( / ) * ( / ) * ( / ) * ( / )
*/ */
private ChartNodeVO computeTreatmentPlanChart(Process process) { private ChartNodeVO computeTreatmentPlanChart(Process process) {
// 查询用户填写的治疗计划 // 查询用户填写的治疗计划(包含处置计划和用药计划)
List<TreatmentPlanRecord> userTreatmentPlanRecordList = treatmentPlanRecordService.lambdaQuery().eq(TreatmentPlanRecord::getProcessId, process.getId()).list(); List<TreatmentPlanRecord> userTreatmentPlanRecordList = treatmentPlanRecordService.lambdaQuery().eq(TreatmentPlanRecord::getProcessId, process.getId()).list();
int userTreatmentPlanCount = userTreatmentPlanRecordList.size(); int userTreatmentPlanCount = userTreatmentPlanRecordList.size();
// 查询疾病配置的治疗计划 // 2. 查询出疾病处置计划(疾病配置的处置计划)
List<DiseaseTreatmentPlan> planList = diseaseTreatmentPlanService.lambdaQuery().eq(DiseaseTreatmentPlan::getDiseaseId, process.getDiseaseId()).select(DiseaseTreatmentPlan::getId).list(); List<DiseaseTreatmentPlanResVo> diseaseTreatmentPlanResVos = diseaseTreatmentPlanService.queryListByDiseaseId(process.getDiseaseId());
List<String> planIdList = planList.stream().map(DiseaseTreatmentPlan::getId).collect(Collectors.toList()); Set<String> treatmentPlanIdSet = diseaseTreatmentPlanResVos.stream().map(DiseaseTreatmentPlanResVo::getTreatmentPlanId).collect(Collectors.toSet());
// 3. 查出疾病处置计划用药(疾病配置的用药计划)
List<DiseaseTreatmentPlanDrug> diseaseTreatmentPlanDrugList = diseaseTreatmentPlanDrugService.lambdaQuery().eq(DiseaseTreatmentPlanDrug::getDiseaseId, process.getDiseaseId()).list();
Set<String> drugIdSet = diseaseTreatmentPlanDrugList.stream().map(DiseaseTreatmentPlanDrug::getDrugId).collect(Collectors.toSet());
// 疾病配置的治疗计划总数 // 疾病配置的治疗计划总数
int medicalCount = planIdList.size(); Collection<String> planIdSet = CollUtil.union(treatmentPlanIdSet, drugIdSet);
// 找到用户配置的药物计划 int medicalCount = planIdSet.size();
List<DiseaseTreatmentPlanDrug> drugList = diseaseTreatmentPlanDrugService.lambdaQuery().eq(DiseaseTreatmentPlanDrug::getDiseaseId, process.getDiseaseId()).select(DiseaseTreatmentPlanDrug::getDrugId).list();
List<String> drugIdList = drugList.stream().map(DiseaseTreatmentPlanDrug::getDrugId).collect(Collectors.toList());
int hitPlanCount = 0; int hitPlanCount = 0;
for (TreatmentPlanRecord treatmentPlanRecord : userTreatmentPlanRecordList) { for (TreatmentPlanRecord treatmentPlanRecord : userTreatmentPlanRecordList) {
// 需要分别看是否是药物计划 // 需要分别看是否是药物计划
if (StrUtil.isNotBlank(treatmentPlanRecord.getTreatmentPlanId()) && planIdList.contains(treatmentPlanRecord.getTreatmentPlanId())) { if (StrUtil.isNotBlank(treatmentPlanRecord.getTreatmentPlanId()) && planIdSet.contains(treatmentPlanRecord.getTreatmentPlanId())) {
hitPlanCount++; hitPlanCount++;
continue;
} }
if (StrUtil.isNotBlank(treatmentPlanRecord.getDrugId()) && drugIdList.contains(treatmentPlanRecord.getDrugId())) { if (StrUtil.isNotBlank(treatmentPlanRecord.getDrugId()) && planIdSet.contains(treatmentPlanRecord.getDrugId())) {
hitPlanCount++; hitPlanCount++;
} }
} }

Loading…
Cancel
Save