SPMNP01802.js 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284
  1. /* ---------------------------------------------------------------------
  2. SPMNP01801_수술마취약속처방조회IMPORT.xrw (SMMNP01801.xfm - JScript )
  3. - Version :
  4. 1) : Ver.1.00.01
  5. : Create By Francis Choi
  6. : 2015.05.02
  7. ---------------------------------------------------------------------- */
  8. // var AloneFlag = "Y"; // 단독실행여부
  9. // Global Main Path
  10. var gPathCart = "/root/main/MnphcagoLists" + " " // 0 Cart물품
  11. + "/root/main/MnpmcartList" + " " // 1 CartCode
  12. + "/root/main/MmbhppdsLists" + " " // 2 처치처방
  13. + "/root/init/Wk1802/DelMnphcagoListss" + " " // 3 삭제Cart물품
  14. + "/root/init/Wk1802/codelists" + " " // 4 Save Cart Master
  15. + "/root/init/Wk1802/MnphcagoLists" + " " // 5 Save 물품 내역
  16. + "/root/main/MmohoprsLists/mmohoprslist" + " " // 6 예약정보 Path
  17. + "/root/main/operation/list" + " " // 7 수술예약 상단정보
  18. + "/root/main/CartOrdData" ; // 8 Cart Order Display Data Instance Path
  19. var gCartPath = gPathCart.split(" ");
  20. // CCDS Display Instance Path
  21. var tPathName = "/orddeptcd" + " " // 0 진료과
  22. + "/perfid" + " " // 1 집도의
  23. + "/ccrtno" + " " // 2 Cart코드
  24. + "/cp_orddeptcd" + " " // 3 진료과
  25. + "/cp_perfid" + " " // 4 집도의
  26. + "/cp_ccrtno" ; // 5 Cart코드
  27. var tPathNode = tPathName.split(" "); //gPathNode[1]+tPathNode
  28. // CCDS Clear Path
  29. var PathClearNm = "/root/main/MnpmcartList/orddeptcd/codelist" + " " // 0 진료과
  30. + "/root/main/MnpmcartList/perfid/codelist" + " " // 1 집도의
  31. + "/root/main/MnpmcartList/ccrtno/codelist" + " " // 2 Cart코드
  32. + "/root/main/MnphcagoLists/mnphcagolist" + " " // 3 물품
  33. + "/root/main/MnpmcartList/cp_orddeptcd/codelist" + " " // 4 진료과
  34. + "/root/main/MnpmcartList/cp_perfid/codelist" + " " // 5 집도의
  35. + "/root/main/MnpmcartList/cp_ccrtno/codelist" + " " // 6 Cart코드
  36. + "/root/main/CMnphcagoLists/mnphcagolist" + " " // 7 물품
  37. + "/root/init/Wk1802/scond/ccrtno" ; // 8 Cart코드
  38. var PathClear = PathClearNm.split(" ");
  39. // Refresh Document Id
  40. var wRefreshDoc = "cmb_orddept" + " " // 0 진료과
  41. + "grd_perfid" + " " // 1 집도의
  42. + "grd_ccrtno" + " " // 2 Cart코드
  43. + "grd_good" + " " // 3 물품
  44. + "cmb_cp_orddept" + " " // 4 진료과
  45. + "cmb_cp_ccrtno" + " " // 5 Cart코드
  46. + "cmb_cp_perfdr" + " " // 6 집도의
  47. + "grd_cgood" ; // 7 물품
  48. var wRefresh = wRefreshDoc.split(" ");
  49. var sOproomcd = ""; // 환자의 수술방코드
  50. var sCartgubn = "";
  51. // --------------------------------------------------
  52. // 화면 Loading시 처리하는 함수
  53. // 약속처방 Tree정보 가져오기
  54. // --------------------------------------------------
  55. function fInit1802() {
  56. sOproomcd = opener.javascript.getParameter("SPMNP01802_oproomcd");
  57. opener.javascript.setParameter("SPMNP01802_oproomcd","");
  58. sCartgubn = opener.javascript.getParameter("SPMNP01802_cartgubn");
  59. opener.javascript.setParameter("SPMNP01601_cartgubn", "");
  60. sInsuKind = opener.javascript.getParameter("SPMNP01802_insukindcd");
  61. opener.javascript.setParameter("SPMNP01802_insukindcd", "");
  62. model.setValue("/root/hidden/cartgubn", sCartgubn);
  63. model.setValue("/root/init/Wk1802/cond/insukind", sInsuKind);
  64. grd_good.fixedcellcheckbox(0,0) = true;
  65. model.removenode("/root/send");
  66. model.makeValue("/root/send/reqdata/cdgrupid", "106");//병원별 Display 여부
  67. model.makeValue("/root/send/reqdata/supcdid", "");//서브구분
  68. model.makeValue("/root/send/reqdata/cdid", "");//서브구분
  69. submit("TRMNP04903", false);
  70. //20101229_KNUH_Start
  71. model.makeValue("/root/send/reqdata/cdgrupid", "OP");
  72. submit("TRMND03901");
  73. model.makeNode("/root/init/basecodeinfo");
  74. model.copynode("/root/init/basecodeinfo", "/root/main/baseinfo");
  75. model.setValue(cmb_grupcd.attribute("ref"), "02");
  76. cmb_grupcd.refresh();
  77. //20101229_KNUH_End
  78. model.setValue("/root/init/Wk1802/cond/payflagcd", model.getValue("/root/init/hardcodeinfo/cdid").substr(6, 1));
  79. if( model.getValue("/root/init/hardcodeinfo/cdid").substr(6, 1) == "Y" ) {//급비컬럼
  80. grd_good.colWidth(grd_good.colRef("goodengnm")) = "190";
  81. grd_good.colWidth(grd_good.colRef("goodspec")) = "80";
  82. grd_good.colWidth(grd_good.colRef("goodmodel")) = "75";
  83. grd_good.colWidth(grd_good.colRef("makernm")) = "75";
  84. grd_good.colWidth(grd_good.colRef("prcpunit")) = "45";
  85. grd_good.colWidth(grd_good.colRef("payflagcd")) = "45";
  86. grd_good.colWidth(grd_good.colRef("goodqty")) = "40";
  87. }else {
  88. grd_good.colWidth(grd_good.colRef("goodengnm")) = "200";
  89. grd_good.colWidth(grd_good.colRef("goodspec")) = "90";
  90. grd_good.colWidth(grd_good.colRef("goodmodel")) = "85";
  91. grd_good.colWidth(grd_good.colRef("makernm")) = "80";
  92. grd_good.colWidth(grd_good.colRef("prcpunit")) = "50";
  93. grd_good.colWidth(grd_good.colRef("payflagcd")) = "0";
  94. grd_good.colWidth(grd_good.colRef("goodqty")) = "40";
  95. }
  96. fMnpmcartData_Read( 0 , grd_orddept); // Cart정보 가져오기
  97. }
  98. /* ------------------------------------------------- */
  99. /* SMMNP01800_물품등록 */
  100. /* On Load 시 Call */
  101. /* ------------------------------------------------- */
  102. /* group : EMR 간호 수술마취 */
  103. /* ver : 2015.05.15 */
  104. /* by : 최학록 */
  105. /* ------------------------------------------------- */
  106. /* SMMNP01800_Case Cart 물품 */
  107. /* On Load 시 Call */
  108. /* desc :Case Cart MASTER 정보 가져오기 */
  109. /* --------------------------------------------------*/
  110. function fMnpmcartData_Read(pIdx, pId, pDept, pDr ,pCcrtno ) {
  111. if (chk_useyn.value == "Y") {
  112. model.setValue("/root/init/Wk1802/cond/useflag", "Y"); // 사용여부
  113. } else {
  114. model.setValue("/root/init/Wk1802/cond/useflag", "A"); // 사용여부
  115. }
  116. model.removenode("/root/send");
  117. model.makeValue("/root/send/orddeptcd" , model.getValue(pDept )); // 진료과
  118. model.makeValue("/root/send/perfid" , model.getValue(pDr )); // 집도의
  119. model.makeValue("/root/send/ccrtno" , model.getValue(pCcrtno )); // CaseCart 번호
  120. model.makeValue("/root/send/countyn" ,"N" ); // CART물품있는것만 여부
  121. model.makeValue("/root/send/instcd" , "" ); // 기관코드
  122. model.makeValue("/root/send/useflag" , model.getValue("/root/init/Wk1802/cond/useflag")); // 사용여부
  123. model.makeValue("/root/send/cartgubn" , sCartgubn ); // cart 구분
  124. model.makeValue("/root/send/qryflag" , model.getValue("/root/init/Wk1802/cond/qryflag")); // Query 구분 1:진료과,2:집도의,2:CART 코드
  125. model.makeValue("/root/send/opnm" , model.getValue("/root/init/Wk1802/cond/opnm")); // Query 구분 1:진료과,2:집도의,2:CART 코드
  126. model.makeNode("/root/send/refnm");//검색명
  127. model.makeNode("/root/send/condflag");//한글영문구분
  128. submit("TRMNP01601"); // Cart MASTER 정보를 가져온다.
  129. model.copyNode(gCartPath[1]+tPathNode[pIdx] , gCartPath[4]);
  130. model.removenode(gCartPath[4]);
  131. pId.row = 1;
  132. pId.refresh();
  133. }
  134. function fMnphcagoRead(pIdx, pId, pCcrtno, pCartGoodseq ) {
  135. model.removenode("/root/send");
  136. model.makeValue("/root/send/ccrtno" , pCcrtno ); // CaseCart 번호
  137. model.makeValue("/root/send/cartgoodseq" , pCartGoodseq ); // Cart물품순번
  138. model.makeValue("/root/send/instcd" , "" ); // 기관코드
  139. model.makeValue("/root/send/prcpflag" , "Y" ); // 진료처방자료존재구분
  140. model.makeValue("/root/send/oproomcd" , sOproomcd ); // 수술방 코드
  141. model.makeValue("/root/send/cartgubn" , sCartgubn ); // Cart구분
  142. model.makeValue("/root/send/menuparam" , "S" ); // 사용구분
  143. model.makeValue("/root/send/insukind" , model.getValue("/root/init/Wk1802/cond/insukind")); // 환자보험유형
  144. model.makeValue("/root/send/payflagcd" , model.getValue("/root/init/Wk1802/cond/payflagcd")); // 급비여부
  145. submit("TRMNP01602"); // Cart MASTER 정보를 가져온다.
  146. model.copyNode(gCartPath[pIdx] , gCartPath[5]);
  147. pId.refresh();
  148. }
  149. function fRemoveNode(pIdx){
  150. model.removeNodeset(PathClear[pIdx]);
  151. eval(wRefresh[pIdx]).refresh();
  152. }
  153. function fCopyGood(){
  154. var sCopyOrderXpath = "/root/main/MnphcagoLists/mnphcagolist";
  155. var nIdx = getNodesetCount(sCopyOrderXpath);
  156. var grupcd = model.getValue(cmb_grupcd.attribute("ref"));
  157. if (nIdx < 1) {
  158. messageBox("선택된 물품이 ", "I004");
  159. return;
  160. }
  161. if( grupcd == "") {
  162. messageBox("선택된 그룹이 없습니다.", "E");
  163. return;
  164. }
  165. var sSendData = "";
  166. for (var i = 1; i <= nIdx; i++) {
  167. if (model.getValue(sCopyOrderXpath+"["+i+"]/fcheck")=="true"){
  168. //2008-08-05 오후 4:36:34 taebum CCR에서 관리하지 않는 재료에 대해서 break
  169. /*
  170. var sCcrGoodcd = model.getValue(sCopyOrderXpath+ "["+i+"]/checkgoodcd");
  171. var sPrcpclscd = model.getValue(sCopyOrderXpath+ "["+i+"]/prcpclscd");
  172. var sGoodcd = model.getValue(sCopyOrderXpath+ "["+i+"]/goodcd");
  173. var sGoodengnm = model.getValue(sCopyOrderXpath+ "["+i+"]/goodengnm");
  174. if(sPrcpclscd == "M2" && (sCcrGoodcd == "" || sCcrGoodcd == null || sCcrGoodcd == "undefined")){
  175. model.alert(sGoodcd+" - "+sGoodengnm+" 는 등록되지 않은 재료처방입니다. CCR에 문의하시기 바랍니다. ");
  176. return;
  177. }else{
  178. */
  179. //처방불가 물품은 처방 안되게 막음, 삭제는 제외 2009.08.31 K.J.M
  180. //구매정보에 수가가 있어야 하는 경우만 체크 2010.03.15 K. J. M
  181. var sTmpReqmthd = model.getValue(sCopyOrderXpath+ "["+i+"]/reqmthd");
  182. var sGoodcd = model.getValue(sCopyOrderXpath+ "["+i+"]/goodcd");
  183. if( sTmpReqmthd == "X"&&model.getValue(sCopyOrderXpath+"["+i+"]/insuyn")=="Y" ) {
  184. messageBox(sGoodcd+"코드 처방불가이므로 처방 할 수 없습니다.!", "E000");
  185. return;
  186. }
  187. if( model.getValue(sCopyOrderXpath+"["+i+"]/insuyn")=="Y"&&model.getValue(sCopyOrderXpath+"["+i+"]/calcscorcd")=="" ) {
  188. var goodcd = model.getValue(sCopyOrderXpath+ "["+i+"]/goodcd");
  189. messageBox(goodcd+"코드 처방 할 수 없습니다.!", "E000");
  190. //}else if( sTmpReqmthd == ""&&model.getValue(sCopyOrderXpath+"["+i+"]/calcscorcd") == ""&&model.getValue(sCopyOrderXpath+"["+i+"]/insuyn") == ""&&model.getValue(sCopyOrderXpath+"["+i+"]/prcpclscd") == "" ) {//구매, 처방 마스터에 살아있는데이터가 없을 때 막음 2010.01.04 K.J.M
  191. // messageBox(sGoodcd+"코드 처방할 수 없습니다.!", "E000");
  192. // return;
  193. }else {
  194. sSendData = sSendData +
  195. model.getValue(sCopyOrderXpath+ "["+i+"]/goodcd" ) + "▥" +
  196. model.getValue(sCopyOrderXpath+ "["+i+"]/allsizespecid") + "▥" +
  197. model.getValue(sCopyOrderXpath+ "["+i+"]/goodcls" ) + "▥" +
  198. model.getValue(sCopyOrderXpath+ "["+i+"]/goodqty" ) + "▥" +
  199. model.getValue(sCopyOrderXpath+ "["+i+"]/payflagcd" ) + "▥" +
  200. model.getValue(sCopyOrderXpath+ "["+i+"]/goodqty" ) + "▥" +
  201. model.getValue(sCopyOrderXpath+ "["+i+"]/goodengnm" ) + "▥" +
  202. model.getValue(sCopyOrderXpath+ "["+i+"]/goodspec" ) + "▥" +
  203. model.getValue(sCopyOrderXpath+ "["+i+"]/makernm" ) + "▥" +
  204. model.getValue(sCopyOrderXpath+ "["+i+"]/goodmodel" ) + "▥" +
  205. model.getValue(sCopyOrderXpath+ "["+i+"]/prcpunit" ) + "▥" +
  206. model.getValue(sCopyOrderXpath+ "["+i+"]/drugmthdspccd") + "▥" +
  207. model.getValue(sCopyOrderXpath+ "["+i+"]/stocqty") + "▥" +
  208. model.getValue(sCopyOrderXpath+ "["+i+"]/acmlbaseqty") + "▥" +
  209. model.getValue(sCopyOrderXpath+ "["+i+"]/prcpclscd") + "▥" + //간호약속처방 prcpcls용도
  210. model.getValue(sCopyOrderXpath+ "["+i+"]/reqmthd") + "▥" +
  211. model.getValue(sCopyOrderXpath+ "["+i+"]/purcflag") + "▥" +
  212. model.getValue(sCopyOrderXpath+ "["+i+"]/calculyn") + "▥" +
  213. model.getValue(sCopyOrderXpath+ "["+i+"]/insuyn") + "▥" +
  214. model.getValue(sCopyOrderXpath+ "["+i+"]/calcscorcd") + "▥" +
  215. model.getValue(cmb_grupcd.attribute("ref")) + "▧" ;
  216. }
  217. /*
  218. }
  219. */
  220. }
  221. }
  222. //선택된 내역이 있을 경우에는 수술마취간호처방으로 처방리스트를 전달함.
  223. if(sSendData != ""){
  224. if(checkOpener()){
  225. opener.javascript.fNurseOrderMake(sSendData);
  226. window.close();
  227. }
  228. }
  229. }
  230. function fSearchOpnm() {
  231. fRemoveNode(2);
  232. fRemoveNode(3);
  233. model.setValue("/root/init/Wk1802/cond/qryflag", "3" );
  234. fMnpmcartData_Read( 2, grd_ccrtno,"/root/main/MnpmcartList/orddeptcd/codelist["+grd_orddept.row+ "]/datacd"
  235. ,"/root/main/MnpmcartList/perfid/codelist["+grd_perfid.row+ "]/datacd");
  236. }
  237. /* ------------------------------------------------- */
  238. /* ------End Of List ------------------------------- */
  239. /* -------------------------------------------------- */