MMR05900.js 8.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287
  1. /*
  2. - ▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩
  3. 마취환자기록 ( SSMMR05900_마취환자기록처방목록.xrw - JScript )
  4. - Version :
  5. 1) : Ver.1.00.01 2008-06-23
  6. - ▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩
  7. */
  8. /**
  9. 수술환자 parameter 구조 : mmohoprs수술예약정보 tbl의 정보를 기본으로 함
  10. var param = 구분자'T' + "▦" +
  11. 등록번호 :=pid + "▦" +
  12. 수술확정일자 :=opcnfmdd + "▦" +
  13. (생성번호) :=cretno + "▦" +
  14. 기관코드 :=instcd + "▦" +
  15. 집도과코드 :=perfdeptcd + "▦" +
  16. 집도의 :=perfdrid + "▦" +
  17. 환자구분 :=patflag + "▦" + ==> 외래(I), 입원(O), DSC(D), 응급(E)
  18. 처리구분'F' + "▦" +
  19. 수술예약번호 :=oprsrvno + "▦" +
  20. 수술이력번호 :=ophistno + "▦" +
  21. 조회일자;
  22. */
  23. /**
  24. * @desc : 폼초기화
  25. * @
  26. * @param :
  27. * @return :
  28. * @---------------------------------------------------
  29. */
  30. function fFormInit(send_anstrecno, nOpcnfmdd)
  31. {
  32. anstrecno = send_anstrecno;
  33. // 용법조회 (주사약)
  34. model.setValue ( "/root/send/req/cond1" , "I");
  35. model.setValue ( "/root/send/req/cond2" , 1);
  36. model.setValue ( "/root/send/req/cond3" , "");
  37. submit("TRMMR03710");
  38. // 2016.09.30 현재 시점에서 작성 시점으로 변경
  39. var currentdate = getCurrentDate() + getCurrentTime();
  40. if( nOpcnfmdd != "" ){
  41. currentdate = nOpcnfmdd;
  42. }
  43. model.setValue("/root/send/reqdata/currentdate", currentdate);
  44. if (anstrecno != "0") {
  45. // 마취기록번호
  46. model.setValue("/root/send/reqdata/anstrecno", anstrecno);
  47. // 마취환자 처방 조회
  48. submit("TRMMR03705");
  49. // 마취환자 처방 투여일시 조회
  50. submit("TRMMR03708");
  51. }
  52. }
  53. /**
  54. * @---------------------------------------------------
  55. * @creat : 20110418
  56. * @author : 최원돈
  57. * @desc : 마취환자 CDIS처방 투여일시 조회
  58. * @---------------------------------------------------
  59. */
  60. function searchAnstCdisItem(ps_anstrecno, ps_anstfromdt)
  61. {
  62. model.setValue("/root/send/reqdata/anstrecno", ps_anstrecno);
  63. model.setValue("/root/send/reqdata/anstfromdt", ps_anstfromdt);
  64. submit("TRMMR03719");
  65. }
  66. /**
  67. * @desc : 마우스 오른쪽 버튼 팝업창
  68. * @
  69. * @param :
  70. * @return :
  71. * @---------------------------------------------------
  72. *
  73. */
  74. function fMouseRghtBtnPopup(gridObj, job)
  75. {
  76. if (event.button == 3) {
  77. if (gridObj.isCell(event.target)) {
  78. if (job == "prcp") {
  79. // 전체 처방 목록에서 우클릭시 삭제 팝업
  80. if (gridObj.row > 0) {
  81. window.setPopupMenu(true, "/root/hidden/menu6/menu", "label", "func", false);
  82. } else {
  83. window.setPopupMenu(false);
  84. }
  85. } else {
  86. window.setPopupMenu(false);
  87. }
  88. } else {
  89. window.setPopupMenu(false);
  90. }
  91. } else {
  92. window.setPopupMenu(false);
  93. }
  94. }
  95. /**
  96. * @desc : 전체 처방 목록 삭제 메뉴 클릭시 처방목록에서 삭제하고 메인 그리드에서 삭제한다.
  97. * @
  98. * @param :
  99. * @return :
  100. * @---------------------------------------------------
  101. */
  102. function fDelPrcpList()
  103. {
  104. var gridObj = grd_anstprcp;
  105. var ref = "/root/main/anstprcp/item";
  106. if (gridObj.row > 0 && gridObj.row < gridObj.rows)
  107. {
  108. var prcptype = model.getValue(ref+"["+ gridObj.row +"]/prcptype");
  109. var prcpcd = model.getValue(ref+"["+ gridObj.row +"]/prcpcd");
  110. // 2008.09.23. 2개이상 처방코드 추가 기록하기.. (fluid일때)
  111. var prcpseqno= model.getValue(ref+"["+ gridObj.row +"]/prcpseqno");
  112. // 전체 처방 목록에 삭제시 Agent 마스터 그리드 선택 취소 후 인스턴스 삭제처리함.
  113. fCheckedAnstPrcpA01(gridObj, ref, gridObj.row);
  114. // 투여일시 인스턴스도 삭제
  115. fDestroyAnstItem("root/main/anstitem/item", prcpcd, prcpseqno);
  116. // 메인 그리드의 처방코드 삭제
  117. fDeleteRow(prcptype, prcpcd, prcpseqno);
  118. // 처방목록에 처방코드가 있는가? del
  119. model.destroy(ref+"["+ gridObj.row +"]");
  120. model.refresh();
  121. }
  122. }
  123. /**
  124. * @desc : 마취기록 메인 그리드에서 항목 로우 삭제하기...
  125. * @
  126. * @param :
  127. * @return :
  128. * @---------------------------------------------------
  129. */
  130. function fDeleteRow(linktype, linkcd, linkseqno)
  131. {
  132. // 처방 항목 delete..
  133. for (var k = 5 ; k < window.parent.grd_main.rows ; k++)
  134. {
  135. var grd_linktype = window.parent.grd_main.textMatrix(k, window.parent.javascript.col_linktype);
  136. var grd_linkcd = window.parent.grd_main.textMatrix(k, window.parent.javascript.col_linkcd);
  137. // 2008.09.23. 2개이상 처방코드 추가 기록하기.. (fluid일때)
  138. var grd_linkseqno= window.parent.grd_main.textMatrix(k, window.parent.javascript.col_linkseqno);
  139. if (grd_linktype == linktype && grd_linkcd == linkcd && grd_linkseqno == linkseqno) {
  140. window.parent.grd_main.deleteRow(k);
  141. break;
  142. }
  143. }
  144. }
  145. /**
  146. * @desc : 전체 처방 목록에 삭제시 Agent 마스터 그리드 선택 취소
  147. * @ - Agent 의 소분류 01 (Inhalational Agent)
  148. * @param :
  149. * @
  150. * @return :
  151. * @author :
  152. * @---------------------------------------------------
  153. */
  154. function fCheckedAnstPrcpA01(gridObj, ref, row)
  155. {
  156. var prcptype = model.getValue(ref+"[" + row + "]/prcptype");
  157. var clscd = model.getValue(ref+"[" + row + "]/clscd");
  158. var prcpcd = model.getValue(ref+"[" + row + "]/prcpcd");
  159. var prcpappyn = model.getValue(ref+"[" + row + "]/prcpappyn");
  160. // Agent 의 소분류 01 (Inhalational Agent)
  161. if (prcptype == "A" && clscd == "01" && prcpappyn == "N") {
  162. // 처방목록 노드
  163. var CheckRef = "/root/main/agent01/item";
  164. // 노드 갯수를 가져오기
  165. var dataCnt = getNodesetCnt(window.parent.iv_anstmast.model, CheckRef);
  166. // 처방목록에 처방코드가 있는가? 삭제
  167. for (var j=1 ; j <= dataCnt ; j++) {
  168. var tmpprcpcd = window.parent.iv_anstmast.model.getValue(CheckRef+"[" + j + "]/prcpcd");
  169. if (tmpprcpcd == prcpcd) {
  170. // Agent 의 소분류 01 (Inhalational Agent) 선택 취소
  171. window.parent.iv_anstmast.model.setValue(CheckRef+"[" + j + "]/checked", "false");
  172. window.parent.iv_anstmast.model.refresh();
  173. break;
  174. }
  175. }
  176. }
  177. // Agent 의 소분류 01 (Inhalational Agent)
  178. if (prcptype == "A" && clscd == "01" && prcpappyn == "Y") {
  179. // 처방목록 노드
  180. var CheckRef = "/root/main/agent01y/item";
  181. // 노드 갯수를 가져오기
  182. var dataCnt = getNodesetCnt(window.parent.iv_anstmast.model, CheckRef);
  183. // 처방목록에 처방코드가 있는가? 삭제
  184. for (var j=1 ; j <= dataCnt ; j++) {
  185. var tmpprcpcd = window.parent.iv_anstmast.model.getValue(CheckRef+"[" + j + "]/prcpcd");
  186. if (tmpprcpcd == prcpcd) {
  187. // Agent 의 소분류 01 (Inhalational Agent) 선택 취소
  188. window.parent.iv_anstmast.model.setValue(CheckRef+"[" + j + "]/checked", "false");
  189. window.parent.iv_anstmast.model.refresh();
  190. break;
  191. }
  192. }
  193. }
  194. }
  195. /**
  196. * @desc : 전체 처방 목록에서 삭제되면 같은 처방코드의 투여일시 인스턴스도 삭제한다.
  197. * @
  198. * @param :
  199. * @return :
  200. * @---------------------------------------------------
  201. */
  202. function fDestroyAnstItem(ref, linkcd, linkseqno)
  203. {
  204. var dataCnt = getNodesetCnt(model, ref);
  205. for (var i=1 ; i <= dataCnt ; i++) {
  206. // 2008.09.23. 2개이상 처방코드 추가 기록하기.. (fluid일때)
  207. var tmplinkcd = model.getValue(ref+"["+ i +"]/linkcd");
  208. var tmplinkseqno = model.getValue(ref+"["+ i +"]/linkseqno");
  209. if (tmplinkcd == linkcd && tmplinkseqno == linkseqno) {
  210. // 처방코드가 같은가? del
  211. model.destroy(ref+"["+ i +"]");
  212. var linktype = model.getValue(ref+"["+ i +"]/linktype");
  213. // 데이타셋..
  214. dataCnt = dataCnt - 1;
  215. i = i - 1;
  216. }
  217. }
  218. model.refresh();
  219. }
  220. /**
  221. * @desc : 처방목록 그리드에 보여주기...
  222. * @param :
  223. * @
  224. * @return :
  225. * @author :
  226. * @---------------------------------------------------
  227. */
  228. function fSetAnstPrcp()
  229. {
  230. var gridObj = grd_anstprcp;
  231. var colRef1 = "prcptype"; //구분
  232. var colRef2 = "sortno"; //sortno
  233. var colRef3 = "prcpnm"; //처방명
  234. var colRef4 = "prcpseqno"; //prcpseqno
  235. gridObj.colsort(gridObj.colRef(colRef1)) = "asc";
  236. gridObj.colsort(gridObj.colRef(colRef2)) = "asc";
  237. gridObj.colsort(gridObj.colRef(colRef3)) = "asc";
  238. gridObj.colsort(gridObj.colRef(colRef4)) = "asc";
  239. gridObj.sort(1, 0, gridObj.rows - 1, gridObj.cols - 1) = "usersort";
  240. gridObj.refresh();
  241. gridObj.gridToInstance();
  242. model.refresh();
  243. }