Index: ssts-datasync/src/main/java/com/forgon/disinfectsystem/datasynchronization/model/OrgUnitVo.java
===================================================================
diff -u -r26116 -r27131
--- ssts-datasync/src/main/java/com/forgon/disinfectsystem/datasynchronization/model/OrgUnitVo.java (.../OrgUnitVo.java) (revision 26116)
+++ ssts-datasync/src/main/java/com/forgon/disinfectsystem/datasynchronization/model/OrgUnitVo.java (.../OrgUnitVo.java) (revision 27131)
@@ -24,6 +24,11 @@
*/
public String source;
+ /**
+ * 请求消息的Id(德阳市人民医院DYSYY-53二期合同接口开发)
+ */
+ private String messageId;
+
public String getCoding() {
return coding;
}
@@ -118,4 +123,12 @@
logger.debug("set科室名称value是否转码后的值:" + getName());
}
}
+
+ public String getMessageId() {
+ return messageId;
+ }
+
+ public void setMessageId(String messageId) {
+ this.messageId = messageId;
+ }
}
Index: ssts-web/src/main/resources/spring/projects/dysyy/applicationContext-his.xml
===================================================================
diff -u -r23822 -r27131
--- ssts-web/src/main/resources/spring/projects/dysyy/applicationContext-his.xml (.../applicationContext-his.xml) (revision 23822)
+++ ssts-web/src/main/resources/spring/projects/dysyy/applicationContext-his.xml (.../applicationContext-his.xml) (revision 27131)
@@ -38,6 +38,10 @@
+
+
+
+
Index: ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/datasynchronization/dao/dysrmyy/DatasyncConstant.java
===================================================================
diff -u -r16800 -r27131
--- ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/datasynchronization/dao/dysrmyy/DatasyncConstant.java (.../DatasyncConstant.java) (revision 16800)
+++ ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/datasynchronization/dao/dysrmyy/DatasyncConstant.java (.../DatasyncConstant.java) (revision 27131)
@@ -23,6 +23,11 @@
*/
public static String WebserviceAddress = "http://192.168.28.10:9086/ExternalServices/ZL_InformationService.asmx/Custom";
+ /**
+ * 调用集成平台提供的webservice(DYSYY-53 二期合同接口开发)
+ */
+ public static String HIPWebServiceAddress = "http://192.168.28.123:6998/services/HIPService?wsdl";
+
//公网环境的接口地址
//public static String WebserviceAddress = "http://218.6.146.70:8086/ExternalServices/ZL_InformationService.asmx/Custom";
@@ -47,6 +52,11 @@
public static String MethodName_CSSD_User = "ZLTHIRD.CSSD.USER";
/**
+ * 调用集成平台提供的webservice,查询用户信息(DYSYY-53 二期合同接口开发)
+ */
+ public static String MethodName_GetUserInfo = "getUserInfo";
+
+ /**
* 请求参数的特殊字符替换
*/
public static Map paramSpecialWordReplaceMap;
Index: ssts-datasync/src/main/java/com/forgon/disinfectsystem/datasynchronization/dao/SyncDataFromHIPDao.java
===================================================================
diff -u
--- ssts-datasync/src/main/java/com/forgon/disinfectsystem/datasynchronization/dao/SyncDataFromHIPDao.java (revision 0)
+++ ssts-datasync/src/main/java/com/forgon/disinfectsystem/datasynchronization/dao/SyncDataFromHIPDao.java (revision 27131)
@@ -0,0 +1,58 @@
+package com.forgon.disinfectsystem.datasynchronization.dao;
+
+import java.util.List;
+
+import com.forgon.disinfectsystem.datasynchronization.model.OrgUnitVo;
+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;
+
+/**
+ * 德阳市人民医院DYSYY-53 二期合同接口开发
+ *
+ * @author ZhouPeiMian
+ *
+ */
+public interface SyncDataFromHIPDao {
+
+ /**
+ * 解析xml,返回OrgUnitVo
+ * @param action OrganizationInfoRegister: 医疗卫生机构信息注册服务
+ * OrganizationInfoUpdate: 医疗卫生机构信息更新服务
+ * @param xmlStr 待解析的xml字符串
+ * @return
+ */
+ public List paramToOrgUnitVos(String action, String xmlStr);
+
+ /**
+ * 解析xml,返回UserVo
+ * @param action ProviderInfoRegister: 医疗卫生人员信息注册服务
+ * ProviderInfoUpdate: 医疗卫生人员信息更新服务
+ * @param xmlStr 待解析的xml字符串
+ * @return
+ */
+ public List paramToUserVos(String action, String xmlStr);
+
+ /**
+ * 根据xml中的手术申请单编号,查询并返回申请单信息
+ * @param xmlStr 手术申请单信息查询服务请求信息xml
+ * @return
+ */
+ public List paramToOperationReservation(String xmlStr);
+
+ /**
+ * 消毒物料使用记录登记
+ * @param xmlStr
+ * @return 处理的消息id
+ */
+ public UseRecord syncUseRecord(String xmlStr);
+
+ /**
+ * 消毒物料明细查询服务
+ * @param xmlStr
+ * @return
+ */
+ public TousseInstance tousseDetailQuery(String xmlStr);
+
+}
Index: ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/datasynchronization/dao/dysrmyy/WebServiceClientHelper.java
===================================================================
diff -u -r16803 -r27131
--- ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/datasynchronization/dao/dysrmyy/WebServiceClientHelper.java (.../WebServiceClientHelper.java) (revision 16803)
+++ ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/datasynchronization/dao/dysrmyy/WebServiceClientHelper.java (.../WebServiceClientHelper.java) (revision 27131)
@@ -1,6 +1,8 @@
package com.forgon.disinfectsystem.datasynchronization.dao.dysrmyy;
+import java.util.UUID;
+
import net.sf.json.JSON;
import net.sf.json.JSONObject;
import net.sf.json.xml.XMLSerializer;
@@ -26,6 +28,13 @@
public static String STATE_FAIL = "F";
/**
+ * 医院平台提供的用户名密码(中联项目人员进行系统注册)德阳市人民医院DYSYY-53 二期合同接口开发
+ */
+ public final static String USERNAME = "CSSD-96412E0C1AE56502E053CF1CA8C060C7";
+ public final static String PASSWORD = "mcTuwEZ1YyPv9slh5X1jsw==";
+
+
+ /**
* 构造接口输入参数
* @param methodName
* @param arg
@@ -68,6 +77,23 @@
+ ""
+ ""
+ "";
+ } else if (DatasyncConstant.MethodName_GetUserInfo.equals(methodName)) {
+ StringBuilder soap = new StringBuilder();
+ UUID uuid = UUID.randomUUID();
+ String xmlInput = "" + uuid.toString() + "" + arg[0] + "";
+ 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);
}
Index: ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/datasynchronization/dao/dysrmyy/SycnDataFromHIPDaoImpl.java
===================================================================
diff -u
--- ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/datasynchronization/dao/dysrmyy/SycnDataFromHIPDaoImpl.java (revision 0)
+++ ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/datasynchronization/dao/dysrmyy/SycnDataFromHIPDaoImpl.java (revision 27131)
@@ -0,0 +1,281 @@
+package com.forgon.disinfectsystem.datasynchronization.dao.dysrmyy;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.commons.lang.StringUtils;
+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.disinfectsystem.barcode.service.BarcodeManager;
+import com.forgon.disinfectsystem.datasynchronization.dao.SyncDataFromHIPDao;
+import com.forgon.disinfectsystem.datasynchronization.model.OrgUnitVo;
+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;
+
+public class SycnDataFromHIPDaoImpl implements SyncDataFromHIPDao {
+
+ @Autowired
+ private TousseInstanceManager tousseInstanceManager;
+ @Autowired
+ private BarcodeManager barcodeManager;
+
+ /**
+ * 根据document和Xpath表达式解析数据
+ * @param document
+ * @param nameSpaceURIMap
+ * @param xpathExp
+ * @return
+ */
+ private static String processDataByXpath(Document document, Map nameSpaceURIMap, String xpathExp) {
+ if ((StringUtils.isNotBlank(xpathExp)) && (document != null)) {
+ XPath xpath = document.createXPath(xpathExp);
+ if (nameSpaceURIMap != null) {
+ xpath.setNamespaceURIs(nameSpaceURIMap);
+ }
+ Node node = xpath.selectSingleNode(document);
+ if (node != null) {
+ return node.getStringValue();
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public List paramToOrgUnitVos(String action, String xmlStr) {
+ if (StringUtils.isBlank(action) || StringUtils.isBlank(xmlStr)) {
+ throw new RuntimeException("参数action或message为空!");
+ }
+ // xml文件命名空间
+ Map nameSpaceURIMap = new HashMap();
+ nameSpaceURIMap.put("s", "urn:hl7-org:v3");
+ // xml字段的xpath表达式
+ String idXpath = "";
+ String deptXpath = "";
+ String deptCodeXpath = "";
+ String deptNameXpath = "";
+ String parentDeptCodeXpath = "";
+ 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
+ + "/s:assignedPrincipalOrganization/s:asAffiliate/s:scoper2/s:id/s:item/@extension";
+ } else if (StringUtils.equals("OrganizationInfoUpdate", action)){
+ idXpath = "/PRPM_IN403010UV01/s:id/@extension";
+ deptXpath = "/PRPM_IN403010UV01/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
+ + "/s:assignedPrincipalOrganization/s:asAffiliate/s:affiliatedPrincipalOrganization/s:id/s:item/@extension";
+ } else {
+ throw new RuntimeException("action不为OrganizationInfoRegister或者OrganizationInfoUpdate!");
+ }
+
+ try {
+ Document document = DocumentHelper.parseText(xmlStr);
+ String messageId = processDataByXpath(document, nameSpaceURIMap, idXpath);
+ String deptCode = processDataByXpath(document, nameSpaceURIMap, deptCodeXpath);
+ String deptName = processDataByXpath(document, nameSpaceURIMap, deptNameXpath);
+ String parentDeptCode = processDataByXpath(document, nameSpaceURIMap, parentDeptCodeXpath);
+
+ if (messageId == null || deptCode == null || deptName == null || parentDeptCode == null) {
+ throw new RuntimeException("xml中的必须项不能为空!");
+ }
+
+ OrgUnitVo orgUnitVo = new OrgUnitVo();
+ orgUnitVo.setCoding(deptCode);
+ orgUnitVo.setName(deptName);
+ orgUnitVo.setParentCoding(parentDeptCode);
+ orgUnitVo.setSource(Constants.SOURCE_SYNC);
+ // 临时用于保存消息id
+ orgUnitVo.setMessageId(messageId);
+ List orgUnitVoList = new ArrayList();
+ orgUnitVoList.add(orgUnitVo);
+ return orgUnitVoList;
+ }catch (DocumentException e) {
+ e.printStackTrace();
+ throw new RuntimeException("xml解析失败!");
+ }
+ }
+
+ @Override
+ public List paramToUserVos(String action, String xmlStr) {
+ if (StringUtils.isBlank(action) || StringUtils.isBlank(xmlStr)) {
+ throw new RuntimeException("参数action或message为空!");
+ }
+ // xml文件命名空间
+ Map nameSpaceURIMap = new HashMap();
+ nameSpaceURIMap.put("s", "urn:hl7-org:v3");
+ // xml字段的xpath表达式
+ String messageIdXpath = "";
+ String userXpath = "";
+ String userCodeXpath = "";
+ String userNameXpath = "";
+ String deptCodeXpath = "";
+ 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";
+ userNameXpath = userXpath
+ + "/s:healthCarePrincipalPerson/s:name/s:item/s:part/@value";
+ deptCodeXpath = 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";
+ userNameXpath = userXpath
+ + "/s:healthCarePrincipalPerson/s:name/s:item/s:part/@value";
+ deptCodeXpath = userXpath
+ + "/s:healthCarePrincipalPerson/s:asAffiliate/s:affiliatedPrincipalOrganization/s:id/s:item/@extension";
+ } else {
+ throw new RuntimeException("action不为ProviderInfoRegister或者ProviderInfoUpdate!");
+ }
+
+ try {
+ Document document = DocumentHelper.parseText(xmlStr);
+ 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) {
+ throw new RuntimeException("xml中关键的参数不能为空!");
+ }
+ UserVo userVo = new UserVo();
+ userVo.setCoding(userCode);
+ userVo.setName(userName);
+ userVo.setOrgUnitCoding(deptCode);
+ userVo.setSource(Constants.SOURCE_SYNC);
+ // 保存消息id
+ userVo.setMessageId(messageId);
+ List userVoList = new ArrayList();
+ userVoList.add(userVo);
+ return userVoList;
+ } catch (DocumentException e) {
+ e.printStackTrace();
+ throw new RuntimeException("xml解析失败!");
+ }
+ }
+
+
+ @Override
+ public List paramToOperationReservation(String xmlStr) {
+ if (StringUtils.isEmpty(xmlStr)) {
+ throw new RuntimeException("参数message为空!");
+ }
+ // xml文件命名空间
+ Map nameSpaceURIMap = new HashMap();
+ nameSpaceURIMap.put("s", "urn:hl7-org:v3");
+ String actIdXpath = "/QUMT_IN020030UV01/s:controlActProcess/s:queryByParameter/s:actId/s:value/s:item/@extension";
+ try {
+ Document document = DocumentHelper.parseText(xmlStr);
+ String actId = processDataByXpath(document, nameSpaceURIMap, actIdXpath);
+ if (StringUtils.isBlank(actId)) {
+ throw new RuntimeException("xml中申请单编号参数不能为空!");
+ }
+ List list = new ArrayList();
+ OperationReservation operationReservation = new OperationReservation();
+ operationReservation.setSerialNumber(actId);
+ list.add(operationReservation);
+ return list;
+ } catch (DocumentException e) {
+ e.printStackTrace();
+ throw new RuntimeException("xml解析失败!");
+ }
+ }
+
+ @Override
+ public UseRecord syncUseRecord(String xmlStr) {
+ if (StringUtils.isBlank(xmlStr)) {
+ throw new RuntimeException("参数message为空!");
+ }
+ String messageIdXpath = "/req/message_id";
+ String codeXpath = "/req/message_cont/INPUT/code";
+ //String patientIdXpath = "/req/message_cont/INPUT/patient_id";
+ String inpatientnoXpath = "/req/message_cont/INPUT/inpatientno";
+ String excutorXpath = "/req/message_cont/INPUT/excutor";
+ String excutimeXpath = "/req/message_cont/INPUT/excutime";
+ String excutdeptnoXpath = "/req/message_cont/INPUT/excutdeptno";
+ try {
+ Document document = DocumentHelper.parseText(xmlStr);
+ String messageId = processDataByXpath(document, null, messageIdXpath);
+ // 器械包条码
+ String barcode = processDataByXpath(document, null, codeXpath);
+ // 患者标识
+ //String patientId = processDataByXpath(document, null, patientIdXpath);
+ // 患者住院号
+ String inpatientno = processDataByXpath(document, null, inpatientnoXpath);
+ String excutor = processDataByXpath(document, null, excutorXpath);
+ String excutime = processDataByXpath(document, null, excutimeXpath);
+ String excutdeptno = processDataByXpath(document, null, excutdeptnoXpath);
+ if (StringUtils.isBlank(messageId) || StringUtils.isBlank(barcode) || StringUtils.isBlank(inpatientno)) {
+ throw new RuntimeException("xml中关键参数不能为空!");
+ }
+ // 1、查询器械包实例
+ TousseInstance tousseInstance = new TousseInstance();
+ tousseInstance.setBarcode(barcode);
+ List list = new ArrayList();
+ list.add(tousseInstance);
+ // 2、生成使用记录
+ UseRecord useRecord = new UseRecord();
+ useRecord.setTousseInstanceList(list);
+ useRecord.setPatientIDCard(inpatientno);
+ useRecord.setDepartCoding(excutdeptno);
+ useRecord.setOperator(excutor);
+ // 存放使用记录录入时间
+ useRecord.setOperationTime(DateTools.coverStrToDate(excutime, "yyyyMMddHHmmss"));
+ // remark暂时存放请求消息的messageId
+ useRecord.setRemark(messageId);
+ return useRecord;
+ } catch (DocumentException e) {
+ e.printStackTrace();
+ throw new RuntimeException("xml解析失败!");
+ }
+ }
+
+ @Override
+ public TousseInstance tousseDetailQuery(String xmlStr) {
+ if (StringUtils.isBlank(xmlStr)) {
+ throw new RuntimeException("参数message为空!");
+ }
+ String messageIdXpath = "/req/message_id";
+ String barcodeXpath = "/req/message_cont/INPUT/code";
+ try {
+ Document document = DocumentHelper.parseText(xmlStr);
+ // 器械包条码
+ String barcode = processDataByXpath(document, null, barcodeXpath);
+ String messageId = processDataByXpath(document, null, messageIdXpath);
+ if (StringUtils.isBlank(messageId) || StringUtils.isBlank(barcode)) {
+ throw new RuntimeException("xml中关键参数不能为空!");
+ }
+ TousseInstance ti = new TousseInstance();
+ ti.setBarcode(barcode);
+ // remark暂时存放请求消息的messageId
+ ti.setRemark(messageId);
+ return ti;
+ } catch (DocumentException e) {
+ e.printStackTrace();
+ throw new RuntimeException("xml解析失败!");
+ }
+ }
+
+}
Index: ssts-web/src/main/resources/spring/security/applicationContext-acegi-security.xml
===================================================================
diff -u -r23160 -r27131
--- ssts-web/src/main/resources/spring/security/applicationContext-acegi-security.xml (.../applicationContext-acegi-security.xml) (revision 23160)
+++ ssts-web/src/main/resources/spring/security/applicationContext-acegi-security.xml (.../applicationContext-acegi-security.xml) (revision 27131)
@@ -39,6 +39,7 @@
+
Index: ssts-web/src/main/resources/spring/projects/dysyy/webservice-cxf.xml
===================================================================
diff -u
--- ssts-web/src/main/resources/spring/projects/dysyy/webservice-cxf.xml (revision 0)
+++ ssts-web/src/main/resources/spring/projects/dysyy/webservice-cxf.xml (revision 27131)
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
Index: ssts-webservice/src/main/java/com/forgon/disinfectsystem/webservice/datasync/dysrmyy/HIPMessageWebService.java
===================================================================
diff -u
--- ssts-webservice/src/main/java/com/forgon/disinfectsystem/webservice/datasync/dysrmyy/HIPMessageWebService.java (revision 0)
+++ ssts-webservice/src/main/java/com/forgon/disinfectsystem/webservice/datasync/dysrmyy/HIPMessageWebService.java (revision 27131)
@@ -0,0 +1,19 @@
+package com.forgon.disinfectsystem.webservice.datasync.dysrmyy;
+
+import javax.jws.WebMethod;
+import javax.jws.WebParam;
+import javax.jws.WebService;
+
+/**
+ * 德阳市人民医院DYSYY-53
+ * 二期合同接口开发
+ * @author zhoupeimian
+ * @since 2019-10-17
+ */
+@WebService(serviceName="HIPMessageWebService")
+public interface HIPMessageWebService {
+
+ @WebMethod(operationName="HIPMessageServer")
+ public String HIPMessageServer(@WebParam(name="action") String action, @WebParam(name="message") String message);
+
+}
Index: ssts-webservice/src/main/java/com/forgon/disinfectsystem/webservice/datasync/dysrmyy/HIPMessageWebServiceImpl.java
===================================================================
diff -u
--- ssts-webservice/src/main/java/com/forgon/disinfectsystem/webservice/datasync/dysrmyy/HIPMessageWebServiceImpl.java (revision 0)
+++ ssts-webservice/src/main/java/com/forgon/disinfectsystem/webservice/datasync/dysrmyy/HIPMessageWebServiceImpl.java (revision 27131)
@@ -0,0 +1,508 @@
+package com.forgon.disinfectsystem.webservice.datasync.dysrmyy;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+import java.util.UUID;
+
+import org.apache.commons.collections.CollectionUtils;
+import org.apache.commons.lang.StringUtils;
+import org.apache.log4j.Logger;
+import org.springframework.beans.factory.annotation.Autowired;
+
+import com.forgon.directory.model.BarcodeDevice;
+import com.forgon.disinfectsystem.barcode.service.BarcodeManager;
+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.datasynchronization.service.DataSynchronizationManager;
+import com.forgon.disinfectsystem.entity.basedatamanager.materialinstance.MaterialInstance;
+import com.forgon.disinfectsystem.entity.basedatamanager.toussedefinition.TousseDefinition;
+import com.forgon.disinfectsystem.entity.basedatamanager.toussedefinition.TousseInstance;
+import com.forgon.disinfectsystem.entity.invoicemanager.Invoice;
+import com.forgon.disinfectsystem.entity.invoicemanager.InvoicePlan;
+import com.forgon.disinfectsystem.entity.useRecord.UseRecord;
+import com.forgon.disinfectsystem.operationreservation.service.OperationReservationManager;
+import com.forgon.disinfectsystem.tousse.toussedefinition.service.TousseInstanceManager;
+import com.forgon.disinfectsystem.useRecord.service.UseRecordManager;
+import com.forgon.tools.date.DateTools;
+import com.forgon.tools.hibernate.ObjectDao;
+
+public class HIPMessageWebServiceImpl implements HIPMessageWebService {
+
+ private static Logger logger = Logger.getLogger(HIPMessageWebServiceImpl.class);
+
+ @Autowired
+ private SyncDataFromHIPDao sycnDataFromHIPDao;
+ @Autowired
+ private DataSynchronizationManager dataSynchronizationManager;
+ @Autowired
+ private OperationReservationManager operationReservationManager;
+ @Autowired
+ private TousseInstanceManager tousseInstanceManager;
+ @Autowired
+ private BarcodeManager barcodeManager;
+ @Autowired
+ private ObjectDao objectDao;
+ @Autowired
+ private UseRecordManager useRecordManager;
+
+ /**
+ * 医疗卫生人员信息注册服务
+ * @param action
+ * @param message
+ * @return
+ */
+ public String organizationInfoRegister(String action, String message) {
+ logger.info("organizationInfoRegister ---> action : " + action + "; message : " + message);
+ // typeCode为处理结果,AA表示成功 AE表示失败
+ String typeCode = "AE";
+ // 处理结果说明
+ String returnStr = "";
+ // 消息ID
+ String messageId = "";
+ // guid
+ UUID uuid = UUID.randomUUID();
+ List orgUnitVoList = new ArrayList();
+ try {
+ orgUnitVoList = sycnDataFromHIPDao.paramToOrgUnitVos(action, message);
+ } catch (Exception e) {
+ e.printStackTrace();
+ returnStr = e.getMessage();
+ logger.info(returnStr);
+ }
+ if (CollectionUtils.isNotEmpty(orgUnitVoList)) {
+ typeCode = "AA";
+ returnStr = "同步成功";
+ OrgUnitVo orgUnitVo = orgUnitVoList.get(0);
+ messageId = orgUnitVo.getMessageId();
+ // 同步到数据库中
+ dataSynchronizationManager.processSyncOrgUnitData(new OrgUnitVo[] {orgUnitVo});
+ }
+ String returnMsg = ""
+ + ""
+ + " "
+ + " "
+ + " "
+ + " "
+ + " -
"
+ + " "
+ + " -
"
+ + " "
+ + " "
+ + " ";
+ logger.info("organizationInfoRegister ---> " + returnMsg);
+ return returnMsg;
+ }
+
+ /**
+ * 医疗卫生人员信息更新服务
+ * @param action
+ * @param message
+ * @return
+ */
+ public String organizationInfoUpdate(String action, String message) {
+ return organizationInfoRegister(action, message);
+ }
+
+ /**
+ * 医疗卫生机构(科室)信息注册服务
+ * @param action
+ * @param message
+ * @return
+ */
+ public String providerInfoRegister(String action, String message) {
+ logger.info("providerInfoRegister ---> action : " + action + "; message : " + message);
+ // typeCode为处理结果,AA表示成功 AE表示失败
+ String typeCode = "AE";
+ // 处理结果说明
+ String returnStr = "";
+ // 消息ID
+ String messageId = "";
+ // guid
+ UUID uuid = UUID.randomUUID();
+ List userList = new ArrayList();
+ try {
+ userList = sycnDataFromHIPDao.paramToUserVos(action, message);
+ } catch (Exception e) {
+ returnStr = e.getMessage();
+ logger.info(returnStr);
+ e.printStackTrace();
+ }
+ if (CollectionUtils.isNotEmpty(userList)) {
+ typeCode = "AA";
+ returnStr = "同步成功";
+ UserVo userVo = userList.get(0);
+ messageId = userVo.getMessageId();
+ // 同步到数据库中
+ dataSynchronizationManager.processSyncUserData(new UserVo[] {userVo});
+ }
+ StringBuilder returnMsg = new StringBuilder();
+ returnMsg.append("");
+ returnMsg.append("");
+ returnMsg.append(" ");
+ returnMsg.append(" ");
+ returnMsg.append(" ");
+ returnMsg.append(" ");
+ returnMsg.append(" -
");
+ returnMsg.append(" ");
+ returnMsg.append(" -
");
+ returnMsg.append(" ");
+ returnMsg.append(" ");
+ returnMsg.append(" ");
+ String returnString = returnMsg.toString();
+ logger.info("providerInfoRegister ---> " + returnString);
+ return returnString;
+ }
+
+ /**
+ * 医疗卫生机构(科室)信息更新服务
+ * @param action
+ * @param message
+ * @return
+ */
+ public String providerInfoUpdate(String action, String message) {
+ return providerInfoRegister(action, message);
+ }
+
+ /**
+ * 器械包使用登记(消毒物料使用登记)
+ * @param action
+ * @param message
+ * @return
+ */
+ public String applyRegister(String action, String message) {
+ logger.info("applyRegister ---> action : " + action + "; message : " + message);
+ // typeCode 为处理结果, AA 表示成功 AE 表示失败
+ String typeCode = "AE";
+ // 处理结果说明
+ String returnStr = "患者消毒物料使用登记失败";
+ // 消息id
+ String messageId = "";
+ try {
+ UseRecord useRecord = sycnDataFromHIPDao.syncUseRecord(message);
+ if (useRecord != null) {
+ messageId = useRecord.getRemark();
+ List list = useRecord.getTousseInstanceList();
+ if (CollectionUtils.isNotEmpty(list)) {
+ TousseInstance ti = list.get(0);
+ BarcodeDevice bd = barcodeManager.getBarcodeByBarcode(ti.getBarcode());
+ 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) {
+ throw new RuntimeException("患者消毒物料使用登记失败 :未找到住院号为" + useRecord.getHospitalNum() + "的患者信息");
+ }
+ PatientInfoVO patient = patients[0];
+ // 3、创建使用记录
+ UseRecord newUseRecord = new UseRecord();
+ newUseRecord.setHospitalNum(patient.getHospitalNumber());
+ newUseRecord.setTreatmentNum(patient.getClinicNumber());
+ newUseRecord.setPatientName(patient.getPatientName());
+ newUseRecord.setPatientAge(patient.getPatientAge());
+ newUseRecord.setPatientSex(patient.getPatientSex());
+ newUseRecord.setPatientIDCard(patient.getPatientIDCard());
+ newUseRecord.setDoctorName(patient.getDoctorName());
+ newUseRecord.setOperation(patient.getOperation());
+ newUseRecord.setOperationRoom(patient.getOpRoomId());
+ newUseRecord.setPatientArea(patient.getPatientArea());
+ newUseRecord.setRoomNumber(patient.getRoomNumber());
+ newUseRecord.setBedNumber(patient.getBedNumber());
+ newUseRecord.setDepart(patient.getAscriptionDepartment());
+ newUseRecord.setVisitId(patient.getVisitId());
+ newUseRecord.setWashHandNurse(patient.getWashHandNurse());
+ newUseRecord.setCircuitNurse(patient.getCircuitNurse());
+ // 登记人
+ newUseRecord.setOperator(useRecord.getOperator());
+ // 审核人
+ newUseRecord.setReviewer(useRecord.getOperator());
+ Date currentDate = new Date();
+ // 录入时间
+ newUseRecord.setEnteringDate(useRecord.getOperationTime());
+ // 审核时间
+ newUseRecord.setReviewTime(useRecord.getOperationTime());
+ newUseRecord.setApplicationTime(currentDate);
+ newUseRecord.setOperationTime(useRecord.getOperationTime());
+ // 使用记录转申请单
+ useRecordManager.saveAndReviewAndConvertUseRecordForm_TRANS_REQUIRED(
+ newUseRecord, useRecord.getOperator(), null, useRecord.getDepartCoding(),
+ useRecord.getOperationTime(), InvoicePlan.TYPE_COMBO_FORM,
+ useRecord.getOperator(), useRecord.getOperator());
+ // 登记人
+ newUseRecord.setOperator(useRecord.getOperator());
+ // 审核人
+ newUseRecord.setReviewer(useRecord.getOperator());
+ // 录入时间
+ newUseRecord.setEnteringDate(useRecord.getOperationTime());
+ // 审核时间
+ newUseRecord.setReviewTime(useRecord.getOperationTime());
+ objectDao.saveOrUpdate(newUseRecord);
+ tousseInstance.setUseRecord_id(newUseRecord.getId());
+ tousseInstance.setStatus(TousseInstance.STATUS_USED);
+ tousseInstance.setPatientName(patient.getPatientName());
+ tousseInstance.setDoctorName(patient.getDoctorName());
+ tousseInstance.setUseTime(useRecord.getOperationTime());
+ objectDao.saveOrUpdate(tousseInstance);
+ if (StringUtils.isNotBlank(messageId)) {
+ typeCode = "AA";
+ returnStr = "患者消毒物料使用登记成功";
+ }
+ } else {
+ returnStr = "该条码不是器械包条码";
+ }
+ }
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ returnStr = e.getMessage();
+ }
+ StringBuilder returnMsg = new StringBuilder();
+ returnMsg.append("");
+ returnMsg.append(" ");
+ returnMsg.append("");
+ returnMsg.append("" + returnStr + "");
+ returnMsg.append("");
+ logger.info("applyRegister ---> " + returnMsg.toString());
+ return returnMsg.toString();
+ }
+
+ /**
+ * 根据器械包条码查询消毒物料明细查询
+ * @param action
+ * @param message
+ * @return
+ */
+ public String tousseDetailQuery(String action, String message) {
+ logger.info("tousseDetailQuery ---> action : " + action + "; message : " + message);
+ // typeCode 为处理结果, AA 表示成功 AE 表示失败
+ String typeCode = "AE";
+ // 处理结果说明
+ String returnStr = "消毒物料明细查询失败";
+ // 消息id
+ String messageId = "";
+ // guid
+ UUID uuid = UUID.randomUUID();
+ try {
+ TousseInstance ti = sycnDataFromHIPDao.tousseDetailQuery(message);
+ BarcodeDevice bd = barcodeManager.getBarcodeByBarcode(ti.getBarcode());
+ if (bd instanceof TousseInstance) {
+ // 生成器械包信息xml
+ TousseInstance tousseInstance = (TousseInstance) bd;
+ TousseDefinition tousseDefinition = tousseInstance.getTousseDefinition();
+ if (tousseDefinition != null) {
+ List materialInstances = tousseDefinition.getMaterialInstances();
+ messageId = ti.getRemark();
+ typeCode = "AA";
+ //String materialStr = "";
+ StringBuilder materialStr = new StringBuilder();
+ if (CollectionUtils.isNotEmpty(materialInstances)) {
+ for (MaterialInstance materialInstance : materialInstances) {
+ String detailspec = materialInstance.getSpecification() == null ? "" : materialInstance.getSpecification();
+ materialStr.append("" + materialInstance.getMaterialDefinitionId() + "");
+ materialStr.append("" + materialInstance.getMaterialName() + "");
+ materialStr.append("" + detailspec + "");
+ materialStr.append("" + materialInstance.getCount() + "");
+ }
+ }
+ StringBuilder returnStrSB = new StringBuilder();
+ returnStrSB.append("");
+ returnStrSB.append("" + tousseInstance.getBarcode() + "
");
+ returnStrSB.append("" + tousseDefinition.getId() + "");
+ returnStrSB.append("" + tousseInstance.getTousseName() + "");
+ returnStrSB.append("" + tousseInstance.getSterileEndTime() + "");
+ returnStrSB.append("" + tousseInstance.getValidUntilStr() + "");
+ returnStrSB.append(materialStr.toString());
+ returnStrSB.append("
");
+ returnStr = returnStrSB.toString();
+ }
+ }
+ } catch (RuntimeException e) {
+ e.printStackTrace();
+ returnStr = e.getMessage();
+ }
+ StringBuilder returnMsgSB = new StringBuilder();
+ returnMsgSB.append(""+ uuid.toString() +"");
+ returnMsgSB.append("");
+ returnMsgSB.append("");
+ returnMsgSB.append("" + returnStr + "");
+ logger.info("tousseDetailQuery ---> " + returnMsgSB.toString());
+ return returnMsgSB.toString();
+ }
+
+ /**
+ * 医院质控管理需要按患者使用的消毒包条码,进行消毒供应处理步骤的追溯并显示相关信息
+ * @param action
+ * @param message
+ * @return
+ */
+ public String tousseTraceQuery(String action, String message) {
+ logger.info("tousseTraceQuery ---> action : " + action + "; message : " + message);
+ // typeCode 为处理结果, AA 表示成功 AE 表示失败
+ String typeCode = "AE";
+ // 处理结果说明
+ String returnStr = "消毒物料消毒追溯信息查询失败";
+ // 消息id
+ String messageId = "";
+ // guid
+ UUID uuid = UUID.randomUUID();
+ try {
+ // 临时从xml中解析,只存了器械包条码,remark暂时存放请求消息的messageId
+ TousseInstance ti = sycnDataFromHIPDao.tousseDetailQuery(message);
+ BarcodeDevice bd = barcodeManager.getBarcodeByBarcode(ti.getBarcode());
+ if (bd instanceof TousseInstance) {
+ // 生成器械包信息xml
+ TousseInstance tousseInstance = (TousseInstance) bd;
+ messageId = ti.getRemark();
+ typeCode = "AA";
+ StringBuilder recoverStrSB = new StringBuilder();
+ recoverStrSB.append("");
+ recoverStrSB.append("" + (tousseInstance.getRecyclingOperator() == null ? "" : tousseInstance.getRecyclingOperator()) + "");
+ recoverStrSB.append("" + (tousseInstance.getRecyclingUser() == null ? "" : tousseInstance.getRecyclingUser()) + "");
+ recoverStrSB.append("" + (tousseInstance.getRecyclingTime() == null ? "" : tousseInstance.getRecyclingTime()) + "");
+ recoverStrSB.append("无");
+ recoverStrSB.append("无");
+ recoverStrSB.append("");
+
+ StringBuilder cleanstrSB = new StringBuilder();
+ cleanstrSB.append("");
+ cleanstrSB.append("" + (tousseInstance.getDisinfectIdentification() == null ? "" : tousseInstance.getDisinfectIdentification()) + "");
+ cleanstrSB.append("" + (tousseInstance.getDisinfectProgram() == null ? "" : tousseInstance.getDisinfectProgram()) + "");
+ cleanstrSB.append("" + (tousseInstance.getWashBasket() == null ? "" : tousseInstance.getWashBasket()) + "");
+ cleanstrSB.append("" + (tousseInstance.getWashOperator() == null ? "" : tousseInstance.getWashOperator()) + "");
+ cleanstrSB.append("");
+ cleanstrSB.append("" + (tousseInstance.getLocation() == null ? "" : tousseInstance.getLocation()) + "");
+ cleanstrSB.append("" + (tousseInstance.getWashStartTime() == null ? "" : tousseInstance.getWashStartTime()) + "");
+ cleanstrSB.append("" + (tousseInstance.getWashEndTime() == null ? "" : tousseInstance.getWashEndTime()) + "");
+ cleanstrSB.append("无");
+ cleanstrSB.append("");
+
+ StringBuilder packageStrSB = new StringBuilder();
+ packageStrSB.append("");
+ packageStrSB.append("" + (tousseInstance.getWrapper() == null ? "" : tousseInstance.getWrapper()) + "");
+ packageStrSB.append("" + (tousseInstance.getOperationTimeStr() == null ? "" : tousseInstance.getOperationTimeStr()) + "");
+ packageStrSB.append("" + (tousseInstance.getPackageType() == null ? "" : tousseInstance.getPackageType()) + "");
+ packageStrSB.append("" + (tousseInstance.getReviewer() == null ? "" : tousseInstance.getReviewer()) + "");
+ packageStrSB.append("" + (tousseInstance.getReviewTimeStr() == null ? "" : tousseInstance.getReviewTimeStr()) + "");
+ packageStrSB.append("");
+
+ StringBuilder sterilizationstrSB = new StringBuilder();
+ sterilizationstrSB.append("");
+ sterilizationstrSB.append("" + (tousseInstance.getSterilizerName() == null ? "" : tousseInstance.getSterilizerName()) + "");
+ sterilizationstrSB.append("" + (tousseInstance.getSterilingType() == null ? "" : tousseInstance.getSterilingType()) + "");
+ sterilizationstrSB.append("" + (tousseInstance.getSterileFrequency() == null ? "" : tousseInstance.getSterileFrequency()) + "");
+ sterilizationstrSB.append("" + (tousseInstance.getSterilizationUser() == null ? "" : tousseInstance.getSterilizationUser()) + "");
+ sterilizationstrSB.append("" + (tousseInstance.getSterileStartTime() == null ? "" : tousseInstance.getSterileStartTime()) + "");
+ sterilizationstrSB.append("" + (tousseInstance.getSterileEndTime() == null ? "" : tousseInstance.getSterileEndTime()) + "");
+ sterilizationstrSB.append("" + (tousseInstance.getSterilizationBasket() == null ? "" : tousseInstance.getSterilizationBasket()) + "");
+ sterilizationstrSB.append("无");
+ sterilizationstrSB.append("无");
+ sterilizationstrSB.append("" + (tousseInstance.getValidUntilStr() == null ? "" : tousseInstance.getValidUntilStr()) + "");
+ sterilizationstrSB.append("");
+
+ Invoice ip = tousseInstance.getInvoice(objectDao);
+ StringBuilder sendstrSB = new StringBuilder();
+ if (ip != null) {
+ sendstrSB.append("");
+ sendstrSB.append("" + (ip.getSerialNumber() == null ? "" : ip.getSerialNumber()) + "");
+ sendstrSB.append("" + (ip.getDepart() == null ? "" : ip.getDepart()) + "");
+ sendstrSB.append("" + (ip.getApplicant() == null ? "" : ip.getApplicant()) + "");
+ sendstrSB.append("" + (ip.getApplicationTime_YYYYMMDDHHMM() == null ? "" : ip.getApplicationTime_YYYYMMDDHHMM()) + "");
+ sendstrSB.append("" + (ip.getSendTime_YYYYMMDDHHMM() == null ? "" : ip.getSendTime_YYYYMMDDHHMM()) + "");
+ sendstrSB.append("" + (ip.getSender() == null ? "" : ip.getSender()) + "");
+ sendstrSB.append("" + (ip.getReceiptingTime_YYYYMMDDHHMM() == null ? "" : ip.getReceiptingTime_YYYYMMDDHHMM()) + "");
+ sendstrSB.append("" + (ip.getReceiptor() == null ? "" : ip.getReceiptor()) + "");
+ sendstrSB.append("");
+ }
+
+ UseRecord ur = tousseInstance.getUseRecord(objectDao);
+ StringBuilder useStrSB = new StringBuilder();
+ if (ur != null) {
+ useStrSB.append("");
+ }
+
+ StringBuilder discardstrSB = new StringBuilder();
+ discardstrSB.append("");
+ discardstrSB.append("" + (tousseInstance.getWasteDateStr() == null ? "" : tousseInstance.getWasteDateStr()) + "");
+ discardstrSB.append("" + (tousseInstance.getWasteReason() == null ? "" : tousseInstance.getWasteReason()) + "");
+ discardstrSB.append("" + (tousseInstance.getOperateUser() == null ? "" : tousseInstance.getOperateUser()) + "");
+ discardstrSB.append("");
+
+ StringBuilder returnStrSB = new StringBuilder();
+ returnStrSB.append("");
+ returnStr = returnStrSB.toString();
+ }
+ } catch (RuntimeException e) {
+ e.printStackTrace();
+ returnStr = e.getMessage();
+ }
+ String returnMsg =
+ ""+ uuid.toString() +"" +
+ "" +
+ "" +
+ "" + returnStr + "";
+ logger.info("tousseTraceQuery ---> " + returnMsg);
+ return returnMsg;
+ }
+
+
+ @Override
+ public String HIPMessageServer(String action, String message) {
+ if ("ProviderInfoRegister".equals(action)) {
+ return this.providerInfoRegister(action, message);
+ } else if ("ProviderInfoUpdate".equals(action)) {
+ return this.providerInfoUpdate(action, message);
+ } else if ("OrganizationInfoRegister".equals(action)) {
+ return this.organizationInfoRegister(action, message);
+ } else if ("OrganizationInfoUpdate".equals(action)) {
+ return this.organizationInfoUpdate(action, message);
+ } else if ("FJ_DETAILQUERY".equals(action)) {
+ return this.tousseDetailQuery(action, message);
+ } else if ("FJ_APPLYREGIS".equals(action)) {
+ return this.applyRegister(action, message);
+ } else if ("FJ_TRACEQUERY".equals(action)) {
+ return this.tousseTraceQuery(action, message);
+ } else {
+ logger.info("action : " + action + "; message : " + message);
+ // typeCode 为处理结果, AA 表示成功 AE 表示失败
+ String typeCode = "AE";
+ // 处理结果说明
+ String returnStr = "错误的action值";
+ // guid
+ UUID uuid = UUID.randomUUID();
+ StringBuilder returnMsgSB = new StringBuilder();
+ returnMsgSB.append("" + uuid.toString() + "");
+ returnMsgSB.append("");
+ returnMsgSB.append("");
+ returnMsgSB.append("" + returnStr + "");
+ String returnMsg = returnMsgSB.toString();
+ logger.info("returnMsg : " + returnMsg);
+ return returnMsg;
+ }
+ }
+
+}
Index: ssts-datasync/src/main/java/com/forgon/disinfectsystem/datasynchronization/model/UserVo.java
===================================================================
diff -u -r14351 -r27131
--- ssts-datasync/src/main/java/com/forgon/disinfectsystem/datasynchronization/model/UserVo.java (.../UserVo.java) (revision 14351)
+++ ssts-datasync/src/main/java/com/forgon/disinfectsystem/datasynchronization/model/UserVo.java (.../UserVo.java) (revision 27131)
@@ -22,6 +22,11 @@
*/
private String source;
+ /**
+ * 请求消息的Id(德阳市人民医院DYSYY-53二期合同接口开发)
+ */
+ private String messageId;
+
public String getCoding() {
return coding;
}
@@ -107,4 +112,12 @@
this.status = status;
}
+ public String getMessageId() {
+ return messageId;
+ }
+
+ public void setMessageId(String messageId) {
+ this.messageId = messageId;
+ }
+
}
Index: ssts-web/src/main/webapp/logonSSOForDysyy.jsp
===================================================================
diff -u
--- ssts-web/src/main/webapp/logonSSOForDysyy.jsp (revision 0)
+++ ssts-web/src/main/webapp/logonSSOForDysyy.jsp (revision 27131)
@@ -0,0 +1,214 @@
+<%@page import="com.itextpdf.text.log.SysoLogger"%>
+<%@page import="com.forgon.security.model.User"%>
+<%@page import="com.forgon.disinfectsystem.common.CssdUtils"%>
+<%@page import="com.forgon.security.service.UserManager"%>
+<%@ page contentType="text/html; charset=UTF-8" %>
+<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
+<%@page import="com.forgon.tools.SpringBeanManger"%>
+<%@page import="com.forgon.tools.Constants"%>
+<%@page import="net.sf.json.JSONObject" %>
+<%@page import="java.io.File" %>
+<%@page import="java.util.ArrayList" %>
+<%@page import="org.apache.commons.lang.StringUtils"%>
+<%@page import="com.forgon.disinfectsystem.datasynchronization.dao.dysrmyy.DatasyncConstant"%>
+<%@page import="com.forgon.disinfectsystem.datasynchronization.dao.dysrmyy.WebServiceClientHelper"%>
+
+<%
+ArrayList message = new ArrayList();
+String sid = request.getParameter("sid");
+if(StringUtils.isNotBlank(sid)){
+ //String xmlInput = "123546" + sid + "";
+ String xmlResult = CssdUtils.sendPostRequest(DatasyncConstant.HIPWebServiceAddress,
+ WebServiceClientHelper.transferSpecialWordParam(
+ WebServiceClientHelper.buildCallWebServiceInputXml(DatasyncConstant.MethodName_GetUserInfo, sid)
+ ), Constants.CHARSET_UTF8);
+ String userName = "";
+ try{
+ JSONObject json = (JSONObject)CssdUtils.xml2JsonCommon(xmlResult);
+ String typeCode = json.optJSONObject("message_cont")
+ .optJSONObject("acknowledgement").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");
+ if(userName == null){
+ message.add("xml的格式有误");
+ }
+ else if(userName.equals("")){
+ message.add("userName不能为空");
+ }
+ }
+ else{
+ message.add("xml的格式有误");
+ }
+ }
+ catch(Exception e) {
+ message.add("xml的格式有误");
+ }
+
+ if(StringUtils.isNotBlank(userName)){
+ UserManager userManager=(UserManager)SpringBeanManger.getBean("userManager");
+ User user=userManager.getFirst("name", userName);
+ if(user==null){
+ message.add("用户:"+userName+"不存在");
+ }else{
+ pageContext.setAttribute("barcode", user.getBarcode());
+ }
+ }
+}else{
+ message.add("sid不能为空");
+}
+pageContext.setAttribute("message", message);
+
+String companyName = CssdUtils.getSystemSetConfigByName("companyName");
+String companyNameStr = "";
+if(companyName == null || companyName.equals("forgon")){
+ companyNameStr = "©2016 广州孚峻信息技术有限公司 版权所有";
+}else if(companyName.equals("dingxiang")){
+ companyNameStr = "©2016 广州丁香软件有限公司 版权所有";
+}
+session.setAttribute("companyName", companyNameStr);
+String project = CssdUtils.getConfigProperty("project");
+session.setAttribute("profile", project);
+
+String imgPath = "disinfectsystem/config/" + project + "/img/logo_" + project +".png";
+//System.out.println(application.getRealPath("/") + imgPath);
+File file = new File(application.getRealPath("/") + imgPath);
+if(file.exists()){
+ request.setAttribute("logoPath",imgPath);
+}else{
+ if(companyName == null || companyName.equals("forgon")){
+ request.setAttribute("logoPath","themes/portalPage/img/logo_Forgon.png");
+ }else if(companyName.equals("dingxiang")){
+ request.setAttribute("logoPath","themes/portalPage/img/logo_dingxiangsoft.png");
+ }
+}
+
+%>
+
+
+
+
+
+
+
+
+消毒供应质量追溯管理系统
+<%-- --%>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Index: ssts-web/src/main/resources/spring/security/applicationContext-acegi-security-standard.xml.back
===================================================================
diff -u -r25011 -r27131
--- ssts-web/src/main/resources/spring/security/applicationContext-acegi-security-standard.xml.back (.../applicationContext-acegi-security-standard.xml.back) (revision 25011)
+++ ssts-web/src/main/resources/spring/security/applicationContext-acegi-security-standard.xml.back (.../applicationContext-acegi-security-standard.xml.back) (revision 27131)
@@ -38,6 +38,7 @@
+