SPMMO00400.xjs 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <Script type="xscript4.0"><![CDATA[/***************************************************************************************
  3. * System Name : KNUH2.0
  4. * Job Name : EMR
  5. * File Name : SPMMO00400.xjsS
  6. * Creator :
  7. * Make Date : 2014-09-25
  8. *
  9. * Description :
  10. *---------------------------------------------------------------------------------------
  11. * Modify Date Modifier Modify Description
  12. *---------------------------------------------------------------------------------------
  13. * 2014-09-25 DBS Converting Program(TF->XP)
  14. *
  15. *---------------------------------------------------------------------------------------
  16. ****************************************************************************************/
  17. var sPAMINFOLIST = ds_temp_paminfo;
  18. var arErrorCode = new HashArray();
  19. var objFontArg = new Object(); // 확인 창의 줄간격 등 설정
  20. var strBeforeCpApply = "";
  21. /****************************************************************************************
  22. * Function : fInitialize_SPMMO00400
  23. * Description : 화면 초기화(환자정보세팅)
  24. * Argument :
  25. * :
  26. * return type :
  27. * Creator :
  28. ****************************************************************************************/
  29. function fInitialize_SPMMO00400() {
  30. objFontArg.linespace = 2;
  31. var paminfo = sysf_getGlobalVariable("paminfo");
  32. dsf_setCSVToDs("ds_temp_paminfo", paminfo);
  33. ds_init.setColumn(0,"today", utlf_getCurrentDate());
  34. //var cRow = ds_temp_paminfo.rowposition;
  35. var dschdclrtyn = ds_temp_paminfo.getColumn(0,"dschdclrtyn");
  36. var dschdclrdt = ds_temp_paminfo.getColumn(0,"dschdclrdt");
  37. var dschdclrtrgstid = ds_temp_paminfo.getColumn(0,"dschdclrtrgstid");
  38. var dschdclrtrgstdt = ds_temp_paminfo.getColumn(0,"dschdclrtrgstdt");
  39. var dschdclrtrgstnm = ds_temp_paminfo.getColumn(0,"dschdclrtrgstnm");
  40. var indschacptstat = ds_temp_paminfo.getColumn(0,"indschacptstat");
  41. var hngnm = ds_temp_paminfo.getColumn(0,"hngnm");
  42. var dethdt = ds_temp_paminfo.getColumn(0,"dethdt");
  43. if(indschacptstat == "D" || indschacptstat == "T"){
  44. if(!lf_ContainsHardCD("1900001012", ds_temp_paminfo.getColumn(0, "wardcd"))){
  45. sysf_messageBox("이미 퇴원한 환자", "E008");
  46. this.close();
  47. return;
  48. }
  49. }
  50. if(dschdclrtyn == "N"){ //퇴원예고가 안된경우
  51. //20200220 이돈희 문제 : CP 적용전에 퇴원예고 팝업 후에 퇴원예고하는 경우 불필요하게 CP 배치 수행됨
  52. // 해결 : CP 적용 전에 팝업되는 퇴원예고인지 정보 추가함
  53. strBeforeCpApply = opener.frmf_getParameter("SMMMP00800_beforecpapply");
  54. if(utlf_isNull(strBeforeCpApply)){
  55. strBeforeCpApply = "N";
  56. }
  57. ds_cond.setColumn(0,"dclrflag","N");
  58. //CP에서 퇴원일이 이정된 경우, 퇴원예고일을 설정 (2008.08.06 JJE)
  59. if(dethdt != "" && dethdt != "-") { // 사망등록 되었을경우 사망일자로 설정.
  60. ds_cond.setColumn(0,"dclrdd",dethdt.substr(0, 8));
  61. } else {
  62. var SMMMP00800_dclrdd = opener.frmf_getParameter("SMMMP00800_dclrdd");
  63. if(utlf_isNull(SMMMP00800_dclrdd)){
  64. ds_cond.setColumn(0,"dclrdd",utlf_getCurrentDate());
  65. }else{
  66. ds_cond.setColumn(0,"dclrdd",SMMMP00800_dclrdd);
  67. }
  68. }
  69. ds_cond.setColumn(0,"dclrtm",utlf_getCurrentTime().substr(0,6));
  70. ds_cond.setColumn(0,"dclrtrgstnm",sysf_getUserName());
  71. btn_dschcncl.enable = false; //예고취소 버튼 비활성화
  72. }else{ //퇴원예고가 된 경우
  73. ds_cond.setColumn(0,"dclrflag" ,dschdclrtyn);
  74. ds_cond.setColumn(0,"dclrdd" ,dschdclrdt.substr(0,8));
  75. ds_cond.setColumn(0,"dclrtm" ,dschdclrdt.substr(8,6));
  76. ds_cond.setColumn(0,"dclrtrgstdt" ,dschdclrtrgstdt);
  77. ds_cond.setColumn(0,"dclrtrgstnm" ,dschdclrtrgstnm);
  78. btn_dschrgst.enable = false; //예고등록 버튼 비활성화
  79. }
  80. ipt_dclrtm.setFocus();
  81. }
  82. /****************************************************************************************
  83. * Function : fGetCpExclusionRsn
  84. * Description : CP의 Exclusion 을 조회
  85. * Argument : popFlag (A:평가팝업을 위해, 그외(E):exclusion을 위해)
  86. * :
  87. * return type :
  88. * Creator :
  89. ****************************************************************************************/
  90. function fGetCpExclusionRsn( popFlag ){
  91. if( utlf_isNull(popFlag) ) popFlag = "E";
  92. if( popFlag == "E" && ds_init.getColumn(0,"trmmp00808endyn") == "Y" ){
  93. return; //이미 한번 exclusion 사유를 search했다면 return
  94. }else if( popFlag == "E" && (!utlf_isNull(opener.objects["ds_masterinfo"]) && opener.ds_masterinfo.getColumn(0,"cpgflagcd") == "02") ) { // 오프너에 사용하는 DS를 알고 고칠 필요가 있음
  95. return; //## CPG일 경우, exclusion 팝업 사용 안 함. 20100426 KHJ
  96. }
  97. var paminfoNode = opener.ds_paminfo;
  98. var patflagNode = opener.ds_patflag;
  99. var prcpgenrflag = "";
  100. var orddd = "";
  101. if(utlf_isNull(paminfoNode)) return;
  102. if(utlf_isNull(patflagNode)) {
  103. prcpgenrflag = opener.ds_paminfo.getColumn(opener.ds_paminfo.rowposition,"ioflag");
  104. } else {
  105. prcpgenrflag = opener.ds_patflag.getColumn(opener.ds_patflag.rowposition,"prcpgenrflag");
  106. }
  107. if ( prcpgenrflag == "O" ) {
  108. orddd = opener.ds_paminfo.getColumn(opener.ds_paminfo.rowposition,"orddd");
  109. } else {
  110. orddd = opener.ds_paminfo.getColumn(opener.ds_paminfo.rowposition,"indd");
  111. }
  112. dsf_createDs("ds_send_cpdata");
  113. dsf_makeValue(ds_send_cpdata,"orddd", "string",orddd);
  114. dsf_makeValue(ds_send_cpdata,"pid", "string",opener.ds_paminfo.getColumn(opener.ds_paminfo.rowposition,"pid"));
  115. dsf_makeValue(ds_send_cpdata,"cretno", "string",opener.ds_paminfo.getColumn(opener.ds_paminfo.rowposition,"cretno"));
  116. dsf_makeValue(ds_send_cpdata,"orddeptcd","string",opener.ds_paminfo.getColumn(opener.ds_paminfo.rowposition,"orddeptcd"));
  117. ds_main_cpexclusionlist.clearData();
  118. ds_main_valuinfo.clearData();
  119. var oParam = {};
  120. oParam.id = "TRMMP00808";
  121. oParam.service = "prcpmngtapp.CPPrcpMngt";
  122. oParam.method = "reqGetExclusionList";
  123. oParam.inds = "req=ds_send_cpdata";
  124. oParam.outds = "ds_main_cpexclusionlist=info ds_main_valuinfo=valuinfo";
  125. oParam.async = false;
  126. oParam.callback = "cf_TRMMP00808";
  127. tranf_submit(oParam);
  128. ds_init.setColumn(0,"trmmp00808endyn","Y"); //설정값 변경
  129. dsf_deleteDs("ds_send_cpdata");
  130. if( popFlag == "E" ){
  131. if(ds_main_valuinfo.rowcount > 0) {
  132. var objArg = new Object();
  133. objArg.arg_ds_hidden = ds_main_valuinfo;
  134. //20200224 이돈희 : 김현석 선생님과 협의 후 평가 팝업창 없앰
  135. // : 평가 팝업창 장기간 사용안됨을 데이터로 확인하였음
  136. //frmf_modal("SPMMP02500", "SPMMP02500", objArg, "", sysf_getCurrentMonitorNumber(), "55", "60", "", "", "", "", "", "M"); // 퇴원예고시 평가 팝업잠시 막음
  137. }
  138. }
  139. }
  140. /****************************************************************************************
  141. * Function : cf_TRMMP00808
  142. * Description : TRMMP00808 콜백함수
  143. * Argument :
  144. * :
  145. * return type :
  146. * Creator :
  147. ****************************************************************************************/
  148. function cf_TRMMP00808(sSvcId, nErrorCode, sErrorMsg) {
  149. if(nErrorCode > -1) {
  150. //20181019 이돈희 : 우지애 선생님 요청으로 퇴원예고시 Exclusion 화면 제거
  151. /*
  152. if(ds_main_cpexclusionlist.rowcount > 0) { //if( instance1.selectSingleNode("/root/main/cpexclusionlist/info") != null ){
  153. var mon = sysf_getCurrentMonitorNumber(); //getCurrentMonitorNumber();
  154. var cpObj = frmf_findPopup("SMMMP00800"); //getOpenWindow("SMMMP00800");
  155. //CP 적용 전 퇴원예고 시 exclusion 제외..
  156. if( cpObj == null ){
  157. //modal("SPMMP02400", mon, "55", "60", "SPMMP02400", "/root/main/cpexclusionlist", "/root/main/cpexclusionlist", "sysmenu:hidden; icon:visible", false);
  158. var objArg = new Object();
  159. objArg.arg_ds_main_cpexclusionlist = ds_main_cpexclusionlist;
  160. frmf_modal("SPMMP02400", "SPMMP02400", objArg, "", mon, "55", "60", "", "", "close=false", "", "", "M");
  161. }
  162. }
  163. */
  164. }
  165. }
  166. /****************************************************************************************
  167. * Function : fSaveDschDclr
  168. * Description : 퇴원예고 등록 및 취소
  169. * Argument :
  170. * :
  171. * return type :
  172. * Creator :
  173. ****************************************************************************************/
  174. function fSaveDschDclr(dschdclrtyn){
  175. if(ds_temp_paminfo.rowcount < 1) {
  176. sysf_messageBox("환자정보가 없습니다.", "");
  177. return;
  178. }
  179. if(fRequireRgst(dschdclrtyn) == false){
  180. return;
  181. }
  182. ds_savedata.clearData();
  183. var pid = ds_temp_paminfo.getColumn(0,"pid");
  184. var indd = ds_temp_paminfo.getColumn(0,"indd");
  185. var cretno = ds_temp_paminfo.getColumn(0,"cretno");
  186. var seqno = ds_temp_paminfo.getColumn(0,"seqno");
  187. var ordtype = ds_temp_paminfo.getColumn(0,"ioflag");
  188. var dschdclrdt = ds_cond.getColumn(0,"dclrdd") + ds_cond.getColumn(0,"dclrtm");
  189. var orddeptcd = ds_temp_paminfo.getColumn(0,"orddeptcd");
  190. // CP 퇴원예정일보다 조기 퇴원 시 CP Drop 유도 (2008.10.28 JJE) (s)
  191. var cpObj = frmf_findPopup("SMMMP00800"); //getOpenWindow("SMMMP00800");
  192. if( dschdclrtyn == "Y" && !utlf_isNull(cpObj) ){
  193. //입원 CP, 퇴원필요step의 퇴원예고일 < 퇴원예정일 => drop
  194. var cpflagcd = utlf_transNullToEmpty(cpObj.ds_main_masterinfo_info.getColumn(0,"cpgflagcd")); //cpObj.model.getValue("/root/main/masterinfo/info/cpgflagcd");
  195. var ioflagcd = cpObj.ds_main_masterinfo_info.getColumn(0,"ioflagcd"); //cpObj.model.getValue("/root/main/masterinfo/info/ioflagcd");
  196. var dschschedd = cpObj.ds_main_steppath_info.getColumn(cpObj.ds_main_steppath_info.findRow("decirflag","D") ,"prcpdd"); //cpObj.instance1.selectSingleNode("/root/main/steppath/info[decirflag='D']/prcpdd");
  197. if( cpflagcd == "01" && ioflagcd == "I" && !utlf_isNull(dschschedd) ){
  198. if( ds_cond.getColumn(0,"dclrdd") < dschschedd ){ //model.getValue("/root/main/cond/dclrdd") < dschschedd.text ){
  199. if( sysf_messageBox("조기퇴원입니다. CP Drop을" , "Q004" ) == "6" ){
  200. frmf_setParameter("SMMMO043_cpgappno", cpObj.ds_temp1_getdata.getColumn(0,"cpgappno")); //cpObj.model.getValue("/root/temp1/getdata/cpgappno"));
  201. frmf_setParameter("SMMMO043_drop" , "N");
  202. frmf_modal("SPMMP02300","SPMMP02300","","","","","","","","","","","M");
  203. if( frmf_getParameter("SMMMO043_drop") == "Y" ){
  204. cpObj.ds_temp1_getdata.setColumn(0,"appstat","50"); //cpObj.model.setValue("/root/temp1/getdata/appstat", "50");
  205. }else{
  206. sysf_messageBox("퇴원예고가 등록되지" , "E007" );
  207. return;
  208. }
  209. }else{
  210. sysf_messageBox("퇴원예고가 등록되지" , "E007" );
  211. return;
  212. }
  213. }
  214. }
  215. }
  216. dsf_makeValue(ds_savedata,"pid", "string",pid);
  217. dsf_makeValue(ds_savedata,"indd", "string",indd);
  218. dsf_makeValue(ds_savedata,"cretno", "string",cretno);
  219. dsf_makeValue(ds_savedata,"seqno", "string",seqno);
  220. dsf_makeValue(ds_savedata,"ordtype", "string",ordtype);
  221. dsf_makeValue(ds_savedata,"dschdclrdt", "string",dschdclrdt);
  222. dsf_makeValue(ds_savedata,"dschdclrtyn","string",dschdclrtyn);
  223. dsf_makeValue(ds_savedata,"orddeptcd", "string",orddeptcd);
  224. var oParam = {};
  225. oParam.id = "TXMMO00401";
  226. oParam.service = "prcpmngtapp.EtcPrcpMngt";
  227. oParam.method = "reqSetInPatDschDclr";
  228. oParam.inds = "req=ds_savedata";
  229. oParam.outds = "";
  230. oParam.async = false;
  231. oParam.callback = "cf_TXMMO00401";
  232. var bRtn = tranf_submit(oParam);
  233. if(bRtn) {
  234. var cpObj = frmf_findPopup("SMMMP00800");
  235. var ordtype = ds_temp_paminfo.getColumn(0,"ioflag");
  236. var indd = ds_temp_paminfo.getColumn(0,"indd");
  237. if(ordtype=="E"){ // 응급실 환자 중 퇴원예고를 할 경우 귀가로 의사결정 되도록 로직 추가
  238. dsf_makeValue(ds_savedata,"instcd", "string", sysf_getUserInfo("dutplceinstcd"));
  239. dsf_makeValue(ds_savedata,"orddd", "string", indd);
  240. dsf_makeValue(ds_savedata,"adflag", "string", "H");
  241. dsf_setDefaultVal(ds_savedata, "answer:7");
  242. var oParam = {};
  243. oParam.id = "TXMMO26001";
  244. oParam.service = "prcpmngtapp.EtcPrcpMngt";
  245. oParam.method = "reqInsDecisioninfo";
  246. oParam.inds = "req=ds_savedata";
  247. oParam.outds = "ds_rtndata=item";
  248. oParam.async = false;
  249. oParam.callback = "";
  250. tranf_submit(oParam);
  251. }
  252. //2012/07/30 End
  253. opener.frmf_setParameter("SPMMO00400_rtn_useyn", "Y");
  254. //CP (s)
  255. //2008.07.07 cp퇴원예고때문에 추가함
  256. opener.frmf_setParameter("SPMMO00400_dclrdd", ds_cond.getColumn(0,"dclrdd")); //model.getValue("/root/main/cond/dclrdd") );
  257. //2009.01.16 입퇴원기록지 미작성->작성후 퇴원예고 버튼 다시클릭한 경우 CP exclusion 사유 재조회
  258. fGetCpExclusionRsn("A");
  259. //20200203 이돈희 : 퇴원예고시 시간을 판단하여 CP 배치 실행
  260. // -- 퇴원날 전날 15시 30분 이후 퇴원예고시 - 다음날 CP 배치 실행
  261. // -- 퇴원날 퇴원예고시 - 당일 CP 배치 실행
  262. if( dschdclrtyn == "Y" && !utlf_isNull(cpObj)){
  263. if( cpflagcd == "01" && ioflagcd == "I" && !utlf_isNull(dschschedd) ){
  264. var sCpBatchTime = lf_getHardCDList("Y", 599, 3); //배치 실행 시간
  265. if(utlf_isNull(sCpBatchTime)) {
  266. sCpBatchTime = "153000"; // 디폴트 6시 => 153000 으로 변경
  267. }
  268. var nextDay = utlf_addDate(utlf_getCurrentDate(), 1);//다음날을 찾는다.
  269. var toDay = utlf_getCurrentDate();
  270. var bRunExe = false;
  271. //퇴원예고일이 CP 종료일과 같은 경우
  272. if( ds_cond.getColumn(0,"dclrdd") == dschschedd && strBeforeCpApply == "N"){
  273. // 퇴원예고일이 내일이면서, CP 정규배치 시간 이후인 경우 내일자 CP배치를 한번 더 실행 해줌
  274. if(dschschedd == nextDay && utlf_getCurrentTime() > sCpBatchTime){
  275. //20200205 이돈희 : CP 배치 실행시에 state에 처방발행일자 입력하도록 수정(김현석 선생님과 협의 완료)
  276. ds_temp1_exe.setColumn(0,"paramcnts", "stat:" + dschschedd + " cpno:"+ cpObj.ds_temp1_getdata.getColumn(0,"cpgappno"));
  277. bRunExe = true;
  278. }
  279. // 퇴원예고일이 오늘이면 오늘자 CP배치를 한번 더 실행 해줌
  280. else if(dschschedd == toDay) {
  281. //20200205 이돈희 : CP 배치 실행시에 state에 처방발행일자 입력하도록 수정(김현석 선생님과 협의 완료)
  282. ds_temp1_exe.setColumn(0,"paramcnts", "stat:" + dschschedd +" cpno:"+ cpObj.ds_temp1_getdata.getColumn(0,"cpgappno"));
  283. bRunExe = true;
  284. }
  285. if(bRunExe == true){
  286. if(sysf_messageBox("미발행된 퇴원약을 처방하시겠습니까?\n\n퇴원약 처방은 약 1분 정도 소요되며, 퇴원약이 없거나\n별도로 퇴원약 처방을 한 경우는 아니오 선택바랍니다.\n\n(본원 : 5463, 칠곡 : 2422)" , "Q000", "", objFontArg) == "6"){
  287. var oParam = {};
  288. oParam.id = "TXMMP00807";
  289. oParam.service = "batchinfoapp.BatchInfo";
  290. oParam.method = "reqExeRunBatchProgram";
  291. oParam.inds = "req=ds_temp1_exe";
  292. oParam.outds = "";
  293. oParam.async = false;
  294. tranf_submit(oParam);
  295. if( arErrorCode.pop("TXMMP00807") < 0 ){
  296. sysf_messageBox ( "퇴원약 처방을 위한 CP 배치가 실패하였습니다." );
  297. }
  298. }
  299. ds_temp1_exe.setColumn(0,"lastupdtrid" , "");
  300. ds_temp1_exe.setColumn(0,"lastupdtdt" , "");
  301. ds_temp1_exe.setColumn(0,"paramcnts" , "");
  302. }
  303. }
  304. }
  305. }
  306. //CP (e)
  307. this.close();
  308. }
  309. }
  310. /****************************************************************************************
  311. * Function : fRequireRgst
  312. * Description : 퇴원예고 등록여부를 MessageBox를 띄움
  313. * Argument :
  314. * :
  315. * return type :
  316. * Creator :
  317. ****************************************************************************************/
  318. function fRequireRgst(bflag){
  319. var dclrdd = ds_cond.getColumn(0,"dclrdd");
  320. var dclrtm = ds_cond.getColumn(0,"dclrtm");
  321. if(dclrtm.length < 4){
  322. sysf_messageBox("퇴원예고 시간을 정확하게", "C001");
  323. return false;
  324. }
  325. var hngnm = ds_temp_paminfo.getColumn(0,"hngnm");
  326. if(bflag == "Y"){
  327. var rtnval = rtnval = sysf_messageBox("[" + hngnm + "] 환자를 퇴원예고 등록을 " , "Q004");
  328. }else if(bflag == "N"){
  329. var rtnval = sysf_messageBox("[" + hngnm + "] 환자를 퇴원예고 취소를 " , "Q004");
  330. }
  331. if(rtnval == 6){ // '예' 클릭
  332. return true;
  333. }else if(rtnval == 7){ // '아니오' 클릭
  334. return false;
  335. }
  336. }
  337. /****************************************************************************************
  338. * Function : cf_TRMMO00401
  339. * Description : TRMMO00401 콜백함수
  340. * Argument :
  341. * :
  342. * return type :
  343. * Creator :
  344. ****************************************************************************************/
  345. function cf_TRMMO00401(sSvcId, nErrorCode, sErrorMsg) {
  346. arErrorCode.push(sSvcId, nErrorCode);
  347. }
  348. /****************************************************************************************
  349. * Function : cf_TRMMO00402
  350. * Description : TRMMO00402 콜백함수
  351. * Argument :
  352. * :
  353. * return type :
  354. * Creator :
  355. ****************************************************************************************/
  356. function cf_TRMMO00402(sSvcId, nErrorCode, sErrorMsg) {
  357. arErrorCode.push(sSvcId, nErrorCode);
  358. }
  359. /****************************************************************************************
  360. * Function : cf_TRMMO50002
  361. * Description : TRMMO50002 콜백함수
  362. * Argument :
  363. * :
  364. * return type :
  365. * Creator :
  366. ****************************************************************************************/
  367. function cf_TRMMO50002(sSvcId, nErrorCode, sErrorMsg) {
  368. arErrorCode.push(sSvcId, nErrorCode);
  369. }
  370. /****************************************************************************************
  371. * Function : cf_TXMMO00401
  372. * Description : TXMMO00401 콜백함수
  373. * Argument :
  374. * :
  375. * return type :
  376. * Creator :
  377. ****************************************************************************************/
  378. function cf_TXMMO00401(sSvcId, nErrorCode, sErrorMsg) {
  379. if(nErrorCode < 0) {
  380. var errMsg = utlf_transNullToEmpty(sErrorMsg.split("|")[0]);
  381. var sErrCd = errMsg.substr(8,6); // 에러코드가 없어 에러 메세지로 구분 . 에러코드를 받아오는방법이 필요
  382. opener.frmf_setParameter("SPMMO00400_rtn_useyn", "N");
  383. //CP이면서 exception msg가 "입퇴원요약기록지를 기록해야 합니다." 일 경우, 입퇴원요약기록지 호출 (2008.11.10 JJE) (s)
  384. ds_init.setColumn(0,"trmmp00808endyn","N"); //CP아닌 경우, 입퇴원요약기록지 작성 후 다시 exclusion 사유 조회하기 위해, 초기값 설정
  385. var cpObj = frmf_findPopup("SMMMP00800");
  386. if(sErrCd == "X10001") { // [메세지코드: X10001 입퇴원요약지 체크]
  387. if(!utlf_isNull(cpObj)) { // CP 화면
  388. var mainObj = frmf_getMainViewer();
  389. var scrnID = mainObj.frmf_getScreenID();
  390. var formrecseq = "";
  391. var formrecdd = ds_cond.getColumn(0,"dclrdd");
  392. if(scrnID == "SMMMR00100"){
  393. mainObj.fOpenFormByOther("0000000680", formrecseq, "", formrecdd, "PROG"); // MMR00100.xjs (진료기록메인에 링크)
  394. } else {
  395. sysf_setGlobalVariable("linked_cpformcd" , "0000000680" , "emr");
  396. sysf_setGlobalVariable("linked_cpformrecseq", formrecseq , "emr");
  397. sysf_setGlobalVariable("linked_cpformrecdd" , formrecdd , "emr");
  398. mainObj.frmf_openForm("SMMMR00100");
  399. }
  400. } else {
  401. fInOutBrifEMRScrn() ; // 입퇴원기록지는 진료기록메인 화면이 열린 경우만 열어주도록 함
  402. }
  403. } else {
  404. fInProgressEMRScrn() ;
  405. }
  406. }
  407. }
  408. /****************************************************************************************
  409. * Function : fInOutBrifEMRScrn
  410. * Description :
  411. * Argument :
  412. * :
  413. * return type :
  414. * Creator :
  415. ****************************************************************************************/
  416. function fInOutBrifEMRScrn() {
  417. var mainobj = frmf_getMainViewer();
  418. var mainscrnid = mainobj.frmf_getScreenID(); //메인화면의 기록지 ID
  419. curFormLoaderObj = frmf_findPopup("SSMMR01100"); //활성화된 서식로더창 체크
  420. if(curFormLoaderObj != null){ //서식로더 Close : 2009-06-03 : 이상현 D/L 요청 : 김영학 ;
  421. curFormLoaderObj.fClose();
  422. } //서식로더 close()
  423. if(mainobj != null){
  424. var wndid = "SMMMR00100"; //진료기록화면이 default
  425. if(mainscrnid == wndid){
  426. mainobj.frmf_setParameter("SSMMR01100_recsavechk", "Y");
  427. mainobj.lf_openNewForm("0000000680", "PROG");//0900006893
  428. }
  429. }
  430. }
  431. /****************************************************************************************
  432. * Function : fInProgressEMRScrn
  433. * Description : 경과기록을 Open 한다.
  434. * Argument :
  435. * :
  436. * return type :
  437. * Creator :
  438. ****************************************************************************************/
  439. function fInProgressEMRScrn () {
  440. var mainobj = frmf_getMainViewer();
  441. var mainscrnid = mainobj.frmf_getScreenID(); //메인화면의 기록지 ID
  442. curFormLoaderObj = frmf_findPopup("SSMMR01100"); //활성화된 서식로더창 체크
  443. if(curFormLoaderObj != null){ //서식로더 Close : 2009-06-03 : 이상현 D/L 요청 : 김영학 ;
  444. curFormLoaderObj.fClose();
  445. } //서식로더 close()
  446. if(mainobj != null){
  447. var wndid = "SMMMR00100"; //진료기록화면이 default
  448. if(mainscrnid == wndid){
  449. mainobj.frmf_setParameter("SSMMR01100_recsavechk", "Y");
  450. mainobj.lf_openNewForm("0900006893", "PROG");
  451. }
  452. }
  453. }
  454. /****************************************************************************************
  455. * Function : fOpenInReq
  456. * Description : 입원의뢰서 화면 open.
  457. * Argument :
  458. * :
  459. * return type :
  460. * Creator :
  461. ****************************************************************************************/
  462. function fOpenInReq(){
  463. var param = ds_temp_paminfo.getColumn(0,"pid") + "▦" +
  464. ds_temp_paminfo.getColumn(0,"hngnm") + "▦" +
  465. ds_temp_paminfo.getColumn(0,"orddeptcd") + "▦" +
  466. ds_temp_paminfo.getColumn(0,"orddrid") + "▦" +
  467. ds_temp_paminfo.getColumn(0,"insukind") + "▦" +
  468. ds_temp_paminfo.getColumn(0,"suppkind") + "▦" +
  469. ds_temp_paminfo.getColumn(0,"indd") + "▦" +
  470. ds_temp_paminfo.getColumn(0,"cretno") + "▦" +
  471. "I";
  472. frmf_setParameter("SPMMO00100_param", param);
  473. frmf_modal("SPMMO00100", "SPMMO00100", "", "", "", 100, 40, "", "", "", "", "", "M");
  474. }
  475. /****************************************************************************************
  476. * Function : fOpenOrdRsrv
  477. * Description : 재진예약 화면 open
  478. * Argument :
  479. * :
  480. * return type :
  481. * Creator :
  482. ****************************************************************************************/
  483. function fOpenOrdRsrv(){
  484. frmf_setParameter("SMPMO00300_PARAM1", ds_temp_paminfo.getColumn(0,"orddeptcd")); //진료과코드
  485. frmf_setParameter("SMPMO00300_PARAM2", ds_temp_paminfo.getColumn(0,"orddrid")); //진료의ID
  486. frmf_setParameter("SMPMO00300_PARAM3", ds_temp_paminfo.getColumn(0,"pid")); //등록번호
  487. frmf_modal("SMPMO00300", "SMPMO00300", "", "", "", 0, 80, "", "", "", "", "", "M");
  488. }]]></Script>