Index: ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/datasynchronization/dao/fsfy/DatasyncConstant.java =================================================================== diff -u -r33867 -r34837 --- ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/datasynchronization/dao/fsfy/DatasyncConstant.java (.../DatasyncConstant.java) (revision 33867) +++ ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/datasynchronization/dao/fsfy/DatasyncConstant.java (.../DatasyncConstant.java) (revision 34837) @@ -62,7 +62,12 @@ /** * 按记帐号(即病人腕带的二维码去掉前缀WB后的部分)查询病人信息的接口方法名(作为输入参数) */ - public final static String TransId_SerialNumber = "SerialNumber"; + public final static String TransId_HospitalNumber_SerialNumber = "HospitalNumberSerialNumber"; + + /** + * 门诊流水号查询病人信息的接口方法名FSFY-91 + */ + public final static String TransId_ClinicNumber_SerialNumber = "ClinicNumberSerialNumber"; /** * 科室信息的接口方法名(作为输入参数) Index: ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/datasynchronization/dao/fsfy/FindPatientInfoByHospitalNumDaoImpl.java =================================================================== diff -u -r33030 -r34837 --- ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/datasynchronization/dao/fsfy/FindPatientInfoByHospitalNumDaoImpl.java (.../FindPatientInfoByHospitalNumDaoImpl.java) (revision 33030) +++ ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/datasynchronization/dao/fsfy/FindPatientInfoByHospitalNumDaoImpl.java (.../FindPatientInfoByHospitalNumDaoImpl.java) (revision 34837) @@ -126,7 +126,7 @@ //String xml = "CSSD201808081111111234CSSDHospitalNumber0000success3494841281234梁峻豪9岁1440608200711050015李春景外科住院W+23"; logger.info("接口地址:" + DatasyncConstant.WebserviceAddress); String xmlResult = CssdUtils.callWebService(DatasyncConstant.WebserviceAddress, - WebServiceClientHelper.buildInputXml(DatasyncConstant.TransId_SerialNumber, serialNumber), Constants.CHARSET_UTF8); + WebServiceClientHelper.buildInputXml(DatasyncConstant.TransId_HospitalNumber_SerialNumber, serialNumber), Constants.CHARSET_UTF8); String xml = CssdUtils.getXmlContentByTagName(xmlResult , "return"); JSONObject json = (JSONObject)CssdUtils.xml2JsonCommon(xml); if(json!=null){ Index: ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/datasynchronization/dao/fsfy/WebServiceClientHelper.java =================================================================== diff -u -r33030 -r34837 --- ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/datasynchronization/dao/fsfy/WebServiceClientHelper.java (.../WebServiceClientHelper.java) (revision 33030) +++ ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/datasynchronization/dao/fsfy/WebServiceClientHelper.java (.../WebServiceClientHelper.java) (revision 34837) @@ -40,7 +40,7 @@ "" + "" + ""; - } else if (DatasyncConstant.TransId_SerialNumber.equals(transIdName)) { + } else if (DatasyncConstant.TransId_HospitalNumber_SerialNumber.equals(transIdName)) { //按记帐号同步病人 inputXml = "" + "" + @@ -50,6 +50,16 @@ "" + "" + ""; + } else if (DatasyncConstant.TransId_ClinicNumber_SerialNumber.equals(transIdName)) { + //门诊流水号 + inputXml = "" + + "" + + "" + + "" + + "CSSD201808081111111234"+ DatasyncConstant.AppId +"" + DatasyncConstant.TransId_ClinicNumber + ""+ args[0] +"]]>" + + "" + + "" + + ""; } else if (DatasyncConstant.TransId_Department.equals(transIdName)) { //科室 inputXml = "" + Index: ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/datasynchronization/dao/fsfy/FindPatientInfoByTreatmentNumDaoImpl.java =================================================================== diff -u -r33030 -r34837 --- ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/datasynchronization/dao/fsfy/FindPatientInfoByTreatmentNumDaoImpl.java (.../FindPatientInfoByTreatmentNumDaoImpl.java) (revision 33030) +++ ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/datasynchronization/dao/fsfy/FindPatientInfoByTreatmentNumDaoImpl.java (.../FindPatientInfoByTreatmentNumDaoImpl.java) (revision 34837) @@ -47,9 +47,9 @@ patientInfo = ((JSONArray)body).optJSONObject(0); } if(patientInfo == null){ - return null; + return findPatientInfoBySerialNumber(treatmentNum); } - Object tNumber = patientInfo.opt("hospitalNumber"); + Object tNumber = patientInfo.opt("clinicNumber"); Object patientName = patientInfo.opt("patientName"); Object patientAge = patientInfo.opt("patientAge"); Object patientSex = patientInfo.opt("patientSex"); @@ -65,6 +65,7 @@ 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.setPatientSex(patientSex instanceof String ? (String)patientSex : ""); @@ -98,4 +99,90 @@ return patientInfoVOArray; } + /** + * 根据门诊流水号查询病人信息FSFY-91 + * @param serialNumber 门诊流水号 + */ + private PatientInfoVO[] findPatientInfoBySerialNumber(String serialNumber) { + PatientInfoVO[] patientInfoVOArray = null; + try{ + String prefix = "WB"; + if(serialNumber.startsWith(prefix)){ + serialNumber = serialNumber.replace(prefix, ""); + } + //测试数据,建议代码保留往后可以本地调试 + //String xml = "CSSD201808081111111234CSSDHospitalNumber0000success3494841281234梁峻豪9岁1440608200711050015李春景外科住院W+23"; + logger.info("接口地址:" + DatasyncConstant.WebserviceAddress); + String xmlResult = CssdUtils.callWebService(DatasyncConstant.WebserviceAddress, + WebServiceClientHelper.buildInputXml(DatasyncConstant.TransId_ClinicNumber_SerialNumber, serialNumber), Constants.CHARSET_UTF8); + String xml = CssdUtils.getXmlContentByTagName(xmlResult , "return"); + JSONObject json = (JSONObject)CssdUtils.xml2JsonCommon(xml); + if(json!=null){ + JSONObject headJsonObject = json.optJSONObject("head"); + String code = headJsonObject.optString("result"); + if(DatasyncConstant.RESULT_OK.equals(code)){ + JSONObject patientInfo = null; + //body下节点可能会有多个rows节点,所以需要判断 + Object body = json.opt("body"); + if(body instanceof JSONObject){ + patientInfo = ((JSONObject)body).optJSONObject("rows"); + }else if(body instanceof JSONArray){ + patientInfo = ((JSONArray)body).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"); + + Object washHandNurse = patientInfo.opt("washHandNurse"); + Object circuitNurse = patientInfo.opt("circuitNurse"); + + 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.setWashHandNurse(washHandNurse instanceof String ? (String)washHandNurse : ""); + vo.setCircuitNurse(circuitNurse instanceof String ? (String)circuitNurse : ""); + + //设置性别及编码转换成中文 + vo.setPatientSex(patientSex instanceof String ? (String)patientSex : ""); + if(StringUtils.equals(DatasyncConstant.PATEINTSEXCODE_MALE, vo.getPatientSex())){ + vo.setPatientSex(DatasyncConstant.PATEINTSEXNAME_MALE); + }else if(StringUtils.equals(DatasyncConstant.PATEINTSEXCODE_FEMALE, vo.getPatientSex())){ + vo.setPatientSex(DatasyncConstant.PATEINTSEXNAME_FEMALE); + } + + patientInfoVOArray = new PatientInfoVO[] { vo }; + }else{ + throw new RuntimeException(headJsonObject.optString("resultMsg")); + } + } + }catch(Exception e){ + logger.error("根据记帐号查询病人信息失败" + e); + } + + return patientInfoVOArray; + } + }