SPMNR03300.js 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624
  1. /*
  2. 투약시간 관리(SPMNR03300_투약시간관리.xrw - JScript )
  3. - Version :
  4. 1) : Ver.1.00.01
  5. */
  6. var xPathList1 = "/root/hidden/param1/list";
  7. var xPathList2 = "/root/hidden/param2/list";
  8. var xPathdrugmthdinfo = "/root/main/drugmthdinfo";
  9. var xPathdrugmthdlist = "/root/main/drugmthdlist/drugmthdlist";
  10. var carebaseddarr = new Array;
  11. var carebasetmarr = new Array;
  12. var gray = "#c0c0c0";
  13. var yellow = "#ffff00";
  14. var yellowishgreen = "#80ff00";
  15. var red = "#ff0000";
  16. var sky = "#00ffff";
  17. var blue = "#0000ff";
  18. var white = "#ffffff";
  19. var yellowishgreen = "#80ff00"
  20. /**
  21. * @group :
  22. * @ver : 2007.06.23
  23. * @by : 최경용
  24. * @---------------------------------------------------
  25. * @type : function
  26. * @access : public
  27. * @desc : 투약시간 관리 초기값 셋팅
  28. * @param :
  29. * @param :
  30. * @return :
  31. * @---------------------------------------------------
  32. */
  33. function fInitialize(){
  34. var param1 = opener.javascript.getParameter("SPMNR03300_param1"); //"/root/temp/warddruginfo/warddruglist"
  35. var param2 = opener.javascript.getParameter("SPMNR03300_param2"); //"/root/temp/warddruginfo/warddruglist/for"
  36. setCSVToNode("/root/hidden/param1", param1); //prcpno별 row
  37. setCSVToNode("/root/hidden/param2", param2); //prcpno의 하위 tims별 row
  38. //---------------(20080912)
  39. var calctims = model.getValue(xPathList1 + "/calctims");
  40. //---------------(20080912)
  41. var tims = model.getValue(xPathList1 + "/tims");
  42. var drugmthdspccd = model.getValue(xPathList1 + "/drugmthdspccd");
  43. var drugtmspec = model.getValue(xPathList1 + "/drugbasetmspec").split(" ");
  44. //alert(drugtmspec);
  45. var mthdcd = model.getValue(xPathList1 + "/mthdcd");
  46. var mthdcnts4 = model.getValue(xPathList1 + "/mthdcnts4");
  47. var prcpclscd = model.getValue(xPathList1 + "/prcpclscd");
  48. var prcphopedd = model.getValue(xPathList1 + "/prcphopedd");
  49. var indd = model.getValue(xPathList1 + "/indd"); //(20080620)
  50. var temp_tims = 0;
  51. var medrexecdd = "";
  52. model.setValue(xPathdrugmthdinfo + "/tims", model.getValue(xPathList1 + "/tims"));
  53. if(prcpclscd == "A6"){
  54. model.setValue(xPathdrugmthdinfo + "/abbrnm", mthdcnts4);
  55. }else{
  56. model.setValue(xPathdrugmthdinfo + "/abbrnm", drugmthdspccd);
  57. }
  58. model.setValue(xPathdrugmthdinfo + "/prcphopedd", prcphopedd);
  59. model.setValue(xPathdrugmthdinfo + "/indd", indd);
  60. //-------------(20080912)
  61. //for(var i = 1; i <= tims; i++){
  62. for(var i = 1; i <= calctims; i++){
  63. //-------------(20080912)
  64. if(i != 1){
  65. grd_mthd.addrow();
  66. }
  67. model.setValue(xPathdrugmthdlist + "[" + i + "]/mthdcd", mthdcd);
  68. if(drugtmspec[i-1] != "" && drugtmspec != ""){
  69. if(drugtmspec[i-1] > 0){
  70. model.setValue(xPathdrugmthdlist + "[" + i + "]/drugmthdday", Math.floor(Number(drugtmspec[i-1]) / 2400));
  71. model.setValue(xPathdrugmthdlist + "[" + i + "]/c_drugmthdday", Math.floor(Number(drugtmspec[i-1]) / 2400));
  72. }else{
  73. model.setValue(xPathdrugmthdlist + "[" + i + "]/drugmthdday", Math.ceil(Number(drugtmspec[i-1]) / 2400));
  74. model.setValue(xPathdrugmthdlist + "[" + i + "]/c_drugmthdday", Math.ceil(Number(drugtmspec[i-1]) / 2400));
  75. }
  76. if(Number(drugtmspec[i-1]) < 0){
  77. temp_tims = -Number(drugtmspec[i-1] % 2400);
  78. temp_tims = fCarec_GetFillZeno(temp_tims, 4,0);
  79. }else{
  80. temp_tims = drugtmspec[i-1] % 2400;
  81. temp_tims = fCarec_GetFillZeno(temp_tims, 4,0);
  82. }
  83. model.setValue(xPathdrugmthdlist + "[" + i + "]/drugmthdtime", temp_tims);
  84. model.setValue(xPathdrugmthdlist + "[" + i + "]/c_drugmthdtime", temp_tims);
  85. }
  86. //투약여부
  87. if (model.getValue(xPathList2 + "[" + i + "]/medrexecdd") != '00000000' ) {
  88. model.setValue(xPathdrugmthdlist + "[" + i + "]/medrexecflag", "Y");
  89. } else {
  90. model.setValue(xPathdrugmthdlist + "[" + i + "]/medrexecflag", "N");
  91. }
  92. }
  93. //--------------------------------------------------------
  94. //처방 1개 기준시간을 변경할 경우 실시한 횟수는 변경 불가
  95. //공통으로 설정된 것을 변경하는 것이 아니라.
  96. //한 자료에 대한 시간대를 변경하는것이다.
  97. //--------------------------------------------------------
  98. if(getNodesetCount(xPathList1) == 1){
  99. for(var k = 1; k <= getNodesetCount(xPathList2); k++){
  100. medrexecdd = model.getValue(xPathList2 + "[" + k + "]/medrexecdd");
  101. if(medrexecdd != "00000000"){
  102. grd_mthd.isReadOnly(k+1,3,k+1,4) = true;
  103. grd_mthd.cellstyle("background-color",k+1,0,k+1,grd_mthd.cols-1) = yellow;
  104. }
  105. }
  106. }
  107. //-------------(20080912)
  108. //if(model.getValue(xPathdrugmthdinfo + "/tims") == "1"){
  109. if(model.getValue(xPathdrugmthdinfo + "/calctims") == "1"){
  110. //-------------(20080912)
  111. ipt_sinterval.disabled = "true";
  112. ipt_hinterval.disabled = "true";
  113. ipt_minterval.disabled = "true";
  114. btn_interval.disabled = "true";
  115. }
  116. grd_mthd.rebuild();
  117. model.refresh();
  118. //----------------(20080603)
  119. // 투약기준시간관리에서 공통&용법 중 default가 'N'인 것만 추출하여 콤보를 구성함
  120. var sPath = "/root/send/reqdata";
  121. model.removeNodeSet(sPath);
  122. model.setValue("/root/main/drugmthdinfo/abbrcd",model.getValue("/root/main/drugmthdlist/drugmthdlist[1]/mthdcd"));
  123. model.makeValue(sPath + "/direccd", model.getValue("/root/main/drugmthdinfo/abbrcd")); //desc=용법코드
  124. //----------(20080912)
  125. //외용약은 횟수3이나 시간대정보는 1로 설정되어 있음
  126. //model.makeValue(sPath + "/exectims",model.getValue("/root/main/drugmthdinfo/tims") ); //desc=처방횟수
  127. model.makeValue(sPath + "/exectims",model.getValue("/root/main/drugmthdinfo/calctims") ); //desc=처방횟수
  128. //----------(20080912)
  129. model.makeValue(sPath + "/flag", "3"); //desc=구분
  130. model.makeValue(sPath + "/deptcd", "ALL"); //desc=부서코드
  131. model.makeValue(sPath + "/prcpcd", "ALL"); //desc=약품코드
  132. submit("TRMNR03301");
  133. //------------------------------
  134. }
  135. /**
  136. * @group :
  137. * @ver : 2008.06.03
  138. * @by : 김보성
  139. * @---------------------------------------------------
  140. * @type : function
  141. * @access : public
  142. * @desc : 투약기준시간정보에서 공통&용법에서 DEFALUT!='Y'인것을 추출한다.
  143. * @param :
  144. * @return :
  145. * @---------------------------------------------------
  146. * @param :
  147. */
  148. function fTimeApply() {
  149. //var stime = model.getValue("/root/main/drugmthdinfo/drugtmspec"); //화면으로 계산된 시간대(value) 2200 0800 label
  150. //var stime = model.getValue("/root/main/drugmthdinfo/drugtmspeccal"); //화면으로 계산된 시간대(label) 2200 3200 value
  151. //var stime = cmb_mthd.label;
  152. var stime = cmb_mthd.value;
  153. var sPath = "/root/main/drugmthdlist/drugmthdlist";
  154. if (stime =="") {
  155. messageBox("공통지정시간이 선택되지 않았습니다","E999");
  156. return;
  157. }
  158. //---------------------------------------------------------
  159. var drugtmspec = stime.split(" ");
  160. var tims = drugtmspec.length;
  161. var prcpno = model.getValue(xPathList1 + "/prcpno");
  162. var prcpdd = model.getValue(xPathList1 + "/prcpdd");
  163. var prcpcd = model.getValue(xPathList1 + "/prcpcd");
  164. var execprcptims = model.getValue(xPathList1 + "/tims");
  165. var carebasedd = "";
  166. var carebasetm = "";
  167. var execprcpnoarr = model.getValue(xPathList1 + "/execprcpnoarr").split(" ");
  168. var execuniqnoarr = model.getValue(xPathList1 + "/execuniqnoarr").split(" ");
  169. var carebasetmspec = "";
  170. var tmcalculate = 0;
  171. var interval = 0;
  172. for(var i = 1; i <= tims; i++){
  173. carebasedd = parseInt(drugtmspec[i-1] / 2400); //기준 day
  174. carebasetm = fCarec_GetFillZeno((drugtmspec[i-1] % 2400),4,0); //기준 시간대
  175. carebaseddarr[i-1] = carebasedd;
  176. carebasetmarr[i-1] = carebasetm;
  177. if (model.getValue(xPathdrugmthdlist + "[" + i + "]/medrexecflag") == "Y") {
  178. carebasedd = model.getValue(xPathdrugmthdlist + "[" + i + "]/c_drugmthdday");
  179. carebasetm = model.getValue(xPathdrugmthdlist + "[" + i + "]/c_drugmthdtime");
  180. messageBox("투약된 자료는 수정할수 없습니다.","E999");
  181. } else {
  182. model.setValue(xPathdrugmthdlist + "[" + i + "]/c_drugmthdday", carebasedd);
  183. model.setValue(xPathdrugmthdlist + "[" + i + "]/c_drugmthdtime", carebasetm);
  184. grd_mthd.cellstyle("background-color",i+1,0,i+1,grd_mthd.cols-1) = gray;
  185. }
  186. tmcalculate = (Number(carebasetm) + Number(carebasedd) * 2400);
  187. tmcalculate = fCarec_GetFillZeno(tmcalculate,4,0);
  188. if(i == 1){
  189. carebasetmspec += tmcalculate;
  190. }else{
  191. carebasetmspec += " " + tmcalculate;
  192. }
  193. }
  194. //-----------------(20080605)
  195. //fSaveMthdInfo(carebasetmspec,"N");
  196. //opener.javascript.setParameter("SPMNR03300_RtnParamYN", "Y");
  197. //model.close();
  198. }
  199. /**
  200. * @group :
  201. * @ver : 2007.06.23
  202. * @by : 최경용
  203. * @---------------------------------------------------
  204. * @type : function
  205. * @access : public
  206. * @desc : 투약시간 변경(시간입력)
  207. * @param :
  208. * @return :
  209. * @---------------------------------------------------
  210. * @param :
  211. */
  212. function fSaveDrugmthd(){
  213. var tims = model.getValue(xPathList1 + "/tims");
  214. var prcpno = "";
  215. var prcpdd = "";
  216. var prcpcd = "";
  217. var execprcptims = "";
  218. var carebasedd = "";
  219. var carebasetm = "";
  220. var execprcpnoarr = "";
  221. var execuniqnoarr = "";
  222. var prcphistnoarr = "";
  223. var carebasetmspec = "";
  224. var tmcalculate = 0;
  225. //check(20080606)
  226. //--------------(20080912)
  227. var calctims = model.getValue(xPathList1 + "/calctims");
  228. //for(var i = 1; i <= tims; i++){
  229. for(var i = 1; i <= calctims; i++){
  230. //--------------(20080912)
  231. carebasedd = model.getValue(xPathdrugmthdlist + "[" + i + "]/c_drugmthdday");
  232. carebasetm = model.getValue(xPathdrugmthdlist + "[" + i + "]/c_drugmthdtime");
  233. //alert(carebasedd + "/" + carebasetm);
  234. carebaseddarr[i-1] = carebasedd;
  235. carebasetmarr[i-1] = carebasetm;
  236. if(carebasedd < 0){
  237. tmcalculate = (-Number(carebasetm) + (Number(carebasedd) * 2400));
  238. }else{
  239. tmcalculate = (Number(carebasetm) + (Number(carebasedd) * 2400));
  240. }
  241. //alert(tmcalculate);
  242. tmcalculate = fCarec_GetFillZeno(tmcalculate, 4,0);
  243. //입력사항 체크
  244. if(carebasedd != "-3" && carebasedd != "-2" && carebasedd != "-1" && carebasedd != "0" &&
  245. carebasedd != "3" && carebasedd != "2" && carebasedd != "1"){
  246. messageBox("Day는 -3일 ~ 3일만 입력할수 있습니다.","I999");
  247. return;
  248. }
  249. if(carebasetm.length != 4){
  250. messageBox("기준시간은 4자리를 입력해야 합니다.","I999");
  251. return;
  252. }
  253. //-----------------------------(20080620)
  254. //입원일이전으로 투약시간대를 변경하지 못하게 한다.
  255. var sindd = model.getValue("root/main/drugmthdinfo/indd"); //입원일
  256. var sprcphopedd = model.getValue("root/main/drugmthdinfo/prcphopedd"); //적용일
  257. //alert (sprcphopedd + "/" + carebasedd);
  258. var scalcdd = getDateAddc(sprcphopedd, carebasedd); //계산일
  259. if (scalcdd < sindd) {
  260. messageBox("입원일이전으로 계산되었습니다. 확인하십시오.","I999");
  261. return;
  262. }
  263. //-----------------------------
  264. //-----------------------------(20080617)
  265. //여러가지 문제가 걸려있음
  266. //순서를 변경하면 안됨(막을지를 테스트 중)
  267. //막는대신에 시간대를 정렬해야한다.
  268. //-----------------------------
  269. // if(i != 1){
  270. // if(model.getValue(xPathdrugmthdlist + "[" + (i-1) + "]/c_drugmthdday") >= carebasedd &&
  271. // model.getValue(xPathdrugmthdlist + "[" + (i-1) + "]/c_drugmthdtime") > carebasetm){
  272. // messageBox((i-1) + "회차 시간보다 " + i + "회차 시간이\n작을 수 없습니다.","I999");
  273. // return;
  274. // }
  275. // }
  276. //-------------------------------
  277. if(i == 1){
  278. carebasetmspec += tmcalculate;
  279. }else{
  280. carebasetmspec += " " + tmcalculate;
  281. }
  282. }
  283. //test
  284. //return;
  285. model.removeNodeSet("/root/send/savedata/mthdinfo");
  286. //-----------------(20080605)
  287. //설정하고 저장함
  288. fSaveMthdInfo(carebasetmspec,"Y");
  289. //opener.javascript.setParameter("SPMNR03300_RtnParamYN", "Y");
  290. //model.close();
  291. //-----------------
  292. }
  293. /**
  294. * @group :
  295. * @ver : 2007.06.23
  296. * @by : 최경용
  297. * @---------------------------------------------------
  298. * @type : function
  299. * @access : public
  300. * @desc : 투약시간 변경(Interval 지정)
  301. * @param :
  302. * @param :
  303. * @return :
  304. * @---------------------------------------------------
  305. */
  306. function fSaveInterval(){
  307. var tims = model.getValue(xPathList1 + "/tims"); //xPathList1 : "/root/hidden/param1/list"
  308. var prcpno = model.getValue(xPathList1 + "/prcpno");
  309. var prcpdd = model.getValue(xPathList1 + "/prcpdd");
  310. var prcpcd = model.getValue(xPathList1 + "/prcpcd");
  311. var execprcptims = model.getValue(xPathList1 + "/tims");
  312. var carebasedd = "";
  313. var carebasetm = "";
  314. var execprcpnoarr = model.getValue(xPathList1 + "/execprcpnoarr").split(" ");
  315. var execuniqnoarr = model.getValue(xPathList1 + "/execuniqnoarr").split(" ");
  316. var carebasetmspec = "";
  317. var tmcalculate = 0;
  318. var s_interval = model.getValue("/root/main/drugmthdinfo/s_interval");
  319. var h_interval = model.getValue("/root/main/drugmthdinfo/h_interval");
  320. var m_interval = model.getValue("/root/main/drugmthdinfo/m_interval");
  321. var interval = 0;
  322. //---------------(20080912)
  323. var calctims = model.getValue(xPathList1 + "/calctims"); //xPathList1 : "/root/hidden/param1/list"
  324. //for(var i = 1; i <= tims; i++){
  325. for(var i = 1; i <= calctims; i++){
  326. //---------------(20080912)
  327. if(i == 1){
  328. interval = s_interval; //interval 지정(시작)
  329. }else{
  330. interval = fCarec_GetIntervalTime(s_interval.substr(0,2), s_interval.substr(2,2), h_interval, m_interval, i-1);
  331. }
  332. carebasedd = parseInt(interval / 2400);
  333. carebasetm = fCarec_GetFillZeno((interval % 2400),4,0);
  334. carebaseddarr[i-1] = carebasedd;
  335. carebasetmarr[i-1] = carebasetm;
  336. //투약되었으면 변경할수 없다.
  337. if (model.getValue(xPathdrugmthdlist + "[" + i + "]/medrexecflag") != "Y") {
  338. model.setValue(xPathdrugmthdlist + "[" + i + "]/c_drugmthdday", carebasedd);
  339. model.setValue(xPathdrugmthdlist + "[" + i + "]/c_drugmthdtime", carebasetm);
  340. //grd_mthd.cellstyle("background-color",i+1,grd_mthd.colref("c_drugmthdday"),i+1,grd_mthd.colref("c_drugmthdtime")) = gray;
  341. grd_mthd.cellstyle("background-color",i+1,0,i+1,grd_mthd.cols-1) = gray;
  342. } else {
  343. carebasedd = model.getValue(xPathdrugmthdlist + "[" + i + "]/c_drugmthdday");
  344. carebasetm = model.getValue(xPathdrugmthdlist + "[" + i + "]/c_drugmthdtime");
  345. messageBox("구분이 'Y'인 경우 투약된 자료로 변경할 수 없습니다.","E999");
  346. }
  347. tmcalculate = (Number(carebasetm) + Number(carebasedd) * 2400);
  348. tmcalculate = fCarec_GetFillZeno(tmcalculate,4,0);
  349. if(i == 1){
  350. carebasetmspec += tmcalculate;
  351. }else{
  352. carebasetmspec += " " + tmcalculate;
  353. }
  354. }
  355. //-----------------(20080605)
  356. //fSaveMthdInfo(carebasetmspec,"N");
  357. //opener.javascript.setParameter("SPMNR03300_RtnParamYN", "Y");
  358. //model.close();
  359. //-----------------
  360. }
  361. /**
  362. * @group :
  363. * @ver : 2007.06.23
  364. * @by : 최경용
  365. * @---------------------------------------------------
  366. * @type : function
  367. * @access : public
  368. * @desc : 투약시간 저장
  369. * @param :
  370. * @param :
  371. * @return :
  372. * @---------------------------------------------------
  373. */
  374. function fSaveMthdInfo(carebasetmspec,saveflag){
  375. var execprcptims = "";
  376. var prcpno = "";
  377. var prcpdd = "";
  378. var prcpcd = "";
  379. var execprcptims = "";
  380. var execprcpnoarr = "";
  381. var execuniqnoarr = "";
  382. var prcphistnoarr = "";
  383. var carebasedd = "";
  384. var carebasetm = "";
  385. var tims = model.getValue(xPathList1 + "/tims");
  386. //------------(20080912)
  387. //var tims = model.getValue(xPathList1 + "/tims");
  388. var calctims = model.getValue(xPathList1 + "/calctims");
  389. //------------(20080912)
  390. var drugtmspec = model.getValue(xPathList1 + "/drugtmspec");
  391. //---------------(20080617)
  392. //시간대가 순서에 관계없이 변경되므로 시간대를 정렬해야한다.
  393. //-------------------------
  394. //-3200 -3000 2100
  395. var carebasetmspec_bak = carebasetmspec;
  396. carebasetmspec = sortHashKeysString(carebasetmspec);
  397. ////alert(carebasetmspec);
  398. //return;
  399. //-------------------------
  400. //-----------------(20081104)
  401. var listcnt = 0;
  402. //-----------------(20081104)
  403. //hidden정보 : prcpno별 row
  404. for(var j = 1; j <= getNodesetCount(xPathList1); j++){ //xPathList1 : /root/hidden/param1/list :
  405. execprcptims = model.getValue(xPathList1 + "[" + j + "]/tims");
  406. prcpno = model.getValue(xPathList1 + "[" + j + "]/prcpno");
  407. prcpdd = model.getValue(xPathList1 + "[" + j + "]/prcpdd");
  408. prcpcd = model.getValue(xPathList1 + "[" + j + "]/prcpcd");
  409. execprcptims = model.getValue(xPathList1 + "[" + j + "]/tims");
  410. execprcpnoarr = model.getValue(xPathList1 + "[" + j + "]/execprcpnoarr").split(" ");
  411. execuniqnoarr = model.getValue(xPathList1 + "[" + j + "]/execuniqnoarr").split(" ");
  412. prcphistnoarr = model.getValue(xPathList1 + "[" + j + "]/prcphistnoarr").split(" ");
  413. // <execprcpnoarr>1 2 3</execprcpnoarr>
  414. // <execuniqnoarr>23634 23635 23636</execuniqnoarr>
  415. // <prcphistnoarr>1 1 1</prcphistnoarr>
  416. //-----------(20080912)
  417. //for(var k = 1; k <= tims; k++){ ///xPathdrugmthdlist : root/main/drugmthdlist/drugmthdlist(화면상의 정보)
  418. for(var k = 1; k <= calctims; k++){ ///xPathdrugmthdlist : root/main/drugmthdlist/drugmthdlist(화면상의 정보)
  419. //-----------(20080912)
  420. carebasedd = model.getValue(xPathdrugmthdlist + "[" + k + "]/c_drugmthdday"); //변경일자(입력값)
  421. carebasetm = model.getValue(xPathdrugmthdlist + "[" + k + "]/c_drugmthdtime"); //변경시각(입력값)
  422. model.resetInstanceNode("/root/hidden/mthdinfo");
  423. model.setValue("/root/hidden/mthdinfo/prcpno", prcpno);
  424. model.setValue("/root/hidden/mthdinfo/prcpdd", prcpdd);
  425. model.setValue("/root/hidden/mthdinfo/prcpcd", prcpcd);
  426. model.setValue("/root/hidden/mthdinfo/execprcptims", execprcptims);
  427. model.setValue("/root/hidden/mthdinfo/prcphistno", prcphistnoarr[k-1]);
  428. model.setValue("/root/hidden/mthdinfo/execprcpno", execprcpnoarr[k-1]);
  429. model.setValue("/root/hidden/mthdinfo/execprcpuniqno", execuniqnoarr[k-1]);
  430. //carebaseddarr : 전역변수
  431. //carebasetmarr : 전역변수
  432. //-------------------(20081012)
  433. //처방일기준으로
  434. //model.setValue("/root/hidden/mthdinfo/carebasedd", getDateAddc(prcpdd, carebaseddarr[k-1]));
  435. var prcphopedd = model.getValue(xPathList1 + "[" + j + "]/prcphopedd");
  436. //처방희망일기준으로
  437. model.setValue("/root/hidden/mthdinfo/carebasedd", getDateAddc(prcphopedd, carebaseddarr[k-1]));
  438. //-------------------(20081012)
  439. model.setValue("/root/hidden/mthdinfo/carebasetm", carebasetmarr[k-1] + "00");
  440. model.setValue("/root/hidden/mthdinfo/pid", model.getValue(xPathList1 + "/pid"));
  441. model.setValue("/root/hidden/mthdinfo/carebasetmspec", carebasetmspec);
  442. //---------------------(20081104)
  443. //if(model.getValue(xPathList2 + "[" + k + "]/medrexistyn") == "N" || drugtmspec == ""){
  444. listcnt ++;
  445. //alert(j + "/" + k + "/" + listcnt);
  446. //alert(model.getValue(xPathList2 + "[" + listcnt + "]/medrexistyn"));
  447. if(model.getValue(xPathList2 + "[" + listcnt + "]/medrexistyn") == "N" || drugtmspec == ""){
  448. //---------------------(20081104)
  449. model.setValue("/root/hidden/mthdinfo/status", "I");
  450. }else{
  451. model.setValue("/root/hidden/mthdinfo/status", "U");
  452. }
  453. model.makeNode("/root/send/savedata/mthdinfo[" + k + "]");
  454. model.duplicate("/root/send/savedata", "/root/hidden/mthdinfo");
  455. }
  456. }
  457. //alert("저장전:" + saveflag);
  458. if (saveflag == "Y") {
  459. submit("TXMNR03301");
  460. opener.javascript.setParameter("SPMNR03300_RtnParamYN", "Y");
  461. model.close();
  462. }
  463. }
  464. /*
  465. 정렬하기
  466. */
  467. function sortHashKeysString(sColString){
  468. var sColArray = new Array;
  469. //string -> 배열로
  470. var sCol = sColString.split(" ");
  471. var temp = "";
  472. for(var i = 0; i < sCol.length; i++){
  473. //sColArray[i] = Number(sCol[i]);
  474. sColArray[i] = fCarec_GetFillZeno(sCol[i],4,0);
  475. }
  476. //배열 정렬
  477. for(var i = 0; i < sColArray.length; i++){
  478. for(var j = 0; j < sColArray.length; j++){
  479. if(sort2(sColArray[i],sColArray[j]) == false){
  480. temp = fCarec_GetFillZeno(sColArray[i],4,0);
  481. sColArray[i] = fCarec_GetFillZeno(sColArray[j],4,0);
  482. sColArray[j] = fCarec_GetFillZeno(temp,4,0);
  483. }
  484. }
  485. }
  486. //중복제거(중복가능)
  487. // sColString = "";
  488. // for(var i = 0; i < sColArray.length; i++){
  489. // if ( sColArray[i] == "") continue;
  490. //
  491. // for(var j = i+1; j < sColArray.length; j++){
  492. // if ( sColArray[i] == sColArray[j]) sColArray[j] = "";
  493. // }
  494. // }
  495. //배열 -> string
  496. sColString = "";
  497. for(var i = 0; i < sColArray.length; i++){
  498. //횟수1인 처방에 대해서 기준시간을 00:00으로 변경시 발생되는 오류 수정_20091109_SMY
  499. //if (sColArray[i] == "0000") continue;
  500. sColString += sColArray[i] + " ";
  501. }
  502. //마지막 " " 제거
  503. sColString = sColString.substr(0,sColString.length-1);
  504. //string 리턴
  505. return sColString;
  506. }
  507. //--------------------(20080605)
  508. // 음수끼리의 정렬은 반대임(기능추가)
  509. // -1800 < -2000 임 시간이므로
  510. //--------------------
  511. function sort2(a,b){
  512. // 두변수가 전부 음수인 경우(음수,음수) -1800 < -2000
  513. if ( parseInt(a) < 0 && parseInt(b) < 0 ) {
  514. if(parseInt(a) < parseInt(b)){
  515. return true;
  516. }else if(parseInt(a) > parseInt(b)){
  517. return false;
  518. }else{
  519. var sort = new Array(a,b);
  520. sort.sort();
  521. return (sort[0] == a)? false:true;
  522. }
  523. } else {
  524. //그외경우 (음수,양수/양수,음수/양수,양수)
  525. if(parseInt(a) > parseInt(b)){
  526. return true;
  527. }else if(parseInt(a) < parseInt(b)){
  528. return false;
  529. }else{
  530. var sort = new Array(a,b);
  531. sort.sort();
  532. return (sort[0] == a)? false:true;
  533. }
  534. }
  535. }