SMMRE02100.xjs 54 KB

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