diff --git a/data-config/message-forward-config.json b/data-config/message-forward-config.json index 76a64e5..68d8d36 100644 --- a/data-config/message-forward-config.json +++ b/data-config/message-forward-config.json @@ -5,6 +5,12 @@ "errorResult": "0成功", "messageDataType": 1 }, + { + "method": "WS_NURS_SUBMIT", + "urls": ["http://127.0.0.1:9314/hospital/mzsy/wsNurseSubmit/do"], + "errorResult": "0成功", + "messageDataType": 1 + }, { "method": "WS_FSSY_USER", "urls": ["http://127.0.0.1:9000/fssy-basic-receive/user/do"], diff --git a/src/main/java/com/docus/server/message/busservice/MzsyBusinessService.java b/src/main/java/com/docus/server/message/busservice/MzsyBusinessService.java index 096410c..6331996 100644 --- a/src/main/java/com/docus/server/message/busservice/MzsyBusinessService.java +++ b/src/main/java/com/docus/server/message/busservice/MzsyBusinessService.java @@ -14,5 +14,13 @@ public interface MzsyBusinessService { */ MessageResponse recordSubmitHandle(Message message); + /** + * 梅州三院护理提交信息 + * + * @param message 信息 + * @return 消息处理结果 + */ + MessageResponse nurseSubmitHandle(Message message); + } diff --git a/src/main/java/com/docus/server/message/busservice/impl/MzsyBusinessServiceImpl.java b/src/main/java/com/docus/server/message/busservice/impl/MzsyBusinessServiceImpl.java index 3ee7c1e..308bb81 100644 --- a/src/main/java/com/docus/server/message/busservice/impl/MzsyBusinessServiceImpl.java +++ b/src/main/java/com/docus/server/message/busservice/impl/MzsyBusinessServiceImpl.java @@ -92,6 +92,52 @@ public class MzsyBusinessServiceImpl implements MzsyBusinessService { return response; } } + + @Override + public MessageResponse nurseSubmitHandle(Message message) { + try { + CollectTaskConfig.TaskConfig taskConfig = CollectTaskConfig.getTaskConfig("WS_NURS_SUBMIT"); + if (taskConfig == null || Func.isEmpty(taskConfig.getCollectorIds())) { + throw new RuntimeException("任务配置未配置采集器id,WS_NURS_SUBMIT"); + } + NkRecordSubmitDTO dto = NkWsRecordSubmitMessageConvert.convert(message.getMessage()); + NkRecordSubmitValidate.verifyRecordSubmitDTO(dto); + TbasicQrPreciseCondition condition = MzsyWsRecordSubmitMessageConvert.convert(dto); + List patientIds = tBasicMapper.getMzsyPatientIdByPreciseConditions(condition); + verifyPatientIds(patientIds); + + String submitDate = dto.getSubmitDate(); + tBasicMapper.insertOrUpdateNurseSubmitTime(patientIds.get(0), Func.parseDate(submitDate, DateUtil.PATTERN_DATETIME)); + + compensateTask("护理提交",patientIds, taskConfig.getCollectorIds()); + tBasicMapper.updateNursCollectState(patientIds.get(0), 1); + + String submitName = dto.getSubmitName(); + String submitNo = dto.getSubmitNo(); + // 添加提交记录 + HospitalSubmitNodeLogAddDTO nodeLogAddDTO = new HospitalSubmitNodeLogAddDTO(); + nodeLogAddDTO.setPatientId(patientIds.get(0)); + nodeLogAddDTO.setContent(new String[]{submitDate}); + nodeLogAddDTO.setSubmitNodeEnum(HospitalSubmitNodeEnum.NURSE); + nodeLogAddDTO.setCreater(submitName+"("+submitNo+")"); + nodeLogAddDTO.setCreaterName(submitName+"("+submitNo+")"); + hospitalSubmitNodeServiceApi.addLog(nodeLogAddDTO); + return new MessageResponse(ResultCode.SUCCESS.getCode(), success()); + } catch (BaseException baseException) { + log.error(baseException.getMessage(), baseException); + // 业务异常,不希望重试,直接消息返回错误 + MessageResponse response = new MessageResponse(ResultCode.FAILED.getCode(), fail(baseException.getMessage())); + response.setRetry(0); + return response; + } catch (Exception ex) { + log.error(ex.getMessage(), ex); + // 不可知的错误,希望重试 + MessageResponse response = new MessageResponse(ResultCode.FAILED.getCode(), fail("系统错误")); + response.setRetry(1); + return response; + } + } + private void verifyPatientIds(List patientIds) { if (Func.isEmpty(patientIds)) { throw new BaseException("系统无此患者!"); diff --git a/src/main/java/com/docus/server/message/controller/MzsyHospitalController.java b/src/main/java/com/docus/server/message/controller/MzsyHospitalController.java index c5312fa..0778a81 100644 --- a/src/main/java/com/docus/server/message/controller/MzsyHospitalController.java +++ b/src/main/java/com/docus/server/message/controller/MzsyHospitalController.java @@ -16,7 +16,7 @@ import org.springframework.web.bind.annotation.RestController; /** * @author WYBDEV */ -@Api("广州脑科医院") +@Api("梅州三院") @RestController @Slf4j @RequestMapping("/hospital/mzsy") @@ -32,5 +32,11 @@ public class MzsyHospitalController { return mzsyBusinessService.recordSubmitHandle(message); } + @PostMapping("/wsNurseSubmit/do") + @ApiOperation("梅州三院护理提交消息接收") + public MessageResponse wsNurseSubmit(@RequestBody Message message) { + log.info("梅州三院护理提交消息接收:{}", message); + return mzsyBusinessService.nurseSubmitHandle(message); + } } 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 d0bd72b..a635898 100644 --- a/src/main/java/com/docus/server/message/mapper/TBasicMapper.java +++ b/src/main/java/com/docus/server/message/mapper/TBasicMapper.java @@ -117,6 +117,8 @@ public interface TBasicMapper { */ int updateEmrSubmitState(@Param("patientId") String patientId, @Param("emrSubmitState") int emrSubmitState); + + int updateNursCollectState(@Param("patientId") String patientId, @Param("emrSubmitState") int submitState); /** * 根据住院号和住院次数查询出院日期 yyyyMMdd * @param inpatientNo 住院号 diff --git a/src/main/resources/mapper/TBasicMapper.xml b/src/main/resources/mapper/TBasicMapper.xml index 9f11a64..1ed52c0 100644 --- a/src/main/resources/mapper/TBasicMapper.xml +++ b/src/main/resources/mapper/TBasicMapper.xml @@ -35,6 +35,11 @@ set `emr_submit`=#{emrSubmitState} where patient_id=#{patientId} + + update `docus_medicalrecord`.`t_basic` + set `nurs_collect`=#{submitState} + where patient_id=#{patientId} + update `docus_medicalrecord`.`t_basic` set `dis_dept`=#{deptCode},