SMMMO05700.xjs 47 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <Script type="xscript4.0"><![CDATA[/***************************************************************************************
  3. * System Name : KNUH2.0
  4. * Job Name : EMR
  5. * Creator :
  6. * Make Date : 2015-02-03
  7. * Description :
  8. *---------------------------------------------------------------------------------------
  9. * Modify Date Modifier Modify Description
  10. *---------------------------------------------------------------------------------------
  11. * 2015-02-03 Live Converter TF->XP
  12. *
  13. *---------------------------------------------------------------------------------------
  14. ****************************************************************************************/
  15. var sOPSCHERECINFO_PATH = ds_main_opscherecinfo;
  16. var sOPSCHERECLIST_PATH = ds_main_opschereclist;
  17. var sPATORDINFOLIST_PATH = ds_patordinfolist;
  18. var gButtonID = "";
  19. //2012/06/26 Start
  20. // 수술 예방적 항생제 관련
  21. var nodecnt = "";
  22. //2012/06/26 End
  23. var arErrorCode = new HashArray();
  24. //=======================================================================================
  25. // Function
  26. //---------------------------------------------------------------------------------------
  27. /****************************************************************************************
  28. * Function : fInitialize_SMMMO05700
  29. * Description : 수술 예약 장부 등록 화면 초기화
  30. * Argument :
  31. * return type :
  32. * Creator :
  33. ****************************************************************************************/
  34. function fInitialize_SMMMO05700(){
  35. sOPSCHERECLIST_PATH.clear();
  36. fClkBtnInit();
  37. if( !utlf_isNull(sysf_getUserInfo("dutplcecd"))) ds_main_opscherecinfo.setColumn(0,"perfdeptcd", sysf_getUserInfo("dutplcecd"));
  38. if( !utlf_isNull(sysf_getUserId())) ds_main_opscherecinfo.setColumn(0,"perfdrid", sysf_getUserId());
  39. lf_mmbfGetDeptCodeComboList(ds_init_orddept, "O");
  40. // addComboInstance("/root/init/orddept", "deptcd^depthngnm", "-^전체", "dept"); //부서콤보 전체항목 추가
  41. dsf_addDsItem(ds_init_orddept, "deptcd", "depthngnm", "전체", "-");
  42. lf_mmbfGetDeptCodeComboList(ds_init_orddept2, "O");
  43. var deptcd = ds_init_orddept.getColumn(ds_init_orddept.findRow("deptcd",sysf_getUserInfo("dutplcecd")),"deptcd");
  44. if(utlf_isNull(deptcd)) {
  45. ds_main_cond.setColumn(0,"orddeptcd", "-");
  46. }
  47. lf_mmbfGetUserComboList(ds_init_userlist, sysf_getUserInfo("dutplcecd"), "0330", "", "", "", "", "", "", "");
  48. lf_mmbfGetUserComboList(ds_init_userlist2, sysf_getUserInfo("dutplcecd"), "0330", "", "", "", "", "", "", "");
  49. lf_mmbfGetUserComboList(ds_init_userlist3, sysf_getUserInfo("dutplcecd"), "0330", "", "", "", "", "", "", "");
  50. // addComboInstance("/root/init/userlist2", "userid^usernm", "-^전체", "usercombo"); //부서콤보 전체항목 추가
  51. // addComboInstance("/root/init/userlist3", "userid^usernm", "^전체", "usercombo"); //부서콤보 전체항목 추가
  52. dsf_addDsItem(ds_init_userlist2, "userid", "usernm", "전체", "-");
  53. dsf_addDsItem(ds_init_userlist3, "userid", "usernm", "전체", "");
  54. ds_main_cond.setColumn(0,"perfdrid", "-");
  55. ds_main_cond.setColumn(0,"scheperfdrid", "");
  56. // zbcfGetCodeList(new Array("M0014", "M0017", "M0020"), new Array("/root/init/M0014", "/root/init/M0017", "/root/init/M0020"));
  57. var arrParam = [{dsNm: "ds_init_M0014", cdGrpId: "M0014"}
  58. ,{dsNm: "ds_init_M0017", cdGrpId: "M0017"}
  59. ,{dsNm: "ds_init_M0020", cdGrpId: "M0020"}
  60. ]
  61. appf_getCodeList(arrParam);
  62. // reqOpRoomList(getCurrentDate(), "/root/init/oproomlist" , "total"); //수술실 조회
  63. lf_reqOpRoomList(utlf_getCurrentDate(), ds_init_oproomlist, ds_init_opallroomlist, "total");
  64. // reqOpRoomList(getCurrentDate(), "/root/init/oproomlist2", "total"); //수술실 조회 (일별 가능한 수술실 조회가 아닌 수술실 전체 조회)
  65. lf_reqOpRoomList(utlf_getCurrentDate(), ds_init_oproomlist2, ds_init_opallroomlist2, "total");
  66. // addComboInstance("/root/init/oproomlist2", "oproomcd^oproomnm", "-^전체", "oproomlist"); //수술실콤보 전체항목 추가
  67. dsf_addDsItem(ds_init_oproomlist2, "oproomcd", "oproomnm", "전체", "-");
  68. // mmbfGetHardCodeInfoNm("/root/send/reqdata", "/root/init/oppatflag", 84); //수술환자구분
  69. lf_getHardCDList("N", 84, null, ds_init_oppatflag);
  70. fChkPatTopInfoParam();
  71. ds_main_cond.setColumn(0,"fromdd",utlf_getCurrentDate()); //시작일자
  72. var todd = (utlf_getCurrentDate().toDate()).getAddDate(3);
  73. todd = todd.getDateFormat();
  74. ds_main_cond.setColumn(0,"todd" , todd); //종료일자
  75. ds_main_cond.setColumn(0,"oproomcd" , "-"); //수술실
  76. ds_main_cond.setColumn(0,"perfdeptcd", sysf_getUserInfo("dutplcecd"));
  77. ds_main_cond.setColumn(0,"year" , utlf_getCurrentDate().substr(0, 4)); //year
  78. ds_main_cond.setColumn(0,"month" , utlf_getCurrentDate().substr(4, 2)); //month
  79. // var ev = new ItemChangeEventInfo;
  80. // frmf_inputEnterKey("cmb_schedept", "onitemchanged", ev );
  81. gButtonID = "btn_".concat(ds_main_cond.getColumn(0,"month")); //select된 button의 color를 변경해 준다.
  82. var btnobj = components[gButtonID];
  83. //btnobj.attribute("class") = "btn5_letter2";
  84. btnobj.class = "btn5"
  85. // grd_calendar.dataheight = 58;
  86. // grd_calendar.setFormatRowProperty(1,"size",58); // 그리드 속성에서 지정
  87. fReqOpScheRecCalendar();
  88. //2012/06/25 Start
  89. //수술 예방적 항생제 관련
  90. // mmbfGetHardCodeInfo("/root/send/reqdata", "/root/temp/opcd", 5606);
  91. lf_getHardCDList("N", 5606, null, ds_temp_opcd);
  92. nodecnt = ds_temp_opcd.rowcount;
  93. //2012/06/25 End
  94. //fReqDiagList();
  95. // reqOrderInfoOfCol("SMMMO05700", "grd_opschelist");
  96. dsf_makeValue(ds_send_reqdata,"scrnid","string","SMMMO05700");
  97. reqOrderInfoOfCol(ds_send_reqdata, ds_init_gridseq, "SMMMO05700", grd_opschelist);
  98. }
  99. /****************************************************************************************
  100. * Function : fClkBtnInit
  101. * Description : 수술 예약 장부 등록값 초기화
  102. * Argument :
  103. * return type :
  104. * Creator :
  105. ****************************************************************************************/
  106. function fClkBtnInit(){
  107. sOPSCHERECINFO_PATH.clearData();
  108. sOPSCHERECINFO_PATH.addRow();
  109. sOPSCHERECINFO_PATH.setColumn(0,"opschedd",utlf_getCurrentDate());
  110. sOPSCHERECINFO_PATH.setColumn(0,"status" ,"i");
  111. ipt_opcd.enable = true;
  112. ipt_opnm.enable = true;
  113. ipt_diagcd.enable = true;
  114. ipt_diagnm.enable = true;
  115. }
  116. /****************************************************************************************
  117. * Function : fChkPatTopInfoParam
  118. * Description : parameter 점검 및 상단정보 조회
  119. * Argument :
  120. * return type :
  121. * Creator :
  122. ****************************************************************************************/
  123. function fChkPatTopInfoParam(){
  124. if(frmf_checkOpener()){
  125. var param = opener.frmf_getParameter("SMMMO05700_param");
  126. if(!utlf_isNull(param)){ //parameter정보가 있는 경우
  127. param = param.split("▦");
  128. var pid = param[0];
  129. var hngnm = param[1];
  130. var sex = param[2];
  131. var age = param[3];
  132. var orddd = param[6];
  133. var orddeptcd = param[7];
  134. var ioflag = param[8];
  135. }else{ //parameter정보가 없는 경우, 상단정보 검사
  136. var paminfo = sysf_getGlobalVariable("paminfo");
  137. var patflag = sysf_getGlobalVariable("patflag");
  138. if(!utlf_isNull(paminfo)){ //상단정보가 있는 경우
  139. dsf_setCSVToDs("ds_paminfo", paminfo)
  140. dsf_setCSVToDs("ds_patflag", patflag)
  141. var ioflag = ds_patflag.getColumn(0,"prcpgenrflag");
  142. if(ioflag == "I"){
  143. var orddd = ds_paminfo.getColumn(0,"indd");
  144. }else{
  145. var orddd = ds_paminfo.getColumn(0,"orddd");
  146. }
  147. var pid = ds_paminfo.getColumn(0,"pid");
  148. var hngnm = ds_paminfo.getColumn(0,"hngnm");
  149. var sex = ds_paminfo.getColumn(0,"sex");
  150. var age = ds_paminfo.getColumn(0,"age");
  151. var orddeptcd = ds_paminfo.getColumn(0,"orddeptcd");
  152. var insukind = ds_paminfo.getColumn(0,"insukind");
  153. var suppkind = ds_paminfo.getColumn(0,"suppkind");
  154. }else{ //상단정보가 없는 경우
  155. return;
  156. }
  157. }
  158. sOPSCHERECINFO_PATH.setColumn(0,"pid" , pid);
  159. sOPSCHERECINFO_PATH.setColumn(0,"hngnm" , hngnm);
  160. sOPSCHERECINFO_PATH.setColumn(0,"sex" , sex);
  161. sOPSCHERECINFO_PATH.setColumn(0,"age" , age);
  162. sOPSCHERECINFO_PATH.setColumn(0,"insukind" , insukind);
  163. sOPSCHERECINFO_PATH.setColumn(0,"suppkind" , suppkind);
  164. }
  165. fReqPatCurrentDiagList(pid, orddd, orddeptcd, ioflag); //현재 환자 진단 조회
  166. }
  167. /****************************************************************************************
  168. * Function : fReqPatCurrentDiagList
  169. * Description : 환자 현재 진단 조회 (진단구분코드:M)
  170. * Argument : pid : 환자번호
  171. * : orddd : 진료일자
  172. * : orddeptcd : 진료부서
  173. * : ioflag : 입원/외래구분
  174. * return type :
  175. * Creator :
  176. ****************************************************************************************/
  177. function fReqPatCurrentDiagList(pid, orddd, orddeptcd, ioflag){
  178. ds_send_reqdata.clear();
  179. dsf_makeValue(ds_send_reqdata,"pid" ,"string", pid);
  180. dsf_makeValue(ds_send_reqdata,"orddd" ,"string", orddd);
  181. dsf_makeValue(ds_send_reqdata,"orddeptcd" ,"string", orddeptcd);
  182. dsf_makeValue(ds_send_reqdata,"ioflag" ,"string", ioflag);
  183. dsf_makeValue(ds_send_reqdata,"diagkindcdflag","string", "M");
  184. var oParam = {};
  185. oParam.id = "TRMMO00114";
  186. oParam.service = "prcpmngtapp.PatDiagMngt";
  187. oParam.method = "reqGetPatCurrentDiag";
  188. oParam.inds = "req=ds_send_reqdata";
  189. oParam.outds = "ds_main_diagcdlist=diagcdlist ds_main_opcdlist=opcdlist";
  190. oParam.async = false;
  191. oParam.callback = "";
  192. tranf_submit(oParam);
  193. }
  194. /****************************************************************************************
  195. * Function : fReqOpScheRecCalendar
  196. * Description : 수술예약장부 달력정보 조회
  197. * Argument :
  198. * return type :
  199. * Creator :
  200. ****************************************************************************************/
  201. function fReqOpScheRecCalendar(){
  202. ds_send_reqdata.clear();
  203. dsf_makeValue(ds_send_reqdata,"year" ,"string", ds_main_cond.getColumn(0,"year"));
  204. dsf_makeValue(ds_send_reqdata,"month" ,"string", ds_main_cond.getColumn(0,"month"));
  205. dsf_makeValue(ds_send_reqdata,"perfdeptcd" ,"string", ds_main_cond.getColumn(0,"perfdeptcd"));
  206. dsf_makeValue(ds_send_reqdata,"perfdrid" ,"string", ds_main_cond.getColumn(0,"scheperfdrid"));
  207. var oParam = {};
  208. oParam.id = "TRMMO05702";
  209. oParam.service = "prcpmngtapp.OpMngt";
  210. oParam.method = "reqGetOpScheRecCalendar";
  211. oParam.inds = "req=ds_send_reqdata";
  212. oParam.outds = "ds_main_opschecal=opschecal";
  213. oParam.async = false;
  214. oParam.callback = "cf_TRMMO05702";
  215. tranf_submit(oParam);
  216. }
  217. /****************************************************************************************
  218. * Function : cf_TRMMO05702
  219. * Description : TRMMO05702 콜백함수
  220. * Argument :
  221. * return type :
  222. * Creator :
  223. ****************************************************************************************/
  224. function cf_TRMMO05702(sSvcId, nErrorCode, sErrorMsg) {
  225. if(nErrorCode < 0) return;
  226. else fMakeCalendar();
  227. }
  228. /****************************************************************************************
  229. * Function : fMakeCalendar
  230. * Description : 달력값 설정
  231. * Argument :
  232. * return type :
  233. * Creator :
  234. ****************************************************************************************/
  235. function fMakeCalendar(){
  236. // model.removeNodeset("/root/main/week/week");
  237. //
  238. // grd_calendar.addRow(false, true);
  239. // var row = 0;
  240. // var col = 0;
  241. // var patsum = 0;
  242. // var totcnt = getNodeSetCnt("/root/main/opschecal/opschecal");
  243. // for(var i = 1; i <= totcnt ; i++){
  244. // row = model.getValue("/root/main/opschecal/opschecal[" + i + "]/week");
  245. // col = model.getValue("/root/main/opschecal/opschecal[" + i + "]/day") - 1;
  246. // patsum = model.getValue("/root/main/opschecal/opschecal[" + i + "]/patsum");
  247. // dutflag = model.getValue("/root/main/opschecal/opschecal[" + i + "]/dutflag");
  248. // if(dutflag == 4){ //토
  249. // grd_calendar.cellstyle("color", row, col) = "#0000FF";
  250. // }else if(dutflag == 8){ //일
  251. // grd_calendar.cellstyle("color", row, col) = "#FF0000";
  252. // }else{ //휴일
  253. // grd_calendar.cellstyle("color", row, col) = "#000000";
  254. // }
  255. // grd_calendar.valueMatrix(row, col) = i + "\n(" + patsum + ")";
  256. // if(col == 6){
  257. // grd_calendar.addRow(false, true);
  258. // }
  259. // }
  260. // grd_calendar.rebuild();
  261. var totcnt = ds_main_opschecal.rowcount;
  262. //var wcnt = ds_calendar.getColumn(totcnt-1,"week");
  263. ds_main_week.clear();
  264. for(var i = 0 ; i < totcnt ; i++) {
  265. if(ds_main_opschecal.getColumn(i,"day") == "1") {
  266. dsf_makeValue(ds_main_week,"sun","string",parseInt(ds_main_opschecal.getColumn(i,"basedd").substr(6,7))+"\n("+ds_main_opschecal.getColumn(i,"patsum")+")\n\n"+ds_main_opschecal.getColumn(i,"dutflag"),ds_main_opschecal.getColumn(i,"week")-1);
  267. }
  268. if(ds_main_opschecal.getColumn(i,"day") == "2") {
  269. dsf_makeValue(ds_main_week,"mon","string",parseInt(ds_main_opschecal.getColumn(i,"basedd").substr(6,7))+"\n("+ds_main_opschecal.getColumn(i,"patsum")+")\n\n"+ds_main_opschecal.getColumn(i,"dutflag"),ds_main_opschecal.getColumn(i,"week")-1);
  270. }
  271. if(ds_main_opschecal.getColumn(i,"day") == "3") {
  272. dsf_makeValue(ds_main_week,"tue","string",parseInt(ds_main_opschecal.getColumn(i,"basedd").substr(6,7))+"\n("+ds_main_opschecal.getColumn(i,"patsum")+")\n\n"+ds_main_opschecal.getColumn(i,"dutflag"),ds_main_opschecal.getColumn(i,"week")-1);
  273. }
  274. if(ds_main_opschecal.getColumn(i,"day") == "4") {
  275. dsf_makeValue(ds_main_week,"wed","string",parseInt(ds_main_opschecal.getColumn(i,"basedd").substr(6,7))+"\n("+ds_main_opschecal.getColumn(i,"patsum")+")\n\n"+ds_main_opschecal.getColumn(i,"dutflag"),ds_main_opschecal.getColumn(i,"week")-1);
  276. }
  277. if(ds_main_opschecal.getColumn(i,"day") == "5") {
  278. dsf_makeValue(ds_main_week,"thu","string",parseInt(ds_main_opschecal.getColumn(i,"basedd").substr(6,7))+"\n("+ds_main_opschecal.getColumn(i,"patsum")+")\n\n"+ds_main_opschecal.getColumn(i,"dutflag"),ds_main_opschecal.getColumn(i,"week")-1);
  279. }
  280. if(ds_main_opschecal.getColumn(i,"day") == "6") {
  281. dsf_makeValue(ds_main_week,"fri","string",parseInt(ds_main_opschecal.getColumn(i,"basedd").substr(6,7))+"\n("+ds_main_opschecal.getColumn(i,"patsum")+")\n\n"+ds_main_opschecal.getColumn(i,"dutflag"),ds_main_opschecal.getColumn(i,"week")-1);
  282. }
  283. if(ds_main_opschecal.getColumn(i,"day") == "7") {
  284. dsf_makeValue(ds_main_week,"sat","string",parseInt(ds_main_opschecal.getColumn(i,"basedd").substr(6,7))+"\n("+ds_main_opschecal.getColumn(i,"patsum")+")\n\n"+ds_main_opschecal.getColumn(i,"dutflag"),ds_main_opschecal.getColumn(i,"week")-1);
  285. }
  286. }
  287. ds_main_week.rowposition = -1;
  288. // ipt_opschedd.value = "";
  289. }
  290. /****************************************************************************************
  291. * Function : fReqDiagList
  292. * Description : 환자의 진단 조회
  293. * Argument :
  294. * return type :
  295. * Creator :
  296. ****************************************************************************************/
  297. function fReqDiagList(){
  298. var paminfocsv = sysf_getGlobalVariable("paminfo");
  299. var patflagcsv = sysf_getGlobalVariable("patflag");
  300. ds_main_cond.setColumn(0,"orddeptcd",sysf_getUserInfo("dutplcecd")); //진료과
  301. ds_main_cond.setColumn(0,"perfdrid" ,sysf_getUserInfo("userid")); //의사
  302. if(!utlf_isNull(paminfocsv) && paminfocsv.length > 1){
  303. //ds_paminfo.clear(); //상단화면 정보 초기화
  304. dsf_setCSVToDs("ds_paminfo",paminfocsv);
  305. }else{
  306. return;
  307. }
  308. if(!utlf_isNull(patflagcsv) && patflagcsv.length > 1){
  309. //ds_patflag.clear(); //환자구분 정보 초기화
  310. dsf_setCSVToDs("ds_patflag",patflagcsv);
  311. }else{
  312. return;
  313. }
  314. var ioflag = ds_patflag.getColumn(0,"prcpgenrflag");
  315. var pid = ds_paminfo.getColumn(0,"pid");
  316. var orddeptcd = ds_paminfo.getColumn(0,"orddeptcd");
  317. if(ioflag == "O" || ioflag == "S"){
  318. var orddd = ds_paminfo.getColumn(0,"orddd");
  319. }else{
  320. var orddd = ds_paminfo.getColumn(0,"indd");
  321. }
  322. ds_send_reqdata.clear();
  323. dsf_makeValue(ds_send_reqdata,"pid" ,"string", pid);
  324. dsf_makeValue(ds_send_reqdata,"orddeptcd","string", orddeptcd);
  325. dsf_makeValue(ds_send_reqdata,"orddd" ,"string", orddd);
  326. dsf_makeValue(ds_send_reqdata,"ioflag" ,"string", ioflag);
  327. var oParam = {};
  328. oParam.id = "TRMMO00114";
  329. oParam.service = "prcpmngtapp.PatDiagMngt";
  330. oParam.method = "reqGetPatCurrentDiag";
  331. oParam.inds = "req=ds_send_reqdata";
  332. oParam.outds = "ds_main_diagcdlist=diagcdlist ds_main_opcdlist=opcdlist";
  333. oParam.async = false;
  334. oParam.callback = "cf_TRMMO00114";
  335. tranf_submit(oParam);
  336. fOpenDiagLnkOpList(); //환자의 진단연계수술 조회
  337. }
  338. /****************************************************************************************
  339. * Function : cf_TRMMO00114
  340. * Description : TRMMO00114 콜백함수
  341. * Argument :
  342. * return type :
  343. * Creator :
  344. ****************************************************************************************/
  345. function cf_TRMMO00114(sSvcId, nErrorCode, sErrorMsg) {
  346. if(nErrorCode < 0) return;
  347. else {
  348. var diagcd = ds_main_diagcdlist.getColumn(0,"diagcd");
  349. var dispdiagcd = ds_main_diagcdlist.getColumn(0,"icd10cd");
  350. var diagengnm = ds_main_diagcdlist.getColumn(0,"diagengnm");
  351. sOPSCHERECINFO_PATH.setColumn(0,"diagcd" , diagcd);
  352. sOPSCHERECINFO_PATH.setColumn(0,"dispdiagcd", dispdiagcd);
  353. sOPSCHERECINFO_PATH.setColumn(0,"diagnm" , diagengnm);
  354. }
  355. }
  356. /****************************************************************************************
  357. * Function : fOpenDiagLnkOpList
  358. * Description : 환자의 진단연계수술 조회
  359. * Argument :
  360. * return type :
  361. * Creator :
  362. ****************************************************************************************/
  363. function fOpenDiagLnkOpList(){
  364. var diagcd = sOPSCHERECINFO_PATH.getColumn(0,"diagcd");
  365. frmf_clearParameter("SPMMO04000_dispopcd");
  366. frmf_clearParameter("SPMMO04000_orgopcd");
  367. frmf_clearParameter("SPMMO04000_opengnm");
  368. if(!utlf_isNull(diagcd)){
  369. frmf_setParameter("SPMMO04000_userid" , sysf_getUserInfo("userid"));
  370. frmf_setParameter("SPMMO04000_orddeptcd", sysf_getUserInfo("dutplcecd"));
  371. frmf_setParameter("SPMMO04000_diagcd" , diagcd);
  372. // modal("SPMMO04000");
  373. frmf_modal("SPMMO04000","SPMMO04000",null,null,null,null,null,null,null,null,null,null,"M");
  374. var useyn = frmf_getParameter("SPMMO04000_useyn");
  375. if(useyn == "Y"){
  376. var dispopcd = frmf_getParameter("SPMMO04000_dispopcd");
  377. var opcd = frmf_getParameter("SPMMO04000_orgopcd");
  378. var opengnm = frmf_getParameter("SPMMO04000_opengnm");
  379. sOPSCHERECINFO_PATH.setColumn(0,"dispopcd", dispopcd);
  380. sOPSCHERECINFO_PATH.setColumn(0,"opcd" , opcd);
  381. sOPSCHERECINFO_PATH.setColumn(0,"opnm" , opengnm);
  382. }
  383. frmf_setParameter("SPMMO04000_useryn", "");
  384. } else {
  385. //sysf_messageBox("입력된 진단이 없습니다.", "I");
  386. }
  387. }
  388. /****************************************************************************************
  389. * Function : fSelectCalendar
  390. * Description : 달력 선택시 수술예약 리스트 조회
  391. * Argument :
  392. * return type :
  393. * Creator :
  394. ****************************************************************************************/
  395. function fSelectCalendar(){
  396. // sysf_trace("ds_main_week.rowposition : "+ds_main_week.rowposition);
  397. // sysf_trace("grd_calendar.getCellPos() : "+grd_calendar.getCellPos());
  398. // sysf_trace(grd_calendar.getCellText(ds_main_week.rowposition,grd_calendar.getCellPos()));
  399. if(ds_main_week.rowposition > -1 && !utlf_isNull(grd_calendar.getCellText(ds_main_week.rowposition,grd_calendar.getCellPos()))) {
  400. var week = ds_main_week.rowposition +1;
  401. var day = grd_calendar.getCellPos()+1;
  402. var basedd = ds_main_opschecal.getColumn(ds_main_opschecal.findRowExpr("week=='"+week+"' && day=='"+day+"'"),"basedd");
  403. // model.getValue("/root/main/opschecal/opschecal[week = '" + week + "' and day = '" + day + "']/basedd");
  404. ds_main_opscherecinfo.setColumn(0,"opschedd", basedd);
  405. ds_main_cond.setColumn(0,"queryflag", "cal");
  406. ds_main_cond.setColumn(0,"basedd" , basedd);
  407. ds_send_reqdata.copyData(ds_main_cond);
  408. ds_send_reqdata.setColumn(0,"perfdrid",ds_main_cond.getColumn(0,"scheperfdrid"));
  409. var oParam = {};
  410. oParam.id = "TRMMO05701";
  411. oParam.service = "prcpmngtapp.OpMngt";
  412. oParam.method = "reqGetOpScheRecList";
  413. oParam.inds = "req=ds_send_reqdata";
  414. oParam.outds = "ds_main_opschereclist=opschereclist";
  415. oParam.async = false;
  416. oParam.callback = "cf_TRMMO05701";
  417. tranf_submit(oParam);
  418. }
  419. var openflag = ds_main_cond.getColumn(0,"openflag"); //수술실일정 보기가 check된 경우 수술실일정 열기
  420. if(openflag == "Y"){
  421. var param = "r" + "▦" + //status : r조회 전용화면
  422. "" + "▦" + //oproomcd
  423. "" + "▦" + //opregstno
  424. "" + "▦" + //opregsthistno
  425. "" + "▦" + //pid
  426. basedd + "▦" + //opschedd
  427. ds_main_cond.getColumn(0,"perfdeptcd") + "▦" + //perfdeptcd
  428. "" + "▦" + //opfromtmcd
  429. "" + "▦" + //opendtmcd
  430. "opsche" + "▦" + //queryflag
  431. ""; //perfdrid
  432. frmf_setParameter("SPMMO08800_param", param);
  433. // modal("SPMMO08800");
  434. frmf_modal("SPMMO08800","SPMMO08800",null,null,null,null,null,null,null,null,null,null,"M");
  435. }
  436. }
  437. /****************************************************************************************
  438. * Function : cf_TRMMO05701
  439. * Description : TRMMO05701 콜백함수
  440. * Argument :
  441. * return type :
  442. * Creator :
  443. ****************************************************************************************/
  444. function cf_TRMMO05701(sSvcId, nErrorCode, sErrorMsg) {
  445. if(nErrorCode < 0) return;
  446. else fSetOpTimeToHourMin();
  447. }
  448. /****************************************************************************************
  449. * Function : fSetOpTimeToHourMin
  450. * Description : 수술시간 시분초로 변경
  451. * Argument :
  452. * return type :
  453. * Creator :
  454. ****************************************************************************************/
  455. function fSetOpTimeToHourMin(){
  456. for(var i = 0; i < ds_main_opschereclist.rowcount; i++){
  457. var opfromtmcd = sOPSCHERECLIST_PATH.getColumn(i,"opfromtmcd");
  458. var opendtmcd = sOPSCHERECLIST_PATH.getColumn(i,"opendtmcd");
  459. if(utlf_isNull(opfromtmcd) || utlf_isNull(opendtmcd)){
  460. var difftime = 0;
  461. }else{
  462. var difftime = utlf_getTimeInterval(opfromtmcd, opendtmcd);
  463. }
  464. //sOPSCHERECLIST_PATH.setColumn(i,"opusetm", fTransSecToHourMin(difftime));
  465. dsf_makeValue(sOPSCHERECLIST_PATH,"opusetm","string",fTransSecToHourMin(difftime),i);
  466. }
  467. }
  468. /****************************************************************************************
  469. * Function : fTransSecToHourMin
  470. * Description : 초를 시분초로 전환
  471. * Argument :
  472. * return type :
  473. * Creator :
  474. ****************************************************************************************/
  475. function fTransSecToHourMin(sec){
  476. var hr = 3600;
  477. var min = 60;
  478. hour = parseInt(sec/hr);
  479. min = parseInt(sec%hr/min);
  480. var rtnstr = hour + "h " + min + "m ";
  481. return rtnstr;
  482. }
  483. /****************************************************************************************
  484. * Function : fClkBtnReq
  485. * Description : 조회버튼 클릭시, 조회조건으로 검색
  486. * Argument :
  487. * return type :
  488. * Creator :
  489. ****************************************************************************************/
  490. function fClkBtnReq(){
  491. ds_main_cond.setColumn(0,"queryflag", "");
  492. ds_send_reqdata.copyData(ds_main_cond);
  493. var oParam = {};
  494. oParam.id = "TRMMO05701";
  495. oParam.service = "prcpmngtapp.OpMngt";
  496. oParam.method = "reqGetOpScheRecList";
  497. oParam.inds = "req=ds_send_reqdata";
  498. oParam.outds = "ds_main_opschereclist=opschereclist";
  499. oParam.async = false;
  500. oParam.callback = "cf_TRMMO05701";
  501. tranf_submit(oParam);
  502. }
  503. /****************************************************************************************
  504. * Function : fOpenOpSearch
  505. * Description : 수술명 검색 팝업 open
  506. * Argument : pFlag : 처리구분 (code : 코드검색, term : 수술명)
  507. * return type :
  508. * Creator :
  509. ****************************************************************************************/
  510. function fOpenOpSearch(pFlag){
  511. if(pFlag == "code"){
  512. var param = "1▦" +
  513. "1▦E▦" +
  514. utlf_getCurrentDate() + "▦" +
  515. sOPSCHERECINFO_PATH.getColumn(0,"dispopcd");
  516. frmf_setParameter("SPMMO05200_param", param);
  517. } else if(pFlag == "term"){
  518. var opnm = ds_main_opscherecinfo.getColumn(0,"opnm");
  519. var param = "2▦4▦" +
  520. utlf_isHangul(opnm) + "▦" +
  521. utlf_getCurrentDate() + "▦" +
  522. opnm;
  523. frmf_setParameter("SPMMO05200_param", param);
  524. }
  525. // modal("SPMMO05200");
  526. frmf_modal("SPMMO05200","SPMMO05200",null,null,null,null,null,null,null,null,null,null,"M");
  527. var useyn = frmf_getParameter("SPMMO05200_rtn_useyn");
  528. if(useyn == "Y"){
  529. frmf_setParameter("SPMMO05200_rtn_useyn", "N");
  530. var rtnparam = frmf_getParameter("SPMMO05200_rtn_param");
  531. rtnparam = rtnparam.split("▩");
  532. var tmpstr = rtnparam[0];
  533. tmpstr = tmpstr.split("▦");
  534. //alert(tmpstr[0]+"/"+tmpstr[1]+"/"+tmpstr[2]);
  535. sOPSCHERECINFO_PATH.setColumn(0,"dispopcd" , tmpstr[0]);
  536. sOPSCHERECINFO_PATH.setColumn(0,"opcd" , tmpstr[1]);
  537. sOPSCHERECINFO_PATH.setColumn(0,"opnm" , tmpstr[2]);
  538. ipt_opcd.readonly = true;
  539. ipt_opnm.readonly = true;
  540. ipt_diagcd.setFocus();
  541. } else {
  542. sOPSCHERECINFO_PATH.setColumn(0,"dispopcd", "");
  543. sOPSCHERECINFO_PATH.setColumn(0,"opcd" , "");
  544. sOPSCHERECINFO_PATH.setColumn(0,"opnm" , "");
  545. }
  546. }
  547. /****************************************************************************************
  548. * Function : fOpenDiagSearch
  549. * Description : 진단명 검색 팝업 open
  550. * Argument : pFlag : 처리구분 (code : 코드검색, term : 수술명)
  551. * return type :
  552. * Creator :
  553. ****************************************************************************************/
  554. function fOpenDiagSearch(pFlag){
  555. if(pFlag == "code"){
  556. frmf_setParameter("SPMMO00800_cond1", 1);
  557. frmf_setParameter("SPMMO00800_cond2", 1);
  558. frmf_setParameter("SPMMO00800_cond3", "E");
  559. frmf_setParameter("SPMMO00800_cond4", utlf_getCurrentDate());
  560. frmf_setParameter("SPMMO00800_cond5", sOPSCHERECINFO_PATH.getColumn(0,"dispdiagcd"));
  561. }else if(pFlag =="term"){
  562. var diagnm = sOPSCHERECINFO_PATH.getColumn(0,"diagnm");
  563. frmf_setParameter("SPMMO00800_cond1", 2);
  564. frmf_setParameter("SPMMO00800_cond2", 4);
  565. frmf_setParameter("SPMMO00800_cond3", utlf_isHangul(diagnm));
  566. frmf_setParameter("SPMMO00800_cond4", utlf_getCurrentDate());
  567. frmf_setParameter("SPMMO00800_cond5", diagnm);
  568. }
  569. // modal("SPMMO00800");
  570. frmf_modal("SPMMO00800","SPMMO00800",null,null,null,null,null,null,null,null,null,null,"M");
  571. var useyn = frmf_getParameter("SPMMO00800_rtn_useyn");
  572. if(useyn == "Y"){
  573. frmf_setParameter("SPMMO00800_rtn_useyn", "N");
  574. var rtnparam = frmf_getParameter("SPMMO00800_rtn");
  575. rtnparam = rtnparam.split("▩");
  576. var tmpstr = rtnparam[0];
  577. tmpstr = tmpstr.split("▦");
  578. sOPSCHERECINFO_PATH.setColumn(0,"dispdiagcd", tmpstr[1]);
  579. sOPSCHERECINFO_PATH.setColumn(0,"diagcd" , tmpstr[9]);
  580. sOPSCHERECINFO_PATH.setColumn(0,"diagnm" , tmpstr[2]);
  581. ipt_diagcd.readonly = true;
  582. ipt_diagnm.readonly = true;
  583. ipt_opregstremfact.setFocus();
  584. }else{
  585. sOPSCHERECINFO_PATH.setColumn(0,"dispdiagcd", "");
  586. sOPSCHERECINFO_PATH.setColumn(0,"diagcd" , "");
  587. sOPSCHERECINFO_PATH.setColumn(0,"diagnm" , "");
  588. }
  589. }
  590. /****************************************************************************************
  591. * Function : fOpenPatInfo
  592. * Description : 환자진료정보 list 조회
  593. * Argument :
  594. * return type :
  595. * Creator :
  596. ****************************************************************************************/
  597. function fOpenPatInfo(){
  598. var pid = sOPSCHERECINFO_PATH.getColumn(0,"pid");
  599. if(utlf_isNull(pid)){
  600. sysf_messageBox("환자의 등록번호를", "C001");
  601. return;
  602. }
  603. ds_send_reqdata.clear();
  604. dsf_makeValue(ds_send_reqdata,"cond1","string", "1"); //1은 등록번호, 2는 환자명
  605. dsf_makeValue(ds_send_reqdata,"cond2","string", pid); //등록번호
  606. dsf_makeValue(ds_send_reqdata,"cond3","string", sysf_getUserInfo("dutplceinstcd"));
  607. dsf_makeValue(ds_send_reqdata,"cond4","string", "N"); //원무키 기준여부
  608. dsf_makeValue(ds_send_reqdata,"cond5","string", "N"); //당일기준 조회여부
  609. dsf_makeValue(ds_send_reqdata,"cond6","string", "-"); //외래,입원테이블 기준
  610. var oParam = {};
  611. oParam.id = "TRMMO00200";
  612. oParam.service = "prcpmngtapp.PrcpMngt";
  613. oParam.method = "reqGetComnPatOrdInfo";
  614. oParam.inds = "req=ds_send_reqdata";
  615. oParam.outds = "ds_patordinfolist=patordinfolist";
  616. oParam.async = false;
  617. oParam.callback = "cf_TRMMO00200";
  618. tranf_submit(oParam);
  619. if(arErrorCode.pop("TRMMO00200") >= 0){
  620. var nodecnt = sPATORDINFOLIST_PATH.rowcount;
  621. if(nodecnt > 1){
  622. var xpt = this.position.left + 50;
  623. var ypt = this.position.top + 80;
  624. var mon = sysf_getCurrentMonitorNumber();
  625. // var coord = getRelativeCoordinate(xpt, ypt);
  626. // var mon = coord[0];
  627. // xpt = coord[1];
  628. // ypt = coord[2];
  629. // modal("SPMMO09100", mon, xpt, ypt, "patordinfo", "/root/patordinfo", "/root/patordinfo", "", false );
  630. var objArg = new Object();
  631. objArg.arg_ds_patordinfolist = sPATORDINFOLIST_PATH;
  632. frmf_modal("SPMMO09100","SPMMO09100",objArg,null,mon,xpt,ypt,null,null,null,null,null,"M");
  633. param = frmf_getParameter("SPMMO09100_rtn_param");
  634. if(param.length > 0){
  635. model.removeNodeset(sPATORDINFOLIST_PATH);
  636. sPATORDINFOLIST_PATH.clear();
  637. // setCSVToNode("/root/patordinfo", param, "patordinfolist");
  638. dsf_setCSVToDs("ds_patordinfolist", param)
  639. }
  640. }
  641. var ioflag = sPATORDINFOLIST_PATH.getColumn(0,"ioflag");
  642. var pid = sPATORDINFOLIST_PATH.getColumn(0,"pid");
  643. var orddd = sPATORDINFOLIST_PATH.getColumn(0,"orddd");
  644. var cretno = sPATORDINFOLIST_PATH.getColumn(0,"cretno");
  645. var instcd = sPATORDINFOLIST_PATH.getColumn(0,"instcd");
  646. var srchdd = sPATORDINFOLIST_PATH.getColumn(0,"orddd");
  647. ds_send_reqdata.clear();
  648. dsf_makeValue(ds_send_reqdata,"pid" ,"string", pid);
  649. dsf_makeValue(ds_send_reqdata,"orddd" ,"string", orddd);
  650. dsf_makeValue(ds_send_reqdata,"cretno","string", cretno);
  651. // 2008.10.31 등록번호 검색으로 의뢰시 상단 UP 조건 icdr.fromdd
  652. var oParam = {};
  653. oParam.id = "TRMMO00210";
  654. oParam.service = "prcpmngtapp.OpMngt";
  655. oParam.method = "reqGetOpTopInfo";
  656. oParam.inds = "req=ds_send_reqdata";
  657. oParam.outds = "ds_main_topinfo=topinfo";
  658. oParam.async = false;
  659. oParam.callback = "cf_TRMMO00210";
  660. tranf_submit(oParam);
  661. if(arErrorCode.pop("TRMMO00210") >= 0){
  662. var srchdd = ds_main_topinfo.getColumn(0,"fromdd");
  663. }
  664. // (e)
  665. if(ioflag == "I" || ioflag == "D"){
  666. var param = "I" + "▦" + pid + "▦" + orddd + "▦" + cretno + "▦" + instcd + "▦" + srchdd;
  667. } else if(ioflag == "E") {
  668. var param = "E" + "▦" + pid + "▦" + orddd + "▦" + cretno + "▦" + instcd + "▦" + srchdd;
  669. } else {
  670. var param = "O" + "▦" + pid + "▦" + orddd + "▦" + cretno + "▦" + instcd;
  671. }
  672. var useyn = appf_initPatientInfo(param);
  673. if(useyn == true){
  674. fChkPatTopInfoParam();
  675. } else {
  676. return;
  677. }
  678. }
  679. }
  680. /****************************************************************************************
  681. * Function : cf_TRMMO00200
  682. * Description : TRMMO00200 콜백 함수
  683. * Argument :
  684. * return type :
  685. * Creator :
  686. ****************************************************************************************/
  687. function cf_TRMMO00200(sSvcId, nErrorCode, sErrorMsg) {
  688. arErrorCode.push(sSvcId, nErrorCode);
  689. }
  690. /****************************************************************************************
  691. * Function : cf_TRMMO00210
  692. * Description : TRMMO00210 콜백 함수
  693. * Argument :
  694. * return type :
  695. * Creator :
  696. ****************************************************************************************/
  697. function cf_TRMMO00210(sSvcId, nErrorCode, sErrorMsg) {
  698. arErrorCode.push(sSvcId, nErrorCode);
  699. }
  700. /****************************************************************************************
  701. * Function : fReqPatOrdInfo
  702. * Description : 환자 수진정보 조회
  703. * Argument :
  704. * return type :
  705. * Creator :
  706. ****************************************************************************************/
  707. function fReqPatOrdInfo(){
  708. var pid = sOPSCHERECINFO_PATH.getColumn(0,"pid");
  709. if(utlf_isNull(pid)){
  710. sysf_messageBox("환자의 등록번호를", "C001");
  711. return;
  712. }
  713. ds_send_reqdata.clear();
  714. dsf_makeValue(ds_send_reqdata,"cond1","string", "1"); //1은 등록번호, 2는 환자명
  715. dsf_makeValue(ds_send_reqdata,"cond2","string", pid); //등록번호
  716. dsf_makeValue(ds_send_reqdata,"cond3","string", sysf_getUserInfo("dutplceinstcd"));
  717. dsf_makeValue(ds_send_reqdata,"cond4","string", "N"); //원무키 기준여부
  718. dsf_makeValue(ds_send_reqdata,"cond5","string", "N"); //당일기준 조회여부
  719. dsf_makeValue(ds_send_reqdata,"cond6","string", "-"); //외래,입원테이블 기준
  720. var oParam = {};
  721. oParam.id = "TRMMO00200";
  722. oParam.service = "prcpmngtapp.PrcpMngt";
  723. oParam.method = "reqGetComnPatOrdInfo";
  724. oParam.inds = "req=ds_send_reqdata";
  725. oParam.outds = "ds_patordinfolist=patordinfolist";
  726. oParam.async = false;
  727. oParam.callback = "cf_TRMMO00200";
  728. tranf_submit(oParam);
  729. if(arErrorCode.pop("TRMMO00200") >= 0){
  730. // 2008.11.18 로그인 의사 진료과의 최근 수진 이력을 선택한 상태
  731. // sortNodeList("/root/patordinfo/patordinfolist", "orddd", "desc");
  732. grdf_sortNodeList(ds_patordinfolist,"orddd","desc");
  733. // var patlist = model.instance1.selectNodes("/root/patordinfo/patordinfolist[orddeptcd = " + sysf_getUserInfo("dutplcecd") + "and orddd <="+ getCurrentDate() +"]");
  734. var patlist = ds_patordinfolist.filter("orddeptcd == '"+sysf_getUserInfo("dutplcecd")+"' && orddd <= '"+ utlf_getCurrentDate() +"'");
  735. if(patlist.rowcount > 0) {
  736. // var ioflag = patlist.item(0).selectSingleNode("ioflag").text;
  737. // var pid = patlist.item(0).selectSingleNode("pid").text;
  738. // var orddd = patlist.item(0).selectSingleNode("orddd").text;
  739. // var cretno = patlist.item(0).selectSingleNode("cretno").text;
  740. // var instcd = patlist.item(0).selectSingleNode("instcd").text;
  741. var ioflag = patlist.getColumn(0,"ioflag");
  742. var pid = patlist.getColumn(0,"pid");
  743. var orddd = patlist.getColumn(0,"orddd");
  744. var cretno = patlist.getColumn(0,"cretno");
  745. var instcd = patlist.getColumn(0,"instcd");
  746. }else{
  747. var cretno = "";
  748. }
  749. // (e)
  750. ds_send_reqdata.clear();
  751. dsf_makeValue(ds_send_reqdata,"pid" ,"string", pid);
  752. dsf_makeValue(ds_send_reqdata,"orddd" ,"string", orddd);
  753. dsf_makeValue(ds_send_reqdata,"cretno","string", cretno);
  754. // 2008.10.31 등록번호 검색으로 의뢰시 상단 UP 조건 icdr.fromdd
  755. var oParam = {};
  756. oParam.id = "TRMMO00210";
  757. oParam.service = "prcpmngtapp.OpMngt";
  758. oParam.method = "reqGetOpTopInfo";
  759. oParam.inds = "req=ds_send_reqdata";
  760. oParam.outds = "ds_main_topinfo=topinfo";
  761. oParam.async = false;
  762. oParam.callback = "cf_TRMMO00210";
  763. tranf_submit(oParam);
  764. if(arErrorCode.pop("TRMMO00210") >= 0){
  765. var srchdd = ds_main_topinfo.getColumn(0,"fromdd");
  766. }
  767. // (e)
  768. if(ioflag == "I" || ioflag == "D"){
  769. var param = "I" + "▦" + pid + "▦" + orddd + "▦" + cretno + "▦" + instcd + "▦" + srchdd;
  770. } else if(ioflag == "E") {
  771. var param = "E" + "▦" + pid + "▦" + orddd + "▦" + cretno + "▦" + instcd + "▦" + srchdd;
  772. } else {
  773. var param = "O" + "▦" + pid + "▦" + orddd + "▦" + cretno + "▦" + instcd;
  774. }
  775. var useyn = appf_initPatientInfo(param);
  776. if(useyn == true){
  777. fChkPatTopInfoParam();
  778. } else {
  779. return;
  780. }
  781. }
  782. }
  783. /****************************************************************************************
  784. * Function : fOpenSetOpScheTime
  785. * Description : 수술예약시간 설정
  786. * Argument :
  787. * return type :
  788. * Creator :
  789. ****************************************************************************************/
  790. function fOpenSetOpScheTime(){
  791. var param = sOPSCHERECINFO_PATH.getColumn(0,"status") + "▦" +
  792. sOPSCHERECINFO_PATH.getColumn(0,"oproomcd") + "▦" +
  793. sOPSCHERECINFO_PATH.getColumn(0,"opregstno") + "▦" +
  794. sOPSCHERECINFO_PATH.getColumn(0,"opregsthistno")+ "▦" +
  795. sOPSCHERECINFO_PATH.getColumn(0,"pid") + "▦" +
  796. sOPSCHERECINFO_PATH.getColumn(0,"opschedd") + "▦" +
  797. sOPSCHERECINFO_PATH.getColumn(0,"perfdeptcd") + "▦" +
  798. sOPSCHERECINFO_PATH.getColumn(0,"opfromtmcd") + "▦" +
  799. sOPSCHERECINFO_PATH.getColumn(0,"opendtmcd") + "▦" +
  800. //"opsche" + "▦" +
  801. "oprsrv" + "▦" + //마취과에서 등록해 놓은 방으로 보기를 요청(2008.03.18)
  802. sOPSCHERECINFO_PATH.getColumn(0,"perfdrid");
  803. frmf_setParameter("SPMMO08800_param", param);
  804. // modal("SPMMO08800");
  805. frmf_modal("SPMMO08800","SPMMO08800",null,null,null,null,null,null,null,null,null,null,"M");
  806. var rtnuseyn = frmf_getParameter("SPMMO08800_rtn_useyn");
  807. if(rtnuseyn == "Y"){
  808. frmf_setParameter("SPMMO08800_rtn_useyn", "N");
  809. var rtnparam = frmf_getParameter("SPMMO08800_rtn_param");
  810. rtnparam = rtnparam.split("▦");
  811. if(!utlf_isNull(rtnparam[1]) || !utlf_isNull(rtnparam[2])){
  812. var difftime = utlf_getTimeInterval(rtnparam[1], rtnparam[2]);
  813. sOPSCHERECINFO_PATH.setColumn(0,"oproomcd" , rtnparam[0]);
  814. sOPSCHERECINFO_PATH.setColumn(0,"opfromtmcd", rtnparam[1]);
  815. sOPSCHERECINFO_PATH.setColumn(0,"opendtmcd" , rtnparam[2]);
  816. sOPSCHERECINFO_PATH.setColumn(0,"opusetm" , fTransSecToHourMin(difftime));
  817. frmf_clearParameter("SPMMO08800_rtn_param");
  818. } else {
  819. // 마취의뢰 화면으로 연동될때 문제 - 정규로 의뢰했을때 수술방은 선택됐는데 수술시간이 비어버림
  820. sOPSCHERECINFO_PATH.setColumn(0,"oproomcd" , rtnparam[0]);
  821. }
  822. }
  823. }
  824. /****************************************************************************************
  825. * Function : fClkBtnSave
  826. * Description : 저장
  827. * Argument :
  828. * return type :
  829. * Creator :
  830. ****************************************************************************************/
  831. function fClkBtnSave(){
  832. var status = sOPSCHERECINFO_PATH.getColumn(0,"status");
  833. if(status == "u"){
  834. if(!lf_compareNodeVal(ds_cmpopschelist, sOPSCHERECINFO_PATH)){
  835. sysf_messageBox("변경된 사항이", "I004");
  836. return;
  837. }
  838. }
  839. if(fChkValidOpScheInfo()== true){ //저장유효성 검사
  840. //2012/06/26 Start
  841. //수술 예방적 항생제 관련
  842. var dispopcd = ds_main_opscherecinfo.getColumn(0,"dispopcd");
  843. var t_pname = ds_main_opscherecinfo.getColumn(0,"hngnm");
  844. var t_opnm = ds_main_opscherecinfo.getColumn(0,"opnm");
  845. if(ds_main_opscherecinfo.getColumn(0,"age") > 17){
  846. for(var i = 0; i < nodecnt; i++){
  847. var cdseqno = ds_temp_opcd.getColumn(i,"cdseqno");
  848. var trgtcd = ds_temp_opcd.getColumn(i,"hardcd");
  849. if(!utlf_isNull(dispopcd) && cdseqno==dispopcd.length && dispopcd==trgtcd.substr(0,3)){
  850. sysf_messageBox("("+t_pname+")"+" 환자는 " +"("+t_opnm+")" + " 수술로 수술예방적 항생제 적정성 평가 대상입니다.\n" +
  851. "1,2세대 세파계 항생제를 단독으로 투여하시면 평가를 잘 받을 수 있습니다.", "I");
  852. break;
  853. } else if(!utlf_isNull(dispopcd) && cdseqno==dispopcd.length && dispopcd==trgtcd.substr(0,4)){
  854. sysf_messageBox("("+t_pname+")"+" 환자는 " +"("+t_opnm+")" + " 수술로 수술예방적 항생제 적정성 평가 대상입니다.\n" +
  855. "1,2세대 세파계 항생제를 단독으로 투여하시면 평가를 잘 받을 수 있습니다.", "I");
  856. break;
  857. }
  858. }
  859. }
  860. //2012/06/26 End
  861. ds_send_savedata.copyData(ds_main_opscherecinfo);
  862. var oParam = {};
  863. oParam.id = "TXMMO05701";
  864. oParam.service = "prcpmngtapp.OpMngt";
  865. oParam.method = "reqExeSaveOpScheRecInfo";
  866. oParam.inds = "req=ds_send_savedata";
  867. oParam.outds = "ds_main_opschereclist=opschereclist";
  868. oParam.async = false;
  869. oParam.callback = "cf_TXMMO05701";
  870. tranf_submit(oParam);
  871. //sysf_trace(ds_send_savedata.saveXML());
  872. if(arErrorCode.pop("TXMMO05701") >= 0){
  873. fSetOpTimeToHourMin();
  874. var pid = ds_main_opscherecinfo.getColumn(0,"pid");
  875. // model.copyNode(sOPSCHERECINFO_PATH, sOPSCHERECLIST_PATH + "[pid= '" + pid + "']");
  876. sOPSCHERECINFO_PATH.copyData(sOPSCHERECLIST_PATH.filter("pid=='"+pid+"'"),true);
  877. //20180413 이돈희 : 스케쥴 저장 후 필터가 걸려있어서 다른 수술 건들이 보이지 않는 현상 수정
  878. sOPSCHERECLIST_PATH.filter("");
  879. sOPSCHERECINFO_PATH.setColumn(0,"status","u");
  880. fReqOpScheRecCalendar();
  881. //20180413 이돈희 : 저장한 상태에서 리스트에서 다시 선택 안하고 수정하고 저장하면
  882. // opregsthistno가 이전이랑 동일하여 테이블 입력시 키 충돌 발생
  883. // 따라서 다시 선택 할 수 있게 데이타셋을 초기화 함
  884. ds_main_opscherecinfo.clearData();
  885. ds_main_opscherecinfo.addRow();
  886. }
  887. }
  888. }
  889. /****************************************************************************************
  890. * Function : fChkValidOpScheInfo
  891. * Description : 수술예약장부 저장시 무결성 검사
  892. * Argument :
  893. * return type :
  894. * Creator :
  895. ****************************************************************************************/
  896. function fChkValidOpScheInfo(){
  897. var pid = sOPSCHERECINFO_PATH.getColumn(0,"pid");
  898. var perfdeptcd = sOPSCHERECINFO_PATH.getColumn(0,"perfdeptcd");
  899. var perfdrid = sOPSCHERECINFO_PATH.getColumn(0,"perfdrid");
  900. var oproomcd = sOPSCHERECINFO_PATH.getColumn(0,"oproomcd");
  901. var opcd = sOPSCHERECINFO_PATH.getColumn(0,"opcd");
  902. var diagcd = sOPSCHERECINFO_PATH.getColumn(0,"diagcd");
  903. var opfromtmcd = sOPSCHERECINFO_PATH.getColumn(0,"opfromtmcd");
  904. var opendtmcd = sOPSCHERECINFO_PATH.getColumn(0,"opendtmcd");
  905. var oppatflagcd= sOPSCHERECINFO_PATH.getColumn(0,"oppatflagcd");
  906. if(utlf_isNull(pid)){
  907. sysf_messageBox("환자의 등록번호를", "C001");
  908. return false;
  909. }
  910. if(utlf_isNull(perfdeptcd)){
  911. sysf_messageBox("집도부서를", "C001");
  912. return false;
  913. }
  914. if(utlf_isNull(perfdrid)){
  915. sysf_messageBox("집도의를", "C001");
  916. return false;
  917. }
  918. if(utlf_isNull(diagcd)){
  919. sysf_messageBox("진단코드를", "C001");
  920. return false;
  921. }
  922. if(utlf_isNull(oppatflagcd)){
  923. sysf_messageBox("수술환자구분을", "C002");
  924. return false;
  925. }
  926. return true;
  927. }
  928. /****************************************************************************************
  929. * Function : cf_TXMMO05701
  930. * Description : TXMMO05701 콜백 함수
  931. * Argument :
  932. * return type :
  933. * Creator :
  934. ****************************************************************************************/
  935. function cf_TXMMO05701(sSvcId, nErrorCode, sErrorMsg) {
  936. arErrorCode.push(sSvcId, nErrorCode);
  937. }
  938. /****************************************************************************************
  939. * Function : fChoJinRecSrch
  940. * Description :
  941. * Argument :
  942. * return type :
  943. * Creator :
  944. ****************************************************************************************/
  945. function fChoJinRecSrch(){
  946. var signno = 0;
  947. var ckcnt = 0;
  948. var formcd = "";
  949. var signstr = "";
  950. ds_send_chojindata.clear();
  951. dsf_makeValue(ds_send_chojindata,"instcd" ,"string", sysf_getUserInfo("dutplceinstcd") );
  952. dsf_makeValue(ds_send_chojindata,"pid" ,"string", ds_main_opschereclist.getColumn(ds_main_opschereclist.rowposition,"pid"));
  953. dsf_makeValue(ds_send_chojindata,"perfdeptcd" ,"string", ds_main_opschereclist.getColumn(ds_main_opschereclist.rowposition,"perfdeptcd") );
  954. var oParam = {};
  955. oParam.id = "TRMMO05707";
  956. oParam.service = "prcpmngtapp.OpMngt";
  957. oParam.method = "reqGetOpScheOChoJinRecList";
  958. oParam.inds = "req=ds_send_chojindata";
  959. oParam.outds = "ds_main_chojinlist=chojinlist";
  960. oParam.async = false;
  961. oParam.callback = "cf_TRMMO05707";
  962. tranf_submit(oParam);
  963. if(arErrorCode.pop("TRMMO05707") >= 0){
  964. var nodecnt = ds_main_chojinlist.rowcount;
  965. for (var k = 0; k < nodecnt; k++){
  966. signno = ds_main_chojinlist.getColumn(k,"signno");
  967. formcd = ds_main_chojinlist.getColumn(k,"formcd");
  968. signstr += "E▦";
  969. signstr += signno+"▦";
  970. signstr += formcd+"▩";
  971. }
  972. }
  973. if ( !utlf_isNull(signstr) ) {
  974. frmf_setParameter("SPMRI02400_prtyn" , "N");
  975. frmf_setParameter("SPMRI02400_prtrecinfo", signstr);
  976. var xpt = 50;
  977. var ypt = 50;
  978. // aezfTopMost("SPMRI02400",2,xpt,ypt,"SPMRI02400");
  979. frmf_modal("SPMRI02400","SPMRI02400",null,null,2,xpt,ypt,null,null,null,null,null,"M");
  980. }else {
  981. alert("출력할 서식 디자인이 존재하지 않습니다.");
  982. return;
  983. }
  984. }
  985. /****************************************************************************************
  986. * Function : cf_TRMMO05707
  987. * Description : TRMMO05707 콜백 함수
  988. * Argument :
  989. * return type :
  990. * Creator :
  991. ****************************************************************************************/
  992. function cf_TRMMO05707(sSvcId, nErrorCode, sErrorMsg) {
  993. arErrorCode.push(sSvcId, nErrorCode);
  994. }
  995. /****************************************************************************************
  996. * Function : fClkGrdOpScheList
  997. * Description : 수술예약 리스트 그리드 클릭
  998. * Argument :
  999. * return type :
  1000. * Creator :
  1001. ****************************************************************************************/
  1002. function fClkGrdOpScheList(){
  1003. var currow = sOPSCHERECLIST_PATH.rowposition;
  1004. if( currow > -1 ){
  1005. var orddeptcd = sOPSCHERECLIST_PATH.getColumn(currow,"perfdeptcd");
  1006. lf_mmbfGetUserComboList(ds_init_userlist, orddeptcd, "0330", "", "", "", "", "", "", "");
  1007. sOPSCHERECINFO_PATH.copyRow(0,sOPSCHERECLIST_PATH,currow);
  1008. ds_cmpopschelist.copyRow(0,sOPSCHERECLIST_PATH,currow);
  1009. ds_cmpopschelist.setColumn(0,"status","u");
  1010. sOPSCHERECINFO_PATH.setColumn(0,"status","u");
  1011. }
  1012. if(!utlf_isNull(ipt_opcd.value)) {
  1013. ipt_opcd.readonly = true;
  1014. ipt_opnm.readonly = true;
  1015. }
  1016. if(!utlf_isNull(ipt_diagcd.value)) {
  1017. ipt_diagcd.readonly = true;
  1018. ipt_diagnm.readonly = true;
  1019. }
  1020. }]]></Script>