SPMMR09000.xjs 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <Script type="xscript4.0"><![CDATA[function fInit() {
  3. ds_cond.setColumn(0,"cond1", opener.parent.ds_data_paminfo.getColumn(0,"pid"));
  4. ds_cond.setColumn(0,"cond2", utlf_getNewDate().getAddDate(-6, "M").getDateFormat("YYYYMMDD"));
  5. ds_cond.setColumn(0,"cond3", "0"); //처방권한 구분
  6. ds_cond.setColumn(0,"cond4", utlf_getCurrentDate()); //처방일자
  7. ds_cond.setColumn(0,"cond5", "bfprcp"); //전처방 where 조건 구분자
  8. ds_cond.setColumn(0,"cond6", "" ); //최초구분
  9. ds_cond.setColumn(0,"cond7", opener.parent.ds_data_paminfo.getColumn(0,"orddrid"));
  10. ds_cond.setColumn(0,"cond8", utlf_getCurrentDate());//parent.opener.opener.model.getValue(vPath + "/orddd"));
  11. ds_cond.setColumn(0,"cond9", opener.parent.ds_data_paminfo.getColumn(0,"ordtype"));
  12. ds_cond.setColumn(0,"cond10", opener.parent.ds_data_paminfo.getColumn(0,"orddeptcd"));
  13. ds_cond.setColumn(0,"cond11", opener.parent.ds_data_paminfo.getColumn(0,"cretno"));
  14. ds_cond.setColumn(0,"cond97", "fromto");
  15. ds_cond.setColumn(0,"cond98", opener.parent.ds_data_paminfo.getColumn(0,"hngnm"));
  16. /*
  17. ds_cond.setColumn(0,"cond1", parent.opener.opener.ds_main_paminfo.getColumn(0,"pid"));
  18. ds_cond.setColumn(0,"cond2", utlf_getNewDate().getAddDate(-6, "M").getDateFormat("YYYYMMDD"));
  19. ds_cond.setColumn(0,"cond3", "0"); //처방권한 구분
  20. ds_cond.setColumn(0,"cond4", utlf_getCurrentDate()); //처방일자
  21. ds_cond.setColumn(0,"cond5", "bfprcp"); //전처방 where 조건 구분자
  22. ds_cond.setColumn(0,"cond6", "" ); //최초구분
  23. ds_cond.setColumn(0,"cond7", parent.opener.opener.ds_main_paminfo.getColumn(0,"orddrid"));
  24. ds_cond.setColumn(0,"cond8", utlf_getCurrentDate());//parent.opener.opener.model.getValue(vPath + "/orddd"));
  25. ds_cond.setColumn(0,"cond9", parent.opener.opener.ds_main_paminfo.getColumn(0,"ordtype"));
  26. ds_cond.setColumn(0,"cond10", parent.opener.opener.ds_main_paminfo.getColumn(0,"orddeptcd"));
  27. ds_cond.setColumn(0,"cond11", parent.opener.opener.ds_main_paminfo.getColumn(0,"cretno"));
  28. ds_cond.setColumn(0,"cond97", "fromto");
  29. ds_cond.setColumn(0,"cond98", parent.opener.opener.ds_main_paminfo.getColumn(0,"hngnm"));
  30. */
  31. fGetPrcpList();
  32. }
  33. /**
  34. * @desc :환자처방정보 가져오기
  35. * @id :
  36. * @event : onclick
  37. * @return : void
  38. * @authur : 박종훈
  39. */
  40. function fGetPrcpList() {
  41. // grd_prcplist.redraw();
  42. // var pageInfo = new PAGEINFO();
  43. var prcpdd = utlf_getCurrentDate();
  44. var curprcpdd = opener.parent.objects["ds_init"] != null ? opener.parent.ds_init.getColumn(0,"prcpdd") : "";
  45. if(utlf_isNull(curprcpdd)) {
  46. curprcpdd = opener.objects["ds_init"] != null ? opener.ds_init.getColumn(0,"prcpdd") : "";
  47. if (utlf_isNull(curprcpdd)){
  48. curprcpdd = utlf_getCurrentDate();
  49. }
  50. }
  51. var insukind = opener.parent.ds_data_paminfo.getColumn(0,"insukind");
  52. if (utlf_isNull(insukind)) {
  53. insukind = ds_paminfo.getColumn(0,"insukind");
  54. }
  55. if (!utlf_isNull(insukind)){
  56. ds_cond.setColumn(0,"cond13", insukind ); //외래follow up
  57. }
  58. ds_cond.setColumn(0,"cond14", curprcpdd );
  59. ds_cond.setColumn(0,"cond99", "getBfPrcpSrchInfo" );//검색구분
  60. //처방정보 가져오기(퇴원처방 prcpkindcd = 60)
  61. var oParam = {};
  62. oParam.id = "TRMMO00100";
  63. oParam.service = "prcpmngtapp.PrcpMngt";
  64. oParam.method = "reqGetPrcpSrchInfo";
  65. oParam.inds = "req=ds_cond";
  66. oParam.outds = "ds_prcpsrch_prcplist=prcplist";
  67. oParam.async = false;
  68. oParam.callback = "cf_TRMMO00100";
  69. tranf_submit(oParam);
  70. if(arErrorCode.pop("TRMMO00100") > -1) {
  71. var iCols = grd_prcplist.getCellCount("Head")-1;
  72. for (var i = 0; i < ds_prcpsrch_prcplist.rowcount; i++) {
  73. if (utlf_isNull(ds_prcpsrch_prcplist.getColumn(i,"prcpclscd"))) {
  74. if (ds_cond.getColumn(0,"cond9") != "O") {
  75. ds_prcpsrch_prcplist.setColumn(i,"tempcol6", ds_prcpsrch_prcplist.getColumn(i,"tempcol6")+" / " +ds_prcpsrch_prcplist.getColumn(i,"tempcol7"));
  76. }
  77. ds_prcpsrch_prcplist.setColumn(i, "bFont", "bold");
  78. ds_prcpsrch_prcplist.setColumn(i, "bReadOnly", 0);
  79. //grd_prcplist.isReadonly(i, grd_prcplist.colRef("chkcol")) = false;
  80. //grd_prcplist.mergeByFree(i, 3, i, iCols);
  81. //grd_prcplist.rowStyle(i, "data", "font-weight") = "bold";
  82. } else {
  83. ds_prcpsrch_prcplist.setColumn(i, "bFont", "");
  84. ds_prcpsrch_prcplist.setColumn(i, "bReadOnly", 1);
  85. // grd_prcplist.isReadonly(i, grd_prcplist.colRef("chkcol")) = true;
  86. }
  87. }
  88. }
  89. }
  90. function cf_TRMMO00100(sSvcId, nErrorCode, sErrorMsg) {
  91. arErrorCode.push(sSvcId, nErrorCode);
  92. ds_prcpsrch_prcplist.addColumn("bFont", "string", 256);
  93. ds_prcpsrch_prcplist.addColumn("bReadOnly", "string", 256);
  94. }
  95. /**
  96. * 선택한 처방 내역 복사 후 창 닫기
  97. */
  98. function fCnfm() {
  99. //var pageInfo = new PAGEINFO();
  100. var prcpkind = ""; //처방종류
  101. var orgprcpnm = ""; //처방명
  102. var drugmthdspccdnm = ""; //용법
  103. var prcpdelivefact = ""; //전달사항
  104. var prcplist = "";
  105. var prcphistcd = ""; //임시,인증구분
  106. var prcpclscd = "";
  107. var tmpdrugmthdspccdnm = "";
  108. var itemCd = "0000080001"; //처방 버튼id에서 가져옴
  109. ds_prcpsrch_prcplist.filter("chkcol == 1 && !utlf_isNull(prcpkindcd) && prcphistcd != 'C' && prcphistcd != 'L' && prcphistcd != 'E'");
  110. if(ds_prcpsrch_prcplist.rowcount >= 1){
  111. for(var i = 0; i < ds_prcpsrch_prcplist.rowcount; i++)
  112. {
  113. tmpdrugmthdspccdnm = utlf_transNullToEmpty(ds_prcpsrch_prcplist.getColumn(i,"drugmthdspccdnm"));
  114. prcpkind = ds_prcpsrch_prcplist.getColumn(i,"tempcol13")
  115. orgprcpnm = utlf_transNullToEmpty(ds_prcpsrch_prcplist.getColumn(i,"tempcol6"));
  116. drugmthdspccdnm = utlf_transNullToEmpty(ds_prcpsrch_prcplist.getColumn(i,"tempcol7"));
  117. prcpclscd = ds_prcpsrch_prcplist.getColumn(i,"prcpclscd");
  118. //2012.06.08 처방 가져오기 개인 설정 조회 엄영만
  119. //fGetUserEnvOcsOrdAnsw("/root/send/reqdata", "/root/envinit/getprcpcnt", "033");
  120. ds_envinit.copyData(emr_getOrderBaseInfo("envinfo"));
  121. var getprcpcnt = ds_envinit.lookup("qestcd", '033', "answcnt");
  122. switch(getprcpcnt)
  123. {
  124. case "001" : // 기본값 용법 삭제
  125. drugmthdspccdnm = drugmthdspccdnm.replace(tmpdrugmthdspccdnm, "");
  126. break;
  127. case "002" : // 약품처방 용법표시
  128. if (prcpclscd != "A2" && prcpclscd != "A4" && prcpclscd != "A6") {
  129. drugmthdspccdnm = drugmthdspccdnm.replace(tmpdrugmthdspccdnm, "");
  130. }
  131. break;
  132. default:
  133. drugmthdspccdnm = drugmthdspccdnm.replace(tmpdrugmthdspccdnm, "");
  134. break;
  135. }
  136. drugmthdspccdnm = drugmthdspccdnm.replace(/\[급\]|\[일\]|\[본\]|\(집\)|\[home\]|\[임상\]|\[prn\]/g, "");
  137. prcpdelivefact = ds_prcpsrch_prcplist.getColumn(i,"prcpdelivefact");
  138. prcphistcd = ds_prcpsrch_prcplist.getColumn(i,"prcphistcd");
  139. if(prcphistcd == "T") {
  140. if (prcpclscd == "A2" || prcpclscd == "A4" || prcpclscd == "A6") {
  141. prcplist += "[임] " + orgprcpnm + " " + drugmthdspccdnm + "\n";
  142. } else {
  143. prcplist += "[임] " + orgprcpnm + "\n";
  144. }
  145. } else {
  146. if (prcpclscd == "A2" || prcpclscd == "A4" || prcpclscd == "A6") {
  147. prcplist += orgprcpnm + " " + drugmthdspccdnm + " " + "\n";
  148. }
  149. else {
  150. prcplist += orgprcpnm + "\n";
  151. }
  152. }
  153. }
  154. }
  155. var nFindRow = opener.ds_data_recitem.findRow("fstlevlitemcd", itemCd);
  156. var prerec = opener.ds_data_recitem.getColumn(nFindRow, "reccnts");
  157. if (!utlf_isNull(prerec)) {
  158. prerec = prerec + "\n" + prcplist + "\n";
  159. }
  160. else {
  161. prerec = prcplist + "\n";
  162. }
  163. dsf_createDsRow("ds_cond_TRMMR00301", [{col:"pid", type:"string", size:"256", val:ds_cond.getColumn(0, "cond1")}]);
  164. dsf_createDs("ds_data_resvlist", [{col:"pid", type:"string", size:"256"}
  165. , {col:"orddd", type:"string", size:"256"}
  166. , {col:"cretno", type:"DECIMAL", size:"256"}
  167. , {col:"ordtm", type:"string", size:"256"}
  168. , {col:"orddeptcd", type:"string", size:"256"}
  169. , {col:"orddeptnm", type:"string", size:"256"}
  170. , {col:"orddrid", type:"string", size:"256"}
  171. , {col:"orddrnm", type:"string", size:"256"}
  172. , {col:"dutdeptcd", type:"string", size:"256"}]);
  173. var oParam = {};
  174. oParam.id = "TRMMR00301";
  175. oParam.service = "medirecapp.ComnMediRec";
  176. oParam.method = "reqGetResvList";
  177. oParam.inds = "req=ds_cond_TRMMR00301";
  178. oParam.outds = "ds_data_resvlist=resvlist";
  179. oParam.async = false;
  180. oParam.callback = "cf_TRMMR00301";
  181. tranf_submit(oParam);
  182. if (arErrorCode.pop("TRMMR00301") > -1) {
  183. var resvinfo;
  184. if (ds_data_resvlist.rowcount > 0) {
  185. resvinfo = "진료예약 : ";
  186. var orddd = "";
  187. var ordtm = "";
  188. var orddeptnm = "";
  189. var orddrnm = "";
  190. for (var i = 0; i < ds_data_resvlist.rowcount; i++) {
  191. var orddd = utlf_transNullToEmpty(ds_data_resvlist.getColumn(i, "orddd"));
  192. var ordtm = utlf_transNullToEmpty(ds_data_resvlist.getColumn(i, "ordtm"));
  193. var orddeptnm = utlf_transNullToEmpty(ds_data_resvlist.getColumn(i, "orddeptnm"));
  194. var orddrnm = utlf_transNullToEmpty(ds_data_resvlist.getColumn(i, "orddrnm"));
  195. if (i == 1) {
  196. resvinfo += orddd.substr(0, 4) + "-" + orddd.substr(4, 2) + "-"
  197. + orddd.substr(6, 2) + " " + ordtm.substr(0, 2) + ":"
  198. + ordtm.substr(2, 2) + ", 진료과 : " + orddeptnm + ", 진료의 : " + orddrnm + "\n";
  199. } else {
  200. resvinfo += " " + orddd.substr(0, 4) + "-" + orddd.substr(4, 2) + "-"
  201. + orddd.substr(6, 2) + " " + ordtm.substr(0, 2) + ":"
  202. + ordtm.substr(2, 2) + ", 진료과 : " + orddeptnm + ", 진료의 : " + orddrnm + "\n";
  203. }
  204. }
  205. } else {
  206. resvinfo = "";
  207. }
  208. }
  209. if (!utlf_isNull(resvinfo)) {
  210. prerec += resvinfo;
  211. }
  212. //opener.model.setValue(pageInfo.recItemRef + "[fstlevlitemcd='" + itemCd + "']/reccnts", prerec);
  213. if(!utlf_isNull(prerec))
  214. {
  215. var objTextArea = opener.ComnFormObj.components["tar_" + itemCd];
  216. var objDivArea = opener.ComnFormObj.components["ivw_" + itemCd];
  217. /*
  218. if(!utlf_isNull(objDivArea.url)) // careplan에 세팅
  219. {
  220. var arrTmp = prerec.split("\n");
  221. var grdObj = objDivArea.ds_grid_grd_diaglist;
  222. var nRow = grdObj.rowcount;
  223. var nNewRow;
  224. for(var k = 0; k < arrTmp.length; k++)
  225. {
  226. if(!utlf_isNull(arrTmp[k])) // 처방내역이 있으면
  227. {
  228. if(utlf_isNull(grdObj.getColumn(nRow - 1, "reccnts4")))
  229. {
  230. nNewRow = nRow - 1;
  231. }
  232. else
  233. {
  234. nNewRow = grdObj.addRow();
  235. objDivArea.lf_addRecItemOne(nNewRow); // recitem row 추가
  236. }
  237. grdObj.setColumn(nNewRow, "reccnts4", arrTmp[k]);
  238. }
  239. }
  240. }
  241. else
  242. {
  243. */
  244. if(nFindRow == -1)
  245. {
  246. var nTmpPrntRow = opener.ds_temp_mainrecitem.findRowExpr("fstlevlitemcd == '" + itemCd + "' && degnitemlevlno == '1' && degnitemkind == 'MTX'");
  247. if(nTmpPrntRow != -1)
  248. {
  249. nFindRow = opener.ds_data_recitem.addRow();
  250. opener.ds_data_recitem.copyRow(opener.ds_data_recitem.rowcount - 1, opener.ds_temp_mainrecitem, nTmpPrntRow);
  251. }
  252. }
  253. opener.ds_data_recitem.setColumn(nFindRow, "reccnts", prerec);
  254. objTextArea.value = prerec;
  255. //}
  256. }
  257. this.close();
  258. }
  259. function cf_TRMMR00301(sSvcId, nErrorCode, sErrorMsg) {
  260. arErrorCode.push(sSvcId, nErrorCode);
  261. }
  262. /**
  263. * 창 닫기
  264. */
  265. function fCncl() {
  266. this.close();
  267. }]]></Script>