diff --git a/data-config/message-forward-config.json b/data-config/message-forward-config.json
index f15cc6a..fff8adb 100644
--- a/data-config/message-forward-config.json
+++ b/data-config/message-forward-config.json
@@ -1,12 +1,12 @@
[
{
"method": "WS_RECORD_SUBMIT",
- "urls": ["http://127.0.0.1:9314/message/receive/wsRecordSubmit/do"],
+ "urls": ["http://127.0.0.1:9314/hospital/zqFirstRy/wsRecordSubmit/do"],
"errorResult": "0成功",
"messageDataType": 1
} , {
"method": "WS_NURS_SUBMIT",
- "urls": ["http://127.0.0.1:9314/message/receive/wsNurseSubmit/do"],
+ "urls": ["http://127.0.0.1:9314/hospital/zqFirstRy/wsNurseSubmit/do"],
"errorResult": "1系统内部错误!",
"messageDataType": 1
}
diff --git a/src/main/java/com/docus/server/CxfConfig.java b/src/main/java/com/docus/server/CxfConfig.java
index c2b554c..40b476d 100644
--- a/src/main/java/com/docus/server/CxfConfig.java
+++ b/src/main/java/com/docus/server/CxfConfig.java
@@ -58,11 +58,11 @@ public class CxfConfig {
return endpoint;
}
- @Bean
- @Qualifier("wsRecordSubmitEndPoint")
- public Endpoint wsRecordSubmitEndPoint() {
- EndpointImpl endpoint = new EndpointImpl(springBus(), sdWebServiceUnifyMessageService);
- endpoint.publish("/WS_RECORD_SUBMIT");
- return endpoint;
- }
+// @Bean
+// @Qualifier("wsRecordSubmitEndPoint")
+// public Endpoint wsRecordSubmitEndPoint() {
+// EndpointImpl endpoint = new EndpointImpl(springBus(), sdWebServiceUnifyMessageService);
+// endpoint.publish("/WS_RECORD_SUBMIT");
+// return endpoint;
+// }
}
diff --git a/src/main/java/com/docus/server/message/busservice/SubmitBusinessService.java b/src/main/java/com/docus/server/message/busservice/SubmitBusinessService.java
new file mode 100644
index 0000000..371225c
--- /dev/null
+++ b/src/main/java/com/docus/server/message/busservice/SubmitBusinessService.java
@@ -0,0 +1,29 @@
+package com.docus.server.message.busservice;
+
+import com.docus.server.message.dto.Message;
+import com.docus.server.message.dto.MessageResponse;
+
+/**
+ * 临床提交业务接口
+ *
+ * @author YongBin Wen
+ * @date 2024/1/22 13:50
+ */
+public interface SubmitBusinessService {
+ /**
+ * 临床电子病历提交信息
+ *
+ * @param message 信息
+ * @return 消息处理结果
+ */
+ MessageResponse recordSubmitHandle(Message message);
+
+ /**
+ * 临床护理提交信息
+ *
+ * @param message 信息
+ * @return 消息处理结果
+ */
+ MessageResponse wsNurseSubmitHandle(Message message);
+
+}
diff --git a/src/main/java/com/docus/server/message/busservice/ZqBusinessService.java b/src/main/java/com/docus/server/message/busservice/ZqBusinessService.java
new file mode 100644
index 0000000..06ec770
--- /dev/null
+++ b/src/main/java/com/docus/server/message/busservice/ZqBusinessService.java
@@ -0,0 +1,10 @@
+package com.docus.server.message.busservice;
+/**
+ * 肇庆第一人民医院业务接口
+ * @date 2024/1/22 13:51
+ * @author YongBin Wen
+ */
+public interface ZqBusinessService extends SubmitBusinessService{
+
+
+}
diff --git a/src/main/java/com/docus/server/message/busservice/impl/ZqBusinessServiceImpl.java b/src/main/java/com/docus/server/message/busservice/impl/ZqBusinessServiceImpl.java
new file mode 100644
index 0000000..1393484
--- /dev/null
+++ b/src/main/java/com/docus/server/message/busservice/impl/ZqBusinessServiceImpl.java
@@ -0,0 +1,167 @@
+package com.docus.server.message.busservice.impl;
+
+import com.docus.core.util.DateUtil;
+import com.docus.core.util.Func;
+import com.docus.infrastructure.core.exception.BaseException;
+import com.docus.infrastructure.web.api.CommonResult;
+import com.docus.infrastructure.web.api.ResultCode;
+import com.docus.server.message.busservice.ZqBusinessService;
+import com.docus.server.message.config.CollectTaskConfig;
+import com.docus.server.message.converters.ZqWsNurseSubmitMessageConvert;
+import com.docus.server.message.converters.ZqWsRecordSubmitMessageConvert;
+import com.docus.server.message.dto.*;
+import com.docus.server.message.feign.dto.CompensateTasRequest;
+import com.docus.server.message.feign.dto.HospitalSubmitNodeLogAddDTO;
+import com.docus.server.message.feign.enums.HospitalSubmitNodeEnum;
+import com.docus.server.message.feign.service.CollectTaskService;
+import com.docus.server.message.feign.service.HospitalSubmitNodeServiceApi;
+import com.docus.server.message.mapper.TBasicMapper;
+import com.docus.server.message.validate.ZqRecordSubmitValidate;
+import com.docus.server.message.validate.ZqWsNurseSubmitValidate;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+/**
+ * 肇庆业务实现类
+ *
+ * @author YongBin Wen
+ * @date 2024/1/22 13:58
+ */
+@Slf4j
+@Service("ZqBusinessService")
+public class ZqBusinessServiceImpl implements ZqBusinessService {
+
+ @Resource
+ private TBasicMapper tBasicMapper;
+
+ @Resource
+ private HospitalSubmitNodeServiceApi hospitalSubmitNodeServiceApi;
+
+ @Resource
+ private CollectTaskService collectTaskService;
+
+ @Override
+ public MessageResponse recordSubmitHandle(Message message) {
+ try {
+ CollectTaskConfig.TaskConfig taskConfig = CollectTaskConfig.getTaskConfig("WS_RECORD_SUBMIT");
+ if (taskConfig == null || Func.isEmpty(taskConfig.getCollectorIds())) {
+ throw new RuntimeException("任务配置未配置采集器id,WS_RECORD_SUBMIT");
+ }
+ ZqRecordSubmitDTO recordSubmitDto = ZqWsRecordSubmitMessageConvert.convert(message.getMessage());
+ ZqRecordSubmitValidate.verifyRecordSubmitDTO(recordSubmitDto);
+ TbasicQrPreciseCondition condition = ZqWsRecordSubmitMessageConvert.convert(recordSubmitDto);
+ List patientIds = tBasicMapper.getPatientIdByPreciseConditions(condition);
+ verifyPatientIds(patientIds);
+
+ String submitDate = recordSubmitDto.getSubmitDate();
+
+ // 添加提交记录
+ HospitalSubmitNodeLogAddDTO nodeLogAddDTO = new HospitalSubmitNodeLogAddDTO();
+ nodeLogAddDTO.setPatientId(patientIds.get(0));
+ nodeLogAddDTO.setContent(new String[]{submitDate});
+ nodeLogAddDTO.setSubmitNodeEnum(HospitalSubmitNodeEnum.EMR);
+ nodeLogAddDTO.setCreater("电子病历提交");
+ nodeLogAddDTO.setCreaterName("电子病历提交");
+ hospitalSubmitNodeServiceApi.addLog(nodeLogAddDTO);
+
+ tBasicMapper.insertOrUpdateDoctorSubmitTime(patientIds.get(0), Func.parseDate(submitDate, DateUtil.PATTERN_DATETIME));
+
+ compensateTask("电子病历提交",patientIds, taskConfig.getCollectorIds());
+ tBasicMapper.updateEmrSubmitState(patientIds.get(0), 1);
+ 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;
+ }
+ }
+
+ @Override
+ public MessageResponse wsNurseSubmitHandle(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");
+ }
+ ZqWsNurseSubmitDTO nurseSubmitDTO = ZqWsNurseSubmitMessageConvert.convert(message.getMessage());
+ ZqWsNurseSubmitValidate.verifyNurseSubmitDTO(nurseSubmitDTO);
+ TbasicQrPreciseCondition condition = ZqWsNurseSubmitMessageConvert.convert(nurseSubmitDTO);
+ List patientIds = tBasicMapper.getPatientIdByPreciseConditions(condition);
+ verifyPatientIds(patientIds);
+
+ String submitDate = nurseSubmitDTO.getSubmitDate();
+ // 添加提交内容
+ 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);
+
+ tBasicMapper.insertOrUpdateNurseSubmitTime(patientIds.get(0), Func.parseDate(submitDate, DateUtil.PATTERN_DATETIME));
+ compensateTask("护理提交",patientIds, taskConfig.getCollectorIds());
+ 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("系统无此患者!");
+ }
+ if (patientIds.size() > 1) {
+ throw new BaseException("系统中患者有多个,无法确认!");
+ }
+ }
+
+ private void compensateTask(String source,List patientIds, List collectorIds) {
+ log.info("{},补偿任务 patientIds:{} collectId:{}",source, patientIds, collectorIds);
+ CompensateTasRequest dto = new CompensateTasRequest();
+ dto.setPatientIds(patientIds);
+ dto.setCollectorIds(collectorIds);
+ dto.setPriority(3);
+ CommonResult result = collectTaskService.compensateTask(dto);
+ log.info("{},补偿任务结果:{}", source,Func.toJson(result));
+ }
+
+ private String success() {
+ return "" +
+ "" +
+ "0" +
+ "成功" +
+ "" +
+ "";
+ }
+
+ private String fail(String message) {
+ return "" +
+ "" +
+ "1" +
+ "" + message + "" +
+ "" +
+ "";
+ }
+}
diff --git a/src/main/java/com/docus/server/message/controller/ZhaoQingFirstHospitalController.java b/src/main/java/com/docus/server/message/controller/ZhaoQingFirstHospitalController.java
new file mode 100644
index 0000000..2095320
--- /dev/null
+++ b/src/main/java/com/docus/server/message/controller/ZhaoQingFirstHospitalController.java
@@ -0,0 +1,43 @@
+package com.docus.server.message.controller;
+
+import com.docus.server.message.busservice.ZqBusinessService;
+import com.docus.server.message.dto.Message;
+import com.docus.server.message.dto.MessageResponse;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.annotation.Resource;
+
+/**
+ * @author WYBDEV
+ */
+@Api("肇庆第一人民医院")
+@RestController
+@Slf4j
+@RequestMapping("/hospital/zqFirstRy")
+public class ZhaoQingFirstHospitalController {
+
+ @Resource
+ private ZqBusinessService zqBusinessService;
+
+
+ @PostMapping("/wsRecordSubmit/do")
+ @ApiOperation("肇庆第一人医电子病历提交消息接收")
+ public MessageResponse receiveWsRecordSubmitMessage(@RequestBody Message message) {
+ log.info("肇庆第一人医电子病历提交消息接收:{}", message);
+ return zqBusinessService.recordSubmitHandle(message);
+ }
+
+ @PostMapping("/wsNurseSubmit/do")
+ @ApiOperation("肇庆第一人医护理提交消息接收")
+ public MessageResponse receiveWsNurseSubmitMessage(@RequestBody Message message) {
+ log.info("肇庆第一人医护理提交消息接收:{}", message);
+ return zqBusinessService.wsNurseSubmitHandle(message);
+ }
+
+}
diff --git a/src/main/java/com/docus/server/message/converters/ZqWsNurseSubmitMessageConvert.java b/src/main/java/com/docus/server/message/converters/ZqWsNurseSubmitMessageConvert.java
new file mode 100644
index 0000000..3ec6acd
--- /dev/null
+++ b/src/main/java/com/docus/server/message/converters/ZqWsNurseSubmitMessageConvert.java
@@ -0,0 +1,116 @@
+package com.docus.server.message.converters;
+
+import com.docus.core.util.DateUtil;
+import com.docus.core.util.Func;
+import com.docus.infrastructure.core.exception.BaseException;
+import com.docus.server.message.dto.TbasicQrPreciseCondition;
+import com.docus.server.message.dto.ZqWsNurseSubmitDTO;
+import com.docus.server.message.util.XmlUtil;
+import org.w3c.dom.Node;
+
+import java.util.Date;
+
+public class ZqWsNurseSubmitMessageConvert {
+ public static ZqWsNurseSubmitDTO convert(String str) {
+ String jzh = null;
+ String inpatientNo = null;
+ String name = null;
+ String submitDate = null;
+ Integer admissTimes = null;
+ String admissDate = null;
+ String disDate = null;
+ XmlUtil xmlUtil = XmlUtil.of(str);
+ try {
+ // 住院流水号
+ Node inHospNoNode = xmlUtil.getNode("/Request/Msg/INHOSP_NO");
+ jzh = inHospNoNode.getTextContent();
+ } catch (Exception ex) {
+ throw new BaseException("解析 住院流水号 出错!");
+ }
+
+ try {
+ // 住院号
+ Node inHospIndexNoNode = xmlUtil.getNode("/Request/Msg/INHOSP_INDEX_NO");
+ inpatientNo = inHospIndexNoNode.getTextContent();
+ } catch (Exception ex) {
+ throw new BaseException("解析 住院号 出错!");
+ }
+ try {
+ // 住院次数
+ Node visitNoNode = xmlUtil.getNode("/Request/Msg/VISIT_NO");
+ String admissTimesStr = visitNoNode.getTextContent();
+ if (Func.isNotBlank(admissTimesStr)) {
+ admissTimes = Integer.parseInt(admissTimesStr.trim());
+ }
+ } catch (Exception ex) {
+ throw new BaseException("解析 住院次数 出错!");
+ }
+ try {
+ // 患者姓名
+ Node nameNode = xmlUtil.getNode("/Request/Msg/NAME");
+ name = nameNode.getTextContent();
+ } catch (Exception ex) {
+ throw new BaseException("解析 姓名 出错!");
+ }
+ try {
+ // 提交时间
+ Node admissTimeNode = xmlUtil.getNode("/Request/Msg/ADMISS_TIME");
+ String admissTime = admissTimeNode.getTextContent();
+ if (Func.isNotBlank(admissTime)) {
+ Date admissDateTime = Func.parseDate(admissTime.trim(), DateUtil.PATTERN_DATETIME);
+ admissDate = Func.formatDateTime(admissDateTime);
+ }
+
+ } catch (Exception ex) {
+ throw new BaseException("解析 入院时间 出错!");
+ }
+ try {
+ // 提交时间
+ Node disTimeNode = xmlUtil.getNode("/Request/Msg/DIS_TIME");
+ String disTime = disTimeNode.getTextContent();
+ if (Func.isNotBlank(disTime)) {
+ Date disDateTime = Func.parseDate(disTime.trim(), DateUtil.PATTERN_DATETIME);
+ disDate = Func.formatDateTime(disDateTime);
+ }
+
+ } catch (Exception ex) {
+ throw new BaseException("解析 出院时间 出错!");
+ }
+
+ try {
+ // 提交时间
+ Node submitTimeNode = xmlUtil.getNode("/Request/Msg/SUBMIT_TIME");
+ String submitTime = submitTimeNode.getTextContent();
+ Date submitDateTime = Func.parseDate(submitTime.trim(), DateUtil.PATTERN_DATETIME);
+ submitDate = Func.formatDateTime(submitDateTime);
+ } catch (Exception ex) {
+ throw new BaseException("解析 提交时间 出错!");
+ }
+
+ ZqWsNurseSubmitDTO nurseSubmitDTO = new ZqWsNurseSubmitDTO();
+ nurseSubmitDTO.setJzh(jzh);
+ nurseSubmitDTO.setInpatientNo(inpatientNo);
+ nurseSubmitDTO.setAdmissTimes(admissTimes);
+ nurseSubmitDTO.setName(name);
+ nurseSubmitDTO.setAdmissDate(admissDate);
+ nurseSubmitDTO.setDisDate(disDate);
+ nurseSubmitDTO.setSubmitDate(submitDate);
+ return nurseSubmitDTO;
+ }
+
+
+ public static TbasicQrPreciseCondition convert(ZqWsNurseSubmitDTO dto) {
+ if (dto == null) {
+ return null;
+ }
+ TbasicQrPreciseCondition condition = new TbasicQrPreciseCondition();
+ condition.setJzh(dto.getJzh());
+ condition.setInpatientNo(dto.getInpatientNo());
+ condition.setAdmissTimes(dto.getAdmissTimes());
+ condition.setAdmissDate(dto.getAdmissDate());
+ condition.setDisDate(dto.getDisDate());
+ condition.setName(dto.getName());
+ return condition;
+ }
+
+}
diff --git a/src/main/java/com/docus/server/message/converters/ZqWsRecordSubmitMessageConvert.java b/src/main/java/com/docus/server/message/converters/ZqWsRecordSubmitMessageConvert.java
new file mode 100644
index 0000000..7892d58
--- /dev/null
+++ b/src/main/java/com/docus/server/message/converters/ZqWsRecordSubmitMessageConvert.java
@@ -0,0 +1,114 @@
+package com.docus.server.message.converters;
+
+import com.docus.core.util.DateUtil;
+import com.docus.core.util.Func;
+import com.docus.infrastructure.core.exception.BaseException;
+import com.docus.server.message.dto.TbasicQrPreciseCondition;
+import com.docus.server.message.dto.ZqRecordSubmitDTO;
+import com.docus.server.message.util.XmlUtil;
+import org.w3c.dom.Node;
+
+import java.util.Date;
+
+public class ZqWsRecordSubmitMessageConvert {
+ public static ZqRecordSubmitDTO convert(String str) {
+ String jzh = null;
+ String inpatientNo = null;
+ String name = null;
+ String submitDate = null;
+ Integer admissTimes = null;
+ String admissDate = null;
+ String disDate = null;
+ XmlUtil xmlUtil = XmlUtil.of(str);
+ try {
+ // 住院流水号
+ Node inHospNoNode = xmlUtil.getNode("/Request/Msg/INHOSP_NO");
+ jzh = inHospNoNode.getTextContent();
+ } catch (Exception ex) {
+ throw new BaseException("解析 住院流水号 出错!");
+ }
+
+ try {
+ // 住院号
+ Node inHospIndexNoNode = xmlUtil.getNode("/Request/Msg/INHOSP_INDEX_NO");
+ inpatientNo = inHospIndexNoNode.getTextContent();
+ } catch (Exception ex) {
+ throw new BaseException("解析 住院号 出错!");
+ }
+ try {
+ // 住院次数
+ Node visitNoNode = xmlUtil.getNode("/Request/Msg/VISIT_NO");
+ String admissTimesStr = visitNoNode.getTextContent();
+ if (Func.isNotBlank(admissTimesStr)) {
+ admissTimes = Integer.parseInt(admissTimesStr.trim());
+ }
+ } catch (Exception ex) {
+ throw new BaseException("解析 住院次数 出错!");
+ }
+ try {
+ // 患者姓名
+ Node nameNode = xmlUtil.getNode("/Request/Msg/NAME");
+ name = nameNode.getTextContent();
+ } catch (Exception ex) {
+ throw new BaseException("解析 姓名 出错!");
+ }
+ try {
+ // 提交时间
+ Node admissTimeNode = xmlUtil.getNode("/Request/Msg/ADMISS_TIME");
+ String admissTime = admissTimeNode.getTextContent();
+ if (Func.isNotBlank(admissTime)) {
+ Date admissDateTime = Func.parseDate(admissTime.trim(), DateUtil.PATTERN_DATETIME);
+ admissDate = Func.formatDateTime(admissDateTime);
+ }
+
+ } catch (Exception ex) {
+ throw new BaseException("解析 入院时间 出错!");
+ }
+ try {
+ // 提交时间
+ Node disTimeNode = xmlUtil.getNode("/Request/Msg/DIS_TIME");
+ String disTime = disTimeNode.getTextContent();
+ if (Func.isNotBlank(disTime)) {
+ Date disDateTime = Func.parseDate(disTime.trim(), DateUtil.PATTERN_DATETIME);
+ disDate = Func.formatDateTime(disDateTime);
+ }
+
+ } catch (Exception ex) {
+ throw new BaseException("解析 出院时间 出错!");
+ }
+
+ try {
+ // 提交时间
+ Node submitTimeNode = xmlUtil.getNode("/Request/Msg/SUBMIT_TIME");
+ String submitTime = submitTimeNode.getTextContent();
+ Date submitDateTime = Func.parseDate(submitTime.trim(), DateUtil.PATTERN_DATETIME);
+ submitDate = Func.formatDateTime(submitDateTime);
+ } catch (Exception ex) {
+ throw new BaseException("解析 提交时间 出错!");
+ }
+
+ ZqRecordSubmitDTO recordSubmitDTO = new ZqRecordSubmitDTO();
+ recordSubmitDTO.setJzh(jzh);
+ recordSubmitDTO.setInpatientNo(inpatientNo);
+ recordSubmitDTO.setAdmissTimes(admissTimes);
+ recordSubmitDTO.setName(name);
+ recordSubmitDTO.setAdmissDate(admissDate);
+ recordSubmitDTO.setDisDate(disDate);
+ recordSubmitDTO.setSubmitDate(submitDate);
+ return recordSubmitDTO;
+ }
+
+ public static TbasicQrPreciseCondition convert(ZqRecordSubmitDTO dto) {
+ if (dto==null) {
+ return null;
+ }
+ TbasicQrPreciseCondition condition = new TbasicQrPreciseCondition();
+ condition.setJzh(dto.getJzh());
+ condition.setInpatientNo(dto.getInpatientNo());
+ condition.setAdmissTimes(dto.getAdmissTimes());
+ condition.setAdmissDate(dto.getAdmissDate());
+ condition.setDisDate(dto.getDisDate());
+ condition.setName(dto.getName());
+ return condition;
+ }
+}
diff --git a/src/main/java/com/docus/server/message/dto/TbasicQrPreciseCondition.java b/src/main/java/com/docus/server/message/dto/TbasicQrPreciseCondition.java
new file mode 100644
index 0000000..2811fc8
--- /dev/null
+++ b/src/main/java/com/docus/server/message/dto/TbasicQrPreciseCondition.java
@@ -0,0 +1,37 @@
+package com.docus.server.message.dto;
+
+import lombok.Data;
+
+/**
+ * 病案基础信息查询精准条件,都采用 等于 的匹配方式
+ *
+ * @author YongBin Wen
+ * @date 2024/1/22 14:54
+ */
+@Data
+public class TbasicQrPreciseCondition {
+ /**
+ * 住院流水号/记账号
+ */
+ private String jzh;
+ /**
+ * 住院号
+ */
+ private String inpatientNo;
+ /**
+ * 住院次数
+ */
+ private Integer admissTimes;
+ /**
+ * 患者姓名
+ */
+ private String name;
+ /**
+ * 入院时间 yyyy-MM-dd HH:mm:ss
+ */
+ private String admissDate;
+ /**
+ * 出院时间 yyyy-MM-dd HH:mm:ss
+ */
+ private String disDate;
+}
diff --git a/src/main/java/com/docus/server/message/dto/ZqRecordSubmitDTO.java b/src/main/java/com/docus/server/message/dto/ZqRecordSubmitDTO.java
new file mode 100644
index 0000000..af64620
--- /dev/null
+++ b/src/main/java/com/docus/server/message/dto/ZqRecordSubmitDTO.java
@@ -0,0 +1,42 @@
+package com.docus.server.message.dto;
+
+import lombok.Data;
+
+/**
+ * 肇庆第一人民医院电子病历提交信息
+ *
+ * @author wyb
+ */
+@Data
+public class ZqRecordSubmitDTO {
+ /**
+ * 住院流水号/记账号
+ */
+ private String jzh;
+ /**
+ * 住院号
+ */
+ private String inpatientNo;
+ /**
+ * 住院次数
+ */
+ private Integer admissTimes;
+ /**
+ * 患者姓名
+ */
+ private String name;
+ /**
+ * 入院时间 yyyy-MM-dd HH:mm:ss
+ */
+ private String admissDate;
+ /**
+ * 出院时间 yyyy-MM-dd HH:mm:ss
+ */
+ private String disDate;
+ /**
+ * 提交时间 yyyy-MM-dd HH:mm:ss
+ */
+ private String submitDate;
+
+
+}
\ No newline at end of file
diff --git a/src/main/java/com/docus/server/message/dto/ZqWsNurseSubmitDTO.java b/src/main/java/com/docus/server/message/dto/ZqWsNurseSubmitDTO.java
new file mode 100644
index 0000000..15e87e3
--- /dev/null
+++ b/src/main/java/com/docus/server/message/dto/ZqWsNurseSubmitDTO.java
@@ -0,0 +1,39 @@
+package com.docus.server.message.dto;
+
+import lombok.Data;
+/**
+ * 肇庆第一人民医院临床护理提交信息
+ *
+ * @author wyb
+ */
+@Data
+public class ZqWsNurseSubmitDTO {
+ /**
+ * 住院流水号/记账号
+ */
+ private String jzh;
+ /**
+ * 住院号
+ */
+ private String inpatientNo;
+ /**
+ * 住院次数
+ */
+ private Integer admissTimes;
+ /**
+ * 患者姓名
+ */
+ private String name;
+ /**
+ * 入院时间 yyyy-MM-dd HH:mm:ss
+ */
+ private String admissDate;
+ /**
+ * 出院时间 yyyy-MM-dd HH:mm:ss
+ */
+ private String disDate;
+ /**
+ * 提交时间 yyyy-MM-dd HH:mm:ss
+ */
+ private String submitDate;
+}
\ No newline at end of file
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 1b87892..d895d15 100644
--- a/src/main/java/com/docus/server/message/mapper/TBasicMapper.java
+++ b/src/main/java/com/docus/server/message/mapper/TBasicMapper.java
@@ -1,6 +1,7 @@
package com.docus.server.message.mapper;
+import com.docus.server.message.dto.TbasicQrPreciseCondition;
import com.docus.server.message.entity.MaternalInfantRelationship;
import com.docus.server.message.entity.TBasic;
import org.apache.ibatis.annotations.Mapper;
@@ -13,6 +14,9 @@ import java.util.List;
public interface TBasicMapper {
List getPatientIdsByInpatientNoAndTimes(@Param("inpatientNo") String inHospIndexNo, @Param("admissTimes") Integer visitNo);
+ List getPatientIdByPreciseConditions(@Param("condition")TbasicQrPreciseCondition condition);
+
+
/**
* 更新医生提交时间
*
diff --git a/src/main/java/com/docus/server/message/validate/ZqRecordSubmitValidate.java b/src/main/java/com/docus/server/message/validate/ZqRecordSubmitValidate.java
new file mode 100644
index 0000000..002f84e
--- /dev/null
+++ b/src/main/java/com/docus/server/message/validate/ZqRecordSubmitValidate.java
@@ -0,0 +1,22 @@
+package com.docus.server.message.validate;
+
+import com.docus.core.util.Func;
+import com.docus.infrastructure.core.exception.BaseException;
+import com.docus.server.message.dto.ZqRecordSubmitDTO;
+
+public class ZqRecordSubmitValidate {
+ public static void verifyRecordSubmitDTO(ZqRecordSubmitDTO recordSubmitDto) throws BaseException{
+ String jzh = recordSubmitDto.getJzh();
+ String inpatientNo = recordSubmitDto.getInpatientNo();
+ String name = recordSubmitDto.getName();
+ String submitDate = recordSubmitDto.getSubmitDate();
+ if (Func.isBlank(jzh)
+ && Func.isBlank(inpatientNo)
+ && Func.isBlank(name)) {
+ throw new BaseException("住院流水号、住院号、患者姓名 不可全部为空!");
+ }
+ if (Func.isBlank(submitDate)) {
+ throw new BaseException("提交时间不能为空!");
+ }
+ }
+}
diff --git a/src/main/java/com/docus/server/message/validate/ZqWsNurseSubmitValidate.java b/src/main/java/com/docus/server/message/validate/ZqWsNurseSubmitValidate.java
new file mode 100644
index 0000000..1687918
--- /dev/null
+++ b/src/main/java/com/docus/server/message/validate/ZqWsNurseSubmitValidate.java
@@ -0,0 +1,22 @@
+package com.docus.server.message.validate;
+
+import com.docus.core.util.Func;
+import com.docus.infrastructure.core.exception.BaseException;
+import com.docus.server.message.dto.ZqWsNurseSubmitDTO;
+
+public class ZqWsNurseSubmitValidate {
+ public static void verifyNurseSubmitDTO(ZqWsNurseSubmitDTO dto) throws BaseException {
+ String jzh = dto.getJzh();
+ String inpatientNo = dto.getInpatientNo();
+ String name = dto.getName();
+ String submitDate = dto.getSubmitDate();
+ if (Func.isBlank(jzh)
+ && Func.isBlank(inpatientNo)
+ && Func.isBlank(name)) {
+ throw new BaseException("住院流水号、住院号、患者姓名 不可全部为空!");
+ }
+ if (Func.isBlank(submitDate)) {
+ throw new BaseException("提交时间不能为空!");
+ }
+ }
+}
diff --git a/src/main/resources/logback.xml b/src/main/resources/logback.xml
index 8b30e12..2a7c4c8 100644
--- a/src/main/resources/logback.xml
+++ b/src/main/resources/logback.xml
@@ -40,6 +40,7 @@
+
diff --git a/src/main/resources/mapper/TBasicMapper.xml b/src/main/resources/mapper/TBasicMapper.xml
index 5565b5d..073c6fc 100644
--- a/src/main/resources/mapper/TBasicMapper.xml
+++ b/src/main/resources/mapper/TBasicMapper.xml
@@ -50,6 +50,31 @@
FROM `docus_medicalrecord`.t_basic tb
WHERE tb.inpatient_no=#{inpatientNo} and tb.admiss_times=#{admissTimes}
+
+
+
+