SMMMO04200.xjs 61 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <Script type="xscript4.0"><![CDATA[/*
  3. - ▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩
  4. 외래환자리스트 ( SMMMO04200_외래환자리스트.xfdl - JScript )
  5. - ▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩
  6. */
  7. var arErrorCode = new HashArray();
  8. /**
  9. * @desc : 화면 초기화
  10. * @
  11. * @param :
  12. * @return :
  13. * @author : 오지훈
  14. * @---------------------------------------------------
  15. */
  16. function fInitialize_SMMMO04200() {
  17. ds_cond.setColumn(0, "orddd", utlf_getCurrentDate());
  18. // 75 당일 선결과 사용 유무조회
  19. // 95 보호자대진 적용여부
  20. // 191 진료대상자 외래 마우스 오른쪽 버튼 메뉴 설정을 위한 값 조회
  21. // 134 20091007 JJE 추가 : 주진료과 의사가 진료지원과의 선택진료의사 선택 여부 조회
  22. // 135 당일 선결과 사용 유무조회
  23. lf_gethardcdArrayList(new Array(
  24. "dayaftrcptyn|75",
  25. "patprotector|95",
  26. "menu|191",
  27. "selspecordyn|134",
  28. "ordordershow|135",
  29. "hardcd|445"
  30. ),
  31. new Array(
  32. "ds_dayaftrcptyn",
  33. "ds_patprotector",
  34. "ds_menu",
  35. "ds_selspecordyn",
  36. "ds_ordordershow",
  37. "ds_hardcd"
  38. )
  39. );
  40. frmf_createPopupMenuDs("pmn_menu", "pmn_menu_onmenuclick", ds_menu);
  41. appf_getCodeList([{dsNm: "ds_M0062", cdGrpId: "M0062"}
  42. , {dsNm: "ds_P0008", cdGrpId: "P0008"}
  43. , {dsNm: "ds_P0021", cdGrpId: "P0021"}
  44. , {dsNm: "ds_P0022", cdGrpId: "P0022"}
  45. , {dsNm: "ds_P1059", cdGrpId: "P1059"}
  46. , {dsNm: "ds_P0341", cdGrpId: "P0341"}
  47. , {dsNm: "ds_M0525", cdGrpId: "M0525"}
  48. , {dsNm: "ds_M0623", cdGrpId: "M0623"}], true);
  49. var dutplcecd = sysf_getUserInfo("dutplcecd");
  50. var orddrid = sysf_getUserInfo("userid");
  51. var reopenflag = parent.parent.ds_reopen.getColumn(0, "reopenflag"); //진료대상자 리스트 open여부
  52. if(reopenflag == "Y"){ //다시 열린 경우, main에 ordtab의 condlist(화면이 닫힐때 설정된 정보)를 그대로 재설정
  53. try {
  54. ds_cond.copyData(parent.parent.ds_reopen_condlist);
  55. dutplcecd = ds_cond.getColumn(0, "orddeptcd");
  56. orddrid = ds_cond.getColumn(0, "orddrid");
  57. } catch(E) {
  58. }
  59. parent.parent.ds_reopen.setColumn(0, "reopenflag", "N");
  60. } else {
  61. var sUserEnv057 = lf_mmbfGetUserEnvQuestValue("057"); // 진료대상자 외래탭 지연환자 표시여부
  62. if(sUserEnv057 == "001") { // 지연환자 표시일경우
  63. var sUserEnv058 = lf_mmbfGetUserEnvQuestValue("058"); // 진료대상자 외래탭 지연환자 지연시간
  64. var sUserEnv059 = lf_mmbfGetUserEnvQuestValue("059"); // 진료대상자 외래탭 지연환자 지연 제외시간
  65. if(sUserEnv058 == "001") { ds_cond.setColumn(0, "delaytime", "10");
  66. } else if(sUserEnv058 == "002") { ds_cond.setColumn(0, "delaytime", "20");
  67. } else if(sUserEnv058 == "003") { ds_cond.setColumn(0, "delaytime", "30");
  68. } else if(sUserEnv058 == "004") { ds_cond.setColumn(0, "delaytime", "40");
  69. } else if(sUserEnv058 == "005") { ds_cond.setColumn(0, "delaytime", "50");
  70. } else if(sUserEnv058 == "006") { ds_cond.setColumn(0, "delaytime", "60");
  71. } else { ds_cond.setColumn(0, "delaytime", "30");
  72. }
  73. if(sUserEnv059 == "001") { ds_cond.setColumn(0, "delayexpt", "0");
  74. } else if(sUserEnv059 == "002") { ds_cond.setColumn(0, "delayexpt", "10");
  75. } else if(sUserEnv059 == "003") { ds_cond.setColumn(0, "delayexpt", "20");
  76. } else if(sUserEnv059 == "004") { ds_cond.setColumn(0, "delayexpt", "30");
  77. } else { ds_cond.setColumn(0, "delayexpt", "10");
  78. }
  79. ds_cond.setColumn(0, "delayflag" , "Y");
  80. } else {
  81. ds_cond.setColumn(0, "delayflag" , "N");
  82. }
  83. }
  84. setDeptCodeList(dutplcecd);
  85. setUserList(dutplcecd, orddrid);
  86. reqOrderInfoOfCol(ds_reqdata1, ds_gridseq, "SMMMO04200", grd_outpatlist); //외래환자리스트 컬럼 조회 및 설정
  87. if(Div00.chk_speedflag.value == "Y")
  88. fGrdInit();
  89. fReqOutPatList();
  90. }
  91. function setDeptCodeList(sDeptcd, sOrddd){
  92. lf_mmbfGetDeptCodeComboList(ds_orddept, "O", sOrddd);
  93. if(!utlf_isNull(sDeptcd))
  94. Div00.cmb_orddeptcd.value = sDeptcd;
  95. }
  96. function setUserList(sOrddeptcd, sUserid, sOrddd){
  97. lf_mmbfGetUserComboList(ds_userlist, sOrddeptcd, "0330", "", "", sOrddd);
  98. frmf_addComboItem("Div00.cmb_orddrid"); //의사콤보 전체항목 추가
  99. if(utlf_isNull(sUserid)) {
  100. Div00.cmb_orddrid.index = 1;
  101. Div00.cmb_orddrid.updateToDataset();
  102. } else {
  103. Div00.cmb_orddrid.value = sUserid;
  104. }
  105. }
  106. /**
  107. * @desc : 외래환자 환자 기본정보설정
  108. * @
  109. * @param :
  110. * @return :
  111. * @author : 오지훈
  112. * @---------------------------------------------------
  113. */
  114. function fReqOutPatPamInfo(){
  115. var iRow = ds_outpatlist.rowposition;
  116. var pid = ds_outpatlist.getColumn(iRow, "pid");
  117. var orddd = ds_outpatlist.getColumn(iRow, "orddd");
  118. var cretno = ds_outpatlist.getColumn(iRow, "cretno");
  119. var instcd = ds_outpatlist.getColumn(iRow, "instcd");
  120. var param = "O" + "▦" + pid + "▦" + orddd + "▦" + cretno + "▦" + instcd;
  121. return appf_initPatientInfo(param);
  122. }
  123. /**
  124. * @desc : (외래)관심환자등록창 호출
  125. * @
  126. * @param :
  127. * @return :
  128. * @author : 오지훈
  129. * @---------------------------------------------------
  130. */
  131. function fCallWndConcPatRgst(){
  132. var currow = ds_outpatlist.rowposition;
  133. var pid = ds_outpatlist.getColumn(currow, "pid");
  134. var hngnm = ds_outpatlist.getColumn(currow, "hngnm");
  135. var indd = ds_outpatlist.getColumn(currow, "orddd");
  136. var cretno = ds_outpatlist.getColumn(currow, "cretno");
  137. var seqno = "";//ds_outpatlist.getColumn(currow, "seqno");
  138. var instcd = ds_outpatlist.getColumn(currow, "instcd");
  139. var elbulbodstat = ds_outpatlist.getColumn(currow, "elbulbodstat");
  140. if ( elbulbodstat == "9" ) {
  141. sysf_messageBox("미접수환자는 진행이 불가능 합니다.","E");
  142. return;
  143. }
  144. var param = "I" + "▩" + pid + "▩" + hngnm + "▩" + indd + "▩" + cretno + "▩" + seqno + "▩" + instcd;
  145. frmf_setParameter("param", param);
  146. frmf_open("SPMMO08200", "SPMMO08200", null, null, null, null, null, null, null, null, null, null, "M");
  147. //frmf_modal("SPMMO08200", "SPMMO08200", null, null, null, null, null, null, null, null, null, null, "M");
  148. //fReqOutPatList();
  149. }
  150. /**
  151. * @desc : (외래)주의요망환자창 호출
  152. * @
  153. * @param :
  154. * @return :
  155. * @author : 엄영만
  156. * @---------------------------------------------------
  157. */
  158. function fCallWndWarnPat(){
  159. var nCurRow = ds_outpatlist.rowposition;
  160. var sPid = ds_outpatlist.getColumn(nCurRow, "pid");
  161. var sHngnm = ds_outpatlist.getColumn(nCurRow, "hngnm");
  162. frmf_setParameter("SMMMO19100_warncd", sPid);
  163. frmf_setParameter("SMMMO19100_warnnm", sHngnm);
  164. frmf_modal("SMMMO19100", "SMMMO19100", null, null, null, null, null, null, null, null, null, null, "M");
  165. frmf_clearParameter("SMMMO19100_warncd");
  166. frmf_clearParameter("SMMMO19100_warnnm");
  167. fReqOutPatList();
  168. }
  169. /**
  170. * @desc : 외래환자 조회
  171. * @
  172. * @param :
  173. * @return :
  174. * @author : 오지훈
  175. * @---------------------------------------------------
  176. */
  177. function fReqOutPatList() {
  178. parent.parent.ds_cond_outpatlist.copyData(ds_cond);
  179. ds_reqOutPat.copyData(ds_cond);
  180. var compsrefcnts = ds_gridseq.getColumn(0, "compsrefcnts");
  181. var compssizecnts = ds_gridseq.getColumn(0, "compssizecnts");
  182. if(utlf_isNull(compsrefcnts)) compsrefcnts = "";
  183. if(utlf_isNull(compssizecnts)) compssizecnts = "";
  184. ds_reqOutPat.addColumn("compsrefcnts", "string", 1024);
  185. ds_reqOutPat.addColumn("compssizecnts", "string", 1024);
  186. ds_reqOutPat.setColumn(0, "compsrefcnts", compsrefcnts);
  187. ds_reqOutPat.setColumn(0, "compssizecnts", compssizecnts);
  188. ds_outpatlist.enableevent = false;
  189. if(!utlf_isNull(ds_outpatlist.getColumnInfo("sexage")))
  190. ds_outpatlist.updateColID("sexage", "sa");
  191. var oParam = {};
  192. oParam.id = "TRMMO04201";
  193. oParam.service = "prcpmngtapp.EtcPrcpMngt";
  194. oParam.method = "reqGetOutPatList";
  195. oParam.inds = "req=" + "ds_reqOutPat";
  196. oParam.outds = "ds_outpatlist=outpatlist" + " ds_hardcode=hardcode" + " ds_totcnt=totcnt";
  197. oParam.async = true;
  198. oParam.callback = "cf_TRMMO04201";
  199. tranf_submit(oParam);
  200. }
  201. function cf_TRMMO04201(sSvcId, nErrorCode, sErrorMsg) {
  202. if(!utlf_isNull(ds_outpatlist.getColumnInfo("sa")))
  203. ds_outpatlist.updateColID("sa", "sexage");
  204. if(nErrorCode > -1) {
  205. fProcTreatExpt(); //치료제외 삭제 및 숨김처리
  206. }
  207. var orderby = ds_cond.getColumn(0, "orderby");
  208. var sortcol = ds_cond.getColumn(0, "sortcol");
  209. if(!utlf_isNull(orderby) && !utlf_isNull(sortcol))
  210. ds_outpatlist.keystring.current = "S:" + orderby + sortcol;
  211. ds_cond.setColumn(0, "rsltcnt", ds_outpatlist.rowcount);
  212. ds_cond.setColumn(0, "totcnt", ds_totcnt.getColumn(0, "totcnt"));
  213. ds_outpatlist.enableevent = true;
  214. //치과 장애인센터 질병 정보 추가시 항목 아이콘 보이도록 추가.
  215. for(var i=0;i<ds_outpatlist.rowcount;i++)
  216. {
  217. if(ds_outpatlist.getColumn(i,"handiillness") == "Y")
  218. {
  219. ds_outpatlist.setColumn(i,"handidentalimg","IMG::emr\\MR\\tree3.png");
  220. }
  221. }
  222. }
  223. /**
  224. * @desc : 환자 선택 후, 환자 정보 조회 및 기록지 화면 연동
  225. * @
  226. * @param :
  227. * @return :
  228. * @author : 오지훈
  229. * @---------------------------------------------------
  230. */
  231. function fSelectOutPat(){
  232. //utlf_startLogCheck("fSelectOutPat");
  233. var step1Elapsed = 0; // 외래 환자선택 진행 가능여부 체크 시간
  234. var step2Elapsed = 0; // 입원 환자선택 상단정보 설정 시간
  235. var step3Elapsed = 0; // 처방+기록+그외 팝업창 처리
  236. utlf_addLog("환자 클릭 시간 체크 시작");
  237. //model.addlog("SPEED CHECK START OF fSelectOutPat()");
  238. var nRow = ds_outpatlist.rowposition;
  239. if(nRow < 0){ return bRtn; }
  240. var elbulbodstat = ds_outpatlist.getColumn(nRow, "elbulbodstat");
  241. if ( elbulbodstat == "9" ) {
  242. sysf_messageBox("미접수환자는 진행이 불가능 합니다.","E");
  243. return;
  244. }
  245. //var reqptype = ds_outpatlist.getColumn(nRow, "reqptype"); // 해당 컬럼 없음
  246. var pid = ds_outpatlist.getColumn(nRow, "pid");
  247. var recflag = parent.parent.SMMMO04100_getDSMainCond("recflag");
  248. //parent.parent.frmf_setParameter("SMMMO04100_reqptype", reqptype);
  249. // 진행가능 한지 여부 체크
  250. //utlf_startLogTempCheck("fSelectOutPat_Step1");
  251. //model.addlog(" SPEED CHECK START OF fCheckBfSelectOutPat()");
  252. utlf_addLog("진행가능 한지 여부 체크 시작, fCheckBfSelectOutPat()");
  253. if(!fCheckBfSelectOutPat()) { return; }
  254. utlf_addLog("진행가능 한지 여부 체크 종료, fCheckBfSelectOutPat()");
  255. //step1Elapsed = utlf_endLogTempCheck("fSelectOutPat_Step1");
  256. //model.addlog(" SPEED CHECK END OF fCheckBfSelectOutPat()");
  257. //20150717
  258. /*
  259. //기록&처방화면 로딩
  260. this.parent.parent.lf_loadRecAndPrcpWnd();
  261. */
  262. //20150717 /*
  263. // 상단정보 설정
  264. //model.addlog(" SPEED CHECK START OF fReqOutPatPamInfo()");
  265. //utlf_startLogTempCheck("fSelectOutPat_Step2");
  266. utlf_addLog("상단정보 설정 시작, fReqOutPatPamInfo()");
  267. if(!fReqOutPatPamInfo()) { return; }
  268. utlf_addLog("상단정보 설정 종료, fReqOutPatPamInfo()");
  269. //step2Elapsed = utlf_endLogTempCheck("fSelectOutPat_Step2");
  270. //model.addlog(" SPEED CHECK END OF fReqOutPatPamInfo()");
  271. // 진료기록, 처방화면 연동
  272. //model.addlog(" SPEED CHECK START OF fOpenPrcpMainWnd()");
  273. // utlf_startLogTempCheck("fSelectOutPat_Step3");
  274. utlf_addLog("진료기록, 처방화면 연동 시작");
  275. parent.parent.fOpenPrcpMainWnd(recflag);
  276. //step3Elapsed = utlf_endLogTempCheck("fSelectOutPat_Step3");
  277. //20150717 */
  278. utlf_addLog("진료기록, 처방화면 연동 종료");
  279. //model.addlog(" SPEED CHECK END OF fOpenPrcpMainWnd()");
  280. utlf_addLog("환자 클릭 시간 체크 종료");
  281. /*
  282. if(!utlf_isNull(frmf_findPopup("SMMMO00100"))){
  283. var sLogParam = "userid:" + sysf_getUserInfo("userid") + "|" // item02
  284. + "instcd:" + ds_outpatlist.getColumn(nRow,"instcd") + "|" // item03
  285. + "pid:" + ds_outpatlist.getColumn(nRow,"pid") + "|" // item04
  286. + "orddd:" + ds_outpatlist.getColumn(nRow,"orddd") + "|" // item05
  287. + "cretno:" + ds_outpatlist.getColumn(nRow,"cretno") + "|" // item06
  288. + "orddeptcd:" + ds_outpatlist.getColumn(nRow,"orddeptcd") + "|" // item07
  289. + "orddrid:" + ds_outpatlist.getColumn(nRow,"orddrid") + "|" // item08
  290. + step1Elapsed + "|" // 진행가능 한지 여부 체크 // item09
  291. + step2Elapsed + "|" // 상단정보 // item10
  292. + step3Elapsed // 처방+기록+그외 팝업창 처리 // item11
  293. ;
  294. utlf_endLogCheck("fSelectOutPat", sLogParam);
  295. }
  296. */
  297. //model.addlog("SPEED CHECK END OF fSelectOutPat()");
  298. }
  299. /**
  300. * @desc : 외래 환자 선택후 진행 가능여부 체크 및 메세지 창 팝업.
  301. * @
  302. * @param :
  303. * @return :
  304. * @author : 엄영만
  305. * @---------------------------------------------------
  306. */
  307. function fCheckBfSelectOutPat() {
  308. var nRow = ds_outpatlist.rowposition;
  309. var rsrvflag = ds_outpatlist.getColumn(nRow, "rsrvflag");
  310. var etcordflag = ds_outpatlist.getColumn(nRow, "etcordflag");
  311. var orddrid = ds_outpatlist.getColumn(nRow, "orddrid");
  312. var orddd = ds_outpatlist.getColumn(nRow, "orddd");
  313. var pid = ds_outpatlist.getColumn(nRow, "pid");
  314. var hngnm = ds_outpatlist.getColumn(nRow, "hngnm");
  315. var bfjudgvalue = ds_outpatlist.getColumn(nRow, "bfjudgvalue");
  316. var sSameNameMsg = ds_outpatlist.getColumn(nRow, "samenamemsg");
  317. var sElbulbodStat = ds_outpatlist.getColumn(nRow, "elbulbodstat");
  318. var sOrdStartDt = ds_outpatlist.getColumn(nRow, "ordstartdt");
  319. if( sysf_getGlobalVariable("able_sel_patlist", "M") == "N" ) { // 환자 선택 가능 여부 체크 2012.09.03 엄영만
  320. sysf_messageBox("현재 로그인한 '"+ sysf_getUserInfo("dutplcenm") +"' 부서는 기록저장 및 처방발행이 불가능한 부서 입니다.\n\n다시 로그인 후 진행 하십시오.","E");
  321. return false;
  322. }
  323. var sUseCommonDr = lf_getHardCDList("Y", 314, 3); // 일반의 진료 사용 여부
  324. if((orddd >= '20111001') && (sUseCommonDr == "N") && (orddrid == "11111" || orddrid == "EMR") && sysf_getUserId() != "EMR" ){
  325. sysf_messageBox("일반의사 또는 EⓐR로 접수된 예약은 처방을 입력할 수 없습니다.\n\n진료의사를 변경후 진행 하십시오.","E");
  326. return false;
  327. }
  328. var sBfjudgContinue = lf_getHardCDList("Y", 334, 3); // 심사대기 환자선택시 진행 여부(본원:N, 칠곡:Y)
  329. if(sBfjudgContinue == "N" && bfjudgvalue == "심사대기") { // 사전심사 대기중 일경우 환자 선택 불가능 하도록 수정. 심사실요청(20120707012) 2012.07.30 엄영만
  330. sysf_messageBox("사전심사가 진행중인 환자입니다.\n\n심사 완료 후 진행 하십시오.","E");
  331. return false;
  332. }
  333. /* 처방 입력 가능 여부 체크
  334. -rsrvflag(예약구분)
  335. S - 슬라이드복사
  336. P - 시행부서처방/APU
  337. 3 - 진단서
  338. 4 - 진료기록
  339. -etcordflag(기타구분)
  340. M - 물리치료
  341. J - 주사
  342. N - 가정간호
  343. E - 실시정산분리
  344. U - 심층진찰
  345. */
  346. if(rsrvflag == "S" || rsrvflag == "3" || rsrvflag == "4" || etcordflag == "E"){ // 주사, 물리치료 제외 특례적용을 위해 진단을 수정 해야 하는 경우가 있음.
  347. sysf_messageBox("진료에서 처방을 입력할 수 없는 예약구분입니다.","E");
  348. return false;
  349. }
  350. if( etcordflag == "U" && orddd == utlf_getCurrentDate() && orddrid == sysf_getUserInfo("userid") && sElbulbodStat == "1" && utlf_isNull(sOrdStartDt) ){ // 심층진찰 시작 여부 팝업
  351. if( "6" != sysf_messageBox("심층진찰 환자입니다. 진료를 시작 하시겠습니까?","Q")) {
  352. return false;
  353. }
  354. }
  355. //처방, CP화면에 modal 또는 modaless가 뜬 경우, 환자 선택 불가
  356. if(!fChkScrnDisable()){ return false; }
  357. //CP환자 여부 확인, update시 에러나면 변경 불가
  358. if(!fChkCPPatValid(nRow)){ return false; }
  359. // 진료기록에 수정된 사항이 있을 경우 저장할 것인지 묻는 함수 호출 : 2009. 07. 27 김영학
  360. var mainobj = frmf_getMainViewer();
  361. var mainscrnid = mainobj.frmf_getScreenID(); //메인화면의 기록지 ID
  362. if(mainscrnid == "SMMMR00100"){
  363. var prvIntRecPamInfRtn = mainobj.fPrevInitRecPamInfo();
  364. if(!prvIntRecPamInfRtn){ return false; } // 기록지에 필수 입력사항을 입력하지 않았을 때 그냥 넘어가 버리는 오류 수정 20100305 LYJ
  365. }
  366. if(!utlf_isNull(sSameNameMsg)) { // 동명이인 팝업메세지
  367. var optFont = {size:9}; // {color : "#0000ff", size : 10, type : "bold"}; // 폰트 옵션(색상, 크기, 타입(bold italic)) 추가
  368. if("6" != sysf_messageBox(sSameNameMsg + "\n\n진행하시겠습니까?", "Q", "", optFont)) {
  369. return false;
  370. }
  371. }
  372. //2011.09.07 엄영만 환자 클릭시 환자정보 체크 SMMMO04100.js 파일 함수 호출 ioflag, pid 인자
  373. if(!fCheckSelectPatInfo("O", pid)){ return false; }
  374. return true;
  375. }
  376. /**
  377. * @desc : 보호자대진 적용, 취소(외래등록 tbl에 etcordflag설정)
  378. * @
  379. * @param : sEtcOrdFlag - 'F' 보호자대진 적용
  380. * : - '-' 보호자대진 취소
  381. * @return :
  382. * @author : 오지훈
  383. * @---------------------------------------------------
  384. */
  385. function fUpdtOutPatPamInfo(sEtcOrdFlag){
  386. var iRow = ds_outpatlist.rowposition;
  387. if(iRow < 0){
  388. return;
  389. }
  390. //20100127 한재상 수정 - 초진은 보호자대진 적용불가.
  391. if ( sEtcOrdFlag == "F" &&
  392. ( ds_outpatlist.getColumn(iRow, "fsexamflag") == "D" ||
  393. ds_outpatlist.getColumn(iRow, "fsexamflag") == "F" ) ) {
  394. sysf_messageBox("초진환자는 보호자 대진적용이 불가능합니다.", "C");
  395. return;
  396. }
  397. var sPID = ds_outpatlist.getColumn(iRow, "pid");
  398. var sOrdDD = ds_outpatlist.getColumn(iRow, "orddd");
  399. var sCretNO = ds_outpatlist.getColumn(iRow, "cretno");
  400. var sInstCD = ds_outpatlist.getColumn(iRow, "instcd");
  401. var sAcptSeqNO = ds_outpatlist.getColumn(iRow, "acptseqno");
  402. var sEtcOrdFlag2= ds_outpatlist.getColumn(iRow, "etcordflag");
  403. var sHngNM = ds_outpatlist.getColumn(iRow, "hngnm");
  404. var sUserID = sysf_getUserInfo("userid");
  405. var sUserDeptCD = sysf_getUserInfo("dutplcecd");
  406. var msgstr = "";
  407. if(sEtcOrdFlag == "C"){
  408. sProcFlag = "C"; //진료취소인 경우 sProcFlag C로 처리
  409. }else if(sEtcOrdFlag == "-"){ //보호자 대진 취소
  410. //20200224 : 보호자 대진 취소시 전화진료 적용 취소 불가
  411. if(sEtcOrdFlag2 == "AA"){
  412. sysf_messageBox("[" + sHngNM + "]환자는 전화상담•처방을 적용한 환자", "E008");
  413. return;
  414. }
  415. else if(sEtcOrdFlag2 == "AB"){
  416. sysf_messageBox("[" + sHngNM + "]환자는 전화상담•처방을 완료한 환자", "E008");
  417. return;
  418. } else {
  419. msgstr = "취소를";
  420. sProcFlag = "P";
  421. }
  422. var rtnval = sysf_messageBox("[" + sHngNM + "]환자의 보호자 대진 " + msgstr, "Q004");
  423. if(rtnval == 7){ //취소 버튼을 클릭한 경우
  424. return;
  425. }
  426. }else if(sEtcOrdFlag == "F"){ //보호자 대진 적용
  427. if(sEtcOrdFlag2 == "F"){
  428. sysf_messageBox("[" + sHngNM + "]환자는 이미 보호자 대진 적용환자", "E008");
  429. return;
  430. }
  431. //20200224 : 전화 진료 적용 환자는 보호자 대진 적용 불가
  432. else if(sEtcOrdFlag2 == "AA"){
  433. sysf_messageBox("[" + sHngNM + "]환자는 전화상담•처방을 적용한 환자", "E008");
  434. return;
  435. }
  436. else if(sEtcOrdFlag2 == "AB"){
  437. sysf_messageBox("[" + sHngNM + "]환자는 전화상담•처방을 완료한 환자", "E008");
  438. return;
  439. }
  440. else{
  441. msgstr = "적용을";
  442. sProcFlag = "P";
  443. }
  444. var rtnval = sysf_messageBox("[" + sHngNM + "]환자의 보호자 대진 " + msgstr, "Q004");
  445. if(rtnval == 7){ //취소 버튼을 클릭한 경우
  446. return;
  447. }
  448. }
  449. ds_savedata_save.clearData();
  450. ds_savedata_save.addRow();
  451. ds_savedata_save.setColumn(0, "pid", sPID);
  452. ds_savedata_save.setColumn(0, "orddd", sOrdDD);
  453. ds_savedata_save.setColumn(0, "cretno", sCretNO);
  454. ds_savedata_save.setColumn(0, "instcd", sInstCD);
  455. ds_savedata_save.setColumn(0, "acptseqno", sAcptSeqNO);
  456. ds_savedata_save.setColumn(0, "userid", sUserID);
  457. ds_savedata_save.setColumn(0, "etcordflag", sEtcOrdFlag);
  458. ds_savedata_save.setColumn(0, "userdeptcd", sUserDeptCD);
  459. ds_savedata_save.setColumn(0, "procflag", sProcFlag);
  460. ds_savedata_save.setColumn(0, "gubun", "DOC");
  461. ds_savedata_req.clearData();
  462. ds_savedata_req.addRow();
  463. ds_savedata_req.setColumn(0, "orddd", ds_cond.getColumn(0, "orddd"));
  464. ds_savedata_req.setColumn(0, "pid", ds_cond.getColumn(0, "pid"));
  465. ds_savedata_req.setColumn(0, "orddeptcd", ds_cond.getColumn(0, "orddeptcd"));
  466. ds_savedata_req.setColumn(0, "orddrid", ds_cond.getColumn(0, "orddrid"));
  467. ds_savedata_req.setColumn(0, "elbulbodstat", ds_cond.getColumn(0, "elbulbodstat"));
  468. ds_savedata_req.setColumn(0, "srchdd", ds_cond.getColumn(0, "orddd"));
  469. ds_savedata_req.setColumn(0, "deptflag", ds_cond.getColumn(0, "deptflag"));
  470. ds_outpatlist.enableevent = false;
  471. if(!utlf_isNull(ds_outpatlist.getColumnInfo("sexage")))
  472. ds_outpatlist.updateColID("sexage", "sa");
  473. var oParam = {};
  474. oParam.id = "TXMMO04201";
  475. oParam.service = "prcpmngtapp.EtcPrcpMngt";
  476. oParam.method = "reqSetOutPatPamInfo";
  477. oParam.inds = "save=" + "ds_savedata_save" + " req=" + "ds_savedata_req";
  478. oParam.outds = "ds_outpatlist=outpatlist";
  479. oParam.async = false;
  480. tranf_submit(oParam);
  481. if(!utlf_isNull(ds_outpatlist.getColumnInfo("sa")))
  482. ds_outpatlist.updateColID("sa", "sexage");
  483. ds_outpatlist.enableevent = true;
  484. }
  485. /**
  486. * @desc : 보호자대진 적용
  487. * @
  488. * @param : sEtcOrdFlag - 'F' 보호자대진 적용
  489. *
  490. * @return :
  491. * @author : 오지훈
  492. * @---------------------------------------------------
  493. */
  494. function fRgstPatProtector(){
  495. var currow = ds_outpatlist.rowposition;
  496. if(currow < 0){
  497. return;
  498. }
  499. //마우스 오른쪽버튼 팝업에서 parameter처리가 되지 않아 우선 함수로 나누어 처리, 차후 수정되면 변경예정
  500. var elbulbodstat = ds_outpatlist.getColumn(currow, "elbulbodstat");
  501. if ( elbulbodstat == "9" ) {
  502. sysf_messageBox("미접수환자는 진행이 불가능 합니다.","E");
  503. return;
  504. }
  505. fUpdtOutPatPamInfo("F");
  506. }
  507. /**
  508. * @desc : 보호자대진 취소
  509. * @
  510. * @param : sEtcOrdFlag - '-' 보호자대진 적용
  511. *
  512. * @return :
  513. * @author : 오지훈
  514. * @---------------------------------------------------
  515. */
  516. function fCnclPatProtector(){
  517. var currow = ds_outpatlist.rowposition;
  518. if(currow < 0){
  519. return;
  520. }
  521. //마우스 오른쪽버튼 팝업에서 parameter처리가 되지 않아 우선 함수로 나누어 처리, 차후 수정되면 변경예정
  522. var elbulbodstat = ds_outpatlist.getColumn(currow, "elbulbodstat");
  523. if ( elbulbodstat == "9" ) {
  524. sysf_messageBox("미접수환자는 진행이 불가능 합니다.","E");
  525. return;
  526. }
  527. fUpdtOutPatPamInfo("-");
  528. }
  529. /**
  530. * @desc : 진료취소
  531. * @
  532. * @param : sEtcOrdFlag - 'C' 진료취소 적용
  533. * sProcFlag - 'C' 진료취소 flow
  534. *
  535. * @return :
  536. * @author : 오지훈
  537. * @---------------------------------------------------
  538. */
  539. function fPatOrdCncl(){
  540. var currow = ds_outpatlist.rowposition;
  541. if(currow < 0){
  542. return;
  543. }
  544. //마우스 오른쪽버튼 팝업에서 parameter처리가 되지 않아 우선 함수로 나누어 처리, 차후 수정되면 변경예정
  545. var elbulbodstat = ds_outpatlist.getColumn(currow, "elbulbodstat");
  546. if ( elbulbodstat == "9" ) {
  547. sysf_messageBox("미접수환자는 진행이 불가능 합니다.","E");
  548. return;
  549. }
  550. fUpdtOutPatPamInfo("C");
  551. }
  552. /**
  553. * @desc : 일반유형 변경
  554. * @
  555. * @return :
  556. * @author : 엄영만 2017.02.09
  557. * @---------------------------------------------------
  558. */
  559. function fChangeInsuKind(){
  560. var currow = ds_outpatlist.rowposition;
  561. if(currow < 0){
  562. return;
  563. }
  564. var sPid = ds_outpatlist.getColumn(currow, "pid");
  565. var sOrdDd = ds_outpatlist.getColumn(currow, "orddd");
  566. var sCretNo = ds_outpatlist.getColumn(currow, "cretno");
  567. var sOrdDeptCd = ds_outpatlist.getColumn(currow, "orddeptcd");
  568. var sInsuKind = ds_outpatlist.getColumn(currow, "insukind");
  569. var sDutplceCd = sysf_getUserInfo("dutplcecd");
  570. if ( sInsuKind == "51" ) {
  571. sysf_messageBox("보험유형이 일반(51)환자는 진행이 불가능 합니다.","E");
  572. return;
  573. }
  574. if (sOrdDeptCd != sDutplceCd) {
  575. sysf_messageBox("로그인 부서와 진료과가 다르면 일반유형으로 변경할 수", "I004");
  576. return;
  577. }
  578. if(!lf_ContainsHardCD("555", sOrdDeptCd)) {
  579. sysf_messageBox("일반유형으로 변경 기능을 사용할 수 없는 진료과 입니다.", "I999");
  580. return;
  581. }
  582. if("6" == sysf_messageBox("보험유형을 일반(51)로 변경 하시겠습니까?", "Q")) {
  583. ds_reqdata.clearData();
  584. ds_reqdata.addRow();
  585. ds_reqdata.setColumn(0, "pid", sPid);
  586. ds_reqdata.setColumn(0, "orddd", sOrdDd);
  587. ds_reqdata.setColumn(0, "cretno", sCretNo);
  588. var oParam = {};
  589. oParam.id = "TXMMO04207";
  590. oParam.service = "prcpmngtapp.EtcPrcpMngt";
  591. oParam.method = "reqExeChangeInsukind";
  592. oParam.inds = "req=" + "ds_reqdata";
  593. oParam.async = false;
  594. oParam.callback = "cf_TXMMO04207";
  595. tranf_submit(oParam);
  596. }
  597. }
  598. function cf_TXMMO04207(sSvcId, nErrorCode, sErrorMsg) {
  599. if(nErrorCode > -1)
  600. fReqOutPatList();
  601. }
  602. /**
  603. * @desc : 본인100 보조유형 변경
  604. * @
  605. * @return :
  606. * @author : 엄영만 2017.07.26
  607. * @---------------------------------------------------
  608. */
  609. function fChangeSupKind01(){
  610. trace("fChangeSupKind01");
  611. fChangeSupKind("01");
  612. }
  613. function fChangeSupKindD6(){
  614. trace("fChangeSupKindD6");
  615. fChangeSupKind("D6");
  616. }
  617. function fChangeSupKind(sSuppKind){
  618. var currow = ds_outpatlist.rowposition;
  619. if(currow < 0){
  620. return;
  621. }
  622. var sPid = ds_outpatlist.getColumn(currow, "pid");
  623. var sOrdDd = ds_outpatlist.getColumn(currow, "orddd");
  624. var sCretNo = ds_outpatlist.getColumn(currow, "cretno");
  625. var sOrdDeptCd = ds_outpatlist.getColumn(currow, "orddeptcd");
  626. var sInsuKind = ds_outpatlist.getColumn(currow, "insukind");
  627. var sDutplceCd = sysf_getUserInfo("dutplcecd");
  628. if ( (sSuppKind == "01" || sSuppKind == "D6") && sInsuKind != "11" ) { // 전액본인부담, 난임시술 변경시
  629. sysf_messageBox("보험유형이 건강보험(11) 환자만 진행이 가능 합니다.","E");
  630. return;
  631. }
  632. if ( sSuppKind == "D6" && sOrdDeptCd != "2100000000" ) { // 난임시술 변경시 산부인과만
  633. sysf_messageBox("진료과가 산부인과 환자만 진행이 가능 합니다.","E");
  634. return;
  635. }
  636. if (sOrdDeptCd != sDutplceCd) {
  637. sysf_messageBox("로그인 부서와 진료과가 다르면 진행할 수", "I004");
  638. return;
  639. }
  640. var sMsg = "";
  641. if ( sSuppKind == "01") {
  642. sMsg = "보조유형을 전액본인부담(01)으로 변경 하시겠습니까?";
  643. } else if ( sSuppKind == "D6") {
  644. sMsg = "보조유형을 난임시술(D6)으로 변경 하시겠습니까?";
  645. }
  646. if("6" == sysf_messageBox(sMsg, "Q")) {
  647. ds_reqdata.clearData();
  648. ds_reqdata.addRow();
  649. ds_reqdata.setColumn(0, "pid", sPid);
  650. ds_reqdata.setColumn(0, "orddd", sOrdDd);
  651. ds_reqdata.setColumn(0, "cretno", sCretNo);
  652. ds_reqdata.setColumn(0, "suppkind", sSuppKind);
  653. var oParam = {};
  654. oParam.id = "TXMMO04208";
  655. oParam.service = "prcpmngtapp.EtcPrcpMngt";
  656. oParam.method = "reqExeChangeSupKind";
  657. oParam.inds = "req=" + "ds_reqdata";
  658. oParam.async = false;
  659. oParam.callback = "cf_TXMMO04208";
  660. tranf_submit(oParam);
  661. }
  662. }
  663. function cf_TXMMO04208(sSvcId, nErrorCode, sErrorMsg) {
  664. if(nErrorCode > -1)
  665. fReqOutPatList();
  666. }
  667. /**
  668. * @desc : 일반유형 가접수 생성
  669. * @
  670. * @return :
  671. * @author : 엄영만 2017.07.26
  672. * @---------------------------------------------------
  673. */
  674. function fCreatGenrOtpt(){
  675. var currow = ds_outpatlist.rowposition;
  676. if(currow < 0){
  677. return;
  678. }
  679. var sPid = ds_outpatlist.getColumn(currow, "pid");
  680. var sOrdDd = ds_outpatlist.getColumn(currow, "orddd");
  681. var sCretNo = ds_outpatlist.getColumn(currow, "cretno");
  682. var sOrdDeptCd = ds_outpatlist.getColumn(currow, "orddeptcd");
  683. var sOrdDrId = ds_outpatlist.getColumn(currow, "orddrid");
  684. var sInsuKind = ds_outpatlist.getColumn(currow, "insukind");
  685. var sDutplceCd = sysf_getUserInfo("dutplcecd");
  686. if ( sInsuKind == "51" ) {
  687. sysf_messageBox("보험유형이 일반(51) 환자는 진행이 불가능 합니다.","E");
  688. return;
  689. }
  690. if (sOrdDeptCd != sDutplceCd) {
  691. sysf_messageBox("로그인 부서와 진료과가 다르면 일반유형으로 변경할 수", "I004");
  692. return;
  693. }
  694. if("6" == sysf_messageBox("보험유형을 일반(51)로 새로운 외래예약을 생성 하시겠습니까?", "Q")) {
  695. ds_reqdata4.clearData();
  696. ds_reqdata4.addRow();
  697. ds_reqdata4.setColumn(0, "flag", "I");
  698. ds_reqdata4.setColumn(0, "otpt_pid", sPid);
  699. ds_reqdata4.setColumn(0, "otpt_orddd", sOrdDd);
  700. ds_reqdata4.setColumn(0, "otpt_cretno", sCretNo);
  701. ds_reqdata4.setColumn(0, "otpt_orddeptcd", sOrdDeptCd);
  702. ds_reqdata4.setColumn(0, "otpt_orddrid", sOrdDrId);
  703. ds_reqdata4.setColumn(0, "otpt_histstat", "R");
  704. ds_reqdata4.setColumn(0, "otpt_rsrvflag", "BB"); // 2017.08.01 보험유형 일반(51) with 이정택
  705. var oParam = {};
  706. oParam.id = "TRMMO09101";
  707. oParam.service = "prcpmngtapp.PrcpMngt";
  708. oParam.method = "reqExeSetOtptActDeptPrcp";
  709. oParam.inds = "req=ds_reqdata4";
  710. oParam.async = false;
  711. oParam.callback = "cf_TRMMO09101";
  712. tranf_submit(oParam);
  713. }
  714. }
  715. function cf_TRMMO09101(sSvcId, nErrorCode, sErrorMsg) {
  716. if(nErrorCode > -1)
  717. fReqOutPatList();
  718. }
  719. /**
  720. * @desc : 치료제외 삭제 및 숨김처리
  721. * @
  722. * @param :
  723. * @return :
  724. * @author : 오지훈
  725. * @---------------------------------------------------
  726. */
  727. function fProcTreatExpt(){
  728. var dutplcecd = sysf_getUserInfo("dutplcecd");
  729. var row = ds_hardcode.findRow("trgtcd", dutplcecd);
  730. if(row == -1) return;
  731. var hardcdno = ds_hardcode.getColumn(row, "hardcdno");
  732. if(hardcdno == 2){
  733. var row3 = ds_hardcode.findRow("hardcdno", 3);
  734. if(row3 != -1)
  735. ds_hardcode.deleteRow(row3);
  736. //model.removeNode("/root/main/outpatinfo/hardcode[hardcdno = '" + 3 + "']");
  737. } else if(hardcdno == 3){
  738. var row2 = ds_hardcode.findRow("hardcdno", 2);
  739. if(row2 != -1)
  740. ds_hardcode.deleteRow(row2);
  741. //model.removeNode("/root/main/outpatinfo/hardcode[hardcdno = '" + 2 + "']");
  742. } else{
  743. Div00.cmb_expt.visible = false;
  744. }
  745. }
  746. /**
  747. * @desc : 그리드 data 엑셀화일로 저장
  748. * @
  749. * @param :
  750. * @return :
  751. * @author : 오지훈
  752. * @---------------------------------------------------
  753. */
  754. function fSaveGridToExcel(){
  755. grdf_exportExcel(grd_outpatlist, "외래환자리스트", "외래");
  756. }
  757. /**
  758. * @desc : 협진관리 화면 open
  759. * @
  760. * @param :
  761. * @return :
  762. * @author : 오지훈
  763. * @---------------------------------------------------
  764. */
  765. function fOpenCnstPat(){
  766. var currow = ds_outpatlist.rowposition;
  767. if(currow < 0){
  768. return;
  769. }
  770. var elbulbodstat = ds_outpatlist.getColumn(currow, "elbulbodstat");
  771. if ( elbulbodstat == "9" ) {
  772. sysf_messageBox("미접수환자는 진행이 불가능 합니다.","E");
  773. return;
  774. }
  775. var pid = ds_outpatlist.getColumn(currow, "pid");
  776. var hngnm = ds_outpatlist.getColumn(currow, "hngnm");
  777. var sa = ds_outpatlist.getColumn(currow, "sexage");
  778. var orddeptcd = ds_outpatlist.getColumn(currow, "orddeptcd");
  779. var orddrid = ds_outpatlist.getColumn(currow, "orddrid");
  780. var orddrnm = ds_outpatlist.getColumn(currow, "orddrnm");
  781. var orddd = ds_outpatlist.getColumn(currow, "orddd");
  782. var cretno = ds_outpatlist.getColumn(currow, "cretno");
  783. var coordflag = ds_outpatlist.getColumn(currow, "coordflag");
  784. var patinfo = hngnm + "▦" + sa + "▦" + orddeptcd + "▦" + orddrid + "▦" + cretno + "▦" + orddrnm + "▦" + coordflag;
  785. frmf_setParameter("SPMMO03600_pid", pid);
  786. frmf_setParameter("SPMMO03600_orddd", orddd);
  787. frmf_setParameter("SPMMO03600_patinfo", patinfo);
  788. frmf_setParameter("SPMMO03600_ioflag", "O");
  789. frmf_modal("SPMMO03600", "SPMMO03600", null, null, null, null, null, null, null, null, null, null, "M");
  790. fReqOutPatList();
  791. }
  792. /**
  793. * @desc : 수혜자 선택 화면 open
  794. * @
  795. * @param :
  796. * @return :
  797. * @author : 엄영만
  798. * @---------------------------------------------------
  799. */
  800. function fOpenRecipient(){
  801. var currow = ds_outpatlist.rowposition;
  802. if(currow < 0){
  803. return;
  804. }
  805. var pid = ds_outpatlist.getColumn(currow, "pid");
  806. var hngnm = ds_outpatlist.getColumn(currow, "hngnm");
  807. var orddd = ds_outpatlist.getColumn(currow, "orddd");
  808. var cretno = ds_outpatlist.getColumn(currow, "cretno");
  809. var etcordflag = ds_outpatlist.getColumn(currow, "etcordflag");
  810. var sa = ds_outpatlist.getColumn(currow, "sexage");
  811. var sex = sa.substr(0, sa.indexOf("/"));
  812. var age = sa.substr(sa.indexOf("/")+1, sa.length);
  813. frmf_setParameter("SPMMO09610_paramyn", "Y");
  814. frmf_setParameter("SPMMO09610_ordtype", "O");
  815. frmf_setParameter("SPMMO09610_etcordflag", etcordflag);
  816. frmf_setParameter("SPMMO09610_pid", pid);
  817. frmf_setParameter("SPMMO09610_orddd", orddd);
  818. frmf_setParameter("SPMMO09610_cretno", cretno);
  819. frmf_setParameter("SPMMO09610_hngnm", hngnm);
  820. frmf_setParameter("SPMMO09610_sex", sex);
  821. frmf_setParameter("SPMMO09610_age", age);
  822. frmf_modal("SPMMO09610", "SPMMO09610", null, null, null, null, null, null, null, null, null, null, "M");
  823. fReqOutPatList();
  824. }
  825. /**
  826. * @desc : CP환자 여부 검사
  827. * @
  828. * @param :
  829. * @return :
  830. * @author : 오지훈
  831. * @---------------------------------------------------
  832. */
  833. function fChkCPPatValid(currow){
  834. var pid = ds_outpatlist.getColumn(currow, "pid");
  835. var orddd = ds_outpatlist.getColumn(currow, "orddd");
  836. var cretno = ds_outpatlist.getColumn(currow, "cretno");
  837. var hngnm = ds_outpatlist.getColumn(currow, "hngnm");
  838. var orddeptcd = "";//ds_outpatlist.getColumn(currow, "orddeptcd");
  839. var ordtype = "";//ds_outpatlist.getColumn(currow, "ordtype");
  840. var cpyn = ds_outpatlist.getColumn(currow, "cpyn");
  841. if(utlf_isNull(orddeptcd)) orddeptcd = ds_cond.getColumn(0, "orddeptcd");
  842. if(utlf_isNull(ordtype)) ordtype = "O";
  843. ds_reqdata2.clearData();
  844. ds_reqdata2.addRow();
  845. ds_reqdata2.setColumn(0, "pid" , pid);
  846. ds_reqdata2.setColumn(0, "orddd" , orddd);
  847. ds_reqdata2.setColumn(0, "cretno" , cretno);
  848. ds_reqdata2.setColumn(0, "hngnm" , hngnm); //추가(2008.08.25)
  849. ds_reqdata2.setColumn(0, "prcpgenrflag", ordtype);
  850. ds_reqdata2.setColumn(0, "srchtabflag" , "O"); //대상자리스트탭 구분
  851. var oParam = {};
  852. oParam.id = "TRMMO04303";
  853. oParam.service = "prcpbaseapp.CpMngt";
  854. oParam.method = "reqGePattValidity";
  855. oParam.inds = "req=" + "ds_reqdata2";
  856. oParam.outds = "ds_rsltgetdata=getdata";
  857. oParam.async = false;
  858. oParam.callback = "cf_TRMMO04303";
  859. tranf_submit(oParam);
  860. if(arErrorCode.pop("TRMMO04303") < 0)
  861. return false;
  862. var cppatnode = ds_rsltgetdata.rowcount;//model.instance1.selectNodes("/root/init/rsltgetdata/getdata");
  863. if(cppatnode < 1){ //cp적용환자 tbl에 유효한 데이터가 없는 경우
  864. parent.parent.SMMMO04100_setDSRoot("cpflag", "N"); //처방open
  865. return true;
  866. }else{ //CP적용환자 tbl에 유효한 데이터가 있는 경우
  867. dsf_setDefaultVal(ds_rsltgetdata, "appyn:Y");
  868. var appyn = ds_rsltgetdata.getColumn(0, "appyn");
  869. var appstat = ds_rsltgetdata.getColumn(0, "appstat");
  870. var cpgnm = ds_rsltgetdata.getColumn(0, "cpgnm");
  871. var cpgappno = ds_rsltgetdata.getColumn(0, "cpgappno");
  872. var msgcnts = ds_rsltgetdata.getColumn(0, "msgcnts");
  873. var msgflag = ds_rsltgetdata.getColumn(0, "msgflag");
  874. var prtlflagcd = ds_rsltgetdata.getColumn(0, "prtlflagcd"); //01:CP,02:CPG
  875. if(appstat == 11){ //CP적용상태가 11인 경우
  876. var rtnval = sysf_messageBox(msgcnts, msgflag);
  877. if(rtnval == 6){ //예 선택, CP Main open, CP적용환자 tbl에 appstat 10 진행중
  878. parent.parent.SMMMO04100_setDSRoot("cpflag", "Y");
  879. return fUpdtCPPatAppStatVal(10);
  880. }else{ //아니오 선택, 처방 Main open, CP적용환자 tbl에 appstat 50 : CP Drop
  881. sysf_messageBox(msgcnts, msgflag);
  882. frmf_setParameter("SMMMO043_cpgappno", cpgappno); //drop 팝업에서 인식할 수 있는 param
  883. frmf_setParameter("SMMMO043_drop" , "N"); //drop 팝업에서 인식할 수 있는 param
  884. frmf_modal("SPMMP02300", "SPMMP02300", null, null, null, null, null, null, null, null, null, null, "M"); //Drop 팝업 호출
  885. parent.parent.SMMMO04100_setDSRoot("cpflag", "N");
  886. if(frmf_getParameter("SMMMO043_drop") == "Y" && !utlf_isNull(cpyn)){
  887. ds_outpatlist.setColumn(currow, "cpyn", "N");
  888. }else{
  889. return false;
  890. }
  891. frmf_clearParameter("SMMMO043_cpgappno");
  892. frmf_clearParameter("SMMMO043_drop");
  893. return true;
  894. }
  895. }else if(appstat == 53){
  896. parent.parent.SMMMO04100_setDSRoot("cpflag", "X");
  897. return true;
  898. }else{ //CP적용상태가 11가 아닌 경우, CP Main창 open
  899. if( prtlflagcd == "02" && utlf_isNull(appstat) && msgflag == "P" ){ //CPG & 호출flag:Popup & 모니터링구분:대상자탐색 (appyn:평가용여부)
  900. //CPG적용대상자 알림 팝업 호출 (2009.05.04)
  901. frmf_setParameter("SMMMO041_hngnm" , hngnm);
  902. frmf_setParameter("SMMMO041_pid" , pid);
  903. frmf_setParameter("SMMMO041_cretno" , cretno);
  904. frmf_setParameter("SMMMO041_orddd" , orddd);
  905. frmf_setParameter("SMMMO041_ordtype" , ordtype);
  906. frmf_setParameter("SMMMO041_orddeptcd" , orddeptcd);
  907. frmf_setParameter("SMMMO041_slipnm" , msgcnts); //cpgno▦cpghistseq▦cpgnm▦slipno▦slipnm▦valusgeyn▦valunm▦guidedocucnts
  908. frmf_setParameter("SMMMO041_cpgmntrflag", appstat); //null, SPMMP03200화면에서 cpgmntrflag(M or S)으로 따짐
  909. frmf_setParameter("SMMMO041_cpgappno" , cpgappno); //적용중인 CP가 존재하면 값이 있음
  910. frmf_setParameter("SMMMO041_cpgnm" , cpgnm); //적용중인 CP가 존재하면 값이 있음
  911. frmf_modal("SPMMP03200", "SPMMP03200", null, null, null, null, null, null, null, null, null, null, "P"); //CP대상자 알람 팝업
  912. if( cpgappno > 0 && cpgappno != frmf_getParameter("SPMMP032_cpgappno") && !utlf_isNull(cpyn)){ //진행중인 CP가 있는데 팝업에서 Drop한 경우 CP여부 N으로..
  913. ds_outpatlist.setColumn(currow, "cpyn", "N");
  914. }
  915. if( !isNull(frmf_getParameter("SPMMP032_cpgappno")) && frmf_getParameter("SPMMP032_cpgappno") > 0 ){
  916. parent.parent.SMMMO04100_setDSRoot("cpflag", "Y"); //CPG적용한 경우, MGPS 호출
  917. }else{
  918. parent.parent.SMMMO04100_setDSRoot("cpflag", "N"); //미적용 시 처방 화면 호출
  919. }
  920. frmf_clearParameter("SPMMP032_cpgappno");
  921. frmf_clearParameter("SMMMO041_hngnm");
  922. frmf_clearParameter("SMMMO041_pid");
  923. frmf_clearParameter("SMMMO041_cretno");
  924. frmf_clearParameter("SMMMO041_orddd");
  925. frmf_clearParameter("SMMMO041_ordtype");
  926. frmf_clearParameter("SMMMO041_orddeptcd");
  927. frmf_clearParameter("SMMMO041_slipnm");
  928. frmf_clearParameter("SMMMO041_cpgmntrflag");
  929. frmf_clearParameter("SMMMO041_cpgappno");
  930. frmf_clearParameter("SMMMO041_cpgnm");
  931. return true;
  932. } else{
  933. parent.parent.SMMMO04100_setDSRoot("cpflag", "Y");
  934. return true;
  935. }
  936. }
  937. }
  938. }
  939. function cf_TRMMO04303(sSvcId, nErrorCode, sErrorMsg) {
  940. arErrorCode.push(sSvcId, nErrorCode);
  941. }
  942. /**
  943. * @desc : 외래환자 진료상태 대기로 변경
  944. * @
  945. * @param :
  946. * @return :
  947. * @author : 김영학
  948. * @---------------------------------------------------
  949. */
  950. function fSetOutPatBodStat(stat){
  951. var currow = ds_outpatlist.rowposition;
  952. if(currow < 0){
  953. return;
  954. }
  955. var pid = ds_outpatlist.getColumn(currow, "pid");
  956. var orddd = ds_outpatlist.getColumn(currow, "orddd");
  957. var cretno = ds_outpatlist.getColumn(currow, "cretno");
  958. var elbulbodstat = ds_outpatlist.getColumn(currow, "elbulbodstat");
  959. var orddrid = ds_outpatlist.getColumn(currow, "orddrid");
  960. var orddeptcd = ds_outpatlist.getColumn(currow, "orddeptcd");
  961. if (stat =="1") {
  962. if(!(elbulbodstat == "0"||elbulbodstat == "-")){ //진료대기로 변경
  963. sysf_messageBox("구분이 접수인 환자를", "C002");
  964. return;
  965. }
  966. } else if (stat ="0") {
  967. if(elbulbodstat != "1"){ //진료보류 취소
  968. sysf_messageBox("구분이 대기인 환자를", "C002");
  969. return;
  970. }
  971. }
  972. ds_reqdata.clearData();
  973. ds_reqdata.addRow();
  974. ds_reqdata.setColumn(0, "pid", pid);
  975. ds_reqdata.setColumn(0, "orddd", orddd);
  976. ds_reqdata.setColumn(0, "cretno", cretno);
  977. ds_reqdata.setColumn(0, "orddeptcd", orddeptcd);
  978. ds_reqdata.setColumn(0, "orddrid", orddrid);
  979. var bodstat = "a";
  980. if (stat == "0") {
  981. ds_reqdata.setColumn(0, "elbulbodstat", "0");
  982. } else if (stat =="1") {
  983. ds_reqdata.setColumn(0, "elbulbodstat", "1");
  984. }
  985. var oParam = {};
  986. oParam.id = "TXMMO04203";
  987. oParam.service = "prcpmngtapp.EtcPrcpMngt";
  988. oParam.method = "reqExeBodStat";
  989. oParam.inds = "req=" + "ds_reqdata";
  990. oParam.async = false;
  991. if(tranf_submit(oParam)) {
  992. fReqOutPatList();
  993. }
  994. }
  995. /**
  996. * @desc : 외래환자 진료상태 대기로 변경
  997. * @
  998. * @param :
  999. * @return :
  1000. * @author : 김영학
  1001. * @---------------------------------------------------
  1002. */
  1003. function fPatOrdEnd(){
  1004. var currow = ds_outpatlist.rowposition;
  1005. if(currow < 0){
  1006. return;
  1007. }
  1008. var elbulbodstat = ds_outpatlist.getColumn(currow, "elbulbodstat");
  1009. if ( elbulbodstat == "9" ) {
  1010. sysf_messageBox("미접수환자는 진행이 불가능 합니다.","E");
  1011. return;
  1012. }
  1013. //2018.04.04 DUR 특정질환 검색 로직 추가 엄영만
  1014. var sPid = ds_outpatlist.getColumn(currow, "pid" );
  1015. frmf_setParameter("SPMMD00100_ifyn", "Y");
  1016. frmf_setParameter("SPMMD00100_pid", sPid);
  1017. var argxpt = system.clientToScreenX(this, 0) + 250;
  1018. var argypt = system.clientToScreenY(this, 0) + 20;
  1019. //20190910 이돈희 : KIMS 서버가 죽는 경우 하드코드 변경함
  1020. // 이 경우 KIMS 감염조회를 안하기 위하여 매번 조회
  1021. // 치과의 경우 기존 DUR 사용하면 618번 D 셋팅 필요
  1022. dsf_createDs("ds_hardcd618");
  1023. lf_gethardcdArrayList(new Array("hardcd618|618"), new Array("ds_hardcd618"));
  1024. if(ds_hardcd618.getColumn(0, "hardcd") == "Y") {
  1025. frmf_modal("SPMMO51000", "SPMMO51000", null, false, null, argxpt, argypt, null, null, null, null, null, "M");
  1026. } else if(ds_hardcd618.getColumn(0, "hardcd") == "D") {
  1027. frmf_modal("SPMMD00100", "SPMMD00100", null, false, null, argxpt, argypt, null, null, null, null, null, "M");
  1028. } else {
  1029. //do Nothing
  1030. }
  1031. dsf_deleteDs("ds_hardcd618");
  1032. fSetOutPatBodStat("1");
  1033. }
  1034. /**
  1035. * @desc : 외래환자 진료상태 접수로 변경
  1036. * @
  1037. * @param :
  1038. * @return :
  1039. * @author : 김영학
  1040. * @---------------------------------------------------
  1041. */
  1042. function fPatOrdEndCncl(){
  1043. var currow = ds_outpatlist.rowposition;
  1044. if(currow < 0){
  1045. return;
  1046. }
  1047. var elbulbodstat = ds_outpatlist.getColumn(currow, "elbulbodstat");
  1048. if ( elbulbodstat == "9" ) {
  1049. sysf_messageBox("미접수환자는 진행이 불가능 합니다.","E");
  1050. return;
  1051. }
  1052. fSetOutPatBodStat("0");
  1053. }
  1054. function fGrdInit() {
  1055. if (Div00.chk_speedflag.value == "Y") {
  1056. grd_outpatlist.setFormatColProperty(grd_outpatlist.getBindCellIndex("body", "centcd"), "size", 0);
  1057. grd_outpatlist.setFormatColProperty(grd_outpatlist.getBindCellIndex("body", "subdeptcd"), "size", 0);
  1058. grd_outpatlist.setFormatColProperty(grd_outpatlist.getBindCellIndex("body", "orddrnm"), "size", 0);
  1059. grd_outpatlist.setFormatColProperty(grd_outpatlist.getBindCellIndex("body", "anodeptyn"), "size", 0);
  1060. grd_outpatlist.setFormatColProperty(grd_outpatlist.getBindCellIndex("body", "spclflag"), "size", 0);
  1061. grd_outpatlist.setFormatColProperty(grd_outpatlist.getBindCellIndex("body", "testrslt"), "size", 0);
  1062. grd_outpatlist.setFormatColProperty(grd_outpatlist.getBindCellIndex("body", "serdiag"), "size", 0);
  1063. grd_outpatlist.setFormatColProperty(grd_outpatlist.getBindCellIndex("body", "insukind"), "size", 0);
  1064. grd_outpatlist.setFormatColProperty(grd_outpatlist.getBindCellIndex("body", "trsmrem"), "size", 0);
  1065. grd_outpatlist.setFormatColProperty(grd_outpatlist.getBindCellIndex("body", "conctypenm"), "size", 0);
  1066. grd_outpatlist.setFormatColProperty(grd_outpatlist.getBindCellIndex("body", "antidrugflag"), "size", 0);
  1067. grd_outpatlist.setFormatColProperty(grd_outpatlist.getBindCellIndex("body", "coordflag"), "size", 0);
  1068. grd_outpatlist.setFormatColProperty(grd_outpatlist.getBindCellIndex("body", "cpyn"), "size", 0);
  1069. grd_outpatlist.setFormatColProperty(grd_outpatlist.getBindCellIndex("body", "onestop"), "size", 0);
  1070. grd_outpatlist.setFormatColProperty(grd_outpatlist.getBindCellIndex("body", "preworkup"), "size", 0);
  1071. grd_outpatlist.setFormatColProperty(grd_outpatlist.getBindCellIndex("body", "hsctpreday"), "size", 0);
  1072. grd_outpatlist.setFormatColProperty(grd_outpatlist.getBindCellIndex("body", "transtype"), "size", 0);
  1073. grd_outpatlist.setFormatColProperty(grd_outpatlist.getBindCellIndex("body", "hsctday"), "size", 0);
  1074. grd_outpatlist.setFormatColProperty(grd_outpatlist.getBindCellIndex("body", "postcxday"), "size", 0);
  1075. grd_outpatlist.setFormatColProperty(grd_outpatlist.getBindCellIndex("body", "rsrvflag"), "size", 0);
  1076. grd_outpatlist.setFormatColProperty(grd_outpatlist.getBindCellIndex("body", "bfjudgvalue"), "size", 0);
  1077. } else {
  1078. setOrderInfoOfCol(grd_outpatlist, ds_gridseq); //외래환자리스트 컬럼 설정
  1079. }
  1080. }
  1081. /**
  1082. * @desc : 진료대상자 리스트 출력
  1083. * @
  1084. * @param :
  1085. * @return :
  1086. * @author : 김영학
  1087. * @---------------------------------------------------
  1088. */
  1089. function fPrtPatList() {
  1090. if(utlf_isNull(ds_cond.getColumnInfo("orddeptnm"))) ds_cond.addColumn("orddeptnm", "string");
  1091. if(utlf_isNull(ds_cond.getColumnInfo("orddrnm"))) ds_cond.addColumn("orddrnm", "string");
  1092. ds_cond.setColumn(0, "orddeptnm", Div00.cmb_orddeptcd.text);
  1093. ds_cond.setColumn(0, "orddrnm", Div00.cmb_orddrid.text);
  1094. var objDOM = rptf_createDOM(); // DOM 객체 설정
  1095. rptf_setNodeListToDOM(objDOM, "/root/main/outpatinfo/outpatlist", ds_outpatlist); // 데이터셋 1
  1096. rptf_setNodeListToDOM(objDOM, "/root/main/cond", ds_cond); // 데이터셋 2
  1097. //sysf_trace(objDOM.documentElement.source); // XML 내용출력
  1098. var objParam = new Object();
  1099. objParam.xml_data_XML1 = objDOM.documentElement.source; // 최상의노드 XML 스트링 추출
  1100. var option = "open=1;save=1;directprint=0;print=1;zoom=0;";
  1101. rptf_exeReportPreview30(["RPMMO04102"],[objParam], option);
  1102. }
  1103. function fChngGrdCellColor(color){
  1104. if(color == undefined || color == "" || color == "ffffff")
  1105. color = "default";
  1106. else
  1107. color = "#" + color;
  1108. return color;
  1109. }
  1110. /**
  1111. * @desc : 예방접종 0% 적용
  1112. * @param :
  1113. * @return :
  1114. * @author : 김영학
  1115. * @---------------------------------------------------
  1116. */
  1117. function fPatPreProtect0Appl(){
  1118. fPatEtcOrdinfo("S", "Vacn");
  1119. }
  1120. function fChngColorOutPatList_Pod(pod) {
  1121. var sColor = "#000000";
  1122. if(!utlf_isNull(pod) && pod != "-"){
  1123. var nPod = parseInt(pod);
  1124. if((nPod >= 25 && nPod <= 35) || (nPod >= 175 && nPod <= 185)) { // 수술경과일 1개월, 6개월 글자색 붉은색으로 변경
  1125. sColor = "#ff0000";
  1126. }
  1127. }
  1128. return sColor;
  1129. }
  1130. /**
  1131. * @desc : 예방접종 0% 적용취소
  1132. * @param :
  1133. * @return :
  1134. * @author : 김영학
  1135. * @---------------------------------------------------
  1136. */
  1137. function fPatPreProtect0Cncl(){
  1138. fPatEtcOrdinfo("C", "Vacn");
  1139. }
  1140. /**
  1141. * @desc : 진찰료 0% 적용 (사본발행)
  1142. * @param :
  1143. * @return :
  1144. * @author : 김영학
  1145. * @---------------------------------------------------
  1146. */
  1147. function fPatCopyIss0Appl(){
  1148. fPatEtcOrdinfo("S", "Copy");
  1149. }
  1150. /**
  1151. * @desc : 진찰료 0% 적용 취소 (사본발행)
  1152. * @param :
  1153. * @return :
  1154. * @author : 김영학
  1155. * @---------------------------------------------------
  1156. */
  1157. function fPatCopyIss0Cncl(){
  1158. fPatEtcOrdinfo("C", "Copy");
  1159. }
  1160. /**
  1161. * @desc : 진찰료 50% 적용 (진단서)
  1162. * @param :
  1163. * @return :
  1164. * @author : 김영학
  1165. * @---------------------------------------------------
  1166. */
  1167. function fPatProf50Appl(){
  1168. fPatEtcOrdinfo("S", "Diag");
  1169. }
  1170. /**
  1171. * @desc : 진찰료 50% 적용 취소 (진단서)
  1172. * @param :
  1173. * @return :
  1174. * @author : 김영학
  1175. * @---------------------------------------------------
  1176. */
  1177. function fPatProf50Cncl(){
  1178. fPatEtcOrdinfo("C", "Diag");
  1179. }
  1180. /**
  1181. * @desc : 진찰료 50% 적용 (사본발행)
  1182. * @param :
  1183. * @return :
  1184. * @author : 김영학
  1185. * @---------------------------------------------------
  1186. */
  1187. function fPatCopyIss50Appl(){
  1188. fPatEtcOrdinfo("S", "Copy2");
  1189. }
  1190. /**
  1191. * @desc : 진찰료 50% 적용 취소 (사본발행)
  1192. * @param :
  1193. * @return :
  1194. * @author : 김영학
  1195. * @---------------------------------------------------
  1196. */
  1197. function fPatCopyIss50Cncl(){
  1198. fPatEtcOrdinfo("C", "Copy2");
  1199. }
  1200. /**
  1201. * @desc : 진찰료 0% 적용 (제증명)
  1202. * @param :
  1203. * @return :
  1204. * @author : 김영학
  1205. * @---------------------------------------------------
  1206. */
  1207. function fPatProf0Appl(){
  1208. fPatEtcOrdinfo("S", "Diag2");
  1209. }
  1210. /**
  1211. * @desc : 진찰료 0% 적용 취소 (제증명)
  1212. * @param :
  1213. * @return :
  1214. * @author : 김영학
  1215. * @---------------------------------------------------
  1216. */
  1217. function fPatProf0Cncl(){
  1218. fPatEtcOrdinfo("C", "Diag2");
  1219. }
  1220. /**
  1221. * @desc : 진찰료 변경 적용 및 취소
  1222. * @param :
  1223. * @return :
  1224. * @author : 김영학
  1225. * @---------------------------------------------------
  1226. */
  1227. function fPatEtcOrdinfo(SetFlag, EtcOrdFlag){
  1228. var flag = "";
  1229. var iRow = ds_outpatlist.rowposition;; //2010.03.06 JJE
  1230. var etcordflag = ds_outpatlist.getColumn(iRow, "etcordflag");
  1231. var elbulbodstat = ds_outpatlist.getColumn(iRow, "elbulbodstat");
  1232. if ( elbulbodstat == "9" ) {
  1233. sysf_messageBox("미접수환자는 진행이 불가능 합니다.","E");
  1234. return;
  1235. }
  1236. if(SetFlag == "S"){
  1237. /*
  1238. if(etcordflag != "" && etcordflag != "-"){
  1239. messageBox("이미 등록된 내역이 있습니다.", " I");
  1240. return;
  1241. }
  1242. */
  1243. //등록
  1244. if(EtcOrdFlag == "Diag"){
  1245. flag = "A";
  1246. } else if(EtcOrdFlag == "Copy"){
  1247. flag = "B";
  1248. } else if(EtcOrdFlag == "Vacn"){
  1249. flag = "C";
  1250. } else if(EtcOrdFlag == "Diag2"){
  1251. flag = "D";
  1252. } else if(EtcOrdFlag == "Copy2"){
  1253. flag = "E";
  1254. }
  1255. }else{
  1256. if(etcordflag == "" || etcordflag == "-"){
  1257. sysf_messageBox("취소할 내역이 없습니다.", "I");
  1258. return;
  1259. }
  1260. if(EtcOrdFlag == "Diag" || EtcOrdFlag == "Diag2"){
  1261. if(etcordflag != "G"){
  1262. sysf_messageBox("취소할 수 없습니다.", "I");
  1263. return;
  1264. }
  1265. }else if(EtcOrdFlag == "Copy"){ //Copy: 진찰료 0%(사본발행) 취소
  1266. if(etcordflag != "K"){
  1267. sysf_messageBox("취소할 수 없습니다.", "I");
  1268. return;
  1269. }
  1270. }else if(EtcOrdFlag == "Copy2"){ //Copy2: 진찰료 50%(사본발행) 취소
  1271. if(etcordflag != "D"){
  1272. sysf_messageBox("취소할 수 없습니다.", "I");
  1273. return;
  1274. }
  1275. }else if(EtcOrdFlag == "Vacn"){
  1276. if(etcordflag != "L"){
  1277. sysf_messageBox("취소할 수 없습니다.", "I");
  1278. return;
  1279. }
  1280. }
  1281. flag = "-"; //취소
  1282. }
  1283. ds_data.clearData();
  1284. ds_data.addRow();
  1285. ds_data.setColumn(0, "flag", flag);
  1286. ds_data.setColumn(0, "otpt_pid", ds_outpatlist.getColumn(iRow, "pid"));
  1287. ds_data.setColumn(0, "otpt_orddd", ds_outpatlist.getColumn(iRow, "orddd"));
  1288. ds_data.setColumn(0, "otpt_cretno", ds_outpatlist.getColumn(iRow, "cretno"));
  1289. var oParam = {};
  1290. oParam.id = "TXMNO00107";
  1291. oParam.service = "outcareapp.OutCareMngt";
  1292. oParam.method = "reqSetEtcOrdFlagUpdt";
  1293. oParam.inds = "req=" + "ds_data";
  1294. oParam.async = false;
  1295. oParam.callback = "cf_TXMNO00107";
  1296. tranf_submit(oParam);
  1297. }
  1298. function cf_TXMNO00107(sSvcId, nErrorCode, sErrorMsg) {
  1299. if(nErrorCode > -1) {
  1300. fReqOutPatList();
  1301. }
  1302. }
  1303. function fOpenChgDrGrup() {
  1304. div_chgdrinfo.visible = true;
  1305. }
  1306. function fChgDrInfo() {
  1307. var iRow = ds_outpatlist.rowposition;
  1308. // 접수 상태일때만 의사변경 가능하도록 함.
  1309. var elbulbodstat = ds_outpatlist.getColumn(iRow, "elbulbodstat");
  1310. var orddeptcd = ds_cond.getColumn(0, "orddeptcd");
  1311. if (elbulbodstat != "0" ) {
  1312. sysf_messageBox("환자 접수 상태일때만 의사변경이 가능합니다.", "C") ;
  1313. return;
  1314. }
  1315. // 진료과가 같을 경우만 업데이트 가능하도록 함.
  1316. if (orddeptcd != sysf_getUserInfo("dutplcecd")) {
  1317. sysf_messageBox("로그인한 진료과와 환자의 진료과가 같을 경우만 의사 변경이 가능합니다.", "C") ;
  1318. return;
  1319. }
  1320. var pid = ds_outpatlist.getColumn(iRow, "pid");
  1321. var orddd = ds_outpatlist.getColumn(iRow, "orddd");
  1322. var ordtm = ds_outpatlist.getColumn(iRow, "ordtm");
  1323. var cretno = ds_outpatlist.getColumn(iRow, "cretno");
  1324. var subdeptcd = "";//ds_outpatlist.getColumn(iRow, "subdeptcd"); // 해당 컬럼 없음
  1325. var centcd = ds_outpatlist.getColumn(iRow, "centcode");
  1326. var orddrid = ds_outpatlist.getColumn(iRow, "orddrid");
  1327. var rsrvflag = ds_outpatlist.getColumn(iRow, "rsrvflag");
  1328. var instcd = ds_outpatlist.getColumn(iRow, "instcd");
  1329. var fsexamflag = ds_outpatlist.getColumn(iRow, "fsexamflag");
  1330. var chgorddrid = ds_cond.getColumn(0, "chgorddrid");
  1331. if (ds_userlist.lookup("userid", chgorddrid, "refseq") == "A") {
  1332. sysf_messageBox("선택진료의로 변경은 불가능합니다. 원무팀에서 변경하시기 바랍니다.", "C") ;
  1333. return;
  1334. }
  1335. if (ds_userlist.lookup("userid", orddrid, "refseq") == "A") {
  1336. sysf_messageBox("선택진료의에서의 변경은 불가능합니다. 원무팀에서 변경하시기 바랍니다.", "C") ;
  1337. return;
  1338. }
  1339. ds_savedata.clearData();
  1340. ds_savedata.addRow();
  1341. ds_savedata.setColumn(0, "otpt_workflag" , "J");
  1342. ds_savedata.setColumn(0, "otpt_pid" , pid);
  1343. ds_savedata.setColumn(0, "otpt_orddd_old" , orddd);
  1344. ds_savedata.setColumn(0, "otpt_ordtm_old" , ordtm);
  1345. ds_savedata.setColumn(0, "otpt_cretno_old" , cretno);
  1346. ds_savedata.setColumn(0, "otpt_orddeptcd_old" , orddeptcd);
  1347. ds_savedata.setColumn(0, "otpt_subdeptcd_old" , subdeptcd);
  1348. ds_savedata.setColumn(0, "otpt_centcd_old" , centcd);
  1349. ds_savedata.setColumn(0, "otpt_orddrid_old" , orddrid);
  1350. ds_savedata.setColumn(0, "otpt_rsrvflag_old" , rsrvflag);
  1351. ds_savedata.setColumn(0, "otpt_orddd_new" , orddd);
  1352. ds_savedata.setColumn(0, "otpt_ordtm_new" , ordtm);
  1353. ds_savedata.setColumn(0, "otpt_cretno_new" , cretno);
  1354. ds_savedata.setColumn(0, "otpt_orddeptcd_new" , orddeptcd);
  1355. ds_savedata.setColumn(0, "otpt_subdeptcd_new" , subdeptcd);
  1356. ds_savedata.setColumn(0, "otpt_centcd_new" , centcd);
  1357. ds_savedata.setColumn(0, "otpt_orddrid_new" , chgorddrid);
  1358. ds_savedata.setColumn(0, "otpt_rsrvflag_new" , rsrvflag);
  1359. ds_savedata.setColumn(0, "otpt_updtcnclresn" , "");
  1360. ds_savedata.setColumn(0, "otpt_instcd" , instcd);
  1361. ds_savedata.setColumn(0, "otpt_fsexamflag_old" , fsexamflag);
  1362. ds_savedata.setColumn(0, "checkfsexamyn" , "N");
  1363. ds_savedata.setColumn(0, "sess_userid" , sysf_getUserInfo("userid"));
  1364. // 재조회하기 위한 값을 셋해준다.
  1365. ds_savedata.setColumn(0, "pid" , ds_cond.getColumn(0, "pid"));
  1366. ds_savedata.setColumn(0, "orddd" , ds_cond.getColumn(0, "orddd"));
  1367. ds_savedata.setColumn(0, "orddeptcd" , ds_cond.getColumn(0, "orddeptcd"));
  1368. ds_savedata.setColumn(0, "orddrid" , ds_cond.getColumn(0, "orddrid"));
  1369. ds_savedata.setColumn(0, "elbulbodstat" , ds_cond.getColumn(0, "elbulbodstat"));
  1370. ds_savedata.setColumn(0, "deptflag" , ds_cond.getColumn(0, "deptflag"));
  1371. ds_savedata.setColumn(0, "chkprcp" , ds_cond.getColumn(0, "chkprcp"));
  1372. ds_savedata.setColumn(0, "speedflag" , ds_cond.getColumn(0, "speedflag"));
  1373. //20191031 이돈희 문제점 : 진료의 변경시 재진환자가 초진환자가 됨
  1374. // 해결 : 원무에 EMR화면에서 진료의 변경 정보를 전달함
  1375. ds_savedata.setColumn(0, "otpt_emrchangedoc" , "Y");
  1376. var oParam = {};
  1377. oParam.id = "TXMMO04206";
  1378. oParam.service = "prcpmngtapp.EtcPrcpMngt";
  1379. oParam.method = "reqExeChgPatDrInfo";
  1380. oParam.inds = "req=" + "ds_savedata";
  1381. oParam.async = false;
  1382. oParam.callback = "cf_TXMMO04206";
  1383. tranf_submit(oParam);
  1384. }
  1385. function cf_TXMMO04206(sSvcId, nErrorCode, sErrorMsg) {
  1386. if(nErrorCode != 0) {
  1387. sysf_messageBox("의사변경에 실패했습니다.", "C");
  1388. }
  1389. div_chgdrinfo.visible = false;
  1390. fReqOutPatList();
  1391. }
  1392. /**
  1393. * @desc : 안전사고 보고
  1394. * @param :
  1395. * @return :
  1396. * @author : 엄영만
  1397. * @---------------------------------------------------
  1398. */
  1399. function fPatQi(){
  1400. var currow = ds_outpatlist.rowposition;
  1401. var pid = ds_outpatlist.getColumn(currow, "pid");
  1402. var orddd = ds_outpatlist.getColumn(currow, "orddd");
  1403. var cretno = ds_outpatlist.getColumn(currow, "cretno");
  1404. var ordtype = "O";
  1405. var oprsrvno = "";
  1406. frmf_setParameter("SMMQR00100_PARAM2", pid + "▦" + orddd + "▦" + cretno + "▦" + ordtype+"▦" + oprsrvno);
  1407. frmf_modal("SMMQR00100", "SMMQR00100", null, null, null, null, null, null, null, null, null, null, "M");
  1408. }
  1409. /**
  1410. * @desc : 외래예약현황출력
  1411. * @param :
  1412. * @return :
  1413. * @author : 엄영만 15.05.20 현행화
  1414. * @---------------------------------------------------
  1415. */
  1416. function fPrintOutRsrvState() {
  1417. var sOrdDeptCd = ds_cond.getColumn(0, "orddeptcd"); //model.getValue("root/main/cond/orddeptcd");
  1418. var sOrdDrId = ds_cond.getColumn(0, "orddrid"); //model.getValue("root/main/cond/orddrid");
  1419. var sOrdDeptNm = ds_orddept.lookup("deptcd", sOrdDeptCd, "depthngnm"); //model.getValue("/root/init/orddept/dept[deptcd='" + sOrdDeptCd + "']/depthngnm");
  1420. var sOrdDrNm = ds_userlist.lookup("userid", sOrdDrId, "usernm"); //model.getValue("/root/init/userlist/usercombo[userid='" + sOrdDrId + "']/usernm");
  1421. frmf_setParameter("SPMMO90400_orddeptcd", sOrdDeptCd);
  1422. frmf_setParameter("SPMMO90400_orddeptnm", sOrdDeptNm);
  1423. frmf_setParameter("SPMMO90400_centcd", "-");
  1424. frmf_setParameter("SPMMO90400_centnm", "");
  1425. frmf_setParameter("SPMMO90400_orddrid", sOrdDrId);
  1426. frmf_setParameter("SPMMO90400_orddrnm", sOrdDrNm);
  1427. //frmf_open("SPMMO90400", "SPMMO90400");
  1428. frmf_modal("SPMMO90400", "SPMMO90400");
  1429. }
  1430. /**
  1431. * @desc : 환자라벨출력
  1432. * @param :
  1433. * @return :
  1434. * @author : 엄영만
  1435. * @---------------------------------------------------
  1436. */
  1437. function fPrintPatLabel(){
  1438. var currow = ds_outpatlist.rowposition;
  1439. var pid = ds_outpatlist.getColumn(currow, "pid");
  1440. var patnm = ds_outpatlist.getColumn(currow, "hngnm");
  1441. var sexage = ds_outpatlist.getColumn(currow, "sexage");
  1442. frmf_setParameter("SMMMB00100_scrnid" , "SMMMO04100");
  1443. frmf_setParameter("SMMMB00100_pid" , pid);
  1444. frmf_setParameter("SMMMB00100_patnm" , patnm);
  1445. frmf_setParameter("SMMMB00100_sexage" , sexage);
  1446. frmf_modal("SMMMB00100", "SMMMB00100", null, null, null, null, null, null, null, null, null, null, "M");
  1447. }
  1448. function fSendSmsOutPat(){
  1449. fSendSmsPatList(grd_outpatlist, ds_outpatlist);
  1450. }
  1451. function fChngGrdFontColor(color){
  1452. if(color == undefined || color == "" || color == "ffffff")
  1453. color = "default";
  1454. else
  1455. color = "#" + color;
  1456. return color;
  1457. }
  1458. ]]></Script>