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 = "";
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 = "";
+ 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;
+ }
+
}