123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727 |
- package com.yihu.figure.service.jw;
- import com.fasterxml.jackson.databind.ObjectMapper;
- import com.yihu.figure.model.dict.SystemDict;
- import com.yihu.figure.service.dict.SystemDictService;
- import com.yihu.figure.util.DateUtil;
- import com.yihu.figure.util.HttpClientUtil;
- import org.apache.commons.lang3.StringUtils;
- import org.apache.http.NameValuePair;
- import org.apache.http.message.BasicNameValuePair;
- import org.json.JSONArray;
- import org.json.JSONObject;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.beans.factory.annotation.Value;
- import org.springframework.stereotype.Service;
- import java.util.ArrayList;
- import java.util.HashMap;
- import java.util.List;
- import java.util.Map;
- /**
- * Created by hzp on 2016/11/14.
- * 基卫健康市民健康服务
- */
- @Service
- public class JwSmjkService {
- //基卫服务地址
- @Value("${jiwei.url}")
- private String jwUrl;
- @Autowired
- private ObjectMapper objectMapper = new ObjectMapper();
- @Autowired
- private SystemDictService systemDictService;
- /****************************************************************************************************************************/
- /**
- * 获取门/急诊记录 + 住院记录
- */
- public String getResidentEventListJson(String strSSID, String type, String page, String pageSize) {
- String re = "";
- try {
- String url = jwUrl + "/third/smjk/ResidentEventList";
- List<NameValuePair> params = new ArrayList<>();
- params.add(new BasicNameValuePair("strSSID", strSSID));
- if (!StringUtils.isEmpty(type)) {
- params.add(new BasicNameValuePair("type", type));
- }
- params.add(new BasicNameValuePair("page", page));
- params.add(new BasicNameValuePair("pageSize", pageSize));
- String response = HttpClientUtil.post(url, params, "UTF-8");
- if (!StringUtils.isEmpty(response)) {
- JSONObject responseObject = new JSONObject(response);
- int status = responseObject.getInt("status");
- if (status == 200) {
- String data = responseObject.getString("data");
- if (!StringUtils.isEmpty(data) && data.startsWith("error")) {
- throw new Exception(data);
- } else {
- JSONObject jsonData = new JSONObject(data);
- Integer count = jsonData.getJSONArray("EventCount").getJSONObject(0).getInt("COUNT");
- if (count <= Integer.valueOf(pageSize)) {
- JSONArray jsonArray = jsonData.getJSONArray("EventList");
- re = jsonArray.toString();
- }else{
- re=getResidentEventListJson(strSSID,type,page,count+"");
- }
- }
- } else {
- throw new Exception(responseObject.getString("msg"));
- }
- } else {
- throw new Exception("null response.");
- }
- } catch (Exception ex) {
- ex.printStackTrace();
- }
- if (re.equals("[{}]")) {
- re = "";
- }
- return re;
- }
- /**
- * 通过event获取档案类型列表
- */
- public String getEventCatalog(String strSSID, String strEvent) {
- try {
- String url = jwUrl + "/third/smjk/EventCatalog";
- List<NameValuePair> params = new ArrayList<>();
- params.add(new BasicNameValuePair("strSSID", strSSID));
- params.add(new BasicNameValuePair("strEvent", strEvent));
- String response = HttpClientUtil.post(url, params, "UTF-8");
- String result = "";
- if (!StringUtils.isEmpty(response)) {
- JSONObject jsonObject = new JSONObject(response);
- int status = jsonObject.getInt("status");
- if (status == 200) {
- result = jsonObject.getString("data");
- } else {
- throw new Exception(jsonObject.getString("msg"));
- }
- } else {
- throw new Exception("null response.");
- }
- return result;
- } catch (Exception ex) {
- ex.printStackTrace();
- return "";
- }
- }
- /**
- * 获取健康档案信息详情
- */
- public String getHealthData(String strSSID, String strEvent, String strCatalog, String strSerial) {
- try {
- String url = jwUrl + "/third/smjk/HealthData";
- List<NameValuePair> params = new ArrayList<>();
- params.add(new BasicNameValuePair("strSSID", strSSID));
- params.add(new BasicNameValuePair("strEvent", strEvent));
- params.add(new BasicNameValuePair("strCatalog", strCatalog));
- params.add(new BasicNameValuePair("strSerial", strSerial));
- String response = HttpClientUtil.post(url, params, "UTF-8");
- String result = "";
- if (!StringUtils.isEmpty(response)) {
- JSONObject jsonObject = new JSONObject(response);
- int status = jsonObject.getInt("status");
- if (status == 200) {
- result = jsonObject.getString("data");
- result = result.replaceAll("<\\?xml version=\"1.0\" encoding=\"utf-8\"\\?>", "");
- if (result.startsWith("error")) {
- throw new Exception(result);
- }
- } else {
- throw new Exception(jsonObject.getString("msg"));
- }
- } else {
- throw new Exception("null response.");
- }
- return result;
- } catch (Exception ex) {
- ex.printStackTrace();
- return "";
- }
- }
- /**
- * 获取检查检验列表
- */
- public String getExamAndLabReport(String strSSID, String page, String pageSize) {
- try {
- String url = jwUrl + "/third/smjk/ExamAndLabReport";
- List<NameValuePair> params = new ArrayList<>();
- params.add(new BasicNameValuePair("strSSID", strSSID));
- params.add(new BasicNameValuePair("page", page));
- params.add(new BasicNameValuePair("pageSize", pageSize));
- String response = HttpClientUtil.post(url, params, "UTF-8");
- String re = "";
- if (!StringUtils.isEmpty(response)) {
- JSONObject jsonObject = new JSONObject(response);
- int status = jsonObject.getInt("status");
- if (status == 200) {
- String data = jsonObject.getString("data");
- if (!StringUtils.isEmpty(data) && data.startsWith("error")) {
- throw new Exception(data);
- } else {
- JSONObject jsonData = new JSONObject(data);
- Integer count = jsonData.getJSONArray("EhrCount").getJSONObject(0).getInt("COUNT");
- if (count <= Integer.valueOf(pageSize)) {
- JSONArray jsonArray = jsonData.getJSONArray("EhrList");
- re = jsonArray.toString();
- }else{
- re=getExamAndLabReport(strSSID,page,count+"");
- }
- }
- } else {
- throw new Exception(jsonObject.getString("msg"));
- }
- } else {
- throw new Exception("null response.");
- }
- if (re.equals("[{}]")) {
- re = "";
- }
- return re;
- } catch (Exception ex) {
- ex.printStackTrace();
- return "";
- }
- }
- /**
- * 获取用药列表
- */
- public String getDrugsListPage(String strSSID, String page, String pageSize) throws Exception {
- String url = jwUrl + "/third/smjk/DrugsListPage";
- List<NameValuePair> params = new ArrayList<>();
- params.add(new BasicNameValuePair("strSSID", strSSID));
- params.add(new BasicNameValuePair("page", page));
- params.add(new BasicNameValuePair("pageSize", pageSize));
- String response = HttpClientUtil.post(url, params, "UTF-8");
- String result = "";
- if (!StringUtils.isEmpty(response)) {
- JSONObject jsonObject = new JSONObject(response);
- int status = jsonObject.getInt("status");
- if (status == 200) {
- result = jsonObject.getString("data");
- } else {
- throw new Exception(jsonObject.getString("msg"));
- }
- } else {
- throw new Exception("null response.");
- }
- if (result.equals("[{}]")) {
- result = "";
- }
- return result;
- }
- /****************************************************************************************************************************/
- /**
- * (内网)获取转诊预约医生号源信息
- */
- public String getRegDeptSpeDoctorSectionList(String OrgCode, String DeptCode, String strStart, String strEnd, String DocCode) throws Exception {
- String re = "";
- String url = jwUrl + "/third/smjk/RegDeptSpeDoctorSectionList";
- List<NameValuePair> params = new ArrayList<>();
- params.add(new BasicNameValuePair("OrgCode", OrgCode));
- params.add(new BasicNameValuePair("DeptCode", DeptCode));
- params.add(new BasicNameValuePair("strStart", strStart));
- params.add(new BasicNameValuePair("strEnd", strEnd));
- params.add(new BasicNameValuePair("DocCode", DocCode));
- String response = HttpClientUtil.post(url, params, "UTF-8");
- if (!StringUtils.isEmpty(response)) {
- JSONObject jsonObject = new JSONObject(response);
- int status = jsonObject.getInt("status");
- if (status == 200) {
- String data = jsonObject.getString("data");
- if (!StringUtils.isEmpty(data) && (data.startsWith("error") || data.startsWith("System-Error"))) {
- throw new Exception(data);
- } else {
- re = data;
- }
- } else {
- throw new Exception(jsonObject.getString("msg"));
- }
- } else {
- throw new Exception("null response.");
- }
- return re;
- }
- /**
- * (内网)预约挂号接口
- */
- public String webRegisterByFamily(String idcard, String patientName, String ssid, String sectionType, String startTime, String orgCode, String deptCode, String deptName, String doctorCode, String doctorName, String patientPhone) throws Exception {
- String re = "";
- String url = jwUrl + "/third/smjk/WebRegisterByFamily";
- List<NameValuePair> params = new ArrayList<>();
- params.add(new BasicNameValuePair("idcard", idcard));
- params.add(new BasicNameValuePair("patientName", patientName));
- params.add(new BasicNameValuePair("ssid", ssid));
- params.add(new BasicNameValuePair("sectionType", sectionType));
- params.add(new BasicNameValuePair("startTime", startTime));
- params.add(new BasicNameValuePair("orgCode", orgCode));
- params.add(new BasicNameValuePair("deptCode", deptCode));
- params.add(new BasicNameValuePair("deptName", deptName));
- params.add(new BasicNameValuePair("doctorCode", doctorCode));
- params.add(new BasicNameValuePair("doctorName", doctorName));
- params.add(new BasicNameValuePair("patientPhone", patientPhone));
- String response = HttpClientUtil.post(url, params, "UTF-8");
- if (!StringUtils.isEmpty(response)) {
- JSONObject jsonObject = new JSONObject(response);
- int status = jsonObject.getInt("status");
- if (status == 200) {
- String data = jsonObject.getString("data");
- if (!StringUtils.isEmpty(data) && (data.startsWith("error") || data.startsWith("System-Error"))) {
- throw new Exception(data);
- } else {
- re = data;
- }
- } else {
- throw new Exception(jsonObject.getString("msg"));
- }
- } else {
- throw new Exception("null response.");
- }
- //返回挂号单
- return re;
- }
- /*************************************** 旧版本函数 *************************************************************************/
- /**
- * 获取住院记录(X)
- */
- public String getHospitalizationRecord(String strSSID, String startNum, String endNum) throws Exception {
- String startDate = "1900-01-01";
- String endDate = DateUtil.dateToStr(DateUtil.getNowDate(), DateUtil.YYYY_MM_DD);
- String url = jwUrl + "/third/smjk/InpatientRecord";
- List<NameValuePair> params = new ArrayList<>();
- params.add(new BasicNameValuePair("strSSID", strSSID));
- params.add(new BasicNameValuePair("startDate", startDate));
- params.add(new BasicNameValuePair("endDate", endDate));
- params.add(new BasicNameValuePair("startNum", startNum));
- params.add(new BasicNameValuePair("endNum", endNum));
- String response = HttpClientUtil.post(url, params, "UTF-8");
- JSONArray resultArray = new JSONArray();
- List<SystemDict> systemDictList = systemDictService.getDictByDictName("EHR_CATALOG");
- Map<String, String> systemDictMap = new HashMap<>();
- for (SystemDict systemDict : systemDictList) {
- systemDictMap.put(systemDict.getCode(), systemDict.getValue());
- }
- if (!StringUtils.isEmpty(response)) {
- JSONObject responseObject = new JSONObject(response);
- int status = responseObject.getInt("status");
- if (status == 200) {
- String data = responseObject.getString("data");
- if (!StringUtils.isEmpty(data)) {
- if (data.startsWith("error")) {
- return data;
- }
- JSONObject jsonData = new JSONObject(data);
- JSONArray jsonArray = jsonData.getJSONArray("EhrList");
- if (!jsonArray.isNull(0) && jsonArray.getJSONObject(0).length() != 0) {
- Map<String, JSONObject> jsonObjectMap = new HashMap<>();
- for (int i = 0; i < jsonArray.length(); i++) {
- JSONObject jsonObject = jsonArray.getJSONObject(i);
- String patientId = jsonObject.getString("XMAN_ID");
- String eventNo = jsonObject.getString("EVENT");
- Integer orgId = jsonObject.getInt("ORG_ID");
- String key = patientId + eventNo + orgId;
- JSONObject catalogObject = new JSONObject();
- String catalogCode = jsonObject.get("CATALOG_CODE").toString();
- String endTimeNew = jsonObject.get("END_TIME").toString();
- String catalogValue = systemDictMap.get(catalogCode);
- jsonObject.remove("CATALOG_CODE");
- if (jsonObjectMap.containsKey(key)) {
- jsonObject = jsonObjectMap.get(key);
- String endTimeOld = jsonObject.get("END_TIME").toString();
- if (endTimeNew.compareTo(endTimeOld) < 0) {
- endTimeNew = endTimeOld;
- }
- catalogObject = jsonObject.getJSONObject("CATALOG");
- }
- catalogObject.put(catalogCode, catalogValue);
- jsonObject.put("CATALOG", catalogObject);
- jsonObject.put("END_TIME", endTimeNew);
- jsonObjectMap.put(key, jsonObject);
- }
- for (String key : jsonObjectMap.keySet()) {
- resultArray.put(jsonObjectMap.get(key));
- }
- JSONObject temp;
- for (int i = 0; i < resultArray.length(); i++) {
- for (int j = i + 1; j < resultArray.length(); j++) {
- String endTimeNew = resultArray.getJSONObject(j).get("END_TIME").toString();
- String endTimeOld = resultArray.getJSONObject(i).get("END_TIME").toString();
- if (endTimeNew.compareTo(endTimeOld) > 0) {
- temp = resultArray.getJSONObject(i);
- resultArray.put(i, resultArray.getJSONObject(j));
- resultArray.put(j, temp); // 两个数交换位置
- }
- }
- }
- }
- }
- }
- }
- return resultArray.toString();
- }
- /**
- * 获取门/急诊记录(X)
- */
- public String getOutpatientRecord(String strSSID, String startNum, String endNum) throws Exception {
- String startDate = "1900-01-01";
- String endDate = DateUtil.dateToStr(DateUtil.getNowDate(), DateUtil.YYYY_MM_DD);
- String url = jwUrl + "/third/smjk/OutpatientRecord";
- List<NameValuePair> params = new ArrayList<>();
- params.add(new BasicNameValuePair("strSSID", strSSID));
- params.add(new BasicNameValuePair("startDate", startDate));
- params.add(new BasicNameValuePair("endDate", endDate));
- params.add(new BasicNameValuePair("startNum", startNum));
- params.add(new BasicNameValuePair("endNum", endNum));
- String response = HttpClientUtil.post(url, params, "UTF-8");
- JSONArray resultArray = new JSONArray();
- List<SystemDict> systemDictList = systemDictService.getDictByDictName("EHR_CATALOG");
- Map<String, String> systemDictMap = new HashMap<>();
- for (SystemDict systemDict : systemDictList) {
- systemDictMap.put(systemDict.getCode(), systemDict.getValue());
- }
- if (!StringUtils.isEmpty(response)) {
- JSONObject responseObject = new JSONObject(response);
- int status = responseObject.getInt("status");
- if (status == 200) {
- String data = responseObject.getString("data");
- if (!StringUtils.isEmpty(data)) {
- if (data.startsWith("error")) {
- return data;
- }
- JSONObject jsonData = new JSONObject(data);
- JSONArray jsonArray = jsonData.getJSONArray("EhrList");
- if (!jsonArray.isNull(0) && jsonArray.getJSONObject(0).length() != 0) {
- Map<String, JSONObject> jsonObjectMap = new HashMap<>();
- for (int i = 0; i < jsonArray.length(); i++) {
- JSONObject jsonObject = jsonArray.getJSONObject(i);
- String patientId = jsonObject.getString("XMAN_ID");
- String eventNo = jsonObject.getString("EVENT");
- Integer orgId = jsonObject.getInt("ORG_ID");
- String key = patientId + eventNo + orgId;
- JSONObject catalogObject = new JSONObject();
- String catalogCode = jsonObject.get("CATALOG_CODE").toString();
- String endTimeNew = jsonObject.get("END_TIME").toString();
- String catalogValue = systemDictMap.get(catalogCode);
- jsonObject.remove("CATALOG_CODE");
- if (jsonObjectMap.containsKey(key)) {
- jsonObject = jsonObjectMap.get(key);
- String endTimeOld = jsonObject.get("END_TIME").toString();
- if (endTimeNew.compareTo(endTimeOld) < 0) {
- endTimeNew = endTimeOld;
- }
- catalogObject = jsonObject.getJSONObject("CATALOG");
- }
- catalogObject.put(catalogCode, catalogValue);
- jsonObject.put("CATALOG", catalogObject);
- jsonObject.put("END_TIME", endTimeNew);
- jsonObjectMap.put(key, jsonObject);
- }
- for (String key : jsonObjectMap.keySet()) {
- resultArray.put(jsonObjectMap.get(key));
- }
- JSONObject temp;
- for (int i = 0; i < resultArray.length(); i++) {
- for (int j = i + 1; j < resultArray.length(); j++) {
- String endTimeNew = resultArray.getJSONObject(j).get("END_TIME").toString();
- String endTimeOld = resultArray.getJSONObject(i).get("END_TIME").toString();
- if (endTimeNew.compareTo(endTimeOld) > 0) {
- temp = resultArray.getJSONObject(i);
- resultArray.put(i, resultArray.getJSONObject(j));
- resultArray.put(j, temp); // 两个数交换位置
- }
- }
- }
- }
- }
- }
- }
- return resultArray.toString();
- }
- /**
- * 获取检查报告信息 (X)
- */
- private JSONArray getChecking(String strSSID, String startNum, String endNum) throws Exception {
- String api = "/third/smjk/ExamReport";
- return getResult(api, strSSID, startNum, endNum);
- }
- /**
- * 获取检验报告信息(X)
- */
- private JSONArray getInspection(String strSSID, String startNum, String endNum) throws Exception {
- String api = "/third/smjk/LabReport";
- return getResult(api, strSSID, startNum, endNum);
- }
- private JSONArray getResult(String api, String strSSID, String startNum, String endNum) {
- String startDate = "1900-01-01";
- String endDate = DateUtil.dateToStr(DateUtil.getNowDate(), DateUtil.YYYY_MM_DD);
- String url = jwUrl + api;
- List<NameValuePair> params = new ArrayList<>();
- params.add(new BasicNameValuePair("strSSID", strSSID));
- params.add(new BasicNameValuePair("startDate", startDate));
- params.add(new BasicNameValuePair("endDate", endDate));
- params.add(new BasicNameValuePair("startNum", startNum));
- params.add(new BasicNameValuePair("endNum", endNum));
- String response = HttpClientUtil.post(url, params, "UTF-8");
- JSONArray resultArray = new JSONArray();
- List<SystemDict> systemDictList = systemDictService.getDictByDictName("EHR_CATALOG");
- Map<String, String> systemDictMap = new HashMap<>();
- for (SystemDict systemDict : systemDictList) {
- systemDictMap.put(systemDict.getCode(), systemDict.getValue());
- }
- if (!StringUtils.isEmpty(response)) {
- JSONObject responseObject = new JSONObject(response);
- int status = responseObject.getInt("status");
- if (status == 200) {
- String data = responseObject.getString("data");
- if (!StringUtils.isEmpty(data)) {
- if (data.startsWith("error")) {
- JSONObject jsonObject = new JSONObject();
- jsonObject.put("error", data);
- resultArray.put(jsonObject);
- return resultArray;
- }
- JSONObject jsonData = new JSONObject(data);
- JSONArray jsonArray = jsonData.getJSONArray("EhrList");
- if (!jsonArray.isNull(0) && jsonArray.getJSONObject(0).length() != 0) {
- Map<String, JSONObject> jsonObjectMap = new HashMap<>();
- for (int i = 0; i < jsonArray.length(); i++) {
- JSONObject jsonObject = jsonArray.getJSONObject(i);
- String patientId = jsonObject.getString("XMAN_ID");
- String eventNo = jsonObject.getString("EVENT");
- Integer orgId = jsonObject.getInt("ORG_ID");
- String key = patientId + eventNo + orgId;
- JSONObject catalogObject = new JSONObject();
- String catalogCode = jsonObject.get("CATALOG_CODE").toString();
- String endTimeNew = jsonObject.get("END_TIME").toString();
- String catalogValue = systemDictMap.get(catalogCode);
- jsonObject.remove("CATALOG_CODE");
- if (jsonObjectMap.containsKey(key)) {
- jsonObject = jsonObjectMap.get(key);
- String endTimeOld = jsonObject.get("END_TIME").toString();
- if (endTimeNew.compareTo(endTimeOld) < 0) {
- endTimeNew = endTimeOld;
- }
- catalogObject = jsonObject.getJSONObject("CATALOG");
- }
- catalogObject.put(catalogCode, catalogValue);
- jsonObject.put("CATALOG", catalogObject);
- jsonObject.put("END_TIME", endTimeNew);
- jsonObjectMap.put(key, jsonObject);
- }
- for (String key : jsonObjectMap.keySet()) {
- resultArray.put(jsonObjectMap.get(key));
- }
- }
- }
- }
- }
- return resultArray;
- }
- /**
- * 获取检查检验 信息(X)
- *
- * @param strSSID
- * @param startNum
- * @param endNum
- * @return
- * @throws Exception
- */
- public String getInspectionAndChecking(String strSSID, String startNum, String endNum) throws Exception {
- JSONArray total = new JSONArray();
- JSONArray check = getChecking(strSSID, startNum, endNum);
- if (!check.isNull(0)) {
- JSONObject jsonObject = check.getJSONObject(0);
- if (jsonObject.has("error")) {
- return jsonObject.get("error").toString();
- }
- }
- JSONArray inspect = getInspection(strSSID, startNum, endNum);
- if (!inspect.isNull(0)) {
- JSONObject jsonObject = inspect.getJSONObject(0);
- if (jsonObject.has("error")) {
- return jsonObject.get("error").toString();
- }
- }
- //TODO 检查检验数据合并
- for (int i = 0; i < check.length(); i++) {
- total.put(check.getJSONObject(i));
- }
- for (int i = 0; i < inspect.length(); i++) {
- total.put(inspect.getJSONObject(i));
- }
- JSONObject temp;
- for (int i = 0; i < total.length(); i++) {
- for (int j = i + 1; j < total.length(); j++) {
- String endTimeNew = total.getJSONObject(j).get("END_TIME").toString();
- String endTimeOld = total.getJSONObject(i).get("END_TIME").toString();
- if (endTimeNew.compareTo(endTimeOld) > 0) {
- temp = total.getJSONObject(i);
- total.put(i, total.getJSONObject(j));
- total.put(j, temp); // 两个数交换位置
- }
- }
- }
- return total.toString();
- }
- /**
- * 获取用药记录(X)
- */
- public String getDrugsList(String strSSID, String startNum, String endNum) throws Exception {
- String startDate = "1900-01-01";
- String endDate = DateUtil.dateToStr(DateUtil.getNowDate(), DateUtil.YYYY_MM_DD);
- String url = jwUrl + "/third/smjk/DrugsList";
- List<NameValuePair> params = new ArrayList<>();
- params.add(new BasicNameValuePair("strSSID", strSSID));
- params.add(new BasicNameValuePair("startDate", startDate));
- params.add(new BasicNameValuePair("endDate", endDate));
- params.add(new BasicNameValuePair("startNum", startNum));
- params.add(new BasicNameValuePair("endNum", endNum));
- String response = HttpClientUtil.post(url, params, "UTF-8");
- JSONArray resultArray = new JSONArray();
- List<SystemDict> systemDictList = systemDictService.getDictByDictName("EHR_CATALOG");
- Map<String, String> systemDictMap = new HashMap<>();
- for (SystemDict systemDict : systemDictList) {
- systemDictMap.put(systemDict.getCode(), systemDict.getValue());
- }
- if (!StringUtils.isEmpty(response)) {
- JSONObject responseObject = new JSONObject(response);
- int status = responseObject.getInt("status");
- if (status == 200) {
- String data = responseObject.getString("data");
- if (!StringUtils.isEmpty(data)) {
- if (data.startsWith("error")) {
- return data;
- }
- JSONObject jsonData = new JSONObject(data);
- JSONArray jsonArray = jsonData.getJSONArray("EhrList");
- if (!jsonArray.isNull(0) && jsonArray.getJSONObject(0).length() != 0) {
- Map<String, JSONObject> jsonObjectMap = new HashMap<>();
- for (int i = 0; i < jsonArray.length(); i++) {
- JSONObject jsonObject = jsonArray.getJSONObject(i);
- String patientId = jsonObject.getString("XMAN_ID");
- String eventNo = jsonObject.getString("EVENT");
- Integer orgId = jsonObject.getInt("ORG_ID");
- String key = patientId + eventNo + orgId;
- JSONObject catalogObject = new JSONObject();
- String catalogCode = jsonObject.get("CATALOG_CODE").toString();
- String endTimeNew = jsonObject.get("END_TIME").toString();
- String catalogValue = systemDictMap.get(catalogCode);
- jsonObject.remove("CATALOG_CODE");
- if (jsonObjectMap.containsKey(key)) {
- jsonObject = jsonObjectMap.get(key);
- String endTimeOld = jsonObject.get("END_TIME").toString();
- if (endTimeNew.compareTo(endTimeOld) < 0) {
- endTimeNew = endTimeOld;
- }
- catalogObject = jsonObject.getJSONObject("CATALOG");
- }
- catalogObject.put(catalogCode, catalogValue);
- jsonObject.put("CATALOG", catalogObject);
- jsonObject.put("END_TIME", endTimeNew);
- jsonObjectMap.put(key, jsonObject);
- }
- for (String key : jsonObjectMap.keySet()) {
- resultArray.put(jsonObjectMap.get(key));
- }
- JSONObject temp;
- for (int i = 0; i < resultArray.length(); i++) {
- for (int j = i + 1; j < resultArray.length(); j++) {
- String endTimeNew = resultArray.getJSONObject(j).get("END_TIME").toString();
- String endTimeOld = resultArray.getJSONObject(i).get("END_TIME").toString();
- if (endTimeNew.compareTo(endTimeOld) > 0) {
- temp = resultArray.getJSONObject(i);
- resultArray.put(i, resultArray.getJSONObject(j));
- resultArray.put(j, temp); // 两个数交换位置
- }
- }
- }
- }
- }
- }
- }
- return resultArray.toString();
- }
- }
|