SMMND03200.js 46 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963
  1. /*
  2. HD의사지정 (SMMND03200.xrw - JScript )
  3. - Version :
  4. 1) : Ver.1.00.01
  5. */
  6. /**
  7. * @group :
  8. * @ver : 2007.08.20
  9. * @by : 김진아
  10. * @---------------------------------------------------
  11. * @type : function
  12. * @access : public
  13. * @desc : 화면 초기화
  14. * @param :
  15. * @return :
  16. * @---------------------------------------------------
  17. */
  18. function fDone(){
  19. //** 그리드 초기화 **//
  20. //model.removeNodeset("/root/main/hddrapnthistlist");
  21. var sFromYear = getCurrentDate().substr(0, 4)+ "0201";
  22. var sToYear = getDateCalc(getDateCalc(getCurrentDate(), 365 , "+").substr(0, 4)+"0301", 1, "-");
  23. model.setValue("/root/main/cond/srchflag" , "H");
  24. model.setValue("/root/main/cond/srchfromdd", sFromYear);
  25. model.setValue("/root/main/cond/srchtodd" , sToYear);
  26. grp_pdhist.disabled = true;
  27. }
  28. /**
  29. * @group :
  30. * @ver : 2007.08.20
  31. * @by : 김진아
  32. * @---------------------------------------------------
  33. * @type : function
  34. * @access : public
  35. * @desc : 사용자팝업
  36. * @param :
  37. * @return :
  38. * @---------------------------------------------------
  39. */
  40. function fSrchDr(userid, sIDPath, sNMPath){
  41. //** 사용자팝업 **//
  42. model.removeNodeset("/root/main/hddrapntcretlist/hddrapntcretinfo/userpopupinfo");
  43. model.makeValue("/root/main/hddrapntcretlist/hddrapntcretinfo/userpopupinfo/param" , "_OneS" ); // 한 사용자 선택 팝업을 띄울시 "팝업에 전달할 노드"/param 의 값 설정
  44. model.makeValue("/root/main/hddrapntcretlist/hddrapntcretinfo/userpopupinfo/flag" , "userid"); // 한 사용자 선택 팝업을 띄울시 "팝업에 전달할 노드"/flag 의 값 설정
  45. model.makeValue("/root/main/hddrapntcretlist/hddrapntcretinfo/userpopupinfo/searchitem", userid ); // 한 사용자 선택 팝업을 띄울시 "팝업에 전달할 노드"/searchitem 의 값 설정
  46. modal("../../userdeptinfoweb/xrw/SPZSU10103_사용자부서선택조회", 1, "200", "200", "SPZSU10103","/root/main/hddrapntcretlist/hddrapntcretinfo/userpopupinfo","/root/main/temp");
  47. var iParam = getParameter("SPZSU10103_");
  48. model.removeNodeset("/root/main/hddrapntcretlist/hddrapntcretinfo/getdrinfo" );
  49. model.makeNode("/root/main/hddrapntcretlist/hddrapntcretinfo/getdrinfo" );
  50. setCSVToNode ("/root/main/hddrapntcretlist/hddrapntcretinfo/getdrinfo", iParam);
  51. clearParameter("SPZSU10103_");
  52. // ** 정보 보여주기 구현 **//
  53. var xPath = "/root/main/hddrapntcretlist/hddrapntcretinfo/";
  54. var sUserNm = model.getValue("/root/main/hddrapntcretlist/hddrapntcretinfo/getdrinfo/list/usernm"); // 의사이름
  55. var sUserId = model.getValue("/root/main/hddrapntcretlist/hddrapntcretinfo/getdrinfo/list/userid"); // 의사아이디
  56. model.makeValue(xPath + sNMPath, sUserNm); // 의사이름
  57. model.makeValue(xPath + sIDPath, sUserId); // 의사아이디
  58. model.refresh();
  59. }
  60. /**
  61. * @group :
  62. * @ver : 2007.08.20
  63. * @by : 김진아
  64. * @---------------------------------------------------
  65. * @type : function
  66. * @access : public
  67. * @desc : 지정의사 컨트롤 활성여부 설정
  68. * @param :
  69. * @return :
  70. * @---------------------------------------------------
  71. */
  72. function fSetDisabled(pFlag){
  73. switch(pFlag){
  74. case "H":
  75. var sFlag = model.getValue("/root/main/hddrapntcretlist/hddrapntcretinfo/cretopt"); // 지정의사 선택 값 (1:전체, 2:Shift별)
  76. if(sFlag == "1") { // 전체
  77. ipt_alldrapntid.disabled = false;
  78. btn_srchalldrapnt.disabled = false;
  79. ipt_fstdrapntid.disabled = true;
  80. btn_srchfstdrapnt.disabled = true;
  81. ipt_scnddrapntid.disabled = true;
  82. btn_srchscnddrapnt.disabled = true;
  83. ipt_lastdrapntid.disabled = true;
  84. btn_srchlastdrapnt.disabled = true;
  85. ipt_erdrapntid.disabled = true; //응급Shift추가-kys-20091217
  86. btn_srcherdrapnt.disabled = true; //응급Shift추가-kys-20091217
  87. }else if(sFlag == "2") { // Shift별
  88. ipt_alldrapntid.disabled = true;
  89. btn_srchalldrapnt.disabled = true;
  90. ipt_fstdrapntid.disabled = false;
  91. btn_srchfstdrapnt.disabled = false;
  92. ipt_scnddrapntid.disabled = false;
  93. btn_srchscnddrapnt.disabled = false;
  94. ipt_lastdrapntid.disabled = false;
  95. btn_srchlastdrapnt.disabled = false;
  96. ipt_erdrapntid.disabled = false; //응급Shift추가-kys-20091217
  97. btn_srcherdrapnt.disabled = false; //응급Shift추가-kys-20091217
  98. }
  99. break;
  100. case "P": // PD예약의사지정 오전오후 생성으로 추가_20100125
  101. var sFlag = model.getValue("/root/main/pddrapntcretlist/pddrapntcretinfo/cretopt"); // 지정의사 선택 값 (1:전체, 2:시간별)
  102. if(sFlag == "1") { // 전체
  103. ipt_pdalldrapntid.disabled = false;
  104. btn_pdsrchalldrapnt.disabled = false;
  105. ipt_pdfstdrapntid.disabled = true;
  106. btn_pdsrchfstdrapnt.disabled = true;
  107. ipt_pdscnddrapntid.disabled = true;
  108. btn_pdsrchscnddrapnt.disabled = true;
  109. }else if(sFlag == "2") { // 시간별
  110. ipt_pdalldrapntid.disabled = true;
  111. btn_pdsrchalldrapnt.disabled = true;
  112. ipt_pdfstdrapntid.disabled = false;
  113. btn_pdsrchfstdrapnt.disabled = false;
  114. ipt_pdscnddrapntid.disabled = false;
  115. btn_pdsrchscnddrapnt.disabled = false;
  116. }
  117. break;
  118. }
  119. model.refresh();
  120. }
  121. /**
  122. * @group :
  123. * @ver : 2007.08.20
  124. * @by : 김진아
  125. * @---------------------------------------------------
  126. * @type : function
  127. * @access : public
  128. * @desc : HD의사지정 History조회
  129. * @param :
  130. * @return :
  131. * @---------------------------------------------------
  132. */
  133. function fSrchDrApntHist(pFlag){
  134. var currentdate = getCurrentDate();
  135. ipt_appfromdd.disabled = false;
  136. ipt_apptodd.disabled = false;
  137. model.removeNodeset("/root/main/hddrapnthistlist");
  138. model.removeNodeset("/root/main/pddrapnthistlist");
  139. model.removenodeSet("/root/send/reqdata");
  140. model.makeValue ("/root/send/reqdata/srchfromdd", model.getValue("/root/main/cond/srchfromdd"));
  141. model.makeValue ("/root/send/reqdata/srchtodd", model.getValue("/root/main/cond/srchtodd"));
  142. if(pFlag == "H"){
  143. grd_hddrapnthistinfo.rebuildStyle();
  144. submit("TRMND03201");
  145. for(var i = grd_hddrapnthistinfo.fixedrows ; i < grd_hddrapnthistinfo.rows ; i++){
  146. if( grd_hddrapnthistinfo.valueMatrix(i, grd_hddrapnthistinfo.colRef("usernm")) == "" ){
  147. grd_hddrapnthistinfo.rowStyle(i, "all", "background-color") = "#ffd98d";
  148. }
  149. if( grd_hddrapnthistinfo.valueMatrix(i, grd_hddrapnthistinfo.colRef("appdd")) <= currentdate &&
  150. grd_hddrapnthistinfo.valueMatrix(i, grd_hddrapnthistinfo.colRef("apptodd")) >= currentdate ){
  151. grd_hddrapnthistinfo.rowStyle(i, "all", "background-color") = "#ccff99";
  152. }
  153. }
  154. }else{
  155. grd_pddrapnthistinfo.rebuildStyle();
  156. submit("TRMND03203");
  157. for(var i = grd_pddrapnthistinfo.fixedrows ; i < grd_pddrapnthistinfo.rows ; i++){
  158. if( grd_pddrapnthistinfo.valueMatrix(i, grd_pddrapnthistinfo.colRef("usernm")) == "" ){
  159. grd_pddrapnthistinfo.rowStyle(i, "all", "background-color") = "#ffd98d";
  160. }
  161. if( grd_pddrapnthistinfo.valueMatrix(i, grd_pddrapnthistinfo.colRef("appdd")) <= currentdate &&
  162. grd_pddrapnthistinfo.valueMatrix(i, grd_pddrapnthistinfo.colRef("apptodd")) >= currentdate ){
  163. grd_pddrapnthistinfo.rowStyle(i, "all", "background-color") = "#ccff99";
  164. }
  165. }
  166. }
  167. }
  168. /**
  169. * @group :
  170. * @ver : 2007.08.21
  171. * @by : 김진아
  172. * @---------------------------------------------------
  173. * @type : function
  174. * @access : public
  175. * @desc : 적용일자 체크
  176. * @param :
  177. * @return :
  178. * @---------------------------------------------------
  179. */
  180. function fChkAppdd(sPath, pFlag){
  181. //** 오늘 이전 적용일자 설정 금지 **//
  182. var xPath ="";
  183. if(pFlag == "H"){
  184. xPath = "/root/main/hddrapntcretlist/hddrapntcretinfo/";
  185. }else{
  186. xPath = "/root/main/pddrapntcretlist/pddrapntcretinfo/";
  187. }
  188. var sSelDate = model.getValue(xPath + sPath);
  189. var lstMonthDay = new Date().getMonthDay(); // 해달 월의 마직막 일
  190. //if(sSelDate <= getCurrentDate()) {
  191. //alert("kkkk=====" + sSelDate );
  192. if(sSelDate < getCurrentDate()) { //20131231 kya 당일을 포함하도록 수정
  193. messageBox("적용일자를 오늘 이전으로 설정", "E001", "적용일자를 다시 입력하세요.");
  194. model.setValue(xPath + sPath, getDateAddc(getCurrentDate(),1));
  195. model.refresh();
  196. return;
  197. }
  198. //** 적용기간 범위 확인 **//
  199. var sAppFromDD = model.getValue(xPath +"appfromdd");
  200. var sAppToDD = model.getValue(xPath +"apptodd" );
  201. if( sAppFromDD != "" && sAppFromDD > sAppToDD) {
  202. messageBox("잘못된 범위 입니다.", "E");
  203. fInit(pFlag); // 예약의사지정 초기화
  204. return;
  205. }
  206. }
  207. /**
  208. * @group :
  209. * @ver : 2007.08.22
  210. * @by : 김진아
  211. * @---------------------------------------------------
  212. * @type : function
  213. * @access : public
  214. * @desc : 생성일시, 적용기간 초기화
  215. * @param :
  216. * @return :
  217. * @---------------------------------------------------
  218. */
  219. function fInit(pFlag){
  220. var currentDate = getCurrentDate(); // 현재일자
  221. switch(pFlag){
  222. case "H":
  223. var lstAppToDD = model.getValue("/root/main/hddrapnthistlist/hddrapnthistinfo[1]/apptodd");
  224. model.setValue("/root/main/hddrapntcretlist/hddrapntcretinfo/cretopt", "1"); // 지정의사 Defalt설정 (1: 전체)
  225. model.setValue("/root/main/hddrapntcretlist/hddrapntcretinfo/cretdd" , currentDate ); // 생성일자
  226. model.setValue("/root/main/hddrapntcretlist/hddrapntcretinfo/crettm" , getCurrentTime().substr(0,4)); // 생성시간
  227. if(lstAppToDD != "") {
  228. lstAppToDD = (lstAppToDD.toDate("YYYYMMDD")).getAddDate(1);
  229. model.setValue("/root/main/hddrapntcretlist/hddrapntcretinfo/appfromdd", lstAppToDD.getDateFormat() ); // 적용일자
  230. model.setValue("/root/main/hddrapntcretlist/hddrapntcretinfo/apptodd" , (lstAppToDD.getAddDate(1, "M")).getDateFormat()); // 1개월 후 일자
  231. } else {
  232. currentDate = (currentDate.toDate("YYYYMMDD")).getAddDate(1);
  233. model.setValue("/root/main/hddrapntcretlist/hddrapntcretinfo/appfromdd", currentDate.getDateFormat()); // 적용일자
  234. model.setValue("/root/main/hddrapntcretlist/hddrapntcretinfo/apptodd" , (currentDate.getAddDate(1, "M")).getDateFormat()); // 1개월 후 일자
  235. }
  236. model.setFocus("ipt_alldrapntid"); //** 초기 포커스 설정(전체적용의사) **//
  237. fInitDrApnt(pFlag); // 의사지정 초기화
  238. fSetDisabled(rdo_srchflag.value); // 지정의사 컨트롤 활성여부 설정
  239. ipt_appfromdd.disabled = false;
  240. ipt_apptodd.disabled = false;
  241. model.refresh();
  242. break;
  243. case "P":
  244. var lstAppToDD = model.getValue("/root/main/pddrapnthistlist/pddrapnthistinfo[1]/apptodd");
  245. model.setValue("/root/main/pddrapntcretlist/pddrapntcretinfo/cretdd" , currentDate ); // 생성일자
  246. model.setValue("/root/main/pddrapntcretlist/pddrapntcretinfo/crettm" , getCurrentTime().substr(0,4)); // 생성시간
  247. if(lstAppToDD != "") {
  248. lstAppToDD = (lstAppToDD.toDate("YYYYMMDD")).getAddDate(1);
  249. model.setValue("/root/main/pddrapntcretlist/pddrapntcretinfo/appfromdd", lstAppToDD.getDateFormat() ); // 적용일자
  250. model.setValue("/root/main/pddrapntcretlist/pddrapntcretinfo/apptodd" , (lstAppToDD.getAddDate(1, "M")).getDateFormat()); // 1개월 후 일자
  251. } else {
  252. currentDate = (currentDate.toDate("YYYYMMDD")).getAddDate(1);
  253. model.setValue("/root/main/pddrapntcretlist/pddrapntcretinfo/appfromdd", currentDate.getDateFormat()); // 적용일자
  254. model.setValue("/root/main/pddrapntcretlist/pddrapntcretinfo/apptodd" , (currentDate.getAddDate(1, "M")).getDateFormat()); // 1개월 후 일자
  255. }
  256. model.setFocus("ipt_pdalldrapntid"); //** 초기 포커스 설정(전체적용의사) **//
  257. fInitDrApnt(pFlag); // 의사지정 초기화
  258. fSetDisabled(rdo_srchflag.value); // 지정의사 컨트롤 활성여부 설정
  259. ipt_pdappfromdd.disabled = false;
  260. ipt_pdapptodd.disabled = false;
  261. model.refresh();
  262. break;
  263. }
  264. }
  265. /**
  266. * @group :
  267. * @ver : 2007.08.22
  268. * @by : 김진아
  269. * @---------------------------------------------------
  270. * @type : function
  271. * @access : public
  272. * @desc : 의사지정 초기화
  273. * @param :
  274. * @return :
  275. * @---------------------------------------------------
  276. */
  277. function fInitDrApnt(pFlag){
  278. switch(pFlag){
  279. case "H":
  280. model.setValue("/root/main/hddrapntcretlist/hddrapntcretinfo/alldrapntid" , "");
  281. model.setValue("/root/main/hddrapntcretlist/hddrapntcretinfo/alldrapntnm" , "");
  282. model.setValue("/root/main/hddrapntcretlist/hddrapntcretinfo/fstdrapntid" , "");
  283. model.setValue("/root/main/hddrapntcretlist/hddrapntcretinfo/fstdrapntnm" , "");
  284. model.setValue("/root/main/hddrapntcretlist/hddrapntcretinfo/scnddrapntid", "");
  285. model.setValue("/root/main/hddrapntcretlist/hddrapntcretinfo/scnddrapntnm", "");
  286. model.setValue("/root/main/hddrapntcretlist/hddrapntcretinfo/lastdrapntid", "");
  287. model.setValue("/root/main/hddrapntcretlist/hddrapntcretinfo/lastdrapntnm", "");
  288. model.setValue("/root/main/hddrapntcretlist/hddrapntcretinfo/erdrapntid", ""); //응급Shift추가-kys-20091217
  289. model.setValue("/root/main/hddrapntcretlist/hddrapntcretinfo/erdrapntnm", ""); //응급Shift추가-kys-20091217
  290. break;
  291. case "P":
  292. model.setValue("/root/main/pddrapntcretlist/pddrapntcretinfo/alldrapntid" , "");
  293. model.setValue("/root/main/pddrapntcretlist/pddrapntcretinfo/alldrapntnm" , "");
  294. model.setValue("/root/main/pddrapntcretlist/pddrapntcretinfo/fstdrapntid" , "");
  295. model.setValue("/root/main/pddrapntcretlist/pddrapntcretinfo/fstdrapntnm" , "");
  296. model.setValue("/root/main/pddrapntcretlist/pddrapntcretinfo/scnddrapntid", "");
  297. model.setValue("/root/main/pddrapntcretlist/pddrapntcretinfo/scnddrapntnm", "");
  298. break;
  299. }
  300. }
  301. /**
  302. * @group :
  303. * @ver : 2007.08.22
  304. * @by : 김진아
  305. * @---------------------------------------------------
  306. * @type : function
  307. * @access : public
  308. * @desc : 예약의사 지정 기존정보 수정 설정
  309. * @param :
  310. * @return :
  311. * @---------------------------------------------------
  312. */
  313. function fSetDrApntHist(pFlag){
  314. var currentdate = getCurrentDate();
  315. if(pFlag == "H"){
  316. var xSavePath = "/root/main/hddrapntcretlist/hddrapntcretinfo";
  317. var sRow = grd_hddrapnthistinfo.row;
  318. //그리스 상단 선택 제어
  319. if(sRow < grd_hddrapnthistinfo.fixedRows ){
  320. return;
  321. }
  322. //과거 예약 이력 변경 제어
  323. //start
  324. //20140205 kya 수정 당일 진료의가 변경될 수 있도록 수정함.
  325. //if(grd_hddrapnthistinfo.valueMatrix(sRow, grd_hddrapnthistinfo.colRef("apptodd")) <= currentdate){
  326. if(grd_hddrapnthistinfo.valueMatrix(sRow, grd_hddrapnthistinfo.colRef("apptodd")) < currentdate){
  327. //end
  328. messageBox("과거의 의사지정 내역은 수정할 수 없습니다.", "I");
  329. return;
  330. }
  331. var sMsg = "";
  332. if(grd_hddrapnthistinfo.valueMatrix(sRow, grd_hddrapnthistinfo.colRef("usernm")) != "" ){
  333. sMsg = messageBox("기존 예약의사 정보를 수정하시겠습니까?", "S");
  334. }
  335. if(sMsg == 6 || sMsg == "") { //return : yes=6, no=7, 취소=2
  336. var iRow = (grd_hddrapnthistinfo.row)-1;
  337. model.makeValue("/root/main/hddrapntcretlist/hddrapntcretinfo/status", "i");
  338. if(model.getValue("/root/main/hddrapnthistlist/hddrapnthistinfo["+iRow+"]/usernm")==""){
  339. model.setValue ("/root/main/hddrapntcretlist/hddrapntcretinfo/cretdd" , currentdate );
  340. model.setValue ("/root/main/hddrapntcretlist/hddrapntcretinfo/crettm" , getCurrentTime().substr(0,4) );
  341. }else{
  342. model.setValue ("/root/main/hddrapntcretlist/hddrapntcretinfo/cretdd" , model.getValue("/root/main/hddrapnthistlist/hddrapnthistinfo["+iRow+"]/cretdd" ));
  343. model.setValue ("/root/main/hddrapntcretlist/hddrapntcretinfo/crettm" , model.getValue("/root/main/hddrapnthistlist/hddrapnthistinfo["+iRow+"]/crettm" ));
  344. }
  345. if(model.getValue("/root/main/hddrapnthistlist/hddrapnthistinfo["+iRow+"]/appdd") <= currentdate &&
  346. model.getValue("/root/main/hddrapnthistlist/hddrapnthistinfo["+iRow+"]/apptodd") > currentdate ){
  347. model.setValue ("/root/main/hddrapntcretlist/hddrapntcretinfo/appfromdd" , getDateCalc(currentdate, 1 , "+") );
  348. model.setValue ("/root/main/hddrapntcretlist/hddrapntcretinfo/apptodd" , model.getValue("/root/main/hddrapnthistlist/hddrapnthistinfo["+iRow+"]/apptodd" ));
  349. }else{
  350. model.setValue ("/root/main/hddrapntcretlist/hddrapntcretinfo/appfromdd" , model.getValue("/root/main/hddrapnthistlist/hddrapnthistinfo["+iRow+"]/appdd" ));
  351. model.setValue ("/root/main/hddrapntcretlist/hddrapntcretinfo/apptodd" , model.getValue("/root/main/hddrapnthistlist/hddrapnthistinfo["+iRow+"]/apptodd" ));
  352. }
  353. model.setValue ("/root/main/hddrapntcretlist/hddrapntcretinfo/fstdrapntid" , model.getValue("/root/main/hddrapnthistlist/hddrapnthistinfo["+iRow+"]/fstdrapntid" ));
  354. model.setValue ("/root/main/hddrapntcretlist/hddrapntcretinfo/fstdrapntnm" , model.getValue("/root/main/hddrapnthistlist/hddrapnthistinfo["+iRow+"]/fstdrapntnm" ));
  355. model.setValue ("/root/main/hddrapntcretlist/hddrapntcretinfo/scnddrapntid", model.getValue("/root/main/hddrapnthistlist/hddrapnthistinfo["+iRow+"]/scnddrapntid"));
  356. model.setValue ("/root/main/hddrapntcretlist/hddrapntcretinfo/scnddrapntnm", model.getValue("/root/main/hddrapnthistlist/hddrapnthistinfo["+iRow+"]/scnddrapntnm"));
  357. model.setValue ("/root/main/hddrapntcretlist/hddrapntcretinfo/lastdrapntid", model.getValue("/root/main/hddrapnthistlist/hddrapnthistinfo["+iRow+"]/lastdrapntid"));
  358. model.setValue ("/root/main/hddrapntcretlist/hddrapntcretinfo/lastdrapntnm", model.getValue("/root/main/hddrapnthistlist/hddrapnthistinfo["+iRow+"]/lastdrapntnm"));
  359. model.setValue ("/root/main/hddrapntcretlist/hddrapntcretinfo/erdrapntid", model.getValue("/root/main/hddrapnthistlist/hddrapnthistinfo["+iRow+"]/erdrapntid")); //응급Shift추가-kys-20091217
  360. model.setValue ("/root/main/hddrapntcretlist/hddrapntcretinfo/erdrapntnm", model.getValue("/root/main/hddrapnthistlist/hddrapnthistinfo["+iRow+"]/erdrapntnm")); //응급Shift추가-kys-20091217
  361. model.setValue ("/root/main/hddrapntcretlist/hddrapntcretinfo/cretopt" , "2");
  362. model.refresh();
  363. fSetDisabled(rdo_srchflag.value); // 지정의사 컨트롤 활성여부 설정
  364. //ipt_appfromdd.disabled = true;
  365. //ipt_apptodd.disabled = true;
  366. }else {
  367. return;
  368. }
  369. }else{
  370. var sRow = grd_pddrapnthistinfo.row;
  371. //그리스 상단 선택 제어
  372. if(sRow < grd_pddrapnthistinfo.fixedRows ){
  373. return;
  374. }
  375. //과거 예약 이력 변경 제어
  376. //start
  377. //20140205 kya 수정 당일 진료의가 변경될 수 있도록 수정함.
  378. // if(grd_pddrapnthistinfo.valueMatrix(sRow, grd_pddrapnthistinfo.colRef("apptodd")) <= currentdate ){
  379. if(grd_pddrapnthistinfo.valueMatrix(sRow, grd_pddrapnthistinfo.colRef("apptodd")) < currentdate ){
  380. //end
  381. messageBox("과거의 의사지정 내역은 수정할 수 없습니다.", "I");
  382. return;
  383. }
  384. var sMsg = "";
  385. if(grd_pddrapnthistinfo.valueMatrix(sRow, grd_pddrapnthistinfo.colRef("usernm")) != "" ){
  386. sMsg = messageBox("기존 예약의사 정보를 수정하시겠습니까?", "S");
  387. }
  388. if(sMsg == 6 || sMsg == "") { //return : yes=6, no=7, 취소=2
  389. var iRow = (grd_pddrapnthistinfo.row)-1;
  390. model.makeValue("/root/main/pddrapntcretlist/pddrapntcretinfo/status", "i");
  391. if(model.getValue("/root/main/pddrapntcretlist/pddrapntcretinfo["+iRow+"]/usernm")==""){
  392. model.setValue ("/root/main/pddrapntcretlist/pddrapntcretinfo/cretdd" , currentdate );
  393. model.setValue ("/root/main/pddrapntcretlist/pddrapntcretinfo/crettm" , getCurrentTime().substr(0,4) );
  394. }else{
  395. model.setValue ("/root/main/pddrapntcretlist/pddrapntcretinfo/cretdd" , model.getValue("/root/main/hddrapnthistlist/hddrapnthistinfo["+iRow+"]/cretdd" ));
  396. model.setValue ("/root/main/pddrapntcretlist/pddrapntcretinfo/crettm" , model.getValue("/root/main/hddrapnthistlist/hddrapnthistinfo["+iRow+"]/crettm" ));
  397. }
  398. if(model.getValue("/root/main/pddrapnthistlist/pddrapnthistinfo["+iRow+"]/appdd") <= currentdate &&
  399. model.getValue("/root/main/pddrapnthistlist/pddrapnthistinfo["+iRow+"]/apptodd") > currentdate ){
  400. model.setValue ("/root/main/pddrapntcretlist/pddrapntcretinfo/appfromdd" , getDateCalc(currentdate, 1 , "+") );
  401. model.setValue ("/root/main/pddrapntcretlist/pddrapntcretinfo/apptodd" , model.getValue("/root/main/pddrapnthistlist/pddrapnthistinfo["+iRow+"]/apptodd" ));
  402. }else{
  403. model.setValue ("/root/main/pddrapntcretlist/pddrapntcretinfo/appfromdd" , model.getValue("/root/main/pddrapnthistlist/pddrapnthistinfo["+iRow+"]/appdd" ));
  404. model.setValue ("/root/main/pddrapntcretlist/pddrapntcretinfo/apptodd" , model.getValue("/root/main/pddrapnthistlist/pddrapnthistinfo["+iRow+"]/apptodd" ));
  405. }
  406. //model.setValue ("/root/main/pddrapntcretlist/pddrapntcretinfo/cretdd" , model.getValue("/root/main/pddrapnthistlist/pddrapnthistinfo["+iRow+"]/cretdd" ));
  407. //model.setValue ("/root/main/pddrapntcretlist/pddrapntcretinfo/crettm" , model.getValue("/root/main/pddrapnthistlist/pddrapnthistinfo["+iRow+"]/crettm" ));
  408. // model.setValue ("/root/main/pddrapntcretlist/pddrapntcretinfo/alldrapntid" , model.getValue("/root/main/pddrapnthistlist/pddrapnthistinfo["+iRow+"]/fstdrapntid" ));
  409. // model.setValue ("/root/main/pddrapntcretlist/pddrapntcretinfo/alldrapntnm" , model.getValue("/root/main/pddrapnthistlist/pddrapnthistinfo["+iRow+"]/fstdrapntnm" ));
  410. model.setValue ("/root/main/pddrapntcretlist/pddrapntcretinfo/fstdrapntid" , model.getValue("/root/main/pddrapnthistlist/pddrapnthistinfo["+iRow+"]/fstdrapntid" ));
  411. model.setValue ("/root/main/pddrapntcretlist/pddrapntcretinfo/fstdrapntnm" , model.getValue("/root/main/pddrapnthistlist/pddrapnthistinfo["+iRow+"]/fstdrapntnm" ));
  412. model.setValue ("/root/main/pddrapntcretlist/pddrapntcretinfo/scnddrapntid" , model.getValue("/root/main/pddrapnthistlist/pddrapnthistinfo["+iRow+"]/scnddrapntid" ));
  413. model.setValue ("/root/main/pddrapntcretlist/pddrapntcretinfo/scnddrapntnm" , model.getValue("/root/main/pddrapnthistlist/pddrapnthistinfo["+iRow+"]/scnddrapntnm" ));
  414. model.setValue ("/root/main/pddrapntcretlist/pddrapntcretinfo/cretopt" , "2");
  415. model.refresh();
  416. fSetDisabled(rdo_srchflag.value); // 지정의사 컨트롤 활성여부 설정
  417. //ipt_appfromdd.disabled = true;
  418. //ipt_apptodd.disabled = true;
  419. }else {
  420. return;
  421. }
  422. }
  423. }
  424. /**
  425. * @group :
  426. * @ver : 2007.07.25 // 수정일자 : 2007.09.21
  427. * @by : 최경용 // 수정자 : 김진아
  428. * @---------------------------------------------------
  429. * @type : function
  430. * @access : public
  431. * @desc : 참여자 정보 팝업 조회
  432. * @param : originalNode
  433. * @param : copyNode
  434. * @return : "true"/"false"
  435. * @---------------------------------------------------
  436. */
  437. function fClickUserBtn(userflag, sIDPath, sNMPath){
  438. var jobkindcd = "03";
  439. //var deptcd = "2010700000"; // 신장내과 부서코드:"2010700000"
  440. //하드코드수정-20090416
  441. var deptcd = model.getValue("/root/code/codeinfo/codelist/cdid");
  442. //alert("deptcd = " + deptcd);
  443. var titlenm = "인공신장실 예약 지정의 리스트";
  444. setParameter("SPMNN02100_deptcd", deptcd);
  445. setParameter("SPMNN02100_jobkindcd", jobkindcd);
  446. setParameter("SPMNN02100_titlenm" , titlenm);
  447. setParameter("SPMNN02100_userflag" , "doctor");
  448. modal("SPMNN02100", "", event.screenX , event.screenY);
  449. var userid = getParameter("SPMNN02100_userid");
  450. var usernm = getParameter("SPMNN02100_usernm");
  451. var xHDPath = "/root/main/hddrapntcretlist/hddrapntcretinfo/";
  452. var xPDPath = "/root/main/pddrapntcretlist/pddrapntcretinfo/";
  453. switch(userflag){
  454. case "H":
  455. if(userid != ""){
  456. model.makeValue(xHDPath + sIDPath, userid);
  457. model.makeValue(xHDPath + sNMPath, usernm);
  458. }
  459. break;
  460. case "P":
  461. if(userid != ""){
  462. model.makeValue(xPDPath + sIDPath, userid);
  463. model.makeValue(xPDPath + sNMPath, usernm);
  464. }
  465. break;
  466. }
  467. setParameter("SPMNN02100_userid", "");
  468. setParameter("SPMNN02100_usernm", "");
  469. model.refresh();
  470. }
  471. /**
  472. * @group :
  473. * @ver : 2007.08.20
  474. * @by : 김진아
  475. * @---------------------------------------------------
  476. * @type : function
  477. * @access : public
  478. * @desc : 예약의사지정 생성 저장
  479. * @param :
  480. * @return :
  481. * @---------------------------------------------------
  482. */
  483. function fSaveDrApntCret(pFlag){
  484. switch(pFlag){
  485. case "H":
  486. var xPath = "/root/main/hddrapntcretlist/hddrapntcretinfo/";
  487. var sAppDD = model.getValue(xPath + "appfromdd" ); // 적용일자
  488. var sAppToDD = model.getValue(xPath + "apptodd" ); // 적용종료일자
  489. var sCretDD = model.getValue(xPath + "cretdd" ); // 생성일자
  490. var sCretTM = model.getValue(xPath + "crettm" ); // 생성시간
  491. var sCretOpt = model.getValue(xPath + "cretopt" ); // 지정의사 옵션 값
  492. var sAllDrApntID = model.getValue(xPath + "alldrapntid" ); // 전체 예약의사ID
  493. var sAllDrApntNM = model.getValue(xPath + "alldrapntnm" ); // 전체 예약의사명
  494. var sFstDrApntID = model.getValue(xPath + "fstdrapntid" ); // 1shift 예약의사ID
  495. var sFstDrApntNM = model.getValue(xPath + "fstdrapntnm" ); // 1shift 예약의사명
  496. var sScndDrApntID = model.getValue(xPath + "scnddrapntid"); // 2shift 예약의사ID
  497. var sScndDrApntNM = model.getValue(xPath + "scnddrapntnm"); // 2shift 예약의사명
  498. var sLastDrApntID = model.getValue(xPath + "lastdrapntid"); // 3shift 예약의사ID
  499. var sLastDrApntNM = model.getValue(xPath + "lastdrapntnm"); // 3shift 예약의사명
  500. var sErDrApntID = model.getValue(xPath + "erdrapntid"); // 응급shift 예약의사ID-kys-20091217
  501. var sErDrApntNM = model.getValue(xPath + "erdrapntnm"); // 응급shift 예약의사명-kys-20091217
  502. //** 저장 전 빈값 확인 **//
  503. if(sAppDD == "") {
  504. messageBox("적용일자는 필수입력입니다.", "I", "적용일자를 입력하십시오.");
  505. model.setFocus("ipt_appfromdd");
  506. fSetDisabled(rdo_srchflag.value); return;
  507. }
  508. if(sAppToDD == "") {
  509. messageBox("적용종료일자는 필수입력입니다.", "I", "적용종료일자를 입력하십시오.");
  510. model.setFocus("ipt_apptodd");
  511. fSetDisabled(rdo_srchflag.value); return;
  512. }
  513. if(sCretDD == "") {
  514. messageBox("생성일자는 필수입력입니다.", "I", "생성일자를 입력하십시오.");
  515. model.setFocus("ipt_cretdd");
  516. fSetDisabled(rdo_srchflag.value); return;
  517. }
  518. if(sCretTM == "") {
  519. messageBox("생성시간은 필수입력입니다.", "I", "생성시간를 입력하십시오.");
  520. model.setFocus("ipt_crettm");
  521. fSetDisabled(rdo_srchflag.value); return;
  522. }
  523. if(sCretOpt == "") {
  524. messageBox("지정의사 정보는 필수입력입니다.", "I", "지정의사 옵션 값을 선택하십시오.");
  525. model.setFocus("rdo_cretopt");
  526. fSetDisabled(rdo_srchflag.value); return;
  527. } else if(sCretOpt == "1"){ // 전체
  528. if(sAllDrApntID == "" || sAllDrApntNM == "") {
  529. messageBox("지정의사 정보는 필수입력입니다.", "I", "지정의사ID를 입력한 후 엔터키를 누르십시오.");
  530. model.setFocus("ipt_alldrapntid");
  531. fSetDisabled(rdo_srchflag.value); return;
  532. }
  533. }else if(sCretOpt == "2"){ // Shift별
  534. // 1Shift
  535. if(sFstDrApntID == "" || sFstDrApntNM == "") {
  536. messageBox("지정의사 정보는 필수입력입니다.", "I", "1Shift 지정의사ID를 입력한 후 엔터키를 누르십시오.");
  537. model.setFocus("ipt_fstdrapntid");
  538. fSetDisabled(rdo_srchflag.value); return;
  539. }
  540. // 2Shift
  541. if(sScndDrApntID == "" || sScndDrApntNM == "") {
  542. messageBox("지정의사 정보는 필수입력입니다.", "I", "2Shift 지정의사ID를 입력한 후 엔터키를 누르십시오.");
  543. model.setFocus("ipt_scnddrapntid");
  544. fSetDisabled(rdo_srchflag.value); return;
  545. }
  546. // 3Shift
  547. if(sLastDrApntID == "" || sLastDrApntNM == "") {
  548. messageBox("지정의사 정보는 필수입력입니다.", "I", "3Shift 지정의사ID를 입력한 후 엔터키를 누르십시오.");
  549. model.setFocus("ipt_lastdrapntid");
  550. fSetDisabled(rdo_srchflag.value); return;
  551. }
  552. // 응급Shift추가-kys-20091217
  553. if(sErDrApntID == "" || sErDrApntNM == "") {
  554. messageBox("지정의사 정보는 필수입력입니다.", "I", "응급Shift 지정의사ID를 입력한 후 엔터키를 누르십시오.");
  555. model.setFocus("ipt_erdrapntid");
  556. fSetDisabled(rdo_srchflag.value); return;
  557. }
  558. }
  559. var sChkYN = "N";
  560. //** 동일일자 데이터 존재 유무 확인 **//
  561. for(var i=1; i<grd_hddrapnthistinfo.rows; i++) {
  562. var sHistAppFromDD = model.getValue("/root/main/hddrapnthistlist/hddrapnthistinfo["+ i +"]/appdd" ); // 기존적용일자
  563. var sHistAppToDD = model.getValue("/root/main/hddrapnthistlist/hddrapnthistinfo["+ i +"]/apptodd"); // 기존적용종료일자
  564. var sAftHistAppFromDD = model.getValue("/root/main/hddrapnthistlist/hddrapnthistinfo["+ i+1 +"]/appdd" ); // 다음기존적용일자
  565. var sPreHistAppToDD = model.getValue("/root/main/hddrapnthistlist/hddrapnthistinfo["+ i-1 +"]/apptodd"); // 이전기존적용종료일자
  566. var sHistUser = model.getValue("/root/main/hddrapnthistlist/hddrapnthistinfo["+ i +"]/usernm"); // 기존적용종료일자
  567. if(sAftHistAppFromDD==""){
  568. sAftHistAppFromDD = "99991231";
  569. }
  570. if(sPreHistAppToDD==""){
  571. sPreHistAppToDD = "00010101";
  572. }
  573. // if( ((sHistAppFromDD < sAppDD ) && (sAppDD < sHistAppToDD ))) {
  574. // var sMsg = messageBox("적용일자 구간에 지정의사가 존재합니다.", "S", "기존정보를 강제종료 시키시겠습니까?");
  575. //
  576. // // 기존의 지정의사정보를 수정
  577. // if(sMsg == 6) { //return : yes=6, no=7, 취소=2
  578. // //** 기존의 지정의사정보를 수정 **//
  579. // //model.makeValue("/root/main/hddrapntcretlist/hddrapntcretinfo/status", "u");
  580. //
  581. // model.removenode("/root/send");
  582. // model.makeNode ("/root/send");
  583. // model.makeValue ("/root/send/savedata/appdd" , sHistAppFromDD );
  584. // model.makeValue ("/root/send/savedata/apptodd" , sHistAppToDD );
  585. // model.makeValue ("/root/send/savedata/newappdd", sAppDD);
  586. //
  587. // if(submit("TXMND03202") == true){ // 기존정보 종료일자 Update
  588. // model.makeValue("/root/main/hddrapntcretlist/hddrapntcretinfo/status", "i");
  589. // }
  590. // }else {
  591. // fInit(pFlag); // 생성일자, 적용일자 초기화
  592. // return;
  593. // }
  594. // } //if()
  595. // else
  596. if( ((sHistAppFromDD==sAppDD)||(sHistAppToDD==sAppDD)||(sHistAppFromDD==sAppToDD)||(sHistAppToDD==sAppToDD)
  597. ||((sHistAppFromDD<sAppToDD)&&(sAppToDD<sHistAppToDD))
  598. ||((sHistAppFromDD>sAppDD) &&(sAppToDD>sHistAppToDD))) && sHistUser != "" ){
  599. sChkYN ="Y";
  600. }
  601. }// end of for
  602. if(sChkYN == "Y"){
  603. var sMsg = messageBox("등록할 일자 구간에 기입력된 스케줄이 존재합니다.", "Q003");
  604. if(sMsg == "7"){
  605. fInit(pFlag); // 생성일자, 적용일자 초기화
  606. return;
  607. }
  608. }
  609. model.removenode("/root/send");
  610. model.makeNode ("/root/send");
  611. if(model.getValue("/root/main/hddrapntcretlist/hddrapntcretinfo/status") == "") {
  612. model.makeValue("/root/main/hddrapntcretlist/hddrapntcretinfo/status", "i");
  613. }
  614. model.makeValue("/root/send/savedata/saveflag" ,"H"); // 저장구분
  615. model.makeValue("/root/send/savedata/status" , model.getValue(xPath + "status")); // 상태값
  616. model.makeValue("/root/send/savedata/cretdd" , sCretDD); // 생성일자
  617. model.makeValue("/root/send/savedata/crettm" , sCretTM); // 생성시간
  618. model.makeValue("/root/send/savedata/apptodd" , sAppToDD); // 적용종료일자
  619. model.makeValue("/root/send/savedata/appdd" , sAppDD ); // 적용일자
  620. if(sCretOpt == "1") {
  621. model.makeValue("/root/send/savedata/fstdrapntid" , sAllDrApntID ); // 1shift 예약의사ID
  622. model.makeValue("/root/send/savedata/fstdrapntnm" , sAllDrApntNM ); // 1shift 예약의사명
  623. model.makeValue("/root/send/savedata/scnddrapntid", sAllDrApntID ); // 2shift 예약의사ID
  624. model.makeValue("/root/send/savedata/scnddrapntnm", sAllDrApntNM ); // 2shift 예약의사명
  625. model.makeValue("/root/send/savedata/lastdrapntid", sAllDrApntID ); // 3shift 예약의사ID
  626. model.makeValue("/root/send/savedata/lastdrapntnm", sAllDrApntNM ); // 3shift 예약의사명
  627. model.makeValue("/root/send/savedata/erdrapntid", sAllDrApntID ); // 응급shift 예약의사ID-추가-kys-20091217
  628. model.makeValue("/root/send/savedata/erdrapntnm", sAllDrApntNM ); // 응급shift 예약의사명-추가-kys-20091217
  629. } else {
  630. model.makeValue("/root/send/savedata/fstdrapntid" , sFstDrApntID ); // 1shift 예약의사ID
  631. model.makeValue("/root/send/savedata/fstdrapntnm" , sFstDrApntNM ); // 1shift 예약의사명
  632. model.makeValue("/root/send/savedata/scnddrapntid", sScndDrApntID); // 2shift 예약의사ID
  633. model.makeValue("/root/send/savedata/scnddrapntnm", sScndDrApntNM); // 2shift 예약의사명
  634. model.makeValue("/root/send/savedata/lastdrapntid", sLastDrApntID); // 3shift 예약의사ID
  635. model.makeValue("/root/send/savedata/lastdrapntnm", sLastDrApntNM); // 3shift 예약의사명
  636. model.makeValue("/root/send/savedata/erdrapntid", sErDrApntID); // 응급shift 예약의사ID-추가-kys-20091217
  637. model.makeValue("/root/send/savedata/erdrapntnm", sErDrApntNM); // 응급shift 예약의사명-추가-kys-20091217
  638. }
  639. if (submit("TXMND03201") == true){
  640. //20090211-외래예약 진료의 변경을 위해 추가=============
  641. var sUpdChkyn = "N";
  642. //입력(수정)한 시작일이 기존종료일안에 포함되는지를 판단.
  643. for(var i=1; i<grd_hddrapnthistinfo.rows; i++) {
  644. var sHistAppToDD = "";
  645. sHistAppToDD = model.getValue("/root/main/hddrapnthistlist/hddrapnthistinfo["+ i +"]/apptodd"); // 기존적용종료일자
  646. //alert("sHistAppToDD = " + sHistAppToDD);
  647. //alert("sAppDD = " + sAppDD);
  648. if(sHistAppToDD >= sAppDD){
  649. sUpdChkyn = "Y";
  650. break;
  651. }
  652. }
  653. //입력(수정)한 적용시작일이 기존 종료일안에 포함될경우 외래예약변경 팝업 호출
  654. if(sUpdChkyn == 'Y'){
  655. messageBox("미래예약존재시 진료의변경을 하셔야 합니다.", "I");
  656. var sPhFlag = "H";
  657. if(sCretOpt == "1"){
  658. var param = sPhFlag + "▦" + sAppDD + "▦" + sAppToDD + "▦" + sAllDrApntID + "▦" + sAllDrApntID + "▦" + sAllDrApntID;
  659. }else{
  660. var param = sPhFlag + "▦" + sAppDD + "▦" + sAppToDD + "▦" + sFstDrApntID + "▦" + sScndDrApntID + "▦" + sLastDrApntID;
  661. }
  662. //alert("param = " + param);
  663. setParameter("SMMND03600_param_pinfo", param);
  664. modal("../../../emr/dialroomweb/xrw/SMMND03600", "1",event.screenX, event.screenY, "SMMND03600", "", "");
  665. }
  666. //20090211-외래예약 진료의 변경을 위해 추가 ================
  667. fSrchDrApntHist(pFlag); // HD의사지정 History조회
  668. fInit(pFlag); // 예약의사지정 초기화
  669. } else {
  670. messageBox("저장을 실패했습니다.", "C");
  671. }
  672. break;
  673. case "P":
  674. var xPath = "/root/main/pddrapntcretlist/pddrapntcretinfo/";
  675. var sAppDD = model.getValue(xPath + "appfromdd" ); // 적용일자
  676. var sAppToDD = model.getValue(xPath + "apptodd" ); // 적용종료일자
  677. var sCretDD = model.getValue(xPath + "cretdd" ); // 생성일자
  678. var sCretTM = model.getValue(xPath + "crettm" ); // 생성시간
  679. var sCretOpt = model.getValue(xPath + "cretopt" ); // 지정의사 옵션 값
  680. var sAllDrApntID = model.getValue(xPath + "alldrapntid" ); // 전체 예약의사ID
  681. var sAllDrApntNM = model.getValue(xPath + "alldrapntnm" ); // 전체 예약의사명
  682. var sFstDrApntID = model.getValue(xPath + "fstdrapntid" ); // 오전 예약의사ID
  683. var sFstDrApntNM = model.getValue(xPath + "fstdrapntnm" ); // 오전 예약의사명
  684. var sScndDrApntID = model.getValue(xPath + "scnddrapntid"); // 오후 예약의사ID
  685. var sScndDrApntNM = model.getValue(xPath + "scnddrapntnm"); // 오후 예약의사명
  686. //var sLastDrApntID = model.getValue(xPath + "lastdrapntid"); // 3shift 예약의사ID
  687. //var sLastDrApntNM = model.getValue(xPath + "lastdrapntnm"); // 3shift 예약의사명
  688. //** 저장 전 빈값 확인 **//
  689. if(sAppDD == "") {
  690. messageBox("적용일자는 필수입력입니다.", "I", "적용일자를 입력하십시오.");
  691. model.setFocus("ipt_appfromdd");
  692. fSetDisabled(rdo_srchflag.value); return;
  693. }
  694. if(sAppToDD == "") {
  695. messageBox("적용종료일자는 필수입력입니다.", "I", "적용종료일자를 입력하십시오.");
  696. model.setFocus("ipt_apptodd");
  697. fSetDisabled(rdo_srchflag.value); return;
  698. }
  699. if(sCretDD == "") {
  700. messageBox("생성일자는 필수입력입니다.", "I", "생성일자를 입력하십시오.");
  701. model.setFocus("ipt_cretdd");
  702. fSetDisabled(rdo_srchflag.value); return;
  703. }
  704. if(sCretTM == "") {
  705. messageBox("생성시간은 필수입력입니다.", "I", "생성시간를 입력하십시오.");
  706. model.setFocus("ipt_crettm");
  707. fSetDisabled(rdo_srchflag.value); return;
  708. }
  709. if(sCretOpt == "") {
  710. messageBox("지정의사 정보는 필수입력입니다.", "I", "지정의사 옵션 값을 선택하십시오.");
  711. model.setFocus("rdo_pdcretopt");
  712. fSetDisabled(rdo_srchflag.value); return;
  713. } else if(sCretOpt == "1"){ // 전체
  714. if(sAllDrApntID == "" || sAllDrApntNM == "") {
  715. messageBox("지정의사 정보는 필수입력입니다.", "I", "지정의사ID를 입력한 후 엔터키를 누르십시오.");
  716. model.setFocus("ipt_pdalldrapntid");
  717. fSetDisabled(rdo_srchflag.value); return;
  718. }
  719. }else if(sCretOpt == "2"){ // 시간별
  720. // 오전
  721. if(sFstDrApntID == "" || sFstDrApntNM == "") {
  722. messageBox("지정의사 정보는 필수입력입니다.", "I", "오전 지정의사ID를 입력한 후 엔터키를 누르십시오.");
  723. model.setFocus("ipt_pdfstdrapntid");
  724. fSetDisabled(rdo_srchflag.value); return;
  725. }
  726. // 오후
  727. if(sScndDrApntID == "" || sScndDrApntNM == "") {
  728. messageBox("지정의사 정보는 필수입력입니다.", "I", "오후 지정의사ID를 입력한 후 엔터키를 누르십시오.");
  729. model.setFocus("ipt_pdscnddrapntid");
  730. fSetDisabled(rdo_srchflag.value); return;
  731. }
  732. // // 3Shift
  733. // if(sLastDrApntID == "" || sLastDrApntNM == "") {
  734. // messageBox("지정의사 정보는 필수입력입니다.", "I", "3Shift 지정의사ID를 입력한 후 엔터키를 누르십시오.");
  735. // model.setFocus("ipt_lastdrapntid");
  736. // fSetDisabled(); return;
  737. // }
  738. }
  739. /*
  740. if(sAllDrApntID == "" || sAllDrApntNM == "") {
  741. messageBox("지정의사 정보는 필수입력입니다.", "I", "지정의사ID를 입력한 후 엔터키를 누르십시오.");
  742. model.setFocus("ipt_pdalldrapntid");
  743. //fSetDisabled();
  744. return;
  745. }
  746. */
  747. var sChkYN = "N";
  748. //** 동일일자 데이터 존재 유무 확인 **//
  749. for(var i=1; i<grd_pddrapnthistinfo.rows; i++) {
  750. var sHistAppFromDD = model.getValue("/root/main/pddrapnthistlist/pddrapnthistinfo["+ i +"]/appdd" ); // 기존적용일자
  751. var sHistAppToDD = model.getValue("/root/main/pddrapnthistlist/pddrapnthistinfo["+ i +"]/apptodd"); // 기존적용종료일자
  752. var sAftHistAppFromDD = model.getValue("/root/main/pddrapnthistlist/pddrapnthistinfo["+ i+1 +"]/appdd" ); // 다음기존적용일자
  753. var sPreHistAppToDD = model.getValue("/root/main/pddrapnthistlist/pddrapnthistinfo["+ i-1 +"]/apptodd"); // 이전기존적용종료일자
  754. if(sAftHistAppFromDD==""){
  755. sAftHistAppFromDD = "99991231";
  756. }
  757. if(sPreHistAppToDD==""){
  758. sPreHistAppToDD = "00010101";
  759. }
  760. // if( ((sHistAppFromDD < sAppDD ) && (sAppDD < sHistAppToDD ))) {
  761. // var sMsg = messageBox("적용일자 구간에 지정의사가 존재합니다.", "S", "기존정보를 강제종료 시키시겠습니까?");
  762. //
  763. // // 기존의 지정의사정보를 수정
  764. // if(sMsg == 6) { //return : yes=6, no=7, 취소=2
  765. // //** 기존의 지정의사정보를 수정 **//
  766. // //model.makeValue("/root/main/hddrapntcretlist/hddrapntcretinfo/status", "u");
  767. //
  768. // model.removenode("/root/send");
  769. // model.makeNode ("/root/send");
  770. // model.makeValue ("/root/send/savedata/appdd" , sHistAppFromDD );
  771. // model.makeValue ("/root/send/savedata/apptodd" , sHistAppToDD );
  772. // model.makeValue ("/root/send/savedata/newappdd", sAppDD);
  773. //
  774. // if(submit("TXMND03202") == true){ // 기존정보 종료일자 Update
  775. // model.makeValue("/root/main/pddrapntcretlist/pddrapntcretinfo/status", "i");
  776. // }
  777. // }else {
  778. // fInit(pFlag); // 생성일자, 적용일자 초기화
  779. // return;
  780. // }
  781. // } //if()
  782. // else
  783. if( ((sHistAppFromDD==sAppDD)||(sHistAppToDD==sAppDD)||(sHistAppFromDD==sAppToDD)||(sHistAppToDD==sAppToDD)
  784. ||((sHistAppFromDD<sAppToDD)&&(sAppToDD<sHistAppToDD))
  785. ||((sHistAppFromDD>sAppDD) &&(sAppToDD>sHistAppToDD))) && sHistUser != "" ){
  786. sChkYN ="Y";
  787. //messageBox("적용기간이", "E006", "적용기간을 확인하여 다시 시도하십시오.");
  788. //fInit(pFlag); // 생성일자, 적용일자 초기화
  789. //return;
  790. }
  791. }// end of for
  792. if(sChkYN == "Y"){
  793. var sMsg = messageBox("등록할 일자 구간에 기입력된 스케줄이 존재합니다.", "Q003");
  794. if(sMsg == "7"){
  795. fInit(pFlag); // 생성일자, 적용일자 초기화
  796. return;
  797. }
  798. }
  799. model.removenode("/root/send");
  800. model.makeNode ("/root/send");
  801. if(model.getValue("/root/main/pddrapntcretlist/pddrapntcretinfo/status") == "") {
  802. model.makeValue("/root/main/pddrapntcretlist/pddrapntcretinfo/status", "i");
  803. }
  804. model.makeValue("/root/send/savedata/saveflag" ,"P"); // 저장구분
  805. model.makeValue("/root/send/savedata/status" , model.getValue(xPath + "status")); // 상태값
  806. model.makeValue("/root/send/savedata/cretdd" , sCretDD); // 생성일자
  807. model.makeValue("/root/send/savedata/crettm" , sCretTM); // 생성시간
  808. model.makeValue("/root/send/savedata/apptodd" , sAppToDD); // 적용종료일자
  809. model.makeValue("/root/send/savedata/appdd" , sAppDD ); // 적용일자
  810. /*원본_20100125
  811. model.makeValue("/root/send/savedata/fstdrapntid" , sAllDrApntID ); // 1shift 예약의사ID
  812. model.makeValue("/root/send/savedata/fstdrapntnm" , sAllDrApntNM ); // 1shift 예약의사명
  813. */
  814. if(sCretOpt == "1") { // 전체
  815. model.makeValue("/root/send/savedata/fstdrapntid" , sAllDrApntID ); // 오전 예약의사ID
  816. model.makeValue("/root/send/savedata/fstdrapntnm" , sAllDrApntNM ); // 오전 예약의사명
  817. model.makeValue("/root/send/savedata/scnddrapntid", sAllDrApntID ); // 오후 예약의사ID
  818. model.makeValue("/root/send/savedata/scnddrapntnm", sAllDrApntNM ); // 오후 예약의사명
  819. } else { // 시간별
  820. model.makeValue("/root/send/savedata/fstdrapntid" , sFstDrApntID ); // 오전 예약의사ID
  821. model.makeValue("/root/send/savedata/fstdrapntnm" , sFstDrApntNM ); // 오전 예약의사명
  822. model.makeValue("/root/send/savedata/scnddrapntid", sScndDrApntID); // 오후 예약의사ID
  823. model.makeValue("/root/send/savedata/scnddrapntnm", sScndDrApntNM); // 오후 예약의사명
  824. }
  825. if (submit("TXMND03201") == true){
  826. //20090211-외래예약 진료의 변경을 위해 추가=============
  827. var sUpdChkyn = "N";
  828. //입력(수정)한 시작일이 기존종료일안에 포함되는지를 판단.
  829. for(var i=1; i<grd_pddrapnthistinfo.rows; i++) {
  830. var sHistAppToDD = "";
  831. sHistAppToDD = model.getValue("/root/main/pddrapnthistlist/pddrapnthistinfo["+ i +"]/apptodd"); // 기존적용종료일자
  832. //alert("sHistAppToDD = " + sHistAppToDD);
  833. //alert("sAppDD = " + sAppDD);
  834. if(sHistAppToDD >= sAppDD){
  835. sUpdChkyn = "Y";
  836. break;
  837. }
  838. }
  839. //입력(수정)한 적용시작일이 기존 종료일안에 포함될경우 외래예약변경 팝업 호출
  840. if(sUpdChkyn == 'Y'){
  841. messageBox("미래예약존재시 진료의변경을 하셔야 합니다.", "I");
  842. var sPhFlag = "P";
  843. //var param = sPhFlag + "▦" + sAppDD + "▦" + sAppToDD + "▦" + sAllDrApntID + "▦" + "" + "▦" + ""; // 원본_20100125
  844. if(sCretOpt == "1"){ // 전체
  845. var param = sPhFlag + "▦" + sAppDD + "▦" + sAppToDD + "▦" + sAllDrApntID + "▦" + sAllDrApntID;
  846. }else{ // 시간별
  847. var param = sPhFlag + "▦" + sAppDD + "▦" + sAppToDD + "▦" + sFstDrApntID + "▦" + sScndDrApntID;
  848. }
  849. //alert("param = " + param);
  850. setParameter("SMMND03600_param_pinfo", param);
  851. modal("../../../emr/dialroomweb/xrw/SMMND03600", "1",event.screenX, event.screenY, "SMMND03600", "", "");
  852. }
  853. //20090211-외래예약 진료의 변경을 위해 추가 ================
  854. fSrchDrApntHist(pFlag); // HD의사지정 History조회
  855. fInit(pFlag); // 예약의사지정 초기화
  856. } else {
  857. messageBox("저장을 실패했습니다.", "C");
  858. }
  859. break;
  860. }
  861. }