SMMNP01500.xjs 30 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <Script type="xscript4.0"><![CDATA[/***************************************************************************************
  3. * System Name : KNUH2.0
  4. * Job Name : EMR
  5. * Creator :
  6. * Make Date : 2014-09-04
  7. * Description :
  8. *---------------------------------------------------------------------------------------
  9. * Modify Date Modifier Modify Description
  10. *---------------------------------------------------------------------------------------
  11. * 2014-09-04 Live Converter TF->XP
  12. *
  13. *---------------------------------------------------------------------------------------
  14. ****************************************************************************************/
  15. var xPathData = "/root/main/MnpmcartData/MnpmcartList" ; //
  16. var xPathInput = "/root/init/WorkData/InputData" ; //
  17. var tColWidth = "74,90,70,80,121,55,291,30,73,0,0,0,0,0,0,0,0,0,0#" // 집도
  18. + "74,90,70,80,121,55,179,33,70,0,0,0,0,0,0,0,0,0,0" ; // 마취
  19. var tWidth = tColWidth.split("#");
  20. /****************************************************************************************
  21. * Function : fFormInit
  22. * Description : 화면 초기화 실행
  23. * Argument :
  24. * :
  25. * return type :
  26. * Creator :
  27. ****************************************************************************************/
  28. function fFormInit() {
  29. // model.removeNodeset("/root/main/diaginfo/diagcdlist");
  30. // model.removeNodeset("/root/main/icd10indx/icd10indxcdlist");
  31. // model.removeNode("/root/main/copyoplist/diagcdlist");
  32. //var curtDate = getCurrentDate();
  33. //var curtYYMM = curtDate.substr(0, 8);
  34. //model.setValue("/root/init/WorkData/InputData/appdd", curtYYMM);
  35. //화면 open시, ICD9색인탭이 기본
  36. /*btn_icd10.selected = true;*/
  37. /*model.toggle("icd9");*/
  38. fReqGetIndxList();
  39. ds_req.clearData();
  40. var rowno = ds_req.addRow();
  41. ds_req.setColumn(rowno, "flag", "X");
  42. ds_req.setColumn(rowno, "searchitem", "XX");
  43. ds_req.setColumn(rowno, "deptflag", "011");
  44. tranf_submit({id:"TRMNP01512"
  45. , service:"opanstapp.OpAnstPatMngt"
  46. , method:"reqGetPerfDeptList"
  47. , inds:"req=ds_req"
  48. , outds:"ds_deptlist=deptlist"
  49. , args:""
  50. , callback:"fn_callback_TRMNP01512"
  51. , async:"false"
  52. });
  53. // frmf_addComboItem("group3.cmb_orddept" , "전 체", "", "above");
  54. // addComboItem("cmb_orddept2" , "전 체", "", "above" );
  55. // removeComboItem("cmb_orddept2" , "전 체", "", "above" );
  56. grdf_setGridSort(group3.grd_cartlist);
  57. // grd_cartlist.fixedcellcheckbox(0,1) = true;
  58. var arrParam = [{dsNm: "ds_M0016", cdGrpId: "M0016"}
  59. ,{dsNm: "ds_M0357", cdGrpId: "M0357"}
  60. ,{dsNm: "ds_M0017", cdGrpId: "M0017"}
  61. ,{dsNm: "ds_M0341", cdGrpId: "M0341"}
  62. ]
  63. appf_getCodeList(arrParam);
  64. // model.makeNode("/root/hidden/updatelist");
  65. var jobkindcd = sysf_getUserInfo("jobkindcd");
  66. var jobcd = jobkindcd.substr(0,2);
  67. if( !utlf_isNull(jobkindcd) && jobcd == "03"){ // 집도과, 집도의, 수술명이 사용유무 정보가 Y인 것 조회
  68. group3.cmb_orddept.value = sysf_getUserInfo("dutplcecd"); // 집도과 정보 셋팅
  69. var e = new ItemChangeEventInfo;
  70. group3.cmb_orddept.onitemchanged.fireEvent(group3.cmb_orddept,e);
  71. group3.cmb_perf.value = sysf_getUserInfo("userid"); // 집도의 정보 셋팅
  72. group3.radio1.value = "Y"; // 수술명 사용이 Y인 것만 조회
  73. var e = new ClickEventInfo;
  74. group3.button4.onclick.fireEvent(group3.button4,e);
  75. group3.grd_cartlist.setFocus();
  76. }
  77. }
  78. /****************************************************************************************
  79. * Function : fReqGetIndxList
  80. * Description : ICD9 INDEX 조회
  81. * Argument :
  82. * :
  83. * return type :
  84. * Creator :
  85. ****************************************************************************************/
  86. function fReqGetIndxList(){
  87. ds_reqdata.clearData();
  88. ds_reqdata.setColumn(ds_reqdata.addRow(),"indxflag","9");
  89. tranf_submit({id:"TRMNP01502"
  90. , service:"opanstapp.OpAnstStocMngt"
  91. , method:"reqGetIndxList"
  92. , inds:"reqdata=ds_reqdata"
  93. , outds:"ds_indxcdlist=indxcdlist"
  94. , args:""
  95. , callback:""
  96. , async:"false"
  97. });
  98. }
  99. /****************************************************************************************
  100. * Function : fReqGetICD9CDList
  101. * Description : ICD9 용어 조회
  102. * Argument :
  103. * :
  104. * return type :
  105. * Creator :
  106. ****************************************************************************************/
  107. function fReqGetICD9CDList(pFlag){
  108. var indxcd, refopnm, refcond, condflag;
  109. if( ds_indxcdlist.rowposition > -1 ) {
  110. var nRow = ds_indxcdlist.rowposition; //현재 선택된 row
  111. var nLev = ds_indxcdlist.getColumn(nRow, "levl"); //현재 가르키고 있는 레벨 값
  112. //현재 가르키고 있는 값의 자식의 row 구하기
  113. var nLastChildRow = group3.grp_grid.switch1.icd9.trv_icd9indxcdlist.getTreeChildRow(nRow, 0);
  114. sysf_trace(nLastChildRow);
  115. if(nLastChildRow > -1){ //자식노드가 있을경우->상위index를 클릭한 경우, 조회하지 않는다.
  116. return;
  117. }
  118. indxcd = ds_indxcdlist.getColumn(nRow, "indxcd");
  119. }
  120. if( pFlag == "2" ) {//Tree 조회시
  121. //트리 선택시 검색어 및 전체 검색 초기화
  122. group3.grp_sea.input1.value = "";
  123. group3.grp_sea.checkbox1.value = "";
  124. }else if ( pFlag == "1" ) {//검색조건 조회시 전체 검색
  125. group3.grp_sea.checkbox1.value = "ALL";
  126. }
  127. refopnm = group3.grp_sea.input1.value;
  128. refcond = group3.grp_sea.checkbox1.value;
  129. condflag = utlf_isHangul(refopnm);
  130. if( indxcd == "" ) { indxcd = "0"; }//인덱스 코드가 없으면 0으로 셋팅 맵핑시 인덱스 코드가 없으면 값이 안넘어감.
  131. if( (indxcd == "0")&&(refopnm == "") ) {
  132. sysf_messageBox("수술명 검색 조건을 입력하지 ", "E007");
  133. return;
  134. }
  135. ds_reqdata.clearData();
  136. ds_reqdata.setColumn(ds_reqdata.addRow(),"icd9indxcd",indxcd);
  137. ds_reqdata.setColumn(ds_reqdata.addRow(),"refopnm" ,refopnm);
  138. ds_reqdata.setColumn(ds_reqdata.addRow(),"refcond" ,refcond);
  139. ds_reqdata.setColumn(ds_reqdata.addRow(),"condflag" ,condflag);
  140. tranf_submit({id:"TRMNP01511"
  141. , service:"opanstapp.OpAnstStocMngt"
  142. , method:"reqGetICD9CdList"
  143. , inds:"reqdata=ds_reqdata"
  144. , outds:"ds_grd_cartlist=diagcdlist"
  145. , args:""
  146. , callback:""
  147. , async:"false"
  148. });
  149. }
  150. /****************************************************************************************
  151. * Function : fSelectOpNm
  152. * Description : 수술명 복사
  153. * Argument :
  154. * :
  155. * return type :
  156. * Creator :
  157. ****************************************************************************************/
  158. function fSelectOpNm(){
  159. var cnt = 0;
  160. ds_grd_copyoplist.clearData(); //수술명복사 그리드 초기화
  161. for( var iRow = 0; iRow <= ds_grd_cartlist.rowcount; iRow++ ) {
  162. if(ds_grd_cartlist.getColumn(iRow,"chkflag")=="1") {
  163. if(ds_grd_cartlist.getColumn(iRow,"ccrtno")!="") {
  164. if(ds_grd_cartlist.getColumn(iRow,"useflag")=="N") {
  165. sysf_messageBox("미 사용중인 수술명은 선택 ", "E001");
  166. ds_grd_copyoplist.clearData();
  167. return;
  168. }
  169. ds_grd_copyoplist.copyRow(ds_grd_copyoplist.addRow(),ds_grd_cartlist,iRow); // 해당 데이터셋 카피(1열)
  170. cnt++;
  171. }else {
  172. sysf_messageBox("미 등록된 수술명은 선택 ", "E001");
  173. ds_grd_copyoplist.clearData();
  174. return;
  175. }
  176. }
  177. }
  178. if( cnt < 1 ) {
  179. sysf_messageBox("선택하신 수술명이 ", "I004");
  180. return;
  181. }
  182. }
  183. /****************************************************************************************
  184. * Function : fSearchCartList
  185. * Description : Case Cart MASTER 정보 가져오기
  186. * Argument :
  187. * :
  188. * return type :
  189. * Creator :
  190. ****************************************************************************************/
  191. function fSearchCartList() {
  192. if(group3.cmb_orddept.value == "") {
  193. sysf_messageBox("집도과를 선택하지 ", "E007");
  194. group3.cmb_orddept.setFocus();
  195. return;
  196. }
  197. ds_reqdata.clearData();
  198. var rowno = ds_reqdata.addRow();
  199. ds_reqdata.setColumn(rowno, "perfdeptcd", group3.cmb_orddept.value);
  200. ds_reqdata.setColumn(rowno, "perfdrid", group3.cmb_perf.value);
  201. ds_reqdata.setColumn(rowno, "useflag", group3.radio1.value);
  202. ds_reqdata.setColumn(rowno, "cartgubn", "O");
  203. tranf_submit({id:"TRMNP01513"
  204. , service:"opanstapp.OpAnstStocMngt"
  205. , method:"reqGetOpNmList"
  206. , inds:"reqdata=ds_reqdata"
  207. , outds:"ds_grd_cartlist=diagcdlist"
  208. , args:""
  209. , callback:""
  210. , async:"false"
  211. });
  212. }
  213. /****************************************************************************************
  214. * Function : fClear
  215. * Description : 수술명 복사 초기화
  216. * Argument :
  217. * :
  218. * return type :
  219. * Creator :
  220. ****************************************************************************************/
  221. function fClear() {
  222. ds_grd_copyoplist.clearData(); //수술명복사 그리드 초기화
  223. ds_init_cmb_perf2.clearData(); //집도의 콤보리스트 초기화
  224. group3.cmb_orddept2.value = ""; //수술명복사 집도과 초기화
  225. group3.cmb_perf2.value = ""; //수술명복사 집도의 초기화
  226. group3.rd_copyflag.value = ""; //수술명복사 조건 초기화
  227. }
  228. /****************************************************************************************
  229. * Function : fOpNmSave
  230. * Description : Case Cart MASTER 자료저장하기
  231. * Argument :
  232. * :
  233. * return type :
  234. * Creator :
  235. ****************************************************************************************/
  236. function fOpNmSave(pFlag){
  237. var ccrtno, opcd, useflag, statflag;
  238. var cnt = 0;
  239. var perfdeptcd = group3.cmb_orddept.value;
  240. var perfdrid = group3.cmb_perf.value;
  241. var deptinit = ds_init_cmb_orddept.getColumn(ds_init_cmb_orddept.findRow("deptcd='"+perfdeptcd+"'"), "deptengabbr");
  242. sysf_trace("deptinit : "+deptinit);
  243. if( perfdeptcd == "" ) {
  244. sysf_messageBox("집도과를 선택하지 ", "E007");
  245. group3.cmb_orddept.setFocus();
  246. return;
  247. }
  248. if( perfdrid == "" ) {
  249. sysf_messageBox("집도의를 선택하지 ", "E007");
  250. group3.cmb_perf.setFocus();
  251. return;
  252. }
  253. ds_savedata.clearData();
  254. for(var iRow = 0; iRow < ds_grd_cartlist.rowcount; iRow++ ) {
  255. if( ds_grd_cartlist.getColumn(iRow, "chkflag") == "1") {
  256. ccrtno = ds_grd_cartlist.getColumn(iRow, "ccrtno");
  257. opcd = ds_grd_cartlist.getColumn(iRow, "opcd");
  258. useflag = ds_grd_cartlist.getColumn(iRow, "useflag");
  259. usehours = ds_grd_cartlist.getColumn(iRow, "usehours"); // 소요시간(시)
  260. usemins = ds_grd_cartlist.getColumn(iRow, "usemins"); // 소요시간(분)
  261. opposturecd = ds_grd_cartlist.getColumn(iRow, "opposturecd"); // 수술체위
  262. opdirecflag = ds_grd_cartlist.getColumn(iRow, "opdirecflag"); //수술위치
  263. anstmthdcd = ds_grd_cartlist.getColumn(iRow, "anstmthdcd"); //마취방법
  264. opcntmdg = ds_grd_cartlist.getColumn(iRow, "opcntmdg"); //수술창상
  265. opusetm = usehours.concat(usemins);
  266. uptstat = ds_grd_cartlist.getColumn(iRow, "uptstat"); //update상태 정보
  267. if( pFlag != "D" ) {
  268. if( useflag == "Y" && uptstat != "U") {
  269. sysf_messageBox("이미 사용중인 수술명", "E008");
  270. return;
  271. }
  272. }else {
  273. if( useflag == "N" ) {
  274. sysf_messageBox("이미 미사용 수술명", "E008");
  275. return;
  276. }
  277. }
  278. if( ccrtno == "" ) {//등록된 카트가 아니면 신규등록, 등록된 카트이면서 미사용중이면 수정
  279. statflag = "I";
  280. useflag = "Y"
  281. }else {
  282. statflag = "U";
  283. useflag = "Y"
  284. }
  285. if( pFlag == "D" ) {//삭제이면
  286. statflag = "D";
  287. useflag = "N"
  288. }
  289. var rowno1 = ds_savedata.addRow();
  290. ds_savedata.setColumn(rowno1, "m" , statflag);
  291. ds_savedata.setColumn(rowno1, "opcd" , opcd);
  292. ds_savedata.setColumn(rowno1, "orddeptcd" , perfdeptcd);
  293. ds_savedata.setColumn(rowno1, "perfid" , perfdrid);
  294. ds_savedata.setColumn(rowno1, "cartgubn" , "O");
  295. ds_savedata.setColumn(rowno1, "useflag" , useflag);
  296. ds_savedata.setColumn(rowno1, "deptinit" , deptinit);
  297. ds_savedata.setColumn(rowno1, "ccrtno" , ccrtno);
  298. ds_savedata.setColumn(rowno1, "opusetm" , opusetm);
  299. ds_savedata.setColumn(rowno1, "opposturecd" , opposturecd);
  300. ds_savedata.setColumn(rowno1, "opdirecflag" , opdirecflag);
  301. ds_savedata.setColumn(rowno1, "anstmthdcd" , anstmthdcd);
  302. ds_savedata.setColumn(rowno1, "opcntmdg" , opcntmdg);
  303. cnt++;
  304. }
  305. }
  306. if( cnt > 0 ) {
  307. ds_reqdata.clearData();
  308. var rowno = ds_reqdata.addRow();
  309. ds_reqdata.setColumn(rowno, "perfdeptcd", perfdeptcd);
  310. ds_reqdata.setColumn(rowno, "perfdrid" , perfdrid);
  311. ds_reqdata.setColumn(rowno, "useflag" , group3.radio1.value);
  312. ds_reqdata.setColumn(rowno, "cartgubn" , "O");
  313. tranf_submit({id:"TXMNP01503"
  314. , service:"opanstapp.OpAnstStocMngt"
  315. , method:"reqInsOpNmList"
  316. , inds:"reqdata=ds_reqdata savedata=ds_savedata"
  317. , outds:"ds_grd_cartlist=diagcdlist"
  318. , args:""
  319. , callback:""
  320. , async:"false"
  321. });
  322. }else {
  323. sysf_messageBox("선택하신 수술명이 ", "E007");
  324. return;
  325. }
  326. }
  327. /* ------------------------------------------------- */
  328. /* desc : Case Cart MASTER 자료저장하기 */
  329. /* param : pModel - Model */
  330. /* tNode - Target Node */
  331. /* sNode - Source Node */
  332. /* return : */
  333. /* -------------------------------------------------- */
  334. function fRow2setValue(){
  335. var grdID;
  336. if( model.getValue("/root/init/WorkData/cond/cartgubn") == "O" ) {//수술
  337. grdID = grd_cartlist;
  338. } else {
  339. grdID = grd_anstcartlist;
  340. }
  341. if (grdID.rows < 1) {
  342. return;
  343. }
  344. var DrRead = "N";
  345. var sNode = "/root/main/MnpmcartData/MnpmcartList["+grdID.row+"]";
  346. model.setValue(xPathInput + "/ccrtno" , model.getValue(sNode +"/ccrtno" ));
  347. var DeptCode = model.getValue(sNode +"/orddeptcd" );
  348. if (inp_orddeptcd.value != DeptCode) DrRead = "Y";
  349. model.removenode("/root/send");
  350. model.makeValue("/root/send/reqdata/conflag", "2");
  351. model.makeValue("/root/send/reqdata/lrgcd", model.getValue(sNode +"/lrgcd"));
  352. submit("TRMNP01505", false);
  353. model.removenode("/root/send");
  354. model.makeValue("/root/send/reqdata/opgrp1" , model.getValue(sNode +"/lrgcd"));
  355. model.makeValue("/root/send/reqdata/opgrp2" , model.getValue(sNode +"/mdlcd"));
  356. model.makeValue("/root/send/reqdata/sortflag" , "N");
  357. submit("TRMNP01503", false);
  358. model.setValue(xPathInput + "/orddeptcd" , model.getValue(sNode +"/orddeptcd"));
  359. model.setValue(xPathInput + "/perfid" , model.getValue(sNode +"/perfid"));
  360. model.setValue(xPathInput + "/opcd" , model.getValue(sNode +"/opcd"));
  361. model.setValue(xPathInput + "/appdd" , model.getValue(sNode +"/appdd"));
  362. model.setValue(xPathInput + "/perfavgoptm" , model.getValue(sNode +"/perfavgoptm"));
  363. model.setValue(xPathInput + "/perfavgdowntm", model.getValue(sNode +"/perfavgdowntm"));
  364. model.setValue(xPathInput + "/useflag" , model.getValue(sNode +"/useflag"));
  365. model.setValue(xPathInput + "/anstkind" , model.getValue(sNode +"/anstkind"));
  366. model.setValue(xPathInput + "/anstageflag" , model.getValue(sNode +"/anstageflag"));
  367. model.setValue(xPathInput + "/lrgcd" , model.getValue(sNode +"/lrgcd"));
  368. model.setValue(xPathInput + "/mdlcd" , model.getValue(sNode +"/mdlcd"));
  369. if ( DrRead == "Y") fDrCombo(2, DeptCode); // 집도(마취의) 가져오기
  370. grp_input.refresh();
  371. }
  372. /****************************************************************************************
  373. * Function : fOpCopy
  374. * Description : 수술명 복사
  375. * Argument :
  376. * :
  377. * return type :
  378. * Creator :
  379. ****************************************************************************************/
  380. function fOpCopy(){
  381. var perfdeptcd = group3.cmb_orddept2.value;
  382. var perfid = group3.cmb_perf2.value;
  383. var copyflag = group3.rd_copyflag.value;
  384. if( perfdeptcd == "" ) {
  385. sysf_messageBox("복사할 집도과를 ", "C002");
  386. group3.cmb_orddept2.setFocus();
  387. return;
  388. }else if( perfid == "" ) {
  389. sysf_messageBox("복사할 집도의를 ", "C002");
  390. group3.cmb_perf2.setFocus();
  391. return;
  392. }else if( copyflag == "" ) {
  393. sysf_messageBox("복사 조건을 ", "C002");
  394. group3.rd_copyflag.setFocus();
  395. return;
  396. }
  397. var cnt = 0;
  398. for( var i=0; i < ds_grd_copyoplist.rowcount; i++ ) {
  399. var chk = ds_grd_copyoplist.getColumn(i,"chkflag");
  400. var opcd = ds_grd_copyoplist.getColumn(i,"opcd");
  401. var ccrtno = ds_grd_copyoplist.getColumn(i,"ccrtno");
  402. var opposturecd = ds_grd_copyoplist.getColumn(i,"opposturecd"); //수술체위
  403. var opdirecflag = ds_grd_copyoplist.getColumn(i,"opdirecflag"); //수술위치
  404. var anstmthdcd = ds_grd_copyoplist.getColumn(i,"anstmthdcd"); //마취방법
  405. var opcntmdg = ds_grd_copyoplist.getColumn(i,"opcntmdg"); //수술창상
  406. var usehours = ds_grd_copyoplist.getColumn(i,"usehours"); //소요시간(시)
  407. var usemins = ds_grd_copyoplist.getColumn(i,"usemins"); //소요시간(분)
  408. var opusetm = usehours.concat(usemins);
  409. if( chk == "1" ) {
  410. ds_copylist.clearData();
  411. var nRow = ds_copylist.addRow();
  412. ds_copylist.setColumn(nRow,"ccrtno" ,ccrtno);
  413. ds_copylist.setColumn(nRow,"opcd" ,opcd);
  414. ds_copylist.setColumn(nRow,"copyflag" ,copyflag);
  415. ds_copylist.setColumn(nRow,"perfdeptcd" ,perfdeptcd);
  416. ds_copylist.setColumn(nRow,"perfid" ,perfid);
  417. ds_copylist.setColumn(nRow,"opusetm" ,opusetm);
  418. ds_copylist.setColumn(nRow,"opposturecd",opposturecd);
  419. ds_copylist.setColumn(nRow,"opdirecflag",opdirecflag);
  420. ds_copylist.setColumn(nRow,"anstmthdcd" ,anstmthdcd);
  421. ds_copylist.setColumn(nRow,"opcntmdg" ,opcntmdg);
  422. cnt++;
  423. }
  424. }
  425. if( cnt > 0 ) {
  426. tranf_submit({id:"TXMNP01502"
  427. , service:"opanstapp.OpAnstCCrtGoodMngt"
  428. , method:"reqInsCopyCartList"
  429. , inds:"copylist=ds_copylist"
  430. , outds:""
  431. , args:""
  432. , callback:""
  433. , async:"false"
  434. });
  435. fClear();//수술명 복사 초기화
  436. }else {
  437. sysf_messageBox("선택하신 수술명이 ", "I004");
  438. }
  439. }
  440. function fCheckCartCode(pCode){
  441. var sCode = "";
  442. var sNode = "/root/main/MnpmcartData/MnpmcartList";
  443. var sRowCnt = grd_cartlist.rows-grd_cartlist.fixedrows;
  444. for (var i=1;i<=sRowCnt; i++){
  445. sCode = model.getValue(sNode + "["+i+"]/ccrtno");
  446. if (pCode == sCode) {
  447. return true;
  448. }
  449. }
  450. return false;
  451. }
  452. function fOpCodePopup() {
  453. var xpos = event.screenX;
  454. var ypos = event.screenY-300;
  455. open("SPMNP01500", 1, xpos, ypos,"SPMNP01500","/root/init/WorkData/oplist", "/root/Cond/oplist");
  456. var iProperties = getParameter("SendData");
  457. var iSplit_Value = iProperties.split("|");
  458. if (iSplit_Value.length > 0) {
  459. model.setValue(xPathInput + "/opcd" , iSplit_Value[0]); // CODE
  460. model.setValue(xPathInput + "/opkname", iSplit_Value[1]); // NAME
  461. }
  462. }
  463. // --------------------------------------------------
  464. // Switch 속성변경 처리하는 함수
  465. // --------------------------------------------------
  466. function fViewToggle() {
  467. if (sToggle == 0) {
  468. grp_grid.attribute("width" ) = "1195";
  469. lin_grid.attribute("x2" ) = "1195";
  470. grd_cartlist.attribute("width" ) = "1195";
  471. bbt_excel.visible = true;
  472. } else {
  473. bbt_excel.visible = false;
  474. grp_grid.attribute("width" ) = "726";
  475. lin_grid.attribute("x2" ) = "724";
  476. grd_cartlist.attribute("width" ) = "724";
  477. }
  478. grp_grid.refresh();
  479. }
  480. /* --------------------------------------------------*/
  481. /* type : function */
  482. /* access : public */
  483. /* desc : 집도과(마취과) 콤보아이템 가져오기 */
  484. /* param : */
  485. /* return : */
  486. /* --------------------------------------------------*/
  487. function fDeptCombo(pFlag) {
  488. removeComboItem("cmb_orddept" );
  489. model.removenode("/root/send" );
  490. model.makeValue("/root/send/flag" , "X" );
  491. model.makeValue("/root/send/searchitem", "XX" );
  492. model.makeValue("/root/send/deptflag" , pFlag );
  493. submit("TRMNP00102", false);
  494. model.removeNodeset("/root/main/DeptLists/deptlist");
  495. model.copyNode("/root/main/DeptLists", "/root/init/DeptLists");
  496. }
  497. /****************************************************************************************
  498. * Function : fDrCombo
  499. * Description : 집도의(마취의) 콤보아이템 가져오기
  500. * Argument :
  501. * :
  502. * return type :
  503. * Creator :
  504. ****************************************************************************************/
  505. function fDrCombo(pCls, pDept) {
  506. ds_reqdata.clearData();
  507. ds_reqdata.setColumn(ds_reqdata.addRow(), "orddept", pDept);
  508. tranf_submit({id:"TRMNP00103"
  509. , service:"opanstapp.OpAnstPatMngt"
  510. , method:"reqGetDrInfo"
  511. , inds:"reqdata=ds_reqdata"
  512. , outds:"ds_drlist=drlist"
  513. , args:""
  514. , callback:""
  515. , async:"false"
  516. });
  517. if (pCls ==1) {//수술명 등록용 집도의 리스트
  518. ds_init_cmb_perf.clearData();
  519. dsf_copyDs(ds_init_cmb_perf, ds_drlist, "replace");
  520. frmf_addComboItem("group3.cmb_perf" , "전 체", "", "above");
  521. }
  522. if (pCls ==2) {//수술명 복사용 집도의 리스트
  523. ds_init_cmb_perf2.clearData();
  524. dsf_copyDs(ds_init_cmb_perf2, ds_drlist, "replace");
  525. frmf_addComboItem("group3.cmb_perf2" , "전 체", "", "above");
  526. }
  527. }
  528. /* --------------------------------------------------*/
  529. /* type : function */
  530. /* access : public */
  531. /* desc : 콤보아이템 제거 */
  532. /* param : */
  533. /* return : */
  534. /* --------------------------------------------------*/
  535. function removeComboItem( comboID ) {
  536. var comboObj = document.all.item(comboID);
  537. var comboItemNodeSet = comboObj.choices.itemset.attribute("nodeset");
  538. model.removenode(comboItemNodeSet + "[1]");
  539. model.refresh();
  540. }
  541. // --------------------------------------------------
  542. // 화면 Query 시 처리하는 함수
  543. // --------------------------------------------------
  544. function fCheckCartGubn() {
  545. var sCartGubn = model.getValue("/root/init/WorkData/cond/cartgubn"); // Cart구분 O:수술
  546. model.removeNodeset("/root/main/MnpmcartData/MnpmcartList");
  547. model.setValue("/root/init/WorkData/cond/anstkind" , "");
  548. model.setValue("/root/init/WorkData/cond/anstageflag", "");
  549. model.setValue(xPathInput + "/anstkind" , "");
  550. model.setValue(xPathInput + "/anstageflag", "");
  551. //cmb_anstkind.refresh();
  552. //cmb_anstageflag.refresh();
  553. if (sCartGubn == "O") {
  554. cap_dr.text = "집 도 의";
  555. cap_dept.text = "집 도 과";
  556. cap_in_dr.text = "집 도 의";
  557. cap_in_dept.text = "집 도 과";
  558. cmb_anstkind.disabled = true; //마취방법 비활성화
  559. cmb_anstageflag.disabled = true; //연령대 비활성화
  560. grd_anstcartlist.visible = flase;
  561. grd_cartlist.visible = true;
  562. model.setValue(xPathInput + "/anstopflag" , "");
  563. grp_dr.disabled = true;
  564. cmb_orddept.disabled = false;
  565. //grd_cartlist.colhidden(2) = false;
  566. //grd_cartlist.colhidden(4) = true;
  567. //grd_cartlist.colhidden(5) = true;
  568. model.removeNodeset("/root/init/drlist");
  569. fDeptCombo("011"); // 집도과
  570. addComboItem("cmb_orddept", "전 체", "", "above" );
  571. } else {
  572. cap_dr.text = "마 취 의";
  573. cap_dept.text = "마 취 과";
  574. cap_in_dr.text = "마 취 의";
  575. cap_in_dept.text = "마 취 과";
  576. cmb_anstkind.disabled = false; //마취방법 활성화
  577. cmb_anstageflag.disabled = false; //연령대 활성화
  578. grd_anstcartlist.visible = true;
  579. grd_cartlist.visible = false;
  580. grp_dr.disabled = false;
  581. cmb_orddept.disabled = true;
  582. //grd_cartlist.colhidden(2) = true;
  583. //grd_cartlist.colhidden(4) = false;
  584. //grd_cartlist.colhidden(5) = false;
  585. fDeptCombo("012"); // 마취과
  586. }
  587. fInputDataClear();
  588. var curtDate = getCurrentDate();
  589. var curtYYMM = curtDate.substr(0, 8);
  590. model.setValue("/root/init/WorkData/InputData/appdd", curtYYMM);//적용일자는 현재일로 셋팅
  591. cmb_orddept.selectedIndex = 1;
  592. fDrCombo(1, model.getValue("/root/init/WorkData/cond/orddept"));
  593. model.refresh();
  594. }
  595. //
  596. function fInputDataClear() {
  597. model.setValue(xPathInput + "/ccrtno" ,"" );
  598. model.setValue(xPathInput + "/orddeptcd" ,"" );
  599. model.setValue(xPathInput + "/perfid" ,"" );
  600. model.setValue(xPathInput + "/opcd" ,"" );
  601. model.setValue(xPathInput + "/appdd" ,"" );
  602. model.setValue(xPathInput + "/perfavgoptm" ,"" );
  603. model.setValue(xPathInput + "/perfavgdowntm","" );
  604. model.setValue(xPathInput + "/useflag" ,"Y" );
  605. model.setValue(xPathInput + "/recstat" ,"" );
  606. model.setValue(xPathInput + "/depthngnm" ,"" );
  607. model.setValue(xPathInput + "/usernm" ,"" );
  608. model.setValue(xPathInput + "/opkname" ,"" );
  609. model.setValue(xPathInput + "/anstkind" ,"" );
  610. model.setValue(xPathInput + "/anstageflag" ,"");
  611. model.setValue(xPathInput + "/anstopflag" ,"");
  612. model.setValue(xPathInput + "/copydr" ,"" );
  613. model.setValue(xPathInput + "/copydept" ,"" );
  614. model.setValue(xPathInput + "/nameflag" ,"" );
  615. model.setValue(xPathInput + "/copyflag" ,"" );
  616. grp_input.refresh();
  617. }
  618. // --------------------------------------------------
  619. // Grid 속성변경 처리하는 함수
  620. // --------------------------------------------------
  621. function fSetAttribute(pIdx) {
  622. var sWidth = tWidth[pIdx].split(",");
  623. for (i = 0; i < sWidth.length; i++) {
  624. grd_cartlist.colwidth(i+1) = sWidth[i];
  625. }
  626. }
  627. /* ------------------------------------------------- */
  628. /* SMMNP01500_Case Cart MASTER */
  629. /* */
  630. /* ------------------------------------------------- */
  631. /* group : EMR 간호 수술마취 */
  632. /* ver : 2008.10.14 */
  633. /* by : 김진명 */
  634. /* ------------------------------------------------- */
  635. /* SMMNP01500_Case Cart MASTER */
  636. /* */
  637. /* desc :수술명 사용 전환 */
  638. /* --------------------------------------------------*/
  639. function fConvertOP(useflag) {
  640. model.removenode("/root/send");
  641. var SendData = "ccrtno▦useflag";
  642. var ccrtno, cnt=0;
  643. for( var i = 0; i < grd_cartlist.rows; i++ ) {
  644. if( model.getValue("/root/main/MnpmcartData/MnpmcartList[" + i + "]/chk") == "true" ) {
  645. cnt++
  646. ccrtno = model.getValue("/root/main/MnpmcartData/MnpmcartList[" + i + "]/ccrtno")
  647. SendData = SendData + "▩" + ccrtno + "▦" + useflag;
  648. }
  649. }
  650. if( cnt > 0 ) {
  651. model.makeValue("/root/send/senddata", SendData);
  652. model.makeValue("/root/send/reqdata/orddeptcd" , model.getValue("/root/init/WorkData/cond/orddept" )); // 진료과코드
  653. model.makeValue("/root/send/reqdata/perfid" , model.getValue("/root/init/WorkData/cond/perfdr" )); // 집도의ID
  654. model.makeValue("/root/send/reqdata/useflag" , model.getValue("/root/init/WorkData/cond/useflag" )); // 사용여부
  655. model.makeValue("/root/send/reqdata/cartgubn" , model.getValue("/root/init/WorkData/cond/cartgubn" )); // Cart구분(O:수술,A:마취)
  656. model.makeValue("/root/send/reqdata/anstkind" , model.getValue("/root/init/WorkData/cond/anstkind" )); // 마취종류(코드정의서 M0017 참조)
  657. model.makeValue("/root/send/reqdata/anstageflag", model.getValue("/root/init/WorkData/cond/anstageflag")); // 수술마취나이구분(코드 M0246 참조)
  658. submit("TXMNP01501"); // 수술명 사용 전환
  659. }
  660. }
  661. /****************************************************************************************
  662. * Function : fCheckUseHours
  663. * Description : 수술소요 시간(hour)입력 정보 체크 및 수정
  664. * Argument :
  665. * :
  666. * return type :
  667. * Creator :
  668. ****************************************************************************************/
  669. function fCheckUseHours(grdFlag, selRow){
  670. var hours;
  671. if(grdFlag == "original") hours = ds_grd_cartlist.getColumn(selRow,"usehours");
  672. if(grdFlag == "copy") hours = ds_grd_copyoplist.getColumn(selRow,"usehours");
  673. var addZeroHours = "0";
  674. if(isNull(hours) ){
  675. return addZeroHours.concat("0");
  676. }else if(hours.length < 2){
  677. return addZeroHours.concat(hours);
  678. }else{
  679. return hours;
  680. }
  681. }
  682. /****************************************************************************************
  683. * Function : fn_callback_TRMNP01512
  684. * Description : 과/의사 정보 불러와 집도과/집도의 콤보데이터셋에 copy
  685. * Argument :
  686. * :
  687. * return type :
  688. * Creator :
  689. ****************************************************************************************/
  690. function fn_callback_TRMNP01512() {
  691. dsf_copyDs(ds_init_cmb_orddept, ds_deptlist, "replace");
  692. dsf_copyDs(ds_init_cmb_orddept2, ds_deptlist, "replace");
  693. }
  694. /* ------------------------------------------------- */
  695. /* ------End Of List ------------------------------- */
  696. /* -------------------------------------------------- */
  697. ]]></Script>