SMMNP01500.xjs 32 KB

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