Index: ssts-datasync/src/main/java/com/forgon/disinfectsystem/datasynchronization/dao/SyncDataFromHIPDao.java =================================================================== diff -u -r27131 -r27486 --- ssts-datasync/src/main/java/com/forgon/disinfectsystem/datasynchronization/dao/SyncDataFromHIPDao.java (.../SyncDataFromHIPDao.java) (revision 27131) +++ ssts-datasync/src/main/java/com/forgon/disinfectsystem/datasynchronization/dao/SyncDataFromHIPDao.java (.../SyncDataFromHIPDao.java) (revision 27486) @@ -3,6 +3,7 @@ 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; import com.forgon.disinfectsystem.entity.basedatamanager.toussedefinition.TousseInstance; import com.forgon.disinfectsystem.entity.operationreservation.OperationReservation; @@ -54,5 +55,12 @@ * @return */ public TousseInstance tousseDetailQuery(String xmlStr); + + /** + * 根据住院号查询病人信息 + * @param hospitalNum + * @return + */ + public PatientInfoVO findPatientInfoByHospitalNum(String hospitalNum); } Index: ssts-webservice/src/main/java/com/forgon/disinfectsystem/webservice/datasync/dysrmyy/HIPMessageWebServiceImpl.java =================================================================== diff -u -r27131 -r27486 --- ssts-webservice/src/main/java/com/forgon/disinfectsystem/webservice/datasync/dysrmyy/HIPMessageWebServiceImpl.java (.../HIPMessageWebServiceImpl.java) (revision 27131) +++ ssts-webservice/src/main/java/com/forgon/disinfectsystem/webservice/datasync/dysrmyy/HIPMessageWebServiceImpl.java (.../HIPMessageWebServiceImpl.java) (revision 27486) @@ -80,18 +80,20 @@ // 同步到数据库中 dataSynchronizationManager.processSyncOrgUnitData(new OrgUnitVo[] {orgUnitVo}); } - String returnMsg = "" - + "" - + " " - + " " - + " " - + " " - + " " - + " " - + " " - + " " - + " " - + " "; + StringBuilder returnMsgSB = new StringBuilder(); + returnMsgSB.append(""); + returnMsgSB.append(""); + returnMsgSB.append(" "); + returnMsgSB.append(" "); + returnMsgSB.append(" "); + returnMsgSB.append(" "); + returnMsgSB.append(" "); + returnMsgSB.append(" "); + returnMsgSB.append(" "); + returnMsgSB.append(" "); + returnMsgSB.append(" "); + returnMsgSB.append(" "); + String returnMsg = returnMsgSB.toString(); logger.info("organizationInfoRegister ---> " + returnMsg); return returnMsg; } @@ -191,16 +193,12 @@ if (bd instanceof TousseInstance) { // 1、查询器械包实例 TousseInstance tousseInstance = (TousseInstance) bd; - if (!TousseInstance.STATUS_STERILED.equals(tousseInstance.getStatus())) { - throw new RuntimeException("患者消毒物料使用登记失败 :消毒物料处于" + tousseInstance.getStatus() + "状态"); - } // 2、查询患者信息 // (可以调用手麻系统提供患者查询服务,或者调用HIS系统提供患者查询服务,实现其中一种即可,之前已经实现手麻系统提供患者查询服务,所以这里调用的是手麻系统提供患者查询服务) - PatientInfoVO[] patients = dataSynchronizationManager.findPatientInfoByHospitalNum(useRecord.getPatientIDCard()); - if (patients == null || patients.length == 0) { + PatientInfoVO patient = sycnDataFromHIPDao.findPatientInfoByHospitalNum(useRecord.getHospitalNum()); + if (patient == null) { throw new RuntimeException("患者消毒物料使用登记失败 :未找到住院号为" + useRecord.getHospitalNum() + "的患者信息"); } - PatientInfoVO patient = patients[0]; // 3、创建使用记录 UseRecord newUseRecord = new UseRecord(); newUseRecord.setHospitalNum(patient.getHospitalNumber()); Index: ssts-web/src/main/webapp/logonSSOForDysyy.jsp =================================================================== diff -u -r27131 -r27486 --- ssts-web/src/main/webapp/logonSSOForDysyy.jsp (.../logonSSOForDysyy.jsp) (revision 27131) +++ ssts-web/src/main/webapp/logonSSOForDysyy.jsp (.../logonSSOForDysyy.jsp) (revision 27486) @@ -18,22 +18,22 @@ String sid = request.getParameter("sid"); if(StringUtils.isNotBlank(sid)){ //String xmlInput = "123546" + sid + ""; - String xmlResult = CssdUtils.sendPostRequest(DatasyncConstant.HIPWebServiceAddress, + /* String xmlResult = CssdUtils.sendPostRequest(DatasyncConstant.HIPWebServiceAddress, WebServiceClientHelper.transferSpecialWordParam( WebServiceClientHelper.buildCallWebServiceInputXml(DatasyncConstant.MethodName_GetUserInfo, sid) - ), Constants.CHARSET_UTF8); + ), Constants.CHARSET_UTF8); */ + String param = WebServiceClientHelper.buildCallWebServiceInputXml(DatasyncConstant.MethodName_GetUserInfo, sid); + String xmlResult = WebServiceClientHelper.doPostSoap1_2(DatasyncConstant.HIPWebServiceAddress, param, "HIPMessageServer"); String userName = ""; try{ - JSONObject json = (JSONObject)CssdUtils.xml2JsonCommon(xmlResult); - String typeCode = json.optJSONObject("message_cont") - .optJSONObject("acknowledgement").optString("@typeCode"); + JSONObject xmlResultJson = (JSONObject)CssdUtils.xml2JsonCommon(xmlResult); + JSONObject json = xmlResultJson.optJSONObject("soapenv:Body").optJSONObject("urn:HIPMessageServerResponse").optJSONObject("urn:payload").optJSONObject("res"); + JSONObject message_contJSON = json.optJSONArray("message_cont").optJSONObject(0); + JSONObject acknowledgementDetailJSON = message_contJSON.optJSONArray("acknowledgementDetail").optJSONObject(0) + String typeCode = message_contJSON.optString("@typeCode"); if("AA".equals(typeCode)){ - String text = json.optJSONObject("message_cont") - .optJSONObject("acknowledgement") - .optJSONObject("acknowledgementDetail") - .optString("text"); - JSONObject textJson = JSONObject.fromObject(text); - userName = textJson.optString("user_name"); + userName = acknowledgementDetailJSON.optString("staff_code"); + System.out.println("userName === " + userName); if(userName == null){ message.add("xml的格式有误"); } Index: ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/datasynchronization/dao/dysrmyy/WebServiceClientHelper.java =================================================================== diff -u -r27131 -r27486 --- ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/datasynchronization/dao/dysrmyy/WebServiceClientHelper.java (.../WebServiceClientHelper.java) (revision 27131) +++ ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/datasynchronization/dao/dysrmyy/WebServiceClientHelper.java (.../WebServiceClientHelper.java) (revision 27486) @@ -1,13 +1,22 @@ package com.forgon.disinfectsystem.datasynchronization.dao.dysrmyy; +import java.nio.charset.Charset; import java.util.UUID; import net.sf.json.JSON; import net.sf.json.JSONObject; import net.sf.json.xml.XMLSerializer; import org.apache.commons.lang.StringUtils; +import org.apache.http.HttpEntity; +import org.apache.http.client.config.RequestConfig; +import org.apache.http.client.methods.CloseableHttpResponse; +import org.apache.http.client.methods.HttpPost; +import org.apache.http.entity.StringEntity; +import org.apache.http.impl.client.CloseableHttpClient; +import org.apache.http.impl.client.HttpClientBuilder; +import org.apache.http.util.EntityUtils; import org.apache.log4j.Logger; import com.forgon.tools.json.AESUtil; @@ -94,6 +103,21 @@ soap.append(""); soap.append(""); inputXml = soap.toString(); + } else if (DatasyncConstant.MethodName_OperationAppInfoQuery.equals(methodName)) { + StringBuilder soap = new StringBuilder(); + soap.append(""); + soap.append(""); + soap.append("" + (WebServiceClientHelper.USERNAME) + ""); + soap.append("" + (WebServiceClientHelper.PASSWORD) + ""); + soap.append("VQWHc2A2Y03wM2Yfumbd2g==2018-09-19T01:09:51.634Z"); + soap.append(""); + soap.append(""); + soap.append("" + methodName + ""); + soap.append(""); + soap.append(""); + soap.append(""); + soap.append(""); + inputXml = soap.toString(); } else { throw new RuntimeException("不存在此方法:" + methodName); } @@ -249,4 +273,45 @@ return paramTransfer; } + /** + * 使用SOAP1.2发送消息 + * + * @param postUrl + * @param soapXml + * @param soapAction + * @return + */ + public static String doPostSoap1_2(String postUrl, String soapXml, String soapAction) { + String retStr = ""; + // 创建HttpClientBuilder + HttpClientBuilder httpClientBuilder = HttpClientBuilder.create(); + // HttpClient + CloseableHttpClient closeableHttpClient = httpClientBuilder.build(); + HttpPost httpPost = new HttpPost(postUrl); + // 设置请求和传输超时时间 + RequestConfig requestConfig = RequestConfig.custom() + .setSocketTimeout(100000) + .setConnectTimeout(100000).build(); + httpPost.setConfig(requestConfig); + try { + httpPost.setHeader("Content-Type", "application/soap+xml;charset=UTF-8;action=\"HIPMessageServer\""); + httpPost.setHeader("action", soapAction); + StringEntity data = new StringEntity(soapXml,Charset.forName("UTF-8")); + httpPost.setEntity(data); + CloseableHttpResponse response = closeableHttpClient.execute(httpPost); + HttpEntity httpEntity = response.getEntity(); + if (httpEntity != null) { + // 打印响应内容 + retStr = EntityUtils.toString(httpEntity, "UTF-8"); + retStr = retStr.replaceAll("<", "<"); + retStr = retStr.replaceAll(">", ">"); + } + // 释放资源 + closeableHttpClient.close(); + } catch (Exception e) { + logger.info("exception in doPostSoap1_2:" + e); + } + return retStr; + } + } Index: ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/datasynchronization/dao/dysrmyy/DatasyncConstant.java =================================================================== diff -u -r27131 -r27486 --- ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/datasynchronization/dao/dysrmyy/DatasyncConstant.java (.../DatasyncConstant.java) (revision 27131) +++ ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/datasynchronization/dao/dysrmyy/DatasyncConstant.java (.../DatasyncConstant.java) (revision 27486) @@ -26,7 +26,7 @@ /** * 调用集成平台提供的webservice(DYSYY-53 二期合同接口开发) */ - public static String HIPWebServiceAddress = "http://192.168.28.123:6998/services/HIPService?wsdl"; + public static String HIPWebServiceAddress = "http://192.168.28.203:6998/services/HIPService.HIPServiceHttpSoap12Endpoint"; //公网环境的接口地址 //public static String WebserviceAddress = "http://218.6.146.70:8086/ExternalServices/ZL_InformationService.asmx/Custom"; @@ -57,6 +57,11 @@ public static String MethodName_GetUserInfo = "getUserInfo"; /** + * 调用集成平台提供的webservice,根据住院号查询病人信息(DYSYY-53 二期合同接口开发) + */ + public static String MethodName_OperationAppInfoQuery = "OperationAppInfoQuery"; + + /** * 请求参数的特殊字符替换 */ public static Map paramSpecialWordReplaceMap; Index: ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/datasynchronization/dao/dysrmyy/SycnDataFromHIPDaoImpl.java =================================================================== diff -u -r27131 -r27486 --- ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/datasynchronization/dao/dysrmyy/SycnDataFromHIPDaoImpl.java (.../SycnDataFromHIPDaoImpl.java) (revision 27131) +++ ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/datasynchronization/dao/dysrmyy/SycnDataFromHIPDaoImpl.java (.../SycnDataFromHIPDaoImpl.java) (revision 27486) @@ -4,32 +4,45 @@ import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.UUID; +import net.sf.json.JSONArray; +import net.sf.json.JSONObject; + import org.apache.commons.lang.StringUtils; +import org.apache.log4j.Logger; import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j.DocumentHelper; import org.dom4j.Node; import org.dom4j.XPath; import org.springframework.beans.factory.annotation.Autowired; +import com.forgon.directory.model.OrgUnit; import com.forgon.disinfectsystem.barcode.service.BarcodeManager; +import com.forgon.disinfectsystem.common.CssdUtils; import com.forgon.disinfectsystem.datasynchronization.dao.SyncDataFromHIPDao; import com.forgon.disinfectsystem.datasynchronization.model.OrgUnitVo; +import com.forgon.disinfectsystem.datasynchronization.model.PatientInfoVO; import com.forgon.disinfectsystem.datasynchronization.model.UserVo; import com.forgon.disinfectsystem.entity.basedatamanager.toussedefinition.TousseInstance; import com.forgon.disinfectsystem.entity.operationreservation.OperationReservation; import com.forgon.disinfectsystem.entity.useRecord.UseRecord; import com.forgon.disinfectsystem.tousse.toussedefinition.service.TousseInstanceManager; import com.forgon.tools.Constants; import com.forgon.tools.date.DateTools; +import com.forgon.tools.hibernate.ObjectDao; public class SycnDataFromHIPDaoImpl implements SyncDataFromHIPDao { + private static Logger logger = Logger.getLogger(SycnDataFromHIPDaoImpl.class); + @Autowired private TousseInstanceManager tousseInstanceManager; @Autowired private BarcodeManager barcodeManager; + @Autowired + private ObjectDao objectDao; /** * 根据document和Xpath表达式解析数据 @@ -65,15 +78,15 @@ String deptXpath = ""; String deptCodeXpath = ""; String deptNameXpath = ""; - String parentDeptCodeXpath = ""; + String parentDeptIdXpath = ""; if (StringUtils.equals("OrganizationInfoRegister", action)) { idXpath = "/PRPM_IN401030UV01/s:id/@extension"; deptXpath = "/PRPM_IN401030UV01/s:controlActProcess/s:subject/s:registrationRequest/s:subject1/s:assignedEntity"; deptCodeXpath = deptXpath + "/s:id/s:item/@extension"; deptNameXpath = deptXpath + "/s:assignedPrincipalOrganization/s:name/s:item/s:part/@value"; - parentDeptCodeXpath = deptXpath + parentDeptIdXpath = deptXpath + "/s:assignedPrincipalOrganization/s:asAffiliate/s:scoper2/s:id/s:item/@extension"; } else if (StringUtils.equals("OrganizationInfoUpdate", action)){ idXpath = "/PRPM_IN403010UV01/s:id/@extension"; @@ -82,7 +95,7 @@ + "/s:id/s:item/@extension"; deptNameXpath = deptXpath + "/s:assignedPrincipalOrganization/s:name/s:item/s:part/@value"; - parentDeptCodeXpath = deptXpath + parentDeptIdXpath = deptXpath + "/s:assignedPrincipalOrganization/s:asAffiliate/s:affiliatedPrincipalOrganization/s:id/s:item/@extension"; } else { throw new RuntimeException("action不为OrganizationInfoRegister或者OrganizationInfoUpdate!"); @@ -93,16 +106,16 @@ String messageId = processDataByXpath(document, nameSpaceURIMap, idXpath); String deptCode = processDataByXpath(document, nameSpaceURIMap, deptCodeXpath); String deptName = processDataByXpath(document, nameSpaceURIMap, deptNameXpath); - String parentDeptCode = processDataByXpath(document, nameSpaceURIMap, parentDeptCodeXpath); + String parentDeptId = processDataByXpath(document, nameSpaceURIMap, parentDeptIdXpath); - if (messageId == null || deptCode == null || deptName == null || parentDeptCode == null) { + if (messageId == null || deptCode == null || deptName == null || parentDeptId == null) { throw new RuntimeException("xml中的必须项不能为空!"); } - + OrgUnit orgUnit = (OrgUnit) objectDao.getById(OrgUnit.class.getSimpleName(), parentDeptId); OrgUnitVo orgUnitVo = new OrgUnitVo(); orgUnitVo.setCoding(deptCode); orgUnitVo.setName(deptName); - orgUnitVo.setParentCoding(parentDeptCode); + orgUnitVo.setParentCoding(orgUnit == null ? null : orgUnit.getOrgUnitCoding()); orgUnitVo.setSource(Constants.SOURCE_SYNC); // 临时用于保存消息id orgUnitVo.setMessageId(messageId); @@ -128,24 +141,24 @@ String userXpath = ""; String userCodeXpath = ""; String userNameXpath = ""; - String deptCodeXpath = ""; + String deptIdXpath = ""; if (StringUtils.equals("ProviderInfoRegister", action)) { messageIdXpath = "/PRPM_IN301010UV01/s:id/@extension"; userXpath = "/PRPM_IN301010UV01/s:controlActProcess/s:subject/s:registrationRequest/s:subject1/s:healthCareProvider"; userCodeXpath = userXpath - + "/s:id/s:item/@extension"; + + "/s:id/s:staffCode/@extension"; userNameXpath = userXpath + "/s:healthCarePrincipalPerson/s:name/s:item/s:part/@value"; - deptCodeXpath = userXpath + deptIdXpath = userXpath + "/s:healthCarePrincipalPerson/s:asAffiliate/s:affiliatedPrincipalOrganization/s:id/s:item/@extension"; } else if (StringUtils.equals("ProviderInfoUpdate", action)){ messageIdXpath = "/PRPM_IN303010UV01/s:id/@extension"; userXpath = "/PRPM_IN303010UV01/s:controlActProcess/s:subject/s:registrationRequest/s:subject1/s:healthCareProvider"; userCodeXpath = userXpath - + "/s:id/s:item/@extension"; + + "/s:id/s:staffCode/@extension"; userNameXpath = userXpath + "/s:healthCarePrincipalPerson/s:name/s:item/s:part/@value"; - deptCodeXpath = userXpath + deptIdXpath = userXpath + "/s:healthCarePrincipalPerson/s:asAffiliate/s:affiliatedPrincipalOrganization/s:id/s:item/@extension"; } else { throw new RuntimeException("action不为ProviderInfoRegister或者ProviderInfoUpdate!"); @@ -156,14 +169,15 @@ String messageId = processDataByXpath(document, nameSpaceURIMap, messageIdXpath); String userCode = processDataByXpath(document, nameSpaceURIMap, userCodeXpath); String userName = processDataByXpath(document, nameSpaceURIMap, userNameXpath); - String deptCode = processDataByXpath(document, nameSpaceURIMap, deptCodeXpath); - if (messageId == null || userCode == null || userName == null || deptCode == null) { + String deptId = processDataByXpath(document, nameSpaceURIMap, deptIdXpath); + if (messageId == null || userCode == null || userName == null || deptId == null) { throw new RuntimeException("xml中关键的参数不能为空!"); } + OrgUnit orgUnit = (OrgUnit) objectDao.getById(OrgUnit.class.getSimpleName(), deptId); UserVo userVo = new UserVo(); userVo.setCoding(userCode); userVo.setName(userName); - userVo.setOrgUnitCoding(deptCode); + userVo.setOrgUnitCoding(orgUnit == null ? null : orgUnit.getOrgUnitCoding()); userVo.setSource(Constants.SOURCE_SYNC); // 保存消息id userVo.setMessageId(messageId); @@ -238,7 +252,7 @@ // 2、生成使用记录 UseRecord useRecord = new UseRecord(); useRecord.setTousseInstanceList(list); - useRecord.setPatientIDCard(inpatientno); + useRecord.setHospitalNum(inpatientno); useRecord.setDepartCoding(excutdeptno); useRecord.setOperator(excutor); // 存放使用记录录入时间 @@ -278,4 +292,132 @@ } } + @Override + public PatientInfoVO findPatientInfoByHospitalNum(String hospitalNum) { + try{ + String requestXml = buildSendPostRequestInputXml(hospitalNum); + logger.info("手术申请单查询请求信息:" + requestXml); + logger.info("手术申请单查询请求地址:" + DatasyncConstant.HIPWebServiceAddress); + String param = WebServiceClientHelper.buildCallWebServiceInputXml(DatasyncConstant.MethodName_OperationAppInfoQuery, requestXml); + logger.info("手术申请单查询sendPostRequest:" + param); + String xmlResult = null; + try { + xmlResult = WebServiceClientHelper.doPostSoap1_2(DatasyncConstant.HIPWebServiceAddress, param, "HIPMessageServer"); + logger.info("手术申请单查询返回信息:\n" + xmlResult); + } catch (Exception e) { + logger.info("手术申请单查询失败!" + e.getMessage()); + } + + JSONObject json = (JSONObject)CssdUtils.xml2JsonCommon(xmlResult); + JSONObject xmlResultJson = json.optJSONObject("soapenv:Body").optJSONObject("urn:HIPMessageServerResponse").optJSONObject("urn:payload").optJSONObject("QUMT_IN020040UV01"); + String acknowledgement = xmlResultJson.optJSONObject("sender").optJSONObject("acknowledgement").optString("@typeCode"); + logger.info("acknowledgement : " + acknowledgement); + if (!StringUtils.equals("AA", acknowledgement)) { + logger.info("手术申请单查询失败!acknowledgement = " + acknowledgement); + return null; + } + PatientInfoVO vo = new PatientInfoVO(); + JSONObject procedureRequest = xmlResultJson.optJSONObject("controlActProcess").optJSONObject("subject").optJSONObject("procedureRequest"); + JSONObject componentOf1 = procedureRequest.optJSONObject("componentOf1"); + JSONObject patient = componentOf1.optJSONObject("encounter").optJSONObject("subject").optJSONObject("patient"); + // 患者基本信息 + if (patient != null) { + String tNumber = patient.optJSONObject("id").optJSONArray("item").optJSONObject(0).optString("@extension"); + logger.info("tNumber : " + tNumber); + String patientName = patient.optJSONObject("patientPerson").optJSONObject("name").optJSONObject("item").optJSONObject("part").optString("@value"); + logger.info("patientName : " + patientName); + String patientAge = patient.optJSONObject("patientPerson").optJSONObject("birthTime").optJSONObject("originalText").optString("@value"); + logger.info("patientAge : " + patientAge); + String patientSex = patient.optJSONObject("patientPerson").optJSONObject("administrativeGenderCode").optJSONObject("displayName").optString("@value"); + logger.info("patientSex : " + patientSex); + String patientIDCard = patient.optJSONObject("patientPerson").optJSONObject("id").optJSONArray("item").optJSONObject(0).optString("@extension"); + logger.info("patientIDCard : " + patientIDCard); + vo.setPatientNumber(tNumber); + vo.setPatientName(patientName); + vo.setPatientAge(patientAge); + vo.setPatientSex(patientSex); + vo.setPatientIDCard(patientIDCard); + } + + JSONObject procedureRequest2 = null; + JSONArray component2 = new JSONArray(); + Object obj = procedureRequest.opt("component2"); + if(obj instanceof JSONArray){ + component2 = (JSONArray)obj; + } else if (obj instanceof JSONObject){ + component2.add((JSONObject)obj); + } + procedureRequest2 = component2.optJSONObject(0).optJSONObject("procedureRequest"); + // 手术信息 + if (procedureRequest2 != null) { + String doctorName = procedureRequest2.optJSONObject("performer").optJSONObject("assignedEntity").optJSONObject("assignedPerson").optJSONObject("name").optJSONObject("item").optJSONArray("part").optJSONObject(0).optString("@value"); + logger.info("doctorName : " + doctorName); + String operation = procedureRequest2.optJSONObject("code").optJSONObject("displayName").optString("@value"); + logger.info("operation : " + operation); + vo.setDoctorName(doctorName); + vo.setOperation(operation); + } + + JSONObject serviceDeliveryLocation = componentOf1.optJSONObject("encounter").optJSONObject("location").optJSONObject("serviceDeliveryLocation"); + // 住院信息 + if (serviceDeliveryLocation != null) { + String patientArea = serviceDeliveryLocation.optJSONObject("serviceProviderOrganization").optJSONObject("asOrganizationPartOf").optJSONObject("wholeOrganization").optJSONObject("name").optJSONObject("item").optJSONObject("part").optString("@value"); + logger.info("patientArea : " + patientArea); + String opRoomId = null; + String bedNumber = serviceDeliveryLocation.optJSONObject("location").optJSONObject("name").optJSONObject("item").optJSONObject("part").optString("@value"); + logger.info("bedNumber : " + bedNumber); + String roomNumber = serviceDeliveryLocation.optJSONObject("location").optJSONObject("asLocatedEntityPartOf").optJSONObject("location").optJSONObject("name").optJSONObject("item").optJSONObject("part").optString("@value"); + logger.info("roomNumber : " + roomNumber); + vo.setPatientArea(patientArea); + vo.setOpRoomId(opRoomId); + vo.setBedNumber(bedNumber); + vo.setRoomNumber(roomNumber); + } + String remark = procedureRequest.optJSONObject("text").optString("@value"); + logger.info("remark : " + remark); + String washHandNurse = null; + String circuitNurse = null; + + vo.setHospitalNumber(hospitalNum); + vo.setType(PatientInfoVO.TYPE_HOSPITAL); + vo.setRemark(remark); + vo.setWashHandNurse(washHandNurse); + vo.setCircuitNurse(circuitNurse); + return vo; + }catch(Exception e){ + logger.error("根据住院号查询病人信息失败" + e); + } + + return null; + } + + /** + * DYSYY-53 二期合同接口开发 + * @param hospitalNum + * @return + */ + private static String buildSendPostRequestInputXml(String hospitalNum){ + + StringBuilder requestMsgSB = new StringBuilder(); + UUID uuid = UUID.randomUUID(); + requestMsgSB.append(""); + requestMsgSB.append(""); + requestMsgSB.append(""); + requestMsgSB.append(""); + requestMsgSB.append(""); + requestMsgSB.append(""); + requestMsgSB.append(""); + requestMsgSB.append(""); + requestMsgSB.append(""); + requestMsgSB.append(""); + requestMsgSB.append(""); + requestMsgSB.append(""); + requestMsgSB.append(""); + requestMsgSB.append(""); + requestMsgSB.append(""); + + return requestMsgSB.toString(); + } + }