SPMMO00400.xjs 50 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103
  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. /****************************************************************************************
  20. * Function : fInitialize_SPMMO00400
  21. * Description : 화면 초기화(환자정보세팅)
  22. * Argument :
  23. * :
  24. * return type :
  25. * Creator :
  26. ****************************************************************************************/
  27. function fInitialize_SPMMO00400() {
  28. var paminfo = sysf_getGlobalVariable("paminfo");
  29. dsf_setCSVToDs("ds_temp_paminfo",paminfo);
  30. ds_init.setColumn(0,"today",utlf_getCurrentDate());
  31. //var cRow = ds_temp_paminfo.rowposition;
  32. var dschdclrtyn = ds_temp_paminfo.getColumn(0,"dschdclrtyn");
  33. var dschdclrdt = ds_temp_paminfo.getColumn(0,"dschdclrdt");
  34. var dschdclrtrgstid = ds_temp_paminfo.getColumn(0,"dschdclrtrgstid");
  35. var dschdclrtrgstdt = ds_temp_paminfo.getColumn(0,"dschdclrtrgstdt");
  36. var dschdclrtrgstnm = ds_temp_paminfo.getColumn(0,"dschdclrtrgstnm");
  37. var indschacptstat = ds_temp_paminfo.getColumn(0,"indschacptstat");
  38. var hngnm = ds_temp_paminfo.getColumn(0,"hngnm");
  39. var dethdt = ds_temp_paminfo.getColumn(0,"dethdt");
  40. if(indschacptstat == "D" || indschacptstat == "T"){
  41. sysf_messageBox("이미 퇴원한 환자", "E008");
  42. this.close();
  43. return;
  44. }
  45. if(dschdclrtyn == "N"){ //퇴원예고가 안된경우
  46. ds_cond.setColumn(0,"dclrflag","N");
  47. //CP에서 퇴원일이 이정된 경우, 퇴원예고일을 설정 (2008.08.06 JJE)
  48. if(dethdt != "" && dethdt != "-") { // 사망등록 되었을경우 사망일자로 설정.
  49. ds_cond.setColumn(0,"dclrdd",dethdt.substr(0, 8));
  50. } else {
  51. var SMMMP00800_dclrdd = opener.frmf_getParameter("SMMMP00800_dclrdd");
  52. if(utlf_isNull(SMMMP00800_dclrdd)){
  53. ds_cond.setColumn(0,"dclrdd",utlf_getCurrentDate());
  54. }else{
  55. ds_cond.setColumn(0,"dclrdd",SMMMP00800_dclrdd);
  56. }
  57. }
  58. ds_cond.setColumn(0,"dclrtm",utlf_getCurrentTime().substr(0,6));
  59. ds_cond.setColumn(0,"dclrtrgstnm",sysf_getUserName());
  60. btn_dschcncl.enable = false; //예고취소 버튼 비활성화
  61. }else{ //퇴원예고가 된 경우
  62. ds_cond.setColumn(0,"dclrflag" ,dschdclrtyn);
  63. ds_cond.setColumn(0,"dclrdd" ,dschdclrdt.substr(0,8));
  64. ds_cond.setColumn(0,"dclrtm" ,dschdclrdt.substr(8,6));
  65. ds_cond.setColumn(0,"dclrtrgstdt" ,dschdclrtrgstdt);
  66. ds_cond.setColumn(0,"dclrtrgstnm" ,dschdclrtrgstnm);
  67. btn_dschrgst.enable = false; //예고등록 버튼 비활성화
  68. }
  69. ipt_dclrtm.setFocus();
  70. }
  71. /****************************************************************************************
  72. * Function : fGetCpExclusionRsn
  73. * Description : CP의 Exclusion 을 조회
  74. * Argument : popFlag (A:평가팝업을 위해, 그외(E):exclusion을 위해)
  75. * :
  76. * return type :
  77. * Creator :
  78. ****************************************************************************************/
  79. function fGetCpExclusionRsn( popFlag ){
  80. if( utlf_isNull(popFlag) ) popFlag = "E";
  81. if( popFlag == "E" && ds_init.getColumn(0,"trmmp00808endyn") == "Y" ){
  82. return; //이미 한번 exclusion 사유를 search했다면 return
  83. }else if( popFlag == "E" && (!utlf_isNull(opener.objects["ds_masterinfo"]) && opener.ds_masterinfo.getColumn(0,"cpgflagcd") == "02") ) { // 오프너에 사용하는 DS를 알고 고칠 필요가 있음
  84. return; //## CPG일 경우, exclusion 팝업 사용 안 함. 20100426 KHJ
  85. }
  86. var paminfoNode = opener.ds_paminfo;
  87. var patflagNode = opener.ds_patflag;
  88. var prcpgenrflag = "";
  89. var orddd = "";
  90. if(utlf_isNull(paminfoNode)) return;
  91. if(utlf_isNull(patflagNode)) {
  92. prcpgenrflag = opener.ds_paminfo.getColumn(opener.ds_paminfo.rowposition,"ioflag");
  93. } else {
  94. prcpgenrflag = opener.ds_patflag.getColumn(opener.ds_patflag.rowposition,"prcpgenrflag");
  95. }
  96. if ( prcpgenrflag == "O" ) {
  97. orddd = opener.ds_paminfo.getColumn(opener.ds_paminfo.rowposition,"orddd");
  98. } else {
  99. orddd = opener.ds_paminfo.getColumn(opener.ds_paminfo.rowposition,"indd");
  100. }
  101. dsf_createDs("ds_send_cpdata");
  102. dsf_makeValue(ds_send_cpdata,"orddd", "string",orddd);
  103. dsf_makeValue(ds_send_cpdata,"pid", "string",opener.ds_paminfo.getColumn(opener.ds_paminfo.rowposition,"pid"));
  104. dsf_makeValue(ds_send_cpdata,"cretno", "string",opener.ds_paminfo.getColumn(opener.ds_paminfo.rowposition,"cretno"));
  105. dsf_makeValue(ds_send_cpdata,"orddeptcd","string",opener.ds_paminfo.getColumn(opener.ds_paminfo.rowposition,"orddeptcd"));
  106. var oParam = {};
  107. oParam.id = "TRMMP00808";
  108. oParam.service = "prcpmngtapp.CPPrcpMngt";
  109. oParam.method = "reqGetExclusionList";
  110. oParam.inds = "req=ds_send_cpdata";
  111. oParam.outds = "ds_main_cpexclusionlist=info ds_main_valuinfo=valuinfo";
  112. oParam.async = false;
  113. oParam.callback = "cf_TRMMP00808";
  114. tranf_submit(oParam);
  115. ds_init.setColumn(0,"trmmp00808endyn","Y"); //설정값 변경
  116. dsf_deleteDs("ds_send_cpdata");
  117. if( popFlag == "E" ){
  118. // if( instance1.selectSingleNode("/root/main/cpexclusionlist/valuinfo") != null ){
  119. // modal("SPMMP02500", getCurrentMonitorNumber(), "55", "60", "SPMMP02500", "/root/main/cpexclusionlist/valuinfo", "/root/hidden"); // 퇴원예고시 평가 팝업잠시 막음
  120. // }
  121. if(ds_main_valuinfo.rowcount > 0) {
  122. var objArg = new Object();
  123. objArg.arg_ds_hidden = ds_main_valuinfo;
  124. frmf_modal("SPMMP02500", "SPMMP02500", objArg, "", sysf_getCurrentMonitorNumber(), "55", "60", "", "", "", "", "", "M"); // 퇴원예고시 평가 팝업잠시 막음
  125. }
  126. }
  127. }
  128. /****************************************************************************************
  129. * Function : cf_TRMMP00808
  130. * Description : TRMMP00808 콜백함수
  131. * Argument :
  132. * :
  133. * return type :
  134. * Creator :
  135. ****************************************************************************************/
  136. function cf_TRMMP00808(sSvcId, nErrorCode, sErrorMsg) {
  137. if(nErrorCode > -1) {
  138. if(ds_main_cpexclusionlist.rowcount > 0) { //if( instance1.selectSingleNode("/root/main/cpexclusionlist/info") != null ){
  139. var mon = sysf_getCurrentMonitorNumber(); //getCurrentMonitorNumber();
  140. var cpObj = frmf_findPopup("SMMMP00800"); //getOpenWindow("SMMMP00800");
  141. //CP 적용 전 퇴원예고 시 exclusion 제외..
  142. if( cpObj == null ){
  143. //modal("SPMMP02400", mon, "55", "60", "SPMMP02400", "/root/main/cpexclusionlist", "/root/main/cpexclusionlist", "sysmenu:hidden; icon:visible", false);
  144. var objArg = new Object();
  145. objArg.arg_ds_main_cpexclusionlist = ds_main_cpexclusionlist;
  146. frmf_modal("SPMMP02400", "SPMMP02400", objArg, "", mon, "55", "60", "", "", "", "", "", "M");
  147. }
  148. }
  149. }
  150. }
  151. /****************************************************************************************
  152. * Function : fSaveDschDclr
  153. * Description : 퇴원예고 등록 및 취소
  154. * Argument :
  155. * :
  156. * return type :
  157. * Creator :
  158. ****************************************************************************************/
  159. function fSaveDschDclr(dschdclrtyn){
  160. if(ds_temp_paminfo.rowcount < 1) {
  161. sysf_messageBox("환자정보가 없습니다.", "");
  162. return;
  163. }
  164. if(fRequireRgst(dschdclrtyn) == false){
  165. //fInitialize_SPMMO00400(); // 화면을 초기화
  166. return;
  167. }
  168. ds_savedata.clearData();
  169. //var cRow = ds_temp_paminfo.rowposition;
  170. var pid = ds_temp_paminfo.getColumn(0,"pid");
  171. var indd = ds_temp_paminfo.getColumn(0,"indd");
  172. var cretno = ds_temp_paminfo.getColumn(0,"cretno");
  173. var seqno = ds_temp_paminfo.getColumn(0,"seqno");
  174. var ordtype = ds_temp_paminfo.getColumn(0,"ioflag");
  175. var dschdclrdt = ds_cond.getColumn(0,"dclrdd") + ds_cond.getColumn(0,"dclrtm");
  176. var orddeptcd = ds_temp_paminfo.getColumn(0,"orddeptcd");
  177. if(dschdclrtyn == "Y"){ // 예고등록시
  178. // 퇴원예고일 이후 처방 여부를 체크한다. 20121213 엄영만
  179. if(!fCheckDschAfterPrcpExist()) return;
  180. // 퇴원예고 등록시 반환요청(E) 처방 여부를 체크한다. 20130803 엄영만 버튼 위치로 이동 처리(2013.08.05)
  181. //if(!fCheckReturnPrcpExist()) return;
  182. // 완료되지 않은 의뢰(Consult)를 체크한다. 20130205 엄영만
  183. if(!fCheckConsultExist()) return;
  184. // 제왕절개 안정성 평가 관련 기록 여부를 체크한다. 20120104 엄영만
  185. if(!fCheckChildbirthRec()) return;
  186. // 퇴원예고시 GOS 기록지 작성 여부 체크한다. 20130227 엄영만 심사실 요청
  187. if(!fCheckDschApoplexyRec()) return;
  188. // 퇴원예고시 DRG환자의 경우 DRG 질점검표 작성 여부를 체크한다. 2013/05/03
  189. if(!fCheckDrgRecExist()) return;
  190. }
  191. /*
  192. **퇴원예고 등록시 중증체크 추가. BY SONJY 2008-08-18
  193. **중증등록번호를 가진 환자가 응급실에서 진료 후 퇴원오더 시 암상병이 없으면 ALERT
  194. **by sonjy 2008-08-18
  195. */
  196. if( ordtype == "E" && dschdclrtyn == "Y" ) {
  197. sysf_messageBox("응급환자를 다른 병원에 전원하는 경우에\n 반드시 응급의료에 관한 법률에 위배되지 않도록\n 1339 정보센터에 연락하시고, 전원의뢰서를 작성해 주시기 바랍니다.", "I");
  198. dsf_createDs("ds_send_req");
  199. dsf_makeValue(ds_send_req,"pid", "string",pid);
  200. dsf_makeValue(ds_send_req,"indd", "string",indd);
  201. dsf_makeValue(ds_send_req,"cretno", "string",cretno);
  202. dsf_makeValue(ds_send_req,"ordtype","string",ordtype);
  203. dsf_makeValue(ds_send_req,"instcd", "string",ds_temp_paminfo.getColumn(0,"instcd"));
  204. //by sonjy 20100202 진료과 추가
  205. //model.makeValue("/root/send/req/orddeptcd", model.getValue(sPAMINFOLIST + "/orddeptcd"));
  206. ds_req.setColumn(nRow,"orddeptcd",ds_temp_paminfo.getColumn(0,"orddeptcd"));
  207. var oParam = {};
  208. oParam.id = "TRMMO00121";
  209. oParam.service = "prcpmngtapp.PrcpMngt";
  210. oParam.method = "reqGetPatCncrHistInfo";
  211. oParam.inds = "req=ds_send_req";
  212. oParam.outds = "ds_savecncrhist=savecncrhist ds_serdiagermsg=serdiagermsg ds_diagrcdchkmsg=diagrcdchkmsg";
  213. oParam.async = false;
  214. oParam.callback = "cf_TRMMO00121";
  215. tranf_submit(oParam);
  216. }
  217. // CP 퇴원예정일보다 조기 퇴원 시 CP Drop 유도 (2008.10.28 JJE) (s)
  218. var cpObj = frmf_findPopup("SMMMP00800"); //getOpenWindow("SMMMP00800");
  219. if( dschdclrtyn == "Y" && !utlf_isNull(cpObj) ){
  220. //입원 CP, 퇴원필요step의 퇴원예고일 < 퇴원예정일 => drop
  221. var cpflagcd = cpObj.ds_masterinfo.getColumn(0,"cpgflagcd"); //cpObj.model.getValue("/root/main/masterinfo/info/cpgflagcd");
  222. var ioflagcd = cpObj.ds_masterinfo.getColumn(0,"ioflagcd"); //cpObj.model.getValue("/root/main/masterinfo/info/ioflagcd");
  223. var dschschedd = cpObj.ds_steppath.getColumn(cpObj.ds_steppath.findRow("decirflag","D") ,"prcpdd"); //cpObj.instance1.selectSingleNode("/root/main/steppath/info[decirflag='D']/prcpdd");
  224. if( cpflagcd == "01" && ioflagcd == "I" && !utlf_isNull(dschschedd) ){
  225. if( ds_cond.getColumn(0,"dclrdd") < dschschedd ){ //model.getValue("/root/main/cond/dclrdd") < dschschedd.text ){
  226. if( sysf_messageBox("조기퇴원입니다. CP Drop을" , "Q004" ) == "6" ){
  227. frmf_setParameter("SMMMO043_cpgappno", cpObj.ds_getdata.getColumn(0,"cpgappno")); //cpObj.model.getValue("/root/temp1/getdata/cpgappno"));
  228. frmf_setParameter("SMMMO043_drop" , "N");
  229. //modal("SPMMP02300"); //drop팝업
  230. frmf_modal("SPMMP02300","SPMMP02300","","","","","","","","","","","M");
  231. if( frmf_getParameter("SMMMO043_drop") == "Y" ){
  232. cpObj.ds_getdata.setColumn(0,"appstat","50"); //cpObj.model.setValue("/root/temp1/getdata/appstat", "50");
  233. }else{
  234. sysf_messageBox("퇴원예고가 등록되지" , "E007" );
  235. return;
  236. }
  237. }else{
  238. sysf_messageBox("퇴원예고가 등록되지" , "E007" );
  239. return;
  240. }
  241. }
  242. }
  243. }
  244. dsf_makeValue(ds_savedata,"pid", "string",pid);
  245. dsf_makeValue(ds_savedata,"indd", "string",indd);
  246. dsf_makeValue(ds_savedata,"cretno", "string",cretno);
  247. dsf_makeValue(ds_savedata,"seqno", "string",seqno);
  248. dsf_makeValue(ds_savedata,"ordtype", "string",ordtype);
  249. dsf_makeValue(ds_savedata,"dschdclrdt", "string",dschdclrdt);
  250. dsf_makeValue(ds_savedata,"dschdclrtyn","string",dschdclrtyn);
  251. dsf_makeValue(ds_savedata,"orddeptcd", "string",orddeptcd);
  252. var oParam = {};
  253. oParam.id = "TXMMO00401";
  254. oParam.service = "prcpmngtapp.EtcPrcpMngt";
  255. oParam.method = "reqSetInPatDschDclr";
  256. oParam.inds = "req=ds_savedata";
  257. oParam.outds = "";
  258. oParam.async = false;
  259. oParam.callback = "cf_TXMMO00401";
  260. tranf_submit(oParam);
  261. //if(submit("TXMMO00401") == true){
  262. var errMsg = arErrorCode.pop("TXMMO00401").substr(0,6); // 에러코드가 없어 에러 메세지로 구분 . 에러코드를 받아오는방법이 필요
  263. // if(errCode >= 0){
  264. if(utlf_isNull(errMsg)) {
  265. //2012/07/30 Start
  266. if(ordtype=="E"){ // 응급실 환자 중 퇴원예고를 할 경우 귀가로 의사결정 되도록 로직 추가
  267. dsf_makeValue(ds_savedata,"instcd", "string",sysf_getUserInfo("dutplceinstcd"));
  268. dsf_makeValue(ds_savedata,"orddd", "string",indd);
  269. dsf_makeValue(ds_savedata,"decisionkind","string","H");
  270. dsf_setDefaultVal(ds_savedata, "answer:7");
  271. var oParam = {};
  272. oParam.id = "TXMMO26001";
  273. oParam.service = "prcpmngtapp.EtcPrcpMngt";
  274. oParam.method = "reqInsDecisioninfo";
  275. oParam.inds = "req=ds_savedata";
  276. oParam.outds = "ds_rtndata=item";
  277. oParam.async = false;
  278. oParam.callback = "cf_TXMMO26001";
  279. tranf_submit(oParam);
  280. }
  281. //2012/07/30 End
  282. opener.frmf_setParameter("SPMMO00400_rtn_useyn", "Y");
  283. //CP (s)
  284. //2008.07.07 cp퇴원예고때문에 추가함
  285. opener.frmf_setParameter("SPMMO00400_dclrdd", ds_cond.getColumn(0,"dclrdd")); //model.getValue("/root/main/cond/dclrdd") );
  286. //2009.01.16 입퇴원기록지 미작성->작성후 퇴원예고 버튼 다시클릭한 경우 CP exclusion 사유 재조회
  287. fGetCpExclusionRsn("A");
  288. //CP (e)
  289. this.close();
  290. }else { // 2008.08.29 pym
  291. opener.frmf_setParameter("SPMMO00400_rtn_useyn", "N");
  292. //CP이면서 exception msg가 "입퇴원요약기록지를 기록해야 합니다." 일 경우, 입퇴원요약기록지 호출 (2008.11.10 JJE) (s)
  293. ds_init.setColumn(0,"trmmp00808endyn","N"); //CP아닌 경우, 입퇴원요약기록지 작성 후 다시 exclusion 사유 조회하기 위해, 초기값 설정
  294. //if( instance1.selectSingleNode("/root/properties/error/code") != null && cpObj != null ){ //CP인 경우, 입퇴원요약기록 자동 로딩
  295. if(!utlf_isNull(errMsg) && !utlf_isNull(cpObj)) {
  296. //if( model.getValue("/root/properties/error/code") == "emr.info.11007" && model.getValue("/root/properties/error/msg") == "입퇴원요약지를 기록해야 합니다.....!" ){
  297. if(errMsg == "입퇴원요약지") {
  298. var mainObj = frmf_getMainViewer();
  299. var scrnID = mainObj.frmf_getScreenID();
  300. // if( scrnID == "SMMMR00100" && mainObj.instance1.selectSingleNode("/root/main/mainlist/medireclist[formcd='0000000680']") != null ){
  301. // var formrecseq = mainObj.instance1.selectSingleNode("/root/main/mainlist/medireclist[formcd='0000000680']/formrecseq").text;
  302. // var formrecdd = mainObj.instance1.selectSingleNode("/root/main/mainlist/medireclist[formcd='0000000680']/formrecdd").text;
  303. // }else{
  304. // var formrecseq = "";
  305. // var formrecdd = model.getValue("/root/main/cond/dclrdd");
  306. // }
  307. if( scrnID == "SMMMR00100" && utlf_isNull(mainObj.ds_medireclist.filter("formcd == '0000000680'")) == false ){ // 진료기록메인 에서 사용하는 데이터셋과 맞춰야함. ds_medireclist(/root/main/mainlist/medireclist)
  308. var formrecseq = mainObj.ds_medireclist(ds_medireclist.findRow("formcd","0000000680"),"formrecseq");
  309. var formrecdd = mainObj.ds_medireclist(ds_medireclist.findRow("formcd","0000000680"),"formrecdd");
  310. }else{
  311. var formrecseq = "";
  312. var formrecdd = ds_cond.getColumn(0,"dclrdd");
  313. }
  314. // if(scrnID == "SMMMR00100"){
  315. // mainObj.window.javascript.fOpenFormByOther("0000000680", formrecseq, "", formrecdd);
  316. // }else{
  317. // setGlobalVariable("linked_cpformcd", "0000000680", "emr");
  318. // setGlobalVariable("linked_cpformrecseq", formrecseq, "emr");
  319. // setGlobalVariable("linked_cpformrecdd", formrecdd, "emr");
  320. // mainObj.javascript.navigate("SMMMR00100");
  321. // }
  322. if(scrnID == "SMMMR00100"){
  323. mainObj.fOpenFormByOther("0000000680", formrecseq, "", formrecdd); // MMR00100.xjs (진료기록메인에 링크)
  324. }else{
  325. sysf_setGlobalVariable("linked_cpformcd" , "0000000680" , "emr");
  326. sysf_setGlobalVariable("linked_cpformrecseq", formrecseq , "emr");
  327. sysf_setGlobalVariable("linked_cpformrecdd" , formrecdd , "emr");
  328. mainObj.frmf_openForm("SMMMR00100");
  329. }
  330. }
  331. //} else if (model.getValue("/root/properties/error/code") =="emr.info.11007"){ // 입퇴원요약지를 작성하지 않은 경우 바로 입퇴원기록지를 열어줌
  332. } else if(errMsg == "입퇴원요약지") {
  333. fInOutBrifEMRScrn() ; // 입퇴원기록지는 진료기록메인 화면이 열린 경우만 열어주도록 함
  334. //} else if (model.getValue("/root/properties/error/code") =="emr.info.11008"){ // 입원 경과기록지를 열어줌
  335. } else {
  336. fInProgressEMRScrn() ;
  337. }
  338. //(e)
  339. }
  340. }
  341. /****************************************************************************************
  342. * Function : fRequireRgst
  343. * Description : 퇴원예고 등록여부를 MessageBox를 띄움
  344. * Argument :
  345. * :
  346. * return type :
  347. * Creator :
  348. ****************************************************************************************/
  349. function fRequireRgst(bflag){
  350. // var dclrdd = model.getValue("/root/main/cond/dclrdd");
  351. // var dclrtm = model.getValue("/root/main/cond/dclrtm");
  352. var dclrdd = ds_cond.getColumn(0,"dclrdd");
  353. var dclrtm = ds_cond.getColumn(0,"dclrtm");
  354. if(dclrtm.length < 4){
  355. sysf_messageBox("퇴원예고 시간을 정확하게", "C001");
  356. return false;
  357. }
  358. // var hngnm = model.getValue(sPAMINFOLIST + "/hngnm");
  359. var hngnm = ds_temp_paminfo.getColumn(0,"hngnm");
  360. if(bflag == "Y"){
  361. var rtnval = sysf_messageBox("[" + hngnm + "] 환자를 퇴원예고 등록을 " , "Q004");
  362. }else if(bflag == "N"){
  363. var rtnval = sysf_messageBox("[" + hngnm + "] 환자를 퇴원예고 취소를 " , "Q004");
  364. }
  365. if(rtnval == 6){ // '예' 클릭
  366. return true;
  367. }else if(rtnval == 7){ // '아니오' 클릭
  368. return false;
  369. }
  370. }
  371. /****************************************************************************************
  372. * Function : fCheckDschAfterPrcpExist
  373. * Description : 퇴원예고일자 이후의 처방 존재 유무 확인(submit)
  374. * Argument :
  375. * :
  376. * return type : true, false
  377. * Creator : 엄영만 2012. 12. 13
  378. ****************************************************************************************/
  379. function fCheckDschAfterPrcpExist(){
  380. var bRtn = true;
  381. var sCheckCode = "";
  382. var sCheckAlertMsg = "";
  383. var sCheckErrorMsg = "";
  384. var sCheckPrcpExist = "N"; // 퇴원예고일 이후 처방 존재 여부 디폴트 N 없음.
  385. // var pid = model.getValue(sPAMINFOLIST + "/pid");
  386. // var indd = model.getValue(sPAMINFOLIST + "/indd");
  387. // var cretno = model.getValue(sPAMINFOLIST + "/cretno");
  388. // var dclrdd = model.getValue("/root/main/cond/dclrdd"); // 퇴원 예고일
  389. //var cRow = ds_temp_paminfo.rowposition;
  390. var pid = ds_temp_paminfo.getColumn(0,"pid");
  391. var indd = ds_temp_paminfo.getColumn(0,"indd");
  392. var cretno = ds_temp_paminfo.getColumn(0,"cretno");
  393. var dclrdd = ds_cond.getColumn(0,"dclrdd"); // 퇴원 예고일
  394. // model.makeValue("/root/dschafterprcp/reqdata/pid", pid);
  395. // model.makeValue("/root/dschafterprcp/reqdata/indd", indd);
  396. // model.makeValue("/root/dschafterprcp/reqdata/cretno", cretno);
  397. // model.makeValue("/root/dschafterprcp/reqdata/dclrdd", dclrdd);
  398. dsf_createDs("ds_dschafterprcp_reqdata");
  399. dsf_makeValue(ds_dschafterprcp_reqdata,"pid" ,"string",pid);
  400. dsf_makeValue(ds_dschafterprcp_reqdata,"indd" ,"string",indd);
  401. dsf_makeValue(ds_dschafterprcp_reqdata,"cretno" ,"string",cretno);
  402. dsf_makeValue(ds_dschafterprcp_reqdata,"dclrdd" ,"string",dclrdd);
  403. // if(submit("TRMMO00401", false)){
  404. // var nCnt = model.getValue("/root/dschafterprcp/rtndata/cnt");
  405. //
  406. // if(nCnt > 0) {
  407. // if( "6" == messageBox("퇴원예고일자보다 미래인 처방이 존재합니다.\n퇴원예고일자를 변경하시거나 미래 처방을 삭제하신 후 진행하여 주시기 바랍니다.\n\n계속 진행 하시겠습니까?", 'Q999')) {
  408. // bRtn = true;
  409. // } else {
  410. // bRtn = false;
  411. // }
  412. // }
  413. // }
  414. var oParam = {};
  415. oParam.id = "TRMMO00401";
  416. oParam.service = "prcpmngtapp.EtcPrcpMngt";
  417. oParam.method = "reqGetChkDschAfterPrcpCnt";
  418. oParam.inds = "req=ds_dschafterprcp_reqdata";
  419. oParam.outds = "ds_rtndata=rtndata";
  420. oParam.async = false;
  421. oParam.callback = "cf_TRMMO00401";
  422. tranf_submit(oParam);
  423. if(arErrorCode.pop("TRMMO00401") >= 0){
  424. var nCnt = ds_rtndata.getColumn(ds_rtndata.rowposition,"cnt");
  425. if(nCnt > 0) {
  426. if( "6" == sysf_messageBox("퇴원예고일자보다 미래인 처방이 존재합니다.\n퇴원예고일자를 변경하시거나 미래 처방을 삭제하신 후 진행하여 주시기 바랍니다.\n\n계속 진행 하시겠습니까?", 'Q999')) {
  427. bRtn = true;
  428. } else {
  429. bRtn = false;
  430. }
  431. }
  432. }
  433. dsf_deleteDs("ds_dschafterprcp_reqdata");
  434. return bRtn;
  435. }
  436. /****************************************************************************************
  437. * Function : cf_TRMMO00401
  438. * Description : TRMMO00401 콜백함수
  439. * Argument :
  440. * :
  441. * return type :
  442. * Creator :
  443. ****************************************************************************************/
  444. function cf_TRMMO00401(sSvcId, nErrorCode, sErrorMsg) {
  445. arErrorCode.push(sSvcId, nErrorCode);
  446. }
  447. /****************************************************************************************
  448. * Function : fCheckConsultExist
  449. * Description : 완료되지 않은 의뢰(Consult) 유무 확인(submit)
  450. * Argument :
  451. * :
  452. * return type : true, false
  453. * Creator : 엄영만 2013. 02. 05
  454. ****************************************************************************************/
  455. function fCheckConsultExist(){
  456. var bRtn = true;
  457. if(lf_ContainsHardCD("419", "Y")) { // 체크 사용 여부
  458. // var pid = model.getValue(sPAMINFOLIST + "/pid");
  459. // var orddd = model.getValue(sPAMINFOLIST + "/indd");
  460. // var cretno = model.getValue(sPAMINFOLIST + "/cretno");
  461. //var cRow = ds_temp_paminfo.rowposition;
  462. var pid = ds_temp_paminfo.getColumn(0,"pid");
  463. var orddd = ds_temp_paminfo.getColumn(0,"indd");
  464. var cretno = ds_temp_paminfo.getColumn(0,"cretno");
  465. // model.removenode("/root/checkconsult");
  466. // model.makeValue("/root/checkconsult/reqdata/pid", pid);
  467. // model.makeValue("/root/checkconsult/reqdata/orddd", orddd);
  468. // model.makeValue("/root/checkconsult/reqdata/cretno", cretno);
  469. dsf_createDs("ds_checkconsult_reqdata");
  470. dsf_makeValue(ds_checkconsult_reqdata,"pid" ,"string",pid);
  471. dsf_makeValue(ds_checkconsult_reqdata,"orddd" ,"string",orddd);
  472. dsf_makeValue(ds_checkconsult_reqdata,"cretno" ,"string",cretno);
  473. // if(submit("TRMMO00402", false)){
  474. // var nCnt = model.getValue("/root/checkconsult/rtndata/cnt");
  475. //
  476. // if(nCnt > 0) {
  477. // if( "6" == messageBox("회신되지 않은 의뢰내역이 존재합니다.\n의뢰내역을 삭제 하시거나, 회신완료 후 퇴원예고를 진행하여 주시기 바랍니다.\n\n의뢰내역을 확인 하시겠습니까?", 'Q999')) {
  478. // var ioflag = model.getValue(sPAMINFOLIST + "/ioflag");
  479. // var orddeptcd = model.getValue(sPAMINFOLIST + "/orddeptcd");
  480. // var orddrid = model.getValue(sPAMINFOLIST + "/medispclid");
  481. //
  482. // var param = pid +"▦"+ orddd+ "▦" +cretno+ "▦" + ioflag +"▦"+ orddeptcd +"▦"+ orddrid +"▦"; //pid▦orddd▦cretno▦ioflag▦orddeptcd▦orddrid▦
  483. // var screenid = "SPMMO00400";
  484. //
  485. // var wndobj = getOpenWindow("SMMMR05000");
  486. // if(wndobj != null){
  487. // setParameter("SMMMR05000_param_pinfo", param);
  488. // setParameter("SMMMR05000_screenid", screenid);
  489. // wndobj.javascript.fInitalize();
  490. // wndobj.window.restore(); //최소화 시킨 창을 최대화 시킴
  491. // wndobj.window.activate();
  492. // }else{
  493. // setParameter("SMMMR05000_param_pinfo", param);
  494. // setParameter("SMMMR05000_screenid", screenid);
  495. // open("SMMMR05000", 2, 0, 0);
  496. // }
  497. // }
  498. // bRtn = false;
  499. // }
  500. // }
  501. var oParam = {};
  502. oParam.id = "TRMMO00402";
  503. oParam.service = "prcpmngtapp.EtcPrcpMngt";
  504. oParam.method = "reqGetChkDschConsultCnt";
  505. oParam.inds = "req=ds_checkconsult_reqdata";
  506. oParam.outds = "ds_rtndata=rtndata";
  507. oParam.async = false;
  508. oParam.callback = "cf_TRMMO00402";
  509. tranf_submit(oParam);
  510. if(arErrorCode.pop("TRMMO00402") >= 0){
  511. var nCnt = ds_rtndata.rowcount;
  512. if(nCnt > 0) {
  513. if( "6" == sysf_messageBox("회신되지 않은 의뢰내역이 존재합니다.\n의뢰내역을 삭제 하시거나, 회신완료 후 퇴원예고를 진행하여 주시기 바랍니다.\n\n의뢰내역을 확인 하시겠습니까?", 'Q999')) {
  514. //var cRow = ds_temp_paminfo.rowposition;
  515. var ioflag = ds_temp_paminfo.getColumn(0,"ioflag");
  516. var orddeptcd = ds_temp_paminfo.getColumn(0,"orddeptcd");
  517. var orddrid = ds_temp_paminfo.getColumn(0,"medispclid");
  518. var param = pid +"▦"+ orddd+ "▦" +cretno+ "▦" + ioflag +"▦"+ orddeptcd +"▦"+ orddrid +"▦"; //pid▦orddd▦cretno▦ioflag▦orddeptcd▦orddrid▦
  519. var screenid = "SPMMO00400";
  520. var wndobj = frmf_findPopup("SMMMR05000");
  521. if(wndobj != null){
  522. frmf_setParameter("SMMMR05000_param_pinfo", param);
  523. frmf_setParameter("SMMMR05000_screenid", screenid);
  524. wndobj.javascript.fInitalize();
  525. wndobj.window.restore(); //최소화 시킨 창을 최대화 시킴
  526. wndobj.window.activate();
  527. }else{
  528. frmf_setParameter("SMMMR05000_param_pinfo", param);
  529. frmf_setParameter("SMMMR05000_screenid", screenid);
  530. frmf_open("SMMMR05000","SMMMR05000","","",2,0,0,"","","","","","M");
  531. }
  532. }
  533. bRtn = false;
  534. }
  535. }
  536. dsf_deleteDs("ds_checkconsult_reqdata");
  537. }
  538. return bRtn;
  539. }
  540. /****************************************************************************************
  541. * Function : cf_TRMMO00402
  542. * Description : TRMMO00402 콜백함수
  543. * Argument :
  544. * :
  545. * return type :
  546. * Creator :
  547. ****************************************************************************************/
  548. function cf_TRMMO00402(sSvcId, nErrorCode, sErrorMsg) {
  549. arErrorCode.push(sSvcId, nErrorCode);
  550. }
  551. /****************************************************************************************
  552. * Function : fCheckChildbirthRec
  553. * Description : 제왕절개분만 적정성평가 위험도 보정요인 서식 기록 유무 확인(submit)
  554. * Argument : prcpflag: 처방구분 0: ( 의사처방, CP, 항암프로토콜, 임시), 2:간호, 4:지원부서
  555. * : savekindflag: 0:인증저장, 1:임시저장
  556. * : saveNode: 저장노드
  557. * : 심사실 김현주(6127) 요청 2012.01.05일 정규 배포 본원만 적용하고 칠곡은 적용하지 않음.
  558. * return type : true, false
  559. * Creator : 엄영만 2011. 11. 01
  560. ****************************************************************************************/
  561. function fCheckChildbirthRec(){
  562. var bRtn = true;
  563. // 제왕절개분만 적정성평가 관련 기록 여부를 체크한다. 2012.0103 엄영만
  564. // var sChkChildbirthRecYn = fGetHardCDList("Y", 321, 3); // 321 제왕절개분만 적정성평가 관련 기록 체크여부 처방 제한 사용 여부
  565. // var sOrddeptcd = model.getValue(sPAMINFOLIST + "/orddeptcd");
  566. var sChkChildbirthRecYn = lf_getHardCDList("Y", 321, 3, null); // 321 제왕절개분만 적정성평가 관련 기록 체크여부 처방 제한 사용 여부
  567. var sOrddeptcd = ds_temp_paminfo.getColumn(0,"orddeptcd");
  568. //fGetHardCDList("N", 322, 0 , "/root/hidden/childbirthdeptlist"); // 322 제왕절개분만 적정성평가 관련 기록 체크 주진료과
  569. lf_getHardCDList("N", 322, null , ds_childbirthdeptlist); // 322 제왕절개분만 적정성평가 관련 기록 체크 주진료과
  570. if (sChkChildbirthRecYn == "Y"
  571. // && !isNull(model.getValue("/root/hidden/childbirthdeptlist/hardcd[hardcd='"+sOrddeptcd+"']/hardcd" )) ) {
  572. // && !utlf_isNull(ds_childbirthdeptlist.getColumn(ds_childbirthdeptlist.findRow("hardcd",sOrddeptcd),"hardcd")) {
  573. && ds_childbirthdeptlist.findRow("hardcd",sOrddeptcd) > -1) {
  574. var sCheckCode = "";
  575. var sCheckAlertMsg = "";
  576. var sCheckErrorMsg = "";
  577. var sCheckPrcpExist = "N"; // 제왕절개 관련 처방 존재 여부 디폴트 N 없음.
  578. // var pid = model.getValue (sPAMINFOLIST + "/pid");
  579. // var indd = model.getValue (sPAMINFOLIST + "/indd");
  580. // var cretno = model.getValue (sPAMINFOLIST + "/cretno");
  581. var pid = ds_temp_paminfo.getColumn(0,"pid");
  582. var indd = ds_temp_paminfo.getColumn(0,"indd");
  583. var cretno = ds_temp_paminfo.getColumn(0,"cretno");
  584. // model.makeValue("/root/childbirthchkrec/reqdata/pid", pid);
  585. // model.makeValue("/root/childbirthchkrec/reqdata/indd", indd);
  586. // model.makeValue("/root/childbirthchkrec/reqdata/cretno", cretno);
  587. // model.makeValue("/root/childbirthchkrec/reqdata/prcpexist", sCheckPrcpExist);
  588. dsf_createDs("ds_childbirthchkrec_reqdata");
  589. dsf_makeValue(ds_childbirthchkrec_reqdata,"pid" ,"string",pid);
  590. dsf_makeValue(ds_childbirthchkrec_reqdata,"indd" ,"string",indd);
  591. dsf_makeValue(ds_childbirthchkrec_reqdata,"cretno" ,"string",cretno);
  592. dsf_makeValue(ds_childbirthchkrec_reqdata,"prcpexist" ,"string",sCheckPrcpExist);
  593. //submit("TRMMO00138", false);
  594. var oParam = {};
  595. oParam.id = "TRMMO00138";
  596. oParam.service = "prcpmngtapp.PrcpMngt";
  597. oParam.method = "reqGetChkChildbirthRec";
  598. oParam.inds = "req=ds_childbirthchkrec_reqdata";
  599. oParam.outds = "ds_rtndata=rtndata";
  600. oParam.async = false;
  601. oParam.callback = "";
  602. tranf_submit(oParam);
  603. //var sChkRecList = model.instances(0).selectNodes( "/root/childbirthchkrec/rtndata" );
  604. // for ( var i=1; i <= sChkRecList.length; i++ ) {
  605. // var sCheckCode = model.getValue ( "/root/childbirthchkrec/rtndata[" + i + "]/checkcode" );
  606. // if(sCheckCode == "ALERT"){
  607. // if(sCheckAlertMsg == "")
  608. // sCheckAlertMsg = model.getValue ( "/root/childbirthchkrec/rtndata[" + i + "]/checkmsg");
  609. // else
  610. // sCheckAlertMsg = sCheckAlertMsg + "\n" + model.getValue ( "/root/childbirthchkrec/rtndata[" + i + "]/checkmsg");
  611. // }
  612. // else if (sCheckCode == "ERROR"){
  613. // if(sCheckErrorMsg == "")
  614. // sCheckErrorMsg = model.getValue ( "/root/childbirthchkrec/rtndata[" + i + "]/checkmsg");
  615. // else
  616. // sCheckErrorMsg = sCheckErrorMsg + "\n" + model.getValue ( "/root/childbirthchkrec/rtndata[" + i + "]/checkmsg");
  617. // }
  618. // }
  619. for ( var i=0; i <= ds_rtndata.rowcount; i++ ) {
  620. var sCheckCode = ds_rtndata.getColumn(i,"checkcode");
  621. if(sCheckCode == "ALERT"){
  622. if(sCheckAlertMsg == "")
  623. sCheckAlertMsg = ds_rtndata.getColumn(i,"checkmsg");
  624. else
  625. sCheckAlertMsg = sCheckAlertMsg + "\n" + ds_rtndata.getColumn(i,"checkmsg");
  626. }
  627. else if (sCheckCode == "ERROR"){
  628. if(sCheckErrorMsg == "")
  629. sCheckErrorMsg = ds_rtndata.getColumn(i,"checkmsg");
  630. else
  631. sCheckErrorMsg = sCheckErrorMsg + "\n" + ds_rtndata.getColumn(i,"checkmsg");
  632. }
  633. }
  634. if (sCheckAlertMsg != ""){
  635. sCheckAlertMsg = "※ 제왕절개 분만 적정성 평가 관련 사항 ※\n\n분만수술 처방이 있는 산부인과 환자에 대해\n\n"
  636. + sCheckAlertMsg + "\n\n" + "해당 기록 작성 되지 않으면 퇴원 예고가 불가능 합니다."
  637. if(sysf_getUserInfo("dutplceinstcd") == "031")
  638. sCheckAlertMsg = sCheckAlertMsg + "\n" + "문의처: 심사실(6127)"
  639. else if(sysf_getUserInfo("dutplceinstcd") == "032")
  640. sCheckAlertMsg = sCheckAlertMsg + "\n" + "문의처: 심사실(2180)"
  641. sCheckAlertMsg = sCheckAlertMsg + "\n\n지금 작성"
  642. var selectedval = sysf_messageBox(sCheckAlertMsg, 'S001');
  643. if(selectedval == "6") { // 지금 작성 하면 서식을 팝업으로 뛰우고 "아니오" 선택 하면 그대로 처방 저장 진행
  644. //var formcd = model.getValue("/root/childbirthchkrec/rtndata[1]/checkformcd"); // 첫 행의 서식 팝업
  645. var formcd = ds_rtndata.getColumn(0,"checkformcd"); // 첫 행의 서식 팝업
  646. // var ioflag = model.getValue (sPAMINFOLIST + "/ioflag");
  647. // var orddeptcd = model.getValue (sPAMINFOLIST + "/orddeptcd");
  648. // var medispclid = model.getValue (sPAMINFOLIST + "/medispclid");
  649. // var orddeptnm = model.getValue (sPAMINFOLIST + "/orddeptnm");
  650. // var hngnm = model.getValue (sPAMINFOLIST + "/hngnm");
  651. // var sa = model.getValue (sPAMINFOLIST + "/sex") +"/"+ model.getValue (sPAMINFOLIST + "/age");
  652. // var roomcd = model.getValue (sPAMINFOLIST + "/roomcd");
  653. // var disparam = pid +"▦" + hngnm +"▦" + sa+"▦" + orddeptnm +"▦" + roomcd + "▦";
  654. var ioflag = ds_temp_paminfo.getColumn(0,"ioflag");
  655. var orddeptcd = ds_temp_paminfo.getColumn(0,"orddeptcd");
  656. var medispclid = ds_temp_paminfo.getColumn(0,"medispclid");
  657. var orddeptnm = ds_temp_paminfo.getColumn(0,"orddeptnm");
  658. var hngnm = ds_temp_paminfo.getColumn(0,"hngnm");
  659. var sa = ds_temp_paminfo.getColumn(0,"sex") +"/"+ ds_temp_paminfo.getColumn(0,"age");
  660. var roomcd = ds_temp_paminfo.getColumn(0,"roomcd");
  661. var disparam = pid +"▦" + hngnm +"▦" + sa+"▦" + orddeptnm +"▦" + roomcd + "▦";
  662. frmf_setParameter("pid", pid);
  663. frmf_setParameter("orddd", indd);
  664. frmf_setParameter("cretno", cretno);
  665. frmf_setParameter("ioflag", ioflag);
  666. frmf_setParameter("orddeptcd", orddeptcd);
  667. frmf_setParameter("orddrid", medispclid);
  668. frmf_setParameter("disppatinfo", disparam); //등록번호▦환자명▦성별/나이▦진료과▦병실▦
  669. frmf_setParameter("openmode", "newform"); //오픈모드는 “recform”
  670. frmf_setParameter("formcd", formcd);
  671. //modal("SSMMR01100", 1, 0, 0 ,"", "", "");
  672. frmf_modal("SSMMR01100","SSMMR01100","","",1,0,0,"","","","","","M");
  673. bRtn = false;
  674. }else if(selectedval == "2") { // 취소 선택
  675. bRtn = false;
  676. }else { // 아니오 선택
  677. bRtn = false;
  678. }
  679. } else {
  680. bRtn = true;
  681. }
  682. dsf_deleteDs("ds_childbirthchkrec_reqdata");
  683. }
  684. return bRtn;
  685. }
  686. /****************************************************************************************
  687. * Function : fCheckDschApoplexyRec
  688. * Description : 급성 뇌졸중 평가관련 GOS 기재 유무 확인(submit)
  689. * Argument :
  690. * :
  691. * return type : true, false
  692. * Creator : 엄영만 2013. 02. 27 심사실 김순애 파트장님 요청으로 2013년 3월 1일 이후 입원 환자 부터 퇴원 시 적용
  693. ****************************************************************************************/
  694. function fCheckDschApoplexyRec(){
  695. var bRtn = true;
  696. // var sIndd = model.getValue(sPAMINFOLIST + "/indd");
  697. // var sOrddeptcd = model.getValue(sPAMINFOLIST + "/orddeptcd");
  698. var sIndd = ds_temp_paminfo.getColumn(0,"indd");
  699. var sOrddeptcd = ds_temp_paminfo.getColumn(0,"orddeptcd");
  700. if (sIndd >= "20130301" && lf_ContainsHardCD("421", sOrddeptcd)) { // 퇴원예고시 뇌졸증 평가 관련 GOS 기록 체크 주진료과(신경외과)
  701. var sCheckErrorMsg = "";
  702. // var sPid = model.getValue(sPAMINFOLIST + "/pid");
  703. // var sCretNo = model.getValue(sPAMINFOLIST + "/cretno");
  704. var sPid = ds_temp_paminfo.getColumn(0,"pid");
  705. var sCretNo = ds_temp_paminfo.getColumn(0,"cretno");
  706. // model.makeValue("/root/dschapoplexyrec/reqdata/pid", sPid);
  707. // model.makeValue("/root/dschapoplexyrec/reqdata/indd", sIndd);
  708. // model.makeValue("/root/dschapoplexyrec/reqdata/cretno", sCretNo);
  709. dsf_createDs("ds_dschapoplexyrec_reqdata");
  710. dsf_makeValue(ds_dschapoplexyrec_reqdata,"pid" ,"string",sPid);
  711. dsf_makeValue(ds_dschapoplexyrec_reqdata,"indd" ,"string",sIndd);
  712. dsf_makeValue(ds_dschapoplexyrec_reqdata,"cretno","string",sCretNo);
  713. //submit("TRMMO00403", false);
  714. var oParam = {};
  715. oParam.id = "TRMMO00403";
  716. oParam.service = "prcpmngtapp.EtcPrcpMngt";
  717. oParam.method = "reqGetChkDschApoplexyRec";
  718. oParam.inds = "req=ds_dschapoplexyrec_reqdata";
  719. oParam.outds = "ds_rtndata=rtndata";
  720. oParam.async = false;
  721. oParam.callback = "";
  722. tranf_submit(oParam);
  723. //var sChkRecList = model.instances(0).selectNodes( "/root/dschapoplexyrec/rtndata" );
  724. // for ( var i=1; i <= sChkRecList.length; i++ ) {
  725. // sCheckErrorMsg = model.getValue ( "/root/dschapoplexyrec/rtndata[" + i + "]/checkmsg");
  726. // }
  727. for ( var i=0; i <= ds_rtndata.rowcount; i++ ) {
  728. sCheckErrorMsg = ds_rtndata.getColumn(i,"checkmsg");
  729. }
  730. if (sCheckErrorMsg != ""){
  731. sCheckErrorMsg = "※ 급성 뇌졸중 평가 관련 GOS 기재 요청 ※\n\n주 진단코드가 I60-I63인 신경외과 2013년 03월 이후 입원 환자에 대해\n\n" + sCheckErrorMsg + "\n\n" + "해당 기록 작성 후 퇴원예고가 가능 합니다."
  732. if(sysf_getUserInfo("dutplceinstcd") == "031")
  733. sCheckErrorMsg = sCheckErrorMsg + "\n" + "문의처: 심사실(6131)"
  734. else if(sysf_getUserInfo("dutplceinstcd") == "032")
  735. sCheckErrorMsg = sCheckErrorMsg + "\n" + "문의처: 심사실(2180)"
  736. sysf_messageBox(sCheckErrorMsg, 'E000');
  737. //var formcd = model.getValue("/root/dschapoplexyrec/rtndata[1]/checkformcd"); // 첫 행의 서식 팝업
  738. var formcd = ds_rtndata.getColumn(0,"checkformcd"); // 첫 행의 서식 팝업
  739. // var ioflag = model.getValue (sPAMINFOLIST + "/ioflag");
  740. // var medispclid = model.getValue (sPAMINFOLIST + "/medispclid");
  741. // var orddeptnm = model.getValue (sPAMINFOLIST + "/orddeptnm");
  742. // var hngnm = model.getValue (sPAMINFOLIST + "/hngnm");
  743. // var sa = model.getValue (sPAMINFOLIST + "/sex") +"/"+ model.getValue (sPAMINFOLIST + "/age");
  744. // var roomcd = model.getValue (sPAMINFOLIST + "/roomcd");
  745. // var disparam = sPid +"▦" + hngnm +"▦" + sa+"▦" + orddeptnm +"▦" + roomcd + "▦";
  746. var ioflag = ds_temp_paminfo.getColumn(0,"ioflag");
  747. var medispclid = ds_temp_paminfo.getColumn(0,"medispclid");
  748. var orddeptnm = ds_temp_paminfo.getColumn(0,"orddeptnm");
  749. var hngnm = ds_temp_paminfo.getColumn(0,"hngnm");
  750. var sa = ds_temp_paminfo.getColumn(0,"sex") +"/"+ ds_temp_paminfo.getColumn(0,"age");
  751. var roomcd = ds_temp_paminfo.getColumn(0,"roomcd");
  752. var disparam = sPid +"▦" + hngnm +"▦" + sa+"▦" + orddeptnm +"▦" + roomcd + "▦";
  753. frmf_setParameter("pid", sPid);
  754. frmf_setParameter("orddd", sIndd);
  755. frmf_setParameter("cretno", sCretNo);
  756. frmf_setParameter("ioflag", ioflag);
  757. frmf_setParameter("orddeptcd", sOrddeptcd);
  758. frmf_setParameter("orddrid", medispclid);
  759. frmf_setParameter("disppatinfo", disparam); //등록번호▦환자명▦성별/나이▦진료과▦병실▦
  760. frmf_setParameter("openmode", "newform"); //오픈모드는 “recform”
  761. frmf_setParameter("formcd", formcd);
  762. //modal("SSMMR01100", 1, 0, 0 ,"", "", "");
  763. frmf_modal("SSMMR01100","SSMMR01100","","",1,0,0,"","","","","","M");
  764. bRtn = false;
  765. } else {
  766. bRtn = true;
  767. }
  768. dsf_deleteDs("ds_dschapoplexyrec_reqdata");
  769. }
  770. return bRtn;
  771. }
  772. /****************************************************************************************
  773. * Function : fCheckDrgRecExist
  774. * Description : 퇴원예고시 DRG환자의 경우 DRG 질 점검표 작성 여부를 체크
  775. * Argument :
  776. * :
  777. * return type : true, false
  778. * Creator : 이정택 2013. 05. 03
  779. ****************************************************************************************/
  780. function fCheckDrgRecExist(){
  781. //var drgyn = getPatientInfoDetail("drgyn");
  782. // var sIndd = model.getValue(sPAMINFOLIST + "/indd");
  783. // var sPid = model.getValue(sPAMINFOLIST + "/pid");
  784. // var sCretNo = model.getValue(sPAMINFOLIST + "/cretno");
  785. var sIndd = ds_temp_paminfo.getColumn(0,"indd");
  786. var sPid = ds_temp_paminfo.getColumn(0,"pid");
  787. var sCretNo = ds_temp_paminfo.getColumn(0,"cretno");
  788. // model.makeValue("/root/send/reqdata/pid", sPid);
  789. // model.makeValue("/root/send/reqdata/indd", sIndd);
  790. // model.makeValue("/root/send/reqdata/cretno", sCretNo);
  791. dsf_createDs("ds_send_reqdata");
  792. dsf_makeValue(ds_send_reqdata,"pid" ,"string",sPid);
  793. dsf_makeValue(ds_send_reqdata,"indd" ,"string",sIndd);
  794. dsf_makeValue(ds_send_reqdata,"cretno" ,"string",sCretNo);
  795. // if(submit("TRMMO50002")){
  796. //
  797. // var existyn = model.getValue("/root/main/chkdrgrecexist/item/existyn");
  798. //
  799. // if(existyn=="Y"){ //작성 유
  800. // return true;
  801. // }else{ //작성 무
  802. // var sCheckAlertMsg = "DRG 환자로 DRG 질 점검표를 작성하지 않으면 \n";
  803. // sCheckAlertMsg += "퇴원 예고가 불가능 합니다.";
  804. //
  805. // sCheckAlertMsg = sCheckAlertMsg + "\n지금 작성"
  806. // var selectedval = messageBox(sCheckAlertMsg, 'S001');
  807. //
  808. // if(selectedval == "6") {
  809. // modal("SMMMR06900", 1, 0, 0 ,"", "", "");
  810. // }
  811. // return false;
  812. // }
  813. // }
  814. var oParam = {};
  815. oParam.id = "TRMMO50002";
  816. oParam.service = "prcpmngtapp.EtcPrcpMngt";
  817. oParam.method = "reqGetChkDrgRecExist";
  818. oParam.inds = "req=ds_send_reqdata";
  819. oParam.outds = "ds_rtndata=item";
  820. oParam.async = false;
  821. oParam.callback = "cf_TRMMO50002";
  822. tranf_submit(oParam);
  823. if(arErrorCode.pop("TRMMO50002") >= 0){
  824. //var existyn = model.getValue("/root/main/chkdrgrecexist/item/existyn");
  825. var existyn = ds_rtndata.getColumn(0,"existyn");
  826. if(existyn=="Y"){ //작성 유
  827. return true;
  828. }else{ //작성 무
  829. var sCheckAlertMsg = "DRG 환자로 DRG 질 점검표를 작성하지 않으면 \n";
  830. sCheckAlertMsg += "퇴원 예고가 불가능 합니다.";
  831. sCheckAlertMsg = sCheckAlertMsg + "\n지금 작성"
  832. var selectedval = sysf_messageBox(sCheckAlertMsg, 'S001');
  833. if(selectedval == "6") {
  834. //modal("SMMMR06900", 1, 0, 0 ,"", "", "");
  835. frmf_modal("SMMMR06900","SMMMR06900","","",1,0,0,"","","","","","M");
  836. }
  837. return false;
  838. }
  839. }
  840. dsf_deleteDs("ds_send_reqdata");
  841. }
  842. /****************************************************************************************
  843. * Function : cf_TRMMO50002
  844. * Description : TRMMO50002 콜백함수
  845. * Argument :
  846. * :
  847. * return type :
  848. * Creator :
  849. ****************************************************************************************/
  850. function cf_TRMMO50002(sSvcId, nErrorCode, sErrorMsg) {
  851. arErrorCode.push(sSvcId, nErrorCode);
  852. }
  853. /****************************************************************************************
  854. * Function : cf_TRMMO00121
  855. * Description : TRMMO00121 콜백함수
  856. * Argument :
  857. * :
  858. * return type :
  859. * Creator :
  860. ****************************************************************************************/
  861. function cf_TRMMO00121(sSvcId, nErrorCode, sErrorMsg) {
  862. if(nErrorCode > -1) {
  863. if( ds_savecncrhist.getColumn(0,"cncrhistyn") == "Y" ) {
  864. if( sysf_messageBox( ds_savecncrhist.getColumn(0,"cncrhistmsg") + " 주상병을 변경하고 특례", "Q009") == 6 ) {
  865. var ev = new ClickEventInfo;
  866. frmf_inputEnterKey("btn_close", "onclick", ev );
  867. return ; //blocking
  868. }
  869. //return ; blocking하진 않음.
  870. } else if( ds_serdiagermsg.getColumn(0,"serdiageryn") == "Y" ) {
  871. //20080102 마정민 수정: 중증응급 등록한자의 진단명 alert 변경요청번호 533
  872. sysf_messageBox( ds_serdiagermsg.getColumn(0,"serdiagermsg"), "I" ) ;
  873. //20080102 서소영 선생님 blocking처리 요청
  874. return;
  875. }
  876. if ( ds_diagrcdchkmsg.getColumn(0,"diagrcdchkyn") == "Y" ) {
  877. //응급실 퇴원 예고 시 주상병이 R코드인 경우 퇴원예고 블러킹 [요청번호 10232]
  878. sysf_messageBox( ds_diagrcdchkmsg.getColumn(0,"diagrcdchkmsg"), "I" ) ;
  879. var ev = new ClickEventInfo;
  880. frmf_inputEnterKey("btn_close", "onclick", ev );
  881. return ;
  882. }
  883. } else {
  884. return;
  885. }
  886. }
  887. /****************************************************************************************
  888. * Function : cf_TXMMO00401
  889. * Description : TXMMO00401 콜백함수
  890. * Argument :
  891. * :
  892. * return type :
  893. * Creator :
  894. ****************************************************************************************/
  895. function cf_TXMMO00401(sSvcId, nErrorCode, sErrorMsg) {
  896. arErrorCode.push(sSvcId, sErrorMsg);
  897. }
  898. /****************************************************************************************
  899. * Function : fInOutBrifEMRScrn
  900. * Description :
  901. * Argument :
  902. * :
  903. * return type :
  904. * Creator :
  905. ****************************************************************************************/
  906. function fInOutBrifEMRScrn() {
  907. var mainobj = frmf_getMainViewer();
  908. var mainscrnid = mainobj.frmf_getScreenID(); //메인화면의 기록지 ID
  909. curFormLoaderObj = frmf_findPopup("SSMMR01100"); //활성화된 서식로더창 체크
  910. if(curFormLoaderObj != null){ //서식로더 Close : 2009-06-03 : 이상현 D/L 요청 : 김영학 ;
  911. curFormLoaderObj.fClose();
  912. } //서식로더 close()
  913. if(mainobj != null){
  914. var wndid = "SMMMR00100"; //진료기록화면이 default
  915. if(mainscrnid == wndid){
  916. mainobj.fOpenNewForm("0000000680");
  917. }
  918. }
  919. }
  920. /****************************************************************************************
  921. * Function : fInProgressEMRScrn
  922. * Description : 경과기록을 Open 한다.
  923. * Argument :
  924. * :
  925. * return type :
  926. * Creator :
  927. ****************************************************************************************/
  928. function fInProgressEMRScrn () {
  929. var mainobj = frmf_getMainViewer();
  930. var mainscrnid = mainobj.frmf_getScreenID(); //메인화면의 기록지 ID
  931. curFormLoaderObj = frmf_findPopup("SSMMR01100"); //활성화된 서식로더창 체크
  932. if(curFormLoaderObj != null){ //서식로더 Close : 2009-06-03 : 이상현 D/L 요청 : 김영학 ;
  933. curFormLoaderObj.fClose();
  934. } //서식로더 close()
  935. if(mainobj != null){
  936. var wndid = "SMMMR00100"; //진료기록화면이 default
  937. if(mainscrnid == wndid){
  938. mainobj.fOpenNewForm("0900006893");
  939. }
  940. }
  941. }
  942. /****************************************************************************************
  943. * Function : fOpenInReq
  944. * Description : 입원의뢰서 화면 open.
  945. * Argument :
  946. * :
  947. * return type :
  948. * Creator :
  949. ****************************************************************************************/
  950. function fOpenInReq(){
  951. // var param = model.getValue("/root/temp/paminfo/list/pid") + "▦" +
  952. // model.getValue("/root/temp/paminfo/list/hngnm") + "▦" +
  953. // model.getValue("/root/temp/paminfo/list/orddeptcd") + "▦" +
  954. // model.getValue("/root/temp/paminfo/list/orddrid") + "▦" +
  955. // model.getValue("/root/temp/paminfo/list/insukind") + "▦" +
  956. // model.getValue("/root/temp/paminfo/list/suppkind") + "▦" +
  957. // model.getValue("/root/temp/paminfo/list/indd") + "▦" +
  958. // model.getValue("/root/temp/paminfo/list/cretno") + "▦" +
  959. // "I";
  960. var param = ds_temp_paminfo.getColumn(0,"pid") + "▦" +
  961. ds_temp_paminfo.getColumn(0,"hngnm") + "▦" +
  962. ds_temp_paminfo.getColumn(0,"orddeptcd") + "▦" +
  963. ds_temp_paminfo.getColumn(0,"orddrid") + "▦" +
  964. ds_temp_paminfo.getColumn(0,"insukind") + "▦" +
  965. ds_temp_paminfo.getColumn(0,"suppkind") + "▦" +
  966. ds_temp_paminfo.getColumn(0,"indd") + "▦" +
  967. ds_temp_paminfo.getColumn(0,"cretno") + "▦" +
  968. "I";
  969. frmf_setParameter("SPMMO00100_param", param);
  970. //fPrcpModal("SPMMO00100", 100, 40);
  971. frmf_modal("SPMMO00100", "SPMMO00100", "", "", "", 100, 40, "", "", "", "", "", "M");
  972. }
  973. /****************************************************************************************
  974. * Function : fOpenOrdRsrv
  975. * Description : 재진예약 화면 open
  976. * Argument :
  977. * :
  978. * return type :
  979. * Creator :
  980. ****************************************************************************************/
  981. function fOpenOrdRsrv(){
  982. frmf_setParameter("SMPMO00300_PARAM1", ds_temp_paminfo.getColumn(0,"orddeptcd")); //model.getValue("/root/temp/paminfo/list/orddeptcd")); //진료과코드
  983. frmf_setParameter("SMPMO00300_PARAM2", ds_temp_paminfo.getColumn(0,"orddrid")); //model.getValue("/root/temp/paminfo/list/orddrid")); //진료의ID
  984. frmf_setParameter("SMPMO00300_PARAM3", ds_temp_paminfo.getColumn(0,"pid")); //model.getValue("/root/temp/paminfo/list/pid")); //등록번호
  985. //fPrcpModal("SMPMO00300", 0, 80);
  986. frmf_modal("SMPMO00300", "SMPMO00300", "", "", "", 0, 80, "", "", "", "", "", "M");
  987. }]]></Script>