web :问诊列表添加初步诊断

dev_2.0.0
xueqingkun 1 year ago
parent f7b8440195
commit 0218761a1c

@ -18,6 +18,8 @@ public interface DiagnosisPrimaryMapper extends BaseMapper<DiagnosisPrimary> {
List<DiagnosisPrimaryVO> queryAskPrimaryList(@Param("processId") String processId);
List<DiagnosisPrimaryVO> queryAskPrimaryListByProcessIds(@Param("processIds") List<String> processIds);
List<DiagnosticBasisForPrimaryResVO> queryDiagnosticBasisListForPrimary(@Param("processId") String processId);
}

@ -1,5 +1,6 @@
package com.supervision.model;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
@ -74,6 +75,7 @@ public class Process implements Serializable {
/**
*
*/
@TableField(fill = FieldFill.INSERT_UPDATE)
private LocalDateTime updateTime;
@TableField(exist = false)

@ -16,6 +16,8 @@ public interface DiagnosisPrimaryService extends IService<DiagnosisPrimary> {
List<DiagnosisPrimaryVO> queryAskPrimaryList(String processId);
List<DiagnosisPrimaryVO> queryAskPrimaryListByProcessIds(List<String> processIds);
List<DiagnosticBasisForPrimaryResVO> queryDiagnosticBasisListForPrimary(String processId);
}

@ -24,6 +24,12 @@ public class DiagnosisPrimaryServiceImpl extends ServiceImpl<DiagnosisPrimaryMap
return this.baseMapper.queryAskPrimaryList(processId);
}
@Override
public List<DiagnosisPrimaryVO> queryAskPrimaryListByProcessIds(List<String> processIds) {
return super.baseMapper.queryAskPrimaryListByProcessIds(processIds);
}
@Override
public List<DiagnosticBasisForPrimaryResVO> queryDiagnosticBasisListForPrimary(String processId) {
return this.baseMapper.queryDiagnosticBasisListForPrimary(processId);

@ -8,4 +8,7 @@ public class DiagnoseProcessReqVo {
@ApiModelProperty("用户id")
private String userId;
@ApiModelProperty("主诉")
private String patientSelfDesc;
}

@ -21,9 +21,14 @@ public class DiagnoseProcessResVo {
@ApiModelProperty("最近问诊时间")
private LocalDateTime recentTime;
@ApiModelProperty("病例编号")
private String medicalRecId;
@ApiModelProperty("主诉")
private String patientSelfDesc;
@ApiModelProperty("病人id")
private String patientId;

@ -76,4 +76,18 @@
left join vp_disease_ancillary t3 on t1.ancillary_id = t3.id
where t1.process_id = #{processId}
</select>
<select id="queryAskPrimaryListByProcessIds" resultType="com.supervision.vo.ask.DiagnosisPrimaryVO">
select t1.*, if(t2.disease_name_alias is null, t2.disease_name, t2.disease_name_alias) as primaryDiseaseName
from vp_diagnosis_primary t1
left join vp_disease t2 on t1.primary_diagnosis_id = t2.id
<where>
<if test="processIds != null and processIds.size() > 0">
t1.process_id in
<foreach item="processId" collection="processIds" open="(" separator="," close=")">
#{processId}
</foreach>
</if>
</where>
</select>
</mapper>

@ -30,6 +30,7 @@
pro.user_id as userId,
pro.status as status,
pro.update_time as recentTime,
mre.id as medicalRecId,
mre.patient_self_desc as patientSelfDesc,
mre.patient_id as patientId,
mre.patient_name as patientName,
@ -39,7 +40,12 @@
from vp_process pro
left join vp_medical_rec mre on pro.medical_rec_id = mre.id
left join vp_patient pat on mre.patient_id = pat.id
where pro.user_id = #{diagnoseProcess.userId} ORDER BY pro.update_time desc
where
pro.user_id = #{diagnoseProcess.userId}
<if test="diagnoseProcess.patientSelfDesc != null and diagnoseProcess.patientSelfDesc != ''">
AND mre.patient_self_desc like concat("%",#{diagnoseProcess.patientSelfDesc}, "%")
</if>
ORDER BY pro.update_time desc
</sql>
<select id="queryDiagnoseProcessPageList" resultType="com.supervision.vo.result.DiagnoseProcessResVo">

@ -1,12 +1,17 @@
package com.supervision.service.impl;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.lang.Assert;
import cn.hutool.core.lang.Opt;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.lock.annotation.Lock4j;
import com.supervision.model.DiagnosisPrimary;
import com.supervision.service.DiagnoseHallService;
import com.supervision.service.DiagnosisPrimaryService;
import com.supervision.service.MedicalRecService;
import com.supervision.service.ProcessService;
import com.supervision.vo.ask.DiagnosisPrimaryVO;
import com.supervision.vo.manage.MedicalRecPageResVO;
import com.supervision.vo.result.DiagnoseProcessReqVo;
import com.supervision.vo.result.DiagnoseProcessResVo;
@ -15,6 +20,11 @@ import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
@Service
@RequiredArgsConstructor
@ -27,6 +37,8 @@ public class DiagnoseHallServiceImpl implements DiagnoseHallService {
private final MedicalRecService medicalRecService;
private final DiagnosisPrimaryService diagnosisPrimaryService;
@Lock4j(name = "achieveDiagnoseResource")
@Override
public boolean achieveDiagnoseResource() {
@ -39,7 +51,26 @@ public class DiagnoseHallServiceImpl implements DiagnoseHallService {
DiagnoseProcessReqVo diagnoseProcessReqVo) {
Assert.notEmpty(diagnoseProcessReqVo.getUserId(),"用户id不允许为空");
return processService.queryUserDiagnoseProcessPageList(new Page<>(pageNum,pageSize),diagnoseProcessReqVo);
// 1.查询诊断列表
Page<DiagnoseProcessResVo> diagnoseProcessResVoPage = processService.queryUserDiagnoseProcessPageList(new Page<>(pageNum, pageSize), diagnoseProcessReqVo);
if (diagnoseProcessResVoPage.getSize()==0){
return diagnoseProcessResVoPage;
}
List<DiagnoseProcessResVo> records = diagnoseProcessResVoPage.getRecords();
// 2.根据processIds查询诊断疾病名
List<String> processIds = records.stream().map(DiagnoseProcessResVo::getProcessId).distinct().collect(Collectors.toList());
List<DiagnosisPrimaryVO> diagnosisPrimaryVOS = diagnosisPrimaryService.queryAskPrimaryListByProcessIds(processIds);
Map<String, List<DiagnosisPrimaryVO>> diagnosisPrimaryVOsMap = diagnosisPrimaryVOS.stream().collect(Collectors.groupingBy(DiagnosisPrimary::getProcessId));
// 3.把疾病名填充到诊断列表中
diagnoseProcessResVoPage.getRecords().forEach(vo->{
List<DiagnosisPrimaryVO> list = diagnosisPrimaryVOsMap.getOrDefault(vo.getProcessId(),new ArrayList<>());
vo.setPrimaryDiseaseNameList(list.stream().map(DiagnosisPrimaryVO::getPrimaryDiseaseName).distinct().collect(Collectors.toList()));
});
return diagnoseProcessResVoPage;
}
@Override

Loading…
Cancel
Save