Index: ssts-web/src/main/resources/spring/projects/gzzyyfy/HIS.xml
===================================================================
diff -u -r23868 -r24048
--- ssts-web/src/main/resources/spring/projects/gzzyyfy/HIS.xml (.../HIS.xml) (revision 23868)
+++ ssts-web/src/main/resources/spring/projects/gzzyyfy/HIS.xml (.../HIS.xml) (revision 24048)
@@ -47,4 +47,7 @@
+
+
+
\ No newline at end of file
Index: ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/datasynchronization/dao/gzzyyfy/FindPatientInfoByTreatmentNumDaoImpl.java
===================================================================
diff -u
--- ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/datasynchronization/dao/gzzyyfy/FindPatientInfoByTreatmentNumDaoImpl.java (revision 0)
+++ ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/datasynchronization/dao/gzzyyfy/FindPatientInfoByTreatmentNumDaoImpl.java (revision 24048)
@@ -0,0 +1,94 @@
+package com.forgon.disinfectsystem.datasynchronization.dao.gzzyyfy;
+
+import net.sf.json.JSONArray;
+import net.sf.json.JSONObject;
+
+import org.apache.log4j.Logger;
+
+import com.forgon.disinfectsystem.common.CssdUtils;
+import com.forgon.disinfectsystem.datasynchronization.dao.FindPatientInfoByTreatmentNumDao;
+import com.forgon.disinfectsystem.datasynchronization.model.PatientInfoVO;
+import com.forgon.tools.Constants;
+
+/**
+ * 广州中医药附一接口-门诊病人dao
+ * @author shuyongfu
+ * @since 2018-06-21
+ */
+public class FindPatientInfoByTreatmentNumDaoImpl implements
+ FindPatientInfoByTreatmentNumDao {
+
+ Logger logger = Logger.getLogger(FindPatientInfoByTreatmentNumDaoImpl.class);
+
+ /**
+ * 根据诊疗号查询病人信息
+ */
+ @Override
+ public PatientInfoVO[] findPatientInfoByTreatmentNum(String treatmentNum) {
+ PatientInfoVO[] patientInfoVOArray = null;
+ try{
+ //测试数据,建议代码保留往后可以本地调试
+ //String xml = "";
+ String xmlResult = CssdUtils.sendPostRequest(DatasyncConstant.HttpServiceAddress,
+ HttpInterfaceHelper.buildInputXml(DatasyncConstant.MethodName_ClinicNumber, treatmentNum), Constants.CHARSET_UTF8);
+ JSONObject documentElementJsonObject = (JSONObject)CssdUtils.xml2JsonCommon(xmlResult);
+ if(documentElementJsonObject != null){
+ String code = documentElementJsonObject.optString("Result");
+ if(DatasyncConstant.RESULT_OK.equals(code)){
+ Object patientInfoObj = documentElementJsonObject.opt("DataTable");
+ JSONObject patientInfo = null;
+ //body下节点可能会有多个rows节点,所以需要判断
+ if(patientInfoObj instanceof JSONObject){
+ patientInfo = (JSONObject)patientInfoObj;
+ }else if(patientInfoObj instanceof JSONArray){
+ patientInfo = ((JSONArray)patientInfoObj).optJSONObject(0);
+ }
+ if(patientInfo == null){
+ return null;
+ }
+ Object tNumber = patientInfo.opt("clinicNumber");
+ Object patientName = patientInfo.opt("patientName");
+ Object patientAge = patientInfo.opt("patientAge");
+ Object patientSex = patientInfo.opt("patientSex");
+ Object patientIDCard = patientInfo.opt("patientIDCard");
+ Object doctorName = patientInfo.opt("doctorName");
+ Object operation = patientInfo.opt("operation");
+ Object operationTime = patientInfo.opt("operationTime");
+ Object patientArea = patientInfo.opt("patientArea");
+ Object bedNumber = patientInfo.opt("bedNumber");
+ Object roomNumber = patientInfo.opt("roomNumber");
+ Object remark = patientInfo.opt("remark");
+
+ PatientInfoVO vo = new PatientInfoVO();
+ vo.setPatientNumber(tNumber instanceof String ? (String)tNumber : "");
+ vo.setClinicNumber(vo.getPatientNumber());
+ vo.setPatientName(patientName instanceof String ? (String)patientName : "");
+ vo.setPatientAge(patientAge instanceof String ? (String)patientAge : "");
+ vo.setPatientIDCard(patientIDCard instanceof String ? (String)patientIDCard : "");
+ vo.setDoctorName(doctorName instanceof String ? (String)doctorName : "");
+ vo.setOperation(operation instanceof String ? (String)operation : "");
+ vo.setOperationTime(operationTime instanceof String ? (String)operationTime : "");
+ vo.setPatientArea(patientArea instanceof String ? (String)patientArea : "");
+ vo.setBedNumber(bedNumber instanceof String ? (String)bedNumber : "");
+ vo.setRoomNumber(roomNumber instanceof String ? (String)roomNumber : "");
+ vo.setRemark(remark instanceof String ? (String)remark : "");
+
+
+ //设置性别及编码转换成中文
+ vo.setPatientSex(patientSex instanceof String ? (String)patientSex : "");
+ vo.setPatientSex(DatasyncConstant.patientSetMap.getOrDefault(vo.getPatientSex(), vo.getPatientSex()));
+
+ patientInfoVOArray = new PatientInfoVO[] { vo };
+ }else{
+ throw new RuntimeException(documentElementJsonObject.optString("Error"));
+ }
+ }
+ }catch(Exception e){
+ e.printStackTrace();
+ logger.error("根据诊疗号查询病人信息失败" + e);
+ }
+
+ return patientInfoVOArray;
+ }
+
+}
Index: ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/datasynchronization/dao/gzzyyfy/HttpInterfaceHelper.java
===================================================================
diff -u -r23629 -r24048
--- ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/datasynchronization/dao/gzzyyfy/HttpInterfaceHelper.java (.../HttpInterfaceHelper.java) (revision 23629)
+++ ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/datasynchronization/dao/gzzyyfy/HttpInterfaceHelper.java (.../HttpInterfaceHelper.java) (revision 24048)
@@ -42,6 +42,18 @@
+ ""+ args[0] +""
+ ""
+ "";
+ } else if (DatasyncConstant.MethodName_ClinicNumber.equals(methodName)) {
+ //住院病人
+ inputXml = ""
+ + ""
+ + ""+ DatasyncConstant.AccessKey +""
+ + ""+ DatasyncConstant.MethodName_ClinicNumber +""
+ + " "
+ + ""+ DatasyncConstant.DataOrgId +""
+ + ""+ DatasyncConstant.DataSysId +""
+ + ""+ args[0] +""
+ + ""
+ + "";
} else if (DatasyncConstant.MethodName_Department.equals(methodName)) {
//科室
inputXml = ""
Index: ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/datasynchronization/dao/gzzyyfy/DatasyncConstant.java
===================================================================
diff -u -r23811 -r24048
--- ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/datasynchronization/dao/gzzyyfy/DatasyncConstant.java (.../DatasyncConstant.java) (revision 23811)
+++ ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/datasynchronization/dao/gzzyyfy/DatasyncConstant.java (.../DatasyncConstant.java) (revision 24048)
@@ -43,6 +43,11 @@
public final static String MethodName_HospitalNumber = "CSSD_HospitalNumber";
/**
+ * 接口方法名:门诊病人(作为输入参数)
+ */
+ public final static String MethodName_ClinicNumber = "CSSD_ClinicNumber";
+
+ /**
* 接口方法名:科室(作为输入参数)
*/
public final static String MethodName_Department = "CSSD_Department";