SMMMO05700.xjs 47 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131
  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. if(ds_main_week.rowposition > -1 && !utlf_isNull(ds_main_week.getColumn(ds_main_week.rowposition,grd_calendar.getCellPos()))) {
  397. var week = ds_main_week.rowposition +1;
  398. var day = grd_calendar.getCellPos()+1;
  399. var basedd = ds_main_opschecal.getColumn(ds_main_opschecal.findRowExpr("week=='"+week+"' && day=='"+day+"'"),"basedd");
  400. // model.getValue("/root/main/opschecal/opschecal[week = '" + week + "' and day = '" + day + "']/basedd");
  401. ds_main_opscherecinfo.setColumn(0,"opschedd", basedd);
  402. ds_main_cond.setColumn(0,"queryflag", "cal");
  403. ds_main_cond.setColumn(0,"basedd" , basedd);
  404. ds_send_reqdata.copyData(ds_main_cond);
  405. ds_send_reqdata.setColumn(0,"perfdrid",ds_main_cond.getColumn(0,"scheperfdrid"));
  406. var oParam = {};
  407. oParam.id = "TRMMO05701";
  408. oParam.service = "prcpmngtapp.OpMngt";
  409. oParam.method = "reqGetOpScheRecList";
  410. oParam.inds = "req=ds_send_reqdata";
  411. oParam.outds = "ds_main_opschereclist=opschereclist";
  412. oParam.async = false;
  413. oParam.callback = "cf_TRMMO05701";
  414. tranf_submit(oParam);
  415. }
  416. var openflag = ds_main_cond.getColumn(0,"openflag"); //수술실일정 보기가 check된 경우 수술실일정 열기
  417. if(openflag == "Y"){
  418. var param = "r" + "▦" + //status : r조회 전용화면
  419. "" + "▦" + //oproomcd
  420. "" + "▦" + //opregstno
  421. "" + "▦" + //opregsthistno
  422. "" + "▦" + //pid
  423. basedd + "▦" + //opschedd
  424. ds_main_cond.getColumn(0,"perfdeptcd") + "▦" + //perfdeptcd
  425. "" + "▦" + //opfromtmcd
  426. "" + "▦" + //opendtmcd
  427. "opsche" + "▦" + //queryflag
  428. ""; //perfdrid
  429. frmf_setParameter("SPMMO08800_param", param);
  430. // modal("SPMMO08800");
  431. frmf_modal("SPMMO08800","SPMMO08800",null,null,null,null,null,null,null,null,null,null,"M");
  432. }
  433. }
  434. /****************************************************************************************
  435. * Function : cf_TRMMO05701
  436. * Description : TRMMO05701 콜백함수
  437. * Argument :
  438. * return type :
  439. * Creator :
  440. ****************************************************************************************/
  441. function cf_TRMMO05701(sSvcId, nErrorCode, sErrorMsg) {
  442. if(nErrorCode < 0) return;
  443. else fSetOpTimeToHourMin();
  444. }
  445. /****************************************************************************************
  446. * Function : fSetOpTimeToHourMin
  447. * Description : 수술시간 시분초로 변경
  448. * Argument :
  449. * return type :
  450. * Creator :
  451. ****************************************************************************************/
  452. function fSetOpTimeToHourMin(){
  453. for(var i = 0; i < ds_main_opschereclist.rowcount; i++){
  454. var opfromtmcd = sOPSCHERECLIST_PATH.getColumn(i,"opfromtmcd");
  455. var opendtmcd = sOPSCHERECLIST_PATH.getColumn(i,"opendtmcd");
  456. if(utlf_isNull(opfromtmcd) || utlf_isNull(opendtmcd)){
  457. var difftime = 0;
  458. }else{
  459. var difftime = utlf_getTimeInterval(opfromtmcd, opendtmcd);
  460. }
  461. //sOPSCHERECLIST_PATH.setColumn(i,"opusetm", fTransSecToHourMin(difftime));
  462. dsf_makeValue(sOPSCHERECLIST_PATH,"opusetm","string",fTransSecToHourMin(difftime),i);
  463. }
  464. }
  465. /****************************************************************************************
  466. * Function : fTransSecToHourMin
  467. * Description : 초를 시분초로 전환
  468. * Argument :
  469. * return type :
  470. * Creator :
  471. ****************************************************************************************/
  472. function fTransSecToHourMin(sec){
  473. var hr = 3600;
  474. var min = 60;
  475. hour = parseInt(sec/hr);
  476. min = parseInt(sec%hr/min);
  477. var rtnstr = hour + "h " + min + "m ";
  478. return rtnstr;
  479. }
  480. /****************************************************************************************
  481. * Function : fClkBtnReq
  482. * Description : 조회버튼 클릭시, 조회조건으로 검색
  483. * Argument :
  484. * return type :
  485. * Creator :
  486. ****************************************************************************************/
  487. function fClkBtnReq(){
  488. ds_main_cond.setColumn(0,"queryflag", "");
  489. ds_send_reqdata.copyData(ds_main_cond);
  490. var oParam = {};
  491. oParam.id = "TRMMO05701";
  492. oParam.service = "prcpmngtapp.OpMngt";
  493. oParam.method = "reqGetOpScheRecList";
  494. oParam.inds = "req=ds_send_reqdata";
  495. oParam.outds = "ds_main_opschereclist=opschereclist";
  496. oParam.async = false;
  497. oParam.callback = "cf_TRMMO05701";
  498. tranf_submit(oParam);
  499. }
  500. /****************************************************************************************
  501. * Function : fOpenOpSearch
  502. * Description : 수술명 검색 팝업 open
  503. * Argument : pFlag : 처리구분 (code : 코드검색, term : 수술명)
  504. * return type :
  505. * Creator :
  506. ****************************************************************************************/
  507. function fOpenOpSearch(pFlag){
  508. if(pFlag == "code"){
  509. var param = "1▦" +
  510. "1▦E▦" +
  511. utlf_getCurrentDate() + "▦" +
  512. sOPSCHERECINFO_PATH.getColumn(0,"dispopcd");
  513. frmf_setParameter("SPMMO05200_param", param);
  514. } else if(pFlag == "term"){
  515. var opnm = ds_main_opscherecinfo.getColumn(0,"opnm");
  516. var param = "2▦4▦" +
  517. utlf_isHangul(opnm) + "▦" +
  518. utlf_getCurrentDate() + "▦" +
  519. opnm;
  520. frmf_setParameter("SPMMO05200_param", param);
  521. }
  522. // modal("SPMMO05200");
  523. frmf_modal("SPMMO05200","SPMMO05200",null,null,null,null,null,null,null,null,null,null,"M");
  524. var useyn = frmf_getParameter("SPMMO05200_rtn_useyn");
  525. if(useyn == "Y"){
  526. frmf_setParameter("SPMMO05200_rtn_useyn", "N");
  527. var rtnparam = frmf_getParameter("SPMMO05200_rtn_param");
  528. rtnparam = rtnparam.split("▩");
  529. var tmpstr = rtnparam[0];
  530. tmpstr = tmpstr.split("▦");
  531. //alert(tmpstr[0]+"/"+tmpstr[1]+"/"+tmpstr[2]);
  532. sOPSCHERECINFO_PATH.setColumn(0,"dispopcd" , tmpstr[0]);
  533. sOPSCHERECINFO_PATH.setColumn(0,"opcd" , tmpstr[1]);
  534. sOPSCHERECINFO_PATH.setColumn(0,"opnm" , tmpstr[2]);
  535. ipt_opcd.readonly = true;
  536. ipt_opnm.readonly = true;
  537. ipt_diagcd.setFocus();
  538. } else {
  539. sOPSCHERECINFO_PATH.setColumn(0,"dispopcd", "");
  540. sOPSCHERECINFO_PATH.setColumn(0,"opcd" , "");
  541. sOPSCHERECINFO_PATH.setColumn(0,"opnm" , "");
  542. }
  543. }
  544. /****************************************************************************************
  545. * Function : fOpenDiagSearch
  546. * Description : 진단명 검색 팝업 open
  547. * Argument : pFlag : 처리구분 (code : 코드검색, term : 수술명)
  548. * return type :
  549. * Creator :
  550. ****************************************************************************************/
  551. function fOpenDiagSearch(pFlag){
  552. if(pFlag == "code"){
  553. frmf_setParameter("SPMMO00800_cond1", 1);
  554. frmf_setParameter("SPMMO00800_cond2", 1);
  555. frmf_setParameter("SPMMO00800_cond3", "E");
  556. frmf_setParameter("SPMMO00800_cond4", utlf_getCurrentDate());
  557. frmf_setParameter("SPMMO00800_cond5", sOPSCHERECINFO_PATH.getColumn(0,"dispdiagcd"));
  558. }else if(pFlag =="term"){
  559. var diagnm = sOPSCHERECINFO_PATH.getColumn(0,"diagnm");
  560. frmf_setParameter("SPMMO00800_cond1", 2);
  561. frmf_setParameter("SPMMO00800_cond2", 4);
  562. frmf_setParameter("SPMMO00800_cond3", utlf_isHangul(diagnm));
  563. frmf_setParameter("SPMMO00800_cond4", utlf_getCurrentDate());
  564. frmf_setParameter("SPMMO00800_cond5", diagnm);
  565. }
  566. // modal("SPMMO00800");
  567. frmf_modal("SPMMO00800","SPMMO00800",null,null,null,null,null,null,null,null,null,null,"M");
  568. var useyn = frmf_getParameter("SPMMO00800_rtn_useyn");
  569. if(useyn == "Y"){
  570. frmf_setParameter("SPMMO00800_rtn_useyn", "N");
  571. var rtnparam = frmf_getParameter("SPMMO00800_rtn");
  572. rtnparam = rtnparam.split("▩");
  573. var tmpstr = rtnparam[0];
  574. tmpstr = tmpstr.split("▦");
  575. sOPSCHERECINFO_PATH.setColumn(0,"dispdiagcd", tmpstr[1]);
  576. sOPSCHERECINFO_PATH.setColumn(0,"diagcd" , tmpstr[9]);
  577. sOPSCHERECINFO_PATH.setColumn(0,"diagnm" , tmpstr[2]);
  578. ipt_diagcd.readonly = true;
  579. ipt_diagnm.readonly = true;
  580. ipt_opregstremfact.setFocus();
  581. }else{
  582. sOPSCHERECINFO_PATH.setColumn(0,"dispdiagcd", "");
  583. sOPSCHERECINFO_PATH.setColumn(0,"diagcd" , "");
  584. sOPSCHERECINFO_PATH.setColumn(0,"diagnm" , "");
  585. }
  586. }
  587. /****************************************************************************************
  588. * Function : fOpenPatInfo
  589. * Description : 환자진료정보 list 조회
  590. * Argument :
  591. * return type :
  592. * Creator :
  593. ****************************************************************************************/
  594. function fOpenPatInfo(){
  595. var pid = sOPSCHERECINFO_PATH.getColumn(0,"pid");
  596. if(utlf_isNull(pid)){
  597. sysf_messageBox("환자의 등록번호를", "C001");
  598. return;
  599. }
  600. ds_send_reqdata.clear();
  601. dsf_makeValue(ds_send_reqdata,"cond1","string", "1"); //1은 등록번호, 2는 환자명
  602. dsf_makeValue(ds_send_reqdata,"cond2","string", pid); //등록번호
  603. dsf_makeValue(ds_send_reqdata,"cond3","string", sysf_getUserInfo("dutplceinstcd"));
  604. dsf_makeValue(ds_send_reqdata,"cond4","string", "N"); //원무키 기준여부
  605. dsf_makeValue(ds_send_reqdata,"cond5","string", "N"); //당일기준 조회여부
  606. dsf_makeValue(ds_send_reqdata,"cond6","string", "-"); //외래,입원테이블 기준
  607. var oParam = {};
  608. oParam.id = "TRMMO00200";
  609. oParam.service = "prcpmngtapp.PrcpMngt";
  610. oParam.method = "reqGetComnPatOrdInfo";
  611. oParam.inds = "req=ds_send_reqdata";
  612. oParam.outds = "ds_patordinfolist=patordinfolist";
  613. oParam.async = false;
  614. oParam.callback = "cf_TRMMO00200";
  615. tranf_submit(oParam);
  616. if(arErrorCode.pop("TRMMO00200") >= 0){
  617. var nodecnt = sPATORDINFOLIST_PATH.rowcount;
  618. if(nodecnt > 1){
  619. var xpt = this.position.left + 50;
  620. var ypt = this.position.top + 80;
  621. var mon = sysf_getCurrentMonitorNumber();
  622. // var coord = getRelativeCoordinate(xpt, ypt);
  623. // var mon = coord[0];
  624. // xpt = coord[1];
  625. // ypt = coord[2];
  626. // modal("SPMMO09100", mon, xpt, ypt, "patordinfo", "/root/patordinfo", "/root/patordinfo", "", false );
  627. var objArg = new Object();
  628. objArg.arg_ds_patordinfolist = sPATORDINFOLIST_PATH;
  629. frmf_modal("SPMMO09100","SPMMO09100",objArg,null,mon,xpt,ypt,null,null,null,null,null,"M");
  630. param = frmf_getParameter("SPMMO09100_rtn_param");
  631. if(param.length > 0){
  632. model.removeNodeset(sPATORDINFOLIST_PATH);
  633. sPATORDINFOLIST_PATH.clear();
  634. // setCSVToNode("/root/patordinfo", param, "patordinfolist");
  635. dsf_setCSVToDs("ds_patordinfolist", param)
  636. }
  637. }
  638. var ioflag = sPATORDINFOLIST_PATH.getColumn(0,"ioflag");
  639. var pid = sPATORDINFOLIST_PATH.getColumn(0,"pid");
  640. var orddd = sPATORDINFOLIST_PATH.getColumn(0,"orddd");
  641. var cretno = sPATORDINFOLIST_PATH.getColumn(0,"cretno");
  642. var instcd = sPATORDINFOLIST_PATH.getColumn(0,"instcd");
  643. var srchdd = sPATORDINFOLIST_PATH.getColumn(0,"orddd");
  644. ds_send_reqdata.clear();
  645. dsf_makeValue(ds_send_reqdata,"pid" ,"string", pid);
  646. dsf_makeValue(ds_send_reqdata,"orddd" ,"string", orddd);
  647. dsf_makeValue(ds_send_reqdata,"cretno","string", cretno);
  648. // 2008.10.31 등록번호 검색으로 의뢰시 상단 UP 조건 icdr.fromdd
  649. var oParam = {};
  650. oParam.id = "TRMMO00210";
  651. oParam.service = "prcpmngtapp.OpMngt";
  652. oParam.method = "reqGetOpTopInfo";
  653. oParam.inds = "req=ds_send_reqdata";
  654. oParam.outds = "ds_main_topinfo=topinfo";
  655. oParam.async = false;
  656. oParam.callback = "cf_TRMMO00210";
  657. tranf_submit(oParam);
  658. if(arErrorCode.pop("TRMMO00210") >= 0){
  659. var srchdd = ds_main_topinfo.getColumn(0,"fromdd");
  660. }
  661. // (e)
  662. if(ioflag == "I" || ioflag == "D"){
  663. var param = "I" + "▦" + pid + "▦" + orddd + "▦" + cretno + "▦" + instcd + "▦" + srchdd;
  664. } else if(ioflag == "E") {
  665. var param = "E" + "▦" + pid + "▦" + orddd + "▦" + cretno + "▦" + instcd + "▦" + srchdd;
  666. } else {
  667. var param = "O" + "▦" + pid + "▦" + orddd + "▦" + cretno + "▦" + instcd;
  668. }
  669. frmf_setParameter("condparam", param);
  670. // modal("SPMMO08900", 1, "", "", "", "", "", "left:0; right:0; width:0; height:0; sysmenu:hidden; caption:hidden; min:hidden, max:hidden;");
  671. frmf_modal("SPMMO08900","SPMMO08900",null,null,1,0,0,null,null,null,null,null,"M");
  672. var useyn = frmf_getParameter("SPMMO08900_rtn_useyn");
  673. if(useyn == "Y"){
  674. frmf_setParameter("SPMMO08900_rtn_useyn", "");
  675. fChkPatTopInfoParam();
  676. } else {
  677. return;
  678. }
  679. }
  680. }
  681. /****************************************************************************************
  682. * Function : cf_TRMMO00200
  683. * Description : TRMMO00200 콜백 함수
  684. * Argument :
  685. * return type :
  686. * Creator :
  687. ****************************************************************************************/
  688. function cf_TRMMO00200(sSvcId, nErrorCode, sErrorMsg) {
  689. arErrorCode.push(sSvcId, nErrorCode);
  690. }
  691. /****************************************************************************************
  692. * Function : cf_TRMMO00210
  693. * Description : TRMMO00210 콜백 함수
  694. * Argument :
  695. * return type :
  696. * Creator :
  697. ****************************************************************************************/
  698. function cf_TRMMO00210(sSvcId, nErrorCode, sErrorMsg) {
  699. arErrorCode.push(sSvcId, nErrorCode);
  700. }
  701. /****************************************************************************************
  702. * Function : fReqPatOrdInfo
  703. * Description : 환자 수진정보 조회
  704. * Argument :
  705. * return type :
  706. * Creator :
  707. ****************************************************************************************/
  708. function fReqPatOrdInfo(){
  709. var pid = sOPSCHERECINFO_PATH.getColumn(0,"pid");
  710. if(utlf_isNull(pid)){
  711. sysf_messageBox("환자의 등록번호를", "C001");
  712. return;
  713. }
  714. ds_send_reqdata.clear();
  715. dsf_makeValue(ds_send_reqdata,"cond1","string", "1"); //1은 등록번호, 2는 환자명
  716. dsf_makeValue(ds_send_reqdata,"cond2","string", pid); //등록번호
  717. dsf_makeValue(ds_send_reqdata,"cond3","string", sysf_getUserInfo("dutplceinstcd"));
  718. dsf_makeValue(ds_send_reqdata,"cond4","string", "N"); //원무키 기준여부
  719. dsf_makeValue(ds_send_reqdata,"cond5","string", "N"); //당일기준 조회여부
  720. dsf_makeValue(ds_send_reqdata,"cond6","string", "-"); //외래,입원테이블 기준
  721. var oParam = {};
  722. oParam.id = "TRMMO00200";
  723. oParam.service = "prcpmngtapp.PrcpMngt";
  724. oParam.method = "reqGetComnPatOrdInfo";
  725. oParam.inds = "req=ds_send_reqdata";
  726. oParam.outds = "ds_patordinfolist=patordinfolist";
  727. oParam.async = false;
  728. oParam.callback = "cf_TRMMO00200";
  729. tranf_submit(oParam);
  730. if(arErrorCode.pop("TRMMO00200") >= 0){
  731. // 2008.11.18 로그인 의사 진료과의 최근 수진 이력을 선택한 상태
  732. // sortNodeList("/root/patordinfo/patordinfolist", "orddd", "desc");
  733. grdf_sortNodeList(ds_patordinfolist,"orddd","desc");
  734. // var patlist = model.instance1.selectNodes("/root/patordinfo/patordinfolist[orddeptcd = " + sysf_getUserInfo("dutplcecd") + "and orddd <="+ getCurrentDate() +"]");
  735. var patlist = ds_patordinfolist.filter("orddeptcd == '"+sysf_getUserInfo("dutplcecd")+"' && orddd <= '"+ utlf_getCurrentDate() +"'");
  736. if(patlist.rowcount > 0) {
  737. // var ioflag = patlist.item(0).selectSingleNode("ioflag").text;
  738. // var pid = patlist.item(0).selectSingleNode("pid").text;
  739. // var orddd = patlist.item(0).selectSingleNode("orddd").text;
  740. // var cretno = patlist.item(0).selectSingleNode("cretno").text;
  741. // var instcd = patlist.item(0).selectSingleNode("instcd").text;
  742. var ioflag = patlist.getColumn(0,"ioflag");
  743. var pid = patlist.getColumn(0,"pid");
  744. var orddd = patlist.getColumn(0,"orddd");
  745. var cretno = patlist.getColumn(0,"cretno");
  746. var instcd = patlist.getColumn(0,"instcd");
  747. }else{
  748. var cretno = "";
  749. }
  750. // (e)
  751. ds_send_reqdata.clear();
  752. dsf_makeValue(ds_send_reqdata,"pid" ,"string", pid);
  753. dsf_makeValue(ds_send_reqdata,"orddd" ,"string", orddd);
  754. dsf_makeValue(ds_send_reqdata,"cretno","string", cretno);
  755. // 2008.10.31 등록번호 검색으로 의뢰시 상단 UP 조건 icdr.fromdd
  756. var oParam = {};
  757. oParam.id = "TRMMO00210";
  758. oParam.service = "prcpmngtapp.OpMngt";
  759. oParam.method = "reqGetOpTopInfo";
  760. oParam.inds = "req=ds_send_reqdata";
  761. oParam.outds = "ds_main_topinfo=topinfo";
  762. oParam.async = false;
  763. oParam.callback = "cf_TRMMO00210";
  764. tranf_submit(oParam);
  765. if(arErrorCode.pop("TRMMO00210") >= 0){
  766. var srchdd = ds_main_topinfo.getColumn(0,"fromdd");
  767. }
  768. // (e)
  769. if(ioflag == "I" || ioflag == "D"){
  770. var param = "I" + "▦" + pid + "▦" + orddd + "▦" + cretno + "▦" + instcd + "▦" + srchdd;
  771. } else if(ioflag == "E") {
  772. var param = "E" + "▦" + pid + "▦" + orddd + "▦" + cretno + "▦" + instcd + "▦" + srchdd;
  773. } else {
  774. var param = "O" + "▦" + pid + "▦" + orddd + "▦" + cretno + "▦" + instcd;
  775. }
  776. frmf_setParameter("condparam", param);
  777. // modal("SPMMO08900", 1, "", "", "", "", "", "left:0; right:0; width:0; height:0; sysmenu:hidden; caption:hidden; min:hidden, max:hidden;");
  778. frmf_modal("SPMMO08900","SPMMO08900",null,null,1,0,0,null,null,null,null,null,"M");
  779. var useyn = frmf_getParameter("SPMMO08900_rtn_useyn");
  780. if(useyn == "Y"){
  781. frmf_setParameter("SPMMO08900_rtn_useyn", "");
  782. fChkPatTopInfoParam();
  783. } else {
  784. return;
  785. }
  786. }
  787. }
  788. /****************************************************************************************
  789. * Function : fOpenSetOpScheTime
  790. * Description : 수술예약시간 설정
  791. * Argument :
  792. * return type :
  793. * Creator :
  794. ****************************************************************************************/
  795. function fOpenSetOpScheTime(){
  796. var param = sOPSCHERECINFO_PATH.getColumn(0,"status") + "▦" +
  797. sOPSCHERECINFO_PATH.getColumn(0,"oproomcd") + "▦" +
  798. sOPSCHERECINFO_PATH.getColumn(0,"opregstno") + "▦" +
  799. sOPSCHERECINFO_PATH.getColumn(0,"opregsthistno")+ "▦" +
  800. sOPSCHERECINFO_PATH.getColumn(0,"pid") + "▦" +
  801. sOPSCHERECINFO_PATH.getColumn(0,"opschedd") + "▦" +
  802. sOPSCHERECINFO_PATH.getColumn(0,"perfdeptcd") + "▦" +
  803. sOPSCHERECINFO_PATH.getColumn(0,"opfromtmcd") + "▦" +
  804. sOPSCHERECINFO_PATH.getColumn(0,"opendtmcd") + "▦" +
  805. //"opsche" + "▦" +
  806. "oprsrv" + "▦" + //마취과에서 등록해 놓은 방으로 보기를 요청(2008.03.18)
  807. sOPSCHERECINFO_PATH.getColumn(0,"perfdrid");
  808. frmf_setParameter("SPMMO08800_param", param);
  809. // modal("SPMMO08800");
  810. frmf_modal("SPMMO08800","SPMMO08800",null,null,null,null,null,null,null,null,null,null,"M");
  811. var rtnuseyn = frmf_getParameter("SPMMO08800_rtn_useyn");
  812. if(rtnuseyn == "Y"){
  813. frmf_setParameter("SPMMO08800_rtn_useyn", "N");
  814. var rtnparam = frmf_getParameter("SPMMO08800_rtn_param");
  815. rtnparam = rtnparam.split("▦");
  816. if(!utlf_isNull(rtnparam[1]) || !utlf_isNull(rtnparam[2])){
  817. var difftime = utlf_getTimeInterval(rtnparam[1], rtnparam[2]);
  818. sOPSCHERECINFO_PATH.setColumn(0,"oproomcd" , rtnparam[0]);
  819. sOPSCHERECINFO_PATH.setColumn(0,"opfromtmcd", rtnparam[1]);
  820. sOPSCHERECINFO_PATH.setColumn(0,"opendtmcd" , rtnparam[2]);
  821. sOPSCHERECINFO_PATH.setColumn(0,"opusetm" , fTransSecToHourMin(difftime));
  822. frmf_clearParameter("SPMMO08800_rtn_param");
  823. } else {
  824. // 마취의뢰 화면으로 연동될때 문제 - 정규로 의뢰했을때 수술방은 선택됐는데 수술시간이 비어버림
  825. sOPSCHERECINFO_PATH.setColumn(0,"oproomcd" , rtnparam[0]);
  826. }
  827. }
  828. }
  829. /****************************************************************************************
  830. * Function : fClkBtnSave
  831. * Description : 저장
  832. * Argument :
  833. * return type :
  834. * Creator :
  835. ****************************************************************************************/
  836. function fClkBtnSave(){
  837. var status = sOPSCHERECINFO_PATH.getColumn(0,"status");
  838. if(status == "u"){
  839. if(!lf_compareNodeVal(ds_cmpopschelist, sOPSCHERECINFO_PATH)){
  840. sysf_messageBox("변경된 사항이", "I004");
  841. return;
  842. }
  843. }
  844. if(fChkValidOpScheInfo()== true){ //저장유효성 검사
  845. //2012/06/26 Start
  846. //수술 예방적 항생제 관련
  847. var dispopcd = ds_main_opscherecinfo.getColumn(0,"dispopcd");
  848. var t_pname = ds_main_opscherecinfo.getColumn(0,"hngnm");
  849. var t_opnm = ds_main_opscherecinfo.getColumn(0,"opnm");
  850. if(ds_main_opscherecinfo.getColumn(0,"age") > 17){
  851. for(var i = 0; i < nodecnt; i++){
  852. var cdseqno = ds_temp_opcd.getColumn(i,"cdseqno");
  853. var trgtcd = ds_temp_opcd.getColumn(i,"hardcd");
  854. if(cdseqno==dispopcd.length && dispopcd==trgtcd.substr(0,3)){
  855. sysf_messageBox("("+t_pname+")"+" 환자는 " +"("+t_opnm+")" + " 수술로 수술예방적 항생제 적정성 평가 대상입니다.\n" +
  856. "1,2세대 세파계 항생제를 단독으로 투여하시면 평가를 잘 받을 수 있습니다.", "I");
  857. break;
  858. } else if(cdseqno==dispopcd.length && dispopcd==trgtcd.substr(0,4)){
  859. sysf_messageBox("("+t_pname+")"+" 환자는 " +"("+t_opnm+")" + " 수술로 수술예방적 항생제 적정성 평가 대상입니다.\n" +
  860. "1,2세대 세파계 항생제를 단독으로 투여하시면 평가를 잘 받을 수 있습니다.", "I");
  861. break;
  862. }
  863. }
  864. }
  865. //2012/06/26 End
  866. ds_send_savedata.copyData(ds_main_opscherecinfo);
  867. var oParam = {};
  868. oParam.id = "TXMMO05701";
  869. oParam.service = "prcpmngtapp.OpMngt";
  870. oParam.method = "reqExeSaveOpScheRecInfo";
  871. oParam.inds = "req=ds_send_savedata";
  872. oParam.outds = "ds_main_opschereclist=opschereclist";
  873. oParam.async = false;
  874. oParam.callback = "cf_TXMMO05701";
  875. tranf_submit(oParam);
  876. //sysf_trace(ds_send_savedata.saveXML());
  877. if(arErrorCode.pop("TXMMO05701") >= 0){
  878. fSetOpTimeToHourMin();
  879. var pid = ds_main_opscherecinfo.getColumn(0,"pid");
  880. // model.copyNode(sOPSCHERECINFO_PATH, sOPSCHERECLIST_PATH + "[pid= '" + pid + "']");
  881. sOPSCHERECINFO_PATH.copyData(sOPSCHERECLIST_PATH.filter("pid=='"+pid+"'"),true)
  882. sOPSCHERECINFO_PATH.setColumn(0,"status","u");
  883. fReqOpScheRecCalendar();
  884. }
  885. }
  886. }
  887. /****************************************************************************************
  888. * Function : fChkValidOpScheInfo
  889. * Description : 수술예약장부 저장시 무결성 검사
  890. * Argument :
  891. * return type :
  892. * Creator :
  893. ****************************************************************************************/
  894. function fChkValidOpScheInfo(){
  895. var pid = sOPSCHERECINFO_PATH.getColumn(0,"pid");
  896. var perfdeptcd = sOPSCHERECINFO_PATH.getColumn(0,"perfdeptcd");
  897. var perfdrid = sOPSCHERECINFO_PATH.getColumn(0,"perfdrid");
  898. var oproomcd = sOPSCHERECINFO_PATH.getColumn(0,"oproomcd");
  899. var opcd = sOPSCHERECINFO_PATH.getColumn(0,"opcd");
  900. var diagcd = sOPSCHERECINFO_PATH.getColumn(0,"diagcd");
  901. var opfromtmcd = sOPSCHERECINFO_PATH.getColumn(0,"opfromtmcd");
  902. var opendtmcd = sOPSCHERECINFO_PATH.getColumn(0,"opendtmcd");
  903. var oppatflagcd= sOPSCHERECINFO_PATH.getColumn(0,"oppatflagcd");
  904. if(utlf_isNull(pid)){
  905. sysf_messageBox("환자의 등록번호를", "C001");
  906. return false;
  907. }
  908. if(utlf_isNull(perfdeptcd)){
  909. sysf_messageBox("집도부서를", "C001");
  910. return false;
  911. }
  912. if(utlf_isNull(perfdrid)){
  913. sysf_messageBox("집도의를", "C001");
  914. return false;
  915. }
  916. if(utlf_isNull(diagcd)){
  917. sysf_messageBox("진단코드를", "C001");
  918. return false;
  919. }
  920. if(utlf_isNull(oppatflagcd)){
  921. sysf_messageBox("수술환자구분을", "C002");
  922. return false;
  923. }
  924. return true;
  925. }
  926. /****************************************************************************************
  927. * Function : cf_TXMMO05701
  928. * Description : TXMMO05701 콜백 함수
  929. * Argument :
  930. * return type :
  931. * Creator :
  932. ****************************************************************************************/
  933. function cf_TXMMO05701(sSvcId, nErrorCode, sErrorMsg) {
  934. arErrorCode.push(sSvcId, nErrorCode);
  935. }
  936. /****************************************************************************************
  937. * Function : fChoJinRecSrch
  938. * Description :
  939. * Argument :
  940. * return type :
  941. * Creator :
  942. ****************************************************************************************/
  943. function fChoJinRecSrch(){
  944. var signno = 0;
  945. var ckcnt = 0;
  946. var formcd = "";
  947. var signstr = "";
  948. ds_send_chojindata.clear();
  949. dsf_makeValue(ds_send_chojindata,"instcd" ,"string", sysf_getUserInfo("dutplceinstcd") );
  950. dsf_makeValue(ds_send_chojindata,"pid" ,"string", ds_main_opschereclist.getColumn(ds_main_opschereclist.rowposition,"pid"));
  951. dsf_makeValue(ds_send_chojindata,"perfdeptcd" ,"string", ds_main_opschereclist.getColumn(ds_main_opschereclist.rowposition,"perfdeptcd") );
  952. var oParam = {};
  953. oParam.id = "TRMMO05707";
  954. oParam.service = "prcpmngtapp.OpMngt";
  955. oParam.method = "reqGetOpScheOChoJinRecList";
  956. oParam.inds = "req=ds_send_chojindata";
  957. oParam.outds = "ds_main_chojinlist=chojinlist";
  958. oParam.async = false;
  959. oParam.callback = "cf_TRMMO05707";
  960. tranf_submit(oParam);
  961. if(arErrorCode.pop("TRMMO05707") >= 0){
  962. var nodecnt = ds_main_chojinlist.rowcount;
  963. for (var k = 0; k < nodecnt; k++){
  964. signno = ds_main_chojinlist.getColumn(k,"signno");
  965. formcd = ds_main_chojinlist.getColumn(k,"formcd");
  966. signstr += "E▦";
  967. signstr += signno+"▦";
  968. signstr += formcd+"▩";
  969. }
  970. }
  971. if ( !utlf_isNull(signstr) ) {
  972. frmf_setParameter("SPMRI02400_prtyn" , "N");
  973. frmf_setParameter("SPMRI02400_prtrecinfo", signstr);
  974. var xpt = 50;
  975. var ypt = 50;
  976. // aezfTopMost("SPMRI02400",2,xpt,ypt,"SPMRI02400");
  977. frmf_modal("SPMRI02400","SPMRI02400",null,null,2,xpt,ypt,null,null,null,null,null,"M");
  978. }else {
  979. alert("출력할 서식 디자인이 존재하지 않습니다.");
  980. return;
  981. }
  982. }
  983. /****************************************************************************************
  984. * Function : cf_TRMMO05707
  985. * Description : TRMMO05707 콜백 함수
  986. * Argument :
  987. * return type :
  988. * Creator :
  989. ****************************************************************************************/
  990. function cf_TRMMO05707(sSvcId, nErrorCode, sErrorMsg) {
  991. arErrorCode.push(sSvcId, nErrorCode);
  992. }
  993. /****************************************************************************************
  994. * Function : fClkGrdOpScheList
  995. * Description : 수술예약 리스트 그리드 클릭
  996. * Argument :
  997. * return type :
  998. * Creator :
  999. ****************************************************************************************/
  1000. function fClkGrdOpScheList(){
  1001. var currow = sOPSCHERECLIST_PATH.rowposition;
  1002. if( currow > -1 ){
  1003. var orddeptcd = sOPSCHERECLIST_PATH.getColumn(currow,"perfdeptcd");
  1004. lf_mmbfGetUserComboList(ds_init_userlist, orddeptcd, "0330", "", "", "", "", "", "", "");
  1005. sOPSCHERECINFO_PATH.copyRow(0,sOPSCHERECLIST_PATH,currow);
  1006. ds_cmpopschelist.copyRow(0,sOPSCHERECLIST_PATH,currow);
  1007. ds_cmpopschelist.setColumn(0,"status","u");
  1008. sOPSCHERECINFO_PATH.setColumn(0,"status","u");
  1009. }
  1010. if(!utlf_isNull(ipt_opcd.value)) {
  1011. ipt_opcd.readonly = true;
  1012. ipt_opnm.readonly = true;
  1013. }
  1014. if(!utlf_isNull(ipt_diagcd.value)) {
  1015. ipt_diagcd.readonly = true;
  1016. ipt_diagnm.readonly = true;
  1017. }
  1018. }]]></Script>