SPMMR01000.xjs 33 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <Script type="xscript4.0"><![CDATA[/***************************************************************************************
  3. * System Name : DBS
  4. * Job Name :
  5. * File Name : SPMMR01000.xjs
  6. * Creator :
  7. * Make Date : 2015-01-13
  8. *
  9. * Description :
  10. *---------------------------------------------------------------------------------------
  11. * Modify Date Modifier Modify Description
  12. *---------------------------------------------------------------------------------------
  13. * 2015-01-13 DBS Converting Program(TF->XP)
  14. *
  15. *---------------------------------------------------------------------------------------
  16. ****************************************************************************************/
  17. //=======================================================================================
  18. // Global Form Variable
  19. //---------------------------------------------------------------------------------------
  20. var arErrorCode = new HashArray();
  21. //=======================================================================================
  22. // Function
  23. //---------------------------------------------------------------------------------------
  24. /****************************************************************************************
  25. * Argument : 01.sKey : 코드아이디
  26. * : 02.sValue : 코드명
  27. * Description : 공통코드를 가져온다.
  28. ****************************************************************************************/
  29. function lf_btn_tabChanged(objNm){
  30. var arrObjId = ["btn_user","btn_dept","btn_all","btn_imgsrch","btn_master","btn_prof","btn_ocr"];
  31. for(var i in arrObjId){
  32. if( arrObjId[i] == objNm ){
  33. eval(arrObjId[i]).setSelectStatus(true);
  34. }else{
  35. eval(arrObjId[i]).setSelectStatus(false);
  36. }
  37. }
  38. if( objNm == "btn_user" ){ // 개인
  39. switch1.tabindex = 0;
  40. ds_init.setColumn(0, "tabflag", "I");
  41. fSelectIndxList();
  42. }else if( objNm == "btn_dept" ){ //과
  43. switch1.tabindex = 1;
  44. ds_init.setColumn(0, "tabflag", "D");
  45. fSelectIndxList();
  46. }else if( objNm == "btn_all" ){ // 전체과
  47. switch1.tabindex = 2;
  48. ds_init.setColumn(0, "tabflag", "A");
  49. fSelectIndxList();
  50. }else if( objNm == "btn_imgsrch" ){ // 검색
  51. switch1.tabindex = 3;
  52. }else if( objNm == "btn_master" ){ // 마스터 hidden
  53. switch1.tabindex = 4;
  54. ds_init.setColumn(0, "tabflag", "M");
  55. fSelectIndxList();
  56. }else if( objNm == "btn_prof" ){ // 제증명 hidden
  57. switch1.tabindex = 5;
  58. fGetProfForm();
  59. }else if( objNm == "btn_ocr" ){ // OCR hidden
  60. switch1.tabindex = 6;
  61. fOcrTreeSrch();
  62. }
  63. }
  64. /*
  65. - ▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩
  66. 서식리스트 ( SPMMR01000_서식리스트.xrw - JScript )
  67. - Version :
  68. 1) : Ver.1.00.01
  69. - ▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩
  70. */
  71. var gUpath = ds_main_userlist_pflist;
  72. var gDpath = ds_main_deptlist_pflist;
  73. var gApath = ds_main_alllist_pflist;
  74. var gMpath = ds_main_mastlist_pflist;
  75. var gTpath = ds_tmp_pflist;
  76. var chosflag = "-";
  77. var indxflag = "";
  78. var uid = sysf_getUserId();
  79. var dcd = sysf_getUserInfo("dutplcecd");
  80. /**
  81. * @desc : 사이즈조절
  82. * @id : trv_formlist
  83. * @event : DOMActivate
  84. * @return : void
  85. * @authur : 박종훈
  86. */
  87. function fInitPage(heig, wid)
  88. {
  89. body.position.width = wid;
  90. body.position.height = heig;
  91. var grupw = wid - 16;
  92. var gruph = heig - 10;
  93. switch1.position.x = 0;
  94. switch1.position.width = grupw;
  95. switch1.position.height = gruph - 24;
  96. trv_userlist.position.width = grupw - 2;
  97. trv_userlist.position.height = gruph - 26;
  98. trv_deptlist.position.width = grupw - 2;
  99. trv_deptlist.position.height = gruph - 26;
  100. trv_alllist.position.width = grupw - 2;
  101. trv_alllist.position.height = gruph - 26;
  102. trv_master.position.width = grupw - 2;
  103. trv_master.position.height = gruph - 26;
  104. trv_proflist.position.width = grupw - 2;
  105. trv_proflist.position.height = gruph - 26;
  106. trv_ocrlist.position.width = grupw - 2;
  107. trv_ocrlist.position.height = gruph - 26;
  108. }
  109. /**
  110. * @desc : 화면초기화
  111. * @id : trv_formlist
  112. * @event : DOMActivate
  113. * @return : void
  114. * @authur : 박종훈
  115. */
  116. function fReadyForm()
  117. {
  118. //서식분류 조회
  119. fReqMastIndx();
  120. if (fLocalYn())
  121. {
  122. uid = ds_etc.getColumn(0, "userid");
  123. dcd = ds_etc.getColumn(0, "deptcd");
  124. indxflag = ds_etc.getColumn(0, "rdo");
  125. chosflag = ds_etc.getColumn(0, "iordo");
  126. button1.visible = true;
  127. }
  128. else
  129. {
  130. uid = sysf_getUserId();
  131. dcd = sysf_getUserInfo("dutplcecd");
  132. button1.visible = false;
  133. indxflag = oOpener.frmf_getParameter("SPMMR01000_param_flag");
  134. if(utlf_isNull(indxflag))
  135. indxflag = "P";
  136. var pamInfoCvs = sysf_getGlobalVariable("paminfo"); //상단정보가 있을 경우는 검색
  137. if(!utlf_isNull(pamInfoCvs))
  138. { //cvs가 null이 아닌 경우에만 처리함.
  139. ds_main_paminfo.clearData();
  140. dsf_setCSVToDs("ds_main_paminfo", pamInfoCvs);
  141. if (!utlf_isNull(ds_main_paminfo.getColumn(0, "ioflag")))
  142. {
  143. chosflag = ds_main_paminfo.getColumn(0, "ioflag");
  144. }
  145. }
  146. }
  147. ds_init.setColumn(0, "indxflag", indxflag);
  148. if (indxflag == "F")
  149. {
  150. btn_imgsrch.visible = false;
  151. btn_master.visible = true;
  152. var openerid = oOpener.frmf_getParameter("SPMMR01000_openerid"); //부모의 화면번호
  153. if (openerid != "SMMMR00100")
  154. {
  155. btn_ocr.visible = true; //기록메인일경우 서식 오픈
  156. }
  157. lf_btn_tabChanged("btn_dept");
  158. }
  159. else if (indxflag == "P")
  160. {
  161. btn_imgsrch.visible = true;
  162. btn_master.visible = false;
  163. lf_btn_tabChanged("btn_dept");
  164. }
  165. }
  166. /**
  167. * @desc : 트리 인덱스 선택시
  168. * @id : trv_formlist
  169. * @event : DOMActivate
  170. * @return : void
  171. * @authur : 박종훈
  172. */
  173. function fSelectIndxList()
  174. {
  175. ds_send.clearData();
  176. ds_send.addRow();
  177. var valu = "";
  178. var flag = "";
  179. var tabflag = ds_init.getColumn(0, "tabflag");
  180. var refyn = ds_init.getColumn(0, tabflag + "ref");
  181. var formbizcls = ds_main_newform.getColumn(0, "formbizcls");
  182. if (refyn == "Y")
  183. return;
  184. ds_send.setColumn(0, "levl", "0");
  185. ds_send.setColumn(0, "imge", "");
  186. ds_send.setColumn(0, "labl", "");
  187. if (tabflag == "I")
  188. {
  189. valu = uid;
  190. flag = "userid";
  191. }
  192. else if (tabflag == "D")
  193. {
  194. valu = dcd;
  195. flag = "deptcd";
  196. }
  197. else if (tabflag == "A")
  198. {
  199. valu = dcd;
  200. }
  201. else if (tabflag == "M" && formbizcls == "07")
  202. {
  203. flag = "indxseq"
  204. }
  205. ds_send.setColumn(0, "valu", valu);
  206. ds_send.setColumn(0, "path", "");
  207. ds_send.setColumn(0, "flag", flag);
  208. ds_send.setColumn(0, "tabflag", ds_init.getColumn(0, "tabflag"));
  209. ds_send.setColumn(0, "indxflag", ds_init.getColumn(0, "indxflag"));
  210. ds_send.setColumn(0, "chosflag", chosflag);
  211. ds_send.setColumn(0, "seqcd", "0");
  212. //최초 조회시 공통도 같이 조회
  213. if(utlf_isNull(ds_main_newform.getColumn(0, "firstform"))){
  214. ds_send.setColumn(0, "formbizcls", ds_main_newform.getColumn(0, "formbizcls"));
  215. }else{
  216. ds_send.setColumn(0, "formbizcls", ds_main_newform.getColumn(0, "firstform"));
  217. ds_main_newform.setColumn(0, "firstform", "");
  218. }
  219. SetUserTimeLog("fSelectIndxList", "pre_submit");
  220. var oParam = {};
  221. oParam.id = "TRMMR01001";
  222. oParam.service = "medirecapp.ImgEdit";
  223. oParam.method = "reqGetFormImgeList";
  224. oParam.inds = "req=ds_send";
  225. oParam.outds = "ds_tmp_pflist=pflist";
  226. oParam.async = false;
  227. oParam.callback = "cf_TRMMR01001";
  228. tranf_submit(oParam);
  229. }
  230. function cf_TRMMR01001(sSvcId, nErrorCode, sErrorMsg) {
  231. if(nErrorCode < 0) return;
  232. SetUserTimeLog("fSelectIndxList", "end_submit");
  233. if (ds_init.getColumn(0, "tabflag") == "I")
  234. {
  235. gUpath.copyData(gTpath);
  236. SetUserTimeLog("fSelectIndxList", "User_copynode_end");
  237. ds_init.setColumn(0, "Iref", "Y");
  238. }
  239. else if (ds_init.getColumn(0, "tabflag") == "D")
  240. {
  241. gDpath.copyData(gTpath);
  242. SetUserTimeLog("fSelectIndxList", "Dept_copynode_end");
  243. ds_init.getColumn(0, "Dref", "Y");
  244. }
  245. else if (ds_init.getColumn(0, "tabflag") == "A")
  246. {
  247. gApath.copyData(gTpath);
  248. SetUserTimeLog("fSelectIndxList", "AllDept_copynode_end");
  249. ds_init.setColumn(0, "Aref", "Y");
  250. }
  251. else if (ds_init.getColumn(0, "tabflag") == "M")
  252. {
  253. gMpath.copyData(gTpath);
  254. SetUserTimeLog("fSelectIndxList", "Master_copynode_end");
  255. ds_init.setColumn(0, "Mref", "Y");
  256. }
  257. gTpath.clearData();
  258. var tabflag = ds_init.getColumn(0, "tabflag");
  259. if (tabflag == "D")
  260. {
  261. grdf_expandTree(switch1.case_dept.trv_deptlist, 0, true);
  262. //trv_deptlist.expand(0, true);
  263. }
  264. }
  265. /**
  266. * @desc : 트리의 path리턴
  267. * @id :
  268. * @event :
  269. * @return : void
  270. * @authur : 박종훈
  271. */
  272. function fFindTreePath(trnm)
  273. {
  274. var trpath = "";
  275. if (trnm == "trv_userlist")
  276. {
  277. trpath = gUpath;
  278. }
  279. else if (trnm == "trv_deptlist")
  280. {
  281. trpath = gDpath;
  282. }
  283. else if (trnm == "trv_alllist")
  284. {
  285. trpath = gApath;
  286. }
  287. else if (trnm == "trv_master")
  288. {
  289. trpath = gMpath;
  290. }
  291. return trpath;
  292. }
  293. /**
  294. * @desc : 트리클릭
  295. * @id :
  296. * @event :
  297. * @return : void
  298. * @authur : 박종훈
  299. */
  300. function fSelectTree(selflag, obj:Grid)
  301. {
  302. //var treeObj = event.ptarget.parent;
  303. if( obj.getCellProperty("body", 0, "displaytype") != "tree" )
  304. return;
  305. //var selIndex = treeObj.selectedIndex;
  306. var trnm = obj.name;
  307. var trpath;
  308. if (trnm == "trv_userlist")
  309. {
  310. trpath = gUpath;
  311. // var node = root.main.userlist;
  312. }
  313. else if (trnm == "trv_deptlist")
  314. {
  315. trpath = gDpath;
  316. // var node = root.main.deptlist;
  317. }
  318. else if (trnm == "trv_alllist")
  319. {
  320. trpath = gApath;
  321. // var node = root.main.alllist;
  322. }
  323. else if (trnm == "trv_master")
  324. {
  325. trpath = gMpath;
  326. // var node = root.main.mastlist;
  327. }
  328. var selIndex = trpath.rowposition;
  329. var key = trpath.getColumn(selIndex, "seqcd");
  330. if(utlf_isNull(key))
  331. return;
  332. var treeRow = obj.getTreeRow(selIndex);
  333. if(obj.getTreeStatus(treeRow) == 0)
  334. obj.setTreeStatus(treeRow, true);
  335. else if(obj.getTreeStatus(treeRow) == 1)
  336. obj.setTreeStatus(treeRow, false);
  337. var linkflag = trpath.getColumn(selIndex, "linkflag");
  338. var refyn = trpath.getColumn(selIndex, "refyn");
  339. var valu = trpath.getColumn(selIndex, "valu");
  340. var labl = trpath.getColumn(selIndex, "labl");
  341. var levl = trpath.getColumn(selIndex, "levl");
  342. var srcformcd = trpath.getColumn(selIndex, "src");
  343. var formchosflag = trpath.getColumn(selIndex, "formchosflag");
  344. trpath.setColumn(selIndex, "refyn", "Y");
  345. if (linkflag == "N")
  346. {
  347. ds_send.clearData();
  348. ds_send.addRow();
  349. ds_send.copyRow(0, trpath, selIndex);
  350. ds_send.setColumn(0, "indxflag", ds_init.getColumn(0, "indxflag"));
  351. ds_send.setColumn(0, "chosflag", chosflag);
  352. if (refyn == "N")
  353. {
  354. // 서식분류flag
  355. ds_send.setColumn(0, "formbizcls", ds_main_newform.getColumn(0, "formbizcls"));
  356. var oParam = {};
  357. oParam.id = "TRMMR01001";
  358. oParam.service = "medirecapp.ImgEdit";
  359. oParam.method = "reqGetFormImgeList";
  360. oParam.inds = "req=ds_send";
  361. oParam.outds = "ds_tmp_pflist=pflist";
  362. oParam.async = false;
  363. oParam.callback = "cf_TRMMR01001_1"; // Caution!!
  364. tranf_submit(oParam);
  365. if(arErrorCode.pop("TRMMR01001") > -1)
  366. {
  367. trpath.setColumn(selIndex, "refyn", "Y");
  368. fMoveInstance(obj, trpath, selIndex);
  369. }
  370. }
  371. else
  372. {
  373. return;
  374. }
  375. }
  376. else
  377. {
  378. if(!utlf_isNull(valu) && frmf_isPopup() && ds_init.getColumn(0, "indxflag") == "F")
  379. {
  380. var openerid = opener.frmf_getParameter("SPMMR01000_openerid"); //부모의 화면번호
  381. if (openerid == "SMMMR00100") //기록메인일경우 서식 오픈
  382. {
  383. //2010-02-25 오전 12:38:04 강지훈 수정 : 요청번호 10010, 입환수진 선택시 외래기록 막기, formchosflag로 외래,입원기록 여부판단.
  384. var ioflag = opener.ds_send_reqinitinfo.getColumn(0, "chosflag");
  385. if (ioflag != "O"){ //입원수진일경우.
  386. if(formchosflag == "O"){
  387. sysf_messageBox("입원환자이므로 외래서식을 작성하실 수", "I004");
  388. return;
  389. }
  390. }
  391. //parent.fOpenNewForm(valu);
  392. opener.fOpenNewForm(valu);
  393. }
  394. else
  395. {
  396. opener.frmf_setParameter("SPMMR01000_formcd_rtn", valu); //기록 메인이 아닐 경우 서식코드를 넘긴다.
  397. opener.frmf_setParameter("SPMMR01000_formnm_rtn", labl); //서식명
  398. opener.frmf_setParameter("SPMMR01000_srcformcd_rtn", srcformcd); //참조서식코드
  399. this.close();
  400. }
  401. }
  402. else if(!utlf_isNull(valu) && ds_init.getColumn(0, "indxflag") == "P") //이미지 편집창
  403. {
  404. // treeObj.valcd = valu;
  405. //parent.fGetImgeData(trnm);
  406. this.getOwnerFrame().form.fGetImgeData(trnm);
  407. }
  408. }
  409. return true;
  410. //event.propagate = "stop";
  411. }
  412. function cf_TRMMR01001_1(sSvcId, nErrorCode, sErrorMsg) {
  413. arErrorCode.push(sSvcId, nErrorCode);
  414. if(nErrorCode < 0) return;
  415. }
  416. /**
  417. * @desc : 3depth 아이템 이동
  418. * @id :
  419. * @event : onclick
  420. * @return : void
  421. * @authur : 박종훈
  422. */
  423. function fMoveInstance(treeObj:Grid, trpath:Dataset, selindex)
  424. {
  425. //var instance = document.models(0).instances(0);
  426. //var key = treeObj.value;
  427. //var refNode = instance.selectSingleNode(trpath + "[seqcd='" + key +"']"); //조회내용의 상위 항목
  428. var subNode = "";
  429. var nodelistTmp = gTpath;
  430. var nodelength = nodelistTmp.rowcount;
  431. if(nodelength > 0)
  432. {
  433. for(var i = nodelength-1; i >= 0; i--)
  434. {
  435. var iRow = trpath.insertRow(parseInt(selindex) + 1);
  436. trpath.copyRow(iRow, gTpath, i); //조회항목을 상위항목의 자식으로 삽입
  437. trpath.applyChange();
  438. }
  439. }
  440. //fExpandCheck(treeObj);
  441. var treeRow = treeObj.getTreeRow(selindex);
  442. if( treeObj.getTreeStatus(treeRow) == 0 ){
  443. treeObj.setTreeStatus(treeRow, true)
  444. }else if( treeObj.getTreeStatus(treeRow) == 1 ){
  445. treeObj.setTreeStatus(treeRow, false)
  446. }
  447. //treeObj.expand(selindex, true);
  448. }
  449. /**
  450. * @desc : 트리 expand 상태 얻기
  451. * @
  452. * @param :
  453. * @return :
  454. * @---------------------------------------------------
  455. */
  456. function fExpandCheck(trvObj)
  457. {
  458. var expandstr = 0; //트리 expand 값 저장
  459. for(var i = 0; i < trvObj.length ; i++){
  460. if(trvObj.item(i).expanded == 1)
  461. {
  462. expandstr += "."+i;
  463. }
  464. }
  465. //공통세션변수에 저장
  466. // setGlobalVariable("emr_gsv_"+trvObj ,expandstr);
  467. //alert("a");
  468. }
  469. /**
  470. * @desc : 이미지검색
  471. * @id :
  472. * @event :
  473. * @return : void
  474. * @authur : 박종훈
  475. */
  476. function fSearch()
  477. {
  478. ds_main_imglistinfo_imglist.clearData();
  479. ds_send_srch.clearData();
  480. var nRow = ds_send_srch.addRow();
  481. ds_send_srch.setColumn(nRow, "imgenm", switch1.case_imgsrch.ipt_imgnm.text);
  482. if(utlf_isNull(ds_send_srch.getColumn(nRow, "imgenm"))){
  483. ds_send_srch.setColumn(nRow, "imgenm", "%");
  484. }
  485. var oParam = {};
  486. oParam.id = "TRMMR03601";
  487. oParam.service = "medirecapp.ImgEdit";
  488. oParam.method = "reqGetImgList";
  489. oParam.inds = "req=ds_send_srch";
  490. oParam.outds = "ds_main_imglistinfo_imglist=imglist";
  491. oParam.async = false;
  492. oParam.callback = "cf_TRMMR03601";
  493. tranf_submit(oParam);
  494. }
  495. function cf_TRMMR03601(sSvcId, nErrorCode, sErrorMsg) {
  496. if(nErrorCode < 0) return;
  497. ds_main_imglistinfo_imglist.updateColID("deptcd", "deptlistnm");
  498. ds_main_imglistinfo_imglist.updateColID("imgecd", "imglistcode");
  499. ds_main_imglistinfo_imglist.updateColID("imgenm", "imglistnm");
  500. }
  501. /**
  502. * @desc : 이미지로드
  503. * @id :
  504. * @event :
  505. * @return : void
  506. * @authur : 이경희
  507. */
  508. function fGridImageView(SelectedRow)
  509. {
  510. //debugger;
  511. var deptnm = ds_main_imglistinfo_imglist.getColumn(SelectedRow, "deptlistnm");
  512. var imgnm = ds_main_imglistinfo_imglist.getColumn(SelectedRow, "imglistnm");
  513. var imgcd = ds_main_imglistinfo_imglist.getColumn(SelectedRow, "imglistcode");
  514. if(utlf_isNull(imgcd) && utlf_isNull(imgnm))
  515. {
  516. return ;
  517. }
  518. this.getOwnerFrame().form.fLoadImage(imgcd, imgnm);
  519. }
  520. /**
  521. * @desc : 로컬체크
  522. * @id : trv_formlist
  523. * @event : DOMActivate
  524. * @return : void
  525. * @authur : 박종훈
  526. */
  527. function fLocalYn()
  528. {
  529. return false;
  530. }
  531. /**
  532. * @desc : 서식트리 마우스 팝업 처리
  533. * @id : trv_formlist
  534. * @event : onmousedown
  535. * @return : void
  536. * @authur : 박종훈
  537. */
  538. function fFormMouseRghtBtnPopup(treeObj:Grid, e:GridMouseEventInfo)
  539. {
  540. //var treeObj = event.ptarget.parent;
  541. if( treeObj.getCellProperty("body", 0, "displaytype") != "tree" )
  542. return;
  543. if( e.row < 0 && e.col < 0 )
  544. return;
  545. var trnm = treeObj.name;
  546. var trpath = fFindTreePath(trnm);
  547. trpath.rowposition = e.row;
  548. //var selIndex = treeObj.selectedIndex;
  549. var selIndex = trpath.rowposition;
  550. var seqcd = trpath.getColumn(selIndex, "seqcd");
  551. var openerid = opener.frmf_getParameter("SPMMR01000_openerid"); //부모의 화면번호
  552. var linkflag = trpath.getColumn(selIndex, "linkflag");
  553. var refyn = trpath.getColumn(selIndex, "refyn");
  554. var valu = trpath.getColumn(selIndex, "valu");
  555. var formprogflag = trpath.getColumn(selIndex, "formprogflag");
  556. var formprognm = trpath.getColumn(selIndex, "formprognm");
  557. if(!utlf_isNull(valu) && linkflag == "Y" && refyn == "Y")
  558. {
  559. if (indxflag == "F")
  560. {
  561. if (openerid == "SMMMR00100")
  562. {
  563. if (formprogflag == "MAIN" || formprognm != "-")
  564. {
  565. pmn_menu_diagmsrght.trackPopup(e.screenX,e.screenY);
  566. //setPopupMenu(trnm, false, "/root/pmenu/diagmsrght/mouserght", "label", "func"); //기본서식, 즐겨찾기
  567. }
  568. else
  569. {
  570. pmn_menu_favormsrght.trackPopup(e.screenX,e.screenY);
  571. //setPopupMenu(trnm, false, "/root/pmenu/favormsrght/mouserght", "label", "func"); //즐겨찾기
  572. }
  573. }
  574. else
  575. {
  576. pmn_menu_preview.trackPopup(e.screenX,e.screenY);
  577. //setPopupMenu(trnm, false, "/root/pmenu/preview/mouserght", "label", "func"); //미리보기
  578. }
  579. }
  580. }
  581. }
  582. /**
  583. * @desc : 기본서식설정
  584. * @id : trv_formlist
  585. * @event : onmousedown
  586. * @return : void
  587. * @authur : 박종훈
  588. */
  589. function fSetDefForm()
  590. {
  591. var rtn = fGetFormcode();
  592. rtn = rtn.split("|");
  593. if(!utlf_isNull(rtn[0]) && rtn[1] == "Y" && rtn[2] == "Y")
  594. {
  595. var formcd = rtn[0];
  596. var formbsetflag = "D";
  597. var formbsetdeptcd = "";
  598. ds_send_temp.clearData();
  599. var nRow = ds_send_temp.addRow();
  600. ds_send_temp.setColumn(nRow, "formcd", formcd);
  601. ds_send_temp.setColumn(nRow, "formbsetflag", formbsetflag);
  602. ds_send_temp.setColumn(nRow, "formbsetdeptcd", formbsetdeptcd);
  603. var oParam = {};
  604. oParam.id = "TXMMR01001";
  605. oParam.service = "medirecapp.ComnMediRec";
  606. oParam.method = "reqExeFormSetRec";
  607. oParam.inds = "req=ds_send_temp";
  608. oParam.outds = "ds_main_savedinfo_rsltmsg=rsltmsg ds_main_savedinfo_formbaseset=formbaseset";
  609. oParam.async = false;
  610. oParam.callback = "cf_TXMMR01001";
  611. tranf_submit(oParam);
  612. //parent.fFavorRefresh("refresh"); // 즐겨찾기 refresh
  613. opener.fFavorRefresh("refresh"); // 즐겨찾기 refresh
  614. }
  615. }
  616. /**
  617. * @desc : 즐겨찾기추가
  618. * @id : trv_formlist
  619. * @event : onmousedown
  620. * @return : void
  621. * @authur : 박종훈
  622. */
  623. function fSetFavorForm()
  624. {
  625. var rtn = fGetFormcode();
  626. rtn = rtn.split("|");
  627. if(!utlf_isNull(rtn[0]) && rtn[1] == "Y" && rtn[2] == "Y")
  628. {
  629. var formcd = rtn[0];
  630. var formbsetflag = "F";
  631. var formbsetdeptcd = "";
  632. ds_send_temp.clearData();
  633. var nRow = ds_send_temp.addRow();
  634. ds_send_temp.setColumn(nRow, "formcd", formcd);
  635. ds_send_temp.setColumn(nRow, "formbsetflag", formbsetflag);
  636. ds_send_temp.setColumn(nRow, "formbsetdeptcd", formbsetdeptcd);
  637. var oParam = {};
  638. oParam.id = "TXMMR01001";
  639. oParam.service = "medirecapp.ComnMediRec";
  640. oParam.method = "reqExeFormSetRec";
  641. oParam.inds = "req=ds_send_temp";
  642. oParam.outds = "ds_main_savedinfo_rsltmsg=rsltmsg ds_main_savedinfo_formbaseset=formbaseset";
  643. oParam.async = false;
  644. oParam.callback = "cf_TXMMR01001";
  645. tranf_submit(oParam);
  646. //parent.fFavorRefresh("refresh"); // 즐겨찾기 refresh
  647. opener.fFavorRefresh("refresh"); // 즐겨찾기 refresh
  648. }
  649. }
  650. function cf_TXMMR01001(sSvcId, nErrorCode, sErrorMsg) {
  651. if(nErrorCode < 0) return;
  652. }
  653. /**
  654. * @desc : 서식 트리별 인스턴스에서 formcode구해오기
  655. * @
  656. * @param :
  657. * @return :
  658. * @---------------------------------------------------
  659. */
  660. function fGetFormcode()
  661. {
  662. var rtn = fSetTreeView();
  663. var treeObj = eval(rtn);
  664. if( treeObj.getCellProperty("body", 0, "displaytype") != "tree" )
  665. return;
  666. var trnm = treeObj.name;
  667. var trpath = fFindTreePath(trnm);
  668. var selindex = trpath.rowposition;
  669. var seqcd = trpath.getColumn(selindex, "seqcd");
  670. var linkflag = trpath.getColumn(selindex, "linkflag");
  671. var refyn = trpath.getColumn(selindex, "refyn");
  672. var valu = trpath.getColumn(selindex, "valu");
  673. rtn = valu + "|" + refyn + "|" + linkflag;
  674. return rtn;
  675. }
  676. /**
  677. * @desc : 트리뷰 셋 (어느 트리가 열려있는지)
  678. * @
  679. * @param :
  680. * @return :
  681. * @---------------------------------------------------
  682. */
  683. function fSetTreeView(){
  684. var setflag = ds_init.getColumn(0, "tabflag");
  685. var rtn = "";
  686. if (setflag == "I") {
  687. rtn = "switch1.case_user.trv_userlist";
  688. }
  689. else if (setflag == "D") {
  690. rtn = "switch1.case_dept.trv_deptlist";
  691. }
  692. else if (setflag == "A") {
  693. rtn = "switch1.case_all.trv_alllist";
  694. }
  695. else if (setflag == "M") {
  696. rtn = "switch1.case_master.trv_master";
  697. }
  698. return rtn;
  699. }
  700. /**
  701. * @desc : 제증명 서식 트리 작성
  702. * @
  703. * @param :
  704. * @return :
  705. * @---------------------------------------------------
  706. */
  707. function fGetProfForm(){
  708. ds_send_reqdata.clearData();
  709. ds_send_reqdata.addRow();
  710. ds_send_reqdata.setColumn(0, "formprogflag", "PROF");
  711. var oParam = {};
  712. oParam.id = "TRMMR02903";
  713. oParam.service = "medirecapp.ExtnMediRec";
  714. oParam.method = "reqGetProfForm";
  715. oParam.inds = "req=ds_send_reqdata";
  716. oParam.outds = "ds_main_profform=profformlist";
  717. oParam.async = false;
  718. oParam.callback = "cf_TRMMR02903";
  719. tranf_submit(oParam);
  720. }
  721. function cf_TRMMR02903(sSvcId, nErrorCode, sErrorMsg) {
  722. if(nErrorCode < 0) return;
  723. }
  724. /**
  725. * @desc : ocr트리 작성
  726. * @
  727. * @param :
  728. * @return :
  729. * @---------------------------------------------------
  730. */
  731. function fOcrTreeSrch(){
  732. appf_getDeptCodeList(sysf_getUserInfo("dutplceinstcd"), "orduseyn", "D", "depthngnm", "asc", "", "", "after", "ds_main_common_dept", true, "");
  733. //zbcfGetDeptCodeList(getUserInfo("dutplceinstcd"), "orduseyn", "D", "/root/main/common", "depthngnm", "asc");
  734. /*
  735. copyNodeset("/root/main/trgtmanlist/out/dept", "/root/main/common/dept");
  736. copyNodeset("/root/main/trgtmanlist/in/dept", "/root/main/common/dept");
  737. copyNodeset("/root/main/trgtmanlist/er/dept", "/root/main/common/dept");
  738. copyNodeset("/root/main/trgtmanlist/schpat/dept", "/root/main/common/dept");
  739. */
  740. ds_main_ocrsch_dept.copyData(ds_main_common_dept);
  741. appf_getDeptCodeList(sysf_getUserInfo("dutplceinstcd"), "orduseyn", "W", "depthngnm", "asc", "", "", "", "ds_main_ward_dept", true, "");
  742. //zbcfGetDeptCodeList(getUserInfo("dutplceinstcd"), "orduseyn", "W", "/root/main/ward", "depthngnm", "asc");
  743. /*
  744. copyNodeset("/root/main/trgtmanlist/in/wardlist", "/root/main/ward/dept");
  745. */
  746. reqGetDrList(ds_send_reqdata, ds_main_common_drlist, sysf_getUserInfo("dutplcecd"), "total"); //의사리스트 combo조회
  747. var arrParam = new Array();
  748. arrParam.push({dsNm: "ds_main_common_M0062", cdGrpId: "M0062", sortField: "cdid", sortMehotd: "desc", showValue:false});
  749. arrParam.push({dsNm: "ds_main_common_M0259", cdGrpId: "M0259", sortField: "cdid", sortMehotd: "desc", showValue:false});
  750. appf_getCodeList(arrParam);
  751. //zbcfGetCodeList(new Array("M0062"), new Array("/root/main/common"));
  752. /*
  753. copyNodeset("/root/main/trgtmanlist/out/ordflag", "/root/main/common/M0062");
  754. */
  755. var oParam = {};
  756. oParam.id = "TRMRF02307";
  757. oParam.service = "formmngtapp.OcrPrntMngt";
  758. oParam.method = "reqGetFormLevlList";
  759. oParam.inds = "req=ds_send_reqdata";
  760. oParam.outds = "ds_main_ocrsch_ocrflag=formlevl";
  761. oParam.async = false;
  762. oParam.callback = "cf_TRMRF02307";
  763. tranf_submit(oParam);
  764. frmf_addComboItem("switch1.case_ocr.cmb_formcl", "전체", "-", "above");
  765. //zbcfGetCodeList(new Array("M0259"), new Array("/root/main/common"));
  766. ds_main_ocrsch_formbizcls.copyData(ds_main_common_M0259);
  767. //copyNodeset("/root/main/ocrsch/formbizcls", "/root/main/common/M0259");
  768. if((sysf_getUserInfo("jobkindcd") == "0330") || (sysf_getUserInfo("jobkindcd") == "0332")){
  769. ds_main_ocrsch.setColumn(0, "ocrflag", "468");
  770. ds_main_ocrsch.setColumn(0, "formbizcls", "02");
  771. ds_main_ocrsch.setColumn(0, "dept", ""); // model.getValue("/root/main/ordinfo/orddeptcd") 노드 미존재
  772. } else if(sysf_getUserInfo("jobkindcd") == "1110"){
  773. ds_main_ocrsch.setColumn(0, "ocrflag", "468");
  774. ds_main_ocrsch.setColumn(0, "formbizcls", "03");
  775. ds_main_ocrsch.setColumn(0, "dept", ""); // model.getValue("/root/main/ordinfo/orddeptcd") 노드 미존재
  776. } else {
  777. ds_main_ocrsch.setColumn(0, "ocrflag", "468");
  778. switch1.case_ocr.cmb_formbizcls.setSelect(0);
  779. ds_main_ocrsch.setColumn(0, "dept", "-");
  780. }
  781. ds_send_reqdata.clearData();
  782. ds_send_reqdata.addRow();
  783. ds_send_reqdata.addColumn("formlrgcd", "string"); // ocrflag -> formlrgcd
  784. ds_send_reqdata.addColumn("formbizclscd", "string"); // formbizcls -> formbizclscd
  785. ds_send_reqdata.addColumn("orddeptcd", "string");
  786. ds_send_reqdata.addColumn("formchosflag", "string");
  787. ds_send_reqdata.setColumn(0, "formlrgcd", ds_main_ocrsch.getColumn(0, "ocrflag"));
  788. ds_send_reqdata.setColumn(0, "formbizclscd", ds_main_ocrsch.getColumn(0, "formbizcls"));
  789. ds_send_reqdata.setColumn(0, "orddeptcd", ds_main_ocrsch.getColumn(0, "dept"));
  790. ds_send_reqdata.setColumn(0, "formchosflag", ds_main_ocrsch.getColumn(0, "formchosflag"));
  791. var oParam = {};
  792. oParam.id = "TRMRF02309";
  793. oParam.service = "formmngtapp.OcrPrntMngt";
  794. oParam.method = "reqGetFormList";
  795. oParam.inds = "req=ds_send_reqdata";
  796. oParam.outds = "ds_main_ocrinfo_ocrlist=formlist";
  797. oParam.async = false;
  798. oParam.callback = "cf_TRMRF02309";
  799. tranf_submit(oParam);
  800. //trv_ocrlist.rebuild();
  801. }
  802. function cf_TRMRF02307(sSvcId, nErrorCode, sErrorMsg) {
  803. if(nErrorCode < 0) return;
  804. if( !utlf_isNull(ds_main_ocrsch_ocrflag.getColumnInfo("formlevlcd")))
  805. ds_main_ocrsch_ocrflag.updateColID("formlevlcd", "ocrlrgclscd");
  806. if( !utlf_isNull(ds_main_ocrsch_ocrflag.getColumnInfo("formlevlnm")))
  807. ds_main_ocrsch_ocrflag.updateColID("formlevlnm", "ocrlrgclsnm");
  808. }
  809. function cf_TRMRF02309(sSvcId, nErrorCode, sErrorMsg) {
  810. if(nErrorCode < 0) return;
  811. }
  812. /**
  813. * @desc : 의사리스트 조회
  814. * @
  815. * @param :
  816. * @return :
  817. * @---------------------------------------------------
  818. */
  819. function reqGetDrList(refDs:Dataset, rsltRefDs:Dataset, orddeptcd, queryflag){
  820. refDs.addColumn("orddeptcd", "string");
  821. refDs.addColumn("queryflag", "string");
  822. refDs.addColumn("stflag", "string");
  823. refDs.setColumn(0, "orddeptcd" , orddeptcd);
  824. refDs.setColumn(0, "queryflag" , queryflag);
  825. var oParam = {};
  826. oParam.id = "TRMRF02303";
  827. oParam.service = "formmngtapp.OcrPrntMngt";
  828. oParam.method = "reqGetOrdDrID";
  829. oParam.inds = "req="+refDs.name;
  830. oParam.outds = rsltRefDs.name + "=drlist";
  831. oParam.async = false;
  832. oParam.callback = "cf_TRMRF02303";
  833. tranf_submit(oParam);
  834. }
  835. function cf_TRMRF02303(sSvcId, nErrorCode, sErrorMsg) {
  836. if(nErrorCode < 0) return;
  837. }
  838. /**
  839. * @desc : 마스터 인덱스 조회
  840. * @
  841. * @param :
  842. * @return :
  843. * @---------------------------------------------------
  844. */
  845. function fReqMastIndx(){
  846. var objColInfo = new Array();
  847. objColInfo.push({col: "cdgrupcd", type:"string", size:256, val:"M0259"});
  848. dsf_createDsRow("ds_temp", objColInfo);
  849. var oParam = {};
  850. oParam.id = "TRMRF00706";
  851. oParam.service = "formmngtapp.FormMngt";
  852. oParam.method = "reqGetFormbizCls";
  853. oParam.inds = "req=ds_temp";
  854. oParam.outds = "ds_main_formbizcls=formbizcls";
  855. oParam.async = true;
  856. oParam.callback = "cf_TRMRF00706";
  857. tranf_submit(oParam); //서식분류 조회
  858. if((sysf_getUserInfo("jobkindcd") == "0330") || (sysf_getUserInfo("jobkindcd") == "0332")){
  859. ds_main_newform.setColumn(0, "formbizcls", "02");
  860. } else if(sysf_getUserInfo("jobkindcd") == "1110"){
  861. ds_main_newform.setColumn(0, "formbizcls", "03");
  862. } else{
  863. ds_main_newform.setColumn(0, "formbizcls", "07");
  864. }
  865. var formbiz = "01' ,'";
  866. formbiz += ds_main_newform.getColumn(0, "formbizcls");
  867. ds_main_newform.setColumn(0, "firstform",formbiz);
  868. }
  869. function cf_TRMRF00706(sSvcId, nErrorCode, sErrorMsg) {
  870. if(nErrorCode < 0) return;
  871. if( !utlf_isNull(ds_main_formbizcls.getColumnInfo("cdid")))
  872. ds_main_formbizcls.updateColID("cdid", "formbizclscd");
  873. if( !utlf_isNull(ds_main_formbizcls.getColumnInfo("cdnm")))
  874. ds_main_formbizcls.updateColID("cdnm", "formbizclsnm");
  875. }
  876. /**
  877. * @desc : OCR서식 선택시
  878. * @
  879. * @param :
  880. * @return :
  881. * @---------------------------------------------------
  882. */
  883. function fSelectOCR(){
  884. var nRow = ds_main_ocrinfo_ocrlist.rowposition;
  885. var key = ds_main_ocrinfo_ocrlist.getColumn(nRow, "formcd");
  886. var formcd = ds_main_ocrinfo_ocrlist.getColumn(nRow, "formcd");
  887. var formnm = ds_main_ocrinfo_ocrlist.getColumn(nRow, "formnm");
  888. var srcformcd = ds_main_ocrinfo_ocrlist.getColumn(nRow, "src");
  889. if(utlf_isNull(formcd))
  890. {
  891. return;
  892. }
  893. var openerid = opener.frmf_getParameter("SPMMR01000_openerid"); //부모의 화면번호
  894. if (openerid == "SMMMR00100")
  895. {
  896. //parent.fOpenNewForm(formcd); //기록메인일경우 서식 오픈
  897. opener.fOpenNewForm(formcd); //기록메인일경우 서식 오픈
  898. }
  899. else
  900. {
  901. opener.frmf_setParameter("SPMMR01000_formcd_rtn", formcd); //기록 메인이 아닐 경우 서식코드를 넘긴다.
  902. opener.frmf_setParameter("SPMMR01000_formnm_rtn", formnm); //서식명
  903. opener.frmf_setParameter("SPMMR01000_srcformcd_rtn", srcformcd); //참조서식코드
  904. this.close();
  905. }
  906. }
  907. /**
  908. * @desc : 서식미리보기
  909. * @id :
  910. * @event : onmousedown
  911. * @return : void
  912. * @authur : 박종훈
  913. */
  914. function fFormPreView()
  915. {
  916. var rtn = fGetFormcode();
  917. rtn = rtn.split("|");
  918. var valu = rtn[0];
  919. frmf_setParameter("openmode", "preview"); //오픈모드는 “newform”
  920. frmf_setParameter("formcd", valu); //서식테이블의 formcd(서식코드)
  921. //modal("SSMMR01100", 1, 0, 0 ,"", "", "");
  922. frmf_modal("SSMMR01100", "SSMMR01100", null, null, 1, 0, 0, null, null, null, null, null, "M");
  923. }
  924. /**
  925. * @desc : 다시 조회하기
  926. * @id :
  927. * @event : 진료기록메인에서 환자탭 변경시에 호출한다.
  928. * @return : void
  929. * @authur : 안치원
  930. */
  931. function reloadByRecMain()
  932. {
  933. //2009.10.26 안치원 TASK-32482
  934. //서식목록에서 응급환자의 경우 입퇴원요약기록이 안보이게 한다.
  935. //환자의 내원구분이 바뀌면 서식목록을 리로드한다.
  936. fReadyForm();
  937. ds_init.setColumn(0, "Iref", "N");
  938. ds_init.setColumn(0, "Dref", "N");
  939. ds_init.setColumn(0, "Aref", "N");
  940. ds_init.setColumn(0, "Mref", "N");
  941. fSelectIndxList();
  942. }
  943. ]]></Script>