SPMMR01000.js 32 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067
  1. /*
  2. - ▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩
  3. 서식리스트 ( SPMMR01000_서식리스트.xrw - JScript )
  4. - Version :
  5. 1) : Ver.1.00.01
  6. - ▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩
  7. */
  8. //var isAdmin = fUserAdmin();
  9. var gUpath = "/root/main/userlist/pflist";
  10. var gDpath = "/root/main/deptlist/pflist";
  11. var gApath = "/root/main/alllist/pflist";
  12. var gMpath = "/root/main/mastlist/pflist";
  13. var gIpath= "/root/main/imglistinfo/imglist";
  14. var gTpath = "/root/tmp/pflist";
  15. var chosflag = "-";
  16. var indxflag = "";
  17. var uid = getUserId();
  18. var dcd = getUserInfo("dutplcecd");
  19. var parentID = "";
  20. var sSETLIST_HIDDEN = "/root/hidden/indxlist/item";
  21. /**
  22. * @desc : 사이즈조절
  23. * @id : trv_formlist
  24. * @event : DOMActivate
  25. * @return : void
  26. * @authur : 박종훈
  27. */
  28. function fInitPage(heig, wid)
  29. {
  30. body.attribute("width") = wid;
  31. body.attribute("height") = heig;
  32. var grupw = wid - 16;
  33. var gruph = heig - 10;
  34. grup_base.attribute("top") = 0;
  35. grup_base.attribute("left") = 0;
  36. grup_base.attribute("width") = grupw;
  37. grup_base.attribute("height") = gruph;
  38. switch1.attribute("left") = 0;
  39. switch1.attribute("width") = grupw;
  40. switch1.attribute("height") = gruph - 24;
  41. trv_userlist.attribute("width") = grupw - 2;
  42. trv_userlist.attribute("height") = gruph - 26;
  43. trv_deptlist.attribute("width") = grupw - 2;
  44. trv_deptlist.attribute("height") = gruph - 26;
  45. trv_alllist.attribute("width") = grupw - 2;
  46. trv_alllist.attribute("height") = gruph - 26;
  47. trv_master.attribute("width") = grupw - 2;
  48. trv_master.attribute("height") = gruph - 26;
  49. trv_proflist.attribute("width") = grupw - 2;
  50. trv_proflist.attribute("height") = gruph - 26;
  51. trv_ocrlist.attribute("width") = grupw - 2;
  52. trv_ocrlist.attribute("height") = gruph - 26;
  53. model.refresh();
  54. }
  55. /**
  56. * @desc : 화면초기화
  57. * @id : trv_formlist
  58. * @event : DOMActivate
  59. * @return : void
  60. * @authur : 박종훈
  61. */
  62. function fReadyForm()
  63. {
  64. trv_userlist.attribute("border-style") = "none";
  65. trv_deptlist.attribute("border-style") = "none";
  66. trv_alllist.attribute("border-style") = "none";
  67. trv_master.attribute("border-style") = "none";
  68. trv_proflist.attribute("border-style") = "none";
  69. trv_ocrlist.attribute("border-style") = "none";
  70. grup_base.attribute("border-style") = "none";
  71. //서식분류 조회
  72. fReqMastIndx();
  73. if (fLocalYn())
  74. {
  75. uid = model.getValue("root/userid");
  76. dcd = model.getValue("root/deptcd");
  77. indxflag = model.getValue("/root/rdo");
  78. chosflag = model.getValue("/root/iordo");
  79. button1.visible = true;
  80. }
  81. else
  82. {
  83. uid = getUserId();
  84. dcd = getUserInfo("dutplcecd");
  85. button1.visible = false;
  86. indxflag = opener.window.javascript.getParameter("SPMMR01000_param_flag");
  87. if(indxflag == "")
  88. indxflag = "P";
  89. var pamInfoCvs = getGlobalVariable("paminfo"); //상단정보가 있을 경우는 검색
  90. if(pamInfoCvs != null && pamInfoCvs != "")
  91. { //cvs가 null이 아닌 경우에만 처리함.
  92. model.removeNodeSet ("/root/main/paminfo/list");
  93. setCSVToNode ("/root/main/paminfo", pamInfoCvs);
  94. if (model.getValue ("/root/main/paminfo/list/ioflag") != "")
  95. {
  96. chosflag = model.getValue ("/root/main/paminfo/list/ioflag");
  97. }
  98. }
  99. }
  100. model.makeValue("/root/init/indxflag", indxflag);
  101. if (indxflag == "F")
  102. {
  103. btn_imgsrch.visible = false;
  104. btn_master.visible = true;
  105. var openerid = opener.window.javascript.getParameter("SPMMR01000_openerid"); //부모의 화면번호
  106. if (openerid != "SMMMR00100")
  107. {
  108. btn_ocr.visible = true; //기록메인일경우 서식 오픈
  109. }
  110. btn_dept.selected = true;
  111. btn_dept.dispatch("DOMActivate");
  112. }
  113. else if (indxflag == "P")
  114. {
  115. /*
  116. btn_imgsrch.visible = true;
  117. btn_master.visible = false;
  118. btn_all.selected = true;
  119. btn_all.dispatch("DOMActivate");
  120. */
  121. btn_imgsrch.visible = true;
  122. btn_master.visible = false;
  123. btn_dept.selected = true;
  124. btn_dept.dispatch("DOMActivate");
  125. }
  126. //model.makeValue("/root/init/indxflag", indxflag);
  127. //btn_master.dispatch("DOMActivate");
  128. //test
  129. //btn_master.visible = true;
  130. }
  131. /**
  132. * @desc : 트리 인덱스 선택시
  133. * @id : trv_formlist
  134. * @event : DOMActivate
  135. * @return : void
  136. * @authur : 박종훈
  137. */
  138. function fSelectIndxList()
  139. {
  140. model.removeNodeset("/root/send");
  141. var valu = "";
  142. var flag = "";
  143. var tabflag = model.getValue("/root/init/tabflag");
  144. var refyn = model.getValue("/root/init/" + tabflag + "ref");
  145. var formbizcls = model.getValue("/root/main/newform/formbizcls");
  146. if (refyn == "Y" && tabflag != "I")
  147. return;
  148. model.makeValue("/root/send/levl", "0");
  149. model.makeValue("/root/send/imge", "");
  150. model.makeValue("/root/send/labl", "");
  151. if (tabflag == "I")
  152. {
  153. valu = uid;
  154. flag = "userid";
  155. }
  156. else if (tabflag == "D")
  157. {
  158. valu = dcd;
  159. flag = "deptcd";
  160. }
  161. else if (tabflag == "A")
  162. {
  163. valu = dcd;
  164. }
  165. else if (tabflag == "M" && formbizcls == "07")
  166. {
  167. flag = "indxseq"
  168. }
  169. model.makeValue("/root/send/valu", valu);
  170. model.makeValue("/root/send/path", "");
  171. model.makeValue("/root/send/flag", flag);
  172. model.makeValue("/root/send/tabflag", model.getValue("/root/init/tabflag"));
  173. model.makeValue("/root/send/indxflag", model.getValue("/root/init/indxflag"));
  174. model.makeValue("/root/send/chosflag", chosflag);
  175. model.makeValue("/root/send/seqcd", "0");
  176. //최초 조회시 공통도 같이 조회
  177. if(model.getValue("/root/main/newform/firstform") == ""){
  178. model.makeValue("/root/send/formbizcls", model.getValue("/root/main/newform/formbizcls"));
  179. }else{
  180. model.makeValue("/root/send/formbizcls",model.getValue("/root/main/newform/firstform"));
  181. model.removeNodeset("/root/main/newform/firstform");
  182. }
  183. SetUserTimeLog("fSelectIndxList", "pre_submit");
  184. if(submit("TRMMR01001", false))
  185. {
  186. SetUserTimeLog("fSelectIndxList", "end_submit");
  187. if (model.getValue("/root/init/tabflag") == "I")
  188. {
  189. copyNodeset(gUpath, gTpath, "replace", model, model);
  190. SetUserTimeLog("fSelectIndxList", "User_copynode_end");
  191. model.setValue("/root/init/Iref", "Y");
  192. }
  193. else if (model.getValue("/root/init/tabflag") == "D")
  194. {
  195. copyNodeset(gDpath, gTpath, "replace", model, model);
  196. SetUserTimeLog("fSelectIndxList", "Dept_copynode_end");
  197. model.setValue("/root/init/Dref", "Y");
  198. }
  199. else if (model.getValue("/root/init/tabflag") == "A")
  200. {
  201. copyNodeset(gApath, gTpath, "replace", model, model);
  202. SetUserTimeLog("fSelectIndxList", "AllDept_copynode_end");
  203. model.setValue("/root/init/Aref", "Y");
  204. }
  205. else if (model.getValue("/root/init/tabflag") == "M")
  206. {
  207. copyNodeset(gMpath, gTpath, "replace", model, model);
  208. SetUserTimeLog("fSelectIndxList", "Master_copynode_end");
  209. model.setValue("/root/init/Mref", "Y");
  210. }
  211. model.removeNodeset(gTpath);
  212. model.refresh();
  213. if (tabflag == "D")
  214. {
  215. trv_deptlist.expand(0, true);
  216. }
  217. }
  218. }
  219. /**
  220. * @desc : 트리의 path리턴
  221. * @id :
  222. * @event :
  223. * @return : void
  224. * @authur : 박종훈
  225. */
  226. function fFindTreePath(trnm)
  227. {
  228. var trpath = "";
  229. if (trnm == "trv_userlist")
  230. {
  231. trpath = gUpath;
  232. }
  233. else if (trnm == "trv_deptlist")
  234. {
  235. trpath = gDpath;
  236. }
  237. else if (trnm == "trv_alllist")
  238. {
  239. trpath = gApath;
  240. }
  241. else if (trnm == "trv_master")
  242. {
  243. trpath = gMpath;
  244. }
  245. return trpath;
  246. }
  247. /**
  248. * @desc : 트리클릭
  249. * @id :
  250. * @event :
  251. * @return : void
  252. * @authur : 박종훈
  253. */
  254. function fSelectTree(selflag)
  255. {
  256. var treeObj = event.ptarget.parent;
  257. if( treeObj.elementName != "xforms:treeview" )
  258. return;
  259. var selIndex = treeObj.selectedIndex;
  260. var trnm = treeObj.attribute("id");
  261. var trpath = "";
  262. if (trnm == "trv_userlist")
  263. {
  264. trpath = gUpath;
  265. var node = root.main.userlist;
  266. }
  267. else if (trnm == "trv_deptlist")
  268. {
  269. trpath = gDpath;
  270. var node = root.main.deptlist;
  271. }
  272. else if (trnm == "trv_alllist")
  273. {
  274. trpath = gApath;
  275. var node = root.main.alllist;
  276. }
  277. else if (trnm == "trv_master")
  278. {
  279. trpath = gMpath;
  280. var node = root.main.mastlist;
  281. }
  282. var key = treeObj.value;
  283. if(key == "")
  284. return;
  285. var linkflag = model.getValue(trpath + "[seqcd='" + key +"']/linkflag");
  286. var refyn = model.getValue(trpath + "[seqcd='" + key +"']/refyn");
  287. var valu = model.getValue(trpath + "[seqcd='" + key +"']/valu");
  288. var labl = model.getValue(trpath + "[seqcd='" + key +"']/labl");
  289. var levl = model.getValue(trpath + "[seqcd='" + key +"']/levl");
  290. var srcformcd = model.getValue(trpath + "[seqcd='" + key +"']/src");
  291. var formchosflag = model.getValue(trpath + "[seqcd='" + key +"']/formchosflag");
  292. model.setValue(trpath + "[seqcd='" + key +"']/refyn", "Y");
  293. if (linkflag == "N")
  294. {
  295. model.removeNodeset("/root/send");
  296. copyNodeset("/root/send", trpath + "[seqcd='" + key +"']");
  297. model.makeValue("/root/send/indxflag", model.getValue("/root/init/indxflag"));
  298. model.makeValue("/root/send/chosflag", chosflag);
  299. if (refyn == "N")
  300. {
  301. // 서식분류flag
  302. model.makeValue("/root/send/formbizcls", model.getValue("/root/main/newform/formbizcls"));
  303. if(submit("TRMMR01001", false))
  304. {
  305. model.setValue(trpath + "[seqcd='" + key +"']/refyn", "Y");
  306. fMoveInstance(treeObj, trpath, selIndex, node);
  307. }
  308. }
  309. else
  310. {
  311. return;
  312. }
  313. }
  314. else
  315. {
  316. if(valu !="" && isPopup() && model.getValue("/root/init/indxflag") == "F")
  317. {
  318. var openerid = opener.window.javascript.getParameter("SPMMR01000_openerid"); //부모의 화면번호
  319. if (openerid == "SMMMR00100") //기록메인일경우 서식 오픈
  320. {
  321. //2010-02-25 오전 12:38:04 강지훈 수정 : 요청번호 10010, 입환수진 선택시 외래기록 막기, formchosflag로 외래,입원기록 여부판단.
  322. var ioflag = opener.model.getValue("/root/send/reqinitinfo/chosflag");
  323. if (ioflag != "O"){ //입원수진일경우.
  324. if(formchosflag == "O"){
  325. messageBox("입원환자이므로 외래서식을 작성하실 수", "I004");
  326. return;
  327. }
  328. }else if( ioflag == "O" ){ //[요청번호:20160824021] 1. 입원기록 서식 중 일부 고정값 설정
  329. if(formchosflag == "I" && getNodesetCnt(model, "/root/temp/srcformcd/hardcd[hardcd = '" + srcformcd + "']") > 0){
  330. messageBox("외래환자이므로 입원서식을 작성하실 수", "I004");
  331. return;
  332. }
  333. }
  334. parent.window.javascript.fOpenNewForm(valu);
  335. }
  336. else
  337. {
  338. opener.window.javascript.setParameter("SPMMR01000_formcd_rtn", valu); //기록 메인이 아닐 경우 서식코드를 넘긴다.
  339. opener.window.javascript.setParameter("SPMMR01000_formnm_rtn", labl); //서식명
  340. opener.window.javascript.setParameter("SPMMR01000_srcformcd_rtn", srcformcd); //참조서식코드
  341. window.close();
  342. }
  343. }
  344. else if(valu != "" && model.getValue("/root/init/indxflag") == "P") //이미지 편집창
  345. {
  346. treeObj.attribute("valcd") = valu;
  347. parent.window.javascript.fGetImgeData(trnm);
  348. }
  349. }
  350. event.propagate = "stop";
  351. }
  352. /**
  353. * @desc : 3depth 아이템 이동
  354. * @id :
  355. * @event : onclick
  356. * @return : void
  357. * @authur : 박종훈
  358. */
  359. function fMoveInstance(treeObj, trpath, selindex, node)
  360. {
  361. var instance = document.models(0).instances(0);
  362. var key = treeObj.value;
  363. var refNode = instance.selectSingleNode(trpath + "[seqcd='" + key +"']"); //조회내용의 상위 항목
  364. var subNode = "";
  365. var nodelistTmp = instance.selectNodes(gTpath);
  366. var nodelength = nodelistTmp.length;
  367. if(nodelength > 0)
  368. {
  369. for(var i = nodelength; i > 0; i--)
  370. {
  371. subNode = instance.selectSingleNode(gTpath + "[" + i + "]");
  372. node.insertAfter(subNode, refNode); //조회항목을 상위항목의 자식으로 삽입
  373. treeObj.rebuild();
  374. }
  375. }
  376. fExpandCheck(treeObj);
  377. treeObj.expand(selindex, true);
  378. }
  379. /**
  380. * @desc : 트리 expand 상태 얻기
  381. * @
  382. * @param :
  383. * @return :
  384. * @---------------------------------------------------
  385. */
  386. function fExpandCheck(trvObj)
  387. {
  388. var expandstr = 0; //트리 expand 값 저장
  389. for(var i = 0; i < trvObj.length ; i++){
  390. if(trvObj.item(i).expanded == 1)
  391. {
  392. expandstr += "."+i;
  393. }
  394. }
  395. //공통세션변수에 저장
  396. // setGlobalVariable("emr_gsv_"+trvObj ,expandstr);
  397. }
  398. /**
  399. * @desc : 이미지검색
  400. * @id :
  401. * @event :
  402. * @return : void
  403. * @authur : 박종훈
  404. */
  405. function fSearch()
  406. {
  407. model.removenodeset("/root/main/imglistinfo");
  408. model.makeValue("/root/send/srch/imgenm", ipt_imgnm.currentText);
  409. if(model.getValue("/root/send/srch/imgenm") == ""){
  410. model.makeValue("/root/send/srch/imgenm", "%");
  411. }
  412. submit("TRMMR03601");
  413. //ipt_imgnm.value = "";
  414. }
  415. /**
  416. * @desc : 이미지로드
  417. * @id :
  418. * @event :
  419. * @return : void
  420. * @authur : 이경희
  421. */
  422. function fGridImageView(SelectedRow)
  423. {
  424. //debugger;
  425. var deptnm = model.getValue("/root/main/imglistinfo/imglist[" + SelectedRow + "]/deptlistnm");
  426. var imgnm = model.getValue("/root/main/imglistinfo/imglist[" + SelectedRow + "]/imglistnm");
  427. var imgcd = model.getValue("/root/main/imglistinfo/imglist[" + SelectedRow + "]/imglistcode");
  428. if(imgcd == "" && imgnm == "")
  429. {
  430. return ;
  431. }
  432. opener.window.javascript.fLoadImage(imgcd, imgnm);
  433. }
  434. /**
  435. * @desc : 로컬체크
  436. * @id : trv_formlist
  437. * @event : DOMActivate
  438. * @return : void
  439. * @authur : 박종훈
  440. */
  441. function fLocalYn()
  442. {
  443. //alert(window.document.location);
  444. // if (window.document.location == "C:/CMCProject/application/webapps/emr/medirecweb/xrw/" ||
  445. // window.document.location == "D:/CMCProject/application/webapps/emr/medirecweb/xrw/" ||
  446. // window.document.location.indexOf("dev999") > -1 ||
  447. // window.document.location.indexOf("localhost") > -1)
  448. // {
  449. // return true;
  450. // }
  451. // else
  452. // {
  453. // return false;
  454. // }
  455. return false;
  456. }
  457. /**
  458. * @desc : 서식트리 마우스 팝업 처리
  459. * @id : trv_formlist
  460. * @event : onmousedown
  461. * @return : void
  462. * @authur : 박종훈
  463. */
  464. function fFormMouseRghtBtnPopup()
  465. {
  466. var treeObj = event.ptarget.parent;
  467. if( treeObj.elementName != "xforms:treeview" )
  468. return;
  469. var trnm = treeObj.attribute("id");
  470. var trpath = fFindTreePath(trnm);
  471. var selIndex = treeObj.selectedIndex;
  472. var seqcd = treeObj.value;
  473. var openerid = opener.window.javascript.getParameter("SPMMR01000_openerid"); //부모의 화면번호
  474. var linkflag = model.getValue(trpath + "[seqcd='" + seqcd +"']/linkflag");
  475. var refyn = model.getValue(trpath + "[seqcd='" + seqcd +"']/refyn");
  476. var valu = model.getValue(trpath + "[seqcd='" + seqcd +"']/valu");
  477. var formprogflag = model.getValue(trpath + "[seqcd='" + seqcd +"']/formprogflag");
  478. var formprognm = model.getValue(trpath + "[seqcd='" + seqcd +"']/formprognm");
  479. if(valu != "" && valu != null && linkflag == "Y" && refyn == "Y")
  480. {
  481. if (indxflag == "F"){
  482. if (openerid == "SMMMR00100"){
  483. if (formprogflag == "MAIN" || formprognm != "-"){
  484. setPopupMenu(trnm, false, "/root/pmenu/diagmsrght/mouserght", "label", "func"); //기본서식, 즐겨찾기
  485. }else{
  486. setPopupMenu(trnm, false, "/root/pmenu/favormsrght/mouserght", "label", "func"); //즐겨찾기
  487. }
  488. }else{
  489. setPopupMenu(trnm, false, "/root/pmenu/preview/mouserght", "label", "func"); //미리보기
  490. }
  491. }else if( parentID == "SMMMR03600" && trnm != "trv_userlist" ){
  492. setPopupMenu(trnm, false, "/root/pmenu/imgprivateadd/mouserght", "label", "func"); //부서->개인 즐겨찾기 추가
  493. }else if( parentID == "SMMMR03600" && trnm == "trv_userlist"){
  494. setPopupMenu(trnm, false, "/root/pmenu/imgprivatedel/mouserght", "label", "func"); //개인 즐겨찾기 삭제
  495. }
  496. }else if( parentID == "SMMMR03600" && trnm != "trv_userlist"){
  497. setPopupMenu(trnm, false, "/root/pmenu/imgprivateadd/mouserght", "label", "func"); //부서->개인 즐겨찾기 추가
  498. }else if( parentID == "SMMMR03600" && trnm == "trv_userlist"){
  499. setPopupMenu(trnm, false, "/root/pmenu/imgprivatedel/mouserght", "label", "func"); //개인 즐겨찾기 삭제
  500. }else{
  501. window.setPopupMenu(false);
  502. }
  503. }
  504. /**
  505. * @desc : 기본서식설정
  506. * @id : trv_formlist
  507. * @event : onmousedown
  508. * @return : void
  509. * @authur : 박종훈
  510. */
  511. function fSetDefForm()
  512. {
  513. var rtn = fGetFormcode();
  514. rtn = rtn.split("|");
  515. if(rtn[0] != "" && rtn[0] != null && rtn[1] == "Y" && rtn[2] == "Y")
  516. {
  517. var formcd = rtn[0];
  518. var formbsetflag = "D";
  519. var formbsetdeptcd = "";
  520. // if(isAdmin == 1){
  521. // var formdeptcd = model.getValue("/root/main/formlist/item[formcd=" + formcd +"]/formdeptcd");
  522. // formbsetdeptcd = formdeptcd.split(".")[0];
  523. // }
  524. model.makeValue("/root/send/temp/formcd", formcd);
  525. model.makeValue("/root/send/temp/formbsetflag", formbsetflag);
  526. model.makeValue("/root/send/temp/formbsetdeptcd", formbsetdeptcd);
  527. submit("TXMMR01001");
  528. parent.window.javascript.fFavorRefresh("refresh"); // 즐겨찾기 refresh
  529. }
  530. }
  531. /**
  532. * @desc : 즐겨찾기추가
  533. * @id : trv_formlist
  534. * @event : onmousedown
  535. * @return : void
  536. * @authur : 박종훈
  537. */
  538. function fSetFavorForm()
  539. {
  540. var rtn = fGetFormcode();
  541. rtn = rtn.split("|");
  542. if(rtn[0] != "" && rtn[0] != null && rtn[1] == "Y" && rtn[2] == "Y")
  543. {
  544. var formcd = rtn[0];
  545. var formbsetflag = "F";
  546. var formbsetdeptcd = "";
  547. model.makeValue("/root/send/temp/formcd", formcd);
  548. model.makeValue("/root/send/temp/formbsetflag", formbsetflag);
  549. model.makeValue("/root/send/temp/formbsetdeptcd", formbsetdeptcd);
  550. submit("TXMMR01001");
  551. parent.window.javascript.fFavorRefresh("refresh"); // 즐겨찾기 refresh
  552. }
  553. }
  554. /**
  555. * @desc : 서식 트리별 인스턴스에서 formcode구해오기
  556. * @
  557. * @param :
  558. * @return :
  559. * @---------------------------------------------------
  560. */
  561. function fGetFormcode()
  562. {
  563. var rtn = fSetTreeView();
  564. var treeObj = document.controls(rtn);
  565. if( treeObj.elementName != "xforms:treeview" )
  566. return;
  567. var trnm = treeObj.attribute("id");
  568. var trpath = fFindTreePath(trnm);
  569. var seqcd = treeObj.value;
  570. var linkflag = model.getValue(trpath + "[seqcd='" + seqcd +"']/linkflag");
  571. var refyn = model.getValue(trpath + "[seqcd='" + seqcd +"']/refyn");
  572. var valu = model.getValue(trpath + "[seqcd='" + seqcd +"']/valu");
  573. rtn = valu + "|" + refyn + "|" + linkflag;
  574. return rtn;
  575. }
  576. /**
  577. * @desc : 트리뷰 셋 (어느 트리가 열려있는지)
  578. * @
  579. * @param :
  580. * @return :
  581. * @---------------------------------------------------
  582. */
  583. function fSetTreeView(){
  584. var setflag = model.getValue("/root/init/tabflag");
  585. var rtn = "";
  586. if (setflag == "I") {
  587. rtn = "trv_userlist";
  588. }else if (setflag == "D") {
  589. rtn = "trv_deptlist";
  590. }else if (setflag == "A") {
  591. rtn = "trv_alllist";
  592. }else if (setflag == "M") {
  593. rtn = "trv_master";
  594. }else if (setflag == "S") {
  595. rtn = "grd_imgnmlist";
  596. }
  597. return rtn;
  598. }
  599. /**
  600. * @desc : 제증명 서식 트리 작성
  601. * @
  602. * @param :
  603. * @return :
  604. * @---------------------------------------------------
  605. */
  606. function fGetProfForm(){
  607. model.removeNodeset("/root/send/reqdata");
  608. model.makeValue("/root/send/reqdata/formprogflag", "PROF");
  609. submit("TRMMR02903");
  610. }
  611. /**
  612. * @desc : ocr트리 작성
  613. * @
  614. * @param :
  615. * @return :
  616. * @---------------------------------------------------
  617. */
  618. function fOcrTreeSrch(){
  619. zbcfGetDeptCodeList(getUserInfo("dutplceinstcd"), "orduseyn", "D", "/root/main/common", "depthngnm", "asc");
  620. copyNodeset("/root/main/trgtmanlist/out/dept", "/root/main/common/dept");
  621. copyNodeset("/root/main/trgtmanlist/in/dept", "/root/main/common/dept");
  622. copyNodeset("/root/main/trgtmanlist/er/dept", "/root/main/common/dept");
  623. copyNodeset("/root/main/trgtmanlist/schpat/dept", "/root/main/common/dept");
  624. copyNodeset("/root/main/ocrsch/dept", "/root/main/common/dept");
  625. zbcfGetDeptCodeList(getUserInfo("dutplceinstcd"), "orduseyn", "W", "/root/main/ward", "depthngnm", "asc");
  626. copyNodeset("/root/main/trgtmanlist/in/wardlist", "/root/main/ward/dept");
  627. reqGetDrList("/root/send/reqdata" , "/root/main/common/drlist" , getUserInfo("dutplcecd"), "total"); //의사리스트 combo조회
  628. zbcfGetCodeList(new Array("M0062"), new Array("/root/main/common"));
  629. copyNodeset("/root/main/trgtmanlist/out/ordflag", "/root/main/common/M0062");
  630. submit("TRMRF02307");
  631. addComboItem("cmb_formcls", "전체", "-", "above");
  632. zbcfGetCodeList(new Array("M0259"), new Array("/root/main/common"));
  633. copyNodeset("/root/main/ocrsch/formbizcls", "/root/main/common/M0259");
  634. if((getUserInfo("jobkindcd") == "0330") || (getUserInfo("jobkindcd") == "0332")){
  635. model.setValue("/root/main/ocrsch/ocrflag", "468");
  636. model.setValue("/root/main/ocrsch/formbizcls", "02");
  637. model.setValue("/root/main/ocrsch/dept", model.getValue("/root/main/ordinfo/orddeptcd"));
  638. } else if(getUserInfo("jobkindcd") == "1110"){
  639. model.setValue("/root/main/ocrsch/ocrflag", "468");
  640. model.setValue("/root/main/ocrsch/formbizcls", "03");
  641. model.setValue("/root/main/ocrsch/dept", model.getValue("/root/main/ordinfo/orddeptcd"));
  642. } else {
  643. model.setValue("/root/main/ocrsch/ocrflag", "468");
  644. cmb_formbizcls.select(0);
  645. model.setValue("/root/main/ocrsch/dept", "-");
  646. }
  647. model.removeNodeset("/root/send/reqdata");
  648. model.makeValue("/root/send/reqdata/ocrflag", model.getValue("/root/main/ocrsch/ocrflag"));
  649. model.makeValue("/root/send/reqdata/formbizcls", model.getValue("/root/main/ocrsch/formbizcls"));
  650. model.makeValue("/root/send/reqdata/orddeptcd", model.getValue("/root/main/ocrsch/dept"));
  651. model.makeValue("/root/send/reqdata/formchosflag", model.getValue("/root/main/ocrsch/formchosflag"));
  652. submit("TRMRF02309");
  653. trv_ocrlist.rebuild();
  654. }
  655. /**
  656. * @desc : 의사리스트 조회
  657. * @
  658. * @param :
  659. * @return :
  660. * @---------------------------------------------------
  661. */
  662. function reqGetDrList(ref, rsltRef, orddeptcd, queryflag){
  663. model.makeValue(ref + "/orddeptcd" , orddeptcd);
  664. model.makeValue(ref + "/queryflag" , queryflag);
  665. submit("TRMRF02303", true, ref, rsltRef);
  666. }
  667. /**
  668. * @desc : 마스터 인덱스 조회
  669. * @
  670. * @param :
  671. * @return :
  672. * @---------------------------------------------------
  673. */
  674. function fReqMastIndx(){
  675. submit("TRMRF00706"); //서식분류 조회
  676. if((getUserInfo("jobkindcd") == "0330") || (getUserInfo("jobkindcd") == "0332")){
  677. model.setValue("/root/main/newform/formbizcls", "02");
  678. } else if(getUserInfo("jobkindcd") == "1110"){
  679. model.setValue("/root/main/newform/formbizcls", "03");
  680. } else{
  681. model.setValue("/root/main/newform/formbizcls", "07");
  682. }
  683. var formbiz = "01' ,'";
  684. formbiz += model.getValue("/root/main/newform/formbizcls");
  685. model.makeValue("/root/main/newform/firstform",formbiz);
  686. }
  687. //1711556
  688. //응급실안거치고 오는 경우
  689. //외래에서 입원하는 케이스..
  690. /**
  691. * @desc : OCR서식 선택시
  692. * @
  693. * @param :
  694. * @return :
  695. * @---------------------------------------------------
  696. */
  697. function fSelectOCR(){
  698. //var item = trv_ocrlist.item(trv_ocrlist.selectedIndex);
  699. //var rowpos = item.index + 1;
  700. //formcd 선택된경우만 부모창에 넘김
  701. //var formcd = model.getValue("/root/main/selform");
  702. var key = trv_ocrlist.value;
  703. var formcd = model.getValue("/root/main/ocrinfo/ocrlist[formcd='" + key +"']/formcd");
  704. var formnm = model.getValue("/root/main/ocrinfo/ocrlist[formcd='" + key +"']/formnm");
  705. var srcformcd = model.getValue("/root/main/ocrinfo/ocrlist[formcd='" + key +"']/src");
  706. if(formcd == "")
  707. {
  708. return;
  709. }
  710. var openerid = opener.window.javascript.getParameter("SPMMR01000_openerid"); //부모의 화면번호
  711. if (openerid == "SMMMR00100")
  712. {
  713. parent.window.javascript.fOpenNewForm(formcd); //기록메인일경우 서식 오픈
  714. }
  715. else
  716. {
  717. opener.window.javascript.setParameter("SPMMR01000_formcd_rtn", formcd); //기록 메인이 아닐 경우 서식코드를 넘긴다.
  718. opener.window.javascript.setParameter("SPMMR01000_formnm_rtn", formnm); //서식명
  719. opener.window.javascript.setParameter("SPMMR01000_srcformcd_rtn", srcformcd); //참조서식코드
  720. window.close();
  721. }
  722. }
  723. /**
  724. * @desc : 서식미리보기
  725. * @id :
  726. * @event : onmousedown
  727. * @return : void
  728. * @authur : 박종훈
  729. */
  730. function fFormPreView()
  731. {
  732. var rtn = fGetFormcode();
  733. rtn = rtn.split("|");
  734. var valu = rtn[0];
  735. setParameter("openmode", "preview"); //오픈모드는 “newform”
  736. setParameter("formcd", valu); //서식테이블의 formcd(서식코드)
  737. modal("SSMMR01100", 1, 0, 0 ,"", "", "");
  738. }
  739. /**
  740. * @desc : 다시 조회하기
  741. * @id :
  742. * @event : 진료기록메인에서 환자탭 변경시에 호출한다.
  743. * @return : void
  744. * @authur : 안치원
  745. */
  746. function reloadByRecMain()
  747. {
  748. //2009.10.26 안치원 TASK-32482
  749. //서식목록에서 응급환자의 경우 입퇴원요약기록이 안보이게 한다.
  750. //환자의 내원구분이 바뀌면 서식목록을 리로드한다.
  751. fReadyForm();
  752. model.makeValue("/root/init/Iref", "N");
  753. model.makeValue("/root/init/Dref", "N");
  754. model.makeValue("/root/init/Aref", "N");
  755. model.makeValue("/root/init/Mref", "N");
  756. fSelectIndxList();
  757. model.refresh();
  758. }
  759. /**
  760. * @desc : 과 탭에서 개인 탭으로 즐겨찾기 식으로 이미지추가.
  761. * @id :
  762. * @event : onmousedown
  763. * @return : void
  764. * @authur : 임지원
  765. */
  766. function fImgAdd()
  767. {
  768. var sTREE_OBJ = fSetTreeView();
  769. //선택 탭이 '과'일 경우에만 개인탭으로 이미지 추가.
  770. if(sTREE_OBJ == "trv_deptlist" || sTREE_OBJ == "trv_alllist"){
  771. if (sTREE_OBJ == "trv_deptlist"){
  772. Dpath = gDpath;
  773. sTREE_OBJ = trv_deptlist
  774. }else if(sTREE_OBJ == "trv_alllist"){
  775. Dpath = gApath;
  776. sTREE_OBJ = trv_alllist
  777. }
  778. // 선택폴더가 있는가?
  779. if (sTREE_OBJ.selectedIndex == -1) {
  780. messageBox("이미지를", "C002");
  781. return;
  782. }
  783. // 선택한 아이템 로우~!!
  784. var item = sTREE_OBJ.item(sTREE_OBJ.selectedIndex);
  785. var rowpos = item.index + 1;
  786. // 루트인가?
  787. var levl = model.getValue(Dpath + "[" + rowpos + "]/levl");
  788. if (levl == 1) {
  789. messageBox("지정된 위치로 이동", "E001");
  790. return;
  791. }
  792. var linkflag = model.getValue(Dpath + "[" + rowpos + "]/linkflag");
  793. if (linkflag == "N") { //폴더 선택시
  794. messageBox("이미지를", "C002");
  795. return;
  796. }
  797. var indxfocus = item.value;
  798. if( indxfocus != "" ) {
  799. model.setValue(sSETLIST_HIDDEN + "/status", "i");
  800. model.setValue(sSETLIST_HIDDEN + "/itemindxseq", model.getValue(Dpath + "[" + rowpos + "]/itemindxseq"));
  801. model.setValue(sSETLIST_HIDDEN + "/supitemindxseq", model.getValue(Dpath + "[" + rowpos + "]/supitemindxseq"));
  802. model.setValue(sSETLIST_HIDDEN + "/indxflag", "P");//
  803. model.setValue(sSETLIST_HIDDEN + "/indxnm", "");
  804. model.setValue(sSETLIST_HIDDEN + "/indxcnts", "");
  805. model.setValue(sSETLIST_HIDDEN + "/deptcd", getUserInfo("dutplcecd"));
  806. model.setValue(sSETLIST_HIDDEN + "/userid", getUserId());
  807. model.setValue(sSETLIST_HIDDEN + "/linkflag", "Y");//
  808. model.setValue(sSETLIST_HIDDEN + "/linkcd", model.getValue(Dpath + "[" + rowpos + "]/linkcd"));
  809. model.setValue(sSETLIST_HIDDEN + "/comnseq", 0);
  810. model.setValue(sSETLIST_HIDDEN + "/sortno", '1000');//
  811. model.setValue(sSETLIST_HIDDEN + "/valiyn", "Y");//
  812. model.setValue(sSETLIST_HIDDEN + "/slipno", 0);
  813. model.setValue(sSETLIST_HIDDEN + "/valu", getUserId());
  814. model.setValue(sSETLIST_HIDDEN + "/flag", "userid");
  815. model.makeNode("/root/send/savedata");
  816. model.copyNode("/root/send/savedata", sSETLIST_HIDDEN);
  817. submit("TXMMR03602");
  818. }
  819. model.removeNodeset("/root/main/userlist/pflist");
  820. model.copyNode("/root/main/userlist", "/root/tmp/indxlist");
  821. model.refresh();
  822. }else if ( sTREE_OBJ == "grd_imgnmlist" ){
  823. var rowpos = grd_imgnmlist.row;
  824. if( rowpos == "-1" || rowpos == "" ) {
  825. messageBox("이미지를 선택하십시오!","I");
  826. return;
  827. }else{
  828. model.setValue(sSETLIST_HIDDEN + "/status", "i");
  829. model.setValue(sSETLIST_HIDDEN + "/itemindxseq", model.getValue(gIpath + "[" + rowpos + "]/itemindxseq"));//
  830. model.setValue(sSETLIST_HIDDEN + "/supitemindxseq", model.getValue(gIpath + "[" + rowpos + "]/supitemindxseq"));//
  831. model.setValue(sSETLIST_HIDDEN + "/indxflag", "P");
  832. model.setValue(sSETLIST_HIDDEN + "/indxnm", "");
  833. model.setValue(sSETLIST_HIDDEN + "/indxcnts", "");
  834. model.setValue(sSETLIST_HIDDEN + "/deptcd", getUserInfo("dutplcecd"));
  835. model.setValue(sSETLIST_HIDDEN + "/userid", getUserId());
  836. model.setValue(sSETLIST_HIDDEN + "/linkflag", "Y");
  837. model.setValue(sSETLIST_HIDDEN + "/linkcd", model.getValue(gIpath + "[" + rowpos + "]/linkcd"));
  838. model.setValue(sSETLIST_HIDDEN + "/comnseq", 0);
  839. model.setValue(sSETLIST_HIDDEN + "/sortno", '1000');
  840. model.setValue(sSETLIST_HIDDEN + "/valiyn", "Y");
  841. model.setValue(sSETLIST_HIDDEN + "/slipno", 0);
  842. model.setValue(sSETLIST_HIDDEN + "/valu", getUserId());
  843. model.setValue(sSETLIST_HIDDEN + "/flag", "userid");
  844. model.makeNode("/root/send/savedata");
  845. model.copyNode("/root/send/savedata", sSETLIST_HIDDEN);
  846. submit("TXMMR03602");
  847. }
  848. model.removeNodeset("/root/main/userlist/pflist");
  849. model.copyNode("/root/main/userlist", "/root/tmp/indxlist");
  850. model.refresh();
  851. }else{
  852. return;
  853. }
  854. }
  855. function fImgDel(){
  856. var sTREE_OBJ = fSetTreeView();
  857. if(sTREE_OBJ == "trv_userlist"){
  858. sTREE_OBJ = trv_userlist
  859. if (sTREE_OBJ.selectedIndex == -1) {
  860. messageBox("이미지를", "C002");
  861. return;
  862. }
  863. var item = sTREE_OBJ.item(sTREE_OBJ.selectedIndex);
  864. var rowpos = item.index + 1;
  865. var levl = model.getValue(gUpath + "[" + rowpos + "]/levl");
  866. var linkflag = model.getValue(gUpath + "[" + rowpos + "]/linkflag");
  867. if (linkflag == "N") { //폴더 선택시
  868. messageBox("이미지를", "C002");
  869. return;
  870. }
  871. //이미지일 경우에만 삭제가능
  872. if( levl != '1' ){
  873. var ret = messageBox("정말","Q001");
  874. if(ret != "6"){
  875. return;
  876. }
  877. fSaveDiagSet(rowpos, "d", "Y");
  878. }
  879. }
  880. }
  881. function fSaveDiagSet(rowpos, status, linkflag) {
  882. var itemindxseq = model.getValue(gUpath + "[" + rowpos + "]/itemindxseq");
  883. var supitemindxseq = model.getValue(gUpath + "[" + rowpos + "]/supitemindxseq");
  884. var indxflag = model.getValue(gUpath + "[" + rowpos + "]/indxflag");
  885. model.setValue(sSETLIST_HIDDEN + "/status", status);
  886. model.setValue(sSETLIST_HIDDEN + "/itemindxseq", itemindxseq);
  887. model.setValue(sSETLIST_HIDDEN + "/supitemindxseq", supitemindxseq);
  888. model.setValue(sSETLIST_HIDDEN + "/indxflag", indxflag);
  889. model.setValue(sSETLIST_HIDDEN + "/linkflag", linkflag);
  890. model.setValue(sSETLIST_HIDDEN + "/userid", getUserId());
  891. model.setValue(sSETLIST_HIDDEN + "/depth", "4");//파일
  892. model.makeValue(sSETLIST_HIDDEN + "/favorDel", "Y");//파일s
  893. model.setValue(sSETLIST_HIDDEN + "/valu", getUserId());
  894. model.setValue(sSETLIST_HIDDEN + "/flag", "userid");//
  895. model.makeNode("/root/send/savedata");
  896. model.copyNode("/root/send/savedata", sSETLIST_HIDDEN);
  897. submit("TXMMR03602");
  898. // btn_user.dispatch("DOMActivate");
  899. model.removeNodeset("/root/main/userlist/pflist");
  900. model.copyNode("/root/main/userlist", "/root/tmp/indxlist");
  901. trv_userlist.rebuild();
  902. model.refresh();
  903. }