ARCCommon.xjs 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <Script type="xscript4.0"><![CDATA[/**
  3. * @desc : 회신서 출력
  4. * @
  5. * @param : pid, replseqno, replflag(A:되의뢰, P;회신), directprintyn(Y:바로출력, N:출력창)
  6. * @return :
  7. * @author : 박성호
  8. * @---------------------------------------------------
  9. */
  10. function fComPreview(pid, replseqno, replflag, directprintyn)
  11. {
  12. dsf_createDsRow("ds_cond_TRARC02507", [{col:"pid", type:"STRING", size:256, val:pid}
  13. , {col:"replseqno", type:"INT", size:256, val:replseqno}
  14. , {col:"instcd", type:"STRING", size:256, val:""}
  15. ]);
  16. dsf_setDefaultVal(ds_cond_TRARC02507, "replseqno:0");
  17. //<!-- 기본정보 -->
  18. dsf_createDs("ds_data_baseinfo", [{col:"instcdnm", type:"STRING", size:256}
  19. , {col:"ordfromdd", type:"STRING", size:256}
  20. , {col:"ordtodd", type:"STRING", size:256}
  21. , {col:"telno1", type:"STRING", size:256}
  22. , {col:"telno2", type:"STRING", size:256}
  23. , {col:"faxno", type:"STRING", size:256}
  24. , {col:"url", type:"STRING", size:256}
  25. , {col:"mainemail", type:"STRING", size:256}
  26. , {col:"maindeptnm", type:"STRING", size:256}]);
  27. //<!-- 환자정보 -->
  28. dsf_createDs("ds_data_patientinfo", [{col:"pid", type:"STRING", size:256}
  29. , {col:"hngnm", type:"STRING", size:256}
  30. , {col:"sex", type:"STRING", size:256}
  31. , {col:"age", type:"BIGDECIMAL", size:256}
  32. , {col:"rrgstno1", type:"STRING", size:256}
  33. , {col:"rrgstno2", type:"STRING", size:256}
  34. , {col:"brthdd", type:"STRING", size:256}]);
  35. //dsf_setTypeFormat(ds_data_patientinfo, "age:BIGDECIMAL");
  36. //<!-- 회신내용 -->
  37. dsf_createDs("ds_data_replinfo", [{col:"pid", type:"STRING", size:256}
  38. , {col:"replseqno", type:"BIGDECIMAL", size:256}
  39. , {col:"replflag", type:"STRING", size:256}
  40. , {col:"writflag", type:"STRING", size:256}
  41. , {col:"recdd", type:"STRING", size:256}
  42. , {col:"orddeptcd", type:"STRING", size:256}
  43. , {col:"orddeptnm", type:"STRING", size:256}
  44. , {col:"orddrid", type:"STRING", size:256}
  45. , {col:"orddrnm", type:"STRING", size:256}
  46. , {col:"reqorddd", type:"STRING", size:256}
  47. , {col:"reqcretno", type:"BIGDECIMAL", size:256}
  48. , {col:"reqseqno", type:"BIGDECIMAL", size:256}
  49. , {col:"rsrvdd", type:"STRING", size:256}
  50. , {col:"rsrvtm", type:"STRING", size:256}
  51. , {col:"rsrvorddeptcd", type:"STRING", size:256}
  52. , {col:"rsrvorddrid", type:"STRING", size:256}
  53. , {col:"rsrvorddeptnm", type:"STRING", size:256}
  54. , {col:"rsrvorddrnm", type:"STRING", size:256}
  55. , {col:"rsrvcretno", type:"BIGDECIMAL", size:256}
  56. , {col:"diagnm", type:"STRING", size:256}
  57. , {col:"curecnts", type:"STRING", size:256}
  58. , {col:"delivefact", type:"STRING", size:256}
  59. , {col:"reqagnkindcd", type:"STRING", size:256}
  60. , {col:"reqagnkindnm", type:"STRING", size:256}
  61. , {col:"saverid", type:"STRING", size:256}
  62. , {col:"savernm", type:"STRING", size:256}
  63. , {col:"savedd", type:"STRING", size:256}
  64. , {col:"aprvrid", type:"STRING", size:256}
  65. , {col:"aprvrnm", type:"STRING", size:256}
  66. , {col:"aprvdd", type:"STRING", size:256}
  67. , {col:"aprvdeptcd", type:"STRING", size:256}
  68. , {col:"aprvdeptnm", type:"STRING", size:256}
  69. , {col:"saveflag", type:"STRING", size:256}
  70. , {col:"footflag", type:"STRING", size:256}
  71. , {col:"prntdt", type:"STRING", size:256}]);
  72. //dsf_setDefaultVal(ds_data_replinfo, "reqcretno:0,reqseqno:0,rsrvcretno:0");
  73. //dsf_setTypeFormat(ds_data_replinfo, "replseqno:BIGDECIMAL^reqcretno:BIGDECIMAL^reqseqno:BIGDECIMAL^rsrvcretno:BIGDECIMAL");
  74. //<!-- 의뢰병원정보 -->
  75. dsf_createDs("ds_data_reqhospinfo", [{col:"reqdd", type:"STRING", size:256}
  76. , {col:"coophospcd", type:"STRING", size:256}
  77. , {col:"coophospnm", type:"STRING", size:256}
  78. , {col:"coopdrcd", type:"STRING", size:256}
  79. , {col:"coopdrnm", type:"STRING", size:256}
  80. , {col:"clsmatyn", type:"STRING", size:256}
  81. , {col:"gradyear", type:"STRING", size:256}
  82. , {col:"telno", type:"STRING", size:256}
  83. , {col:"mpphontel", type:"STRING", size:256}
  84. , {col:"emailid", type:"STRING", size:256}
  85. , {col:"emailaddr", type:"STRING", size:256}
  86. , {col:"coopflag", type:"STRING", size:256}
  87. , {col:"reqorddd", type:"STRING", size:256}
  88. , {col:"reqcretno", type:"BIGDECIMAL", size:256}
  89. , {col:"reqseqno", type:"BIGDECIMAL", size:256}
  90. , {col:"addr", type:"STRING", size:256}
  91. , {col:"detladdr", type:"STRING", size:256}
  92. , {col:"zipcd1", type:"STRING", size:256}
  93. , {col:"zipcd2", type:"STRING", size:256}
  94. , {col:"drflag", type:"STRING", size:256}
  95. , {col:"faxno", type:"STRING", size:256}], true);
  96. //dsf_setTypeFormat(ds_data_reqhospinfo, "reqcretno:BIGDECIMAL^reqseqno:BIGDECIMAL");
  97. //<!-- 검사내역 -->
  98. dsf_createDs("ds_data_rsltinfo", [{col:"prcpdd", type:"STRING", size:256}
  99. , {col:"examnm", type:"STRING", size:256}
  100. , {col:"spcnm", type:"STRING", size:256}
  101. , {col:"examgubun", type:"STRING", size:256}
  102. , {col:"lastreptdd", type:"STRING", size:256}
  103. , {col:"bcno", type:"STRING", size:256}
  104. , {col:"testmdlcd", type:"STRING", size:256}
  105. , {col:"execprcpuniqno", type:"STRING", size:256}
  106. , {col:"pid", type:"STRING", size:256}
  107. , {col:"depth", type:"STRING", size:256}
  108. , {col:"replseqno", type:"BIGDECIMAL", size:256}
  109. , {col:"seqno", type:"BIGDECIMAL", size:256}]);
  110. //dsf_setTypeFormat(ds_data_rsltinfo, "replseqno:BIGDECIMAL^seqno:BIGDECIMAL");
  111. //<!-- 처방내역 -->
  112. dsf_createDs("ds_data_prcpinfo", [{col:"prcpdd", type:"STRING", size:256}
  113. , {col:"prcpcd", type:"STRING", size:256}
  114. , {col:"prcpnm", type:"STRING", size:256}
  115. , {col:"prcpqty", type:"BIGDECIMAL", size:256}
  116. , {col:"prcpqtyunitnm", type:"STRING", size:256}
  117. , {col:"prcptims", type:"BIGDECIMAL", size:256}
  118. , {col:"prcpdayno", type:"BIGDECIMAL", size:256}
  119. , {col:"prcpno", type:"BIGDECIMAL", size:256}
  120. , {col:"prcphistno", type:"BIGDECIMAL", size:256}
  121. , {col:"pid", type:"STRING", size:256}
  122. , {col:"replseqno", type:"BIGDECIMAL", size:256}
  123. , {col:"seqno", type:"BIGDECIMAL", size:256}
  124. , {col:"prcpqtyunitflag", type:"STRING", size:256}]);
  125. //dsf_setTypeFormat(ds_data_prcpinfo, "prcpqty:FLOAT^prcptims:BIGDECIMAL^prcpdayno:BIGDECIMAL^prcpno:BIGDECIMAL^prcphistno:BIGDECIMAL^replseqno:BIGDECIMAL^seqno:BIGDECIMAL");
  126. //<!-- 수술정보 -->
  127. dsf_createDs("ds_data_opinfo", [{col:"opdd", type:"STRING", size:256}
  128. , {col:"opnm", type:"STRING", size:256}
  129. , {col:"perdeptnm", type:"STRING", size:256}
  130. , {col:"perfdrnm", type:"STRING", size:256}
  131. , {col:"opstatcd", type:"STRING", size:256}
  132. , {col:"pid", type:"STRING", size:256}
  133. , {col:"replseqno", type:"BIGDECIMAL", size:256}
  134. , {col:"seqno", type:"BIGDECIMAL", size:256}
  135. , {col:"oprsrvno", type:"BIGDECIMAL", size:256}
  136. , {col:"ophistno", type:"BIGDECIMAL", size:256}
  137. , {col:"opcd", type:"STRING", size:256}
  138. , {col:"perfdrid", type:"STRING", size:256}
  139. , {col:"perfdeptcd", type:"STRING", size:256}]);
  140. //dsf_setDefaultVal(ds_data_opinfo, "replseqno:0,seqno:0,oprsrvno:0,ophistno:0");
  141. //dsf_setTypeFormat(ds_data_opinfo, "replseqno:BIGDECIMAL^seqno:BIGDECIMAL^oprsrvno:BIGDECIMAL^ophistno:BIGDECIMAL");
  142. //<!-- 입퇴원요약정보 -->
  143. dsf_createDs("ds_data_dschinfo", [{col:"indd", type:"STRING", size:256}
  144. , {col:"orddeptnm", type:"STRING", size:256}
  145. , {col:"orddrnm", type:"STRING", size:256}
  146. , {col:"dschdd", type:"STRING", size:256}
  147. , {col:"roomcd", type:"STRING", size:256}
  148. , {col:"formrecseq", type:"BIGDECIMAL", size:256}
  149. , {col:"orddeptcd", type:"STRING", size:256}
  150. , {col:"orddrid", type:"STRING", size:256}
  151. , {col:"pid", type:"STRING", size:256}
  152. , {col:"replseqno", type:"BIGDECIMAL", size:256}
  153. , {col:"seqno", type:"BIGDECIMAL", size:256}]);
  154. //dsf_setDefaultVal(ds_data_dschinfo, "formrecseq:0,replseqno:0,seqno:0");
  155. //dsf_setTypeFormat(ds_data_dschinfo, "formrecseq:FLOAT^replseqno:BIGDECIMAL^seqno:BIGDECIMAL");
  156. // 미리보기는 저장된 내용이 있어야만 미리보기가 된다.
  157. var oParam = {};
  158. oParam.id = "TRARC02507";
  159. oParam.service = "healcarecoopapp.ReqMngt";
  160. oParam.method = "reqGetPreviewInfo";
  161. oParam.inds = "req=ds_cond_TRARC02507";
  162. oParam.outds = "ds_data_baseinfo=baseinfo ds_data_patientinfo=patientinfo ds_data_replinfo=replinfo " +
  163. "ds_data_reqhospinfo=reqhospinfo ds_data_rsltinfo=rsltinfo ds_data_prcpinfo=prcpinfo " +
  164. "ds_data_opinfo=opinfo ds_data_dschinfo=dschinfo";
  165. oParam.async = false;
  166. oParam.callback = "cf_TRARC02507";
  167. tranf_submit(oParam);
  168. // 되의뢰인 경우 병원정보를 되의뢰병원으로
  169. if (replflag == "A")
  170. {
  171. if (this.objects["ds_main_req_pat_info_patinfo"] != null && ds_main_req_pat_info_patinfo.rowcount > 0 )
  172. {
  173. if (ds_data_reqhospinfo.rowcount == 0)
  174. {
  175. var nRow = ds_data_reqhospinfo.addRow();
  176. ds_data_reqhospinfo.setColumn(nRow, "coophospnm", ds_main_req_pat_info_patinfo.getColumn(0, "coophospnm"));
  177. ds_data_reqhospinfo.setColumn(nRow, "coopdrnm" , ds_main_req_pat_info_patinfo.getColumn(0, "coopdrnm"));
  178. ds_data_reqhospinfo.setColumn(nRow, "addr" , ds_main_req_pat_info_patinfo.getColumn(0, "addr"));
  179. ds_data_reqhospinfo.setColumn(nRow, "detladdr" , ds_main_req_pat_info_patinfo.getColumn(0, "detladdr"));
  180. ds_data_reqhospinfo.setColumn(nRow, "zipcd1" , ds_main_req_pat_info_patinfo.getColumn(0, "zipcd1"));
  181. ds_data_reqhospinfo.setColumn(nRow, "zipcd2" , ds_main_req_pat_info_patinfo.getColumn(0, "zipcd2"));
  182. ds_data_reqhospinfo.setColumn(nRow, "drflag" , ds_main_req_pat_info_patinfo.getColumn(0, "drflag"));
  183. }
  184. else
  185. {
  186. if( ds_data_reqhospinfo.rowcount == 0 ) ds_data_reqhospinfo.addRow();
  187. ds_data_reqhospinfo.setColumn(0, "coophospnm" , ds_main_req_pat_info_patinfo.getColumn(0, "coophospnm"));
  188. ds_data_reqhospinfo.setColumn(0, "coopdrnm" , ds_main_req_pat_info_patinfo.getColumn(0, "coopdrnm"));
  189. ds_data_reqhospinfo.setColumn(0, "addr" , ds_main_req_pat_info_patinfo.getColumn(0, "addr"));
  190. ds_data_reqhospinfo.setColumn(0, "detladdr" , ds_main_req_pat_info_patinfo.getColumn(0, "detladdr"));
  191. ds_data_reqhospinfo.setColumn(0, "zipcd1" , ds_main_req_pat_info_patinfo.getColumn(0, "zipcd1"));
  192. ds_data_reqhospinfo.setColumn(0, "zipcd2" , ds_main_req_pat_info_patinfo.getColumn(0, "zipcd2"));
  193. ds_data_reqhospinfo.setColumn(0, "drflag" , ds_main_req_pat_info_patinfo.getColumn(0, "drflag"));
  194. }
  195. }
  196. }
  197. var curecnts = utlf_transNullToEmpty(ds_data_replinfo.getColumn(0, "curecnts"));
  198. cureArray = curecnts.split("\n");
  199. if( cureArray.length > 0 && this.objects["ds_data_curelsit"] == null ){
  200. dsf_createDs("ds_data_curelsit", [{col:"curecnts", type:"STRING", size:256}]);
  201. }else if(this.objects["ds_data_curelsit"] != null){
  202. ds_data_curelsit.clearData();
  203. }
  204. for (i = 0; i < cureArray.length; i++)
  205. {
  206. var nRow = ds_data_curelsit.addRow();
  207. ds_data_curelsit.setColumn(nRow, "curecnts", cureArray[i]);
  208. }
  209. fComInitial_subordlist();
  210. var rsltinfoCnt = ds_data_rsltinfo.rowcount;
  211. if (rsltinfoCnt > 0)
  212. {
  213. if(!utlf_isNull(ds_data_rsltinfo.getColumn(0, "prcpdd")))
  214. {
  215. for( var i=0; i<rsltinfoCnt; i++ ) {
  216. var nRow = ds_send_maindata.addRow();
  217. ds_send_maindata.setColumn(nRow, "bcno" , utlf_transNullToEmpty(ds_data_rsltinfo.getColumn(i, "bcno"))); //바코드번호
  218. ds_send_maindata.setColumn(nRow, "testmdlcd" , utlf_transNullToEmpty(ds_data_rsltinfo.getColumn(i, "testmdlcd"))); //검사중분류코드
  219. ds_send_maindata.setColumn(nRow, "lastreptdd" , utlf_transNullToEmpty(ds_data_rsltinfo.getColumn(i, "lastreptdd"))); //최종보고일자
  220. ds_send_maindata.setColumn(nRow, "examgubun" , utlf_transNullToEmpty(ds_data_rsltinfo.getColumn(i, "examgubun"))); //검사구분
  221. ds_send_maindata.setColumn(nRow, "level" , utlf_transNullToEmpty(ds_data_rsltinfo.getColumn(i, "depth"))); //바코드검사레벨(LIS)
  222. ds_send_maindata.setColumn(nRow, "pid" , utlf_transNullToEmpty(ds_data_rsltinfo.getColumn(i, "pid"))); //등록번호
  223. ds_send_maindata.setColumn(nRow, "instcd" , sysf_getUserInfo("dutplceinstcd")); //기관코드
  224. ds_send_maindata.setColumn(nRow, "prcpdd" , utlf_transNullToEmpty(ds_data_rsltinfo.getColumn(i, "prcpdd"))); //처방일자
  225. ds_send_maindata.setColumn(nRow, "execprcpuniqno", utlf_transNullToEmpty(ds_data_rsltinfo.getColumn(i, "execprcpuniqno"))); //실시유일번호
  226. }
  227. var oParam = {};
  228. oParam.id = "TRAER00850";
  229. oParam.service = "examcureresultrefapp.RsltRef";
  230. oParam.method = "reqGetRsltRefDetailList";
  231. oParam.inds = "reqparam=ds_send_maindata";
  232. oParam.outds = "ds_main_subordlist1=getResultDetail";
  233. oParam.async = false;
  234. oParam.callback = "cf_TRAER00850";
  235. tranf_submit(oParam);
  236. }
  237. }
  238. var objDOM = rptf_createDOM(); // DOM 객체 설정
  239. rptf_setNodeListToDOM(objDOM, "/root/main/previewinfo/baseinfo", ds_data_baseinfo);
  240. rptf_setNodeListToDOM(objDOM, "/root/main/previewinfo/patientinfo", ds_data_patientinfo);
  241. rptf_setNodeListToDOM(objDOM, "/root/main/previewinfo/replinfo", ds_data_replinfo);
  242. rptf_setNodeListToDOM(objDOM, "/root/main/previewinfo/reqhospinfo", ds_data_reqhospinfo);
  243. rptf_setNodeListToDOM(objDOM, "/root/main/previewinfo/rsltinfo", ds_data_rsltinfo);
  244. rptf_setNodeListToDOM(objDOM, "/root/main/previewinfo/prcpinfo", ds_data_prcpinfo);
  245. rptf_setNodeListToDOM(objDOM, "/root/main/previewinfo/opinfo", ds_data_opinfo);
  246. rptf_setNodeListToDOM(objDOM, "/root/main/previewinfo/dschinfo", ds_data_dschinfo);
  247. rptf_setNodeListToDOM(objDOM, "/root/main/previewinfo/curelsit", ds_data_curelsit);
  248. rptf_setNodeListToDOM(objDOM, "/root/main/subordlist1/subresultdetail1", ds_main_subordlist1);
  249. var objParam = new Object();
  250. objParam.xml_data_XML1 = objDOM.documentElement.source; // 최상의노드 XML 스트링 추출
  251. var option = "open=0;save=1;directprint=0;printdialog=0;print=1;zoom=1;moveprev=1;movenext=1;combo=1;movefirst=1;movelast=1;excel=0;pdf=1;hwp=0;refresh=0;";
  252. if(!utlf_isNull(directprintyn) && directprintyn == "Y"){
  253. option = "open=0;save=0;directprint=1;printdialog=0";
  254. }
  255. rptf_exeReportPreview30(["RPARC02500"],[objParam], option);
  256. }
  257. function cf_TRARC02507(sSvcId, nErrorCode, sErrorMsg) {
  258. if(nErrorCode < 0){
  259. sysf_messageBox("출력정보를 저장", "E001");
  260. return;
  261. }
  262. dsf_setDefaultVal(ds_data_replinfo, "reqcretno:0,reqseqno:0,rsrvcretno:0");
  263. dsf_setDefaultVal(ds_data_opinfo, "replseqno:0,seqno:0,oprsrvno:0,ophistno:0");
  264. dsf_setDefaultVal(ds_data_dschinfo, "formrecseq:0,replseqno:0,seqno:0");
  265. }
  266. function cf_TRAER00850(sSvcId, nErrorCode, sErrorMsg) {
  267. if(nErrorCode < 0) return;
  268. dsf_setFixVal(ds_main_subordlist1, "check:N,flag:rsltref");
  269. }
  270. // 결과내역 인스턴스 초기화
  271. function fComInitial_subordlist() {
  272. // 일자별 그리드
  273. dsf_createDs("ds_main_subordlist1", [{col:"check", type:"STRING", size:256}
  274. , {col:"reptrslt", type:"STRING", size:256}
  275. , {col:"judgmark", type:"STRING", size:256}
  276. , {col:"judgmark2", type:"STRING", size:256}
  277. , {col:"prcpcd", type:"STRING", size:256}
  278. , {col:"prcpnm", type:"STRING", size:256}
  279. , {col:"img", type:"STRING", size:256}
  280. , {col:"imgcnts", type:"BLOB", size:256}
  281. , {col:"spcno", type:"STRING", size:256}
  282. , {col:"pacsno", type:"STRING", size:256}
  283. , {col:"flag", type:"STRING", size:256}]);
  284. // 일자별 그리드
  285. dsf_createDs("ds_send_maindata", [{col:"bcno", type:"STRING", size:256}
  286. , {col:"testmdlcd", type:"STRING", size:256}
  287. , {col:"lastreptdd", type:"STRING", size:256}
  288. , {col:"examgubun", type:"STRING", size:256}
  289. , {col:"level", type:"STRING", size:256}
  290. , {col:"pid", type:"STRING", size:256} //srchpid
  291. , {col:"instcd", type:"STRING", size:256} //dutplceinstcd
  292. , {col:"prcpdd", type:"STRING", size:256}
  293. , {col:"execprcpuniqno", type:"STRING", size:256}
  294. , {col:"check", type:"STRING", size:256}
  295. , {col:"hla", type:"STRING", size:256}]);
  296. }
  297. ]]></Script>