|
|
|
@ -1,16 +1,20 @@
|
|
|
|
|
package com.supervision.service.impl;
|
|
|
|
|
|
|
|
|
|
import cn.hutool.core.bean.BeanUtil;
|
|
|
|
|
import cn.hutool.core.lang.Assert;
|
|
|
|
|
import com.supervision.model.Process;
|
|
|
|
|
import com.supervision.model.ProcessMedical;
|
|
|
|
|
import com.supervision.service.MedicalRecordService;
|
|
|
|
|
import com.supervision.service.ProcessMedicalService;
|
|
|
|
|
import com.supervision.service.ProcessService;
|
|
|
|
|
import com.supervision.vo.ask.ProcessMedicalResVo;
|
|
|
|
|
import com.supervision.model.User;
|
|
|
|
|
import com.supervision.service.*;
|
|
|
|
|
import com.supervision.vo.ask.*;
|
|
|
|
|
import lombok.RequiredArgsConstructor;
|
|
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
|
|
|
|
import java.util.List;
|
|
|
|
|
import java.util.Objects;
|
|
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Service
|
|
|
|
|
@RequiredArgsConstructor
|
|
|
|
@ -21,6 +25,14 @@ public class MedicalRecordServiceImpl implements MedicalRecordService {
|
|
|
|
|
|
|
|
|
|
private final ProcessService processService;
|
|
|
|
|
|
|
|
|
|
private final DiagnosisPrimaryService diagnosisPrimaryService;
|
|
|
|
|
|
|
|
|
|
private final DiagnosisPhysicalRecordService diagnosisPhysicalRecordService;
|
|
|
|
|
|
|
|
|
|
private final DiagnosisAncillaryRecordService diagnosisAncillaryRecordService;
|
|
|
|
|
|
|
|
|
|
private final UserService userService;
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public boolean saveMedicalRecord(ProcessMedical processMedical) {
|
|
|
|
|
|
|
|
|
@ -45,6 +57,42 @@ public class MedicalRecordServiceImpl implements MedicalRecordService {
|
|
|
|
|
return processMedicalService.updateById(processMedical);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public ProcessMedicalViewDetailResVo queryViewDetail(String processId) {
|
|
|
|
|
|
|
|
|
|
Assert.notEmpty(processId,"流程id不能为空");
|
|
|
|
|
|
|
|
|
|
// 1.获取电子病例基本信息
|
|
|
|
|
ProcessMedicalResVo processMedicalResVo = this.findByProcessId(processId);
|
|
|
|
|
if (Objects.isNull(processMedicalResVo)){
|
|
|
|
|
return null;
|
|
|
|
|
}
|
|
|
|
|
ProcessMedicalViewDetailResVo resultVo = BeanUtil.toBean(processMedicalResVo, ProcessMedicalViewDetailResVo.class);
|
|
|
|
|
|
|
|
|
|
// 2. 获取初步诊断疾病信息
|
|
|
|
|
List<DiagnosisPrimaryVO> diagnosisPrimaryVOS = diagnosisPrimaryService.queryAskPrimaryList(processId);
|
|
|
|
|
resultVo.setPrimaryDiseaseNameList(
|
|
|
|
|
diagnosisPrimaryVOS.stream().map(DiagnosisPrimaryVO::getPrimaryDiseaseName).distinct().collect(Collectors.toList()));
|
|
|
|
|
|
|
|
|
|
// 3. 获取检查项目信息
|
|
|
|
|
// 3.1 体格检查
|
|
|
|
|
List<AskPhysicalHistoryResVO> askPhysicalHistoryResVOS = diagnosisPhysicalRecordService.queryAskPhysicalHistory(processId);
|
|
|
|
|
resultVo.setPhysicalDiagnosisNameList(
|
|
|
|
|
askPhysicalHistoryResVOS.stream().map(AskPhysicalHistoryResVO::getToolName).distinct().collect(Collectors.toList()));
|
|
|
|
|
// 3.2 辅助检查
|
|
|
|
|
List<AskAncillaryHistoryResVO> askAncillaryHistoryResVOS = diagnosisAncillaryRecordService.queryAncillaryRecord(processId);
|
|
|
|
|
resultVo.setAncillaryDiagnosisNameList(
|
|
|
|
|
askAncillaryHistoryResVOS.stream().map(AskAncillaryHistoryResVO::getItemName).distinct().collect(Collectors.toList()));
|
|
|
|
|
|
|
|
|
|
// 4. 获取用户姓名
|
|
|
|
|
User user = userService.getById(processMedicalResVo.getUserId());
|
|
|
|
|
if (Objects.nonNull(user)){
|
|
|
|
|
resultVo.setUserName(user.getName());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return resultVo;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void saveAssert(ProcessMedical processMedical){
|
|
|
|
|
Assert.notEmpty(processMedical.getProcessId(),"流程id不为空");
|
|
|
|
|
|
|
|
|
|