护理提交判断重症,重症患者标识更新接口

master
wyb 2 years ago
parent 792c70f0bb
commit 03973d2e06

@ -1,7 +1,6 @@
package com.docus.server;
import lombok.extern.slf4j.Slf4j;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;

@ -21,11 +21,11 @@ public interface SdBusinessService {
MessageResponse wsNurseSubmitHandle(Message message);
/**
* ,+
* ,
* @param inpatientNo
* @param admissTimes
*/
void updIcuRecordState(String inpatientNo, Integer admissTimes);
void confirmAndUpdIcuRecordState(String inpatientNo, Integer admissTimes);
/**
* ()

@ -103,12 +103,23 @@ public class SdBusinessServiceImpl implements SdBusinessService {
}
WsNurseSubmitDTO nurseSubmitDTO = WsNurseSubmitMessageConvert.convert(message.getMessage());
WsNurseSubmitValidate.verifyNurseSubmitDTO(nurseSubmitDTO);
List<String> patientIds = tBasicMapper.getPatientIdsByInpatientNoAndTimes(nurseSubmitDTO.getInHospIndexNo(), nurseSubmitDTO.getVisitNo());
String inHospIndexNo = nurseSubmitDTO.getInHospIndexNo();
Integer visitNo = nurseSubmitDTO.getVisitNo();
List<String> patientIds = tBasicMapper.getPatientIdsByInpatientNoAndTimes(inHospIndexNo, visitNo);
verifyPatientIds(patientIds);
if(!isDischargeAndUpdDisDate(patientIds.get(0),nurseSubmitDTO.getInHospIndexNo(), nurseSubmitDTO.getVisitNo())){
if(!isDischargeAndUpdDisDate(patientIds.get(0), inHospIndexNo, visitNo)){
throw new BaseException("此患者未出院!");
}
// 如果是重症患者,如果没有重症报告的话,不能提交
if (isIcuRecord(inHospIndexNo, visitNo)) {
// 更新重症标识
confirmAndUpdIcuRecordState(inHospIndexNo,visitNo);
if (!hasIcuFile(patientIds.get(0))) {
throw new BaseException("重症患者,未采集重症文件,不允许提交!");
}
}
tBasicMapper.insertOrUpdateNurseSubmitTime(patientIds.get(0), nurseSubmitDTO.getSubmitTime());
tBasicMapper.insertOrUpdateNurseFileCount(patientIds.get(0), nurseSubmitDTO.getFilesCount());
log.info("补偿护理任务 patientIds:{} collectId:{}", patientIds, taskConfig.getCollectorIds());
@ -129,17 +140,37 @@ public class SdBusinessServiceImpl implements SdBusinessService {
}
}
/**
* icu>0
* @param patientId
* @return icu>0
*/
private boolean hasIcuFile(String patientId) {
String source = "icu";
return getFileCountByPatientAndSource(patientId, source) > 0;
}
/**
*
* @param patientId
* @param source /
* @return
*/
private int getFileCountByPatientAndSource(String patientId, String source) {
return tBasicMapper.getFileCountByPatientAndSource(patientId, source);
}
@Override
public void updIcuRecordState(String inpatientNo, Integer admissTimes) {
public void confirmAndUpdIcuRecordState(String inpatientNo, Integer admissTimes) {
int state = isIcuRecord(inpatientNo, admissTimes) ? 1 : 0;
tBasicMapper.updIcuRecordState(inpatientNo, admissTimes, state);
}
@Override
public boolean isIcuRecord(String inpatientNo, Integer admissTimes) {
Integer exists = sdRyIcuMapper.isExists(inpatientNo, admissTimes);
return !Objects.isNull(exists);
Integer count = sdRyIcuMapper.countByInpNoAndAdmissTimes(inpatientNo, admissTimes);
return count>0;
}
private void compensateTask(List<String> patientIds, List<String> collectorIds) {

@ -24,11 +24,11 @@ public class SdRyHospitalController {
private SdBusinessService sdBusinessService;
@ApiOperation("同步患者是否重症病人,住院号+住院次数")
@GetMapping("/updIcuRecordState")
public CommonResult<String> updIcuRecordState(@RequestParam("inpatientNo") String inpatientNo, @RequestParam("admissTimes") Integer admissTimes) {
@ApiOperation("确认患者是否重症病人,并标识重症病人状态,住院号+住院次数")
@GetMapping("/confirmAndupdIcuRecordState")
public CommonResult<String> confirmAndUpdIcuRecordState(@RequestParam("inpatientNo") String inpatientNo, @RequestParam("admissTimes") Integer admissTimes) {
log.info("顺德人医,同步患者是否重症病人,住院号:{},住院次数:{}",inpatientNo,admissTimes);
sdBusinessService.updIcuRecordState(inpatientNo, admissTimes);
sdBusinessService.confirmAndUpdIcuRecordState(inpatientNo, admissTimes);
return CommonResult.success("成功!");
}

@ -11,6 +11,11 @@ import java.util.Map;
public interface SdRyIcuMapper {
Map<String,Object> getById(@Param("id") String patientId);
Integer isExists(@Param("inpatientNo")String inpatientNo,@Param("admissTimes") Integer admissTimes);
/**
* icu
* @param inpatientNo
* @param admissTimes
* @return icu
*/
Integer countByInpNoAndAdmissTimes(@Param("inpatientNo")String inpatientNo, @Param("admissTimes") Integer admissTimes);
}

@ -62,4 +62,12 @@ public interface TBasicMapper {
* @return
*/
int updIcuRecordState(@Param("inpatientNo") String inpatientNo, @Param("admissTimes") Integer admissTimes, @Param("state") int state);
/**
*
* @param patientId
* @param source /
* @return
*/
int getFileCountByPatientAndSource(@Param("patientId") String patientId, @Param("source") String source);
}

@ -9,11 +9,10 @@
FROM `docus_medicalrecord`.t_basic tb
WHERE tb.patient_id=#{id}
</select>
<select id="isExists" resultType="java.lang.Integer">
select 1
<select id="countByInpNoAndAdmissTimes" resultType="java.lang.Integer">
select count(1)
from smtz_10
where 住院号 = #{inpatientNo}
and 住院次数 = #{admissTimes}
limit 1
</select>
</mapper>

@ -40,4 +40,8 @@
and tb.dis_date > '1801-02-03 00:00:00'
</select>
<select id="getFileCountByPatientAndSource" resultType="java.lang.Integer">
SELECT count(1) FROM `docus_archivefile`.`t_scan_assort`
where patient_id=#{patientId} and source=#{source};
</select>
</mapper>

Loading…
Cancel
Save