diff --git a/src/main/java/com/docus/server/message/busservice/FsBusinessService.java b/src/main/java/com/docus/server/message/busservice/FsBusinessService.java index aade247..eca0784 100644 --- a/src/main/java/com/docus/server/message/busservice/FsBusinessService.java +++ b/src/main/java/com/docus/server/message/busservice/FsBusinessService.java @@ -10,6 +10,14 @@ public interface FsBusinessService { * @param pushInfoVo 信息 * @return 消息处理结果 */ - Boolean pushInfo(PushInfoVo pushInfoVo); + Boolean pushInfoEmr(PushInfoVo pushInfoVo); + + /** + * 佛山三院护理提交信息 + * + * @param pushInfoVo 信息 + * @return 消息处理结果 + */ + Boolean pushInfoNurs(PushInfoVo pushInfoVo); } diff --git a/src/main/java/com/docus/server/message/busservice/impl/FsBusinessServiceImpl.java b/src/main/java/com/docus/server/message/busservice/impl/FsBusinessServiceImpl.java index 5db6831..a450b29 100644 --- a/src/main/java/com/docus/server/message/busservice/impl/FsBusinessServiceImpl.java +++ b/src/main/java/com/docus/server/message/busservice/impl/FsBusinessServiceImpl.java @@ -59,7 +59,7 @@ public class FsBusinessServiceImpl implements FsBusinessService { @Resource private CollectTaskService collectTaskService; @Override - public Boolean pushInfo(PushInfoVo pushInfoVo) { + public Boolean pushInfoEmr(PushInfoVo pushInfoVo) { try { CollectTaskConfig.TaskConfig taskConfig = CollectTaskConfig.getTaskConfig("WS_RECORD_SUBMIT"); if (taskConfig == null || Func.isEmpty(taskConfig.getCollectorIds())) { @@ -72,7 +72,7 @@ public class FsBusinessServiceImpl implements FsBusinessService { throw new BaseException("住院流水号、住院号、患者姓名 不可全部为空!"); } TbasicQrPreciseCondition condition = FsWsRecordSubmitMessageConvert.convert(dto); - List patientIds = tBasicMapper.getGznkPatientIdByPreciseConditions(condition); + List patientIds = tBasicMapper.getPatientIdByPreciseConditions(condition); verifyPatientIds(patientIds); String submitDate = dto.getSubmitDate(); @@ -106,6 +106,45 @@ public class FsBusinessServiceImpl implements FsBusinessService { } } + @Override + public Boolean pushInfoNurs(PushInfoVo pushInfoVo) { + try { + CollectTaskConfig.TaskConfig taskConfig = CollectTaskConfig.getTaskConfig("WS_NURS_SUBMIT"); + if (taskConfig == null || Func.isEmpty(taskConfig.getCollectorIds())) { + throw new RuntimeException("任务配置未配置采集器id,WS_NURS_SUBMIT"); + } + FsRecordSubmitDTO dto = FsWsRecordSubmitMessageConvert.convert(pushInfoVo); + if (Func.isBlank(dto.getJzh()) + && Func.isBlank(dto.getInpatientNo()) + && Func.isBlank(dto.getName())) { + throw new BaseException("住院流水号、住院号、患者姓名 不可全部为空!"); + } + TbasicQrPreciseCondition condition = FsWsRecordSubmitMessageConvert.convert(dto); + List patientIds = tBasicMapper.getPatientIdByPreciseConditions(condition); + verifyPatientIds(patientIds); + + String submitDate = dto.getSubmitDate(); + tBasicMapper.insertOrUpdateNurseSubmitTime(patientIds.get(0), Func.parseDate(submitDate, DateUtil.PATTERN_DATETIME)); + + compensateTask("护理提交",patientIds, taskConfig.getCollectorIds()); + + // 添加提交记录 + HospitalSubmitNodeLogAddDTO nodeLogAddDTO = new HospitalSubmitNodeLogAddDTO(); + nodeLogAddDTO.setPatientId(patientIds.get(0)); + nodeLogAddDTO.setContent(new String[]{submitDate}); + nodeLogAddDTO.setSubmitNodeEnum(HospitalSubmitNodeEnum.NURSE); + nodeLogAddDTO.setCreater("护理提交"); + nodeLogAddDTO.setCreaterName("护理提交"); + hospitalSubmitNodeServiceApi.addLog(nodeLogAddDTO); + + return true; + } catch (Exception ex) { + log.error(ex.getMessage(), ex); + // 不可知的错误 + return false; + } + } + private void compensateTask(String source,List patientIds, List collectorIds) { log.info("{},补偿任务 patientIds:{} collectId:{}",source, patientIds, collectorIds); CompensateTasRequest dto = new CompensateTasRequest(); diff --git a/src/main/java/com/docus/server/message/controller/FssyHospitalController.java b/src/main/java/com/docus/server/message/controller/FssyHospitalController.java index a575065..17b3316 100644 --- a/src/main/java/com/docus/server/message/controller/FssyHospitalController.java +++ b/src/main/java/com/docus/server/message/controller/FssyHospitalController.java @@ -46,7 +46,12 @@ public class FssyHospitalController { return Msg.pushFail("提交时间不得为空"); } if(pushInfoVo.getDataType()==1){ - if (fsBusinessService.pushInfo(pushInfoVo)) { + if (fsBusinessService.pushInfoEmr(pushInfoVo)) { + return Msg.fail("成功"); + } + } + if(pushInfoVo.getDataType()==2){ + if (fsBusinessService.pushInfoNurs(pushInfoVo)) { return Msg.fail("成功"); } } diff --git a/src/main/java/com/docus/server/message/converters/FsWsRecordSubmitMessageConvert.java b/src/main/java/com/docus/server/message/converters/FsWsRecordSubmitMessageConvert.java index e055a5b..714bcd5 100644 --- a/src/main/java/com/docus/server/message/converters/FsWsRecordSubmitMessageConvert.java +++ b/src/main/java/com/docus/server/message/converters/FsWsRecordSubmitMessageConvert.java @@ -54,6 +54,7 @@ public class FsWsRecordSubmitMessageConvert { } TbasicQrPreciseCondition condition = new TbasicQrPreciseCondition(); + condition.setJzh(dto.getJzh()); condition.setInpatientNo(dto.getInpatientNo()); condition.setAdmissTimes(dto.getAdmissTimes()); condition.setName(dto.getName());