SMMMB00600.js 35 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007
  1. /*
  2. - ▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩
  3. 약속SET관리 ( SMMMB00600_약속SET관리.xrw - JScript )
  4. - ▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩
  5. */
  6. var sPRMSPRCPSETLIST = "/root/main/prmsprcpsetinfo/prmsprcpsetlist";
  7. var sPRMSPRCPSETLIST_HIDDEN = "/root/hidden/prmsprcpsetinfo/prmsprcpsetlist";
  8. var sETCPRMSPRCPSETDETLLIST = "/root/main/etcprmsprcpsetdetlinfo/etcprmsprcpsetdetllist";
  9. var sPRMSPRCPSETLIST_TMP = "/root/hidden/etcprmsprcpsettmp/etcprmsprcpsetlist";
  10. var sDIAGHISTINFO = "/root/hidden/diaghistinfo/diaghist";
  11. var prevFocusIndex = 0;
  12. /**
  13. * @desc : 약속SET관리
  14. * @
  15. * @param :
  16. * @return :
  17. * @---------------------------------------------------
  18. */
  19. function fInitializeDone_SMMMB00600(){
  20. rdo_setflag.item(0).attribute("color") = "#ff0000";
  21. rdo_setflag.item(0).attribute("font-weight") = "bold";
  22. group1.attribute("height") = 0;
  23. mmbfGetDeptCodeComboList("/root/send/reqdata", "/root/init/orddept" , "D");
  24. mmbfGetDeptCodeComboList("/root/send/reqdata", "/root/init/orddept2", "D");
  25. }
  26. /**
  27. * @desc : 마우스 오른쪽 버튼 팝업창
  28. * @
  29. * @param :
  30. * @return :
  31. * @---------------------------------------------------
  32. */
  33. function fMouseRghtBtnPopup(){
  34. var prmsflag = model.getValue("/root/main/cond/prmsflag");
  35. if(event.button == 3){
  36. var rowpos = trv_prmsprcpsetlist.mouseRow;
  37. trv_prmsprcpsetlist.select(rowpos);
  38. }
  39. if(btn_prcp.selected == true && prmsflag == "P"){ //약속처방Tab 개인Tab
  40. setPopupMenu("trv_prmsprcpsetlist", false, "/root/trvprcpmenu/menu/menu" , "label", "func");
  41. }else if(btn_prcp.selected == true && prmsflag== "D"){ //약속처방 과Tab
  42. setPopupMenu("trv_prmsprcpsetlist", false, "/root/trvprcpmenu/menu/menu" , "label", "func");
  43. }else if(btn_prcp.selected == true && prmsflag == "T"){ //약속처방 타과Tab
  44. setPopupMenu("trv_prmsprcpsetlist", false, "/root/trvothrmenu2/menu/menu", "label", "func");
  45. }else if(btn_diag.selected == true && prmsflag == "P"){ //진단 개인Tab
  46. setPopupMenu("trv_prmsprcpsetlist", false, "/root/trvbasemenu/menu/menu" , "label", "func");
  47. }else if(btn_op.selected == true && prmsflag == "P"){ //수술 개인Tab
  48. setPopupMenu("trv_prmsprcpsetlist", false, "/root/trvbasemenu/menu/menu" , "label", "func");
  49. }else{ //그 이외Tab
  50. setPopupMenu("trv_prmsprcpsetlist", false, "/root/trvetcmenu/menu/menu" , "label", "func");
  51. }
  52. }
  53. /**
  54. * @desc : 새폴더 추가
  55. * @
  56. * @param :
  57. * @return :
  58. * @---------------------------------------------------
  59. */
  60. function fAddPrmsDiagSet(){
  61. var item = trv_prmsprcpsetlist.item(trv_prmsprcpsetlist.selectedIndex);
  62. if(item == null){return;}
  63. var currow = item.index + 1;
  64. model.setValue("/root/main/iptbox/setnm", "");
  65. model.refresh();
  66. if(fSetPrmsDiagInfo(currow, "i")!=-1){
  67. model.setValue(sPRMSPRCPSETLIST_HIDDEN + "/status", "i");
  68. model.refresh();
  69. fShowWndIptBox();
  70. }
  71. }
  72. /**
  73. * @desc : 폴더 삭제
  74. * @
  75. * @param :
  76. * @return :
  77. * @---------------------------------------------------
  78. */
  79. function fDelPrmsDiagSet(){
  80. var item = trv_prmsprcpsetlist.item(trv_prmsprcpsetlist.selectedIndex);
  81. if(item == null){return;}
  82. var currow = item.index + 1;
  83. var supsetno = model.getValue(sPRMSPRCPSETLIST + "[" + currow + "]/supsetno");
  84. if(fSetPrmsDiagInfo(currow, "d") != -1){
  85. fSavePrmsDiagSet();
  86. }
  87. iviewer1.window.javascript.fClrGridData();
  88. }
  89. /**
  90. * @desc : 폴더 수정
  91. * @
  92. * @param :
  93. * @return :
  94. * @---------------------------------------------------
  95. */
  96. function fUpdtPrmsDiagSet(){
  97. var item = trv_prmsprcpsetlist.item(trv_prmsprcpsetlist.selectedIndex);
  98. if(item == null){return;}
  99. var currow = item.index + 1;
  100. var indx = trv_prmsprcpsetlist.selectedIndex;
  101. var foldernm = model.getValue(sPRMSPRCPSETLIST + "[" + currow + "]/setnm");
  102. model.setValue("/root/main/iptbox/setnm", foldernm);
  103. model.refresh();
  104. if(fSetPrmsDiagInfo(currow, "u")!=-1){
  105. fShowWndIptBox();
  106. }
  107. }
  108. /**
  109. * @desc : 약속진단 SET저장
  110. * @
  111. * @param :
  112. * @return :
  113. * @---------------------------------------------------
  114. */
  115. function fSavePrmsDiagSet(){
  116. var setnm = model.getValue("/root/main/iptbox/setnm");
  117. model.setValue(sPRMSPRCPSETLIST_HIDDEN + "/setnm", setnm);
  118. model.copyNode("/root/send/savedata", sPRMSPRCPSETLIST_HIDDEN);
  119. if(submit("TXMMB00601")){
  120. model.setValue(trv_prmsprcpsetlist.attribute("ref"), "");
  121. trv_prmsprcpsetlist.rebuild();
  122. }
  123. }
  124. /**
  125. * @desc : 약속진단관리 폴더명을 입력할 InputBox를 보여줌.
  126. * @
  127. * @param :
  128. * @return :
  129. * @---------------------------------------------------
  130. */
  131. function fShowWndIptBox(){
  132. if(event.clientY >= 700){
  133. var ypos = 700;
  134. }else{
  135. var ypos = event.clientY;
  136. }
  137. group1.attribute("top") = ypos;
  138. group1.attribute("height") = 55;
  139. model.setFocus("ipt_setnm");
  140. model.refresh();
  141. }
  142. /**
  143. * @desc : 약속진단 SET정보 SETTING
  144. * @
  145. * @param :
  146. * @return :
  147. * @---------------------------------------------------
  148. */
  149. function fSetPrmsDiagInfo(rowpos, status){
  150. var setno = model.getValue(sPRMSPRCPSETLIST + "[" + rowpos + "]/setno");
  151. var settypecd = model.getValue(sPRMSPRCPSETLIST + "[" + rowpos + "]/settypecd");
  152. if(status == "u" && setno == 1){
  153. messageBox("선택한 폴더는 수정", "E001");
  154. return -1;
  155. }else if(status == "d" && setno == 1){
  156. messageBox("선택한 폴더는 삭제", "E001");
  157. return -1;
  158. }else if(settypecd == "E"){
  159. messageBox("선택한 폴더는 사용", "E001");
  160. return -1;
  161. }
  162. var setnm = model.getValue(sPRMSPRCPSETLIST + "[" + rowpos + "]/setnm");
  163. if(status == "d"){
  164. var rtnval = messageBox("[" + setnm + "]하위의 모든 폴더가 지워집니다. " + "[" + setnm + "]폴더를", "Q001");
  165. if(rtnval == 7){
  166. return -1;
  167. }
  168. }
  169. var levl = model.getValue(sPRMSPRCPSETLIST + "[" + rowpos + "]/levl");
  170. var supsetno = model.getValue(sPRMSPRCPSETLIST + "[" + rowpos + "]/supsetno");
  171. var setkindcd = model.getValue(sPRMSPRCPSETLIST + "[" + rowpos + "]/setkindcd");
  172. var setclscd = model.getValue(sPRMSPRCPSETLIST + "[" + rowpos + "]/setclscd");
  173. var settrgtcd = model.getValue(sPRMSPRCPSETLIST + "[" + rowpos + "]/settrgtcd");
  174. var settypecd = model.getValue(sPRMSPRCPSETLIST + "[" + rowpos + "]/settypecd");
  175. var sortno = model.getValue(sPRMSPRCPSETLIST + "[" + rowpos + "]/sortno");
  176. var ioflag = model.getValue("/root/main/cond/ioflag");
  177. if(settypecd == "P"){
  178. ioflag = model.getValue("/root/main/cond/ioflag");
  179. }else{
  180. ioflag = "N";
  181. }
  182. model.setValue(sPRMSPRCPSETLIST_HIDDEN + "/levl" , levl);
  183. model.setValue(sPRMSPRCPSETLIST_HIDDEN + "/setno" , setno);
  184. model.setValue(sPRMSPRCPSETLIST_HIDDEN + "/setkindcd" , setkindcd);
  185. model.setValue(sPRMSPRCPSETLIST_HIDDEN + "/setclscd" , setclscd);
  186. model.setValue(sPRMSPRCPSETLIST_HIDDEN + "/settrgtcd" , settrgtcd);
  187. model.setValue(sPRMSPRCPSETLIST_HIDDEN + "/settypecd" , settypecd);
  188. model.setValue(sPRMSPRCPSETLIST_HIDDEN + "/status" , status);
  189. model.setValue(sPRMSPRCPSETLIST_HIDDEN + "/setnm" , setnm);
  190. model.setValue(sPRMSPRCPSETLIST_HIDDEN + "/ioflag" , ioflag);
  191. if(status == "i"){
  192. model.setValue(sPRMSPRCPSETLIST_HIDDEN + "/supsetno" , setno);
  193. }else{
  194. model.setValue(sPRMSPRCPSETLIST_HIDDEN + "/supsetno" , supsetno);
  195. }
  196. model.refresh();
  197. }
  198. /**
  199. * @desc : 약속SET상세 조회
  200. * @
  201. * @param :
  202. * @return :
  203. * @---------------------------------------------------
  204. */
  205. function fReqPrmsDetlSet(){
  206. var item = trv_prmsprcpsetlist.item(trv_prmsprcpsetlist.selectedIndex);
  207. var indx = trv_prmsprcpsetlist.selectedIndex;
  208. if(item == null){return;}
  209. var rowpos = item.index + 1;
  210. var levl = model.getValue(sPRMSPRCPSETLIST + "[" + rowpos + "]/levl");
  211. var setno = model.getValue(sPRMSPRCPSETLIST + "[" + rowpos + "]/setno");
  212. var settypecd = model.getValue(sPRMSPRCPSETLIST + "[" + rowpos + "]/settypecd");
  213. var setnm = model.getValue(sPRMSPRCPSETLIST + "[" + rowpos + "]/setnm");
  214. iviewer1.model.setValue("/root/hidden/prmsprcpsetdetlset/setno" , setno);
  215. iviewer1.model.setValue("/root/hidden/prmsprcpsetdetlset/settypecd", settypecd);
  216. iviewer1.model.setValue("/root/hidden/prmsprcpsetdetlset/setnm" , setnm);
  217. iviewer1.model.refresh();
  218. iviewer1.window.javascript.fReqGetPrmsSet();
  219. trv_prmsprcpsetlist.expand(indx, true);
  220. trv_prmsprcpsetlist.refresh();
  221. }
  222. /**
  223. * @desc : 폴더명 검색할 경우 검색한 위치로 focus를 이동한다.
  224. * @
  225. * @param :
  226. * @return : void
  227. * @authur : 오지훈 2007. 4. 24
  228. * @---------------------------------------------------
  229. */
  230. function fSrchFolderNM(){
  231. var foldernm = model.getValue("/root/main/cond/foldernm");
  232. if(foldernm == ""){
  233. messageBox("검색어를", "C001");
  234. return;
  235. }
  236. for(var i=1; i <= trv_prmsprcpsetlist.length; i++){
  237. var setnm = model.getValue("/root/main/prmsprcpsetinfo/prmsprcpsetlist[" + i + "]/setnm");
  238. if(setnm == foldernm){
  239. break;
  240. }
  241. }
  242. trv_prmsprcpsetlist.select(i-1);
  243. trv_prmsprcpsetlist.rebuild();
  244. }
  245. /**
  246. * @desc : 약속처방 SET의 처방 복사
  247. * @
  248. * @param :
  249. * @return : void
  250. * @authur : 오지훈 2007. 4. 24
  251. * @---------------------------------------------------
  252. */
  253. function fPasteCD() {
  254. if(btn_prcp.selected == true){
  255. iviewer1.window.javascript.fPasteRow();
  256. }else if(btn_diag.selected == true ){
  257. iviewer1.window.javascript.fPasteDiagCD();
  258. }else if(btn_op.selected == true){
  259. iviewer1.window.javascript.fPasteOpCD();
  260. }
  261. }
  262. /**
  263. * @desc : 마우스 버튼 클릭 유효성 검사
  264. * : 조건1 - 콤보박스 전체 선택인 경우 불가
  265. * @
  266. * @param :
  267. * @return : true / false
  268. * @authur : 오지훈 2007. 4. 24
  269. * @---------------------------------------------------
  270. */
  271. function fChkValidMouseBtn(){
  272. var prmsflag = model.getValue("/root/main/cond/prmsflag");
  273. if(prmsflag == "T")
  274. return false;
  275. else
  276. return true;
  277. }
  278. /**
  279. * @desc : 약속SET 처방/진단/수술/프로토콜 조회
  280. * @
  281. * @param : setkindcd - SET종류코드(개인P/부서D)
  282. * : setclscd - SET분류코드(의사D)
  283. * : settypecd - SET분류코드(처방P/진단D/수술O/프로토콜C)
  284. * : procflag - 처리구분(부서SET:D)
  285. * : deptcd - 부서코드
  286. * : deptnm - 부서명
  287. * : ioflag - 외래/입원구분
  288. * @return :
  289. * @authur : 오지훈 2007. 6. 27
  290. * @---------------------------------------------------
  291. */
  292. function fReqSetTreeView(setkindcd, setclscd, settypecd, procflag, deptcd, deptnm){
  293. model.removeNodeset("/root/send/reqdata");
  294. model.makeValue("/root/send/reqdata/setkindcd", setkindcd); //개인, 부서
  295. model.makeValue("/root/send/reqdata/setclscd" , setclscd); //의사
  296. model.makeValue("/root/send/reqdata/settypecd", settypecd); //처방, 진단, 수술, 프로토콜
  297. model.makeValue("/root/send/reqdata/procflag" , procflag); //처리구분(부서SET 조회시 설정)
  298. model.makeValue("/root/send/reqdata/deptcd" , deptcd); //부서코드(부서SET 조회시 설정)
  299. model.makeValue("/root/send/reqdata/deptnm" , deptnm); //부서명 (부서SET 조회시 설정)
  300. if(settypecd == "P"){ //처방인 경우, "O"로 처리
  301. var ioflag = model.getValue("/root/main/cond/ioflag");
  302. }else{
  303. var ioflag = "N";
  304. }
  305. model.makeValue("/root/send/reqdata/ioflag" , ioflag); //외래입원구분
  306. if(submit("TRMMB00601")){
  307. trv_prmsprcpsetlist.rebuild();
  308. }
  309. }
  310. /**
  311. * @desc : 약속SET 처방/진단/수술 부서 조회
  312. * : 처방/진단/수술 약속SET을 등록한 부서를 조회한다.
  313. *
  314. * @param : setkindcd - SET종류코드(개인P/부서D)
  315. * : setclscd - SET분류코드(의사D)
  316. * : settypecd - SET분류코드(처방P/진단D/수술O/프로토콜C)
  317. *
  318. * @return :
  319. * @authur : 오지훈 2007. 6. 27
  320. * @---------------------------------------------------
  321. */
  322. function fReqPrmsSetDept(setkindcd, setclscd, settypecd){
  323. model.removeNodeset("/root/send/reqdata");
  324. model.makeValue("/root/send/reqdata/setkindcd", setkindcd); //개인, 부서
  325. model.makeValue("/root/send/reqdata/setclscd" , setclscd ); //의사
  326. model.makeValue("/root/send/reqdata/settypecd", settypecd); //처방, 진단, 수술, 프로토콜
  327. if(submit("TRMMB00604")){
  328. }
  329. }
  330. /**
  331. * @desc : 타과 부서 약속SET 조회(타과Combo 선택 Event)
  332. * @
  333. * @param :
  334. * @return :
  335. * @authur : 오지훈 2007. 6. 27
  336. * @---------------------------------------------------
  337. */
  338. function fSelectDeptCmb(){
  339. var diagflag = btn_diag.selected;
  340. if(diagflag == false){ //진단tab이 아닌 경우 타과 부서의 약속SET 조회
  341. var deptcd = model.getValue("/root/main/cond/deptsetcd");
  342. var settypecd = model.getValue("/root/main/cond/settypecd");
  343. fReqSetTreeView("D", "D", settypecd, "D", deptcd, cmb_deptset.label);
  344. }else if(diagflag == true){ //진단tab인 경우 타과의 과색인 조회
  345. model.removeNodeset("/root/send/reqdata");
  346. model.makeValue("/root/send/reqdata/deptindxflag", "0");
  347. model.makeValue("/root/send/reqdata/deptcd", cmb_deptset.value);
  348. model.makeValue("/root/send/reqdata/deptnm", cmb_deptset.label);
  349. if(submit("TRMMO03111")){
  350. }
  351. }
  352. }
  353. /**
  354. * @desc : Radio박스 focus된 item의 color 설정
  355. * @
  356. * @param :
  357. * @return :
  358. * @authur : 오지훈 2007. 6. 27
  359. * @---------------------------------------------------
  360. */
  361. function setCmbColor(cmbObj, fontClr, fontStyle){
  362. if(prevFocusIndex != -1){
  363. cmbObj.item(prevFocusIndex).attribute("color") = "#000000";
  364. cmbObj.item(prevFocusIndex).attribute("font-weight") = "lighter";
  365. }
  366. prevFocusIndex = cmbObj.focusIndex;
  367. // 포커스를 가진 아이템의 객체를 얻어와서 color을 변경한다.
  368. cmbObj.item(prevFocusIndex).attribute("color") = fontClr;
  369. cmbObj.item(prevFocusIndex).attribute("font-weight") = fontStyle;
  370. model.refresh();
  371. }
  372. /**
  373. * @desc : 약속SET 과색인 조회
  374. * @
  375. * @param :
  376. * @return :
  377. * @authur : 오지훈 2007. 6. 27
  378. * @---------------------------------------------------
  379. */
  380. function fReqPrmsDeptIndxList(){
  381. var prmsflag = model.getValue("/root/main/cond/prmsflag");
  382. if(prmsflag == "D"){ //약속SET 과색인 조회인 경우, 부서코드는 로그인 사용자 부서
  383. var deptcd = getUserInfo("dutplcecd");
  384. }else{ //약속SET 타과색인 조회인 경우, 부서코드는 combo에 선택된 부서
  385. var deptcd = model.getValue("/root/main/cond/deptsetcd");
  386. }
  387. if(btn_diag.selected == true){ //진단
  388. var deptindxflag = 0;
  389. }else if(btn_op.selected == true){ //수술
  390. var deptindxflag = 9;
  391. }
  392. iviewer1.model.removeNodeset("/root/send/reqdata");
  393. iviewer1.model.makeValue("/root/send/reqdata/deptindxflag", deptindxflag);
  394. iviewer1.model.makeValue("/root/send/reqdata/deptindxcd" , trv_deptindxcdlist.value);
  395. iviewer1.model.makeValue("/root/send/reqdata/deptcd" , deptcd);
  396. iviewer1.window.javascript.fReqPrmsDeptIndxList();
  397. }
  398. /**
  399. * @desc : 폴더 복사
  400. * @
  401. * @param :
  402. * @return :
  403. * @authur : 오지훈 2007. 10. 13
  404. * @---------------------------------------------------
  405. */
  406. function fFolderCopy(){
  407. var item = trv_prmsprcpsetlist.item(trv_prmsprcpsetlist.selectedIndex);
  408. if(item == null){return;}
  409. var currow = item.index + 1;
  410. var levl = model.getValue(sPRMSPRCPSETLIST + "[" + currow + "]/levl");
  411. var setno = model.getValue(sPRMSPRCPSETLIST + "[" + currow + "]/setno");
  412. var settypecd = model.getValue(sPRMSPRCPSETLIST + "[" + currow + "]/settypecd");
  413. var setkindcd = model.getValue(sPRMSPRCPSETLIST + "[" + currow + "]/setkindcd");
  414. var settrgtcd = model.getValue(sPRMSPRCPSETLIST + "[" + currow + "]/settrgtcd");
  415. var setclscd = model.getValue(sPRMSPRCPSETLIST + "[" + currow + "]/setclscd");
  416. var setnm = model.getValue(sPRMSPRCPSETLIST + "[" + currow + "]/setnm");
  417. if(setno == 1){
  418. messageBox("즐겨찾기 폴더는 복사", "E001");
  419. return;
  420. }
  421. model.setValue("/root/temp/copy/setno" , setno);
  422. model.setValue("/root/temp/copy/settypecd", settypecd);
  423. model.setValue("/root/temp/copy/setkindcd", setkindcd);
  424. model.setValue("/root/temp/copy/setclscd" , setclscd);
  425. model.setValue("/root/temp/copy/settrgtcd", settrgtcd);
  426. model.setValue("/root/temp/copy/setnm" , setnm);
  427. }
  428. /**
  429. * @desc : 폴더 붙여넣기
  430. * @
  431. * @param :
  432. * @return :
  433. * @authur : 오지훈 2007. 10. 13
  434. * @---------------------------------------------------
  435. */
  436. function fFolderPaste(){
  437. var setno = model.getValue("/root/temp/copy/setno");
  438. if(setno == ""){ //복사할 내용이 없는 경우
  439. return;
  440. }
  441. var item = trv_prmsprcpsetlist.item(trv_prmsprcpsetlist.selectedIndex);
  442. var indx = trv_prmsprcpsetlist.selectedIndex;
  443. if(item == null){return;}
  444. var currow = item.index + 1;
  445. var supsetno = model.getValue(sPRMSPRCPSETLIST + "[" + currow + "]/setno");
  446. var settypecd = model.getValue(sPRMSPRCPSETLIST + "[" + currow + "]/settypecd");
  447. var setkindcd = model.getValue(sPRMSPRCPSETLIST + "[" + currow + "]/setkindcd");
  448. var settrgtcd = model.getValue(sPRMSPRCPSETLIST + "[" + currow + "]/settrgtcd");
  449. var setclscd = model.getValue(sPRMSPRCPSETLIST + "[" + currow + "]/setclscd");
  450. var ioflag = model.getValue(sPRMSPRCPSETLIST + "[" + currow + "]/ioflag");
  451. model.setValue("/root/temp/copy/supsetno" , supsetno);
  452. model.setValue("/root/temp/copy/ioflag" , ioflag);
  453. model.setValue("/root/temp/copy/trgtsettypecd", settypecd);
  454. model.setValue("/root/temp/copy/trgtsetkindcd", setkindcd);
  455. model.setValue("/root/temp/copy/trgtsettrgtcd", settrgtcd);
  456. model.setValue("/root/temp/copy/trgtsetclscd" , setclscd);
  457. model.setValue("/root/temp/copy/trgtioflag" , ioflag);
  458. //trgtioflag는 저장 후, 재 조회시 화면의 외래/입원구분에 따라 조회하기 위해 설정
  459. model.setValue("/root/temp/copy/trgtioflag" , model.getValue("/root/main/cond/ioflag"));
  460. model.copyNode("/root/send/savedata", "/root/temp/copy");
  461. if(submit("TXMMB00607")){
  462. trv_prmsprcpsetlist.expand(indx, true);
  463. trv_prmsprcpsetlist.refresh();
  464. }
  465. }
  466. /**
  467. * @desc : 약속SET구분(개인, 과, 타과) 변경시 화면처리
  468. * @
  469. * @param :
  470. * @return :
  471. * @authur : 오지훈 2007. 10. 21
  472. * @---------------------------------------------------
  473. */
  474. function fChngReqCondVal(){
  475. var prmsflag = model.getValue("/root/main/cond/prmsflag");
  476. var ioflag = model.getValue("/root/main/cond/ioflag");
  477. if(prmsflag == "T"){ //타과
  478. trv_prmsprcpsetlist.attribute("visibility") = "hidden";
  479. trv_deptindxcdlist.attribute("visibility") = "visible";
  480. mmbfGetDeptCodeComboList("/root/send/reqdata", "/root/init/orddept", "D");
  481. cmb_deptset.disabled = false;
  482. if(cmb_deptset.label == ""){ //부서가 선택되지 않은 경우, combo의 첫번째 부서 선택
  483. cmb_deptset.select(0);
  484. }
  485. }else if(prmsflag == "D"){ //과
  486. trv_prmsprcpsetlist.attribute("visibility") = "hidden";
  487. trv_deptindxcdlist.attribute("visibility") = "visible";
  488. }else{ //개인
  489. trv_prmsprcpsetlist.attribute("visibility") = "visible";
  490. trv_deptindxcdlist.attribute("visibility") = "hidden";
  491. cmb_deptset.disabled = true;
  492. model.setValue("/root/main/cond/deptsetcd", "");
  493. }
  494. model.refresh();
  495. fReqPrmsSet(prmsflag, ioflag);
  496. }
  497. /**
  498. * @desc : 약속SET 조회
  499. * @
  500. * @param : prmsflag - 약속SET구분
  501. ioflag - 외래, 입원구분
  502. * @return :
  503. * @authur : 오지훈 2007. 10. 21
  504. * @---------------------------------------------------
  505. */
  506. function fReqPrmsSet(){
  507. var prmsflag = model.getValue("/root/main/cond/prmsflag");
  508. var ioflag = model.getValue("/root/main/cond/ioflag");
  509. if(btn_prcp.selected == true){ //약속처방
  510. trv_prmsprcpsetlist.attribute("visibility") = "visible";
  511. trv_deptindxcdlist.attribute("visibility") = "hidden";
  512. cmb_deptset.disabled = true;
  513. if(prmsflag == "T"){ //약속처방 타과인 경우
  514. cmb_deptset.disabled = false;
  515. fReqSetTreeView("D", "D", "P", "D", cmb_deptset.value, cmb_deptset.label, ioflag);
  516. iviewer1.button10.disabled = true;
  517. iviewer1.btn_del.disabled = true;
  518. iviewer1.btn_save.disabled = true;
  519. }else if(prmsflag == "D"){ //약속처방 과인 경우
  520. model.setValue("/root/main/cond/deptsetcd", "");
  521. fReqSetTreeView("D", "D", "P", "D", getUserInfo("dutplcecd"), getUserInfo("dutplcenm"), ioflag);
  522. iviewer1.button10.disabled = false;
  523. iviewer1.btn_del.disabled = false;
  524. iviewer1.btn_save.disabled = false;
  525. }else{ //약속처방 개인인 경우
  526. fReqSetTreeView("P", "D", "P", "", "", "", ioflag);
  527. iviewer1.button10.disabled = false;
  528. iviewer1.btn_del.disabled = false;
  529. iviewer1.btn_save.disabled = false;
  530. }
  531. }else if(btn_diag.selected == true){ //약속진단
  532. if(prmsflag == "T"){ //타과약속 진단색인 조회
  533. trv_prmsprcpsetlist.attribute("visibility") = "hidden";
  534. trv_prmsprcpsetlist.disabled = false;
  535. trv_deptindxcdlist.attribute("visibility") = "visible";
  536. mmbfGetDeptCodeComboList("/root/send/reqdata", "/root/init/orddept", "D");
  537. cmb_deptset.disabled = false;
  538. if(cmb_deptset.label == ""){ //부서가 선택되지 않은 경우, combo의 첫번째 부서 선택
  539. cmb_deptset.select(0);
  540. }
  541. fReqTreeViewDeptDiagIndx(cmb_deptset.value, cmb_deptset.label, 0);
  542. }else if(prmsflag == "D"){ //과약속 진단색인 조회
  543. trv_prmsprcpsetlist.attribute("visibility") = "hidden";
  544. trv_prmsprcpsetlist.disabled = true;
  545. trv_deptindxcdlist.attribute("visibility") = "visible";
  546. cmb_deptset.disabled = true;
  547. model.setValue("/root/main/cond/deptsetcd", "");
  548. fReqTreeViewDeptDiagIndx(getUserInfo("dutplcecd"), getUserInfo("dutplcenm"), 0);
  549. }else{ //개인약속 진단 조회
  550. trv_prmsprcpsetlist.attribute("visibility") = "visible";
  551. trv_prmsprcpsetlist.disabled = false;
  552. trv_deptindxcdlist.attribute("visibility") = "hidden";
  553. cmb_deptset.disabled = true;
  554. model.setValue("/root/main/cond/deptsetcd", "");
  555. fReqSetTreeView("P", "D", "D");
  556. iviewer1.btn_srch.disabled = false;
  557. iviewer1.btn_save.disabled = false;
  558. iviewer1.btn_del.disabled = false;
  559. }
  560. iviewer1.model.removeNodeset("/root/main/etcprmsprcpsetdetlinfo/etcprmsprcpsetdetllist");
  561. iviewer1.model.refresh();
  562. }else if(btn_op.selected == true){ //약속수술
  563. if(prmsflag == "T"){ //타과 약속수술 조회
  564. trv_prmsprcpsetlist.attribute("visibility") = "hidden";
  565. trv_deptindxcdlist.attribute("visibility") = "visible";
  566. mmbfGetDeptCodeComboList("/root/send/reqdata", "/root/init/orddept", "D");
  567. cmb_deptset.disabled = false;
  568. fReqTreeViewDeptDiagIndx(cmb_deptset.value, cmb_deptset.label, 9);
  569. iviewer1.btn_delopprms.disabled = false;
  570. iviewer1.btn_save.disabled = false;
  571. iviewer1.btn_addop.disabled = false;
  572. iviewer1.btn_allchoi.disabled = false;
  573. }else if(prmsflag == "D"){ //과 약속수술 조회
  574. trv_prmsprcpsetlist.attribute("visibility") = "hidden";
  575. trv_deptindxcdlist.attribute("visibility") = "visible";
  576. cmb_deptset.disabled = true;
  577. model.setValue("/root/main/cond/deptsetcd", "");
  578. fReqTreeViewDeptDiagIndx(getUserInfo("dutplcecd"), getUserInfo("dutplcenm"), 9);
  579. iviewer1.btn_delopprms.disabled = false;
  580. iviewer1.btn_save.disabled = false;
  581. iviewer1.btn_addop.disabled = false;
  582. iviewer1.btn_allchoi.disabled = false;
  583. }else{ //개인 약속수술조회
  584. trv_prmsprcpsetlist.attribute("visibility") = "visible";
  585. trv_deptindxcdlist.attribute("visibility") = "hidden";
  586. cmb_deptset.disabled = true;
  587. model.setValue("/root/main/cond/deptsetcd", "");
  588. fReqSetTreeView("P", "D", "O");
  589. iviewer1.btn_rgst.disabled = false;
  590. iviewer1.btn_delopterm.disabled = false;
  591. iviewer1.btn_saveprmsop.disabled = false;
  592. iviewer1.btn_addop.disabled = false;
  593. iviewer1.btn_delopprms.disabled = false;
  594. iviewer1.btn_save.disabled = false;
  595. iviewer1.btn_allchoi.disabled = false;
  596. }
  597. iviewer1.model.removeNodeset("/root/main/etcprmsprcpsetdetlinfo/etcprmsprcpsetdetllist");
  598. iviewer1.model.removeNodeset("/root/main/mechinfo/mechlist");
  599. iviewer1.model.removeNodeset("/root/main/opprcpinfo/opprcplist");
  600. iviewer1.model.refresh();
  601. }else if(btn_protocol.selected == true){ //프로토콜
  602. fReqSetTreeView("D", "D", "C", cmb_deptset.value, cmb_deptset.label);
  603. }
  604. model.refresh();
  605. }
  606. /**
  607. * @desc : 과색인 트리조회
  608. * @
  609. * @param : deptcd - 부서코드
  610. * : deptnm - 부서명
  611. * : deptindxflag - 부서indx구분
  612. * @return :
  613. * @authur : 오지훈 2007. 10. 21
  614. * @---------------------------------------------------
  615. */
  616. function fReqTreeViewDeptDiagIndx(deptcd, deptnm, deptindxflag){
  617. trv_prmsprcpsetlist.attribute("visibility") = "hidden";
  618. trv_deptindxcdlist.attribute("visibility") = "visible";
  619. if(deptindxflag == 0){ //진단
  620. iviewer1.btn_srch.disabled = true;
  621. iviewer1.btn_save.disabled = true;
  622. iviewer1.btn_del.disabled = true;
  623. }else if(deptindxflag == 9){ //수술
  624. iviewer1.btn_rgst.disabled = true;
  625. iviewer1.btn_delopterm.disabled = true;
  626. iviewer1.btn_saveprmsop.disabled = true;
  627. iviewer1.btn_addop.disabled = true;
  628. iviewer1.btn_delopprms.disabled = true;
  629. iviewer1.btn_save.disabled = true;
  630. iviewer1.btn_allchoi.disabled = true;
  631. }
  632. model.removeNodeset("/root/send/reqdata");
  633. model.makeValue("/root/send/reqdata/deptindxflag", deptindxflag);
  634. model.makeValue("/root/send/reqdata/deptcd", deptcd);
  635. model.makeValue("/root/send/reqdata/deptnm", deptnm);
  636. if(submit("TRMMO03111")){//과색인조회
  637. }
  638. }
  639. /**
  640. * @desc : 처방탭 버튼 클릭
  641. * @
  642. * @param :
  643. * @return :
  644. * @authur : 오지훈 2007. 10. 21
  645. * @---------------------------------------------------
  646. */
  647. function fClkBtnPrcpTab(){
  648. trv_prmsprcpsetlist.attribute("visibility") = "visible";
  649. trv_deptindxcdlist.attribute("visibility") = "hidden";
  650. cmb_deptset.disabled = true;
  651. radio1.attribute("visibility") = "visible";
  652. model.setValue("/root/main/cond/prmsflag", "P");
  653. model.setValue("/root/main/cond/ioflag", "O");
  654. model.setValue("/root/main/cond/deptsetcd", "");
  655. model.resetInstanceNode("/root/temp/copy");
  656. iviewer1.src="SMMMB00200_약속처방SET관리.xrw";
  657. model.toggle("prmscomn");
  658. fReqSetTreeView("P", "D", "P", "", "", "", "O");
  659. model.setValue(trv_prmsprcpsetlist.attribute("ref"), "");
  660. trv_prmsprcpsetlist.rebuild();
  661. }
  662. /**
  663. * @desc : 진단탭 버튼 클릭
  664. * @
  665. * @param :
  666. * @return :
  667. * @authur : 오지훈 2007. 10. 21
  668. * @---------------------------------------------------
  669. */
  670. function fClkBtnDiagTab(){
  671. trv_prmsprcpsetlist.attribute("visibility") = "visible";
  672. trv_deptindxcdlist.attribute("visibility") = "hidden";
  673. cmb_deptset.disabled = true;
  674. radio1.attribute("visibility") = "hidden";
  675. model.setValue("/root/main/cond/prmsflag", "P");
  676. model.setValue("/root/main/cond/ioflag", "");
  677. model.setValue("/root/main/cond/deptsetcd", "");
  678. model.resetInstanceNode("/root/temp/copy");
  679. fReqSetTreeView("P", "D", "D");
  680. iviewer1.src="SMMMB00800_약속진단관리.xrw";
  681. model.toggle("prmscomn");
  682. }
  683. /**
  684. * @desc : 수술탭 버튼 클릭
  685. * @
  686. * @param :
  687. * @return :
  688. * @authur : 오지훈 2007. 10. 21
  689. * @---------------------------------------------------
  690. */
  691. function fClkBtnOpTab(){
  692. trv_prmsprcpsetlist.attribute("visibility") = "visible";
  693. trv_deptindxcdlist.attribute("visibility") = "hidden";
  694. cmb_deptset.disabled = true;
  695. radio1.attribute("visibility") = "hidden";
  696. model.setValue("/root/main/cond/prmsflag", "P");
  697. model.setValue("/root/main/cond/ioflag", "");
  698. model.setValue("/root/main/cond/deptsetcd", "");
  699. model.resetInstanceNode("/root/temp/copy");
  700. fReqSetTreeView("P", "D", "O");
  701. iviewer1.src="SMMMB00700_약속수술관리.xrw";
  702. model.toggle("prmscomn");
  703. }
  704. /**
  705. * @desc : 프로토콜탭 버튼 클릭
  706. * @
  707. * @param :
  708. * @return :
  709. * @authur : 오지훈 2007. 10. 21
  710. * @---------------------------------------------------
  711. */
  712. function fClkBtnProtoCol(){
  713. trv_prmsprcpsetlist.attribute("visibility") = "visible";
  714. trv_deptindxcdlist.attribute("visibility") = "hidden";
  715. cmb_deptset.disabled = true;
  716. model.setValue("/root/main/cond/deptsetcd", getUserInfo("dutplceinstcd"));
  717. //프로토콜처방은 부서(D)만 있으며, 약속처방SET과 동일한 iviewer화면 사용한다.
  718. fReqSetTreeView("D", "D", "C");
  719. iviewer1.src="SMMMB00200_약속처방SET관리.xrw";
  720. model.toggle("protocol");
  721. }
  722. /**
  723. * @desc : 폴더 저장 후, 저장된 폴더의 depth까지 펼친다
  724. * @
  725. * @param :
  726. * @return :
  727. * @authur : 오지훈 2007. 10. 21
  728. * @---------------------------------------------------
  729. */
  730. function fClkBtnCnfm(){
  731. var prmsflag = model.getValue("/root/main/cond/prmsflag");
  732. if(btn_diag == true && (prmsflag == "D" || prmsflag == "T")){ //진단 과, 타과 생성인 경우
  733. var item = trv_deptindxcdlist.item(trv_deptindxcdlist.selectedIndex);
  734. if(item == null){return;}
  735. var currow = item.index + 1;
  736. var indx = trv_deptindxcdlist.selectedIndex;
  737. group1.attribute("height") = 0;
  738. model.setFocus("trv_etcprmsprcpsetlist");
  739. model.refresh();
  740. fSavePrmsDiagSet();
  741. trv_deptindxcdlist.select(currow);
  742. trv_deptindxcdlist.expand(indx, true);
  743. trv_deptindxcdlist.refresh();
  744. }else{
  745. var item = trv_prmsprcpsetlist.item(trv_prmsprcpsetlist.selectedIndex);
  746. if(item == null){return;}
  747. var currow = item.index + 1;
  748. var indx = trv_prmsprcpsetlist.selectedIndex;
  749. group1.attribute("height") = 0;
  750. model.setFocus("trv_etcprmsprcpsetlist");
  751. model.refresh();
  752. fSavePrmsDiagSet();
  753. trv_prmsprcpsetlist.select(currow);
  754. trv_prmsprcpsetlist.expand(indx, true);
  755. trv_prmsprcpsetlist.refresh();
  756. }
  757. }
  758. /**
  759. * @desc : 약속SET폴더 순서 변경
  760. * @
  761. * @param :
  762. * @return :
  763. * @authur : 오지훈 2007. 10. 21
  764. * @---------------------------------------------------
  765. */
  766. function fOpenPrmsSetFolderOrderChng(){
  767. var item = trv_prmsprcpsetlist.item(trv_prmsprcpsetlist.selectedIndex);
  768. if(item == null){return;}
  769. var rowpos = item.index + 1;
  770. var setkindcd = model.getValue(sPRMSPRCPSETLIST + "[" + rowpos + "]/setkindcd");
  771. var setclscd = model.getValue(sPRMSPRCPSETLIST + "[" + rowpos + "]/setclscd");
  772. var settypecd = model.getValue(sPRMSPRCPSETLIST + "[" + rowpos + "]/settypecd");
  773. var procflag = "";
  774. var deptcd = getUserInfo("dutplcecd");
  775. var deptnm = getUserInfo("dutplcenm");
  776. var ioflag = model.getValue("/root/main/cond/ioflag");
  777. var indx = trv_prmsprcpsetlist.selectedIndex;
  778. var prmsflag = model.getValue("/root/main/cond/prmsflag");
  779. if(settypecd == "D" && prmsflag != "P"){
  780. messageBox("과진단은 폴서 순서를 변경", "E001");
  781. return;
  782. }
  783. var prmsflag = model.getValue("/root/main/cond/prmsflag");
  784. if(prmsflag != "P"){
  785. procflag = "D";
  786. }
  787. var param = setkindcd + "▦" +
  788. setclscd + "▦" +
  789. settypecd + "▦" +
  790. procflag + "▦" +
  791. deptcd + "▦" +
  792. deptnm + "▦" +
  793. ioflag + "▦" +
  794. indx;
  795. setParameter("SPMMB00800_param", param);
  796. modal("SPMMB00800");
  797. var rtnindx = getParameter("SPMMB00800_rtnparam");
  798. fReqSetTreeView(setkindcd, setclscd, settypecd, procflag, deptcd, deptnm);
  799. if(rtnindx != ""){
  800. trv_prmsprcpsetlist.select(rtnindx);
  801. trv_prmsprcpsetlist.expand(rtnindx, true);
  802. }
  803. trv_prmsprcpsetlist.rebuild();
  804. }
  805. /**
  806. * @desc : 확인버튼 클릭
  807. * @
  808. * @param :
  809. * @return :
  810. * @authur : 오지훈 2007. 10. 21
  811. * @---------------------------------------------------
  812. */
  813. function fClkBtnCnfm(){
  814. var expndindx = trv_prmsprcpsetlist.mouseRow;
  815. var indx = trv_prmsprcpsetlist.selectedIndex;
  816. group1.attribute("height") = 0;
  817. model.setFocus("trv_etcprmsprcpsetlist");
  818. model.refresh();
  819. fSavePrmsDiagSet();
  820. trv_prmsprcpsetlist.select(indx+1);
  821. trv_prmsprcpsetlist.expand(expndindx, true);
  822. trv_prmsprcpsetlist.rebuild();
  823. }
  824. /**
  825. * @desc : 엑셀저장
  826. * @
  827. * @param : sechflag S:싱글(처방리스트에서 호출) T:트리하위까지(트리에서 호출)
  828. * @return :
  829. * @author : 엄영만 (2012.01.30)
  830. * @---------------------------------------------------
  831. */
  832. function fsaveToExcelSingle(){
  833. var item = trv_prmsprcpsetlist.item(trv_prmsprcpsetlist.selectedIndex);
  834. if(item == null){return;}
  835. var indx = trv_prmsprcpsetlist.selectedIndex;
  836. var rowpos = item.index + 1;
  837. var setno = model.getValue(sPRMSPRCPSETLIST + "[" + rowpos + "]/setno");
  838. if(setno == "1") {
  839. return;
  840. } else {
  841. iviewer1.window.javascript.fsaveToExcel("S", "", ""); // S:싱글(처방리스트에서 호출) T:트리하위까지(트리에서 호출) P:개인 약속셋 전체 D:부서약속셋 전체
  842. }
  843. }
  844. /**
  845. * @desc : 엑셀저장
  846. * @
  847. * @param : sechflag S:싱글(처방리스트에서 호출) T:트리하위까지(트리에서 호출)
  848. * @return :
  849. * @author : 엄영만 (2012.01.30)
  850. * @---------------------------------------------------
  851. */
  852. function fsaveToExcelTree(){
  853. var item = trv_prmsprcpsetlist.item(trv_prmsprcpsetlist.selectedIndex);
  854. if(item == null){return;}
  855. var indx = trv_prmsprcpsetlist.selectedIndex;
  856. var rowpos = item.index + 1;
  857. var setno = model.getValue(sPRMSPRCPSETLIST + "[" + rowpos + "]/setno");
  858. if(setno != "1") {
  859. iviewer1.window.javascript.fsaveToExcel("T", "", ""); // S:싱글(처방리스트에서 호출) T:트리하위까지(트리에서 호출) P:개인 약속셋 전체 D:부서약속셋 전체
  860. } else {
  861. var prmsflag = model.getValue("/root/main/cond/prmsflag");
  862. var ioflag = model.getValue("/root/main/cond/ioflag");
  863. if(btn_prcp.selected == true){ //약속처방
  864. if(prmsflag == "T"){ //약속처방 타과인 경우
  865. iviewer1.window.javascript.fsaveToExcel("D", cmb_deptset.value, ioflag); // S:싱글(처방리스트에서 호출) T:트리하위까지(트리에서 호출) P:개인 약속셋 전체 D:부서약속셋 전체
  866. }else if(prmsflag == "D"){ //약속처방 과인 경우
  867. iviewer1.window.javascript.fsaveToExcel("D", getUserInfo("dutplcecd"), ioflag); // S:싱글(처방리스트에서 호출) T:트리하위까지(트리에서 호출) P:개인 약속셋 전체 D:부서약속셋 전체
  868. }else{ //약속처방 개인인 경우
  869. iviewer1.window.javascript.fsaveToExcel("P", getUserInfo("userid"), ioflag); // S:싱글(처방리스트에서 호출) T:트리하위까지(트리에서 호출) P:개인 약속셋 전체 D:부서약속셋 전체
  870. }
  871. }else if(btn_diag.selected == true){ //약속진단
  872. }else if(btn_op.selected == true){ //약속수술
  873. }else if(btn_protocol.selected == true){ //프로토콜
  874. }
  875. }
  876. }