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

dev_2.0.0
xueqingkun 1 year ago
commit 858d128f8c

@ -8,6 +8,7 @@ import java.io.Serializable;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import com.baomidou.mybatisplus.extension.activerecord.Model; import com.baomidou.mybatisplus.extension.activerecord.Model;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
/** /**
@ -26,21 +27,25 @@ public class DiagnosisPrimaryRelation extends Model<DiagnosisPrimaryRelation> im
/** /**
* ID * ID
*/ */
@ApiModelProperty("问诊流程ID,新增时不填")
private String processId; private String processId;
/** /**
* ID * ID
*/ */
@ApiModelProperty("初步诊断ID,新增时不填")
private String primaryId; private String primaryId;
/** /**
* 1 (vp_diagnosis_qa_record) 2 (vp_diagnosis_physical_record) 3 (vp_diagnosis_ancillary_record) * 1 (vp_diagnosis_qa_record) 2 (vp_diagnosis_physical_record) 3 (vp_diagnosis_ancillary_record)
*/ */
@ApiModelProperty("1 问诊 2 体格检查 3 辅助检查")
private Integer type; private Integer type;
/** /**
* ID * ID
*/ */
@ApiModelProperty("关联关系ID")
private String relationId; private String relationId;
/** /**

@ -5,6 +5,7 @@ import io.swagger.annotations.ApiOperation;
import lombok.Data; import lombok.Data;
import java.util.List; import java.util.List;
import java.util.Set;
@Data @Data
public class DiagnosticBasisForPrimaryResVO { public class DiagnosticBasisForPrimaryResVO {
@ -27,8 +28,8 @@ public class DiagnosticBasisForPrimaryResVO {
@ApiModelProperty("初步诊断名称") @ApiModelProperty("初步诊断名称")
private String primaryName; private String primaryName;
@ApiModelProperty("初步诊断ID") @ApiModelProperty("初步诊断ID列表")
private String primaryId; private List<String> primaryIdList;
@ApiModelProperty("是否是证实诊断依据(0否1是)") @ApiModelProperty("是否是证实诊断依据(0否1是)")
private Integer basisConfirmFlag; private Integer basisConfirmFlag;

@ -40,7 +40,6 @@
null as locationName, null as locationName,
t4.name_zh_path as category, t4.name_zh_path as category,
t1.question as item, t1.question as item,
null as primaryId,
t1.basis_confirm_flag as basisConfirmFlag, t1.basis_confirm_flag as basisConfirmFlag,
t1.basis_identification_flag as basisIdentificationFlag t1.basis_identification_flag as basisIdentificationFlag
from vp_diagnosis_qa_record t1 from vp_diagnosis_qa_record t1
@ -56,7 +55,6 @@
t2.location_name as locationName, t2.location_name as locationName,
t3.type as category, t3.type as category,
t3.tool_name as item, t3.tool_name as item,
t1.primary_id as primaryId,
t1.basis_confirm_flag as basisConfirmFlag, t1.basis_confirm_flag as basisConfirmFlag,
t1.basis_identification_flag as basisIdentificationFlag t1.basis_identification_flag as basisIdentificationFlag
from vp_diagnosis_physical_record t1 from vp_diagnosis_physical_record t1
@ -71,7 +69,6 @@
t2.location_name as locationName, t2.location_name as locationName,
t2.type as category, t2.type as category,
t2.item_name as item, t2.item_name as item,
t1.primary_id as primaryId,
t1.basis_confirm_flag as basisConfirmFlag, t1.basis_confirm_flag as basisConfirmFlag,
t1.basis_identification_flag as basisIdentificationFlag t1.basis_identification_flag as basisIdentificationFlag
from vp_diagnosis_ancillary_record t1 from vp_diagnosis_ancillary_record t1

@ -4,6 +4,7 @@ package com.supervision.controller;
import com.supervision.model.DiagnosisPrimary; import com.supervision.model.DiagnosisPrimary;
import com.supervision.model.Disease; import com.supervision.model.Disease;
import com.supervision.pojo.vo.DiagnosticBasisForPrimaryReqVO; import com.supervision.pojo.vo.DiagnosticBasisForPrimaryReqVO;
import com.supervision.pojo.vo.SaveDiagnosisPrimaryReqVO;
import com.supervision.vo.ask.DiagnosticBasisForPrimaryResVO; import com.supervision.vo.ask.DiagnosticBasisForPrimaryResVO;
import com.supervision.service.AskPrimaryService; import com.supervision.service.AskPrimaryService;
import com.supervision.vo.ask.DiagnosisPrimaryVO; import com.supervision.vo.ask.DiagnosisPrimaryVO;
@ -43,10 +44,16 @@ public class AskPrimaryController {
@ApiOperation("新增初步诊断") @ApiOperation("新增初步诊断")
@PostMapping("savePrimary") @PostMapping("savePrimary")
public void savePrimary(@RequestBody DiagnosisPrimary reqVO){ public void savePrimary(@RequestBody SaveDiagnosisPrimaryReqVO reqVO){
askPrimaryService.savePrimary(reqVO); askPrimaryService.savePrimary(reqVO);
} }
@ApiOperation("查询选择初步诊断关联的问诊记录")
@PostMapping("queryRecordForPrimaryChoose")
public void queryRecordForPrimaryChoose(String processId){
}
@ApiOperation("确认诊断时,修改初步诊断的信息") @ApiOperation("确认诊断时,修改初步诊断的信息")
@PostMapping("updatePrimaryByConfirm") @PostMapping("updatePrimaryByConfirm")
public void updatePrimaryByConfirm(@RequestBody DiagnosisPrimary reqVO){ public void updatePrimaryByConfirm(@RequestBody DiagnosisPrimary reqVO){

@ -0,0 +1,18 @@
package com.supervision.pojo.vo;
import com.supervision.model.DiagnosisPrimary;
import com.supervision.model.DiagnosisPrimaryRelation;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.List;
@EqualsAndHashCode(callSuper = true)
@Data
public class SaveDiagnosisPrimaryReqVO extends DiagnosisPrimary {
// 关联的初步诊断列表
private List<DiagnosisPrimaryRelation> primaryRecordList;
}

@ -3,6 +3,7 @@ package com.supervision.service;
import com.supervision.model.DiagnosisPrimary; import com.supervision.model.DiagnosisPrimary;
import com.supervision.model.Disease; import com.supervision.model.Disease;
import com.supervision.pojo.vo.DiagnosticBasisForPrimaryReqVO; import com.supervision.pojo.vo.DiagnosticBasisForPrimaryReqVO;
import com.supervision.pojo.vo.SaveDiagnosisPrimaryReqVO;
import com.supervision.vo.ask.DiagnosticBasisForPrimaryResVO; import com.supervision.vo.ask.DiagnosticBasisForPrimaryResVO;
import com.supervision.vo.ask.DiagnosisPrimaryVO; import com.supervision.vo.ask.DiagnosisPrimaryVO;
import com.supervision.vo.ask.ModifyPrimaryDiseaseInfoReqVO; import com.supervision.vo.ask.ModifyPrimaryDiseaseInfoReqVO;
@ -18,7 +19,7 @@ public interface AskPrimaryService {
void modifyPrimaryDiseaseInfo(ModifyPrimaryDiseaseInfoReqVO reqVO); void modifyPrimaryDiseaseInfo(ModifyPrimaryDiseaseInfoReqVO reqVO);
void savePrimary(DiagnosisPrimary reqVO); void savePrimary(SaveDiagnosisPrimaryReqVO reqVO);
void updatePrimaryByConfirm(DiagnosisPrimary reqVO); void updatePrimaryByConfirm(DiagnosisPrimary reqVO);

@ -1,6 +1,7 @@
package com.supervision.service.impl; 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.CollectionUtil; import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.supervision.exception.BusinessException; import com.supervision.exception.BusinessException;
@ -12,12 +13,11 @@ import com.supervision.service.*;
import com.supervision.util.UserUtil; import com.supervision.util.UserUtil;
import com.supervision.vo.ask.DiagnosisPhysicalRecordVo; import com.supervision.vo.ask.DiagnosisPhysicalRecordVo;
import com.supervision.vo.ask.AskPhysicalHistoryResVO; import com.supervision.vo.ask.AskPhysicalHistoryResVO;
import com.supervision.vo.ask.DiagnosisPrimaryVO;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.Comparator; import java.util.*;
import java.util.List;
import java.util.Optional;
import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentHashMap;
import java.util.function.Function; import java.util.function.Function;
import java.util.function.Predicate; import java.util.function.Predicate;
@ -37,10 +37,14 @@ public class AskPhysicalServiceImpl implements AskPhysicalService {
private final ProcessService processService; private final ProcessService processService;
private final DiagnosisPrimaryRelationService diagnosisPrimaryRelationService;
private final DiagnosisPrimaryService diagnosisPrimaryService;
@Override @Override
public List<ConfigPhysicalToolResVO> queryPhysicalToolList() { public List<ConfigPhysicalToolResVO> queryPhysicalToolList() {
return toolService.queryPhysicalToolList(); return toolService.queryPhysicalToolList();
} }
@Override @Override
@ -101,14 +105,29 @@ public class AskPhysicalServiceImpl implements AskPhysicalService {
@Override @Override
public List<AskPhysicalHistoryResVO> queryAskPhysicalHistory(String processId) { public List<AskPhysicalHistoryResVO> queryAskPhysicalHistory(String processId) {
return diagnosisPhysicalRecordService.queryAskPhysicalHistory(processId).stream() List<AskPhysicalHistoryResVO> res = diagnosisPhysicalRecordService.queryAskPhysicalHistory(processId);
.filter(distinctPredicateNotNull(e->e.getToolId()+e.getLocationId())).collect(Collectors.toList()); // 这里把初步诊断的疾病名称填充进去
} List<DiagnosisPrimaryRelation> relationList = diagnosisPrimaryRelationService.lambdaQuery().eq(DiagnosisPrimaryRelation::getType, 2)
.eq(DiagnosisPrimaryRelation::getProcessId, processId).list();
Map<String, List<DiagnosisPrimaryRelation>> relationMap = relationList.stream().collect(Collectors.groupingBy(DiagnosisPrimaryRelation::getRelationId));
// 找到process对应的所有的初步诊断
List<DiagnosisPrimaryVO> diagnosisPrimaryVOS = diagnosisPrimaryService.queryAskPrimaryList(processId);
Map<String, String> diseaseNameMap = diagnosisPrimaryVOS.stream().collect(Collectors.toMap(DiagnosisPrimaryVO::getId, DiagnosisPrimaryVO::getPrimaryDiseaseName));
for (AskPhysicalHistoryResVO node : res) {
List<DiagnosisPrimaryRelation> temp = relationMap.get(node.getId());
List<String> diseaseNameList = new ArrayList<>();
if (CollUtil.isNotEmpty(temp)) {
for (DiagnosisPrimaryRelation relation : temp) {
String diseaseName = diseaseNameMap.get(relation.getPrimaryId());
diseaseNameList.add(diseaseName);
}
}
node.setResult(StrUtil.join(";", diseaseNameList));
}
public static <K> Predicate<K> distinctPredicateNotNull(Function<K,Object> function){ return res;
ConcurrentHashMap<Object, Boolean> map = new ConcurrentHashMap<>();
return t-> null != function.apply(t) && null == map.putIfAbsent(function.apply(t), true);
} }
} }

@ -1,9 +1,13 @@
package com.supervision.service.impl; package com.supervision.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.StrUtil;
import com.supervision.exception.BusinessException; import com.supervision.exception.BusinessException;
import com.supervision.model.*; import com.supervision.model.*;
import com.supervision.model.Process; import com.supervision.model.Process;
import com.supervision.pojo.vo.DiagnosticBasisForPrimaryReqVO; import com.supervision.pojo.vo.DiagnosticBasisForPrimaryReqVO;
import com.supervision.pojo.vo.SaveDiagnosisPrimaryReqVO;
import com.supervision.vo.ask.DiagnosticBasisForPrimaryResVO; import com.supervision.vo.ask.DiagnosticBasisForPrimaryResVO;
import com.supervision.service.*; import com.supervision.service.*;
import com.supervision.util.UserUtil; import com.supervision.util.UserUtil;
@ -13,7 +17,8 @@ import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import java.util.List; import java.util.*;
import java.util.stream.Collectors;
@Service @Service
@RequiredArgsConstructor @RequiredArgsConstructor
@ -31,6 +36,8 @@ public class AskPrimaryServiceImpl implements AskPrimaryService {
private final ProcessService processService; private final ProcessService processService;
private final DiagnosisPrimaryRelationService diagnosisPrimaryRelationService;
@Override @Override
public List<DiagnosisPrimaryVO> queryAskPrimaryList(String processId) { public List<DiagnosisPrimaryVO> queryAskPrimaryList(String processId) {
return diagnosisPrimaryService.queryAskPrimaryList(processId); return diagnosisPrimaryService.queryAskPrimaryList(processId);
@ -49,17 +56,22 @@ public class AskPrimaryServiceImpl implements AskPrimaryService {
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public void savePrimary(DiagnosisPrimary reqVO) { public void savePrimary(SaveDiagnosisPrimaryReqVO reqVO) {
reqVO.setExcludeFlag(null); DiagnosisPrimary diagnosisPrimary = BeanUtil.toBean(reqVO, DiagnosisPrimary.class);
reqVO.setCreateUserId(UserUtil.getUser().getId()); diagnosisPrimary.setExcludeFlag(null);
diagnosisPrimaryService.save(reqVO); diagnosisPrimary.setCreateUserId(UserUtil.getUser().getId());
diagnosisPrimaryService.save(diagnosisPrimary);
// 然后开始保存初步诊断关键的诊断
List<DiagnosisPrimaryRelation> primaryRecordList = reqVO.getPrimaryRecordList();
primaryRecordList.forEach(e -> e.setPrimaryId(diagnosisPrimary.getId()));
diagnosisPrimaryRelationService.saveBatch(primaryRecordList);
} }
@Override @Override
public void updatePrimaryByConfirm(DiagnosisPrimary reqVO) { public void updatePrimaryByConfirm(DiagnosisPrimary reqVO) {
diagnosisPrimaryService.lambdaUpdate().set(DiagnosisPrimary::getExcludeFlag,reqVO.getExcludeFlag()) diagnosisPrimaryService.lambdaUpdate().set(DiagnosisPrimary::getExcludeFlag, reqVO.getExcludeFlag())
.set(DiagnosisPrimary::getPatientDiseaseInfo,reqVO.getPatientDiseaseInfo()) .set(DiagnosisPrimary::getPatientDiseaseInfo, reqVO.getPatientDiseaseInfo())
.eq(DiagnosisPrimary::getId,reqVO.getId()).update(); .eq(DiagnosisPrimary::getId, reqVO.getId()).update();
} }
@Override @Override
@ -79,37 +91,62 @@ public class AskPrimaryServiceImpl implements AskPrimaryService {
/** /**
* , * ,
*
* @param processId ID * @param processId ID
* @return * @return
*/ */
@Override @Override
public List<DiagnosticBasisForPrimaryResVO> queryDiagnosticBasisListForPrimary(String processId) { public List<DiagnosticBasisForPrimaryResVO> queryDiagnosticBasisListForPrimary(String processId) {
return diagnosisPrimaryService.queryDiagnosticBasisListForPrimary(processId); List<DiagnosticBasisForPrimaryResVO> resList = diagnosisPrimaryService.queryDiagnosticBasisListForPrimary(processId);
if (CollUtil.isEmpty(resList)) {
return resList;
}
// 找到process对应的所有的初步诊断
List<DiagnosisPrimaryVO> diagnosisPrimaryVOS = diagnosisPrimaryService.queryAskPrimaryList(processId);
Map<String, String> diseaseNameMap = diagnosisPrimaryVOS.stream().collect(Collectors.toMap(DiagnosisPrimaryVO::getId, DiagnosisPrimaryVO::getPrimaryDiseaseName));
// 首先根据诊断记录,找到对应的关联关系
Set<String> relationIdSet = resList.stream().map(DiagnosticBasisForPrimaryResVO::getId).collect(Collectors.toSet());
List<DiagnosisPrimaryRelation> relationList = diagnosisPrimaryRelationService.lambdaQuery().in(DiagnosisPrimaryRelation::getRelationId, relationIdSet).list();
// 根据relationId进行分组
Map<String, List<DiagnosisPrimaryRelation>> relationMap = relationList.stream().collect(Collectors.groupingBy(DiagnosisPrimaryRelation::getRelationId));
for (DiagnosticBasisForPrimaryResVO node : resList) {
List<DiagnosisPrimaryRelation> relationPrimaryList = relationMap.get(node.getId());
Set<String> primarySet = relationPrimaryList.stream().map(DiagnosisPrimaryRelation::getPrimaryId).collect(Collectors.toSet());
if (CollUtil.isNotEmpty(primarySet)) {
List<String> diseaseNameList = new ArrayList<>();
primarySet.forEach(e -> diseaseNameList.add(diseaseNameMap.get(e)));
node.setPrimaryIdList(new ArrayList<>(primarySet));
node.setPrimaryName(StrUtil.join(";", diseaseNameList));
}
}
return resList;
} }
@Override @Override
public void saveDiagnosticBasis(List<DiagnosticBasisForPrimaryReqVO> reqVO) { public void saveDiagnosticBasis(List<DiagnosticBasisForPrimaryReqVO> reqVO) {
for (DiagnosticBasisForPrimaryReqVO node : reqVO) { for (DiagnosticBasisForPrimaryReqVO node : reqVO) {
if (1 == node.getType()){ if (1 == node.getType()) {
diagnosisQaRecordService.lambdaUpdate().set(DiagnosisQaRecord::getBasisConfirmFlag,node.getBasisConfirmFlag()) diagnosisQaRecordService.lambdaUpdate().set(DiagnosisQaRecord::getBasisConfirmFlag, node.getBasisConfirmFlag())
.set(DiagnosisQaRecord::getBasisIdentificationFlag,node.getBasisIdentificationFlag()) .set(DiagnosisQaRecord::getBasisIdentificationFlag, node.getBasisIdentificationFlag())
.eq(DiagnosisQaRecord::getId,node.getId()).update(); .eq(DiagnosisQaRecord::getId, node.getId()).update();
continue; continue;
} }
if (2 == node.getType()){ if (2 == node.getType()) {
diagnosisPhysicalRecordService.lambdaUpdate().set(DiagnosisPhysicalRecord::getBasisConfirmFlag,node.getBasisConfirmFlag()) diagnosisPhysicalRecordService.lambdaUpdate().set(DiagnosisPhysicalRecord::getBasisConfirmFlag, node.getBasisConfirmFlag())
.set(DiagnosisPhysicalRecord::getBasisIdentificationFlag,node.getBasisIdentificationFlag()) .set(DiagnosisPhysicalRecord::getBasisIdentificationFlag, node.getBasisIdentificationFlag())
.eq(DiagnosisPhysicalRecord::getId,node.getId()).update(); .eq(DiagnosisPhysicalRecord::getId, node.getId()).update();
continue; continue;
} }
if (3 == node.getType()){ if (3 == node.getType()) {
diagnosisAncillaryRecordService.lambdaUpdate().set(DiagnosisAncillaryRecord::getBasisConfirmFlag,node.getBasisConfirmFlag()) diagnosisAncillaryRecordService.lambdaUpdate().set(DiagnosisAncillaryRecord::getBasisConfirmFlag, node.getBasisConfirmFlag())
.set(DiagnosisAncillaryRecord::getBasisIdentificationFlag,node.getBasisIdentificationFlag()) .set(DiagnosisAncillaryRecord::getBasisIdentificationFlag, node.getBasisIdentificationFlag())
.eq(DiagnosisAncillaryRecord::getId,node.getId()).update(); .eq(DiagnosisAncillaryRecord::getId, node.getId()).update();
} }
} }
// 然后将process的状态改为诊毕 // 然后将process的状态改为诊毕
processService.lambdaUpdate().set(Process::getStatus,1).update(); processService.lambdaUpdate().set(Process::getStatus, 1).update();
} }
} }

Loading…
Cancel
Save