Merge remote-tracking branch 'origin/dev' into dev

dev_v1.0.1
xueqingkun 2 years ago
commit 3333877360

@ -2,6 +2,10 @@ package com.supervision.mapper;
import com.supervision.model.DiagnosisAncillaryRecord;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.supervision.vo.result.AncillaryRecordByResultDAO;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* @author flevance
@ -11,6 +15,8 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
*/
public interface DiagnosisAncillaryRecordMapper extends BaseMapper<DiagnosisAncillaryRecord> {
List<AncillaryRecordByResultDAO> queryAncillaryResultByProcessId(@Param("processId") String processId);
}

@ -2,6 +2,10 @@ package com.supervision.mapper;
import com.supervision.model.DiagnosisPhysicalRecord;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.supervision.vo.result.PhysicalRecordByResultDAO;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* @author flevance
@ -11,6 +15,8 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
*/
public interface DiagnosisPhysicalRecordMapper extends BaseMapper<DiagnosisPhysicalRecord> {
List<PhysicalRecordByResultDAO> queryPhysicalResultByProcessId(@Param("processId") String processId);
}

@ -39,7 +39,7 @@ public class AskDiseaseQuestionAnswer extends Model<AskDiseaseQuestionAnswer> im
/**
* ID(not null,template_questioncode,desc,question)
*/
@ApiModelProperty("")
@ApiModelProperty("模板问题ID(如果not null,则从template_question表出code,desc,question)")
private String templateQuestionId;
/**
@ -68,6 +68,9 @@ public class AskDiseaseQuestionAnswer extends Model<AskDiseaseQuestionAnswer> im
@TableField(typeHandler = StringListTypeHandler.class)
private List<String> answer;
@ApiModelProperty("是否必查-初步诊断依据 0否1是")
private Integer requireCheck;
/**
* ID
*/

@ -32,6 +32,12 @@ public class DiagnosisAncillaryRecord extends Model<DiagnosisAncillaryRecord> im
@ApiModelProperty("流程ID")
private String processId;
/**
* ID
*/
@ApiModelProperty("辅助检查项ID")
private String ancillaryId;
/**
* ID
*/

@ -32,6 +32,12 @@ public class DiagnosisPhysicalRecord extends Model<DiagnosisPhysicalRecord> impl
@ApiModelProperty("诊断进程ID")
private String processId;
/**
* ID
*/
@ApiModelProperty("体格检查项ID")
private String physicalId;
/**
* ID
*/

@ -31,6 +31,12 @@ public class DiagnosisQaRecord implements Serializable {
@ApiModelProperty("诊断进程ID")
private String processId;
/**
* ID
*/
@ApiModelProperty("问题答案表ID")
private String questionAnswerId;
/**
*
*/

@ -2,6 +2,9 @@ package com.supervision.service;
import com.supervision.model.DiagnosisAncillaryRecord;
import com.baomidou.mybatisplus.extension.service.IService;
import com.supervision.vo.result.AncillaryRecordByResultDAO;
import java.util.List;
/**
* @author flevance
@ -10,4 +13,10 @@ import com.baomidou.mybatisplus.extension.service.IService;
*/
public interface DiagnosisAncillaryRecordService extends IService<DiagnosisAncillaryRecord> {
/**
* -
*/
List<AncillaryRecordByResultDAO> queryAncillaryResultByProcessId(String processId);
}

@ -2,6 +2,9 @@ package com.supervision.service;
import com.supervision.model.DiagnosisPhysicalRecord;
import com.baomidou.mybatisplus.extension.service.IService;
import com.supervision.vo.result.PhysicalRecordByResultDAO;
import java.util.List;
/**
* @author flevance
@ -10,4 +13,12 @@ import com.baomidou.mybatisplus.extension.service.IService;
*/
public interface DiagnosisPhysicalRecordService extends IService<DiagnosisPhysicalRecord> {
/**
*
* @param processId ID
* @return list
*/
List<PhysicalRecordByResultDAO> queryPhysicalResultByProcessId(String processId);
}

@ -4,8 +4,11 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.supervision.model.DiagnosisAncillaryRecord;
import com.supervision.service.DiagnosisAncillaryRecordService;
import com.supervision.mapper.DiagnosisAncillaryRecordMapper;
import com.supervision.vo.result.AncillaryRecordByResultDAO;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* @author flevance
* @description vp_diagnosis_ancillary_record()Service
@ -15,6 +18,13 @@ import org.springframework.stereotype.Service;
public class DiagnosisAncillaryRecordServiceImpl extends ServiceImpl<DiagnosisAncillaryRecordMapper, DiagnosisAncillaryRecord>
implements DiagnosisAncillaryRecordService{
/**
* -
*/
public List<AncillaryRecordByResultDAO> queryAncillaryResultByProcessId(String processId){
return this.baseMapper.queryAncillaryResultByProcessId(processId);
}
}

@ -4,8 +4,11 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.supervision.model.DiagnosisPhysicalRecord;
import com.supervision.service.DiagnosisPhysicalRecordService;
import com.supervision.mapper.DiagnosisPhysicalRecordMapper;
import com.supervision.vo.result.PhysicalRecordByResultDAO;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* @author flevance
* @description vp_diagnosis_physical_record()Service
@ -15,6 +18,13 @@ import org.springframework.stereotype.Service;
public class DiagnosisPhysicalRecordServiceImpl extends ServiceImpl<DiagnosisPhysicalRecordMapper, DiagnosisPhysicalRecord>
implements DiagnosisPhysicalRecordService{
/**
* -
*/
@Override
public List<PhysicalRecordByResultDAO> queryPhysicalResultByProcessId(String processId) {
return this.baseMapper.queryPhysicalResultByProcessId(processId);
}
}

@ -0,0 +1,29 @@
package com.supervision.vo.result;
import lombok.Data;
@Data
public class AncillaryRecordByResultDAO {
private String itemName;
private String recordId;
/**
*
*/
private Integer requireCheck;
/**
*
*/
private Integer basisConfirm;
/**
*
*/
private Integer basisIdentification;
private String itemId;
}

@ -0,0 +1,30 @@
package com.supervision.vo.result;
import lombok.Data;
@Data
public class PhysicalRecordByResultDAO {
private String toolLocationName;
private String recordId;
/**
*
*/
private Integer requireCheck;
/**
*
*/
private Integer basisConfirm;
/**
*
*/
private Integer basisIdentification;
private String locationId;
private String toolId;
}

@ -6,8 +6,8 @@
<resultMap id="BaseResultMap" type="com.supervision.model.ConfigAncillaryItem">
<id property="id" column="id" jdbcType="VARCHAR"/>
<id property="type" column="type" jdbcType="VARCHAR"/>
<id property="code" column="code" jdbcType="VARCHAR"/>
<result property="type" column="type" jdbcType="VARCHAR"/>
<result property="code" column="code" jdbcType="VARCHAR"/>
<result property="itemClass" column="item_class" jdbcType="VARCHAR"/>
<result property="itemName" column="item_name" jdbcType="VARCHAR"/>
<result property="info" column="info" jdbcType="VARCHAR"/>

@ -6,6 +6,7 @@
<resultMap id="BaseResultMap" type="com.supervision.model.DiagnosisAncillaryRecord">
<id property="id" column="id" jdbcType="VARCHAR"/>
<result property="ancillaryId" column="ancillary_id" jdbcType="VARCHAR"/>
<result property="processId" column="process_id" jdbcType="VARCHAR"/>
<result property="itemId" column="item_id" jdbcType="VARCHAR"/>
<result property="primaryId" column="primary_id" jdbcType="VARCHAR"/>
@ -17,8 +18,22 @@
</resultMap>
<sql id="Base_Column_List">
id,process_id,item_id,primary_id,
id
,process_id,item_id,primary_id,ancillary_id
result,create_user_id,create_time,
update_user_id,update_time
</sql>
<select id="queryAncillaryResultByProcessId"
resultType="com.supervision.vo.result.AncillaryRecordByResultDAO">
select t3.item_name as itemName,
t2.require_check as requireCheck,
t2.basis_confirm as basisConfirm,
t2.basis_identification as basisIdentification,
t1.id as recordId,
t3.id as itemId
from vp_diagnosis_ancillary_record t1
left join vp_disease_ancillary t2 on t1.ancillary_id = t2.id
left join vp_config_ancillary_item t3 on t2.item_id = t3.id
where t1.process_id = #{processId}
</select>
</mapper>

@ -23,4 +23,19 @@
location_id,primary_id,result,create_user_id,
create_time,update_user_id,update_time
</sql>
<select id="queryPhysicalResultByProcessId"
resultType="com.supervision.vo.result.PhysicalRecordByResultDAO">
select concat_ws(t3.tool_name, t4.location_name, '|') as toolLocationName,
t1.id as recordId,
t2.require_check as requireCheck,
t2.basis_confirm as basisConfirm,
t2.basis_identification as basisIdentification,
t3.id as toolId,
t4.id as locationId
from vp_diagnosis_physical_record t1
left join vp_disease_physical t2 on t1.physical_id = t2.id
left join vp_config_physical_tool t3 on t2.tool_id = t3.id
left join vp_config_physical_location t4 on t2.location_id = t3.id
where t1.process_id = #{processId}
</select>
</mapper>

@ -7,6 +7,7 @@
<resultMap id="BaseResultMap" type="com.supervision.model.DiagnosisQaRecord">
<id property="id" column="id" jdbcType="VARCHAR"/>
<result property="processId" column="process_id" jdbcType="VARCHAR"/>
<result property="questionAnswerId" column="question_answer_id" jdbcType="VARCHAR"/>
<result property="question" column="question" jdbcType="VARCHAR"/>
<result property="questionWavId" column="question_wav_id" jdbcType="VARCHAR"/>
<result property="answer" column="answer" jdbcType="VARCHAR"/>
@ -18,7 +19,7 @@
</resultMap>
<sql id="Base_Column_List">
id,process_id,question,
id,process_id,question,question_answer_id
question_wav_id,answer,answer_wav_id,
create_user_id,create_time,update_user_id,
update_time

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

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

@ -1,11 +1,15 @@
package com.supervision.service.impl;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.collection.CollectionUtil;
import com.supervision.exception.BusinessException;
import com.supervision.model.*;
import com.supervision.model.Process;
import com.supervision.pojo.vo.*;
import com.supervision.service.*;
import com.supervision.vo.result.AncillaryRecordByResultDAO;
import com.supervision.vo.result.PhysicalRecordByResultDAO;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -24,6 +28,14 @@ public class AskDiagnosisResultServiceImpl implements AskDiagnosisResultService
private final DiagnosisPrimaryService diagnosisPrimaryService;
private final AskDiseaseQuestionAnswerService askDiseaseQuestionAnswerService;
private final DiagnosisQaRecordService diagnosisQaRecordService;
private final DiagnosisPhysicalRecordService diagnosisPhysicalRecordService;
private final DiagnosisAncillaryRecordService diagnosisAncillaryRecordService;
private final ProcessService processService;
private final PatientService patientService;
@ -58,24 +70,141 @@ public class AskDiagnosisResultServiceImpl implements AskDiagnosisResultService
Patient patient = patientService.getById(process.getPatientId());
List<Disease> diseasesList = diseaseService.listByIds(patient.getDiseaseList());
// 1.生成预期诊断结果
ExpertDiagnosisResultResVO expertDiagnosisResultResVO = creatExpertDiagnosisResult(diagnosisResult, patient, diseasesList);
diagnosisResultResVO.setExpertDiagnosisResult(expertDiagnosisResultResVO);
diagnosisResultResVO.setExpertDiagnosisResult(creatExpertDiagnosisResult(diagnosisResult, patient, diseasesList));
// 2.生成初步诊断依据
BasisPrimaryResultResVO basisPrimaryResultResVO = new BasisPrimaryResultResVO();
diagnosisResultResVO.setBasisPrimaryResultResVO(createBasisPrimaryResult(processId, diseasesList));
// 3.生成证实诊断依据
diagnosisResultResVO.setBasisConfirmResultResVO(createBasisConfirmResult(processId, diseasesList));
// 4.生成鉴别诊断依据
diagnosisResultResVO.setBasisIdentificationResult(createBasisIdentificationResult(processId, diseasesList));
// 5.全面检查-(暂无相关数据) 后面再看
diagnosisResultResVO.setFullCheck(null);
// 6.处置方案
diagnosisResultResVO.setDealPlan(createDealPlan(diagnosisResult, patient));
return diagnosisResultResVO;
}
private DealPlanResVO createDealPlan(DiagnosisResult diagnosisResult, Patient patient) {
DealPlanResVO dealPlanResVO = new DealPlanResVO();
dealPlanResVO.setUserTreatmentPlanType(diagnosisResult.getTreatmentPlanType());
dealPlanResVO.setUserTreatmentPlan(diagnosisResult.getTreatmentPlan());
dealPlanResVO.setRealTreatmentPlan(patient.getDiseaseTreatmentPlan());
return dealPlanResVO;
}
private BasisIdentificationResultResVO createBasisIdentificationResult(String processId, List<Disease> diseasesList) {
BasisIdentificationResultResVO basisIdentificationResultResVO = new BasisIdentificationResultResVO();
basisIdentificationResultResVO.setIdentificationDiagnosis(diseasesList.stream().map(Disease::getBasisIdentification).collect(Collectors.toList()));
// 2.2 获取体格检查
List<PhysicalRecordByResultDAO> physicalRecordList = diagnosisPhysicalRecordService.queryPhysicalResultByProcessId(processId);
List<BasisDiagnosisNodeResVO> nodeList = physicalRecordList.stream().map(e -> {
BasisDiagnosisNodeResVO nodeResVO = new BasisDiagnosisNodeResVO();
nodeResVO.setType(1);
nodeResVO.setRecordName(e.getToolLocationName());
nodeResVO.setRecordId(e.getRecordId());
// 如果是必做的,则是正确
nodeResVO.setCorrect(e.getBasisIdentification());
return nodeResVO;
}).collect(Collectors.toList());
// 2.3 获取辅助检查
List<AncillaryRecordByResultDAO> ancillaryRecordList = diagnosisAncillaryRecordService.queryAncillaryResultByProcessId(processId);
List<BasisDiagnosisNodeResVO> collect = ancillaryRecordList.stream().map(e -> {
BasisDiagnosisNodeResVO nodeResVO = new BasisDiagnosisNodeResVO();
nodeResVO.setCorrect(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) {
BasisConfirmResultResVO basisConfirmResultResVO = new BasisConfirmResultResVO();
basisConfirmResultResVO.setConfirmingDiagnosis(diseasesList.stream().map(Disease::getConfirmingDiagnosis).collect(Collectors.toList()));
// 2.2 获取体格检查
List<PhysicalRecordByResultDAO> physicalRecordList = diagnosisPhysicalRecordService.queryPhysicalResultByProcessId(processId);
List<BasisDiagnosisNodeResVO> nodeList = physicalRecordList.stream().map(e -> {
BasisDiagnosisNodeResVO nodeResVO = new BasisDiagnosisNodeResVO();
nodeResVO.setType(1);
nodeResVO.setRecordName(e.getToolLocationName());
nodeResVO.setRecordId(e.getRecordId());
// 如果是必做的,则是正确
nodeResVO.setCorrect(e.getBasisConfirm());
return nodeResVO;
}).collect(Collectors.toList());
// 2.3 获取辅助检查
List<AncillaryRecordByResultDAO> ancillaryRecordList = diagnosisAncillaryRecordService.queryAncillaryResultByProcessId(processId);
List<BasisDiagnosisNodeResVO> collect = ancillaryRecordList.stream().map(e -> {
BasisDiagnosisNodeResVO nodeResVO = new BasisDiagnosisNodeResVO();
nodeResVO.setCorrect(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(String processId, List<Disease> diseasesList) {
BasisPrimaryResultResVO basisPrimaryResultResVO = new BasisPrimaryResultResVO();
basisPrimaryResultResVO.setPreliminaryDiagnosis(diseasesList.stream().map(Disease::getPreliminaryDiagnosis).collect(Collectors.toList()));
// 根据record记录寻找符合初步诊断依据的项目
// basisPrimaryResultResVO.setNodeList();
//
//
// diagnosisResultResVO.setBasisPrimaryResultResVO();
// diagnosisResultResVO.setBasisConfirmResultResVO();
// diagnosisResultResVO.setBasisIdentificationResult();
// diagnosisResultResVO.setFullCheck();
// diagnosisResultResVO.setDealPlan();
// 2.1 首先获取对话
List<BasisDiagnosisNodeResVO> basisDiagnosisNodeResVOS = new ArrayList<>();
List<DiagnosisQaRecord> qaRecordList = diagnosisQaRecordService.lambdaQuery().eq(DiagnosisQaRecord::getProcessId, processId).list();
if (CollectionUtil.isNotEmpty(qaRecordList)) {
Set<String> questionAnswerIdSet = qaRecordList.stream().map(DiagnosisQaRecord::getQuestionAnswerId).collect(Collectors.toSet());
List<AskDiseaseQuestionAnswer> list = askDiseaseQuestionAnswerService.lambdaQuery()
.in(AskDiseaseQuestionAnswer::getId, questionAnswerIdSet)
.eq(AskDiseaseQuestionAnswer::getRequireCheck, 1)
.select(AskDiseaseQuestionAnswer::getId).list();
// 获取必问的项目
Set<String> requireCheckIdSet = list.stream().map(AskDiseaseQuestionAnswer::getId).collect(Collectors.toSet());
List<BasisDiagnosisNodeResVO> qaList = qaRecordList.stream().map(e -> {
BasisDiagnosisNodeResVO node = new BasisDiagnosisNodeResVO();
node.setType(0);
node.setRecordName(e.getQuestion());
node.setRecordId(e.getId());
node.setCorrect(requireCheckIdSet.contains(e.getQuestionAnswerId()) ? 1 : 0);
return node;
return null;
}).collect(Collectors.toList());
basisDiagnosisNodeResVOS.addAll(qaList);
}
// 2.2 获取体格检查
List<PhysicalRecordByResultDAO> physicalRecordList = diagnosisPhysicalRecordService.queryPhysicalResultByProcessId(processId);
List<BasisDiagnosisNodeResVO> physicalList = physicalRecordList.stream().map(e -> {
BasisDiagnosisNodeResVO nodeResVO = new BasisDiagnosisNodeResVO();
nodeResVO.setType(1);
nodeResVO.setRecordName(e.getToolLocationName());
nodeResVO.setRecordId(e.getRecordId());
// 如果是必做的,则是正确
nodeResVO.setCorrect(e.getRequireCheck());
return nodeResVO;
}).collect(Collectors.toList());
basisDiagnosisNodeResVOS.addAll(physicalList);
// 2.3 获取辅助检查
List<AncillaryRecordByResultDAO> ancillaryRecordList = diagnosisAncillaryRecordService.queryAncillaryResultByProcessId(processId);
List<BasisDiagnosisNodeResVO> collect = ancillaryRecordList.stream().map(e -> {
BasisDiagnosisNodeResVO nodeResVO = new BasisDiagnosisNodeResVO();
nodeResVO.setCorrect(e.getRequireCheck());
nodeResVO.setRecordId(e.getRecordId());
nodeResVO.setRecordName(e.getItemName());
nodeResVO.setType(2);
return nodeResVO;
}).collect(Collectors.toList());
basisDiagnosisNodeResVOS.addAll(collect);
basisPrimaryResultResVO.setNodeList(basisDiagnosisNodeResVOS);
return basisPrimaryResultResVO;
}

Loading…
Cancel
Save