SMMRC04300.xjs 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473
  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("/root/send/reqdata", "/root/temp/appdeptcd", 5503);
  88. var basedeptcd = ds_temp_basedeptcd_hardcd.getColumn(0, "hardcd");
  89. //var appdeptcd = model.getValue("/root/temp/appdeptcd/hardcd/hardcd");
  90. //alert(basedeptcd + " " + appdeptcd);
  91. // KNUH_20101207_박성호_end
  92. ds_main_condition.setColumn(0, "basedeptcd", basedeptcd);
  93. var appdeptcd = sysf_getUserInfo("dutplcecd");
  94. ds_main_condition.setColumn(0, "appdeptcd", appdeptcd);
  95. // 상단환자정보 가져오기..
  96. var node = sysf_getGlobalVariable("paminfo");
  97. ds_main_result_paminfo_list.clearData();
  98. dsf_setCSVToDs("ds_main_result_paminfo_list", node); //환자정보내리기
  99. // 환자등록번호
  100. var pid = ds_main_result_paminfo_list.getColumn(0, "pid");
  101. var pnm = ds_main_result_paminfo_list.getColumn(0, "hngnm");
  102. var indd = ds_main_result_paminfo_list.getColumn(0, "indd");
  103. var cretno = ds_main_result_paminfo_list.getColumn(0, "cretno");
  104. //var wardcd = model.getValue("/root/main/result/paminfo/list/wardcd");
  105. //var roomcd = model.getValue("/root/main/result/paminfo/list/roomcd");
  106. ds_main_condition.setColumn(0, "pid" , pid);
  107. ds_main_condition.setColumn(0, "pnm" , pnm);
  108. ds_main_condition.setColumn(0, "indd" , indd);
  109. ds_main_condition.setColumn(0, "cretno", cretno);
  110. //model.makeValue("/root/main/condition/wardcd", wardcd);
  111. //model.makeValue("/root/main/condition/roomcd", roomcd);
  112. if( utlf_isNull(pid) ){
  113. //alert("상단의 환자정보가 없습니다");
  114. //window.close();
  115. //return;
  116. }
  117. else
  118. {
  119. // 챠트조회하기..
  120. fGetOtherLendChrtList();
  121. }
  122. /*
  123. if (isPopup() == true) {
  124. // 2008.01.08. 파라메터로 입원 병동코드,병실코드 를 받는다..(응급실에서..)
  125. // 입원 병동코드,병실코드
  126. var pid = opener.javascript.getParameter("pid");
  127. //var inwardcd = opener.javascript.getParameter("inwardcd");
  128. //var inroomcd = opener.javascript.getParameter("inroomcd");
  129. if (pid.length > 0){
  130. model.makeValue("/root/main/condition/pid" , pid);
  131. //model.makeValue("/root/main/condition/wardcd", inwardcd);
  132. //model.makeValue("/root/main/condition/roomcd", inroomcd);
  133. model.makeValue("/root/hidden/param/pid" , pid);
  134. //model.makeValue("/root/hidden/param/inwardcd", inwardcd);
  135. //model.makeValue("/root/hidden/param/inroomcd", inroomcd);
  136. model.refresh();
  137. }
  138. }
  139. */
  140. // 병동조회하기..
  141. //mmbfGetDeptCodeComboList("/root/send/reqdata", "/root/init/wardlist", "W"); //병동코드 콤보
  142. // 병실조회하기..
  143. //fSelectWard();
  144. }
  145. /**
  146. * @desc : 병동에 병실 가져오기
  147. * @
  148. * @param :
  149. * @return :
  150. * @authur : 이은영 2008.03.18
  151. * @---------------------------------------------------
  152. */
  153. function fSelectWard()
  154. {
  155. ds_send_reqdata.setColumn(0, "wardcd", ds_main_condition.getColumn(0, "wardcd"));
  156. submit("TRMRC00051");
  157. }
  158. /**
  159. * @desc : 응급실에서 대출한 챠트 리스트 조회하기
  160. * @
  161. * @param :
  162. * @return :
  163. * @authur : 이은영 2008.03.18
  164. * @---------------------------------------------------
  165. */
  166. function fGetOtherLendChrtList()
  167. {
  168. var pid = utlf_transNullToEmpty(ds_main_condition.getColumn(0, "pid"));
  169. var appdeptcd = ds_main_condition.getColumn(0, "appdeptcd");
  170. ds_send_reqdata.setColumn(0, "pid", pid);
  171. ds_send_reqdata.setColumn(0, "appdeptcd", appdeptcd);
  172. if( pid.length > 0 ){
  173. var oParam = {};
  174. oParam.id = "TRMRC04301";
  175. oParam.service = "chrtmngtapp.ChrtRendMngt";
  176. oParam.method = "reqGetOtherLendChrt";
  177. oParam.inds = "req=ds_send_reqdata";
  178. oParam.outds = "ds_main_lendchrt_chrtlist=chrtlist ds_main_lendchrt_chrtinfo=chrtinfo";
  179. oParam.async = false;
  180. oParam.callback = "cf_TRMRC04301";
  181. tranf_submit(oParam);
  182. if( arErrorCode.pop("TRMRC04301") > -1 )
  183. {
  184. var chrtseqno = ds_main_lendchrt_chrtinfo.getColumn(0, "chrtseqno");
  185. if( utlf_isNull(chrtseqno) )
  186. {
  187. ds_main_lendchrt_chrtlist.clearData();
  188. sysf_messageBox("차트 대출정보가 없는 환자 번호 입니다.", "E999", "");
  189. }
  190. }
  191. }
  192. }
  193. function cf_TRMRC04301(sSvcId, nErrorCode, sErrorMsg) {
  194. arErrorCode.push(sSvcId, nErrorCode);
  195. }
  196. /**
  197. * @desc : 챠트이관
  198. * @
  199. * @param :
  200. * @return :
  201. * @authur : 이은영 2008.03.18
  202. * @---------------------------------------------------
  203. */
  204. function fSendChrt()
  205. {
  206. var ref = ds_main_lendchrt_chrtlist;
  207. //var cnt = getNodeSetCnt(ref);
  208. //var savedata = "status▦chrtseqno▦medirecno▦pid▦rtndeptcd▦rtnmanid▦indd▦cretno▦wardcd▦roomcd▦basedeptcd▩";
  209. var savedata = "chrtseqno▦medirecno▦pid▦rtndeptcd▦rtnmanid▦rtnchrtseqno▦basedeptcd▩";
  210. var dataString = "";
  211. var dataCount = 0;
  212. var rtndeptcd = sysf_getUserInfo("dutplcecd");
  213. var rtnmanid = sysf_getUserInfo("userid");
  214. var rtnchrtseqno = utlf_transNullToEmpty(ds_main_lendchrt_chrtinfo.getColumn(0, "chrtseqno"));
  215. //var indd = model.getValue("/root/main/condition/indd");
  216. //var cretno = model.getValue("/root/main/condition/cretno");
  217. //var wardcd = model.getValue("/root/main/condition/wardcd");
  218. //var roomcd = model.getValue("/root/main/condition/roomcd");
  219. var basedeptcd = utlf_transNullToEmpty(ds_main_condition.getColumn(0, "basedeptcd"));
  220. /*
  221. if (wardcd == "") {
  222. alert("보낼병동을 선택하세요."); return;
  223. }
  224. if (roomcd == "") {
  225. alert("보낼병실을 선택하세요"); return;
  226. }
  227. */
  228. var chrtseqno = utlf_transNullToEmpty(ref.getColumn(ref.rowposition, "chrtseqno"));
  229. var medirecno = utlf_transNullToEmpty(ref.getColumn(ref.rowposition, "medirecno"));
  230. var pid = utlf_transNullToEmpty(ref.getColumn(ref.rowposition, "pid"));
  231. dataString = dataString + chrtseqno + "▦" + medirecno + "▦" + pid + "▦";
  232. dataString = dataString + rtndeptcd + "▦" + rtnmanid + "▦" + rtnchrtseqno + "▦" + basedeptcd + "▩";
  233. /*
  234. for ( var i = 1; i <= cnt; i++)
  235. {
  236. var checked = model.getValue(ref + "[" + i + "]/checked");
  237. var chrtseqno = model.getValue(ref + "[" + i + "]/chrtseqno");
  238. var medirecno = model.getValue(ref + "[" + i + "]/medirecno");
  239. var pid = model.getValue(ref + "[" + i + "]/pid");
  240. if (checked == "true" && medirecno != "")
  241. {
  242. dataString = dataString + "u▦" + chrtseqno + "▦" + medirecno + "▦" + pid + "▦";
  243. dataString = dataString + rtndeptcd + "▦" + rtnmanid + "▦" + rtnchrtseqno + "▦" + indd + "▦" + cretno + "▦" + basedeptcd + "▩";
  244. dataCount = dataCount + 1;
  245. }
  246. }
  247. */
  248. if( dataString.length > 0 )
  249. {
  250. dsf_setCSVToDs("ds_send_savedata", savedata + dataString);
  251. var oParam = {};
  252. oParam.id = "TXMRC04301";
  253. oParam.service = "chrtmngtapp.ChrtRendMngt";
  254. oParam.method = "reqSetOtherSendChrt";
  255. oParam.inds = "req=ds_send_savedata";
  256. oParam.outds = "";
  257. oParam.async = false;
  258. //oParam.callback = "cf_TXMRC04301";
  259. tranf_submit(oParam);
  260. //alert("총 " + dataCount + " 건 챠트이관 되었습니다.");
  261. // 다시 조회하기..
  262. var oParam = {};
  263. oParam.id = "TRMRC04301";
  264. oParam.service = "chrtmngtapp.ChrtRendMngt";
  265. oParam.method = "reqGetOtherLendChrt";
  266. oParam.inds = "req=ds_send_reqdata";
  267. oParam.outds = "ds_main_lendchrt_chrtlist=chrtlist ds_main_lendchrt_chrtinfo=chrtinfo";
  268. oParam.async = false;
  269. //oParam.callback = "cf_TRMRC04301";
  270. tranf_submit(oParam);
  271. }
  272. }
  273. /**
  274. * @desc : 환자등록번호 조회 팝업
  275. * @
  276. * @param : refPid - 환자번호 node path
  277. * @ refPnm - 환자명 node path
  278. * @return :
  279. * @authur : 이은영 2008.03.18
  280. * @---------------------------------------------------
  281. */
  282. function fGetPid(refPid, refPnm)
  283. {
  284. //조회건수가 1건일 경우 팝업창을 바로 닫는다.
  285. ds_hidden_tmp_pidpopupinfo.setColumn(0, "checkfnexam", "1");
  286. ds_hidden_tmp_pidpopupinfo.setColumn(0, "autoflag", "N");
  287. if( utlf_isNull(ds_hidden_tmp_pidpopupinfo.getColumn(0, "srchcond")) ){
  288. ds_hidden_tmp_pidpopupinfo.setColumn(0, "srchcond", '2');
  289. }
  290. var objArg = new Object();
  291. objArg.arg_ds_send = ds_hidden_tmp_pidpopupinfo;
  292. frmf_modal("SPPMC02500","SPPMC02500","", 1, 150, 150, "", "", "", "", "", "", "M");
  293. //환자번호 copy
  294. var popupendflag = frmf_getParameter("SPPMC02500_popupendflag");
  295. if( popupendflag == "ok" )
  296. {
  297. ds_main_condition.setColumn(0, refPid, ds_patinfolist.getColumn(0, "pid"));
  298. if( !utlf_isNull(refPnm) ){
  299. ds_main_condition.setColumn(0, refPnm, ds_patinfolist.getColumn(0, "hngnm"));
  300. }
  301. }
  302. }
  303. /**
  304. * @desc : 등록된 환자번호인지 체킹한다..
  305. * @
  306. * @param : iptObj - 환자번호 입력 컨트롤 (pid)
  307. * @return : pnm - 환자명
  308. * @authur : 이은영 2008.03.18
  309. * @---------------------------------------------------
  310. */
  311. function fCheckPid(iptObj, refPnm)
  312. {
  313. ds_send_req.setColumn(0, "srchcond", "1");
  314. ds_send_req.setColumn(0, "pid", iptObj.value);
  315. //환자등록번호 체크
  316. if( utlf_transNullToEmpty(iptObj.value).length > 0 ){
  317. ds_main_result_patinfo_patinfolist.clearData();
  318. var oParam = {};
  319. oParam.id = "TRPMC02500";
  320. oParam.service = "patinfomngtapp.PatBaseInfo";
  321. oParam.method = "reqGetPatInfo";
  322. oParam.inds = "req=ds_send_req";
  323. oParam.outds = "ds_main_result_patinfo_patinfolist=patinfolist";
  324. oParam.async = false;
  325. oParam.callback = "cf_TRPMC02500";
  326. tranf_submit(oParam);
  327. if( arErrorCode.pop("TRPMC02500") > -1 ){
  328. //fSearch는 인적사항 화면을 임포트 해간 화면에서 구현해 주어야 하는 함수이다.
  329. if( ds_main_result_patinfo_patinfolist.rowcount > 0 ){
  330. ds_main_patinfo_patinfolist.copyData(ds_main_result_patinfo_patinfolist);
  331. //* 2009.04.07. 이중번호 메세지 ( 14257937 박용석 -> 13275912 신옥순 )
  332. var sBindPid = ds_main_result_patinfo_patinfolist.getColumn(0, "bindpid");
  333. if( sBindPid != '-' && !utlf_isNull(sBindPid) && sBindPid != ' ' ){
  334. //합번된 등록번호 메세지 처리
  335. var sPid = ds_main_result_patinfo_patinfolist.getColumn(0, "pid");
  336. var sHngnm = ds_main_result_patinfo_patinfolist.getColumn(0, "hngnm");
  337. var retValue = sysf_messageBox(sPid + " (" + sHngnm + ") 환자의 등록번호가 [ " + sBindPid + " ] 로 합번 되었습니다. 합번된 등록번호로 재조회 하시겠습니까?", "Q999", "");
  338. if( retValue == '6' ){
  339. ds_main_condition.setColumn(0, "pid", sBindPid);
  340. fCheckPid(iptObj, refPnm);
  341. return "";
  342. }
  343. }
  344. //*/
  345. var pid = ds_main_result_patinfo_patinfolist.getColumn(0, "pid");
  346. var pnm = ds_main_result_patinfo_patinfolist.getColumn(0, "hngnm");
  347. if( !utlf_isNull(refPnm) )
  348. {
  349. ds_main_condition.setColumn(0, refPnm, pnm);
  350. }
  351. return pnm;
  352. }else{
  353. ds_main_patinfo_patinfolist.clearData();
  354. sysf_messageBox("없는 환자 번호 입니다.", "E999", "");
  355. return "";
  356. }
  357. }
  358. }else{
  359. sysf_messageBox("환자등록번호를 정확히", "C001");
  360. return "";
  361. }
  362. }
  363. function cf_TRPMC02500(sSvcId, nErrorCode, sErrorMsg) {
  364. arErrorCode.push(sSvcId, nErrorCode);
  365. }
  366. /**
  367. * @desc : 하드코드 조회
  368. * @
  369. * @param : ref - reference path
  370. * rsltref - result reference path
  371. * hardcd - 하드코드
  372. * @return :
  373. * @author : 오지훈
  374. * @---------------------------------------------------
  375. */
  376. function mmbfGetHardCodeInfo(ref, rsltref, hardcd){
  377. var mmb_rsltref = ds_hidden_mmb_hardcd;
  378. mmb_rsltref.clearData();
  379. ref.setColumn(0, "hardcd", hardcd);
  380. var oParam = {};
  381. oParam.id = "TRMMB04103";
  382. oParam.service = "prcpbaseapp.EnvInfoMngt";
  383. oParam.method = "reqGetHardCodeCD";
  384. oParam.inds = "req=ds_send_reqdata";
  385. oParam.outds = "ds_hidden_mmb_hardcd=hardcd";
  386. oParam.async = false;
  387. oParam.callback = "cf_TRMMB04103";
  388. tranf_submit(oParam);
  389. if( arErrorCode.pop("TRMMB04103") > -1 ){
  390. rsltref.copyData(mmb_rsltref);
  391. mmb_rsltref.clearData();
  392. }
  393. }
  394. function cf_TRMMB04103(sSvcId, nErrorCode, sErrorMsg) {
  395. arErrorCode.push(sSvcId, nErrorCode);
  396. }
  397. ]]></Script>