SMMRC02300.xjs 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <Script type="xscript4.0"><![CDATA[
  3. /**
  4. * @desc : Source Node의 갯수를 구한다.
  5. * @
  6. * @param : path - node path
  7. * @return :
  8. * @authur : 김선태 2007. 5. 8
  9. * @---------------------------------------------------
  10. */
  11. function getNodeSetCnt(path)
  12. {
  13. var insXml = model.instances(0);
  14. var nodeList = insXml.selectNodes(path);
  15. return nodeList.length;
  16. }
  17. /**
  18. * @desc : Source Node의 child nodelist를 Destination의 nodelist로 append한다.
  19. *
  20. * @param : strDest - 도착node path
  21. * : strSrc - 출발node path
  22. * @return :
  23. * @authur : 이상현 2007. 3. 27
  24. * @---------------------------------------------------
  25. */
  26. function addCopyNodeset(strDest, strSrc, mode, destModel, srcModel) {
  27. if( destModel == null || destModel =="" )
  28. destModel = document.models.item(0);
  29. if( srcModel == null || srcModel =="" )
  30. srcModel = document.models.item(0);
  31. var srcNodeList = srcModel.instances(0).selectNodes(strSrc);
  32. var srcNode;
  33. var pDestNode = destModel.instances.item(0).selectSingleNode(strDest).parentNode;
  34. if( mode == "replace" || mode == null ) {
  35. destModel.removeNodeset(strDest);
  36. while( srcNode = srcNodeList.nextNode() ) {
  37. pDestNode.appendChild(srcNode.cloneNode(true));
  38. }
  39. }
  40. else if( mode == "after" ) {
  41. while( srcNode = srcNodeList.nextNode() ) {
  42. pDestNode.appendChild(srcNode.cloneNode(true));
  43. }
  44. }
  45. else if( mode == "before" ) {
  46. var destNode;
  47. for( var i = srcNodeList.length - 1; i >= 0; i-- ) {
  48. destNode = destModel.instances.item(0).selectSingleNode(strDest + "[1]");
  49. pDestNode.insertBefore(srcNodeList.item(i).cloneNode(true), destNode);
  50. }
  51. }
  52. }
  53. /**
  54. * @desc : 사용자의 권한을 체크하여 버튼셋팅.
  55. * btn_r 조회버튼, btn_x 저장 및 수정 버튼, btn_p : 출력버튼
  56. * @return :
  57. * @authur : 김선태 2007. 5. 8
  58. */
  59. function fchkAuth()
  60. {
  61. for(var i=0; i<= document.controls.length-1 ; i++){
  62. if(document.controls.item(i).elementName == "xforms:button"){
  63. if(document.controls.item(i).attribute("id").substr(0,6) == "btn_r_"){
  64. document.controls.item(i).disabled = !checkAuth("R");
  65. }
  66. if(document.controls.item(i).attribute("id").substr(0,6) == "btn_x_"){
  67. document.controls.item(i).disabled = !checkAuth("X");
  68. }
  69. if(document.controls.item(i).attribute("id").substr(0,6) == "btn_p_"){
  70. document.controls.item(i).disabled = !checkAuth("P");
  71. }
  72. }
  73. }
  74. }
  75. /**
  76. * @desc : 폼초기화
  77. * @
  78. * @param :
  79. * @return :
  80. * @authur : 이은영 2008.03.18
  81. * @---------------------------------------------------
  82. */
  83. function fFormInit()
  84. {
  85. // KNUH_20101207_박성호_start_의무기록 부서코드 가져오기
  86. mmbfGetHardCodeInfo("ds_send_reqdata", "ds_temp_basedeptcd_hardcd", 5501);
  87. mmbfGetHardCodeInfo("ds_send_reqdata", "ds_temp_appdeptcd_hardcd", 5503);
  88. var basedeptcd = ds_temp_basedeptcd_hardcd.getColumn(0, "hardcd");
  89. var appdeptcd = ds_temp_appdeptcd_hardcd.getColumn(0, "hardcd");
  90. //alert(basedeptcd + " " + appdeptcd);
  91. // KNUH_20101207_박성호_end
  92. ds_main_condition.setColumn(0, "basedeptcd", basedeptcd);
  93. ds_main_condition.setColumn(0, "appdeptcd", appdeptcd);
  94. // 상단환자정보 가져오기..
  95. var node = sysf_getGlobalVariable("paminfo");
  96. ds_main_result_paminfo_list.clearData();
  97. dsf_setCSVToDs("ds_main_result_paminfo_list", node);
  98. // 환자등록번호
  99. var pid = ds_main_result_paminfo_list.getColumn(0, "pid");
  100. var pnm = ds_main_result_paminfo_list.getColumn(0, "hngnm");
  101. var indd = ds_main_result_paminfo_list.getColumn(0, "indd");
  102. var cretno = ds_main_result_paminfo_list.getColumn(0, "cretno");
  103. var wardcd = ds_main_result_paminfo_list.getColumn(0, "wardcd");
  104. var roomcd = ds_main_result_paminfo_list.getColumn(0, "roomcd");
  105. ds_main_condition.setColumn(0, "pid" , pid);
  106. ds_main_condition.setColumn(0, "pnm" , pnm);
  107. ds_main_condition.setColumn(0, "indd" , indd);
  108. ds_main_condition.setColumn(0, "cretno", cretno);
  109. ds_main_condition.setColumn(0, "wardcd", wardcd);
  110. ds_main_condition.setColumn(0, "roomcd", roomcd);
  111. if( utlf_isNull(pid) ){
  112. alert("상단의 환자정보가 없습니다");
  113. this.close();
  114. return;
  115. }
  116. if (frmf_isPopup() == true) {
  117. // 2008.01.08. 파라메터로 입원 병동코드,병실코드 를 받는다..(응급실에서..)
  118. // 입원 병동코드,병실코드
  119. var pid = utlf_transNullToEmpty(opener.frmf_getParameter("pid"));
  120. var inwardcd = opener.frmf_getParameter("inwardcd");
  121. var inroomcd = opener.frmf_getParameter("inroomcd");
  122. if (pid.length > 0){
  123. ds_main_condition.setColumn(0, "pid" , pid);
  124. ds_main_condition.setColumn(0, "wardcd", inwardcd);
  125. ds_main_condition.setColumn(0, "roomcd", inroomcd);
  126. ds_hidden_param.setColumn(0, "pid" , pid);
  127. ds_hidden_param.setColumn(0, "inwardcd", inwardcd);
  128. ds_hidden_param.setColumn(0, "inroomcd", inroomcd);
  129. }
  130. }
  131. // 병동조회하기..
  132. lf_mmbfGetDeptCodeComboList(ds_init_wardlist_dept, "W", utlf_getCurrentDate()); //병동코드 콤보
  133. // 병실조회하기..
  134. fSelectWard();
  135. // 챠트조회하기..
  136. fGetERLendChrtList();
  137. }
  138. /**
  139. * @desc : 병동에 병실 가져오기
  140. * @
  141. * @param :
  142. * @return :
  143. * @authur : 이은영 2008.03.18
  144. * @---------------------------------------------------
  145. */
  146. function fSelectWard()
  147. {
  148. ds_send_reqdata.setColumn(0, "wardcd", ds_main_condition.getColumn(0, "wardcd"));
  149. var oParam = {};
  150. oParam.id = "TRMRC00051";
  151. oParam.service = "chrtmngtapp.ChrtRendMngt";
  152. oParam.method = "reqGetRoom";
  153. oParam.inds = "req=ds_send_reqdata";
  154. oParam.outds = "ds_init_room_list=room";
  155. oParam.async = false;
  156. //oParam.callback = "cf_TRMRC00051";
  157. tranf_submit(oParam);
  158. }
  159. /**
  160. * @desc : 응급실에서 대출한 챠트 리스트 조회하기
  161. * @
  162. * @param :
  163. * @return :
  164. * @authur : 이은영 2008.03.18
  165. * @---------------------------------------------------
  166. */
  167. function fGetERLendChrtList()
  168. {
  169. var pid = ds_main_condition.getColumn(0, "pid");
  170. var appdeptcd = ds_main_condition.getColumn(0, "appdeptcd");
  171. ds_send_reqdata.setColumn(0, "pid", pid);
  172. ds_send_reqdata.setColumn(0, "appdeptcd", appdeptcd);
  173. if (utlf_transNullToEmpty(pid).length > 0) {
  174. var oParam = {};
  175. oParam.id = "TRMRC02301";
  176. oParam.service = "chrtmngtapp.ChrtRendMngt";
  177. oParam.method = "reqGetERLendChrt";
  178. oParam.inds = "req=ds_send_reqdata";
  179. oParam.outds = "ds_main_lendchrt_chrtlist=chrtlist";
  180. oParam.async = false;
  181. //oParam.callback = "cf_TRMRC02301";
  182. tranf_submit(oParam);
  183. }
  184. }
  185. /**
  186. * @desc : 챠트이관
  187. * @
  188. * @param :
  189. * @return :
  190. * @authur : 이은영 2008.03.18
  191. * @---------------------------------------------------
  192. */
  193. function fSendChrt()
  194. {
  195. var ref = ds_main_lendchrt_chrtlist;
  196. var cnt = ref.rowcount;
  197. var grdObj = group2.grd_chrtlist;
  198. var savedata = "status▦chrtseqno▦medirecno▦pid▦rtndeptcd▦rtnmanid▦indd▦cretno▦wardcd▦roomcd▦basedeptcd▩";
  199. var dataString = "";
  200. var dataCount = 0;
  201. var rtndeptcd = utlf_transNullToEmpty(sysf_getUserInfo("dutplcecd"));
  202. var rtnmanid = utlf_transNullToEmpty(sysf_getUserInfo("userid"));
  203. var indd = utlf_transNullToEmpty(ds_main_condition.getColumn(0, "indd"));
  204. var cretno = utlf_transNullToEmpty(ds_main_condition.getColumn(0, "cretno"));
  205. var wardcd = utlf_transNullToEmpty(ds_main_condition.getColumn(0, "wardcd"));
  206. var roomcd = utlf_transNullToEmpty(ds_main_condition.getColumn(0, "roomcd"));
  207. var basedeptcd = utlf_transNullToEmpty(ds_main_condition.getColumn(0, "basedeptcd"));
  208. if (utlf_isNull(wardcd)) {
  209. alert("보낼병동을 선택하세요."); return;
  210. }
  211. if (utlf_isNull(roomcd)) {
  212. alert("보낼병실을 선택하세요"); return;
  213. }
  214. for ( var i = 0; i < cnt; i++)
  215. {
  216. var checked = utlf_transNullToEmpty(ref.getColumn(i, "checked"));
  217. var chrtseqno = utlf_transNullToEmpty(ref.getColumn(i, "chrtseqno"));
  218. var medirecno = utlf_transNullToEmpty(ref.getColumn(i, "medirecno"));
  219. var pid = utlf_transNullToEmpty(ref.getColumn(i, "pid"));
  220. if (checked == "1" && !utlf_isNull(medirecno))
  221. {
  222. dataString = dataString + "u▦" + chrtseqno + "▦" + medirecno + "▦" + pid + "▦";
  223. dataString = dataString + rtndeptcd + "▦" + rtnmanid + "▦" + indd + "▦" + cretno + "▦" + wardcd + "▦" + roomcd + "▦" + basedeptcd + "▩";
  224. dataCount = dataCount + 1;
  225. }
  226. }
  227. if (utlf_transNullToEmpty(dataString).length > 0)
  228. {
  229. dsf_setCSVToDs("ds_send_savedata", savedata + dataString);
  230. var oParam = {};
  231. oParam.id = "TXMRC02301";
  232. oParam.service = "chrtmngtapp.ChrtRendMngt";
  233. oParam.method = "reqSetERSendChrt";
  234. oParam.inds = "req=ds_send_savedata";
  235. oParam.outds = "";
  236. oParam.async = false;
  237. //oParam.callback = "cf_TXMRC02301";
  238. tranf_submit(oParam);
  239. alert("총 " + dataCount + " 건 챠트이관 되었습니다.");
  240. // 다시 조회하기..
  241. var oParam = {};
  242. oParam.id = "TRMRC02301";
  243. oParam.service = "chrtmngtapp.ChrtRendMngt";
  244. oParam.method = "reqGetERLendChrt";
  245. oParam.inds = "req=ds_send_reqdata";
  246. oParam.outds = "ds_main_lendchrt_chrtlist=chrtlist";
  247. oParam.async = false;
  248. //oParam.callback = "cf_TRMRC02301";
  249. tranf_submit(oParam);
  250. }
  251. }
  252. /**
  253. * @desc : 환자등록번호 조회 팝업
  254. * @
  255. * @param : refPid - 환자번호 node path
  256. * @ refPnm - 환자명 node path
  257. * @return :
  258. * @authur : 이은영 2008.03.18
  259. * @---------------------------------------------------
  260. */
  261. function fGetPid(refPid, refPnm)
  262. {
  263. //조회건수가 1건일 경우 팝업창을 바로 닫는다.
  264. ds_hidden_tmp_pidpopupinfo.setColumn(0, "checkfnexam", "1");
  265. ds_hidden_tmp_pidpopupinfo.setColumn(0, "autoflag", "N");
  266. if( utlf_isNull(ds_hidden_tmp_pidpopupinfo.getColumn(0, "srchcond")) ){
  267. ds_hidden_tmp_pidpopupinfo.setColumn(0, "srchcond", '2');
  268. }
  269. var objParam = new Object();
  270. objParam.arg_ds_send = ds_hidden_tmp_pidpopupinfo;
  271. frmf_modal("SPPMC02500", "SPPMC02500", objParam, false,1,150,150,"","","","","","M");
  272. //환자번호 copy
  273. var popupendflag = frmf_getParameter("SPPMC02500_popupendflag");
  274. if (popupendflag == "ok")
  275. {
  276. ds_main_condition.setColumn(0, refPid, ds_patinfolist.getColumn(0, "pid"));
  277. if (!utlf_isNull(refPnm)) {
  278. ds_main_condition.setColumn(0, refPnm, ds_patinfolist.getColumn(0, "hngnm"));
  279. }
  280. }
  281. }
  282. /**
  283. * @desc : 등록된 환자번호인지 체킹한다..
  284. * @
  285. * @param : iptObj - 환자번호 입력 컨트롤
  286. * @return : pnm
  287. * @authur : 이은영 2008.03.18
  288. * @---------------------------------------------------
  289. */
  290. function fCheckPid(iptObj)
  291. {
  292. setInputNodeCurText();
  293. ds_send_reqdata.setColumn(0, "srchcond", "1");
  294. ds_send_reqdata.setColumn(0, "pid", iptObj.currentText);
  295. //환자등록번호 체크
  296. if(iptObj.currentText.length > 0 ){
  297. model.resetInstanceNode("/root/main/result/patinfo");
  298. model.makeNode("/root/main/result/patinfo");
  299. if(submit("TRPMC02500")){
  300. //fSearch는 인적사항 화면을 임포트 해간 화면에서 구현해 주어야 하는 함수이다.
  301. if( getNodesetCount("/root/main/result/patinfo/patinfolist") > 0 ){
  302. model.copyNode("/root/main/patinfo", "/root/main/result/patinfo");
  303. var pid = model.getValue("/root/main/result/patinfo/patinfolist/pid");
  304. var pnm = model.getValue("/root/main/result/patinfo/patinfolist/hngnm");
  305. return pnm;
  306. //fSearch();
  307. }else{
  308. model.resetInstanceNode("/root/main/patinfo/patinfolist");
  309. messageBox("없는 환자 번호 입니다.", "E999", "");
  310. model.refresh();
  311. }
  312. }
  313. }else{
  314. messageBox("환자등록번호를 정확히", "C001");
  315. }
  316. return "";
  317. }
  318. /**
  319. * @desc : 하드코드 조회
  320. * @
  321. * @param : ref - reference path
  322. * rsltref - result reference path
  323. * hardcd - 하드코드
  324. * @return :
  325. * @author : 오지훈
  326. * @---------------------------------------------------
  327. */
  328. function mmbfGetHardCodeInfo(ref, rsltref, hardcd){
  329. var mmb_rsltref = "ds_hidden_mmb_hardcd";
  330. eval(mmb_rsltref).clearData();
  331. eval(ref).setColumn(0, "hardcd", hardcd);
  332. var oParam = {};
  333. oParam.id = "TRMMB04103";
  334. oParam.service = "prcpbaseapp.EnvInfoMngt";
  335. oParam.method = "reqGetHardCodeCD";
  336. oParam.inds = "req="+ref;
  337. oParam.outds = mmb_rsltref+"=hardcd";
  338. oParam.async = false;
  339. oParam.callback = "cf_TRMMB04103";
  340. tranf_submit(oParam);
  341. if( arErrorCode.pop("TRMMB04103") > -1 ){
  342. eval(rsltref).copyData(eval(mmb_rsltref));
  343. eval(mmb_rsltref).clearData();
  344. }
  345. }
  346. function cf_TRMMB04103(sSvcId, nErrorCode, sErrorMsg) {
  347. arErrorCode.push(sSvcId, nErrorCode);
  348. }
  349. ]]></Script>