diff --git a/src/main/java/com/docus/server/message/busservice/impl/SdBusinessServiceImpl.java b/src/main/java/com/docus/server/message/busservice/impl/SdBusinessServiceImpl.java index 41715ac..296e53c 100644 --- a/src/main/java/com/docus/server/message/busservice/impl/SdBusinessServiceImpl.java +++ b/src/main/java/com/docus/server/message/busservice/impl/SdBusinessServiceImpl.java @@ -110,6 +110,10 @@ public class SdBusinessServiceImpl implements SdBusinessService { dto.setPriority(4); CommonResult task = collectTaskService.compensateTask(dto); if (ResultCode.FAILED.getCode().equals(task.getCode())) { + String data = task.getData(); + if (Func.isNotBlank(data) && data.contains("出院")) { + throw new BaseException("患者未出院!"); + } throw new RuntimeException("补偿失败!"); } } @@ -121,6 +125,20 @@ public class SdBusinessServiceImpl implements SdBusinessService { if (patientIds.size() > 1) { throw new BaseException("住院号+住院次数 ,系统中患者有多个!"); } + if (!isDischarge(patientIds.get(0))) { + throw new BaseException("该患者未出院!"); + } + } + + /** + * 根据病案主键,获得该患者是否出院 + * + * @param patientId 病案主键 + * @return 是否出院 + */ + private boolean isDischarge(String patientId) { + int count = tBasicMapper.getDischargeCount(patientId); + return count > 0; } diff --git a/src/main/java/com/docus/server/message/mapper/TBasicMapper.java b/src/main/java/com/docus/server/message/mapper/TBasicMapper.java index 4806847..947aa31 100644 --- a/src/main/java/com/docus/server/message/mapper/TBasicMapper.java +++ b/src/main/java/com/docus/server/message/mapper/TBasicMapper.java @@ -6,12 +6,13 @@ import org.apache.ibatis.annotations.Param; import java.util.Date; import java.util.List; -public interface TBasicMapper{ - List getPatientIdsByInpatientNoAndTimes(@Param("inpatientNo")String inHospIndexNo, @Param("admissTimes") Integer visitNo); +public interface TBasicMapper { + List getPatientIdsByInpatientNoAndTimes(@Param("inpatientNo") String inHospIndexNo, @Param("admissTimes") Integer visitNo); /** * 更新医生提交时间 - * @param patientId 病案主键 + * + * @param patientId 病案主键 * @param submitTime 提交时间 * @return database操作行 */ @@ -19,7 +20,8 @@ public interface TBasicMapper{ /** * 更新护士提交时间 - * @param patientId 病案主键 + * + * @param patientId 病案主键 * @param submitTime 提交时间 * @return database操作行 */ @@ -27,9 +29,18 @@ public interface TBasicMapper{ /** * 更新护理文件数量 + * * @param patientId 病案主键 * @param fileCount 文件数量 * @return database操作行 */ - int insertOrUpdateNurseFileCount(@Param("patientId")String patientId,@Param("fileCount") Integer fileCount); + int insertOrUpdateNurseFileCount(@Param("patientId") String patientId, @Param("fileCount") Integer fileCount); + + /** + * 根据病案主键查询出院病案的数量,一般用于判断病案是否出院 + * + * @param patientId 病案主键 + * @return 出院数量 + */ + int getDischargeCount(@Param("patientId") String patientId); } diff --git a/src/main/resources/mapper/TBasicMapper.xml b/src/main/resources/mapper/TBasicMapper.xml index 584ea29..ab9d6bf 100644 --- a/src/main/resources/mapper/TBasicMapper.xml +++ b/src/main/resources/mapper/TBasicMapper.xml @@ -22,4 +22,11 @@ FROM `docus_medicalrecord`.t_basic tb WHERE tb.inpatient_no=#{inpatientNo} and tb.admiss_times=#{admissTimes} +