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 = "CSSD201808081111111234CSSDHospitalNumber0000success3494841281234梁峻豪9岁1440608200711050015李春景外科住院W+23"; + 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";