SPMRI01500.js 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406
  1. /**
  2. - ▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩
  3. 진료 - 통합기록조회 북마크( SPMRI01500_Bookmark.xrw - JScript )
  4. - Version : 강지훈
  5. 1) : Ver.1.00.01
  6. - ▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩
  7. /**
  8. * @group :
  9. * @ver :
  10. * @by : 2009-10-15 오후 8:54:11 강지훈
  11. * @---------------------------------------------------
  12. * @type : function
  13. * @access : public
  14. * @desc : 화면 초기화
  15. * @param :
  16. * @return :
  17. * @---------------------------------------------------
  18. */
  19. function fInitilize(){
  20. var appcopykey = opener.javascript.getParameter("SPMRI01500_reckey");
  21. var setflag = opener.javascript.getParameter("SPMRI01500_setflag");
  22. if(setflag == "M"){
  23. btn_sub.visible = false;
  24. btn_rtn.visible = false;
  25. }
  26. if(setflag == "A"){
  27. var copykey = appcopykey.split("|");
  28. if(appcopykey == ""){
  29. window.close();
  30. }
  31. //1차적으로 영상EMR만...첫번째 영상 EMR의 명칭을 가져온다.
  32. var copykey = appcopykey.split("|");
  33. for(var i = 0; i < copykey.length; i++){
  34. appkeyArr = copykey[i].split("▦");
  35. reckind = appkeyArr[0];
  36. if (reckind == "I"){
  37. var recTitle = appkeyArr[5]
  38. break;
  39. }
  40. }
  41. model.setValue("/root/main/cond/itemnm", recTitle);
  42. }
  43. //추후 EMR되면 위에거 대신 이거쓰면된다.
  44. //var copykey = appcopykey.split("|");
  45. //var appkeyArr = copykey[0].split("▦");
  46. //var recTitle = appkeyArr[5]
  47. //model.removeNode("/root/send/setdata/recinfos");
  48. //model.makeNode("/root/send/setdata/recinfos");
  49. //
  50. //
  51. //for(var i = 0; i < copykey.length; i++)
  52. //{
  53. // model.makeNode("/root/send/setdata/recinfos/recinfo");
  54. // appkeyArr = copykey[i].split("▦");
  55. // reckind = appkeyArr[0];
  56. // if (reckind == "I")
  57. // {
  58. // }
  59. // else
  60. // {
  61. // }
  62. //}
  63. fGetTreeView(); // 트리뷰의 내용을 가져온다.
  64. model.refresh();
  65. trv_bookmark.select(0);
  66. model.setFocus("ipt_itemnm");
  67. }
  68. /**
  69. * @group :
  70. * @ver :
  71. * @by : 2009-10-16 오전 10:13:04 강지훈
  72. * @---------------------------------------------------
  73. * @type : function
  74. * @access : public
  75. * @desc : 트리뷰 조회
  76. * @param :
  77. * @return :
  78. * @---------------------------------------------------
  79. */
  80. function fGetTreeView(){
  81. //Node 초기화
  82. model.removenode("/root/main/treeview");
  83. model.makeNode("/root/main/treeview");
  84. var pid = opener.model.getValue("/root/main/patinfo/patinfolist/pid"); //환자번호
  85. var bmkAll = opener.model.getValue("/root/main/cond/bmkall"); //북마크 전체보기
  86. model.removenode("/root/send/reqdata/pid");
  87. model.makeValue("/root/send/reqdata/pid", pid);
  88. model.makeValue("/root/send/reqdata/bmkall", bmkAll);
  89. if(submit("TRMRI01500")){
  90. trv_bookmark.rebuild();
  91. }
  92. }
  93. /**
  94. * @group :
  95. * @ver :
  96. * @by : 2009-10-16 오전 10:13:04 강지훈
  97. * @---------------------------------------------------
  98. * @type : function
  99. * @access : public
  100. * @desc : 새폴더 작성
  101. * @param :
  102. * @return :
  103. * @---------------------------------------------------
  104. */
  105. function fNewFolder(){
  106. var selFolder = new SELFOLDER();
  107. if(selFolder == "" || selFolder == null){
  108. messageBox("상위 폴더를 ","C002");
  109. return;
  110. }
  111. setParameter("SPMRI1700_selFolder", "N");
  112. modal("SPMRI01700");
  113. fGetTreeView();// 트리뷰의 내용을 가져온다.
  114. }
  115. /**
  116. * @group :
  117. * @ver :
  118. * @by : 2009-10-16 오전 10:13:04 강지훈
  119. * @---------------------------------------------------
  120. * @type : function
  121. * @access : public
  122. * @desc : 항목이동
  123. * @param :
  124. * @return :
  125. * @---------------------------------------------------
  126. */
  127. function fMoveItem(){
  128. var selFolder = new SELFOLDER();
  129. if(selFolder == "" || selFolder == null){
  130. messageBox("이동시킬 폴더를 ","C002");
  131. return;
  132. }
  133. setParameter("SPMRI1700_selFolder", "M");
  134. modal("SPMRI01700");
  135. fGetTreeView();// 트리뷰의 내용을 가져온다.
  136. }
  137. /**
  138. * @group :
  139. * @ver :
  140. * @by : 2009-10-16 강지훈
  141. * @---------------------------------------------------
  142. * @type : function
  143. * @access : public
  144. * @desc : 폴더 삭제
  145. * @param :
  146. * @return :
  147. * @---------------------------------------------------
  148. */
  149. function fDelFolder(){
  150. var selFolder = new SELFOLDER();
  151. if(selFolder == "" || selFolder == null){
  152. messageBox("삭제할 항목을 ","C002");
  153. return;
  154. }
  155. var delflag = "S"; // M : 하위항목 같이삭제 S : 선택한항목만삭제
  156. var childItemList = "";
  157. var selItemNo = selFolder.itemno;
  158. if(selFolder.linkflag == "-"){
  159. childItemList = instance1.selectNodes("/root/main/treeview/item[supitemno = "+ selItemNo +"]");
  160. if(childItemList.length > 0){
  161. delflag = "M";
  162. }
  163. }
  164. else{
  165. delflag = "F";
  166. }
  167. var btn = "";
  168. //선택항목에 따라 메세지를 달리 보여준다.
  169. if(delflag == "M"){
  170. btn = messageBox( selFolder.itemnm+" 폴더의 하위 항목이 같이 삭제됩니다.","Q001");
  171. }
  172. else if(delflag == "S"){
  173. btn = messageBox( selFolder.itemnm+" 폴더를","Q001");
  174. }
  175. else if(delflag == "F"){
  176. btn = messageBox( selFolder.itemnm+" Bookmark 항목을","Q001");
  177. }
  178. if (btn == '6') {
  179. model.removeNode("/root/send/deldata");
  180. model.makeNode("/root/send/deldata");
  181. var nodeCnt = "2";
  182. if(delflag == "M"){ // 하위항목이 있을경우
  183. model.makeValue("/root/send/deldata/itemno", selItemNo); //현재 선택한 itemno
  184. for(var i = 0; i < childItemList.length; i++){
  185. var childItem = childItemList.item(0);
  186. var childItemNo = childItem.selectSingleNode("itemno").text;
  187. model.makeNode("/root/send/deldata/itemno["+ nodeCnt +"]"); //하위 항목의 itemno
  188. model.setValue("/root/send/deldata/itemno["+ nodeCnt +"]", childItemNo);
  189. nodeCnt++;
  190. }
  191. }
  192. else if(delflag == "S"){ // 하위항목이 없을경우
  193. model.makeValue("/root/send/deldata/itemno", selItemNo); //현재 선택한 itemno
  194. }
  195. else if(delflag == "F"){ // Bookmark항목일 경우
  196. model.makeValue("/root/send/deldata/itemno", selItemNo); //현재 선택한 itemno
  197. model.makeValue("/root/send/deldata/linkflag", selFolder.linkflag); //현재 선택한 기록연결여부
  198. }
  199. }
  200. else if (btn == '7'){
  201. return;
  202. }
  203. if(submit("TXMRI01500")){
  204. fGetTreeView();// 트리뷰의 내용을 가져온다.
  205. }
  206. }
  207. /**
  208. * @group :
  209. * @ver :
  210. * @by : 2009-10-16 오전 10:13:04 강지훈
  211. * @---------------------------------------------------
  212. * @type : function
  213. * @access : public
  214. * @desc : 선택한 폴더의 정보
  215. * @param :
  216. * @return :
  217. * @---------------------------------------------------
  218. */
  219. function SELFOLDER(){
  220. var item = trv_bookmark.item(trv_bookmark.selectedIndex);
  221. if(item == null) return;
  222. var currow = item.index + 1;
  223. this.level = model.getValue("/root/main/treeview/item["+currow+"]/level");
  224. this.itemno = model.getValue("/root/main/treeview/item["+currow+"]/itemno");
  225. this.supitemno = model.getValue("/root/main/treeview/item["+currow+"]/supitemno");
  226. this.itemnm = model.getValue("/root/main/treeview/item["+currow+"]/itemnm");
  227. this.linkflag = model.getValue("/root/main/treeview/item["+currow+"]/linkflag");
  228. this.pid = model.getValue("/root/main/treeview/item["+currow+"]/pid");
  229. }
  230. /**
  231. * @group :
  232. * @ver :
  233. * @by : 2009-10-16 오전 10:13:04 강지훈
  234. * @---------------------------------------------------
  235. * @type : function
  236. * @access : public
  237. * @desc : 새로운 Bookmark를 추가한다.
  238. * @param :
  239. * @return :
  240. * @---------------------------------------------------
  241. */
  242. function fSetNewItem(){
  243. var appcopykey = opener.javascript.getParameter("SPMRI01500_reckey"); //통합기록조회에서 선택된 이미지 정보
  244. var itemnm = ipt_itemnm.currentText;
  245. var pid = opener.model.getValue("/root/main/patinfo/patinfolist/pid"); //환자번호
  246. var selFolder = new SELFOLDER();
  247. var supItemno = selFolder.supitemno;
  248. var itemno = selFolder.itemno;
  249. var linkflag = selFolder.linkflag;
  250. //필수항목 Check
  251. if(pid == ""){
  252. messageBox("선택된 환자가 없습니다. 환자를 ","C002");
  253. return;
  254. }
  255. if(itemnm == ""){
  256. messageBox("Bookmark의 명칭을 ","C001");
  257. return;
  258. }
  259. if(supItemno == "" || supItemno == null){
  260. messageBox("Bookmark를 저장할 폴더를 ","C002");
  261. return;
  262. }
  263. //node 초기화
  264. model.removeNode("/root/send/setdata");
  265. //item정보 setting
  266. model.makeValue("/root/send/setdata/iteminfo/supitemno", itemno);
  267. model.makeValue("/root/send/setdata/iteminfo/itemnm" , itemnm );
  268. model.makeValue("/root/send/setdata/iteminfo/pid" , pid );
  269. model.makeValue("/root/send/setdata/iteminfo/linkflag" , linkflag);
  270. //Bookmark 기록정보 setting
  271. model.makeNode("/root/send/setdata/recinfos");
  272. var srcNode = instance1.selectSingleNode("/root/tmp/recinfo");
  273. var destNode = instance1.selectSingleNode("/root/send/setdata/recinfos");
  274. var copykey = appcopykey.split("|");
  275. for(var i = 0; i < copykey.length; i++)
  276. {
  277. var tmpNode = srcNode.cloneNode(true);
  278. var appkeyArr = copykey[i].split("▦");
  279. var arr_reckind = appkeyArr[0];
  280. if (arr_reckind == "I")
  281. {
  282. var arr_treatno = appkeyArr[1];
  283. var arr_formcd = appkeyArr[2];
  284. var arr_pageno = appkeyArr[4];
  285. tmpNode.selectSingleNode("formcd").text = arr_formcd;
  286. tmpNode.selectSingleNode("emrflag").text = arr_reckind;
  287. tmpNode.selectSingleNode("recno").text = arr_treatno;
  288. tmpNode.selectSingleNode("pageno").text = arr_pageno;
  289. tmpNode.selectSingleNode("pagesortno").text = i+1;
  290. }
  291. else
  292. {
  293. //현재 영상만되므로 EMR외 기타기록은 PASS
  294. continue;
  295. }
  296. destNode.appendChild(tmpNode);
  297. }
  298. var a = instance1.selectSingleNode("/root/send/setdata");
  299. if(submit("TXMRI01501")){
  300. var itemno = model.getValue("/root/tmp/itemno");
  301. if(itemno != ""){
  302. messageBox("My Bookmark 생성이 ","I002");
  303. }
  304. //opener.javascript.fGetTreeView();
  305. window.close();
  306. }
  307. }
  308. /**
  309. * @group :
  310. * @ver :
  311. * @by : 2009-10-16 오전 10:13:04 강지훈
  312. * @---------------------------------------------------
  313. * @type : function
  314. * @access : public
  315. * @desc : 항목을 선택한다.
  316. * @param :
  317. * @return :
  318. * @---------------------------------------------------
  319. */
  320. function fSelItem(){
  321. var selFolder = new SELFOLDER();
  322. var itemnm = model.getValue("/root/main/cond/itemnm");
  323. if(selFolder.linkflag == "Y" ){
  324. model.setValue("/root/main/cond/itemnm", selFolder.itemnm);
  325. }
  326. ipt_itemnm.refresh();
  327. }
  328. /**
  329. * @group :
  330. * @ver :
  331. * @by : 2009-10-16 오전 10:13:04 강지훈
  332. * @---------------------------------------------------
  333. * @type : function
  334. * @access : public
  335. * @desc : 창이 닫길때 하위트리뷰를 재조회
  336. * @param :
  337. * @return :
  338. * @---------------------------------------------------
  339. */
  340. function fCloseWindow(){
  341. opener.javascript.fGetTreeView();
  342. }
  343. //--------------------------------------------------------------------------------------------------------------------------------------------------------------------------