|
@@ -0,0 +1,159 @@
|
|
|
+package com.hgwebservice.service;
|
|
|
+
|
|
|
+import com.hgwebservice.config.BSXmlWsEntryClass;
|
|
|
+import com.hgwebservice.config.BSXmlWsEntryClassService;
|
|
|
+import com.hgwebservice.entity.hisview.DispatchData;
|
|
|
+import com.hgwebservice.entity.hisview.OperatorData;
|
|
|
+import com.hgwebservice.entity.hisview.PatientData;
|
|
|
+import lombok.extern.slf4j.Slf4j;
|
|
|
+import org.dom4j.Document;
|
|
|
+import org.dom4j.DocumentHelper;
|
|
|
+import org.dom4j.Element;
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.stereotype.Service;
|
|
|
+
|
|
|
+import java.text.SimpleDateFormat;
|
|
|
+import java.util.ArrayList;
|
|
|
+import java.util.Date;
|
|
|
+import java.util.List;
|
|
|
+@Service
|
|
|
+@Slf4j
|
|
|
+public class HgWebServiceImpl implements HgWebService {
|
|
|
+ private static SimpleDateFormat SDF_TIME = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private BSXmlWsEntryClassService service;
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public List<OperatorData> getOperatorData() {
|
|
|
+ List<OperatorData> alloperatorDataList = new ArrayList<>();
|
|
|
+ String paramer = "<![CDATA[\n <BSXml>\n<MsgHeader>\n<Sender>HGXTY</Sender>\n<MsgType>HGXTY_operator_data_xty</MsgType>\n<MsgVersion>3.0</MsgVersion>\n</MsgHeader>\n</BSXml>]]>\n";
|
|
|
+ try {
|
|
|
+ BSXmlWsEntryClass port = service.getBSXmlWsEntryClassPort();
|
|
|
+ String operatorstr = port.invoke("operator_data_xty", "HGXTY","HGXTY",paramer);
|
|
|
+ operatorstr = operatorstr.replaceAll("<", "<");
|
|
|
+ operatorstr = operatorstr.replaceAll(">", ">");
|
|
|
+ if (operatorstr.contains("<Detail>查询成功")) {
|
|
|
+ operatorstr = operatorstr.split("</MsgHeader>")[1];
|
|
|
+ operatorstr = operatorstr.split("</BSXml>")[0];
|
|
|
+ operatorstr = operatorstr.replaceAll(" ", "");
|
|
|
+ } else {
|
|
|
+ log.info("get getOperatorDataList Fail =======");
|
|
|
+ return alloperatorDataList;
|
|
|
+ }
|
|
|
+ Document doc = DocumentHelper.parseText(operatorstr);
|
|
|
+ Element root = doc.getRootElement();
|
|
|
+ List<Element> OperatorList = root.elements();
|
|
|
+ for (Element operator : OperatorList) {
|
|
|
+ OperatorData operatorData = new OperatorData();
|
|
|
+ operatorData.setAcc(operator.element("ACC").getText());
|
|
|
+ operatorData.setAccName(operator.element("ACCNAME").getText());
|
|
|
+ operatorData.setIsEffective(operator.element("ISEFFECTIVE").getText());
|
|
|
+ alloperatorDataList.add(operatorData);
|
|
|
+ }
|
|
|
+ log.info("get getOperatorDataList success =======total:"+alloperatorDataList.size());
|
|
|
+ return alloperatorDataList;
|
|
|
+ } catch (Exception e) {
|
|
|
+ log.error("Get operator info fail ", e);
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public List<PatientData> getPatientDataByDeptCode(String deptcode) {
|
|
|
+ List<PatientData> patientDataList = new ArrayList<>();
|
|
|
+ String paramer = "<![CDATA[\n <BSXml>\n<MsgHeader>\n<Sender>HGXTY</Sender>\n<MsgType>HGXTY_patient_data_xty</MsgType>\n<MsgVersion>3.0</MsgVersion>\n</MsgHeader>\n<deptcode>" + deptcode + "</deptcode>\n</BSXml>]]>\n";
|
|
|
+ try {
|
|
|
+ BSXmlWsEntryClass port = service.getBSXmlWsEntryClassPort();
|
|
|
+ String patientstr = port.invoke("patient_data_xty", "HGXTY","HGXTY",paramer);
|
|
|
+ patientstr = patientstr.replaceAll("<", "<");
|
|
|
+ patientstr = patientstr.replaceAll(">", ">");
|
|
|
+ if (patientstr.contains("<Detail>查询成功")) {
|
|
|
+ patientstr = patientstr.split("</MsgHeader>")[1];
|
|
|
+ patientstr = patientstr.split("</BSXml>")[0];
|
|
|
+ } else {
|
|
|
+ log.info("get PatientUrl Fail =======");
|
|
|
+ return patientDataList;
|
|
|
+ }
|
|
|
+ Document doc = DocumentHelper.parseText(patientstr);
|
|
|
+ Element root = doc.getRootElement();
|
|
|
+ List<Element> patientList = root.elements();
|
|
|
+ for (Element element : patientList) {
|
|
|
+ PatientData patientData = new PatientData();
|
|
|
+ patientData.setPatientNO(element.element("PATIENT_NO").getText());
|
|
|
+ patientData.setHospitalNO(element.element("HOSPITAL_NO").getText());
|
|
|
+ patientData.setWristbandNO(element.element("WRISTBAND_NO").getText());
|
|
|
+ patientData.setName(element.element("NAME").getText());
|
|
|
+ String sex = element.element("GENDER").getText();
|
|
|
+ if (!sex.equals("男")) {
|
|
|
+ sex = "女";
|
|
|
+ }
|
|
|
+ patientData.setGender(sex);
|
|
|
+ String birthday = element.element("BIRTHDAY").getText();
|
|
|
+ if (birthday.length() < 10){
|
|
|
+ birthday = birthday + " 00:00:00";
|
|
|
+ }
|
|
|
+ patientData.setBirthday(birthday);
|
|
|
+ patientData.setAge(element.element("AGE").getText());
|
|
|
+ patientData.setIdentificationNo(element.element("IDENTIFY_NO").getText());
|
|
|
+ patientData.setBedNO(element.element("BED_NO").getText());
|
|
|
+ String inhosDate = element.element("HOSPITAL_DATE").getText();
|
|
|
+ if (inhosDate.length() < 12) {
|
|
|
+ Date date = new Date();
|
|
|
+ inhosDate = SDF_TIME.format(date);
|
|
|
+ } else if (inhosDate.length() < 19) {
|
|
|
+ Date date1 = SDF_TIME.parse(inhosDate);
|
|
|
+ inhosDate = SDF_TIME.format(date1);
|
|
|
+ }
|
|
|
+ patientData.setHospitalDate(inhosDate);
|
|
|
+ patientData.setDoctorName(element.element("DOCTOR_NAME").getText());
|
|
|
+ patientDataList.add(patientData);
|
|
|
+ }
|
|
|
+ log.info(deptcode + "getPatinentList==========>" + patientDataList.size());
|
|
|
+ return patientDataList;
|
|
|
+ } catch (Exception e) {
|
|
|
+ log.error("Get Patientall Fail !!! ", e);
|
|
|
+ e.printStackTrace();
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public List<DispatchData> getDispatchDataByDeptCode(String deptcode) {
|
|
|
+ List<DispatchData> dispatchDataList = new ArrayList<>();
|
|
|
+ String paramer = "<![CDATA[\n <BSXml>\n<MsgHeader>\n<Sender>HGXTY</Sender>\n<MsgType>HGXTY_dispatch_data_xty</MsgType>\n<MsgVersion>3.0</MsgVersion>\n</MsgHeader>\n<dept_Code>" + deptcode + "</dept_Code>\n</BSXml>]]>\n";
|
|
|
+ try {
|
|
|
+ BSXmlWsEntryClass port = service.getBSXmlWsEntryClassPort();
|
|
|
+ String dispatchstr = port.invoke("dispatch_data_xty", "HGXTY","HGXTY",paramer);
|
|
|
+ dispatchstr = dispatchstr.replaceAll("<", "<");
|
|
|
+ dispatchstr = dispatchstr.replaceAll(">", ">");
|
|
|
+ if (dispatchstr.contains("<Detail>查询成功")) {
|
|
|
+ dispatchstr = dispatchstr.split("</MsgHeader>")[1];
|
|
|
+ dispatchstr = dispatchstr.split("</BSXml>")[0];
|
|
|
+ dispatchstr = dispatchstr.replaceAll(" ", "");
|
|
|
+ } else {
|
|
|
+ log.info("get Dispatch Fail =======");
|
|
|
+ return dispatchDataList;
|
|
|
+ }
|
|
|
+ Document doc = DocumentHelper.parseText(dispatchstr);
|
|
|
+ Element root = doc.getRootElement();
|
|
|
+ List<Element> dispatchList = root.elements();
|
|
|
+ for (Element element : dispatchList) {
|
|
|
+ DispatchData dispatchData = new DispatchData();
|
|
|
+ dispatchData.setPatientNO(element.element("PATIENT_NO").getText());
|
|
|
+ dispatchData.setDispatchNo(element.element("DISPATCH_NO").getText());
|
|
|
+ dispatchData.setMessage(element.element("MESSAGE").getText());
|
|
|
+ dispatchData.setFrequency(element.element("FREQUENCY").getText());
|
|
|
+
|
|
|
+ dispatchDataList.add(dispatchData);
|
|
|
+ }
|
|
|
+ log.info(deptcode + "getdispatchDataList==========>" + dispatchDataList.size());
|
|
|
+ return dispatchDataList;
|
|
|
+ } catch (Exception e) {
|
|
|
+ log.error("Get Dispatch Fail !!! ", e);
|
|
|
+ e.printStackTrace();
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|