ConsentCreateParam.java 32 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759
  1. package com.dbs.mplus.knuh.consent;
  2. import android.content.Context;
  3. import android.util.Log;
  4. import com.dbs.mplus.knuh.BuildConfig;
  5. import com.dbs.mplus.knuh.activity.ConsentActivity;
  6. import com.dbs.mplus.knuh.httpTask.HttpSoapConnection;
  7. import com.dbs.mplus.knuh.httpTask.SoapParser;
  8. import com.dbs.mplus.knuh.model.ConsentFormListVO;
  9. import com.dbs.mplus.knuh.model.DataPiexVO;
  10. import com.dbs.mplus.knuh.model.PatientInfoVO;
  11. import com.dbs.mplus.knuh.model.UserVO;
  12. import com.dbs.mplus.knuh.util.ConsentConfig;
  13. import com.dbs.mplus.knuh.util.Util;
  14. import org.ksoap2.serialization.SoapObject;
  15. import java.util.ArrayList;
  16. import java.util.HashMap;
  17. import java.util.concurrent.ExecutionException;
  18. public class ConsentCreateParam {
  19. private static final String TAG = "ConsentCreateParam";
  20. private Context mContext;
  21. private String indexPage = "";
  22. private String userDrFlag = "";
  23. private String consentState = "";
  24. private String consentStateEng = "";
  25. public ConsentCreateParam(Context mContext) {
  26. this.mContext = mContext;
  27. }
  28. public ConsentCreateParam(Context mContext, String userDrFlag, String consentState, String consentStateEng) {
  29. this.mContext = mContext;
  30. this.indexPage = ((ConsentActivity) mContext).indexPage;
  31. this.userDrFlag = userDrFlag;
  32. this.consentState = consentState;
  33. this.consentStateEng = consentStateEng;
  34. }
  35. /**
  36. * 동의서 단일 선택시 서식 global 파라메터
  37. * @author jksong
  38. * @since 2020-05-06 오전 10:07
  39. **/
  40. public HashMap<String, String> setGlobalParam(PatientInfoVO patientInfoVO, String consentMstRid, ConsentFormListVO consentFormListVO) {
  41. HashMap<String, String> map = new HashMap<String, String>();
  42. String loginUserId = Util.getStringPreference(mContext, "userInfo", "userId");
  43. String loginUserDeptCd = Util.getStringPreference(mContext, "userInfo", "deptCd");
  44. String loginUserJobKindCd = Util.getStringPreference(mContext, "userInfo", "jobKindCd");
  45. int rid = Integer.parseInt(consentMstRid);
  46. String ordDeptCd = patientInfoVO.getOrdDeptCd();
  47. String deptEngAbbr = patientInfoVO.getDeptEngAbbr();
  48. String ordDeptNm = patientInfoVO.getOrdDeptNm();
  49. String pid = patientInfoVO.getPid();
  50. String cretNo = patientInfoVO.getCretNo();
  51. String roomCd = patientInfoVO.getRoomCd();
  52. String inDd = patientInfoVO.getInDd();
  53. String dschDd = patientInfoVO.getDschDd();
  54. String ordType = patientInfoVO.getOrdType();
  55. String instCd = patientInfoVO.getInstCd();
  56. String mainDrId = patientInfoVO.getMainDrId();
  57. String mainDrName = patientInfoVO.getMainDrName();
  58. String erDrNm = patientInfoVO.getErDrNm();
  59. String firstRgstDt = patientInfoVO.getFirstRgstDt();
  60. String sa = patientInfoVO.getSa();
  61. String patientName = patientInfoVO.getPatientName();
  62. String juminNo = patientInfoVO.getJuminNo();
  63. String zipCdAddr = patientInfoVO.getZipCdAddr();
  64. String telNum = patientInfoVO.getTelNum();
  65. String insuKind = patientInfoVO.getInsuKind();
  66. String ward = patientInfoVO.getWard();
  67. String dxCd = patientInfoVO.getDxCd();
  68. String dxNm = patientInfoVO.getDxNm();
  69. String gbn = patientInfoVO.getGbn();
  70. String opDeptCd = patientInfoVO.getOpDeptCd();
  71. String opDeptNm = patientInfoVO.getOpDeptNm();
  72. String opDrNm = patientInfoVO.getOpDrNm();
  73. String opDrId = patientInfoVO.getOpDrId();
  74. String opCnfmDd = patientInfoVO.getOpCnfmDd();
  75. String perfDrNm = patientInfoVO.getPerfDrNm();
  76. String perfDrFlag = patientInfoVO.getPerfDrFlag();
  77. String perfDrDept = patientInfoVO.getPerfDrDept();
  78. String opDiagNm = patientInfoVO.getOpDiagNm();
  79. String opNm = patientInfoVO.getOpNm();
  80. String anstDrNm1 = patientInfoVO.getAnstDrNm1();
  81. String anstDrFlag1 = patientInfoVO.getAnstDrFlag1();
  82. String anstDeptNm1 = patientInfoVO.getAnstDeptNm1();
  83. String anstDrNm2 = patientInfoVO.getAnstDrNm2();
  84. String anstDrFlag2 = patientInfoVO.getAnstDrFlag2();
  85. String anstDeptNm2 = patientInfoVO.getAnstDeptNm2();
  86. String anstDrNm3 = patientInfoVO.getAnstDrNm3();
  87. String anstDrFlag3 = patientInfoVO.getAnstDrFlag3();
  88. String anstDeptNm3 = patientInfoVO.getAnstDeptNm3();
  89. String opRsrvNo = patientInfoVO.getOpRsrvNo();
  90. String orderNo = patientInfoVO.getOrderNo();
  91. String printTime = patientInfoVO.getPrintTime();
  92. String ocrCd = patientInfoVO.getOcrCd();
  93. String inputId = patientInfoVO.getInputId();
  94. String inputNm = patientInfoVO.getInputNm();
  95. String signImg = patientInfoVO.getSignImg();
  96. String bp = patientInfoVO.getBp();
  97. String dm = patientInfoVO.getDm();
  98. String heart = patientInfoVO.getHeart();
  99. String kidney = patientInfoVO.getKidney();
  100. String respiration = patientInfoVO.getRespiration();
  101. String hx = patientInfoVO.getHx();
  102. String allergy = patientInfoVO.getAllergy();
  103. String drug = patientInfoVO.getDrug();
  104. String smoking = patientInfoVO.getSmoking();
  105. String idio = patientInfoVO.getIdio();
  106. String nacrotics = patientInfoVO.getNacrotics();
  107. String airway = patientInfoVO.getAirway();
  108. String hemorrhage = patientInfoVO.getHemorrhage();
  109. String statusEtc = patientInfoVO.getStatusEtc();
  110. String signImage = "";
  111. HashMap<String, String> mData = new HashMap<String, String>();
  112. if (!userDrFlag.equals("Y")) {
  113. mData.put("userId", loginUserId);
  114. mData.put("deptCd", loginUserDeptCd);
  115. map.put("mainDrId", loginUserId);
  116. } else {
  117. mData.put("userId", loginUserId);
  118. mData.put("deptCd", loginUserDeptCd);
  119. map.put("mainDrId", mainDrId);
  120. }
  121. if (ordType.equals("O")) {
  122. if (loginUserJobKindCd.indexOf("03") == 0) { // 의사
  123. mData.put("userId", loginUserId);
  124. mData.put("deptCd", loginUserDeptCd);
  125. map.put("mainDrId", loginUserId);
  126. } else if (userDrFlag.equals("N")) { // 의사가 아니고 예외 서식이면 (예외서식이면 N, 예외서식이 아니면 Y)
  127. mData.put("userId", loginUserId);
  128. mData.put("deptCd", loginUserDeptCd);
  129. map.put("mainDrId", loginUserId);
  130. } else if (loginUserJobKindCd.indexOf("03") != 0 && userDrFlag.equals("Y")) { // 의사가 아니고 예외서식이 아니면
  131. mData.put("userId", mainDrId);
  132. mData.put("deptCd", ordDeptCd);
  133. map.put("mainDrId", mainDrId);
  134. }
  135. }
  136. map.put("userDrFlag", userDrFlag);
  137. mData.put("instCd", BuildConfig.INST_CD);
  138. UserVO userVO = getUserInfo(mData);
  139. if (userVO.getUserId().equals("")) {
  140. mData.put("userId", loginUserId);
  141. mData.put("deptCd", loginUserDeptCd);
  142. userVO = getUserInfo(mData);
  143. }
  144. signImage = getSignImage(mData);
  145. map.put("parCMSGBD_ExplDrNm", "");
  146. map.put("parCMSGBD_ExplDrSignature", "");
  147. map.put("parCMSGBD_ExplDrTelNo", "");
  148. if (userVO.getJobKindCd().indexOf("03") == 0) {
  149. map.put("parCMSGBD_ExplDrNm", userVO.getUserName());
  150. map.put("parCMSGBD_ExplDrSignature", signImage);
  151. map.put("parCMSGBD_ExplDrTelNo", userVO.getUserTelNo());
  152. }
  153. // 새 서식을 작성할 경우
  154. if (rid == 0 || consentStateEng.equals(ConsentConfig.UNFINISHED)) {
  155. String[] ipAddressAr = Util.getIpAddress(mContext).split("[.]");
  156. String ipAddress = ipAddressAr[2] + "." + ipAddressAr[3];
  157. map.put("parCMDCFT_device", "M");
  158. map.put("parCMDCFT_1PrintIP", ipAddress);
  159. map.put("parCMDCHD_1PatientNo", pid);
  160. map.put("parCMDCHD_1SexAge", sa);
  161. map.put("parCMDCHD_1PatientNm", patientName);
  162. map.put("parCMDCHD_1SocialSecuNo", juminNo);
  163. map.put("parCMDCHD_1VisitDt", Util.addSlashDate(inDd));
  164. map.put("parCMDCHD_1DepartmentNm", deptEngAbbr);
  165. map.put("parCMDCHD_1DepartmentCd", ordDeptCd);
  166. map.put("parCMDCBD_PopupV1_SurgeryDoctor", perfDrNm);
  167. map.put("parCMDCBD_PopupV1_DxNm", !opDiagNm.equals("") ? opDiagNm : dxNm);
  168. map.put("parCMDCBD_DiseaseBox_bp", bp);
  169. map.put("parCMDCBD_DiseaseBox_dm", dm);
  170. map.put("parCMDCBD_DiseaseBox_1CardioVascular", heart);
  171. map.put("parCMDCBD_DiseaseBox_3Metabolic", kidney);
  172. map.put("parCMDCBD_DiseaseBox_2Respiratory", respiration);
  173. map.put("parCMDCBD_DiseaseBox_9History1", hx);
  174. map.put("parCMDCBD_DiseaseBox_4UnusualConstitution2", allergy);
  175. map.put("parCMDCBD_DiseaseBox_6Medicine", drug);
  176. map.put("parCMDCBD_DiseaseBox_8HabitSmoking", smoking);
  177. map.put("parCMDCBD_DiseaseBox_4UnusualConstitution1", idio);
  178. map.put("parCMDCBD_DiseaseBox_9History2", nacrotics);
  179. map.put("parCMDCBD_DiseaseBox_7Airway", airway);
  180. map.put("parCMDCBD_DiseaseBox_5Blood", hemorrhage);
  181. map.put("parCMDCBD_status_etc", statusEtc);
  182. map.put("parCMDCBD_signdate", opCnfmDd);
  183. map.put("parCMDCBD_signtime", "");
  184. map.put("parCMDCFT_1PrintDt", "");
  185. map.put("parCMDCBD_Doctor_Doctor1Nm", mainDrName); // 담당의사
  186. map.put("parCMSGBD_INPUTNm", userVO.getUserName());
  187. map.put("parCMSGBD_INPUTSignature", signImage);
  188. map.put("parCMSGBD_PT_address", zipCdAddr);
  189. map.put("parCMSGBD_PT_tel", telNum);
  190. map.put("parCMSGBD_Insukind", insuKind);
  191. map.put("parCMSGBD_PT_birthday", juminNo.split("-")[0]);
  192. map.put("parCMDCBD_PopupV1_OPNm", opNm.equals("") ? consentFormListVO.getOpNm() : opNm);
  193. map.put("parCMDCBD_PopupV1_SPNm", opNm.equals("") ? consentFormListVO.getOpNm() : opNm);
  194. map.put("parCMSGBD_INPUTTelNo", userVO.getUserTelNo());
  195. map.put("parDEFAULT_DUTINSTCD", instCd);
  196. map.put("parDEFAULT_POPUP_PATH", BuildConfig.CONSENT_SERVER_URL);
  197. map.put("parCMDCBD_PopupV1_SurgeryDepartment", perfDrFlag.equals("전문의") ? perfDrDept : "");
  198. map.put("parCMDCBD_PopupV1_SurgeryCommonDepartment", perfDrFlag.equals("전공의") ? perfDrDept : "");
  199. map.put("parCMDCBD_Anst1DrNm", anstDrNm1);
  200. map.put("parCMDCBD_Anst1DeptNm", anstDrFlag1.equals("전문의") ? anstDeptNm1 : "");
  201. map.put("parCMDCBD_Anst1CommonDeptNm", !anstDrFlag1.equals("전문의") ? anstDeptNm1 : "");
  202. map.put("parCMDCBD_Anst2DrNm", anstDrNm2);
  203. map.put("parCMDCBD_Anst2DeptNm", anstDrFlag2.equals("전문의") ? anstDeptNm2 : "");
  204. map.put("parCMDCBD_Anst2CommonDeptNm", !anstDrFlag2.equals("전문의") ? anstDeptNm2 : "");
  205. map.put("parCMDCBD_Anst3DrNm", anstDrNm3);
  206. map.put("parCMDCBD_Anst3DeptNm", anstDrFlag3.equals("전문의") ? anstDeptNm3 : "");
  207. map.put("parCMDCBD_Anst3CommonDeptNm", !anstDrFlag3.equals("전문의") ? anstDeptNm3 : "");
  208. map.put("parCMSGBD_INPUTDeptcd", userVO.getUserDeptCode());
  209. map.put("parCMSGBD_Cretno", cretNo);
  210. map.put("parCMDCBD_OpRsrvNo", opRsrvNo);
  211. map.put("parCMDCHD_1PatientNmFix", patientName);
  212. map.put("parCMSGBD_PT_birthdayFix", juminNo.split("-")[0]);
  213. map.put("parCMSGBD_PT_telFix", telNum);
  214. map.put("parCMDCBD_SpDrYN", "");
  215. map.put("parCMDCBD_ContStartDate", "");
  216. map.put("parCMDCBD_ContEndDate", "");
  217. map.put("parCMDCBD_RoomCapa", "");
  218. map.put("parCMDCBD_ContStaff1Name", "");
  219. map.put("parCMDCBD_ContStaff2Name", "");
  220. map.put("parCMDCBD_ContStaff3Name", "");
  221. map.put("parCMDCBD_CardNo", "");
  222. map.put("ordType", ordType);
  223. map.put("ward", ward);
  224. map.put("dschDd", dschDd);
  225. if(ward.length() > 0 && roomCd.length() > 0) {
  226. map.put("parNUR_Fast_HospitalroomNo", ward + '/' + roomCd);
  227. }
  228. } else {
  229. map.put("parCMDCHD_1PatientNo", pid);
  230. map.put("parCMDCHD_1DepartmentCd", opDeptCd);
  231. map.put("ordType", ordType);
  232. map.put("parCMDCHD_1VisitDt", Util.addSlashDate(inDd));
  233. map.put("ward", ward);
  234. map.put("parCMSGBD_Cretno", cretNo);
  235. map.put("parCMDCBD_OpRsrvNo", opRsrvNo);
  236. map.put("dschDd", dschDd);
  237. if(ward.length() > 0 && roomCd.length() > 0) {
  238. map.put("parNUR_Fast_HospitalroomNo", ward + '/' + roomCd);
  239. }
  240. }
  241. map.putAll(getEmrDataList(pid, inDd, cretNo, consentFormListVO.getFormCd()));
  242. return map;
  243. }
  244. /**
  245. * 동의서 단일 선택시 서식 form 파라메터
  246. * @author jksong
  247. * @since 2020-05-06 오전 10:08
  248. **/
  249. public ArrayList<HashMap<String, String>> setFormParam(String consentMstRid, String formRid, String guid, String formPrntNm, String formCd, String linkFormCd, String ocrTag, String drOnly, String formName) {
  250. ArrayList<HashMap<String, String>> mapArrayList = new ArrayList<HashMap<String, String>>();
  251. HashMap<String, String> map = new HashMap<String, String>();
  252. HashMap<String, String> mData = new HashMap<String, String>();
  253. int rid = Integer.parseInt(consentMstRid);
  254. if(rid == 0 || consentStateEng.equals(ConsentConfig.UNFINISHED)) {
  255. map.put("newConsent", "true");
  256. } else {
  257. map.put("newConsent", "false");
  258. }
  259. map.put("consentStateEng", consentStateEng);
  260. map.put("parCMSGBD_ocr_cd", ocrTag.equals("") ? getOcrTag() : ocrTag);
  261. map.put("parCMDCFT_1PrintNm", formPrntNm);
  262. map.put("rid", consentMstRid);
  263. map.put("guid", guid);
  264. map.put("formCd", formCd);
  265. map.put("formRid", formRid);
  266. map.put("drOnly", drOnly);
  267. map.put("formName", formName);
  268. mapArrayList.add(map);
  269. if (!linkFormCd.equals("")) {
  270. mData.put("formCd", linkFormCd);
  271. mData.put("instCd", BuildConfig.INST_CD);
  272. HttpSoapConnection connection = new HttpSoapConnection(ConsentConfig.HOST_CONSENT, ConsentConfig.GET_CONSENT_BY_FORMCD, mData);
  273. try {
  274. SoapObject object = connection.execute().get();
  275. if (object.getPropertyCount() > 1) {
  276. String _consentMstRid = object.getProperty("consentMstRid").toString().trim();
  277. String _formGuid = object.getProperty("formGuid").toString().trim();
  278. String _formPrntNm = object.getProperty("formPrntNm").toString().trim();
  279. String _formRid = object.getProperty("formRid").toString().trim();
  280. String _formCd = object.getProperty("formCd").toString().trim();
  281. String _drOnly = object.getProperty("DrOnly").toString().trim();
  282. String _formName = object.getProperty("formName").toString().trim();
  283. HashMap<String, String> linkMap = new HashMap<String, String>();
  284. if(Integer.parseInt(_consentMstRid) == 0 || consentStateEng.equals(ConsentConfig.UNFINISHED)) {
  285. linkMap.put("newConsent", "true");
  286. } else {
  287. linkMap.put("newConsent", "false");
  288. }
  289. linkMap.put("parCMSGBD_ocr_cd", ocrTag.equals("") ? getOcrTag() : ocrTag);
  290. linkMap.put("rid", _consentMstRid);
  291. linkMap.put("guid", _formGuid);
  292. linkMap.put("formRid", _formRid);
  293. linkMap.put("formCd", _formCd);
  294. linkMap.put("parCMDCFT_1PrintNm", _formPrntNm);
  295. linkMap.put("drOnly", _drOnly);
  296. linkMap.put("formName", _formName);
  297. mapArrayList.add(linkMap);
  298. }
  299. } catch (ExecutionException e) {
  300. e.printStackTrace();
  301. } catch (InterruptedException e) {
  302. e.printStackTrace();
  303. }
  304. }
  305. return mapArrayList;
  306. }
  307. /**
  308. * 동의서 멀티 선택시 서식 global 파라메터
  309. * @author jksong
  310. * @since 2020-05-06 오전 10:08
  311. **/
  312. public HashMap<String, String> setMultiGlobalParam(PatientInfoVO patientInfoVO, String formCd) {
  313. HashMap<String, String> map = new HashMap<String, String>();
  314. String loginUserId = Util.getStringPreference(mContext, "userInfo", "userId");
  315. String loginUserDeptCd = Util.getStringPreference(mContext, "userInfo", "deptCd");
  316. String loginUserJobKindCd = Util.getStringPreference(mContext, "userInfo", "jobKindCd");
  317. String ordDeptCd = patientInfoVO.getOrdDeptCd();
  318. String pid = patientInfoVO.getPid();
  319. String cretNo = patientInfoVO.getCretNo();
  320. String roomCd = patientInfoVO.getRoomCd();
  321. String inDd = patientInfoVO.getInDd();
  322. String dschDd = patientInfoVO.getDschDd();
  323. String ordType = patientInfoVO.getOrdType();
  324. String mainDrId = patientInfoVO.getMainDrId();
  325. String ward = patientInfoVO.getWard();
  326. String opDeptCd = patientInfoVO.getOpDeptCd();
  327. String opRsrvNo = patientInfoVO.getOpRsrvNo();
  328. String signImage = "";
  329. HashMap<String, String> mData = new HashMap<String, String>();
  330. if (!userDrFlag.equals("Y")) {
  331. mData.put("userId", loginUserId);
  332. mData.put("deptCd", loginUserDeptCd);
  333. map.put("mainDrId", loginUserId);
  334. } else {
  335. mData.put("userId", loginUserId);
  336. mData.put("deptCd", loginUserDeptCd);
  337. map.put("mainDrId", mainDrId);
  338. }
  339. if (ordType.equals("O")) {
  340. if (loginUserJobKindCd.indexOf("03") == 0) { // 의사
  341. mData.put("userId", loginUserId);
  342. mData.put("deptCd", loginUserDeptCd);
  343. map.put("mainDrId", loginUserId);
  344. } else if (userDrFlag.equals("N")) { // 의사가 아니고 예외 서식이면 (예외서식이면 N, 예외서식이 아니면 Y)
  345. mData.put("userId", loginUserId);
  346. mData.put("deptCd", loginUserDeptCd);
  347. map.put("mainDrId", loginUserId);
  348. } else if (loginUserJobKindCd.indexOf("03") != 0 && userDrFlag.equals("Y")) { // 의사가 아니고 예외서식이 아니면
  349. mData.put("userId", mainDrId);
  350. mData.put("deptCd", ordDeptCd);
  351. map.put("mainDrId", mainDrId);
  352. }
  353. }
  354. map.put("userDrFlag", userDrFlag);
  355. mData.put("instCd", BuildConfig.INST_CD);
  356. UserVO userVO = getUserInfo(mData);
  357. if (userVO.getUserId().equals("")) {
  358. mData.put("userId", loginUserId);
  359. mData.put("deptCd", loginUserDeptCd);
  360. userVO = getUserInfo(mData);
  361. }
  362. signImage = getSignImage(mData);
  363. map.put("parCMSGBD_ExplDrNm", "");
  364. map.put("parCMSGBD_ExplDrSignature", "");
  365. map.put("parCMSGBD_ExplDrTelNo", "");
  366. if (userVO.getJobKindCd().indexOf("03") == 0) {
  367. map.put("parCMSGBD_ExplDrNm", userVO.getUserName());
  368. map.put("parCMSGBD_ExplDrSignature", signImage);
  369. map.put("parCMSGBD_ExplDrTelNo", userVO.getUserTelNo());
  370. }
  371. map.put("parCMDCBD_SpDrYN", "");
  372. map.put("parCMDCBD_ContStartDate", "");
  373. map.put("parCMDCBD_ContEndDate", "");
  374. map.put("parCMDCBD_RoomCapa", "");
  375. map.put("parCMDCBD_ContStaff1Name", "");
  376. map.put("parCMDCBD_ContStaff2Name", "");
  377. map.put("parCMDCBD_ContStaff3Name", "");
  378. map.put("parCMDCBD_CardNo", "");
  379. map.put("parCMDCHD_1PatientNo", pid);
  380. map.put("parCMDCHD_1DepartmentCd", opDeptCd);
  381. map.put("ordType", ordType);
  382. map.put("parCMDCHD_1VisitDt", Util.addSlashDate(inDd));
  383. map.put("ward", ward);
  384. map.put("parCMSGBD_Cretno", cretNo);
  385. map.put("parCMDCBD_OpRsrvNo", opRsrvNo);
  386. map.put("dschDd", dschDd);
  387. if(ward.length() > 0 && roomCd.length() > 0) {
  388. map.put("parNUR_Fast_HospitalroomNo", ward + '/' + roomCd);
  389. }
  390. map.putAll(getEmrDataList(pid, inDd, cretNo, formCd));
  391. return map;
  392. }
  393. /**
  394. * 동의서 다중선택시 form 파라메터
  395. * @author jksong
  396. * @since 2020-05-06 오전 10:25
  397. **/
  398. public HashMap<String, String> setMultiFormParam(PatientInfoVO patientInfoVO, ConsentFormListVO consentFormListVO) {
  399. // ArrayList<HashMap<String, String>> mapArrayList = new ArrayList<HashMap<String, String>>();
  400. HashMap<String, String> map = new HashMap<String, String>();
  401. String consentMstRid = consentFormListVO.getConsentMstRid();
  402. String ordDeptCd = patientInfoVO.getOrdDeptCd();
  403. String deptEngAbbr = patientInfoVO.getDeptEngAbbr();
  404. String ordDeptNm = patientInfoVO.getOrdDeptNm();
  405. String pid = patientInfoVO.getPid();
  406. String cretNo = patientInfoVO.getCretNo();
  407. String roomCd = patientInfoVO.getRoomCd();
  408. String inDd = patientInfoVO.getInDd();
  409. String dschDd = patientInfoVO.getDschDd();
  410. String ordType = patientInfoVO.getOrdType();
  411. String instCd = patientInfoVO.getInstCd();
  412. String mainDrId = patientInfoVO.getMainDrId();
  413. String mainDrName = patientInfoVO.getMainDrName();
  414. String erDrNm = patientInfoVO.getErDrNm();
  415. String firstRgstDt = patientInfoVO.getFirstRgstDt();
  416. String sa = patientInfoVO.getSa();
  417. String patientName = patientInfoVO.getPatientName();
  418. String juminNo = patientInfoVO.getJuminNo();
  419. String zipCdAddr = patientInfoVO.getZipCdAddr();
  420. String telNum = patientInfoVO.getTelNum();
  421. String insuKind = patientInfoVO.getInsuKind();
  422. String ward = patientInfoVO.getWard();
  423. String dxCd = patientInfoVO.getDxCd();
  424. String dxNm = patientInfoVO.getDxNm();
  425. String gbn = patientInfoVO.getGbn();
  426. String opDeptCd = patientInfoVO.getOpDeptCd();
  427. String opDeptNm = patientInfoVO.getOpDeptNm();
  428. String opDrNm = patientInfoVO.getOpDrNm();
  429. String opDrId = patientInfoVO.getOpDrId();
  430. String opCnfmDd = patientInfoVO.getOpCnfmDd();
  431. String perfDrNm = patientInfoVO.getPerfDrNm();
  432. String perfDrFlag = patientInfoVO.getPerfDrFlag();
  433. String perfDrDept = patientInfoVO.getPerfDrDept();
  434. String opDiagNm = patientInfoVO.getOpDiagNm();
  435. String opNm = patientInfoVO.getOpNm();
  436. String anstDrNm1 = patientInfoVO.getAnstDrNm1();
  437. String anstDrFlag1 = patientInfoVO.getAnstDrFlag1();
  438. String anstDeptNm1 = patientInfoVO.getAnstDeptNm1();
  439. String anstDrNm2 = patientInfoVO.getAnstDrNm2();
  440. String anstDrFlag2 = patientInfoVO.getAnstDrFlag2();
  441. String anstDeptNm2 = patientInfoVO.getAnstDeptNm2();
  442. String anstDrNm3 = patientInfoVO.getAnstDrNm3();
  443. String anstDrFlag3 = patientInfoVO.getAnstDrFlag3();
  444. String anstDeptNm3 = patientInfoVO.getAnstDeptNm3();
  445. String opRsrvNo = patientInfoVO.getOpRsrvNo();
  446. String orderNo = patientInfoVO.getOrderNo();
  447. String printTime = patientInfoVO.getPrintTime();
  448. String ocrCd = patientInfoVO.getOcrCd();
  449. String inputId = patientInfoVO.getInputId();
  450. String inputNm = patientInfoVO.getInputNm();
  451. String signImg = patientInfoVO.getSignImg();
  452. String bp = patientInfoVO.getBp();
  453. String dm = patientInfoVO.getDm();
  454. String heart = patientInfoVO.getHeart();
  455. String kidney = patientInfoVO.getKidney();
  456. String respiration = patientInfoVO.getRespiration();
  457. String hx = patientInfoVO.getHx();
  458. String allergy = patientInfoVO.getAllergy();
  459. String drug = patientInfoVO.getDrug();
  460. String smoking = patientInfoVO.getSmoking();
  461. String idio = patientInfoVO.getIdio();
  462. String nacrotics = patientInfoVO.getNacrotics();
  463. String airway = patientInfoVO.getAirway();
  464. String hemorrhage = patientInfoVO.getHemorrhage();
  465. String statusEtc = patientInfoVO.getStatusEtc();
  466. String signImage = "";
  467. if (consentMstRid.equals("0") || consentFormListVO.getConsentStateEng().equals(ConsentConfig.UNFINISHED)) {
  468. String[] ipAddressAr = Util.getIpAddress(mContext).split("[.]");
  469. String ipAddress = ipAddressAr[2] + "." + ipAddressAr[3];
  470. map.put("parCMDCFT_device", "M");
  471. map.put("parCMDCFT_1PrintIP", ipAddress);
  472. map.put("parCMDCHD_1PatientNo", pid);
  473. map.put("parCMDCHD_1SexAge", sa);
  474. map.put("parCMDCHD_1PatientNm", patientName);
  475. map.put("parCMDCHD_1SocialSecuNo", juminNo);
  476. map.put("parCMDCHD_1VisitDt", Util.addSlashDate(inDd));
  477. map.put("parCMDCHD_1DepartmentNm", deptEngAbbr);
  478. map.put("parCMDCHD_1DepartmentCd", ordDeptCd);
  479. map.put("parCMDCBD_PopupV1_SurgeryDoctor", perfDrNm);
  480. map.put("parCMDCBD_PopupV1_DxNm", !opDiagNm.equals("") ? opDiagNm : dxNm);
  481. map.put("parCMDCBD_DiseaseBox_bp", bp);
  482. map.put("parCMDCBD_DiseaseBox_dm", dm);
  483. map.put("parCMDCBD_DiseaseBox_1CardioVascular", heart);
  484. map.put("parCMDCBD_DiseaseBox_3Metabolic", kidney);
  485. map.put("parCMDCBD_DiseaseBox_2Respiratory", respiration);
  486. map.put("parCMDCBD_DiseaseBox_9History1", hx);
  487. map.put("parCMDCBD_DiseaseBox_4UnusualConstitution2", allergy);
  488. map.put("parCMDCBD_DiseaseBox_6Medicine", drug);
  489. map.put("parCMDCBD_DiseaseBox_8HabitSmoking", smoking);
  490. map.put("parCMDCBD_DiseaseBox_4UnusualConstitution1", idio);
  491. map.put("parCMDCBD_DiseaseBox_9History2", nacrotics);
  492. map.put("parCMDCBD_DiseaseBox_7Airway", airway);
  493. map.put("parCMDCBD_DiseaseBox_5Blood", hemorrhage);
  494. map.put("parCMDCBD_status_etc", statusEtc);
  495. map.put("parCMDCBD_signdate", opCnfmDd);
  496. map.put("parCMDCBD_signtime", "");
  497. map.put("parCMDCFT_1PrintDt", "");
  498. map.put("parCMDCBD_Doctor_Doctor1Nm", mainDrName); // 담당의사
  499. // map.put("parCMSGBD_INPUTNm", userVO.getUserName());
  500. map.put("parCMSGBD_INPUTSignature", signImage);
  501. map.put("parCMSGBD_PT_address", zipCdAddr);
  502. map.put("parCMSGBD_PT_tel", telNum);
  503. map.put("parCMSGBD_Insukind", insuKind);
  504. map.put("parCMSGBD_PT_birthday", juminNo.split("-")[0]);
  505. map.put("parCMDCBD_PopupV1_OPNm", opNm.equals("") ? consentFormListVO.getOpNm() : opNm);
  506. map.put("parCMDCBD_PopupV1_SPNm", opNm.equals("") ? consentFormListVO.getOpNm() : opNm);
  507. // map.put("parCMSGBD_INPUTTelNo", userVO.getUserTelNo());
  508. map.put("parDEFAULT_DUTINSTCD", instCd);
  509. map.put("parDEFAULT_POPUP_PATH", BuildConfig.CONSENT_SERVER_URL);
  510. map.put("parCMDCBD_PopupV1_SurgeryDepartment", perfDrFlag.equals("전문의") ? perfDrDept : "");
  511. map.put("parCMDCBD_PopupV1_SurgeryCommonDepartment", perfDrFlag.equals("전공의") ? perfDrDept : "");
  512. map.put("parCMDCBD_Anst1DrNm", anstDrNm1);
  513. map.put("parCMDCBD_Anst1DeptNm", anstDrFlag1.equals("전문의") ? anstDeptNm1 : "");
  514. map.put("parCMDCBD_Anst1CommonDeptNm", !anstDrFlag1.equals("전문의") ? anstDeptNm1 : "");
  515. map.put("parCMDCBD_Anst2DrNm", anstDrNm2);
  516. map.put("parCMDCBD_Anst2DeptNm", anstDrFlag2.equals("전문의") ? anstDeptNm2 : "");
  517. map.put("parCMDCBD_Anst2CommonDeptNm", !anstDrFlag2.equals("전문의") ? anstDeptNm2 : "");
  518. map.put("parCMDCBD_Anst3DrNm", anstDrNm3);
  519. map.put("parCMDCBD_Anst3DeptNm", anstDrFlag3.equals("전문의") ? anstDeptNm3 : "");
  520. map.put("parCMDCBD_Anst3CommonDeptNm", !anstDrFlag3.equals("전문의") ? anstDeptNm3 : "");
  521. // map.put("parCMSGBD_INPUTDeptcd", userVO.getUserDeptCode());
  522. map.put("parCMSGBD_Cretno", cretNo);
  523. map.put("parCMDCBD_OpRsrvNo", opRsrvNo);
  524. map.put("parCMDCHD_1PatientNmFix", patientName);
  525. map.put("parCMSGBD_PT_birthdayFix", juminNo.split("-")[0]);
  526. map.put("parCMSGBD_PT_telFix", telNum);
  527. map.put("parCMDCBD_SpDrYN", "");
  528. map.put("parCMDCBD_ContStartDate", "");
  529. map.put("parCMDCBD_ContEndDate", "");
  530. map.put("parCMDCBD_RoomCapa", "");
  531. map.put("parCMDCBD_ContStaff1Name", "");
  532. map.put("parCMDCBD_ContStaff2Name", "");
  533. map.put("parCMDCBD_ContStaff3Name", "");
  534. map.put("parCMDCBD_CardNo", "");
  535. map.put("ordType", ordType);
  536. map.put("ward", ward);
  537. map.put("dschDd", dschDd);
  538. if(ward.length() > 0 && roomCd.length() > 0) {
  539. map.put("parNUR_Fast_HospitalroomNo", ward + '/' + roomCd);
  540. }
  541. map.put("newConsent", "true");
  542. } else {
  543. map.put("newConsent", "false");
  544. }
  545. String ocrTag = consentFormListVO.getOcrTag();
  546. String formPrntNm = consentFormListVO.getFormPrntNm();
  547. String guid = consentFormListVO.getFormGuid();
  548. String formCd = consentFormListVO.getFormCd();
  549. String formRid = consentFormListVO.getFormRid();
  550. String drOnly = consentFormListVO.getDrOnly();
  551. String formName = consentFormListVO.getFormName();
  552. map.put("consentStateEng", consentFormListVO.getConsentStateEng());
  553. map.put("parCMSGBD_ocr_cd", ocrTag.equals("") ? getOcrTag() : ocrTag);
  554. map.put("parCMDCFT_1PrintNm", formPrntNm);
  555. map.put("rid", consentMstRid);
  556. map.put("guid", guid);
  557. map.put("formCd", formCd);
  558. map.put("formRid", formRid);
  559. map.put("drOnly", drOnly);
  560. map.put("formName", formName);
  561. return map;
  562. }
  563. private String getOcrTag() {
  564. HashMap<String, String> mData = new HashMap<String, String>();
  565. mData.put("instCd", BuildConfig.INST_CD);
  566. HttpSoapConnection connection = new HttpSoapConnection(ConsentConfig.HOST_HOSPITAL, ConsentConfig.GET_OCR_TAG, mData);
  567. String ocrTag = "";
  568. try {
  569. SoapObject object = connection.execute().get();
  570. if (object != null) {
  571. ocrTag = object.getProperty("responseData").toString().trim();
  572. }
  573. } catch (ExecutionException e) {
  574. e.printStackTrace();
  575. } catch (InterruptedException e) {
  576. e.printStackTrace();
  577. }
  578. return ocrTag;
  579. }
  580. private String getSignImage(HashMap<String, String> mData) {
  581. HttpSoapConnection connection = new HttpSoapConnection(ConsentConfig.HOST_HOSPITAL, ConsentConfig.GET_SIGN_DATA, mData);
  582. String signImage = "";
  583. try {
  584. SoapObject object = connection.execute().get();
  585. if (object != null) {
  586. signImage = object.getProperty("SignImage").toString().trim();
  587. signImage = signImage.equals(ConsentConfig.RETURN_NULL) ? "" : signImage;
  588. }
  589. } catch (ExecutionException e) {
  590. e.printStackTrace();
  591. } catch (InterruptedException e) {
  592. e.printStackTrace();
  593. }
  594. return signImage;
  595. }
  596. private UserVO getUserInfo(HashMap<String, String> mData) {
  597. UserVO userVO = new UserVO();
  598. HttpSoapConnection connection = new HttpSoapConnection(ConsentConfig.HOST_HOSPITAL, ConsentConfig.GET_USER_INFO, mData);
  599. try {
  600. SoapObject object = connection.execute().get();
  601. Log.e(TAG, "object -- > " + object);
  602. String userId = object.getProperty("userId").toString().trim();
  603. String userName = object.getProperty("userName").toString().trim();
  604. String userDeptCode = object.getProperty("userDeptCode").toString().trim();
  605. String userDeptName = object.getProperty("userDeptName").toString().trim();
  606. String userDeptEngAbbr = object.getProperty("deptEngAbbr").toString().trim();
  607. String jobKindCd = object.getProperty("jobKindCd").toString().trim();
  608. String jobKindNm = object.getProperty("jobKindNm").toString().trim();
  609. String userInstCd = object.getProperty("instCd").toString().trim();
  610. String userTelNo = object.getProperty("userTelNo").toString().trim();
  611. String ioFlag = object.getProperty("ioFlag").toString().trim();
  612. userId = userId.equals(ConsentConfig.RETURN_NULL) ? "" : userId;
  613. userName = userName.equals(ConsentConfig.RETURN_NULL) ? "" : userName;
  614. userDeptCode = userDeptCode.equals(ConsentConfig.RETURN_NULL) ? "" : userDeptCode;
  615. userDeptName = userDeptName.equals(ConsentConfig.RETURN_NULL) ? "" : userDeptName;
  616. userDeptEngAbbr = userDeptEngAbbr.equals(ConsentConfig.RETURN_NULL) ? "" : userDeptEngAbbr;
  617. jobKindCd = jobKindCd.equals(ConsentConfig.RETURN_NULL) ? "" : jobKindCd;
  618. jobKindNm = jobKindNm.equals(ConsentConfig.RETURN_NULL) ? "" : jobKindNm;
  619. userInstCd = userInstCd.equals(ConsentConfig.RETURN_NULL) ? "" : userInstCd;
  620. userTelNo = userTelNo.equals(ConsentConfig.RETURN_NULL) ? "" : userTelNo;
  621. ioFlag = ioFlag.equals(ConsentConfig.RETURN_NULL) ? "" : ioFlag;
  622. userVO.setUserId(userId);
  623. userVO.setUserName(userName);
  624. userVO.setUserDeptCode(userDeptCode);
  625. userVO.setUserDeptName(userDeptName);
  626. userVO.setDeptEngAbbr(userDeptEngAbbr);
  627. userVO.setJobKindCd(jobKindCd);
  628. userVO.setJobKindNm(jobKindNm);
  629. userVO.setUserInstCd(userInstCd);
  630. userVO.setUserTelNo(userTelNo);
  631. userVO.setIoFlag(ioFlag);
  632. } catch (ExecutionException e) {
  633. e.printStackTrace();
  634. } catch (InterruptedException e) {
  635. e.printStackTrace();
  636. }
  637. return userVO;
  638. }
  639. /**
  640. * 동적 파라메터 필드, 값 받아와서 맵핑 시켜준다
  641. * @param pid
  642. * @param inDd
  643. * @param cretNo
  644. * @param formCd
  645. * @return
  646. */
  647. private HashMap<String, String> getEmrDataList(String pid, String inDd, String cretNo, String formCd) {
  648. HashMap<String, String> resultMap = new HashMap<>();
  649. HashMap<String, String> mData = new HashMap<String, String>();
  650. mData.put("instcd", BuildConfig.INST_CD);
  651. mData.put("pid", pid);
  652. mData.put("indd", inDd);
  653. mData.put("cretno", cretNo);
  654. mData.put("formCd", formCd);
  655. HttpSoapConnection connection = new HttpSoapConnection(ConsentConfig.HOST_HOSPITAL, ConsentConfig.GET_EMR_DATA_LIST, mData);
  656. try {
  657. SoapObject object = connection.execute().get();
  658. resultMap = SoapParser.getEmrDataList(object);
  659. } catch (ExecutionException e) {
  660. e.printStackTrace();
  661. } catch (InterruptedException e) {
  662. e.printStackTrace();
  663. }
  664. return resultMap;
  665. }
  666. }