Index: ssts-web/src/main/webapp/disinfectsystem/config/gzs12rmyy/spring/applicationContext-his-gzs12rmyy.xml =================================================================== diff -u -r35651 -r35657 --- ssts-web/src/main/webapp/disinfectsystem/config/gzs12rmyy/spring/applicationContext-his-gzs12rmyy.xml (.../applicationContext-his-gzs12rmyy.xml) (revision 35651) +++ ssts-web/src/main/webapp/disinfectsystem/config/gzs12rmyy/spring/applicationContext-his-gzs12rmyy.xml (.../applicationContext-his-gzs12rmyy.xml) (revision 35657) @@ -107,4 +107,16 @@ + + + + + + + + + + + + \ No newline at end of file Index: ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/mq/dao/gzs12rmyy/UpdateOperationApplyQueueListener.java =================================================================== diff -u --- ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/mq/dao/gzs12rmyy/UpdateOperationApplyQueueListener.java (revision 0) +++ ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/mq/dao/gzs12rmyy/UpdateOperationApplyQueueListener.java (revision 35657) @@ -0,0 +1,58 @@ +package com.forgon.disinfectsystem.mq.dao.gzs12rmyy; + +import java.util.List; + +import javax.jms.Message; +import javax.jms.MessageListener; + +import org.apache.log4j.Logger; + +import com.forgon.disinfectsystem.datasynchronization.model.PatientInfoVO; +import com.forgon.disinfectsystem.datasynchronization.service.DataSynchronizationManager; + +/** + * 更新手术申请单队列的监听器GZS12RMYY-49 + */ +public class UpdateOperationApplyQueueListener implements MessageListener { + + private static Logger logger = Logger.getLogger(UpdateOperationApplyQueueListener.class); + + DataSynchronizationManager dataSynchronizationManager; + + public void setDataSynchronizationManager(DataSynchronizationManager dataSynchronizationManager) { + this.dataSynchronizationManager = dataSynchronizationManager; + } + + @Override + public void onMessage(Message message) { + String jmsDestination = MQHelper.XDGY_updateOperationApplyQueue; + String messageBody = ""; + try { + //读取消息内容 + messageBody = MQHelper.readMessage(jmsDestination, message); + try { + //解析消息中的患者信息 + List patientInfoVOList = MQHelper.getAllPatientInfoVOData(jmsDestination, messageBody); + //同步患者信息 + dataSynchronizationManager.syncMqPatientInfo(patientInfoVOList); + } catch (Exception e) { + logger.info("解析【" + jmsDestination +"】消息失败:" + e.getMessage()); + } + //回调下平台服务 + new Thread(){ + @Override + public void run() { + try { + MQHelper.sentAck(jmsDestination, message); + } catch (Exception e) { + e.printStackTrace(); + } + } + }.start(); + } catch (Exception e) { + logger.info("监听【" + jmsDestination +"】消息队列失败:" + e.getMessage()); + e.printStackTrace(); + } + } + +} Index: ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/mq/dao/gzs12rmyy/CreateOperationApplyQueueListener.java =================================================================== diff -u --- ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/mq/dao/gzs12rmyy/CreateOperationApplyQueueListener.java (revision 0) +++ ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/mq/dao/gzs12rmyy/CreateOperationApplyQueueListener.java (revision 35657) @@ -0,0 +1,58 @@ +package com.forgon.disinfectsystem.mq.dao.gzs12rmyy; + +import java.util.List; + +import javax.jms.Message; +import javax.jms.MessageListener; + +import org.apache.log4j.Logger; + +import com.forgon.disinfectsystem.datasynchronization.model.PatientInfoVO; +import com.forgon.disinfectsystem.datasynchronization.service.DataSynchronizationManager; + +/** + * 注册手术申请单队列的监听器GZS12RMYY-49 + */ +public class CreateOperationApplyQueueListener implements MessageListener { + + private static Logger logger = Logger.getLogger(CreateOperationApplyQueueListener.class); + + DataSynchronizationManager dataSynchronizationManager; + + public void setDataSynchronizationManager(DataSynchronizationManager dataSynchronizationManager) { + this.dataSynchronizationManager = dataSynchronizationManager; + } + + @Override + public void onMessage(Message message) { + String jmsDestination = MQHelper.XDGY_createOperationApplyQueue; + String messageBody = ""; + try { + //读取消息内容 + messageBody = MQHelper.readMessage(jmsDestination, message); + try { + //解析消息中的患者信息 + List patientInfoVOList = MQHelper.getAllPatientInfoVOData(jmsDestination, messageBody); + //同步患者信息 + dataSynchronizationManager.syncMqPatientInfo(patientInfoVOList); + } catch (Exception e) { + logger.info("解析【" + jmsDestination +"】消息失败:" + e.getMessage()); + } + //回调下平台服务 + new Thread(){ + @Override + public void run() { + try { + MQHelper.sentAck(jmsDestination, message); + } catch (Exception e) { + e.printStackTrace(); + } + } + }.start(); + } catch (Exception e) { + logger.info("监听【" + jmsDestination +"】消息队列失败:" + e.getMessage()); + e.printStackTrace(); + } + } + +} Index: ssts-web/src/main/webapp/disinfectsystem/config/gzs12rmyy/spring/replicaJmsIbmListener.xml =================================================================== diff -u -r35651 -r35657 --- ssts-web/src/main/webapp/disinfectsystem/config/gzs12rmyy/spring/replicaJmsIbmListener.xml (.../replicaJmsIbmListener.xml) (revision 35651) +++ ssts-web/src/main/webapp/disinfectsystem/config/gzs12rmyy/spring/replicaJmsIbmListener.xml (.../replicaJmsIbmListener.xml) (revision 35657) @@ -101,4 +101,60 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Index: ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/mq/dao/gzs12rmyy/MQHelper.java =================================================================== diff -u -r35651 -r35657 --- ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/mq/dao/gzs12rmyy/MQHelper.java (.../MQHelper.java) (revision 35651) +++ ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/mq/dao/gzs12rmyy/MQHelper.java (.../MQHelper.java) (revision 35657) @@ -82,21 +82,37 @@ public static final String USERMQUEUE = "OUT.S023.MS024.LQ"; /** - * 医疗卫生机构(科室)信息注册服务队列名称XD_createDepartment + * 医疗卫生机构(科室)信息注册服务队列名称XD_createDepartment(GZS12RMYY-48) */ public static final String XDGY_createDepartmentQueue = "XDGY_createDepartment"; /** - * 医疗卫生机构(科室)信息更新服务队列名称XD_updateDepartment + * 医疗卫生机构(科室)信息更新服务队列名称XD_updateDepartment(GZS12RMYY-48) */ public static final String XDGY_updateDepartmentQueue = "XDGY_updateDepartment"; /** - * 医疗卫生人员信息注册服务队列名称XD_createPractitioner + * 医疗卫生人员信息注册服务队列名称XD_createPractitioner(GZS12RMYY-48) */ public static final String XDGY_createPractitionerQueue = "XDGY_createPractitioner"; /** - * 医疗卫生人员信息更新服务队列名称XD_updatePractitioner + * 医疗卫生人员信息更新服务队列名称XD_updatePractitioner(GZS12RMYY-48) */ public static final String XDGY_updatePractitionerQueue = "XDGY_updatePractitioner"; + /** + * 手术申请单注册服务队列名称XDGY_createOperationApply(GZS12RMYY-49) + */ + public static final String XDGY_createOperationApplyQueue = "XDGY_createOperationApply"; + /** + * 手术申请单更新服务队列名称XDGY_ updateOperationApply(GZS12RMYY-49) + */ + public static final String XDGY_updateOperationApplyQueue = "XDGY_updateOperationApply"; + /** + * 手术安排信息注册服务队列名称XDGY_createOperationPlan(GZS12RMYY-49) + */ + public static final String XDGY_createOperationPlanQueue = "XDGY_createOperationPlan"; + /** + * 手术安排信息更新服务队列名称XDGY_updateOperationPlan(GZS12RMYY-49) + */ + public static final String XDGY_updateOperationPlanQueue = "XDGY_updateOperationPlan"; /** * ACK地址 @@ -1049,4 +1065,325 @@ return strList; } + /** + * 解析xml获取PatientInfoVO + * @param jmsDestination + * @param messageBody + * @return + */ + @SuppressWarnings("unchecked") + public static List getAllPatientInfoVOData( + String jmsDestination, String messageBody) throws Exception { + List resultPatientInfoList = new ArrayList(); + if(StringUtils.equals(jmsDestination, XDGY_createOperationApplyQueue)){ + + //messageBody = xmlFileToStr("D:\\项目\\喀什地区第一人民医院\\科室新增.xml").get(0); + messageBody = StringEscapeUtils.unescapeHtml(messageBody); + int beginIndex = messageBody.indexOf(""); + if(beginIndex == -1 || endIndex == -1){ + return null; + } + messageBody = messageBody.substring(beginIndex, endIndex + "".length()); + Document document = DocumentHelper.parseText(messageBody.trim()); + Map nameSpaceURIMap = new HashMap(); + nameSpaceURIMap.put("s", "urn:hl7-org:v3"); + + //subject节点可以有多个,一个节点代表一个手术申请单 + String subjectXpath = "/POOR_IN200901UV/s:controlActProcess/s:subject"; + XPath xpath = document.createXPath(subjectXpath); + xpath.setNamespaceURIs(nameSpaceURIMap); + List subjectNodeList = xpath.selectNodes(document, xpath); + if(CollectionUtils.isEmpty(subjectNodeList)){ + return null; + } + + for(int i=1;i<=subjectNodeList.size();i++){ + PatientInfoVO vo = new PatientInfoVO(); + String hospitalNumberXpath = subjectXpath + "[" + i + "]/s:procedureRequest/s:componentOf1/s:encounter/s:id/s:item[@root='2.16.156.10011.2.5.1.9']/@extension"; + String hospitalNumber = processDataByXpath(document, nameSpaceURIMap, hospitalNumberXpath); + String patientNameXpath = subjectXpath + "[" + i + "]/s:procedureRequest/s:componentOf1/s:encounter/s:subject/s:patient/s:patientPerson/s:name/s:item/s:part/@value"; + String patientName = processDataByXpath(document, nameSpaceURIMap, patientNameXpath); + String patientSexXpath = subjectXpath + "[" + i + "]/s:procedureRequest/s:componentOf1/s:encounter/s:subject/s:patient/s:patientPerson/s:administrativeGenderCode/s:displayName/@value"; + String patientSex = processDataByXpath(document, nameSpaceURIMap, patientSexXpath); + String patientAgeXpath = subjectXpath + "[" + i + "]/s:procedureRequest/s:componentOf1/s:encounter/s:subject/s:patient/s:patientPerson/s:birthTime/s:originalText/@value"; + String patientAge = processDataByXpath(document, nameSpaceURIMap, patientAgeXpath); + String ascriptionDepartmentXpath = subjectXpath + "[" + i + "]/s:procedureRequest/s:componentOf1/s:encounter/s:location/s:serviceDeliveryLocation/s:serviceProviderOrganization/s:name/s:item/s:part/@value"; + String ascriptionDepartment = processDataByXpath(document, nameSpaceURIMap, ascriptionDepartmentXpath); + String patientAreaXpath = subjectXpath + "[" + i + "]/s:procedureRequest/s:componentOf1/s:encounter/s:location/s:serviceDeliveryLocation/s:serviceProviderOrganization/s:asOrganizationPartOf/s:wholeOrganization/s:name/s:item/s:part/@value"; + String patientArea = processDataByXpath(document, nameSpaceURIMap, patientAreaXpath); + String operationTimeXpath = subjectXpath + "[" + i + "]/s:procedureRequest/s:component2/s:procedureRequest/s:performer/s:time/s:low/@value"; + String operationTime = processDataByXpath(document, nameSpaceURIMap, operationTimeXpath); + String operationXpath = subjectXpath + "[" + i + "]/s:procedureRequest/s:component2/s:procedureRequest/s:code/s:displayName/@value"; + String operation = processDataByXpath(document, nameSpaceURIMap, operationXpath); + String doctorNameXpath = subjectXpath + "[" + i + "]/s:procedureRequest/s:component2/s:procedureRequest/s:performer/s:assignedEntity/s:assignedPerson/s:name/s:item/s:part/@value"; + String doctorName = processDataByXpath(document, nameSpaceURIMap, doctorNameXpath); + String opRoomIdXpath = subjectXpath + "[" + i + "]/s:procedureRequest/s:location/s:serviceDeliveryLocation/s:location/s:name/s:item/s:part/@value"; + String opRoomId = processDataByXpath(document, nameSpaceURIMap, opRoomIdXpath); + + vo.setHospitalNumber(hospitalNumber); + vo.setPatientName(patientName); + vo.setPatientSex(patientSex); + vo.setPatientAge(patientAge); + vo.setAscriptionDepartment(ascriptionDepartment); + vo.setPatientArea(patientArea); + vo.setOperationTime(operationTime); + vo.setOperation(operation); + vo.setDoctorName(doctorName); + vo.setOpRoomId(opRoomId); + resultPatientInfoList.add(vo); + } + }else if(StringUtils.equals(jmsDestination, XDGY_updateOperationApplyQueue)){ + //messageBody = xmlFileToStr("D:\\项目\\喀什地区第一人民医院\\科室新增.xml").get(0); + messageBody = StringEscapeUtils.unescapeHtml(messageBody); + int beginIndex = messageBody.indexOf(""); + if(beginIndex == -1 || endIndex == -1){ + return null; + } + messageBody = messageBody.substring(beginIndex, endIndex + "".length()); + Document document = DocumentHelper.parseText(messageBody.trim()); + Map nameSpaceURIMap = new HashMap(); + nameSpaceURIMap.put("s", "urn:hl7-org:v3"); + + //subject节点可以有多个,一个节点代表一个手术申请单 + String subjectXpath = "/POOR_IN200902UV/s:controlActProcess/s:subject"; + XPath xpath = document.createXPath(subjectXpath); + xpath.setNamespaceURIs(nameSpaceURIMap); + List subjectNodeList = xpath.selectNodes(document, xpath); + if(CollectionUtils.isEmpty(subjectNodeList)){ + return null; + } + for(int i=1;i<=subjectNodeList.size();i++){ + PatientInfoVO vo = new PatientInfoVO(); + String hospitalNumberXpath = subjectXpath + "[" + i + "]/s:procedureRequest/s:componentOf1/s:encounter/s:id/s:item[@root='2.16.156.10011.2.5.1.9']/@extension"; + String hospitalNumber = processDataByXpath(document, nameSpaceURIMap, hospitalNumberXpath); + String patientNameXpath = subjectXpath + "[" + i + "]/s:procedureRequest/s:componentOf1/s:encounter/s:subject/s:patient/s:patientPerson/s:name/s:item/s:part/@value"; + String patientName = processDataByXpath(document, nameSpaceURIMap, patientNameXpath); + String patientSexXpath = subjectXpath + "[" + i + "]/s:procedureRequest/s:componentOf1/s:encounter/s:subject/s:patient/s:patientPerson/s:administrativeGenderCode/s:displayName/@value"; + String patientSex = processDataByXpath(document, nameSpaceURIMap, patientSexXpath); + String patientAgeXpath = subjectXpath + "[" + i + "]/s:procedureRequest/s:componentOf1/s:encounter/s:subject/s:patient/s:patientPerson/s:birthTime/s:originalText/@value"; + String patientAge = processDataByXpath(document, nameSpaceURIMap, patientAgeXpath); + String ascriptionDepartmentXpath = subjectXpath + "[" + i + "]/s:procedureRequest/s:componentOf1/s:encounter/s:location/s:serviceDeliveryLocation/s:serviceProviderOrganization/s:name/s:item/s:part/@value"; + String ascriptionDepartment = processDataByXpath(document, nameSpaceURIMap, ascriptionDepartmentXpath); + String patientAreaXpath = subjectXpath + "[" + i + "]/s:procedureRequest/s:componentOf1/s:encounter/s:location/s:serviceDeliveryLocation/s:serviceProviderOrganization/s:asOrganizationPartOf/s:wholeOrganization/s:name/s:item/s:part/@value"; + String patientArea = processDataByXpath(document, nameSpaceURIMap, patientAreaXpath); + String operationTimeXpath = subjectXpath + "[" + i + "]/s:procedureRequest/s:component2/s:procedureRequest/s:performer/s:time/s:low/@value"; + String operationTime = processDataByXpath(document, nameSpaceURIMap, operationTimeXpath); + String operationXpath = subjectXpath + "[" + i + "]/s:procedureRequest/s:component2/s:procedureRequest/s:code/s:displayName/@value"; + String operation = processDataByXpath(document, nameSpaceURIMap, operationXpath); + String doctorNameXpath = subjectXpath + "[" + i + "]/s:procedureRequest/s:component2/s:procedureRequest/s:performer/s:assignedEntity/s:assignedPerson/s:name/s:item/s:part/@value"; + String doctorName = processDataByXpath(document, nameSpaceURIMap, doctorNameXpath); + String opRoomIdXpath = subjectXpath + "[" + i + "]/s:procedureRequest/s:location/s:serviceDeliveryLocation/s:location/s:name/s:item/s:part/@value"; + String opRoomId = processDataByXpath(document, nameSpaceURIMap, opRoomIdXpath); + + vo.setHospitalNumber(hospitalNumber); + vo.setPatientName(patientName); + vo.setPatientSex(patientSex); + vo.setPatientAge(patientAge); + vo.setAscriptionDepartment(ascriptionDepartment); + vo.setPatientArea(patientArea); + vo.setOperationTime(operationTime); + vo.setOperation(operation); + vo.setDoctorName(doctorName); + vo.setOpRoomId(opRoomId); + resultPatientInfoList.add(vo); + } + }else if(StringUtils.equals(jmsDestination, XDGY_createOperationPlanQueue)){ + //messageBody = xmlFileToStr("D:\\项目\\喀什地区第一人民医院\\科室新增.xml").get(0); + messageBody = StringEscapeUtils.unescapeHtml(messageBody); + int beginIndex = messageBody.indexOf(""); + if(beginIndex == -1 || endIndex == -1){ + return null; + } + messageBody = messageBody.substring(beginIndex, endIndex + "".length()); + Document document = DocumentHelper.parseText(messageBody.trim()); + Map nameSpaceURIMap = new HashMap(); + nameSpaceURIMap.put("s", "urn:hl7-org:v3"); + + //subject节点可以有多个,一个节点代表一个手术申请单 + String subjectXpath = "/PRSC_IN010101UV01/s:controlActProcess/s:subject"; + XPath xpath = document.createXPath(subjectXpath); + xpath.setNamespaceURIs(nameSpaceURIMap); + List subjectNodeList = xpath.selectNodes(document, xpath); + if(CollectionUtils.isEmpty(subjectNodeList)){ + return null; + } + for(int i=1;i<=subjectNodeList.size();i++){ + PatientInfoVO vo = new PatientInfoVO(); + String hospitalNumberXpath = subjectXpath + "[" + i + "]/s:actAppointment/s:subject/s:patient/s:id/s:item[@root='2.16.156.10011.2.5.1.9']/@extension"; + String hospitalNumber = processDataByXpath(document, nameSpaceURIMap, hospitalNumberXpath); + String operationScheduleIdXpath = subjectXpath + "[" + i + "]/s:actAppointment/s:referencedOrder/s:actOrder/s:id/@extension"; + String operationScheduleId = processDataByXpath(document, nameSpaceURIMap, operationScheduleIdXpath); + String patientNameXpath = subjectXpath + "[" + i + "]/s:actAppointment/s:subject/s:patient/s:patientPerson/s:name/s:item/s:part/@value"; + String patientName = processDataByXpath(document, nameSpaceURIMap, patientNameXpath); + String patientSexXpath = subjectXpath + "[" + i + "]/s:actAppointment/s:subject/s:patient/s:patientPerson/s:administrativeGenderCode/s:displayName/@value"; + String patientSex = processDataByXpath(document, nameSpaceURIMap, patientSexXpath); + if(StringUtils.isNotBlank(patientSex)){ + patientSex = patientSex.replace("性", ""); + } + //String patientAgeXpath = subjectXpath + "[" + i + "]/s:procedureRequest/s:componentOf1/s:encounter/s:subject/s:patient/s:patientPerson/s:birthTime/s:originalText/@value"; + //String patientAge = processDataByXpath(document, nameSpaceURIMap, patientAgeXpath); + //String ascriptionDepartmentXpath = subjectXpath + "[" + i + "]/s:procedureRequest/s:componentOf1/s:encounter/s:location/s:serviceDeliveryLocation/s:serviceProviderOrganization/s:name/s:item/s:part/@value"; + //String ascriptionDepartment = processDataByXpath(document, nameSpaceURIMap, ascriptionDepartmentXpath); + //String patientAreaXpath = subjectXpath + "[" + i + "]/s:procedureRequest/s:componentOf1/s:encounter/s:location/s:serviceDeliveryLocation/s:serviceProviderOrganization/s:asOrganizationPartOf/s:wholeOrganization/s:name/s:item/s:part/@value"; + //String patientArea = processDataByXpath(document, nameSpaceURIMap, patientAreaXpath); + String operationXpath = subjectXpath + "[" + i + "]/s:actAppointment/s:code/s:originalText/@value"; + String operation = processDataByXpath(document, nameSpaceURIMap, operationXpath); + String opRoomIdXpath = subjectXpath + "[" + i + "]/s:actAppointment/s:location/s:serviceDeliveryLocation/s:location/s:name/s:item/s:part/@value"; + String opRoomId = processDataByXpath(document, nameSpaceURIMap, opRoomIdXpath); + String operationTimeXpath = subjectXpath + "[" + i + "]/s:actAppointment/s:effectiveTime/s:low/@value"; + String operationTime = processDataByXpath(document, nameSpaceURIMap, operationTimeXpath); + //String doctorNameXpath = subjectXpath + "[" + i + "]/s:actAppointment/s:performer/s:assignedPerson/s:assignedPerson/s:name/s:item/s:part/@value"; + //String doctorName = processDataByXpath(document, nameSpaceURIMap, doctorNameXpath); + + /*String washHandNurseXpath = subjectXpath + "[" + i + "]/s:actAppointment/s:performer/s:assignedPerson/s:code[@displayName='手术助手']/s:assignedPerson/s:name/s:item/s:part/@value"; + String washHandNurse = processDataByXpath(document, nameSpaceURIMap, washHandNurseXpath); + String circuitNurseXpath = subjectXpath + "[" + i + "]/s:actAppointment/s:performer/s:assignedPerson/s:code[@codeSystem='2.16.156.10011.0.9.2.3.2.170']/s:assignedPerson/s:name/s:item/s:part/@value"; + String circuitNurse = processDataByXpath(document, nameSpaceURIMap, circuitNurseXpath);*/ + + String doctorName = ""; + String circuitNurse = ""; + String washHandNurse = ""; + String performerNodeXpathStr = subjectXpath + "[" + i + "]/s:actAppointment/s:performer"; + XPath performerNodeXpath = document.createXPath(performerNodeXpathStr); + performerNodeXpath.setNamespaceURIs(nameSpaceURIMap); + List performerNodeList = performerNodeXpath.selectNodes(document, performerNodeXpath); + if(CollectionUtils.isNotEmpty(performerNodeList)){ + for(int j=1;j<=performerNodeList.size();j++){ + String roleNameXapth = performerNodeXpathStr + "[" + j + "]/s:assignedPerson/s:code/s:displayName/@value"; + String roleName = processDataByXpath(document, nameSpaceURIMap, roleNameXapth); + String staffNameXpath = performerNodeXpathStr + "[" + j + "]/s:assignedPerson/s:assignedPerson/s:name/s:item/s:part/@value"; + String staffName = processDataByXpath(document, nameSpaceURIMap, staffNameXpath); + if(StringUtils.isBlank(roleName)){ + roleNameXapth = performerNodeXpathStr + "[" + j + "]/s:functionCode/s:displayName/@value"; + roleName = processDataByXpath(document, nameSpaceURIMap, roleNameXapth); + } + if(StringUtils.equals(roleName, "巡回护士")){ + circuitNurse = staffName; + }else if(StringUtils.equals(roleName, "手术助手")){ + washHandNurse = staffName; + }else if(StringUtils.equals(roleName, "主刀医生")){ + doctorName = staffName; + } + } + } + + vo.setHospitalNumber(hospitalNumber); + vo.setOperationScheduleId(operationScheduleId); + vo.setPatientName(patientName); + vo.setPatientSex(patientSex); + //vo.setPatientAge(patientAge); + //vo.setAscriptionDepartment(ascriptionDepartment); + //vo.setPatientArea(patientArea); + vo.setOperation(operation); + vo.setOpRoomId(opRoomId); + vo.setOperationTime(operationTime); + vo.setDoctorName(doctorName); + vo.setWashHandNurse(washHandNurse); + vo.setCircuitNurse(circuitNurse); + resultPatientInfoList.add(vo); + } + }else if(StringUtils.equals(jmsDestination, XDGY_updateOperationPlanQueue)){ + + //messageBody = xmlFileToStr("D:\\项目\\喀什地区第一人民医院\\科室新增.xml").get(0); + messageBody = StringEscapeUtils.unescapeHtml(messageBody); + int beginIndex = messageBody.indexOf(""); + if(beginIndex == -1 || endIndex == -1){ + return null; + } + messageBody = messageBody.substring(beginIndex, endIndex + "".length()); + Document document = DocumentHelper.parseText(messageBody.trim()); + Map nameSpaceURIMap = new HashMap(); + nameSpaceURIMap.put("s", "urn:hl7-org:v3"); + + //subject节点可以有多个,一个节点代表一个手术申请单 + String subjectXpath = "/PRSC_IN010201UV01/s:controlActProcess/s:subject"; + XPath xpath = document.createXPath(subjectXpath); + xpath.setNamespaceURIs(nameSpaceURIMap); + List subjectNodeList = xpath.selectNodes(document, xpath); + if(CollectionUtils.isEmpty(subjectNodeList)){ + return null; + } + for(int i=1;i<=subjectNodeList.size();i++){ + PatientInfoVO vo = new PatientInfoVO(); + String hospitalNumberXpath = subjectXpath + "[" + i + "]/s:actAppointment/s:subject/s:patient/s:id/s:item[@root='2.16.156.10011.2.5.1.9']/@extension"; + String hospitalNumber = processDataByXpath(document, nameSpaceURIMap, hospitalNumberXpath); + String operationScheduleIdXpath = subjectXpath + "[" + i + "]/s:actAppointment/s:referencedOrder/s:actOrder/s:id/@extension"; + String operationScheduleId = processDataByXpath(document, nameSpaceURIMap, operationScheduleIdXpath); + String patientNameXpath = subjectXpath + "[" + i + "]/s:actAppointment/s:subject/s:patient/s:patientPerson/s:name/s:item/s:part/@value"; + String patientName = processDataByXpath(document, nameSpaceURIMap, patientNameXpath); + String patientSexXpath = subjectXpath + "[" + i + "]/s:actAppointment/s:subject/s:patient/s:patientPerson/s:administrativeGenderCode/s:displayName/@value"; + String patientSex = processDataByXpath(document, nameSpaceURIMap, patientSexXpath); + if(StringUtils.isNotBlank(patientSex)){ + patientSex = patientSex.replace("性", ""); + } + //String patientAgeXpath = subjectXpath + "[" + i + "]/s:procedureRequest/s:componentOf1/s:encounter/s:subject/s:patient/s:patientPerson/s:birthTime/s:originalText/@value"; + //String patientAge = processDataByXpath(document, nameSpaceURIMap, patientAgeXpath); + //String ascriptionDepartmentXpath = subjectXpath + "[" + i + "]/s:procedureRequest/s:componentOf1/s:encounter/s:location/s:serviceDeliveryLocation/s:serviceProviderOrganization/s:name/s:item/s:part/@value"; + //String ascriptionDepartment = processDataByXpath(document, nameSpaceURIMap, ascriptionDepartmentXpath); + //String patientAreaXpath = subjectXpath + "[" + i + "]/s:procedureRequest/s:componentOf1/s:encounter/s:location/s:serviceDeliveryLocation/s:serviceProviderOrganization/s:asOrganizationPartOf/s:wholeOrganization/s:name/s:item/s:part/@value"; + //String patientArea = processDataByXpath(document, nameSpaceURIMap, patientAreaXpath); + String operationXpath = subjectXpath + "[" + i + "]/s:actAppointment/s:code/s:originalText/@value"; + String operation = processDataByXpath(document, nameSpaceURIMap, operationXpath); + String opRoomIdXpath = subjectXpath + "[" + i + "]/s:actAppointment/s:location/s:serviceDeliveryLocation/s:location/s:name/s:item/s:part/@value"; + String opRoomId = processDataByXpath(document, nameSpaceURIMap, opRoomIdXpath); + String operationTimeXpath = subjectXpath + "[" + i + "]/s:actAppointment/s:effectiveTime/s:low/@value"; + String operationTime = processDataByXpath(document, nameSpaceURIMap, operationTimeXpath); + //String doctorNameXpath = subjectXpath + "[" + i + "]/s:actAppointment/s:performer/s:assignedPerson/s:assignedPerson/s:name/s:item/s:part/@value"; + //String doctorName = processDataByXpath(document, nameSpaceURIMap, doctorNameXpath); + + /*String washHandNurseXpath = subjectXpath + "[" + i + "]/s:actAppointment/s:performer/s:assignedPerson/s:code[@displayName='手术助手']/s:assignedPerson/s:name/s:item/s:part/@value"; + String washHandNurse = processDataByXpath(document, nameSpaceURIMap, washHandNurseXpath); + String circuitNurseXpath = subjectXpath + "[" + i + "]/s:actAppointment/s:performer/s:assignedPerson/s:code[@codeSystem='2.16.156.10011.0.9.2.3.2.170']/s:assignedPerson/s:name/s:item/s:part/@value"; + String circuitNurse = processDataByXpath(document, nameSpaceURIMap, circuitNurseXpath);*/ + + String doctorName = ""; + String circuitNurse = ""; + String washHandNurse = ""; + String performerNodeXpathStr = subjectXpath + "[" + i + "]/s:actAppointment/s:performer"; + XPath performerNodeXpath = document.createXPath(performerNodeXpathStr); + performerNodeXpath.setNamespaceURIs(nameSpaceURIMap); + List performerNodeList = performerNodeXpath.selectNodes(document, performerNodeXpath); + if(CollectionUtils.isNotEmpty(performerNodeList)){ + for(int j=1;j<=performerNodeList.size();j++){ + String roleNameXapth = performerNodeXpathStr + "[" + j + "]/s:assignedPerson/s:code/s:displayName/@value"; + String roleName = processDataByXpath(document, nameSpaceURIMap, roleNameXapth); + String staffNameXpath = performerNodeXpathStr + "[" + j + "]/s:assignedPerson/s:assignedPerson/s:name/s:item/s:part/@value"; + String staffName = processDataByXpath(document, nameSpaceURIMap, staffNameXpath); + if(StringUtils.isBlank(roleName)){ + roleNameXapth = performerNodeXpathStr + "[" + j + "]/s:functionCode/s:displayName/@value"; + roleName = processDataByXpath(document, nameSpaceURIMap, roleNameXapth); + } + if(StringUtils.equals(roleName, "巡回护士")){ + circuitNurse = staffName; + }else if(StringUtils.equals(roleName, "手术助手")){ + washHandNurse = staffName; + }else if(StringUtils.equals(roleName, "主刀医生")){ + doctorName = staffName; + } + } + } + + vo.setHospitalNumber(hospitalNumber); + vo.setOperationScheduleId(operationScheduleId); + vo.setPatientName(patientName); + vo.setPatientSex(patientSex); + //vo.setPatientAge(patientAge); + //vo.setAscriptionDepartment(ascriptionDepartment); + //vo.setPatientArea(patientArea); + vo.setOperation(operation); + vo.setOpRoomId(opRoomId); + vo.setOperationTime(operationTime); + vo.setDoctorName(doctorName); + vo.setWashHandNurse(washHandNurse); + vo.setCircuitNurse(circuitNurse); + resultPatientInfoList.add(vo); + } + } + return resultPatientInfoList; + } + } Index: ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/mq/dao/gzs12rmyy/UpdateOperationPlanQueueListener.java =================================================================== diff -u --- ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/mq/dao/gzs12rmyy/UpdateOperationPlanQueueListener.java (revision 0) +++ ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/mq/dao/gzs12rmyy/UpdateOperationPlanQueueListener.java (revision 35657) @@ -0,0 +1,58 @@ +package com.forgon.disinfectsystem.mq.dao.gzs12rmyy; + +import java.util.List; + +import javax.jms.Message; +import javax.jms.MessageListener; + +import org.apache.log4j.Logger; + +import com.forgon.disinfectsystem.datasynchronization.model.PatientInfoVO; +import com.forgon.disinfectsystem.datasynchronization.service.DataSynchronizationManager; + +/** + * 更新手术安排信息队列的监听器GZS12RMYY-49 + */ +public class UpdateOperationPlanQueueListener implements MessageListener { + + private static Logger logger = Logger.getLogger(UpdateOperationPlanQueueListener.class); + + DataSynchronizationManager dataSynchronizationManager; + + public void setDataSynchronizationManager(DataSynchronizationManager dataSynchronizationManager) { + this.dataSynchronizationManager = dataSynchronizationManager; + } + + @Override + public void onMessage(Message message) { + String jmsDestination = MQHelper.XDGY_updateOperationPlanQueue; + String messageBody = ""; + try { + //读取消息内容 + messageBody = MQHelper.readMessage(jmsDestination, message); + try { + //解析消息中的患者信息 + List patientInfoVOList = MQHelper.getAllPatientInfoVOData(jmsDestination, messageBody); + //同步患者信息 + dataSynchronizationManager.syncMqPatientInfo(patientInfoVOList); + } catch (Exception e) { + logger.info("解析【" + jmsDestination +"】消息失败:" + e.getMessage()); + } + //回调下平台服务 + new Thread(){ + @Override + public void run() { + try { + MQHelper.sentAck(jmsDestination, message); + } catch (Exception e) { + e.printStackTrace(); + } + } + }.start(); + } catch (Exception e) { + logger.info("监听【" + jmsDestination +"】消息队列失败:" + e.getMessage()); + e.printStackTrace(); + } + } + +} Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/useRecord/gyey/PatientAdmissionInfo.java =================================================================== diff -u -r26316 -r35657 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/useRecord/gyey/PatientAdmissionInfo.java (.../PatientAdmissionInfo.java) (revision 26316) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/useRecord/gyey/PatientAdmissionInfo.java (.../PatientAdmissionInfo.java) (revision 35657) @@ -3,8 +3,10 @@ import java.util.Date; import javax.persistence.Entity; + import org.hibernate.annotations.DynamicInsert; import org.hibernate.annotations.DynamicUpdate; + import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; @@ -47,6 +49,10 @@ */ private String patientArea; /** + * 手术间GZS12RMYY-49 + */ + private String operationRoom; + /** * 病房 */ private String roomNumber; @@ -101,6 +107,11 @@ */ private String washHandNurse; + /** + * 手术申请单号(GZS12RMYY-49) + */ + private String operationScheduleId; + @Id @GeneratedValue(strategy = GenerationType.AUTO) public Long getId() { @@ -145,6 +156,12 @@ public void setPatientArea(String patientArea) { this.patientArea = patientArea; } + public String getOperationRoom() { + return operationRoom; + } + public void setOperationRoom(String operationRoom) { + this.operationRoom = operationRoom; + } public String getRoomNumber() { return roomNumber; } @@ -225,5 +242,11 @@ public void setWashHandNurse(String washHandNurse) { this.washHandNurse = washHandNurse; } + public String getOperationScheduleId() { + return operationScheduleId; + } + public void setOperationScheduleId(String operationScheduleId) { + this.operationScheduleId = operationScheduleId; + } } Index: ssts-datasync/src/main/java/com/forgon/disinfectsystem/datasynchronization/service/DataSynchronizationManager.java =================================================================== diff -u -r29594 -r35657 --- ssts-datasync/src/main/java/com/forgon/disinfectsystem/datasynchronization/service/DataSynchronizationManager.java (.../DataSynchronizationManager.java) (revision 29594) +++ ssts-datasync/src/main/java/com/forgon/disinfectsystem/datasynchronization/service/DataSynchronizationManager.java (.../DataSynchronizationManager.java) (revision 35657) @@ -1,5 +1,7 @@ package com.forgon.disinfectsystem.datasynchronization.service; +import java.util.List; + import com.forgon.disinfectsystem.datasynchronization.model.OrgUnitVo; import com.forgon.disinfectsystem.datasynchronization.model.PatientInfoVO; import com.forgon.disinfectsystem.datasynchronization.model.UserVo; @@ -98,6 +100,13 @@ * @throws Exception */ public void syncMqPatientInfo() throws Exception; + + /** + * 同步患者信息GZS12RMYY-49 + * @param patientInfoVOList + * @throws Exception + */ + public void syncMqPatientInfo(List patientInfoVOList) throws Exception; /** * 同步住院病人信息及科室人员信息,项目启动时开始监听消息队列(北京垂杨柳医院) Index: ssts-web/src/main/webapp/disinfectsystem/config/gzs12rmyy/spring/primaryJmsIbmListener.xml =================================================================== diff -u -r35651 -r35657 --- ssts-web/src/main/webapp/disinfectsystem/config/gzs12rmyy/spring/primaryJmsIbmListener.xml (.../primaryJmsIbmListener.xml) (revision 35651) +++ ssts-web/src/main/webapp/disinfectsystem/config/gzs12rmyy/spring/primaryJmsIbmListener.xml (.../primaryJmsIbmListener.xml) (revision 35657) @@ -100,5 +100,61 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Index: ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/mq/dao/gzs12rmyy/CreateOperationPlanQueueListener.java =================================================================== diff -u --- ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/mq/dao/gzs12rmyy/CreateOperationPlanQueueListener.java (revision 0) +++ ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/mq/dao/gzs12rmyy/CreateOperationPlanQueueListener.java (revision 35657) @@ -0,0 +1,58 @@ +package com.forgon.disinfectsystem.mq.dao.gzs12rmyy; + +import java.util.List; + +import javax.jms.Message; +import javax.jms.MessageListener; + +import org.apache.log4j.Logger; + +import com.forgon.disinfectsystem.datasynchronization.model.PatientInfoVO; +import com.forgon.disinfectsystem.datasynchronization.service.DataSynchronizationManager; + +/** + * 注册手术安排信息队列的监听器GZS12RMYY-49 + */ +public class CreateOperationPlanQueueListener implements MessageListener { + + private static Logger logger = Logger.getLogger(CreateOperationPlanQueueListener.class); + + DataSynchronizationManager dataSynchronizationManager; + + public void setDataSynchronizationManager(DataSynchronizationManager dataSynchronizationManager) { + this.dataSynchronizationManager = dataSynchronizationManager; + } + + @Override + public void onMessage(Message message) { + String jmsDestination = MQHelper.XDGY_createOperationPlanQueue; + String messageBody = ""; + try { + //读取消息内容 + messageBody = MQHelper.readMessage(jmsDestination, message); + try { + //解析消息中的患者信息 + List patientInfoVOList = MQHelper.getAllPatientInfoVOData(jmsDestination, messageBody); + //同步患者信息 + dataSynchronizationManager.syncMqPatientInfo(patientInfoVOList); + } catch (Exception e) { + logger.info("解析【" + jmsDestination +"】消息失败:" + e.getMessage()); + } + //回调下平台服务 + new Thread(){ + @Override + public void run() { + try { + MQHelper.sentAck(jmsDestination, message); + } catch (Exception e) { + e.printStackTrace(); + } + } + }.start(); + } catch (Exception e) { + logger.info("监听【" + jmsDestination +"】消息队列失败:" + e.getMessage()); + e.printStackTrace(); + } + } + +} Index: ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/datasynchronization/service/DataSynchronizationManagerImpl.java =================================================================== diff -u -r34793 -r35657 --- ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/datasynchronization/service/DataSynchronizationManagerImpl.java (.../DataSynchronizationManagerImpl.java) (revision 34793) +++ ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/datasynchronization/service/DataSynchronizationManagerImpl.java (.../DataSynchronizationManagerImpl.java) (revision 35657) @@ -285,6 +285,153 @@ } } + @Override + public synchronized void syncMqPatientInfo(List patientInfoVOList) throws Exception{ + // 保存病人信息到数据库 + if (CollectionUtils.isNotEmpty(patientInfoVOList)) { + Map DBPatientInfoMap = getDBPatientInfoMap(patientInfoVOList); + Map nameOrgUnitMap = getNameOrgUnitMap(patientInfoVOList); + for (PatientInfoVO patientInfoVO : patientInfoVOList) { + if(StringUtils.isBlank(patientInfoVO.getHospitalNumber())){ + continue; + } + PatientAdmissionInfo patientAdmissionInfo = DBPatientInfoMap.get(patientInfoVO.getHospitalNumber()); + if(patientAdmissionInfo == null){ + patientAdmissionInfo = new PatientAdmissionInfo(); + } + patientAdmissionInfo.setHospitalNumber(patientInfoVO.getHospitalNumber()); + if(StringUtils.isNotBlank(patientInfoVO.getPatientName())){ + patientAdmissionInfo.setPatientName(patientInfoVO.getPatientName()); + } + if(StringUtils.isNotBlank(patientInfoVO.getPatientAge())){ + patientAdmissionInfo.setPatientAge(patientInfoVO.getPatientAge()); + } + if(StringUtils.isNotBlank(patientInfoVO.getPatientSex())){ + patientAdmissionInfo.setPatientSex(patientInfoVO.getPatientSex()); + } + if(StringUtils.isNotBlank(patientInfoVO.getPatientIDCard())){ + patientAdmissionInfo.setPatientIDCard(patientInfoVO.getPatientIDCard()); + } + if(DatabaseUtil.isPoIdValid(patientInfoVO.getVisitAmount())){ + patientAdmissionInfo.setVisitAmount(Long.valueOf(patientInfoVO.getVisitAmount())); + } + if(StringUtils.isNotBlank(patientInfoVO.getPatientArea())){ + patientAdmissionInfo.setPatientArea(patientInfoVO.getPatientArea()); + } + if(StringUtils.isNotBlank(patientInfoVO.getOpRoomId())){ + patientAdmissionInfo.setOperationRoom(patientInfoVO.getOpRoomId()); + } + if(StringUtils.isNotBlank(patientInfoVO.getRoomNumber())){ + patientAdmissionInfo.setRoomNumber(patientInfoVO.getRoomNumber()); + } + if(StringUtils.isNotBlank(patientInfoVO.getBedNumber())){ + patientAdmissionInfo.setBedNumber(patientInfoVO.getBedNumber()); + } + if(StringUtils.isNotBlank(patientInfoVO.getDoctorName())){ + patientAdmissionInfo.setDoctorName(patientInfoVO.getDoctorName()); + } + if(StringUtils.isNotBlank(patientInfoVO.getPatientNumber())){ + patientAdmissionInfo.setHospitalSerialNumber(patientInfoVO.getPatientNumber()); + } + patientAdmissionInfo.setTime(new Date()); + if(StringUtils.isNotBlank(patientInfoVO.getOperation())){ + patientAdmissionInfo.setSurgeryName(patientInfoVO.getOperation()); + } + if(StringUtils.isNotBlank(patientInfoVO.getClinicNumber())){ + patientAdmissionInfo.setTreatmentNum(patientInfoVO.getClinicNumber()); + } + if(StringUtils.isNotBlank(patientInfoVO.getWashHandNurse())){ + patientAdmissionInfo.setWashHandNurse(patientInfoVO.getWashHandNurse()); + } + if(StringUtils.isNotBlank(patientInfoVO.getCircuitNurse())){ + patientAdmissionInfo.setCircuitNurse(patientInfoVO.getCircuitNurse()); + } + if(StringUtils.isNotBlank(patientInfoVO.getAscriptionDepartment())){ + OrgUnit orgUnit = nameOrgUnitMap.get(patientInfoVO.getAscriptionDepartment()); + if(orgUnit != null){ + patientAdmissionInfo.setOrgunitId(orgUnit.getId()+""); + } + patientAdmissionInfo.setOrgunitName(patientInfoVO.getAscriptionDepartment()); + } + if (StringUtils.isNotBlank(patientInfoVO.getOperationTime())) { + try { + SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmm"); + Date inDate = sdf.parse(patientInfoVO.getOperationTime().trim()); + patientAdmissionInfo.setInDate(inDate); + } catch (Exception e) { + } + } + if(DatabaseUtil.isPoIdValid(patientInfoVO.getVisitAmount())) { + patientAdmissionInfo.setVisitAmount(Long.parseLong(patientInfoVO.getVisitAmount())); + } + if(StringUtils.isNotBlank(patientInfoVO.getOperationScheduleId())){ + patientAdmissionInfo.setOperationScheduleId(patientInfoVO.getOperationScheduleId()); + } + patientAdmissionInfoManager.insertPatientAdmissionInfo(patientAdmissionInfo); + } + } + } + + /** + * 查询患者所在科室的名称和科室Map + * @param patientInfoVOList + * @return + */ + private Map getNameOrgUnitMap( + List patientInfoVOList) { + Map nameOrgUnitMap = new HashMap(); + if(CollectionUtils.isEmpty(patientInfoVOList)){ + return nameOrgUnitMap; + } + List orgUnitNameList = new ArrayList(); + for (PatientInfoVO patientInfoVO : patientInfoVOList) { + if(StringUtils.isBlank(patientInfoVO.getAscriptionDepartment())){ + continue; + } + orgUnitNameList.add(patientInfoVO.getAscriptionDepartment()); + } + if(CollectionUtils.isNotEmpty(orgUnitNameList)){ + List list = orgUnitManager.getCollection("name", orgUnitNameList); + if(CollectionUtils.isNotEmpty(list)){ + for (OrgUnit orgUnit : list) { + nameOrgUnitMap.put(orgUnit.getName(), orgUnit); + } + } + } + return nameOrgUnitMap; + } + + /** + * 查询患者信息 + * @param patientInfoVOList + * @return + */ + @SuppressWarnings("unchecked") + private Map getDBPatientInfoMap( + List patientInfoVOList) { + Map DBPatientInfoMap = new HashMap(); + if(CollectionUtils.isEmpty(patientInfoVOList)){ + return DBPatientInfoMap; + } + List hospitalNumberList = new ArrayList(); + for (PatientInfoVO patientInfoVO : patientInfoVOList) { + if(StringUtils.isBlank(patientInfoVO.getHospitalNumber())){ + continue; + } + hospitalNumberList.add(patientInfoVO.getHospitalNumber()); + } + if(CollectionUtils.isNotEmpty(hospitalNumberList)){ + String sql = String.format("select po from %s po where %s order by po.id ", PatientAdmissionInfo.class.getSimpleName(), SqlUtils.getStringFieldInLargeCollectionsPredicate("po.hospitalNumber", hospitalNumberList)); + List patientAdmissionInfoList = objectDao.findByHql(sql); + if(CollectionUtils.isNotEmpty(patientAdmissionInfoList)){ + for (PatientAdmissionInfo patientAdmissionInfo : patientAdmissionInfoList) { + DBPatientInfoMap.put(patientAdmissionInfo.getHospitalNumber(), patientAdmissionInfo); + } + } + } + return DBPatientInfoMap; + } + private PatientInfoVO[] findPatientInfoByHospitalNum(String hospitalNum, Integer sourcePage) { // 同步到的数据先单独提交事务 runWithTransNewManager.runWith_TRANS_NEW(new RunWithTransNewTask() { Index: ssts-web/src/main/webapp/disinfectsystem/config/gzs12rmyy/interfaces/mybatis/FindPatientInfoByHospitalNumMapper.xml =================================================================== diff -u -r27968 -r35657 --- ssts-web/src/main/webapp/disinfectsystem/config/gzs12rmyy/interfaces/mybatis/FindPatientInfoByHospitalNumMapper.xml (.../FindPatientInfoByHospitalNumMapper.xml) (revision 27968) +++ ssts-web/src/main/webapp/disinfectsystem/config/gzs12rmyy/interfaces/mybatis/FindPatientInfoByHospitalNumMapper.xml (.../FindPatientInfoByHospitalNumMapper.xml) (revision 35657) @@ -13,10 +13,16 @@ patientSex, patientIDCard, doctorName, - surgeryName, + surgeryName operation, patientArea, roomNumber, - bedNumber + bedNumber, + orgunitName ascriptionDepartment, + operationRoom opRoomId, + inDate operationTime, + operationScheduleId, + washHandNurse, + circuitNurse from PatientAdmissionInfo where hospitalNumber = #{hospitalNum} ]]> @@ -31,10 +37,16 @@ patientSex, patientIDCard, doctorName, - surgeryName, + surgeryName operation, patientArea, roomNumber, - bedNumber + bedNumber, + orgunitName ascriptionDepartment, + operationRoom opRoomId, + inDate operationTime, + operationScheduleId, + washHandNurse, + circuitNurse from PatientAdmissionInfo where hospitalNumber = #{hospitalNumber} ]]>