SMMMB03100.js 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320
  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_SMMMB03100(){
  20. mmbfGetDeptCodeComboList("/root/send/reqdata", "/root/init/orddept" , "D");
  21. var svcNode = instance1.selectNodes("/root/init/orddept/dept");
  22. var mstNode = instance1.selectSingleNode("/root/init/orddept/dept");
  23. var nodeLen = svcNode.length;
  24. var refChild = instance1.selectSingleNode("/root/init/orddept/dept["+1+"]");
  25. var cloneNode = svcNode.item(1).cloneNode(true);
  26. mstNode.insertBefore(cloneNode, refChild);
  27. model.setValue("/root/init/orddept/dept["+1+"]/deptcd", "0000000000");
  28. model.setValue("/root/init/orddept/dept["+1+"]/depthngnm", "전체");
  29. model.setValue("/root/init/orddept/dept["+1+"]/deptengabbr", "ALL");
  30. model.refresh();
  31. }
  32. /**
  33. * @desc : 약속진단 SET저장
  34. * @
  35. * @param :
  36. * @return :
  37. * @---------------------------------------------------
  38. */
  39. function fSavePrmsDiagSet(){
  40. var setnm = model.getValue("/root/main/iptbox/setnm");
  41. model.setValue(sPRMSPRCPSETLIST_HIDDEN + "/setnm", setnm);
  42. model.copyNode("/root/send/savedata", sPRMSPRCPSETLIST_HIDDEN);
  43. submit("TXMMB00601");
  44. }
  45. /**
  46. * @desc : 약속진단관리 폴더명을 입력할 InputBox를 보여줌.
  47. * @
  48. * @param :
  49. * @return :
  50. * @---------------------------------------------------
  51. */
  52. function fShowWndIptBox(){
  53. if(event.clientY >= 700){
  54. var ypos = 700;
  55. }else{
  56. var ypos = event.clientY;
  57. }
  58. model.setFocus("ipt_setnm");
  59. model.refresh();
  60. }
  61. /**
  62. * @desc : 마우스 버튼 클릭 유효성 검사
  63. * : 조건1 - 콤보박스 전체 선택인 경우 불가
  64. * @
  65. * @param :
  66. * @return : true / false
  67. * @authur : EMR 2010. 4.
  68. * @---------------------------------------------------
  69. */
  70. function fChkValidMouseBtn(){
  71. var prmsflag = model.getValue("/root/main/cond/prmsflag");
  72. if(prmsflag == "T")
  73. return false;
  74. else
  75. return true;
  76. }
  77. /**
  78. * @desc : 약속SET 처방/진단/수술/프로토콜 조회
  79. * @
  80. * @param : setkindcd - SET종류코드(개인P/부서D)
  81. * : setclscd - SET분류코드(의사D)
  82. * : settypecd - SET분류코드(처방P/진단D/수술O/프로토콜C)
  83. * : procflag - 처리구분(부서SET:D)
  84. * : deptcd - 부서코드
  85. * : deptnm - 부서명
  86. * : ioflag - 외래/입원구분
  87. * @return :
  88. * @authur : EMR 2010. 4.
  89. * @---------------------------------------------------
  90. */
  91. function fReqSetTreeView(setkindcd, setclscd, settypecd, procflag, deptcd, deptnm){
  92. model.removeNodeset("/root/send/reqdata");
  93. model.makeValue("/root/send/reqdata/setkindcd", setkindcd); //개인, 부서
  94. model.makeValue("/root/send/reqdata/setclscd" , setclscd); //의사
  95. model.makeValue("/root/send/reqdata/settypecd", settypecd); //처방, 진단, 수술, 프로토콜
  96. model.makeValue("/root/send/reqdata/procflag" , procflag); //처리구분(부서SET 조회시 설정)
  97. model.makeValue("/root/send/reqdata/deptcd" , deptcd); //부서코드(부서SET 조회시 설정)
  98. model.makeValue("/root/send/reqdata/deptnm" , deptnm); //부서명 (부서SET 조회시 설정)
  99. model.makeValue("/root/send/reqdata/statflag", model.getValue("/root/main/cond/statflag")); //상태(전체, 미심, 보류, 완료)
  100. model.makeValue("/root/send/reqdata/foldernm", model.getValue("/root/main/cond/foldernm")); //약속셋 명
  101. if(setkindcd == "P"){
  102. var userid = cmb_orddrid.value ;
  103. var usernm = cmb_orddrid.label ;
  104. model.makeValue("/root/send/reqdata/userid", userid);
  105. model.makeValue("/root/send/reqdata/usernm", usernm);
  106. }
  107. if(settypecd == "P"){ //처방인 경우, "O"로 처리
  108. var ioflag = model.getValue("/root/main/cond/ioflag");
  109. }else{
  110. var ioflag = "N";
  111. }
  112. model.makeValue("/root/send/reqdata/ioflag" , ioflag); //외래입원구분
  113. submit("TRMMB00651");
  114. }
  115. /**
  116. * @desc : 약속SET 처방 부서 조회
  117. * : 처방 약속SET을 등록한 부서를 조회한다.
  118. *
  119. * @param : setkindcd - SET종류코드(개인P/부서D)
  120. * : setclscd - SET분류코드(의사D)
  121. * : settypecd - SET분류코드(처방P/진단D/수술O/프로토콜C)
  122. *
  123. * @return :
  124. * @authur : EMR 2010. 4.
  125. * @---------------------------------------------------
  126. */
  127. function fReqPrmsSetDept(setkindcd, setclscd, settypecd){
  128. model.removeNodeset("/root/send/reqdata");
  129. model.makeValue("/root/send/reqdata/setkindcd", setkindcd); //개인, 부서
  130. model.makeValue("/root/send/reqdata/setclscd" , setclscd ); //의사
  131. model.makeValue("/root/send/reqdata/settypecd", settypecd); //처방, 진단, 수술, 프로토콜
  132. if(submit("TRMMB00604")){
  133. }
  134. }
  135. /**
  136. * @desc : 약속SET 조회
  137. * @
  138. * @param : prmsflag - 약속SET구분
  139. ioflag - 외래, 입원구분
  140. * @return :
  141. * @authur : EMR 2010. 4.
  142. * @---------------------------------------------------
  143. */
  144. function fReqPrmsSet(flag){
  145. var prmsflag = model.getValue("/root/main/cond/prmsflag");
  146. var ioflag = model.getValue("/root/main/cond/ioflag");
  147. var foldernm = model.getValue("/root/main/cond/foldernm");
  148. var deptcd = cmb_deptset.value ;
  149. var drid = cmb_orddrid.value;
  150. if ( deptcd == "0000000000" && prmsflag == "T" && foldernm == "" ){
  151. if (messageBox("전체로 조회하시면, 조회 시간이 오래 소요됩니다. 조회 하시겠습니까?", "Q") != "6"){
  152. return;
  153. }
  154. }
  155. if ( deptcd == "0000000000" && drid == "-" && foldernm == "" ){
  156. alert("전체로 조회하시면, 건수가 많아 조회 시 오류가 발생합니다. 다시 설정해 주세요") ;
  157. return;
  158. }
  159. if(prmsflag == "T"){ //약속처방 과인 경우
  160. cmb_deptset.disabled = false;
  161. cmb_orddrid.disabled = true;
  162. model.removeNode("/root/init/userlist");
  163. fReqSetTreeView("D", "D", "P", "D", cmb_deptset.value, cmb_deptset.label, ioflag);
  164. }else if (prmsflag == "P"){ //약속처방 개인인 경우
  165. if (flag!="drid"){
  166. userDetlList();
  167. }
  168. cmb_deptset.disabled = false;
  169. cmb_orddrid.disabled = false;
  170. fReqSetTreeView("P", "D", "P", "", cmb_deptset.value, cmb_deptset.label, ioflag);
  171. }else {
  172. alert("해당되는 조회 조건이 아닙니다.");
  173. return ;
  174. }
  175. fGridRowColor();
  176. initPrcplist();
  177. model.refresh();
  178. }
  179. /**
  180. * @desc : 처방탭 버튼 클릭
  181. * @
  182. * @param :
  183. * @return :
  184. * @authur : EMR 2010. 4.
  185. * @---------------------------------------------------
  186. */
  187. function fInitJudgPrcpSet(){
  188. cmb_orddrid.disabled = true;
  189. radio1.attribute("visibility") = "visible";
  190. model.setValue("/root/main/cond/prmsflag", "T");
  191. model.setValue("/root/main/cond/ioflag", "O");
  192. model.setValue("/root/main/cond/deptsetcd", "");
  193. model.resetInstanceNode("/root/temp/copy");
  194. iviewer1.src="SMMMB03200_약속처방점검SET조회.xrw";
  195. //model.toggle("prmscomn");
  196. fReqSetTreeView("P", "D", "P", "", "", "", "O");
  197. }
  198. /**
  199. * @desc : 그리드 색깔 표시
  200. * @
  201. * @param :
  202. * @return :
  203. * @authur : EMR 2010. 4.
  204. * @---------------------------------------------------
  205. */
  206. function fGridRowColor(){
  207. for(var i = 1; i < datagrid1.rows; i++){
  208. var colorsetflag = model.getValue("/root/main/prmsprcpsetinfo/prmsprcpsetlist[" + i + "]/judgchkstat");
  209. if(colorsetflag == "02"){
  210. datagrid1.RowStyle(i, "data", "background-color") = "#ffff99";
  211. }else if(colorsetflag == "03"){
  212. datagrid1.RowStyle(i, "data", "background-color") = "#99ccff";
  213. }else {
  214. datagrid1.RowStyle(i, "data", "background-color") = "#ffffff";
  215. }
  216. }
  217. }
  218. /**
  219. * @desc : 약속SET상세 조회
  220. * @
  221. * @param :
  222. * @return : EMR 2010. 4.
  223. * @---------------------------------------------------
  224. */
  225. function fReqJudgDetlSet(){
  226. var curRow = datagrid1.row;
  227. var prmsflag = model.getValue("/root/main/cond/prmsflag");
  228. if ( prmsflag == "P" ) {
  229. var settrgtid =model.getValue("/root/main/prmsprcpsetinfo/prmsprcpsetlist[" + curRow + "]/settrgtid");
  230. model.setValue("/root/send/reqdata/userid", settrgtid);
  231. }
  232. var levl = model.getValue("/root/main/prmsprcpsetinfo/prmsprcpsetlist[" + curRow + "]/levl");
  233. var setno = model.getValue("/root/main/prmsprcpsetinfo/prmsprcpsetlist[" + curRow + "]/setno");
  234. var settypecd = model.getValue("/root/main/prmsprcpsetinfo/prmsprcpsetlist[" + curRow + "]/settypecd");
  235. var setnm = model.getValue("/root/main/prmsprcpsetinfo/prmsprcpsetlist[" + curRow + "]/setnm");
  236. //if (
  237. //model.getValue("/root/send/reqdata/userid")
  238. iviewer1.model.setValue("/root/hidden/prmsprcpsetdetlset/setno" , setno);
  239. iviewer1.model.setValue("/root/hidden/prmsprcpsetdetlset/settypecd", settypecd);
  240. iviewer1.model.setValue("/root/hidden/prmsprcpsetdetlset/setnm" , setnm);
  241. iviewer1.model.refresh();
  242. iviewer1.window.javascript.fReqGetPrmsSet();
  243. }
  244. /**
  245. * @desc : 사용자 조회
  246. * @
  247. * @param :
  248. * @return :
  249. * @authur : EMR 2010. 4.
  250. * @---------------------------------------------------
  251. */
  252. function userDetlList(){
  253. if(cmb_deptset.value == "-"){
  254. model.removeNode("/root/init/userlist/usercombo");
  255. model.makeValue("/root/init/userlist/usercombo/userid", "-");
  256. model.makeValue("/root/init/userlist/usercombo/usernm", "전체");
  257. }else{
  258. mmbfGetUserComboList("/root/send/reqdata", "/root/init/userlist" , cmb_deptset.value, "0330"); //진료과 의사콤보 조회
  259. addComboInstance("/root/init/userlist", "userid^usernm", "-^전체", "usercombo"); //의사콤보 전체항목 추가
  260. if(cmb_deptset.value == "0000000000"){
  261. model.makeValue("/root/init/userlist/usercombo/userid", "-");
  262. model.makeValue("/root/init/userlist/usercombo/usernm", "전체");
  263. }
  264. }
  265. //model.setValue("/root/main/cond/orddrid", "-");
  266. }
  267. /**
  268. * @desc : iviewer1 초기화
  269. * @
  270. * @param :
  271. * @return :
  272. * @authur : EMR 2010. 4.
  273. * @---------------------------------------------------
  274. */
  275. function initPrcplist(){
  276. iviewer1.model.removenodeset("/root/main/prcp/prcplist");
  277. iviewer1.model.refresh();
  278. }