SPMRI01500.xjs 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <Script type="xscript4.0"><![CDATA[
  3. /**
  4. - ▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩
  5. 진료 - 통합기록조회 북마크( SPMRI01500_Bookmark.xrw - JScript )
  6. - Version : 강지훈
  7. 1) : Ver.1.00.01
  8. - ▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩
  9. /**
  10. * @group :
  11. * @ver :
  12. * @by : 2009-10-15 오후 8:54:11 강지훈
  13. * @---------------------------------------------------
  14. * @type : function
  15. * @access : public
  16. * @desc : 화면 초기화
  17. * @param :
  18. * @return :
  19. * @---------------------------------------------------
  20. */
  21. function fInitilize(){
  22. var appcopykey = opener.frmf_getParameter("SPMRI01500_reckey");
  23. var setflag = opener.frmf_getParameter("SPMRI01500_setflag");
  24. //sysf_trace("***** fInitilize() appcopykey : " + appcopykey + " setflag : " + setflag + " *****");
  25. appcopykey = utlf_isNull(appcopykey) ? "" : appcopykey;
  26. if(setflag == "M"){
  27. roundrect2.btn_sub.visible = false;
  28. roundrect2.btn_rtn.visible = false;
  29. }
  30. if(setflag == "A"){
  31. var copykey = appcopykey.split("|");
  32. if(utlf_isNull(appcopykey)){
  33. // this.close();
  34. }
  35. //1차적으로 영상EMR만...첫번째 영상 EMR의 명칭을 가져온다.
  36. var copykey = appcopykey.split("|");
  37. for(var i = 0; i < copykey.length; i++){
  38. appkeyArr = copykey[i].split("▦");
  39. reckind = appkeyArr[0];
  40. if (reckind == "I"){
  41. var recTitle = appkeyArr[5]
  42. break;
  43. }
  44. }
  45. ds_cond.setColumn(0, "itemnm", recTitle);
  46. }
  47. //추후 EMR되면 위에거 대신 이거쓰면된다.
  48. //var copykey = appcopykey.split("|");
  49. //var appkeyArr = copykey[0].split("▦");
  50. //var recTitle = appkeyArr[5]
  51. //model.removeNode("/root/send/setdata/recinfos");
  52. //model.makeNode("/root/send/setdata/recinfos");
  53. //
  54. //
  55. //for(var i = 0; i < copykey.length; i++)
  56. //{
  57. // model.makeNode("/root/send/setdata/recinfos/recinfo");
  58. // appkeyArr = copykey[i].split("▦");
  59. // reckind = appkeyArr[0];
  60. // if (reckind == "I")
  61. // {
  62. // }
  63. // else
  64. // {
  65. // }
  66. //}
  67. fGetTreeView(); // 트리뷰의 내용을 가져온다.
  68. ds_trv_bookmark.rowposition = 0;//trv_bookmark.select(0);
  69. roundrect2.ipt_itemnm.setFocus();
  70. }
  71. /**
  72. * @group :
  73. * @ver :
  74. * @by : 2009-10-16 오전 10:13:04 강지훈
  75. * @---------------------------------------------------
  76. * @type : function
  77. * @access : public
  78. * @desc : 트리뷰 조회
  79. * @param :
  80. * @return :
  81. * @---------------------------------------------------
  82. */
  83. function fGetTreeView(){
  84. //Node 초기화
  85. ds_trv_bookmark.clearData();
  86. // model.removenode("/root/main/treeview");
  87. // model.makeNode("/root/main/treeview");
  88. var pid = '2132364';//opener.ds_patinfo.getColumn(0, "pid"); //환자번호
  89. var bmkAll = 'A';//this.opener.ds_main_cond.getColumn(0, "bmkall");//model.getValue("/root/main/cond/bmkall"); //북마크 전체보기
  90. ds_send_reqdata.clearData();
  91. var nRow = ds_send_reqdata.addRow();
  92. ds_send_reqdata.setColumn(nRow, "pid", pid);
  93. ds_send_reqdata.setColumn(nRow, "bmkall", bmkAll);
  94. var oParam = {};
  95. oParam.id = "TRMRI01500";
  96. oParam.service = "recmngtapp.SystView";
  97. oParam.method = "reqGetTreeView";
  98. oParam.inds = "req=ds_ds_send_reqdata";
  99. oParam.outds = "ds_trv_bookmark=treeview";
  100. oParam.async = false;
  101. //oParam.callback = "cf_TRMRI01500";
  102. tranf_submit(oParam);
  103. }
  104. /**
  105. * @group :
  106. * @ver :
  107. * @by : 2009-10-16 오전 10:13:04 강지훈
  108. * @---------------------------------------------------
  109. * @type : function
  110. * @access : public
  111. * @desc : 새폴더 작성
  112. * @param :
  113. * @return :
  114. * @---------------------------------------------------
  115. */
  116. function fNewFolder(){
  117. var selFolder = new SELFOLDER();
  118. if(utlf_isNull(selFolder)){
  119. sysf_messageBox("상위 폴더를 ","C002");
  120. return;
  121. }
  122. frmf_setParameter("SPMRI1700_selFolder", "N");
  123. frmf_modal("SPMRI01700", "SPMRI01700", null, null, null, null, null, null, null, null, null, null, "M");
  124. fGetTreeView();// 트리뷰의 내용을 가져온다.
  125. }
  126. /**
  127. * @group :
  128. * @ver :
  129. * @by : 2009-10-16 오전 10:13:04 강지훈
  130. * @---------------------------------------------------
  131. * @type : function
  132. * @access : public
  133. * @desc : 항목이동
  134. * @param :
  135. * @return :
  136. * @---------------------------------------------------
  137. */
  138. function fMoveItem(){
  139. var selFolder = new SELFOLDER();
  140. if(utlf_isNull(selFolder)){
  141. sysf_messageBox("이동시킬 폴더를 ","C002");
  142. return;
  143. }
  144. frmf_setParameter("SPMRI1700_selFolder", "M");
  145. frmf_modal("SPMRI01700", "SPMRI01700", null, null, null, null, null, null, null, null, null, null, "M");
  146. fGetTreeView();// 트리뷰의 내용을 가져온다.
  147. }
  148. /**
  149. * @group :
  150. * @ver :
  151. * @by : 2009-10-16 강지훈
  152. * @---------------------------------------------------
  153. * @type : function
  154. * @access : public
  155. * @desc : 폴더 삭제
  156. * @param :
  157. * @return :
  158. * @---------------------------------------------------
  159. */
  160. function fDelFolder(){
  161. var selFolder = new SELFOLDER();
  162. if(utlf_isNull(selFolder)){
  163. sysf_messageBox("삭제할 항목을 ","C002");
  164. return;
  165. }
  166. var delflag = "S"; // M : 하위항목 같이삭제 S : 선택한항목만삭제
  167. // var childItemList = 0;
  168. var selItemNo = selFolder.itemno;
  169. // temp DS create
  170. dsf_createDs("ds_childItemList");
  171. if(selFolder.linkflag == "-"){
  172. // ds_trv_bookmark filter -> copy
  173. ds_trv_bookmark.enableevent = false;
  174. ds_trv_bookmark.filter("supitemno == '"+ selItemNo +"'");
  175. ds_childItemList.copyData(ds_trv_bookmark, true);
  176. ds_trv_bookmark.filter("");
  177. ds_trv_bookmark.enableevent = true;
  178. sysf_trace(ds_childItemList.saveXML());
  179. if(ds_childItemList.rowcount > 0){
  180. delflag = "M";
  181. }
  182. }
  183. else{
  184. delflag = "F";
  185. }
  186. var btn = "";
  187. //선택항목에 따라 메세지를 달리 보여준다.
  188. if(delflag == "M"){
  189. btn = sysf_messageBox( selFolder.itemnm +" 폴더의 하위 항목이 같이 삭제됩니다.","Q001");
  190. }
  191. else if(delflag == "S"){
  192. btn = sysf_messageBox( selFolder.itemnm +" 폴더를","Q001");
  193. }
  194. else if(delflag == "F"){
  195. btn = sysf_messageBox( selFolder.itemnm +" Bookmark 항목을","Q001");
  196. }
  197. if (btn == '6') {
  198. // model.removeNode("/root/send/deldata");
  199. // model.makeNode("/root/send/deldata");
  200. ds_send_deldata.clearData();
  201. if(delflag == "M"){ // 하위항목이 있을경우
  202. ds_send_deldata.addRow();
  203. ds_send_deldata.setColumn(0, "itemno", selItemNo);//현재 선택한 itemno
  204. for(var i = 0; i < ds_childItemList.rowcount; i++){
  205. var childItemNo = ds_childItemList.getColumn(0, "itemno");
  206. var nRow = ds_send_deldata.addRow();
  207. ds_send_deldata.setColumn(nRow, "itemno", childItemNo);
  208. }
  209. }
  210. else if(delflag == "S"){ // 하위항목이 없을경우
  211. ds_send_deldata.addRow();
  212. ds_send_deldata.setColumn(0, "itemno", selItemNo); //현재 선택한 itemno
  213. }
  214. else if(delflag == "F"){ // Bookmark항목일 경우
  215. ds_send_deldata.addRow();
  216. ds_send_deldata.setColumn(0, "itemno", selItemNo);//현재 선택한 itemno
  217. ds_send_deldata.setColumn(0, "linkflag", selFolder.linkflag); //현재 선택한 기록연결여부
  218. }
  219. }
  220. else if (btn == '7'){
  221. return;
  222. }
  223. var oParam = {};
  224. oParam.id = "TXMRI01500";
  225. oParam.service = "recmngtapp.SystView";
  226. oParam.method = "reqDelItem";
  227. oParam.inds = "req=ds_send_deldata";
  228. //oParam.outds = "null";
  229. oParam.async = false;
  230. oParam.callback = "cf_TXMRI01500";
  231. tranf_submit(oParam);
  232. }
  233. function cf_TXMRI01500(sSvcId, nErrorCode, sErrorMsg){
  234. sysf_trace("***** cf_TXMRI01500 *****");
  235. if( nErrorCode > -1 ){
  236. fGetTreeView();// 트리뷰의 내용을 가져온다.
  237. }
  238. }
  239. /**
  240. * @group :
  241. * @ver :
  242. * @by : 2009-10-16 오전 10:13:04 강지훈
  243. * @---------------------------------------------------
  244. * @type : function
  245. * @access : public
  246. * @desc : 선택한 폴더의 정보
  247. * @param :
  248. * @return :
  249. * @---------------------------------------------------
  250. */
  251. function SELFOLDER(){
  252. var sRow = ds_trv_bookmark.rowposition;
  253. if( sRow < 0 ) return;
  254. this.level = ds_trv_bookmark.getColumn(sRow, "level");
  255. this.itemno = ds_trv_bookmark.getColumn(sRow, "itemno");
  256. this.supitemno = ds_trv_bookmark.getColumn(sRow, "supitemno");
  257. this.itemnm = ds_trv_bookmark.getColumn(sRow, "itemnm");
  258. this.linkflag = ds_trv_bookmark.getColumn(sRow, "linkflag");
  259. this.pid = ds_trv_bookmark.getColumn(sRow, "pid");
  260. /*
  261. var item = trv_bookmark.item(trv_bookmark.selectedIndex);
  262. if(item == null) return;
  263. var currow = item.index + 1;
  264. this.level = model.getValue("/root/main/treeview/item["+currow+"]/level");
  265. this.itemno = model.getValue("/root/main/treeview/item["+currow+"]/itemno");
  266. this.supitemno = model.getValue("/root/main/treeview/item["+currow+"]/supitemno");
  267. this.itemnm = model.getValue("/root/main/treeview/item["+currow+"]/itemnm");
  268. this.linkflag = model.getValue("/root/main/treeview/item["+currow+"]/linkflag");
  269. this.pid = model.getValue("/root/main/treeview/item["+currow+"]/pid");
  270. */
  271. }
  272. /**
  273. * @group :
  274. * @ver :
  275. * @by : 2009-10-16 오전 10:13:04 강지훈
  276. * @---------------------------------------------------
  277. * @type : function
  278. * @access : public
  279. * @desc : 새로운 Bookmark를 추가한다.
  280. * @param :
  281. * @return :
  282. * @---------------------------------------------------
  283. */
  284. function fSetNewItem(){
  285. var appcopykey = opener.frmf_getParameter("SPMRI01500_reckey"); //통합기록조회에서 선택된 이미지 정보
  286. appcopykey = utlf_isNull(appcopykey) ? "" : appcopykey;
  287. var itemnm = roundrect2.ipt_itemnm.text;
  288. var pid = opener.ds_patinfolist.getColumn(0, "pid"); //환자번호
  289. var selFolder = new SELFOLDER();
  290. var supItemno = selFolder.supitemno;
  291. var itemno = selFolder.itemno;
  292. var linkflag = selFolder.linkflag;
  293. //필수항목 Check
  294. if(utlf_isNull(pid)){
  295. sysf_messageBox("선택된 환자가 없습니다. 환자를 ","C002");
  296. return;
  297. }
  298. if(utlf_isNull(itemnm)){
  299. sysf_messageBox("Bookmark의 명칭을 ","C001");
  300. return;
  301. }
  302. if(utlf_isNull(supItemno)){
  303. sysf_messageBox("Bookmark를 저장할 폴더를 ","C002");
  304. return;
  305. }
  306. //node 초기화
  307. ds_send_iteminfo.clearData();
  308. ds_send_recinfo.clearData();
  309. ds_send_iteminfo.addRow();
  310. ds_send_recinfo.addRow();
  311. //item정보 setting
  312. ds_send_iteminfo.setColumn(0, "supitemno", itemno);
  313. ds_send_iteminfo.setColumn(0, "itemnm" , itemnm );
  314. ds_send_iteminfo.setColumn(0, "pid" , pid );
  315. ds_send_iteminfo.setColumn(0, "linkflag" , linkflag);
  316. //Bookmark 기록정보 setting
  317. ds_tmp_recinfo.clearData();
  318. // var srcNode = instance1.selectSingleNode("/root/tmp/recinfo");
  319. // var destNode = instance1.selectSingleNode("/root/send/setdata/recinfos");
  320. //
  321. var copykey = appcopykey.split("|");
  322. var nRow_recinfo = 0;
  323. for(var i = 0; i < copykey.length; i++)
  324. {
  325. //var tmpNode = srcNode.cloneNode(true);
  326. nRow_recinfo = ds_tmp_recinfo.addRow();
  327. var appkeyArr = copykey[i].split("▦");
  328. var arr_reckind = appkeyArr[0];
  329. if (arr_reckind == "I")
  330. {
  331. var arr_treatno = appkeyArr[1];
  332. var arr_formcd = appkeyArr[2];
  333. var arr_pageno = appkeyArr[4];
  334. ds_tmp_recinfo.setColumn(nRow_recinfo, "formcd", arr_formcd);
  335. ds_tmp_recinfo.setColumn(nRow_recinfo, "emrflag", arr_reckind);
  336. ds_tmp_recinfo.setColumn(nRow_recinfo, "recno", arr_treatno);
  337. ds_tmp_recinfo.setColumn(nRow_recinfo, "pageno", arr_pageno);
  338. ds_tmp_recinfo.setColumn(nRow_recinfo, "pagesortno", i+1);
  339. }
  340. else
  341. {
  342. //현재 영상만되므로 EMR외 기타기록은 PASS
  343. continue;
  344. }
  345. //destNode.appendChild(tmpNode);
  346. }
  347. ds_send_recinfo.copyData(ds_tmp_recinfo);
  348. var objColInfo = new Array();
  349. objColInfo.push({col: "itemseqno", type:"string", size:256});
  350. dsf_createDs("ds_tmp", objColInfo);
  351. var oParam = {};
  352. oParam.id = "TXMRI01501";
  353. oParam.service = "recmngtapp.SystView";
  354. oParam.method = "reqSetBookmark";
  355. oParam.inds = "iteminfo=ds_send_iteminfo recinfo=ds_send_recinfo";
  356. oParam.outds = "ds_tmp=tmp";
  357. oParam.async = false;
  358. oParam.callback = "cf_TXMRI01501";
  359. tranf_submit(oParam);
  360. }
  361. function cf_TXMRI01501(sSvcId, nErrorCode, sErrorMsg){
  362. sysf_trace("***** cf_TXMRI01501 *****");
  363. if( nErrorCode > -1 ){
  364. var itemno = ds_tmp.getColumn(0, "itemseqno");
  365. if(!utlf_isNull(itemno)){
  366. sysf_messageBox("My Bookmark 생성이 ","I002");
  367. }
  368. this.close();
  369. }
  370. dsf_deleteDs("ds_tmp");
  371. }
  372. /**
  373. * @group :
  374. * @ver :
  375. * @by : 2009-10-16 오전 10:13:04 강지훈
  376. * @---------------------------------------------------
  377. * @type : function
  378. * @access : public
  379. * @desc : 항목을 선택한다.
  380. * @param :
  381. * @return :
  382. * @---------------------------------------------------
  383. */
  384. function fSelItem(){
  385. var selFolder = new SELFOLDER();
  386. var itemnm = ds_cond.getColumn(0, "itemnm");
  387. if(selFolder.linkflag == "Y" ){
  388. ds_cond.setColumn(0, "itemnm", selFolder.itemnm);
  389. }
  390. }
  391. /**
  392. * @group :
  393. * @ver :
  394. * @by : 2009-10-16 오전 10:13:04 강지훈
  395. * @---------------------------------------------------
  396. * @type : function
  397. * @access : public
  398. * @desc : 창이 닫길때 하위트리뷰를 재조회
  399. * @param :
  400. * @return :
  401. * @---------------------------------------------------
  402. */
  403. function fCloseWindow(){
  404. opener.fGetTreeView();
  405. }
  406. //--------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  407. ]]></Script>