MMR05900.xjs 9.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <Script type="xscript4.0"><![CDATA[/*
  3. - ▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩
  4. 마취환자기록 ( SSMMR05900_마취환자기록처방목록.xrw - JScript )
  5. - Version :
  6. 1) : Ver.1.00.01 2008-06-23
  7. - ▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩
  8. */
  9. /**
  10. * @desc : 폼초기화
  11. * @
  12. * @param :
  13. * @return :
  14. * @---------------------------------------------------
  15. */
  16. function fFormInit(send_anstrecno, nOpcnfmdd)
  17. {
  18. anstrecno = send_anstrecno;
  19. ds_anstprcp_item.clearData();
  20. ds_anstprcp_item.addRow();
  21. //ds_anstitem.clearData();
  22. //ds_anstitem.addRow();
  23. ds_send_req.clearData();
  24. ds_send_req.addRow();
  25. // 용법조회 (주사약)
  26. ds_send_req.setColumn(0,"cond1" , "I");
  27. ds_send_req.setColumn(0,"cond2" , 1);
  28. ds_send_req.setColumn(0,"cond3" , "");
  29. dsf_setTypeFormat(ds_send_req, "cond2:INT");
  30. var oParam = {};
  31. oParam.id = "TRMMR03710";
  32. oParam.service = "anstrecapp.AnstRec";
  33. oParam.method = "reqGetTmedTthdInfo";
  34. oParam.inds = "req=ds_send_req";
  35. oParam.outds = "ds_hidden_tmedmthdlist=tmedmthdlist";
  36. oParam.async = false;
  37. oParam.callback = "cf_TRMMR03710";
  38. tranf_submit(oParam);
  39. // 2016.09.30 현재 시점에서 작성 시점으로 변경
  40. var currentdate = utlf_getCurrentDate() + utlf_getCurrentTime();
  41. if( !utlf_isNull(nOpcnfmdd) )
  42. currentdate = nOpcnfmdd;
  43. ds_send_reqdata.setColumn(0,"currentdate", currentdate);
  44. if (anstrecno != "0") {
  45. // 마취기록번호
  46. ds_send_reqdata.setColumn(0,"anstrecno", anstrecno);
  47. // 마취환자 처방 조회
  48. dsf_setTypeFormat(ds_send_reqdata, "anstrecno:INT");
  49. var oParam = {};
  50. oParam.id = "TRMMR03705";
  51. oParam.service = "anstrecapp.AnstRec";
  52. oParam.method = "reqGetAnstPrcp";
  53. oParam.inds = "reqdata=ds_send_reqdata";
  54. oParam.outds = "ds_anstprcp_item=item";
  55. oParam.async = false;
  56. oParam.callback = "cf_TRMMR03705";
  57. tranf_submit(oParam);
  58. // 마취환자 처방 투여일시 조회
  59. var oParam = {};
  60. oParam.id = "TRMMR03708";
  61. oParam.service = "anstrecapp.AnstRec";
  62. oParam.method = "reqGetAnstDrugDt";
  63. oParam.inds = "reqdata=ds_send_reqdata";
  64. oParam.outds = "ds_anstitem=item";
  65. oParam.async = false;
  66. oParam.callback = "cf_TRMMR03708";
  67. tranf_submit(oParam);
  68. }
  69. }
  70. function cf_TRMMR03710(sSvcId, nErrorCode, sErrorMsg) {
  71. if(nErrorCode < 0) return;
  72. }
  73. function cf_TRMMR03705(sSvcId, nErrorCode, sErrorMsg) {
  74. if(nErrorCode < 0) return;
  75. dsf_setTypeFormat(ds_anstprcp_item, "prcpseqno:INT");
  76. ds_anstprcp_item.addColumn("drugfromdd","string");
  77. ds_anstprcp_item.addColumn("drugfromtm","string");
  78. ds_anstprcp_item.addColumn("drugtodd","string");
  79. ds_anstprcp_item.addColumn("drugtotm","string");
  80. }
  81. function cf_TRMMR03708(sSvcId, nErrorCode, sErrorMsg) {
  82. if(nErrorCode < 0) return;
  83. dsf_setTypeFormat(ds_anstitem, "linkseqno:INT");
  84. }
  85. /**
  86. * @---------------------------------------------------
  87. * @desc : 마취환자 CDIS처방 투여일시 조회
  88. * @---------------------------------------------------
  89. */
  90. function searchAnstCdisItem(ps_anstrecno, ps_anstfromdt)
  91. {
  92. ds_send_reqdata.setColumn(0, "anstrecno", ps_anstrecno);
  93. ds_send_reqdata.setColumn(0, "anstfromdt", ps_anstfromdt);
  94. var oParam = {};
  95. oParam.id = "TRMMR03719";
  96. oParam.service = "anstrecapp.AnstRec";
  97. oParam.method = "reqGetAnstCdisDrugDt";
  98. oParam.inds = "reqdata=ds_send_reqdata";
  99. oParam.outds = "ds_anstitem=item";
  100. oParam.async = false;
  101. //oParam.callback = "cf_TRMMR03719";
  102. tranf_submit(oParam);
  103. }
  104. // /**
  105. // * @desc : 마우스 오른쪽 버튼 팝업창
  106. // * @
  107. // * @param :
  108. // * @return :
  109. // * @---------------------------------------------------
  110. // *
  111. // */
  112. // function fMouseRghtBtnPopup(gridObj, job)
  113. // {
  114. // if (event.button == 3) {
  115. // if (gridObj.isCell(event.target)) {
  116. // if (job == "prcp") {
  117. // // 전체 처방 목록에서 우클릭시 삭제 팝업
  118. // if (gridObj.row > 0) {
  119. // window.setPopupMenu(true, "/root/hidden/menu6/menu", "label", "func", false);
  120. // } else {
  121. // window.setPopupMenu(false);
  122. // }
  123. // } else {
  124. // window.setPopupMenu(false);
  125. // }
  126. // } else {
  127. // window.setPopupMenu(false);
  128. // }
  129. // } else {
  130. // window.setPopupMenu(false);
  131. // }
  132. // }
  133. /**
  134. * @desc : 전체 처방 목록 삭제 메뉴 클릭시 처방목록에서 삭제하고 메인 그리드에서 삭제한다.
  135. * @
  136. * @param :
  137. * @return :
  138. * @---------------------------------------------------
  139. */
  140. function fDelPrcpList()
  141. {
  142. var gridObj = grd_anstprcp;
  143. //var ref = "/root/main/anstprcp/item";
  144. var prcptype = ds_anstprcp_item.getColumn(ds_anstprcp_item.rowposition,"prcptype");
  145. var prcpcd = ds_anstprcp_item.getColumn(ds_anstprcp_item.rowposition,"prcpcd");
  146. // 2008.09.23. 2개이상 처방코드 추가 기록하기.. (fluid일때)
  147. var prcpseqno= ds_anstprcp_item.getColumn(ds_anstprcp_item.rowposition,"prcpseqno");
  148. // 전체 처방 목록에 삭제시 Agent 마스터 그리드 선택 취소 후 인스턴스 삭제처리함.
  149. fCheckedAnstPrcpA01();
  150. // 투여일시 인스턴스도 삭제
  151. fDestroyAnstItem(prcpcd, prcpseqno);
  152. // 메인 그리드의 처방코드 삭제
  153. fDeleteRow(prcptype, prcpcd, prcpseqno);
  154. // 처방목록에 처방코드가 있는가? del
  155. ds_anstprcp_item.deleteRow(ds_anstprcp_item.rowposition);
  156. }
  157. /**
  158. * @desc : 마취기록 메인 그리드에서 항목 로우 삭제하기...
  159. * @
  160. * @param :
  161. * @return :
  162. * @---------------------------------------------------
  163. */
  164. function fDeleteRow(linktype, linkcd, linkseqno)
  165. {
  166. // 처방 항목 delete..
  167. for (var k = 0 ; k < parent.parent.parent.parent.ds_grd_main.rowcount ; k++)
  168. {
  169. var grd_linktype = parent.parent.parent.parent.ds_grd_main.getColumn(k, parent.parent.parent.parent.col_linktype);
  170. var grd_linkcd = parent.parent.parent.parent.ds_grd_main.getColumn(k, parent.parent.parent.parent.col_linkcd);
  171. // 2008.09.23. 2개이상 처방코드 추가 기록하기.. (fluid일때)
  172. var grd_linkseqno= parent.parent.parent.parent.ds_grd_main.getColumn(k, parent.parent.parent.parent.col_linkseqno);
  173. if (grd_linktype == linktype && grd_linkcd == linkcd && grd_linkseqno == linkseqno) {
  174. parent.parent.parent.parent.ds_grd_main.deleteRow(k);
  175. break;
  176. }
  177. }
  178. }
  179. /**
  180. * @desc : 전체 처방 목록에 삭제시 Agent 마스터 그리드 선택 취소
  181. * @ - Agent 의 소분류 01 (Inhalational Agent)
  182. * @param :
  183. * @
  184. * @return :
  185. * @author :
  186. * @---------------------------------------------------
  187. */
  188. function fCheckedAnstPrcpA01()
  189. {
  190. var prcptype = ds_anstprcp_item.getColumn(ds_anstprcp_item.rowposition,"prcptype");
  191. var clscd = ds_anstprcp_item.getColumn(ds_anstprcp_item.rowposition,"clscd");
  192. var prcpcd = ds_anstprcp_item.getColumn(ds_anstprcp_item.rowposition,"prcpcd");
  193. var prcpappyn = ds_anstprcp_item.getColumn(ds_anstprcp_item.rowposition,"prcpappyn");
  194. // Agent 의 소분류 01 (Inhalational Agent)
  195. if (prcptype == "A" && clscd == "01" && prcpappyn == "N") {
  196. // 노드 갯수를 가져오기
  197. var dataCnt = parent.parent.parent.parent.grp_base.sw_left.case_anstmast.iv_anstmast.ds_agent01_item.rowcount;
  198. // 처방목록에 처방코드가 있는가? 삭제
  199. for (var j=0 ; j < dataCnt ; j++) {
  200. var tmpprcpcd = parent.parent.parent.parent.grp_base.sw_left.case_anstmast.iv_anstmast.ds_agent01_item.getColumn(j,"prcpcd");
  201. if (tmpprcpcd == prcpcd) {
  202. // Agent 의 소분류 01 (Inhalational Agent) 선택 취소
  203. parent.parent.parent.parent.grp_base.sw_left.case_anstmast.iv_anstmast.ds_agent01_item.setColumn(j,"checked", "false");
  204. break;
  205. }
  206. }
  207. }
  208. // Agent 의 소분류 01 (Inhalational Agent)
  209. if (prcptype == "A" && clscd == "01" && prcpappyn == "Y") {
  210. // 처방목록 노드
  211. // 노드 갯수를 가져오기
  212. var dataCnt = parent.parent.parent.parent.grp_base.sw_left.case_anstmast.iv_anstmast.ds_agent01y_item.rowcount;
  213. // 처방목록에 처방코드가 있는가? 삭제
  214. for (var j=0 ; j < dataCnt ; j++) {
  215. var tmpprcpcd = parent.parent.parent.parent.grp_base.sw_left.case_anstmast.iv_anstmast.ds_agent01y_item.getColumn(j,"prcpcd");
  216. if (tmpprcpcd == prcpcd) {
  217. // Agent 의 소분류 01 (Inhalational Agent) 선택 취소
  218. parent.parent.parent.parent.grp_base.sw_left.case_anstmast.iv_anstmast.ds_agent01y_item.setColumn(j,"checked", "false");
  219. break;
  220. }
  221. }
  222. }
  223. }
  224. /**
  225. * @desc : 전체 처방 목록에서 삭제되면 같은 처방코드의 투여일시 인스턴스도 삭제한다.
  226. * @
  227. * @param :
  228. * @return :
  229. * @---------------------------------------------------
  230. */
  231. function fDestroyAnstItem(linkcd, linkseqno)
  232. {
  233. var dataCnt = ds_anstitem.rowcount;
  234. for (var i=0 ; i < dataCnt ; i++) {
  235. // 2008.09.23. 2개이상 처방코드 추가 기록하기.. (fluid일때)
  236. var tmplinkcd = ds_anstitem.getColumn(i,"linkcd");
  237. var tmplinkseqno = ds_anstitem.getColumn(i,"linkseqno");
  238. if (tmplinkcd == linkcd && tmplinkseqno == linkseqno) {
  239. // 처방코드가 같은가? del
  240. ds_anstitem.deleteRow(i);
  241. var linktype = ds_anstitem.getColumn(i,"linktype");
  242. // 데이타셋..
  243. dataCnt = dataCnt - 1;
  244. i = i - 1;
  245. }
  246. }
  247. }
  248. /**
  249. * @desc : 처방목록 그리드에 보여주기...
  250. * @param :
  251. * @
  252. * @return :
  253. * @author :
  254. * @---------------------------------------------------
  255. */
  256. function fSetAnstPrcp()
  257. {
  258. dsf_setTypeFormat(ds_anstprcp_item, "sortno:BIGDECIMAL");
  259. ds_anstprcp_item.keystring = "";
  260. ds_anstprcp_item.keystring = "S:+prcptype+sortno+prcpnm+prcpseqno";
  261. }
  262. ]]></Script>