SMMNP01600.js 41 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981
  1. /* ---------------------------------------------------------------------
  2. Case Cart 물품 사항(SMMNP01600.xfm - JScript )
  3. - Version :
  4. 1) : Ver.1.00.01
  5. : Create By Francis Choi
  6. : 2015.05.02
  7. ---------------------------------------------------------------------- */
  8. var ExCount = 0;
  9. var wPathNode = "/root/WorkData/codelists" ; // Save Cart Master
  10. var cPathNode = "/root/WorkData/MnphcagoLists"; // Save 물품 내역
  11. var wInputGood = "/root/WorkData/InputGood" ;
  12. var ListPathM = "/root/MnphcagoLists" ;
  13. var ListPathC = "/root/CMnphcagoLists";
  14. var ListPathD = "/root/WorkData/DelMnphcagoLists";
  15. var tPathName = "/root/MnpmcartList/orddeptcd" + " " // 0 진료과
  16. + "/root/MnpmcartList/perfid" + " " // 1 집도의
  17. + "/root/MnpmcartList/ccrtno" + " " // 2 Cart코드
  18. + "/root/MnpmcartList/cp_orddeptcd" + " " // 3 진료과
  19. + "/root/MnpmcartList/cp_perfid" + " " // 4 집도의
  20. + "/root/MnpmcartList/cp_ccrtno" ; // 5 Cart코드
  21. var tPathNode = tPathName.split(" ");
  22. var gPathName = "/root/MnphcagoLists" + " " // 0 Cart물품
  23. + "/root/CMnphcagoLists" ; // 1 Cart물품
  24. var gPathNode = gPathName.split(" ");
  25. var PathClearNm = "/root/MnpmcartList/orddeptcd/codelist" + " " // 0 진료과
  26. + "/root/MnpmcartList/perfid/codelist" + " " // 1 집도의
  27. + "/root/MnpmcartList/ccrtno/codelist" + " " // 2 Cart코드
  28. + "/root/MnphcagoLists/mnphcagolist" + " " // 3 물품
  29. + "/root/MnpmcartList/cp_orddeptcd/codelist" + " " // 4 진료과
  30. + "/root/MnpmcartList/cp_perfid/codelist" + " " // 5 집도의
  31. + "/root/MnpmcartList/cp_ccrtno/codelist" + " " // 6 Cart코드
  32. + "/root/CMnphcagoLists/mnphcagolist" + " " // 7 물품
  33. + "/root/WorkData/scond/ccrtno" ; // 8 Cart코드
  34. var PathClear = PathClearNm.split(" ");
  35. var wRefreshDoc = "cmb_orddept" + " " // 0 진료과
  36. + "grd_perfid" + " " // 1 집도의
  37. + "grd_ccrtno" + " " // 2 Cart코드
  38. + "grd_good" + " " // 3 물품
  39. + "cmb_cp_orddept" + " " // 4 진료과
  40. + "cmb_cp_ccrtno" + " " // 5 Cart코드
  41. + "cmb_cp_perfdr" + " " // 6 집도의
  42. + "grd_cgood" + " " // 7 물품
  43. + "inp_key_ccrtno" ; // 8 Cart코드
  44. var wRefresh = wRefreshDoc.split(" ");
  45. /* ------------------------------------------------- */
  46. /* SMMNP01600_물품등록 */
  47. /* On Load 시 Call */
  48. /* ------------------------------------------------- */
  49. /* group : EMR 간호 수술마취 */
  50. /* ver : 2015.05.15 */
  51. /* by : 최학록 */
  52. /* --------------------------------------------------*/
  53. /* type : function */
  54. /* access : public */
  55. /* desc : xforms-ready시 수행한다 */
  56. /* return : */
  57. /* --------------------------------------------------*/
  58. function fFormInit() {
  59. model.removenodeset('/root/MnpmcartList/perfid/codelist');//집도의별수술명 reset
  60. model.removenodeset('/root/MnpmcartList/ccrtno/codelist');//cart정보 reset
  61. model.removenodeset('/root/MnphcagoLists/mnphcagolist');//cart물품내역 reset
  62. model.removenodeset('/root/CMnphcagoLists/mnphcagolist');//cart복사할 물품명 reset
  63. model.removenode("/root/send");
  64. model.makeValue("/root/send/flag" , "X" );
  65. model.makeValue("/root/send/searchitem", "XX" );
  66. model.makeValue("/root/send/deptflag" , "011" );
  67. submit("TRMNP00107");
  68. addComboItem("cmb_orddept" , "전 체", "", "above" );//집도과조회
  69. model.removenode("/root/send");
  70. model.makeValue("/root/send/reqdata/cdgrupid", "039");//CART 구분
  71. model.makeValue("/root/send/reqdata/supcdid", "");//서브구분
  72. model.makeValue("/root/send/reqdata/cdid", getUserInfo("dutplcecd"));//서브구분
  73. submit("TRMNP04903", false);
  74. if( (model.getValue("/root/init/hardcodeinfo/cdnm") == "A")||(model.getValue("/root/init/hardcodeinfo/cdnm") == "R") ) {//마취, 회복은 마취로 셋팅
  75. //test 주석처리.김병국
  76. //model.setValue("/root/WorkData/cond/cartgubn", "A");
  77. //model.removenode("/root/send");
  78. //model.makeValue("/root/send/reqdata/cdgrupid", "012");//마취과
  79. //model.makeValue("/root/send/reqdata/supcdid", "");//서브구분
  80. //model.makeValue("/root/send/reqdata/cdid", "");//서브구분
  81. //submit("TRMNP04903", false);
  82. //
  83. //model.setValue("/root/WorkData/cond/orddept", model.getValue("/root/init/hardcodeinfo/cdid"));
  84. //model.setValue("/root/WorkData/cond/cp_orddept", model.getValue("/root/init/hardcodeinfo/cdid"));
  85. //
  86. //fsetCartGubn();
  87. //
  88. //model.removenode("/root/send");
  89. //model.makeNode("/root/send/reqdata");
  90. //if( model.getValue("/root/WorkData/cond/orddept") == "" ) {
  91. // model.resetInstanceNode("/root/init/drlist");
  92. //}else {
  93. // model.copyNode("/root/send/reqdata", "/root/WorkData/cond");
  94. // submit("TRMNP00101");
  95. // addComboItem("cmb_drlist", "전 체", "", "above" );
  96. //}
  97. ////Cart 복사 마취의 조회
  98. //model.setValue("/root/WorkData/cond/cp_perfdr" ,"");
  99. //model.setValue("/root/WorkData/cond/cp_ccrtno" ,"");
  100. //
  101. //model.setValue("/root/WorkData/cond/qryflag", "2" );
  102. //fMnpmcartData_Read( 4, cmb_cp_perfdr,"/root/WorkData/cond/cp_orddept");
  103. model.setValue("/root/WorkData/cond/cartgubn", "A");
  104. }else {
  105. model.setValue("/root/WorkData/cond/cartgubn", "O");
  106. }
  107. model.removenode("/root/send");
  108. model.makeValue("/root/send/req/cdgrupid", "106");//병원별 Display 여부
  109. model.makeValue("/root/send/reqdata/supcdid", "");//서브구분
  110. model.makeValue("/root/send/reqdata/cdid", "");//서브구분
  111. submit("TRMNP04903", false);
  112. model.setValue("/root/WorkData/cond/payflagcd", model.getValue("/root/init/hardcodeinfo/cdid").substr(6, 1));
  113. if( model.getValue("/root/init/hardcodeinfo/cdid").substr(6, 1) == "Y" ) {//급비컬럼
  114. grd_good.colWidth(9) = 45;
  115. }else {
  116. grd_good.colWidth(9) = 0;
  117. }
  118. grd_ccrtno.colwidth(1) = "0";
  119. grd_ccrtno.colwidth(2) = "160";
  120. grd_cgood.fixedcellcheckbox(0,1) = true;
  121. grd_good.fixedcellcheckbox(0,0) = true;
  122. grd_cgood.explorerbar = "sort";
  123. grd_good.explorerbar = "sort";
  124. grd_perfid.explorerbar = "sort";
  125. grd_ccrtno.explorerbar = "sort";
  126. model.makeValue("/root/send/reqdata/cdgrupid", "OP");
  127. submit("TRMND03901");
  128. model.makeNode("/root/init/basecodeinfo");
  129. model.copynode("/root/init/basecodeinfo", "/root/main/baseinfo");
  130. cmb_grupcd.refresh();
  131. addComboItem("cmb_grupcd", "전 체", "", "above");
  132. zbcfGetCodeList( new Array ( "M0029" // 급여구분에 대한 종류
  133. )
  134. , new Array ( "/root/init/M0029list" )
  135. );
  136. }
  137. /* ----------------------------------------------------------*/
  138. /* type : function */
  139. /* access : public */
  140. /* desc : cart구분이 변경될 때마다 조회조건 및 라벨을 변경 */
  141. /* 수술선택시는 집도의로, 마취선택시는 마취의로 변경*/
  142. /* param : */
  143. /* return : */
  144. /* ----------------------------------------------------------*/
  145. function fsetCartGubn(){
  146. var cartgubn = model.getValue('/root/WorkData/cond/cartgubn');
  147. if(cartgubn == "A"){//마취
  148. cmb_orddept.disabled = true;
  149. cpt_1.text = "마취의 :";
  150. caption3.text = "마취명 :";
  151. caption4.text = "마취명";
  152. cpt_2.text = "마취의";
  153. cpt_3.text = "마취의";
  154. caption11.text = "마취명";
  155. caption16.text = "마취명사용:";
  156. checkbox1.visible = false;
  157. checkbox2.visible = false;
  158. cmb_cp_orddept.disabled = true;
  159. }else if(cartgubn == "O"){//수술
  160. cmb_orddept.disabled = false;
  161. cpt_1.text = "집도의 :";
  162. caption3.text = "수술명 :";
  163. caption4.text = "수술명";
  164. cpt_2.text = "집도의";
  165. cpt_3.text = "집도의";
  166. caption11.text = "수술명";
  167. caption16.text = "수술명사용:";
  168. checkbox1.visible = true;
  169. checkbox2.visible = true;
  170. cmb_cp_orddept.disabled = false;
  171. }
  172. model.refresh();
  173. }
  174. /* ------------------------------------------------- */
  175. /* group : EMR 간호 수술마취 */
  176. /* ver : 2008.12.18 */
  177. /* by : 김진명 */
  178. /* ------------------------------------------------- */
  179. /* SMMNP01500_Case Cart MASTER */
  180. /* desc : 한글여부 */
  181. /* --------------------------------------------------*/
  182. function fIsHangul(pData) {
  183. var sBit = pData.charAt(0);
  184. if (escape(sBit).length <= 4) return "E";
  185. return "H";
  186. }
  187. /* ------------------------------------------------- */
  188. /* SMMNP01600_Case Cart 물품 */
  189. /* On Load 시 Call */
  190. /* desc :Case Cart MASTER 정보 가져오기 */
  191. /* --------------------------------------------------*/
  192. function fMnpmcartData_Read(pIdx, pId, pDept, pDr ,pCcrtno ) {
  193. var condflag;
  194. if( pIdx == 0 ) {
  195. model.removenodeset("/root/MnphcagoLists/mnphcagolist");
  196. }
  197. model.removenode("/root/send");
  198. var refnm = model.getValue("/root/WorkData/cond/opnm");
  199. if( refnm != "" ) {
  200. condflag = fIsHangul(refnm);
  201. }
  202. model.makeValue("/root/send/orddeptcd" , model.getValue(pDept ) ); // 진료과
  203. model.makeValue("/root/send/perfid" , model.getValue(pDr ) ); // 집도의
  204. model.makeValue("/root/send/ccrtno" , model.getValue(pCcrtno) ); // CaseCart 번호
  205. model.makeValue("/root/send/useflag" , model.getValue("/root/WorkData/cond/useflag")); // 사용여부
  206. model.makeValue("/root/send/qryflag" , model.getValue("/root/WorkData/cond/qryflag" )); // Query 구분 1:진료과,2:집도의,2:CART 코드
  207. model.makeValue("/root/send/cartgubn" , model.getValue("/root/WorkData/cond/cartgubn" )); // cart구분 O: 수술, A: 마취
  208. model.makeValue("/root/send/callflag" , "CCDS");//CART 물품등록 페이지 조회
  209. model.makeValue("/root/send/refnm" , refnm);//검색명
  210. model.makeValue("/root/send/condflag" , condflag);//한글영문구분
  211. model.makeValue("/root/send/opuseflag" , model.getValue("/root/WorkData/cond/opuseflag" ));//수술명사용구분
  212. if( pIdx == 5 ) {//카트복사시 물품있는 카트리스트만
  213. model.makeValue("/root/send/rgstyn" , "Y");//물품등록여부
  214. }else {
  215. model.makeValue("/root/send/rgstyn" , model.getValue("/root/WorkData/cond/rgstyn"));//물품등록여부
  216. }
  217. submit("TRMNP01601"); // Cart MASTER 정보를 가져온다.
  218. model.copyNode(tPathNode[pIdx] , wPathNode);
  219. // alert(wPathNode);
  220. model.removenode(wPathNode);
  221. pId.refresh();
  222. }
  223. function fMnphcagoRead(pIdx, pAttrId, pCcrtno, pCartGoodseq,pSelectCls, pOprsrvno ) {
  224. if( pIdx == 0 ) {
  225. model.removenodeset("/root/MnphcagoLists/mnphcagolist");
  226. }
  227. model.removenode("/root/send");
  228. model.makeValue("/root/send/ccrtno" , pCcrtno ); // CaseCart 번호
  229. model.makeValue("/root/send/cartgoodseq" , pCartGoodseq ); // Cart물품순번
  230. model.makeValue("/root/send/oprsrvno" , pOprsrvno ); // 수술예약번호
  231. model.makeValue("/root/send/selectflag" , pSelectCls ); // 발췌테이블구분
  232. model.makeValue("/root/send/cartgubn" , model.getValue("/root/WorkData/cond/cartgubn")); //카트구분
  233. model.makeValue("/root/send/rgstyn" , "Y");//물품등록여부
  234. model.makeValue("/root/send/opuseflag" , model.getValue("/root/WorkData/cond/opuseflag")); //수술명 사용구분
  235. model.makeValue("/root/send/payflagcd" , model.getValue("/root/WorkData/cond/payflagcd")); // 급비여부
  236. model.makeValue("/root/send/insukind" , ""); // 보험유형
  237. model.makeValue("/root/send/grupcd", model.getValue(cmb_grupcd.attribute("ref")));
  238. model.makeValue("/root/send/cartgubn", model.getValue(rdo_cartgubn.attribute("ref")));
  239. submit("TRMNP01602"); // Cart MASTER 정보를 가져온다.
  240. model.copyNode(gPathNode[pIdx] , cPathNode);
  241. model.removeNodeset(cPathNode+"/mnphcagolist"); // 삭제된 NODE를 없앤다...
  242. pAttrId.refresh();
  243. }
  244. function fRemoveNode(pIdx){
  245. model.removeNodeset(PathClear[pIdx]);
  246. eval(wRefresh[pIdx]).refresh();
  247. }
  248. // 물품 추가 Check
  249. function fCopyGood(pCls){
  250. var GoodCd = "";
  251. var Allsizespecid = "";
  252. var wCcrtNo = model.getValue("/root/WorkData/scond/ccrtno");
  253. if (wCcrtNo == "") {
  254. messageBox("Cart코드를", "C002");
  255. return;
  256. }
  257. var sNode = instance1.selectSingleNode(ListPathC);
  258. var sIdx = sNode.childNodes.length;
  259. for (n = 1; n <= sIdx; n++) {
  260. GoodCd = model.getValue(ListPathC + "/mnphcagolist["+n+"]/goodcd");
  261. Allsizespecid = model.getValue(ListPathC + "/mnphcagolist["+n+"]/allsizespecid");
  262. if (fCheckGoodCd(GoodCd, Allsizespecid)) {
  263. model.setValue(ListPathC + "/mnphcagolist["+n+"]/cartgoodseq" , "");
  264. if (pCls == "C") {
  265. if (model.getValue(ListPathC + "/mnphcagolist["+n+"]/fcheck")=="true") {
  266. fNodeDuplicate(n, "I", wCcrtNo, ListPathC, ListPathM);
  267. }
  268. } else {
  269. fNodeDuplicate(n, "I", wCcrtNo, ListPathC, ListPathM);
  270. }
  271. }
  272. model.setValue(ListPathC + "/mnphcagolist["+n+"]/fcheck", "false");
  273. }
  274. grd_good.refresh();
  275. grd_cgood.refresh();
  276. }
  277. // 물품 복사
  278. function fNodeDuplicate(pIdx, pStat, pCcrtno, sPath, tPath){
  279. model.setValue(sPath + "/mnphcagolist["+pIdx+"]/ccrtno" , pCcrtno);
  280. model.setValue(sPath + "/mnphcagolist["+pIdx+"]/recstat", pStat );
  281. model.duplicate(tPath, sPath+"/mnphcagolist["+pIdx+"]");
  282. }
  283. //
  284. // 물품 삭제
  285. //
  286. function fDeleteGood(){
  287. //var sIdx = grd_good.row;
  288. //if (sIdx < 1) {
  289. // return;
  290. //}
  291. //var wCcrtNo = model.getValue("/root/WorkData/scond/ccrtno");
  292. //
  293. //fNodeDuplicate(sIdx, "D", wCcrtNo, ListPathM, ListPathD);
  294. //
  295. //model.removeNodeset(ListPathM + "/mnphcagolist["+sIdx+"]");
  296. //grd_good.deleteRow(sIdx);
  297. //2009.05.20 하나씩 삭제에서 일괄삭제로 변경
  298. //물품삭제시 확인창 추가 2009.07.07 K.J.M
  299. if( messageBox("물품을 삭제하시겠습니까?", "Q000") != "6" ) return;
  300. var chkflag;
  301. var nodeCnt = parseInt(getNodesetCount("/root/MnphcagoLists/mnphcagolist"))+1;
  302. model.removenode("/root/temp/MnphcagoLists");
  303. model.makeNode("/root/temp/MnphcagoLists");
  304. for( var i = 0; i < nodeCnt; i++ ) {
  305. chkflag = model.getValue("/root/MnphcagoLists/mnphcagolist[" + i + "]/fcheck");
  306. if( chkflag == "true" ) {//체크안된것만 물품삭제
  307. //model.setValue("/root/MnphcagoLists/mnphcagolist[" + i + "]/recstat", "U");
  308. model.duplicate("/root/temp/MnphcagoLists", "/root/MnphcagoLists/mnphcagolist[" + i + "]");
  309. }
  310. }
  311. fSave("2");
  312. //model.removenode("/root/MnphcagoLists");
  313. //model.makeNode("/root/MnphcagoLists");
  314. //model.copyNode("/root/MnphcagoLists", "/root/temp/MnphcagoLists");
  315. //model.refresh();
  316. }
  317. // 물품 UPDATE
  318. function fUpdateGood(){
  319. var sIdx = grd_good.row;
  320. if (sIdx < 1) {
  321. return;
  322. }
  323. model.setValue(ListPathM + "/mnphcagolist["+sIdx+"]/goodqty",model.getValue(wInputGood + "/goodqty"));
  324. if (model.getValue(wInputGood + "/recstat") == "N") {
  325. model.setValue(ListPathM + "/mnphcagolist["+sIdx+"]/recstat", "U");
  326. }
  327. grd_good.refresh();
  328. grd_good.row = sIdx;
  329. }
  330. // 물품 INSERT
  331. function fInsertGood(){
  332. var sIdx = grd_good.rows;
  333. var GoodCd = model.getValue(wInputGood + "/goodcd");
  334. var Allsizespecid = model.getValue(wInputGood + "/allsizespecid");
  335. if (fCheckGoodCd(GoodCd, Allsizespecid)) {
  336. if (instance1.selectSingleNode(cPathNode).childNodes.length < 1) {
  337. sIdx = 1;
  338. model.makeNode(cPathNode+"/mnphcagolist");
  339. }
  340. model.setValue(wInputGood + "/recstat" , "I");
  341. model.setValue(wInputGood + "/allsizespecid", "-");
  342. model.setValue(wInputGood + "/ccrtno" , model.getValue("/root/WorkData/scond/ccrtno"));
  343. model.setValue(wInputGood + "/instcd" , model.getValue("/root/WorkData/scond/instcd"));
  344. model.copyNode(cPathNode+"/mnphcagolist","/root/WorkData/InputGood");
  345. model.duplicate(ListPathM, cPathNode+"/mnphcagolist");
  346. grp_input.refresh();
  347. } else {
  348. messageBox("물품 코드가", "E006");
  349. return;
  350. }
  351. grd_good.refresh();
  352. }
  353. //
  354. // 물품 중복 Check
  355. //
  356. function fCheckGoodCd(pGood, pAllsizespecid){
  357. var GoodCd = "";
  358. var Allsizespecid = "";
  359. var GoodChk = true;
  360. var xNode = instance1.selectSingleNode(ListPathM);
  361. var nLen = xNode.childNodes.length;
  362. for (i = 1; i <= nLen; i++) {
  363. GoodCd = model.getValue(ListPathM + "/mnphcagolist["+i+"]/goodcd");
  364. Allsizespecid = model.getValue(ListPathM + "/mnphcagolist["+i+"]/allsizespecid");
  365. if ( (pGood == GoodCd)&&(pAllsizespecid == Allsizespecid) ) {
  366. GoodChk = false ;
  367. break;
  368. }
  369. }
  370. return GoodChk;
  371. }
  372. /*-----------------------------------------------------------------------*/
  373. /* DESC 물품조회 물품 선택시 물품리스트에 추가 */
  374. /* Param iParamList(선택한 물품 정보) */
  375. /* Ver 2009.06.30 */
  376. /* By 김진명 */
  377. /*-----------------------------------------------------------------------*/
  378. function fGoodDisplay(iParamList) {
  379. var iParamData = iParamList.split("▩");
  380. for (ii = 0; ii < iParamData.length; ii++) {
  381. pData = iParamData[ii];
  382. var iSplit_Value = pData.split("|");
  383. if (iSplit_Value[0] != "") {
  384. var GoodCd = iSplit_Value[0];
  385. var Allsizespecid = iSplit_Value[2];
  386. if (fCheckGoodCd(GoodCd, Allsizespecid)) {
  387. if (instance1.selectSingleNode(cPathNode).childNodes.length < 1) {
  388. model.makeNode(cPathNode+"/mnphcagolist");
  389. }
  390. model.setValue(wInputGood + "/recstat" , "I" );
  391. model.setValue(wInputGood + "/goodcd" , iSplit_Value[0] );
  392. model.setValue(wInputGood + "/goodengnm" , iSplit_Value[1] );
  393. model.setValue(wInputGood + "/allsizespecid", iSplit_Value[2] );
  394. model.setValue(wInputGood + "/makernm" , iSplit_Value[6] );
  395. model.setValue(wInputGood + "/goodcls" , iSplit_Value[8] );
  396. model.setValue(wInputGood + "/prcpunit" , iSplit_Value[7] );
  397. model.setValue(wInputGood + "/goodspec" , iSplit_Value[4] );
  398. model.setValue(wInputGood + "/goodmodel" , iSplit_Value[5] );
  399. //----------(20101011) 경북대
  400. //원본
  401. //model.setValue(wInputGood + "/goodqty" , "0" );
  402. //변경
  403. model.setValue(wInputGood + "/goodqty" , "1" );
  404. model.setValue(wInputGood + "/grupcd" , "01" );
  405. //----------(20101011) 경북대
  406. model.setValue(wInputGood + "/payflagcd" , iSplit_Value[9] );
  407. model.setValue(wInputGood + "/fromdd" , getCurrentDate());
  408. model.setValue(wInputGood + "/ccrtno" , model.getValue("/root/WorkData/scond/ccrtno"));
  409. model.setValue(wInputGood + "/cartgubn" , model.getValue("/root/WorkData/cond/cartgubn"));
  410. model.copyNode(cPathNode+"/mnphcagolist", "/root/WorkData/InputGood");
  411. model.duplicate(ListPathM , cPathNode+"/mnphcagolist");
  412. }
  413. }
  414. }
  415. grd_good.refresh();
  416. }
  417. //물품조회
  418. function fGoodCodePopup() {
  419. var xpos = event.screenX;
  420. var ypos = event.screenY-300;
  421. var xpos = 1;
  422. var ypos = 1;
  423. setParameter("tabflag", "CCR");
  424. setParameter("menuparam", "S");
  425. setParameter("goodflag", "Y");
  426. setParameter("cartgubn", model.getValue("/root/WorkData/cond/cartgubn"));
  427. // SPMNP01600_처방(물품)찾기.xrw
  428. modal("SPMNP01600", 1, xpos, ypos); // SMMNP04460
  429. /* var iProperties = getParameter("SendData");
  430. var iParamData = iProperties.split("▩");
  431. // var sIdx = grd_good.rows;
  432. for (ii = 0; ii < iParamData.length; ii++) {
  433. pData = iParamData[ii];
  434. var iSplit_Value = pData.split("|");
  435. if (iSplit_Value[0] != "") {
  436. var GoodCd = iSplit_Value[0];
  437. var Allsizespecid = iSplit_Value[2];
  438. if (fCheckGoodCd(GoodCd, Allsizespecid)) {
  439. if (instance1.selectSingleNode(cPathNode).childNodes.length < 1) {
  440. // sIdx = 1;
  441. model.makeNode(cPathNode+"/mnphcagolist");
  442. }
  443. model.setValue(wInputGood + "/recstat" , "I" );
  444. model.setValue(wInputGood + "/goodcd" , iSplit_Value[0] );
  445. model.setValue(wInputGood + "/goodengnm" , iSplit_Value[1] );
  446. model.setValue(wInputGood + "/allsizespecid", iSplit_Value[2] );
  447. model.setValue(wInputGood + "/makernm" , iSplit_Value[6] );
  448. model.setValue(wInputGood + "/goodcls" , iSplit_Value[8] );
  449. model.setValue(wInputGood + "/prcpunit" , iSplit_Value[7] );
  450. model.setValue(wInputGood + "/goodspec" , iSplit_Value[4] );
  451. model.setValue(wInputGood + "/goodmodel" , iSplit_Value[5] );
  452. model.setValue(wInputGood + "/goodqty" , "0" );
  453. model.setValue(wInputGood + "/payflagcd" , iSplit_Value[9] );
  454. model.setValue(wInputGood + "/fromdd" , getCurrentDate());
  455. model.setValue(wInputGood + "/ccrtno" , model.getValue("/root/WorkData/scond/ccrtno"));
  456. model.copyNode(cPathNode+"/mnphcagolist", "/root/WorkData/InputGood");
  457. model.duplicate(ListPathM , cPathNode+"/mnphcagolist");
  458. }
  459. }
  460. }
  461. grd_good.refresh();
  462. // grp_input.refresh();
  463. */
  464. }
  465. //
  466. // Cart 물품 저장
  467. //
  468. function fSave(pFlag){
  469. var recstat;
  470. model.removenode("/root/send");
  471. var SaveData = "ccrtno" +"▦" // 01 CaseCart 번호
  472. + "cartgoodseq" +"▦" // 02 Cart물품순번
  473. + "todd" +"▦" // 03 종료일자
  474. + "afgoodcd" +"▦" // 05 물품코드
  475. + "afallsizespecid" +"▦" // 06 Size코드
  476. + "goodcls" +"▦" // 07 물품구분1:Sutures, 2:Supplies,3:Drug,4:Instrument,5:처치처방,6:수술소모품
  477. + "fromdd" +"▦" // 08 적용일자
  478. + "afqty" +"▦" // 09 물품수량
  479. + "payflagcd" +"▦" // 10 급여구분
  480. + "recstat" +"▦" // 11 Record Status
  481. + "grupcd" +"▦" // 12 그룹코드
  482. + "cartgubn" +"▩" ;
  483. for( var i = 0; i < grd_good.rows; i++ ) {
  484. if( model.getValue("/root/MnphcagoLists/mnphcagolist[" + i + "]/chkflag") == "true" ) {
  485. if( model.getValue("/root/main/goodlist[" + i + "]/rgstyn") == "N" ) {//등록안된것만 등록
  486. goodcd = model.getValue("/root/main/goodlist[" + i + "]/goodcd");
  487. allsizespecid = model.getValue("/root/main/goodlist[" + i + "]/allsizespecid");
  488. savelist = savelist + goodcd
  489. + "▦" + allsizespecid
  490. + "▦" + model.getValue("/root/main/goodinfo/gooddetlinfo/lrgcd")
  491. + "▦" + model.getValue("/root/main/goodinfo/gooddetlinfo/mdlcd")
  492. + "▦" + model.getValue("/root/main/goodinfo/gooddetlinfo/smlcd")
  493. + "▦" + model.getValue("/root/main/goodinfo/gooddetlinfo/rgstflag")
  494. + "▦" + model.getValue("/root/main/goodinfo/gooddetlinfo/ccrgoodnm")
  495. + "▦" + model.getValue("/root/main/goodinfo/gooddetlinfo/prcpunit")
  496. + "▦" + model.getValue("/root/main/goodinfo/gooddetlinfo/prcpqty")
  497. + "▦" + model.getValue("/root/main/goodinfo/gooddetlinfo/ccrcusttel")
  498. + "▦" + model.getValue("/root/main/goodinfo/gooddetlinfo/deliveunit")
  499. + "▦" + model.getValue("/root/main/goodinfo/gooddetlinfo/deliveqty")
  500. + "▦" + model.getValue("/root/main/goodinfo/gooddetlinfo/goodmngt")
  501. + "▦" + model.getValue("/root/main/goodinfo/gooddetlinfo/implant")
  502. + "▦" + model.getValue("/root/main/goodinfo/gooddetlinfo/cureflag")
  503. + "▦" + model.getValue("/root/main/goodinfo/gooddetlinfo/delivepriod")
  504. + "▦" + model.getValue("/root/main/goodinfo/gooddetlinfo/deliveyn")
  505. + "▦" + model.getValue("/root/main/goodinfo/gooddetlinfo/useflag")
  506. + "▦" + model.getValue("/root/main/goodinfo/gooddetlinfo/acmlbaseqty")
  507. + "▦" + model.getValue("/root/main/goodinfo/gooddetlinfo/ccrdeliveunit")
  508. + "▦" + model.getValue("/root/main/goodinfo/gooddetlinfo/ccrdeliveqty")
  509. + "▦" + model.getValue("/root/main/goodinfo/gooddetlinfo/goodinfo")
  510. + "▦" + model.getValue("/root/main/goodinfo/gooddetlinfo/appdd")
  511. + "▦" + model.getValue("/root/main/goodinfo/gooddetlinfo/enddd")
  512. + "▦" + model.getValue("/root/main/goodinfo/gooddetlinfo/prcpinfo")
  513. + "▦" + model.getValue("/root/main/goodinfo/gooddetlinfo/indexlrg")
  514. + "▦" + model.getValue("/root/main/goodinfo/gooddetlinfo/indexmdl")
  515. + "▦" + model.getValue("/root/main/goodinfo/gooddetlinfo/indexsml")
  516. + "▦" + model.getValue("/root/main/cond/refdept");
  517. }
  518. }
  519. }
  520. SaveData += fDataConstruct(ListPathD, "cartgoodseq", "" );
  521. model.removeNodeset(ListPathD+"/mnphcagolist"); // 삭제된 NODE를 없앤다...
  522. // 수정 입력된 자료를 구성한다.
  523. if( pFlag == "2" ) {//삭제 저장시
  524. recstat = "D"
  525. }else {
  526. recstat = "N"
  527. }
  528. SaveData += fDataConstruct(ListPathM, "recstat", recstat );
  529. model.makeValue("/root/send/mnphcagolist",SaveData);
  530. if (ExCount > 0) {
  531. submit("TXMNP01600", false);
  532. }
  533. fMnpmcartData_Read( 2, grd_ccrtno,"/root/WorkData/cond/orddept","/root/MnpmcartList/perfid/codelist["+grd_perfid.row+ "]/datacd");
  534. fMnphcagoRead(0, grd_good, model.getValue("/root/WorkData/scond/ccrtno"), "" );
  535. }
  536. function fDataConstruct(pPath, pNode, pCond) {
  537. var sData = "";
  538. var sCond = "";
  539. if( pCond == "D" ) {
  540. pPath = "/root/temp/MnphcagoLists";
  541. }
  542. var xNode = instance1.selectSingleNode(pPath);
  543. var nLen = xNode.childNodes.length;
  544. var sCcrtno = "" ; // 01 CaseCart 번호
  545. var sCartgoodseq = "" ; // 02 Cart물품순번
  546. var sTodd = "" ; // 03 종료일자
  547. var sInstcd = "" ; // 04 병원기관코드(코드정의서 Z0007 참조)
  548. var sGoodcd = "" ; // 05 물품코드
  549. var sAllsizespecid = "" ; // 06 Size코드
  550. var sGoodcls = "" ; // 07 물품구분1:Sutures, 2:Supplies,3:Drug,4:Instrument,5:처치처방,6:수술소모품
  551. var sFromdd = "" ; // 08 적용일자
  552. var sGoodqty = "" ; // 09 물품수량
  553. var sPayflagcd = "" ; // 10 급여구분
  554. var sRecstat = "" ; // 11 Record Status
  555. var sGrupcd = "" ; // 12 Grup Code
  556. var sCartGubn = "" ; // 12 Grup Code
  557. for (i = 1; i <= nLen; i++) {
  558. sCond = model.getValue(pPath + "/mnphcagolist["+i+"]/"+pNode);
  559. sCcrtno = model.getValue(pPath + "/mnphcagolist["+i+"]/ccrtno" ); // 01 CaseCart 번호
  560. sCartgoodseq = model.getValue(pPath + "/mnphcagolist["+i+"]/cartgoodseq" ); // 02 Cart물품순번
  561. sTodd = model.getValue(pPath + "/mnphcagolist["+i+"]/todd" ); // 03 종료일자
  562. sGoodcd = model.getValue(pPath + "/mnphcagolist["+i+"]/goodcd" ); // 05 물품코드
  563. sAllsizespecid = model.getValue(pPath + "/mnphcagolist["+i+"]/allsizespecid"); // 06 Size코드
  564. sGoodcls = model.getValue(pPath + "/mnphcagolist["+i+"]/goodcls" ); // 07 물품구분1:Sutures, 2:Supplies,3:Drug,4:Instrument,5:처치처방,6:수술소모품
  565. sFromdd = model.getValue(pPath + "/mnphcagolist["+i+"]/fromdd" ); // 08 적용일자
  566. sGoodqty = model.getValue(pPath + "/mnphcagolist["+i+"]/goodqty" ); // 09 물품수량
  567. sPayflagcd = model.getValue(pPath + "/mnphcagolist["+i+"]/payflagcd" ); // 10 급여구분
  568. sRecstat = model.getValue(pPath + "/mnphcagolist["+i+"]/recstat" ); // 11 Record Status
  569. sGrupcd = model.getValue(pPath + "/mnphcagolist["+i+"]/grupcd" ); // 12 Grup Code
  570. sCartGubn = model.getValue(pPath + "/mnphcagolist["+i+"]/cartgubn" ); // 12 Cart Gubn
  571. if( pCond == "D" ) {
  572. sRecstat = "D";
  573. }
  574. if( sCond != pCond ) {
  575. sData += sCcrtno +"▦" // 01 CaseCart 번호
  576. + sCartgoodseq +"▦" // 02 Cart물품순번
  577. + sTodd +"▦" // 03 종료일자
  578. + sGoodcd +"▦" // 05 물품코드
  579. + sAllsizespecid +"▦" // 06 Size코드
  580. + sGoodcls +"▦" // 07 물품구분1:Sutures, 2:Supplies,3:Drug,4:Instrument,5:처치처방,6:수술소모품
  581. + sFromdd +"▦" // 08 적용일자
  582. + sGoodqty +"▦" // 09 물품수량
  583. + sPayflagcd +"▦" // 10 급여구분
  584. + sRecstat +"▦" // 11 Record Status
  585. + sGrupcd +"▦" // 12 Grupcd
  586. + sCartGubn +"▩" ; // 13 카트구분
  587. ExCount++;
  588. }
  589. }
  590. return sData;
  591. }
  592. function fOpCodePopup() {
  593. var xpos = event.screenX;
  594. var ypos = event.screenY-300;
  595. modal("SPMNP01500", 1, xpos, ypos);
  596. var iProperties = getParameter("SendData");
  597. var iSplit_Value = iProperties.split("|");
  598. if (iSplit_Value.length > 0) {
  599. model.setValue("/root/WorkData/cond/ccrtno" , iSplit_Value[0]); // CODE
  600. model.setValue("/root/WorkData/cond/ccrtnonm" , iSplit_Value[1]); // NAME
  601. }
  602. }
  603. var lStyle = "530*901";
  604. var rColWidth = "65*35*150*62*62*62*40*35*0*0*0*0*0*0*0*0*0*0*0*0*0*0*0#80*40*300*105*105*105*60*50*0*0*0*0*0*0*0*0*0*0*0*0*0*0*0";
  605. var rWidth = rColWidth.split("#");
  606. var HideStyle = "824*50*5*20#824*50*370*690";
  607. var hStyle = HideStyle.split("#");
  608. // --------------------------------------------------
  609. // Grid 속성변경 처리하는 함수
  610. // --------------------------------------------------
  611. function fSetAttribute(pIdx) {
  612. if( pIdx == 1 ) {//물품리스트
  613. button58.visible = false;//펼치기
  614. button57.visible = true;//닫기
  615. }else if( pIdx == 0 ) {//물품리스트
  616. button58.visible = true;//펼치기
  617. button57.visible = false;//닫기
  618. }else if( pIdx == 2 ) {//cart list
  619. button9.visible = false;//펼치기
  620. button11.visible = true;//줄이기
  621. }else if( pIdx == 3 ) {//cart list
  622. button9.visible = true;//펼치기
  623. button11.visible = false;//줄이기
  624. }else if( pIdx == 4 ) {//복사리스트
  625. button14.visible = false;//줄이기
  626. button15.visible = true;//펼치기
  627. }else if( pIdx == 5 ) {//복사리스트
  628. button14.visible = true;//줄이기
  629. button15.visible = false;//펼치기
  630. }
  631. if( pIdx < 2 ) {
  632. var pHide = hStyle[pIdx];
  633. var gStyle = pHide.split("*");
  634. grp_hide.attribute("left" ) = gStyle[0];
  635. grp_hide.attribute("top" ) = gStyle[1];
  636. grp_hide.attribute("width" ) = gStyle[2];
  637. grp_hide.attribute("height") = gStyle[3];
  638. var sStyle = lStyle.split("*");
  639. var pWidth = rWidth[pIdx];
  640. grd_good.attribute("width") = sStyle[pIdx];
  641. var cIdx = 1;
  642. var sWidth = pWidth.split("*");
  643. for (i = 0; i < sWidth.length; i++) {
  644. grd_good.colwidth(cIdx) = sWidth[i];
  645. cIdx++;
  646. }
  647. if( model.getValue("/root/init/hardcodeinfo/cdid").substr(6, 1) == "Y" ) {//급비컬럼
  648. grd_good.colwidth(3) = 250;
  649. grd_good.colwidth(9) = 50;
  650. }
  651. //grd_good.caption = "물품코드^SIZE^물품명^규격^모델^제조원^단위^수량";
  652. }else {
  653. if( pIdx == 2 ) {
  654. grd_ccrtno.attribute("style") = "width:650px";
  655. line3.attribute("style") = "x2:650px";
  656. if( model.getValue("/root/WorkData/cond/cartgubn") == "O" ) {//수술일때
  657. grd_ccrtno.colwidth(0) = "80";
  658. grd_ccrtno.colwidth(1) = "250";
  659. grd_ccrtno.colwidth(2) = "250";
  660. grd_ccrtno.colwidth(3) = "45";
  661. }else {
  662. grd_ccrtno.colwidth(0) = "100";
  663. grd_ccrtno.colwidth(1) = "0";
  664. grd_ccrtno.colwidth(2) = "470";
  665. grd_ccrtno.colwidth(3) = "55";
  666. }
  667. }else if( pIdx == 3 ) {
  668. grd_ccrtno.attribute("style") = "width:288px";
  669. line3.attribute("style") = "x2:288px";
  670. grd_ccrtno.colwidth(0) = "74";
  671. if( model.getValue("/root/WorkData/cond/cartgubn") == "O" ) {//수술일때
  672. //영문, 한글 체크여부에따라 컬럼 설정2009.02.02
  673. if( model.getValue("/root/WorkData/cond/engyn") == "E" ) {
  674. grd_ccrtno.colwidth(1) = "160";
  675. }else {
  676. grd_ccrtno.colwidth(1) = "0";
  677. }
  678. if( model.getValue("/root/WorkData/cond/hngyn") == "H" ) {
  679. grd_ccrtno.colwidth(2) = "160";
  680. }else {
  681. grd_ccrtno.colwidth(2) = "0";
  682. }
  683. }else {
  684. grd_ccrtno.colwidth(1) = "0";
  685. grd_ccrtno.colwidth(2) = "160";
  686. }
  687. grd_ccrtno.colwidth(3) = "35";
  688. }else if( pIdx == 4 ) {
  689. grd_cgood.attribute("style") = "left:828px; top:206px; width:366px; height:557px;";
  690. grd_cgood.colwidth(1) = "30";
  691. grd_cgood.colwidth(2) = "160";
  692. grd_cgood.colwidth(3) = "73";
  693. grd_cgood.colwidth(4) = "73";
  694. grd_cgood.colwidth(5) = "51";
  695. grd_cgood.colwidth(6) = "55";
  696. grd_cgood.colwidth(7) = "50";
  697. }else if( pIdx == 5 ) {
  698. grd_cgood.attribute("style") = "left:495px; top:206px; width:699px; height:557px; ";
  699. grd_cgood.colwidth(1) = "30";
  700. grd_cgood.colwidth(2) = "215";
  701. grd_cgood.colwidth(3) = "100";
  702. grd_cgood.colwidth(4) = "100";
  703. grd_cgood.colwidth(5) = "100";
  704. grd_cgood.colwidth(6) = "55";
  705. grd_cgood.colwidth(7) = "50";
  706. }
  707. }
  708. }
  709. /* ------------------------------------------------- */
  710. /* desc : 환자이름 불러오기 */
  711. /* -------------------------------------------------- */
  712. function fPatCodePopup() {
  713. var xpos = event.screenX;
  714. var ypos = event.screenY-300;
  715. var xpos = 1;
  716. var ypos = 1;
  717. modal("SPMNP06100", 1, xpos, ypos,"SPMNP06100", "/root/init/example", "/root/init/example");
  718. var iProperties = getParameter("SendData");
  719. var iSplit_Value = iProperties.split("|");
  720. if (iSplit_Value.length > 0) {
  721. model.setValue("/root/WorkData/scond/pid" , iSplit_Value[0]); // CODE
  722. model.setValue("/root/WorkData/scond/pidname", iSplit_Value[1]); // NAME
  723. OpPatState_Read();//환자 번호로 조회 로직 추가 2010.03.29 K. J. M
  724. }
  725. ipt_pid.refresh();
  726. ipt_hngnm.refresh();
  727. }
  728. /* --------------------------------------------------*/
  729. /* desc : 수술예약정보 가져오기 */
  730. /* param : 기관코드 */
  731. /* return : */
  732. /* --------------------------------------------------*/
  733. function OpPatState_Read() {
  734. if (model.getValue("/root/WorkData/scond/pid") =="") {
  735. messageBox("등록번호를 ", "C002");
  736. return;
  737. }
  738. model.removenode("/root/send");
  739. model.makeValue("/root/send/pid", model.getValue("/root/WorkData/scond/pid") );
  740. if(submit("TRMNP01603")){ // 수술예약정보 가져오기
  741. model.setValue("/root/WorkData/scond/pidname",model.getValue("/root/WorkData/opPatLists/opPatList/hngnm"));
  742. ipt_hngnm.refresh();
  743. fRemoveNode(7);
  744. cmb_opdd.selectedIndex = 0;
  745. opIdx = cmb_opdd.selectedIndex + 1;
  746. var sOprsrvno = model.getValue("/root/WorkData/opPatLists/opPatList["+opIdx+"]/oprsrvno");
  747. if (sOprsrvno != "") {
  748. fMnphcagoRead(1, grd_cgood, "", "", "C", sOprsrvno);
  749. }
  750. }else {
  751. messageBox("수술예약 정보가 없습니다.!", "E000");
  752. }
  753. }
  754. /**
  755. 수술명으로 수술한 환자의 리스트를 조회한다.
  756. */
  757. function fSearchPatInfo() {
  758. var curdd = getCurrentDate();
  759. var fromdd = curdd.toDate();
  760. fromdd = fromdd.getAddDate(-90, "D").getDateFormat();
  761. model.makeValue("/root/send/reqdata/opnm", model.getValue("/root/WorkData/scond/opnm"));
  762. model.makeValue("/root/send/reqdata/todd", curdd);
  763. model.makeValue("/root/send/reqdata/fromdd", fromdd);
  764. submit("TRMNP01605");
  765. }
  766. /* ------------------------------------------------- */
  767. /* desc : 사용자이름 불러오기 */
  768. /* param : pNodeID - UserId Node */
  769. /* pNodeNM - UserNm Node */
  770. /* return : */
  771. /* -------------------------------------------------- */
  772. //function fUserEnter(pPath, pNodeID,pNodeNM, pNodeDept, pNodeDeptNM, pDOC) {
  773. //
  774. // var pParam = fUseridPopupData("TRMNP00304","SMMNP00301", pDOC.currentText);
  775. //
  776. // fUserDataSet(pParam, pPath+pNodeID,pPath+pNodeNM, pPath+pNodeDept, pPath+pNodeDeptNM, pDOC);
  777. // grp_input.refresh();
  778. //}
  779. //
  780. //
  781. //function fUseridPopup(pPath, pNodeID, pNodeNM, pNodeDept, pNodeDeptNM, pDOC) {
  782. //
  783. // var pParam = fShowModal("SMMNP00301");
  784. //
  785. // fUserDataSet(pParam, pPath+pNodeID,pPath+pNodeNM, pPath+pNodeDept, pPath+pNodeDeptNM, pDOC);
  786. // grp_input.refresh();
  787. //
  788. // }
  789. //
  790. //[설 명]
  791. // nodeName : 현재 노드의 노드 명을 얻거나 변경한다.
  792. // nodeType : 현재 노드의 노드 타입을 얻거나 변경한다.
  793. // nodeTypedValue : 저장은 없음 -> text 를 이용해야한다.
  794. // nodeValue : 현재 노드의 노드 값을 얻거나 변경한다.
  795. // text : 현재 노드와 그 자식 노드에서 텍스트 노드의 컨텐츠를 얻거나 변경한다.
  796. //
  797. //[구현]
  798. // var ins = document.models( 0 ).instances( 0 );
  799. // var node = ins.selectSingleNode( "/root/example" );
  800. // input1.text= node.nodeName ;
  801. // input2.text= node.nodeType;
  802. // input3.text= node.nodeValue;
  803. // input4.text= node.nodeTypedValue;
  804. // input5.text= node.text ;
  805. /* ------------------------------------------------- */
  806. /* ------End Of List ------------------------------- */
  807. /* -------------------------------------------------- */