SMMNR06300.js 66 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886
  1. /*
  2. (SMMNB06300_투약work list.xrw - JScript )
  3. - Version :
  4. 1) : Ver.1.00.01
  5. */
  6. var xCondPath = "/root/main/cond";
  7. var xPatInfoPath = "/root/main/paminfo/pamlist";
  8. var xWardDrugListPath = "/root/main/warddruginfo/warddruglist";
  9. var xHiddenWardDrugPath = "/root/hidden/warddruginfo/warddruglist";
  10. var xWardPatList = "/root/main/wardpatinfo/wardpatlist";
  11. //----------------(20080801)
  12. //var xCaption = "환자정보^구분^마약구분^처방코드^처방명^1일용량^단위^1일수량^단위^1일횟수^경로^용법^처방Remark^처방의^처방시간^처방희망일"; //16개
  13. //var colDataidx = 16; //coldataidx이상의 컬럼은 일자data컴럼
  14. //var xCaption = "환자정보^구분^Mix^마약구분^처방코드^처방명^1일용량^단위^1일수량^단위^1일횟수^경로^용법^처방Remark^처방의^처방시간^처방적용일"; //16개
  15. //var colDataidx = 17; //마약구분추가
  16. //var xCaption = "선택^환자정보^구분^Mix^마약구분^처방코드^처방명^1일용량^단위^1일수량^단위^1일횟수^경로^용법^처방Remark^처방의^처방시간^처방적용일"; //16개
  17. //var colDataidx = 18; //선택항목추가(20080910)
  18. //----(20080919)
  19. //var xCaption = "^환자정보^구분^Mix^마약구분^처방코드^처방명^1일용량^단위^1일수량^단위^1일횟수^경로^용법^처방Remark^처방의^처방일시^처방적용일^prcpdd^prcpno"; //20개
  20. //var colDataidx = 20; //prcpdd,prcpno추가(20080910)
  21. var xCaption = "^환자정보^구분^승인^Mix^마약구분^처방코드^처방명\n[* : 혼동주의/고위험 약제]^1회용량^1일용량^단위^1회수량^1일수량^단위^1일횟수^경로^용법^처방Remark^처방의^처방일시^처방적용일^prcpdd^prcpno^처방명ast^처방명출력용"; //25개
  22. var colDataidx = 25; //prcpddast추가(20081121) drprcpetc7, drprcpetc8추가(김병국20110102) 23->25변경
  23. //----------------------------
  24. var testcnt=0;
  25. /**
  26. * @group :
  27. * @ver : 2007.07.11
  28. * @by : 최경용
  29. * @---------------------------------------------------
  30. * @type : function
  31. * @access : public
  32. * @desc : 투약work list 초기값 셋팅 및 초기조회
  33. * @param :
  34. * @return :
  35. * @---------------------------------------------------
  36. */
  37. function fInitialize(){
  38. grd_patlist.fixedcellcheckbox(0,0) = true;
  39. grd_patlist.mergecells = "bycol";
  40. grd_patlist.mergecol(0) = false;
  41. grd_patlist.mergecol(2) = false;
  42. grd_patlist.mergecol(3) = false;
  43. grd_patlist.mergecol(4) = false;
  44. // 정리
  45. model.removeNodeSet("/root/hidden/warddruginfo");
  46. model.removeNodeSet("/root/main/warddruginfo");
  47. // 환자정보 조회
  48. var sPamInfo = getGlobalVariable("paminfo");
  49. setCSVToNode("/root/main/paminfo",sPamInfo,"pamlist");
  50. //------------------(20080801)
  51. var sWardCd = "";
  52. var sRoomCD = "";
  53. var sPid = "";
  54. var sPatNm = "";
  55. var sDd = "";
  56. //--------------(20080804)
  57. // 값있으면 투약기록에서 호출
  58. // 값이 없으면 메뉴에서 호출
  59. var openchk = opener.javascript.getParameter("SMMNR06300_Param");
  60. //-------------
  61. //if(checkOpener()){
  62. if( !isNull(openchk) && openchk != "null" ){
  63. sWardCd = opener.javascript.getParameter("SMMNR06300_Param");
  64. sRoomCD = opener.javascript.getParameter("SMMNR06300_Param1");
  65. sPid = opener.javascript.getParameter("SMMNR06300_Param2");
  66. sPatNm = opener.javascript.getParameter("SMMNR06300_Param3");
  67. sDd = opener.javascript.getParameter("SMMNR06300_Param4");
  68. }else{
  69. sWardCd = ( isNull(getPatientInfoDetail("wardcd")) ? getUserInfo("dutplcecd") : getPatientInfoDetail("wardcd"));
  70. sRoomCD = model.getValue(xPatInfoPath+"/roomcd");
  71. sPid = model.getValue(xPatInfoPath+"/pid");
  72. sPatNm = model.getValue(xPatInfoPath+"/hngnm");
  73. }
  74. fGetWardList(); //병동콤보
  75. model.makeValue("/root/main/cond/orddd", getCurrentDate());// 기준일에 현재날짜(디폴트);
  76. model.makeValue("/root/main/cond/wardcd", sWardCd);
  77. fGetRoomList(); //병동에 대한 병실콤보
  78. fGetZoneList(); //ER의 구역 콤보 //------------(20080608)
  79. fnZoneDisp("init"); //----------------------(20080910)
  80. if ( isNull(model.getValue("/root/init/ward[wardcd ='"+ sWardCd +"']/wardnm")) ){
  81. return;
  82. }
  83. model.makeValue("/root/main/cond/roomcd", sRoomCD);
  84. fGetPatList(); //환자명콤보
  85. //-----------------------------(20080906)
  86. fSetsettingrnid();
  87. //-----------------------------(20080906)
  88. //if(checkOpener()){
  89. model.makeValue("/root/main/cond/pid", sPid);
  90. model.makeValue("/root/main/cond/hngnm", sPatNm);
  91. if ( !isNull(sPid) ){
  92. model.setValue(xWardPatList+"[pid = '"+ sPid +"']/check", "true");
  93. }
  94. if(!isNull(openchk) && openchk != "null" ){
  95. model.makeValue("/root/main/cond/orddd", sDd);
  96. model.refresh();
  97. fClickDrugListBefore(); //------------(20081117)
  98. fWorkListQuery();
  99. //fSettingLine();
  100. //------------------------(20080910)
  101. //투약기록에서 넘어온 값을 투약worklist에서 표시한다.
  102. var sflagChk = opener.javascript.getParameter("SMMNR06300_Param5");
  103. var sPathDrug = "/root/main/warddruginfo/warddruglist";
  104. var sCount = 0;
  105. var rows = getNodesetCount(xWardDrugListPath);
  106. if (sflagChk.substr(0,1) == "Y") {
  107. var sPrcpdd = "";
  108. var sPrcpno = "";
  109. sCount = sflagChk.substr(1, sflagChk.length-1);
  110. for (var row=1;row<= rows;row++ ) {
  111. sPrcpdd = model.getValue(sPathDrug + "[" + row + "]/prcpdd");
  112. sPrcpno = model.getValue(sPathDrug + "[" + row + "]/prcpno");
  113. //alert(row + "/" + sPrcpdd + "/" + sPrcpno);
  114. //선택된 자료만 출력한다.
  115. if (fnFindParam(sPrcpdd,sPrcpno,sCount) == true) {
  116. model.makeValue(sPathDrug + "[" + row + "]/prtchk","true");
  117. } else {
  118. model.makeValue(sPathDrug + "[" + row + "]/prtchk","false");
  119. }
  120. }
  121. } else {
  122. //--------------------(20080927)
  123. if ( rows >= 1) {
  124. model.makeValue("/root/main/cond/multicheck","true");
  125. for (var row=1;row<= rows;row++ ) {
  126. model.makeValue(sPathDrug + "[" + row + "]/prtchk","true");
  127. }
  128. }
  129. //--------------------(20080927)
  130. }
  131. fClickDrugListAfter(); //------------(20081117)
  132. //------------------------(20080910)
  133. } else {
  134. fClickDrugListBefore(); //------------(20081117)
  135. fWorkListQuery();
  136. //fSettingLine();
  137. fClickDrugListAfter();
  138. }
  139. //------------------(20080801)
  140. model.refresh();
  141. }
  142. //---------------------------(20080910)
  143. //파리미터에서 값을 찾는다.
  144. function fnFindParam(sPrcpDd,sPrcpNo,sCount) {
  145. for (var row=6;row<=sCount;row++) {
  146. sParamNm = "SMMNR06300_Param" + row;
  147. sParamValue = opener.javascript.getParameter(sParamNm);
  148. var sParamArr = sParamValue.split("/");
  149. //alert(sPrcpDd + "/" + sParamArr[0] + "/" + sPrcpNo + "/" + sParamArr[1]);
  150. if ( sPrcpDd == sParamArr[0] && sPrcpNo == sParamArr[1] ) {
  151. //alert("true");
  152. return true;
  153. }
  154. }
  155. return false;
  156. }
  157. //---------------------------(20080910)
  158. /**
  159. * @group :
  160. * @ver : 2008.09.06
  161. * @by :
  162. * @---------------------------------------------------
  163. * @type : function
  164. * @access : public
  165. * @desc : 내환자가 설정되어 있으면 자동으로 내환자설정시키기(성공)
  166. * @param :
  167. * @param :
  168. * @return :
  169. * @---------------------------------------------------
  170. */
  171. function fSetsettingrnid(){
  172. var sUserId = getUserId();
  173. var sUserIdFind = ""
  174. for(i = 1; i <= getNodesetCount("/root/main/wardpatinfo/settingrn"); i++ ) {
  175. sUserIdFind = model.getValue("/root/main/wardpatinfo/settingrn["+ i +"]/settingrnid");
  176. if (sUserId == sUserIdFind) {
  177. model.makeValue("/root/main/cond/settingrnid", sUserIdFind);
  178. model.refresh();
  179. fGetPatList();
  180. return;
  181. }
  182. }
  183. }
  184. /**
  185. * @group :
  186. * @ver : 2007.06.08
  187. * @by : 김보성
  188. * @---------------------------------------------------
  189. * @type : function
  190. * @access : public
  191. * @desc : ER의 응급 리스트 조회 CareCom.js로 빼냄
  192. * @param :
  193. * @param :
  194. * @return :
  195. * @---------------------------------------------------
  196. */
  197. /*function fGetZoneList(){
  198. submit("TRMNR06302");
  199. }*/
  200. /**
  201. * @group :
  202. * @ver : 2007.06.23
  203. * @by : 최경용
  204. * @---------------------------------------------------
  205. * @type : function
  206. * @access : public
  207. * @desc : 병동 리스트 조회
  208. * @param :
  209. * @param :
  210. * @return :
  211. * @---------------------------------------------------
  212. */
  213. function fGetWardList(){
  214. submit("TRMNR00601");
  215. }
  216. /**
  217. * @group :
  218. * @ver : 2007.06.23
  219. * @by : 최경용
  220. * @---------------------------------------------------
  221. * @type : function
  222. * @access : public
  223. * @desc : 투약기록 병동별 병실 리스트 조회
  224. * @param :
  225. * @param :
  226. * @return :
  227. * @---------------------------------------------------
  228. */
  229. function fGetRoomList(){
  230. model.makeValue("/root/main/cond/roomcd", "");
  231. model.resetInstanceNode("/root/send/reqdata");
  232. model.copynode("/root/send/reqdata", xCondPath);
  233. submit("TRMNR00602");
  234. }
  235. /**
  236. * @group :
  237. * @ver : 2007.07.11
  238. * @by : 최경용
  239. * @---------------------------------------------------
  240. * @type : function
  241. * @access : public
  242. * @desc : com_hngnm 내용 검색
  243. * @param :
  244. * @return :
  245. * @---------------------------------------------------
  246. */
  247. function fGetPatList(){
  248. model.resetInstanceNode("/root/send/reqdata");
  249. model.copynode("/root/send/reqdata", xCondPath);
  250. submit("TRMNR00603");
  251. grd_patlist.fixedcellischeck(0,0) = false;
  252. model.removeNodeSet("/root/hidden/warddruginfo");
  253. model.removeNodeSet("/root/main/warddruginfo");
  254. grd_druglist.rebuild();
  255. }
  256. /**
  257. * @group :
  258. * @ver : 2007.07.11
  259. * @by : 최경용
  260. * @---------------------------------------------------
  261. * @type : function
  262. * @access : public
  263. * @desc : 조회
  264. * @param :
  265. * @return :
  266. * @---------------------------------------------------
  267. */
  268. var fstdispcol=0, lstdispcol=0; // 20090629
  269. function fWorkListQuery(){
  270. model.resetInstanceNode("/root/send/reqdata");
  271. var pid = model.getValue("/root/main/cond/pid");
  272. var indd = "";
  273. var cretno = "";
  274. var sHeader = "pid▦indd▦cretno▩"
  275. var sContents = "";
  276. var forcnt = 0;
  277. if( !isNull(pid)){
  278. indd = model.getValue("/root/main/wardpatinfo/wardpatlist[pid ='" + pid + "']/indd");
  279. cretno = model.getValue("/root/main/wardpatinfo/wardpatlist[pid ='" + pid + "']/cretno");
  280. model.makeValue("/root/main/cond/indd", indd);
  281. model.makeValue("/root/main/cond/cretno",cretno);
  282. //alert(pid + "/" + indd + "/" + cretno );
  283. sContents = pid + "▦" + indd + "▦" + cretno + "▩";
  284. forcnt++;
  285. } else {
  286. for ( var idx = 1 ; idx <= getNodesetCount(xWardPatList) ; idx++ ){
  287. if ( model.getValue(xWardPatList + "["+ idx +"]/check") == "true" ){
  288. sContents += model.getValue("/root/main/wardpatinfo/wardpatlist["+ idx +"]/pid") + "▦"
  289. + model.getValue("/root/main/wardpatinfo/wardpatlist["+ idx +"]/indd") + "▦"
  290. + model.getValue("/root/main/wardpatinfo/wardpatlist["+ idx +"]/cretno") + "▩";
  291. forcnt++;
  292. }
  293. }
  294. }
  295. if ( forcnt < 1 ){
  296. return;
  297. }
  298. var orddd = model.getValue("/root/main/cond/orddd");
  299. var yorddd = getDateAddc(orddd,-1);
  300. var torddd = getDateAddc(orddd,1);
  301. model.makeValue("/root/main/cond/yorddd", yorddd);
  302. model.makeValue("/root/main/cond/torddd", torddd);
  303. model.copynode("/root/send/reqdata", xCondPath);
  304. model.makeValue("/root/send/reqdata/reqpidcond", sHeader + sContents);
  305. if(submit("TXMNR06301")){
  306. model.makeValue("/root/send/reqdata/pidseqno", model.getValue("/root/hidden/pidseqnoinfo/pidseqnoinfo/pidseqno"));
  307. }else {
  308. return;
  309. }
  310. //----------------------------
  311. // 조회전 화면 정리
  312. //----------------------------
  313. model.removeNodeSet("/root/hidden/warddruginfo");
  314. model.removeNodeSet("/root/main/warddruginfo");
  315. for (var col= (grd_druglist.cols-1);col>=colDataidx;col--) {
  316. grd_druglist.deleteColumn(col);
  317. }
  318. grd_druglist.caption = xCaption;
  319. grd_druglist.refresh();
  320. if(submit("TRMNR06301")){
  321. var inst_cnt = 0;
  322. var prev_prcpno = "";
  323. var drugtmspec = "";
  324. var drugtmspeccal = "";
  325. var medrbaseexistyn = "";
  326. var prcpno = "";
  327. var mod = "";
  328. var quotient = "";
  329. var prcpvol = "";
  330. var prcpvolunitflag = "";
  331. var prcpqty = "";
  332. var prcpqtyunitflag = "";
  333. var carebasedd = "";
  334. var carebasetm = "";
  335. var ast = "";
  336. var aprvstat = "";
  337. var tempddtm = "";
  338. var tempdd = "";
  339. var temptm = "";
  340. var addCol_Array = new Array;
  341. //1.일자추출 -컬럼추가(화면 data)
  342. var cnt = getNodesetCount("/root/hidden/warddruginfo/warddruglist");
  343. //---------------------------------------
  344. //alert("계산시작:" + cnt);(20080801)
  345. if ( cnt <= 0 ) {
  346. messageBox("조회된자료가 없습니다.","E999");
  347. return;
  348. }
  349. //---------------------------------------
  350. for(var i = 1; i <= cnt; i++){
  351. //alert("i=" +i);
  352. tempddtm = model.getValue("/root/hidden/warddruginfo/warddruglist[" + i + "]/ddtm");
  353. //--------------------------------------------------(20080610)
  354. //투약된일자(절대일자),변경되일자(절대일자) YYYYMMDDSSMM00
  355. //희망일+설정된시간대==> 절대시간대로 변경한다.(로직) SSMM
  356. //alert("0927:"+ tempddtm);
  357. if ( tempddtm.length == 4) {
  358. tempdd = model.getValue("/root/hidden/warddruginfo/warddruglist[" + i + "]/prcphopedd");
  359. temptm = tempddtm;
  360. //alert("A:" + "/" +tempdd + "/" + temptm);
  361. tempdd = getDateAddc(tempdd, parseInt(tempddtm / 2400));
  362. temptm = tempddtm % 2400;
  363. //alert("B:" + "/" +tempdd + "/" + temptm);
  364. temptm = Math.abs(Number(temptm)).toString();
  365. temptm = fCarec_GetFillZeno(temptm, 4,0);
  366. tempddtm = tempdd + "" + temptm + "" + '00';
  367. }
  368. //alert("tempddtm=" + tempddtm);
  369. //계산된 일자 기록
  370. //alert(tempddtm);
  371. model.makeValue("/root/hidden/warddruginfo/warddruglist[" + i + "]/ddtm_calc",tempddtm);
  372. //--------------------------------------------------
  373. tempdd = tempddtm.substr(0,8);
  374. //alert("i배열=" + tempdd);
  375. //일자배열에 저장
  376. careIsSearchString(addCol_Array,tempdd);
  377. }
  378. //alert("1:" + addCol_Array.length);
  379. if (addCol_Array.length <= 0) {
  380. messageBox("일자정보가 없습니다.","E999");
  381. return;
  382. }
  383. //일자 정렬(오름차순)
  384. var addCol_Arr = new Array;
  385. addCol_Arr = sortHashKeysArray(addCol_Array);
  386. //alert("2:" + addCol_Arr.length);
  387. //2.그리드에 컬럼추가
  388. var pGrd = grd_druglist;
  389. var sGrdheader = "";
  390. //-------------------------------------------------------
  391. //컬럼을 늘리기 위해서 빈 row를 만든다.
  392. //model.duplicate(a,b): b->a 인데, 주의 a는 한단계위임)
  393. //-------------------------------------------------------
  394. model.duplicate("/root/main","/root/temp/warddruginfo");
  395. var tempColIdx;
  396. fstdispcol = Number(colDataidx)+1; // 20090629
  397. for(var k = 1; k <= addCol_Arr.length; k++){
  398. tempColIdx = Number(colDataidx)+Number(k);
  399. pGrd.addColumn("ref:dispdd" + tempColIdx + "; type:output; ", false);
  400. //pGrd.colWidth(pGrd.cols - 1) = 150;
  401. pGrd.colWidth(pGrd.cols) = 150;
  402. //------------------------------(20080802)
  403. //---(20080802) YYYYMMDD
  404. //일자
  405. //sGrdheader += addCol_Arr[k-1].toString() + "^"; //YYYYMMDD
  406. var sTempDt = addCol_Arr[k-1].toString();
  407. sTempDt = sTempDt.substr(0,4) + "-" + sTempDt.substr(4,2) + "-" + sTempDt.substr(6,2);
  408. sGrdheader += sTempDt + "^"; //YYYY-MM-DD
  409. //------------------------------
  410. }
  411. lstdispcol = tempColIdx; // 20090629
  412. sGrdheader = sGrdheader.substr(0,sGrdheader.length-1); // 마지막 "^" 제거
  413. pGrd.caption = pGrd.caption + "^" + sGrdheader;
  414. //alert("3:" + pGrd.caption);
  415. pGrd.refresh();
  416. //3.hidden data -> 화면 data)
  417. var preprcpno = "";
  418. var nowprcpno = "";
  419. var hiddenPath = "/root/hidden/warddruginfo/warddruglist";
  420. var dispPath = "/root/main/warddruginfo/warddruglist";
  421. var inst_cnt = 0;
  422. var tempdd = "";
  423. var cnt = getNodesetCount("/root/hidden/warddruginfo/warddruglist");
  424. //헤더를 만들기 위해 있더 자료 삭제
  425. pGrd.deleteRow(1);
  426. for(var i = 1; i <= cnt; i++){
  427. nowprcpno = model.getValue(hiddenPath + "[" + i + "]/prcpno");
  428. //prcpno가 다르면 row 추가
  429. if (preprcpno != nowprcpno) {
  430. pGrd.addRow(false,false);
  431. //row 추가
  432. //alert("row추가:" + preprcpno + "/" + nowprcpno);
  433. inst_cnt++;
  434. //model.makeValue(dispPath + "[" + inst_cnt + "]", "");
  435. //-----------------------------(20080801)
  436. //일반적인 공통사항 복사
  437. // var disppatinfo = model.getValue(hiddenPath + "[" + i + "]/roomcd") + " " +
  438. // model.getValue(hiddenPath + "[" + i + "]/patnm") + " " +
  439. // model.getValue(hiddenPath + "[" + i + "]/sexage") + " " +
  440. // model.getValue(hiddenPath + "[" + i + "]/pid") + " ";
  441. //-------------(20080922)
  442. //var disppatinfo = model.getValue(hiddenPath + "[" + i + "]/pid") + " " +
  443. // model.getValue(hiddenPath + "[" + i + "]/patnm") + " " +
  444. // model.getValue(hiddenPath + "[" + i + "]/roomcd") + " " +
  445. // model.getValue(hiddenPath + "[" + i + "]/sexage");
  446. if (model.getValue(hiddenPath + "[" + i + "]/roomcd") == "ERBD") {
  447. var disppatinfo = model.getValue(hiddenPath + "[" + i + "]/pid").toString().replace(" ","") + " " +
  448. model.getValue(hiddenPath + "[" + i + "]/patnm").toString().replace(" ","") + " " +
  449. model.getValue(hiddenPath + "[" + i + "]/bedposcnts").toString().replace(" ","") + " " +
  450. model.getValue(hiddenPath + "[" + i + "]/sexage").toString().replace(" ","") + " " ;
  451. } else {
  452. var disppatinfo = model.getValue(hiddenPath + "[" + i + "]/pid").toString().replace(" ","") + " " +
  453. model.getValue(hiddenPath + "[" + i + "]/patnm").toString().replace(" ","") + " " +
  454. model.getValue(hiddenPath + "[" + i + "]/roomcd").toString().replace(" ","") + " " +
  455. model.getValue(hiddenPath + "[" + i + "]/sexage").toString().replace(" ","") + " " ;
  456. }
  457. //-------------(20080922)
  458. //-----------------------------(20080801)
  459. var dispprcpkindnm = model.getValue(hiddenPath + "[" + i + "]/prcpkindnm");
  460. var dispprcpmixno = model.getValue(hiddenPath + "[" + i + "]/prcpmixno");
  461. var dispprcpcd = model.getValue(hiddenPath + "[" + i + "]/prcpcd");
  462. var dispprcpnm = model.getValue(hiddenPath + "[" + i + "]/prcpnm");
  463. //----------------------------(20080917)
  464. if ( dispprcpmixno != '-' && dispprcpmixno != '') {
  465. dispprcpnm = "(" + dispprcpmixno + ")" + dispprcpnm;
  466. }
  467. //----------------------------(20080917)
  468. var dispprcpvol = model.getValue(hiddenPath + "[" + i + "]/prcpvol");
  469. var dispprcpvolunitflag = model.getValue(hiddenPath + "[" + i + "]/prcpvolunitflag");
  470. var dispprcpqty = model.getValue(hiddenPath + "[" + i + "]/prcpqty");
  471. var dispprcpqtyunitflag = model.getValue(hiddenPath + "[" + i + "]/prcpqtyunitflag");
  472. var dispprcptims = model.getValue(hiddenPath + "[" + i + "]/prcptims");
  473. var dispabbrnm = model.getValue(hiddenPath + "[" + i + "]/abbrnm");
  474. var dispdrugmthdspccd = model.getValue(hiddenPath + "[" + i + "]/drugmthdspccd");
  475. var dispprcpdelivefact = model.getValue(hiddenPath + "[" + i + "]/prcpdelivefact");
  476. var disporddrnm = model.getValue(hiddenPath + "[" + i + "]/orddrnm");
  477. var dispfstrgstdt = model.getValue(hiddenPath + "[" + i + "]/fstrgstdt");
  478. var dispprcphopedd = model.getValue(hiddenPath + "[" + i + "]/prcphopedd");
  479. var dispspcldrug = model.getValue(hiddenPath + "[" + i + "]/spcldrug"); //(2008081)
  480. var dispprcpdd = model.getValue(hiddenPath + "[" + i + "]/prcpdd"); //(20080910)
  481. var dispprcpno = model.getValue(hiddenPath + "[" + i + "]/prcpno"); //(20080910)
  482. //----------------------------(20081121)
  483. var dispprcpnmast = model.getValue(hiddenPath + "[" + i + "]/prcpnmast");
  484. var dispprcpnmprt = model.getValue(hiddenPath + "[" + i + "]/prcpnmprt");
  485. var ast = model.getValue(hiddenPath + "[" + i + "]/ast");
  486. var aprvstat = model.getValue(hiddenPath + "[" + i + "]/aprvstat");
  487. var tims = model.getValue(hiddenPath + "[" + i + "]/tims"); // 20090629
  488. var mthdcd = model.getValue(hiddenPath + "[" + i + "]/mthdcd"); // 20090629
  489. var orgprcpclscd = model.getValue(hiddenPath + "[" + i + "]/orgprcpclscd"); // 20090629
  490. var roomcd = model.getValue(hiddenPath + "[" + i + "]/roomcd"); // 20090629
  491. var patnm = model.getValue(hiddenPath + "[" + i + "]/patnm"); // 20090629
  492. var pid = model.getValue(hiddenPath + "[" + i + "]/pid"); // 20090629
  493. var prtchk = model.getValue(hiddenPath + "[" + i + "]/prtchk"); // 20090629
  494. var prcphngnm = model.getValue(hiddenPath + "[" + i + "]/prcphngnm"); // 20090714
  495. var prcpclscd = model.getValue(hiddenPath + "[" + i + "]/prcpclscd"); // 20091023
  496. var drprcpetc7 = model.getValue(hiddenPath + "[" + i + "]/drprcpetc7"); // 20110202_KNUH_Start
  497. var drprcpetc8 = model.getValue(hiddenPath + "[" + i + "]/drprcpetc8"); // 20110202_KNUH_Start
  498. var zonecd = model.getValue(hiddenPath + "[" + i + "]/zonecd"); // 20110211_KNUH
  499. var pid = model.getValue(hiddenPath + "[" + i + "]/pid").toString().replace(" ",""); //20110907
  500. var sexage = model.getValue(hiddenPath + "[" + i + "]/sexage"); //20111230_KNUH_Start 성별/나이(정보추가)
  501. var orddeptnm = model.getValue(hiddenPath + "[" + i + "]/orddeptnm"); //20111230_KNUH_Start 부서명(정보추가)
  502. //----------------------------(20081121)
  503. model.makeValue(dispPath + "[" + inst_cnt + "]/prtchk", prtchk ); //(20080910)
  504. model.makeValue(dispPath + "[" + inst_cnt + "]/patinfo", disppatinfo );
  505. model.makeValue(dispPath + "[" + inst_cnt + "]/prcpkindnm", dispprcpkindnm );
  506. model.makeValue(dispPath + "[" + inst_cnt + "]/prcpmixno", dispprcpmixno );
  507. model.makeValue(dispPath + "[" + inst_cnt + "]/prcpcd", dispprcpcd );
  508. model.makeValue(dispPath + "[" + inst_cnt + "]/prcpnm", dispprcpnm );
  509. model.makeValue(dispPath + "[" + inst_cnt + "]/prcpvol", dispprcpvol );
  510. model.makeValue(dispPath + "[" + inst_cnt + "]/prcpvolunitflag", dispprcpvolunitflag );
  511. model.makeValue(dispPath + "[" + inst_cnt + "]/prcpqty", dispprcpqty );
  512. model.makeValue(dispPath + "[" + inst_cnt + "]/prcpqtyunitflag", dispprcpqtyunitflag );
  513. model.makeValue(dispPath + "[" + inst_cnt + "]/prcptims", dispprcptims );
  514. model.makeValue(dispPath + "[" + inst_cnt + "]/abbrnm", dispabbrnm );
  515. model.makeValue(dispPath + "[" + inst_cnt + "]/drugmthdspccd", dispdrugmthdspccd );
  516. model.makeValue(dispPath + "[" + inst_cnt + "]/prcpdelivefact", dispprcpdelivefact );
  517. model.makeValue(dispPath + "[" + inst_cnt + "]/orddrnm", disporddrnm );
  518. model.makeValue(dispPath + "[" + inst_cnt + "]/fstrgstdt", dispfstrgstdt );
  519. model.makeValue(dispPath + "[" + inst_cnt + "]/prcphopedd", dispprcphopedd );
  520. model.makeValue(dispPath + "[" + inst_cnt + "]/spcldrug", dispspcldrug ); //(2008081)
  521. model.makeValue(dispPath + "[" + inst_cnt + "]/prcpdd", dispprcpdd ); //(20080910)
  522. model.makeValue(dispPath + "[" + inst_cnt + "]/prcpno", dispprcpno ); //(20080910)
  523. //-----------(20081121)
  524. model.makeValue(dispPath + "[" + inst_cnt + "]/prcpnmast", dispprcpnmast );
  525. model.makeValue(dispPath + "[" + inst_cnt + "]/prcpnmprt", dispprcpnmprt );
  526. //-----------(20081121)
  527. model.makeValue(dispPath + "[" + inst_cnt + "]/ast", ast );
  528. model.makeValue(dispPath + "[" + inst_cnt + "]/aprvstat", aprvstat );
  529. model.makeValue(dispPath + "[" + inst_cnt + "]/tims" , tims); // 20090629
  530. model.makeValue(dispPath + "[" + inst_cnt + "]/prtabbrnm" , dispabbrnm); // 20090629
  531. model.makeValue(dispPath + "[" + inst_cnt + "]/orgprcpclscd", orgprcpclscd); // 20090629
  532. model.makeValue(dispPath + "[" + inst_cnt + "]/viewroomcd" , roomcd); // 20090629
  533. model.makeValue(dispPath + "[" + inst_cnt + "]/patnm" , patnm); // 20090629
  534. model.makeValue(dispPath + "[" + inst_cnt + "]/astyn" , ast); // 20090629
  535. model.makeValue(dispPath + "[" + inst_cnt + "]/pid" , pid); // 20090629
  536. model.makeValue(dispPath + "[" + inst_cnt + "]/prcphngnm" , prcphngnm); // 20090714
  537. model.makeValue(dispPath + "[" + inst_cnt + "]/prcpclscd" , prcpclscd); // 20091023
  538. model.makeValue(dispPath + "[" + inst_cnt + "]/drprcpetc7" , drprcpetc7); // 20110202_KNUH_Start
  539. model.makeValue(dispPath + "[" + inst_cnt + "]/drprcpetc8" , drprcpetc8); // 20110202_KNUH_Start
  540. model.makeValue(dispPath + "[" + inst_cnt + "]/zonecd" , zonecd); // 20110211_KNUH
  541. model.makeValue(dispPath + "[" + inst_cnt + "]/pid" , pid); // 20110211_KNUH
  542. model.makeValue(dispPath + "[" + inst_cnt + "]/orddeptnm" , orddeptnm); //20111230_KNUH_Start 성별/나이(정보추가)
  543. model.makeValue(dispPath + "[" + inst_cnt + "]/sexage" , sexage); //20111230_KNUH_Start 부서명(정보추가)
  544. model.makeValue(dispPath + "[" + inst_cnt + "]/roomcd" , model.getValue("/root/main/wardpatinfo/wardpatlist[pid ='" + pid + "']/roomcd")); //20111230_KNUH_Start 부서명(정보추가)
  545. // for(var k = 1; k <= addCol_Arr.length; k++){
  546. // tempColIdx = Number(colDataidx)+Number(k);
  547. // model.makeValue(dispPath + "[" + inst_cnt + "]/dispdd" + tempColIdx,"");
  548. // }
  549. //alert("경로:" + dispPath + "[" + inst_cnt + "]/patinfo");
  550. //now prcpno -> before prcpno
  551. preprcpno = nowprcpno;
  552. }
  553. tempdd = model.getValue(hiddenPath + "[" + i + "]/ddtm_calc");
  554. tempdd = tempdd.substr(0,8);
  555. //일자컬럼찾기
  556. var colindex = fnCaptionFind(tempdd);
  557. //alert("colindex:" + colindex + "/inst_cnt:" + inst_cnt);
  558. //컬럼이 있는 경우복사
  559. if (colindex > 0) {
  560. //이번자료
  561. var temptm1 = model.getValue(hiddenPath + "[" + i + "]/ddtm_calc");
  562. //0919
  563. //alert ("temptm1:" + temptm1);
  564. temptm1 = fCarec_GetFillZeno(temptm1.substr(8,4), 4,0);
  565. //0919
  566. //alert ("temptm1:" + temptm1); //0000 인경우도 아직 살아있음
  567. //기존그리드자료
  568. var temptm2 = model.getValue(dispPath + "[" + inst_cnt + "]/dispdd"+colindex);
  569. if (temptm2.length > 0) {
  570. temptm2 = temptm2 + " " + temptm1;
  571. } else {
  572. temptm2 = temptm1;
  573. }
  574. //alert (temptm2 + "/" + temptm1);
  575. //sort 해야함
  576. temptm2 = temptm2.replace(":",""); //(20080804);
  577. //alert("1:" +temptm2);
  578. temptm2 = sortHashKeysString(temptm2);
  579. //alert("2:" +temptm2);
  580. //-----------------------------------(20080801)
  581. // 0900 -> 09:00
  582. temptm2 = temptm2.replace(":","");
  583. var disp1temptm2 = temptm2.split(" ");
  584. var disp2temptm2 = "";
  585. var disp3temptm2 = "";
  586. //0919
  587. //alert(disp1temptm2);
  588. for (var t=0;t<disp1temptm2.length;t++) {
  589. disp2temptm2 = disp1temptm2[t];
  590. disp2temptm2 = disp2temptm2.replace(":","");
  591. if (disp2temptm2 != "") {
  592. //alert("1:"+ disp2temptm2);
  593. disp2temptm2 = disp2temptm2.substr(0,2) + ":" + disp2temptm2.substr(2,2);
  594. //alert("2:"+ disp2temptm2);
  595. if (t == (disp1temptm2.length-1)) {
  596. disp3temptm2 += disp2temptm2;
  597. } else {
  598. disp3temptm2 += disp2temptm2 + " ";
  599. }
  600. }
  601. //alert("3:" + disp3temptm2);
  602. }
  603. //alert(temptm2 + "/" + disp3temptm2);
  604. temptm2 = disp3temptm2;
  605. //-----------------------------------
  606. //정리된 시간대 반영
  607. model.makeValue(dispPath + "[" + inst_cnt + "]/dispdd"+colindex,temptm2);
  608. }
  609. }
  610. pGrd.refresh();
  611. model.refresh();
  612. /* ------------------------------------(같은처방인경우 합치는 기능 막음):요청사항, 구현은 되었음
  613. //--------------------------------------------------------------
  614. //4.머지(화면에서)
  615. //처방적용일이 다르고, 약제,용량,수량,횟수,경로,용법이 같으면
  616. //처방번호가 달라도 row n개를 1개로 합친다.
  617. //--------------------------------------------------------------
  618. var preprcpcd = "";
  619. var preprcpvol = "";
  620. var preprcpqty = "";
  621. var preprcptims = "";
  622. var preabbrnm = "";
  623. var predrugmthdspccd = "";
  624. var nowprcpcd = "";
  625. var nowprcpvol = "";
  626. var nowprcpqty = "";
  627. var nowprcptims = "";
  628. var nowabbrnm = "";
  629. var nowdrugmthdspccd = "";
  630. var delrowyn = "";
  631. var cnt = getNodesetCount("/root/main/warddruginfo/warddruglist");
  632. for(var i = 1; i <= cnt; i++){
  633. model.makeValue(dispPath + "[" + i + "]/delrowyn","N");
  634. }
  635. for(var i = 1; i <= cnt; i++){
  636. preprcpcd = model.getValue(dispPath + "[" + i + "]/prcpcd");
  637. preprcpvol = model.getValue(dispPath + "[" + i + "]/prcpvol");
  638. preprcpqty = model.getValue(dispPath + "[" + i + "]/prcpqty");
  639. preprcptims = model.getValue(dispPath + "[" + i + "]/prcptims");
  640. preabbrnm = model.getValue(dispPath + "[" + i + "]/abbrnm");
  641. predrugmthdspccd= model.getValue(dispPath + "[" + i + "]/drugmthdspccd");
  642. delrowyn = model.getValue(dispPath + "[" + i + "]/delrowyn");
  643. if (delrowyn == "Y") continue;
  644. for (var j=1;j<=cnt;j++) {
  645. if (j==i) continue;
  646. nowprcpcd = model.getValue(dispPath + "[" + j + "]/prcpcd");
  647. nowprcpvol = model.getValue(dispPath + "[" + j + "]/prcpvol");
  648. nowprcpqty = model.getValue(dispPath + "[" + j + "]/prcpqty");
  649. nowprcptims = model.getValue(dispPath + "[" + j + "]/prcptims");
  650. nowabbrnm = model.getValue(dispPath + "[" + j + "]/abbrnm");
  651. nowdrugmthdspccd = model.getValue(dispPath + "[" + j + "]/drugmthdspccd");
  652. if ( nowprcpcd == preprcpcd &&
  653. nowprcpvol == preprcpvol &&
  654. nowprcpqty == preprcpqty &&
  655. nowprcptims == preprcptims &&
  656. nowabbrnm == preabbrnm &&
  657. nowdrugmthdspccd == predrugmthdspccd ) {
  658. preprcpcd = nowprcpcd;
  659. preprcpvol = nowprcpvol;
  660. preprcpqty = nowprcpqty;
  661. preprcptims = nowprcptims;
  662. preabbrnm = nowabbrnm;
  663. predrugmthdspccd = nowdrugmthdspccd;
  664. model.makeValue(dispPath + "[" + j + "]/delrowyn","Y");
  665. for (var col=colDataidx+1;col<=pGrd.cols;col++ ) {
  666. var temptm1 = model.getValue(dispPath + "[" + j + "]/dispdd"+col);
  667. var temptm2 = model.getValue(dispPath + "[" + i + "]/dispdd"+col);
  668. var temptm = "";
  669. //상위loop = 상위loop || ' ' || 하위loop
  670. if (temptm2.length >0 && temptm1.length >0 ) {
  671. temptm = temptm2 + " " + temptm1;
  672. } else if (temptm2.length >0) {
  673. temptm = temptm2;
  674. } else if (temptm1.length >0) {
  675. temptm = temptm1;
  676. } else {
  677. temptm = "";
  678. }
  679. //정렬
  680. if (temptm != "") temptm = sortHashKeysString(temptm);
  681. //값반영
  682. model.makeValue(dispPath + "[" + i +"]/dispdd" + col,temptm);
  683. }
  684. }
  685. }
  686. }
  687. //--------------------------------------------------------------
  688. //5. 그리드 정리1
  689. //합쳐진 row는 숨긴다.
  690. //--------------------------------------------------------------
  691. //for(var i = 1; i <= cnt; i++){
  692. // var delflag = model.getValue(dispPath + "[" + i + "]/delrowyn");
  693. // if (delflag == "Y") pGrd.rowHidden(i) = true;
  694. //}
  695. //return;
  696. for(var i = 1; i <=cnt ; i++){
  697. var delflag = model.getValue(dispPath + "[" + i + "]/delrowyn");
  698. if (delflag == "Y") {
  699. grd_druglist.deleteRow(i);
  700. i--;
  701. }
  702. }
  703. */
  704. //--------------------------------------------------------------
  705. //6. 그리드 정리2
  706. //합쳐진 col는 숨긴다.
  707. //--------------------------------------------------------------
  708. if (grd_druglist.rows <= 1 ) return;
  709. var fromdd = model.getValue("/root/main/cond/orddd"); //조회일자
  710. var todd = getDateAddc(fromdd,1); //조회일자+1
  711. var sCaption = grd_druglist.caption.split("^");
  712. //------------------(20080802)
  713. //--------------------------------------------------------------
  714. //7. 해당하는 자료만 나오도록 한다.(컬럼)
  715. //--------------------------------------------------------------
  716. var sCaptionDt = "";
  717. for(var i = (sCaption.length-1) ; i >= colDataidx ; i--){
  718. sCaptionDt = sCaption[i];
  719. sCaptionDt = sCaptionDt.replace("-","");
  720. sCaptionDt = sCaptionDt.replace("-",""); //막지말것
  721. if (sCaptionDt >= fromdd && sCaptionDt <= todd) {
  722. } else {
  723. grd_druglist.deleteColumn(i);
  724. }
  725. }
  726. grd_druglist.refresh();
  727. //------------------(20080802)
  728. //------------------(20080802)
  729. //--------------------------------------------------------------
  730. //8. 해당하는 자료만 나오도록 한다.(row)
  731. //--------------------------------------------------------------
  732. var rows = getNodesetCount(xWardDrugListPath);
  733. if (rows <= 1) return;
  734. var rowidx = 1;
  735. for (var row=1;row<= rows;row++ ) {
  736. if ( grd_druglist.ValueMatrix(rowidx,colDataidx ) == "" &&
  737. grd_druglist.ValueMatrix(rowidx,colDataidx+1) == "") {
  738. grd_druglist.deleteRow(rowidx);
  739. rowidx --;
  740. } else {
  741. rowidx ++;
  742. }
  743. }
  744. //------------------(20080802)
  745. grd_druglist.refresh();
  746. //------------------(20080804)
  747. // var srows = getNodesetCount("/root/main/warddruginfo/warddruglist");
  748. //
  749. //
  750. // for(var i = (sCaption.length-1) ; i >= colDataidx ; i--){
  751. //
  752. // sCaptionDt = sCaption[i];
  753. // sCaptionDt = sCaptionDt.replace("-","");
  754. // sCaptionDt = sCaptionDt.replace("-",""); //막지말것
  755. //
  756. // //---------------------(20080803)
  757. // if (sCaptionDt >= fromdd && sCaptionDt <= todd) {
  758. // } else {
  759. // grd_druglist.deleteColumn(i);
  760. // }
  761. //
  762. // //---------------------(20080802)
  763. // // fromdd 이상부터만 조회한다.
  764. // //alert( sCaptionDt + "/" + fromdd);
  765. // //if (sCaptionDt >= fromdd) {
  766. // //} else {
  767. // // grd_druglist.deleteColumn(i);
  768. // //}
  769. // //---------------------(20080802)
  770. // }
  771. //------------------(20080804)
  772. //grd_druglist.refresh();
  773. // model.makeValue("/root/main/cond/title", "투약 work list(" + rdo_drugflag.label + ")");
  774. // model.makeValue("/root/main/cond/printdd", getCurrentDate());
  775. // model.makeValue("/root/main/cond/printtm", getCurrentTime().substr(0,4));
  776. // if(cnt > 0){
  777. // exeReportPreview("RPMNR06301", "XMLSTR" , "" , "" , "false" , "false", "", "", "", "false");
  778. // }else{
  779. // resetReportPreview();
  780. // messageBox("출력할 내용이","I004");
  781. // }
  782. //-----------------------------(20080801)미작업분
  783. //마약,향정신성인 경우
  784. //if(spcldrug == "M"){
  785. //if( spcldrug == "M" || spcldrug == "H" ){
  786. // grd_druglist.cellstyle("font-weight",i+1,1,i+1,grd_colcnt-3) = "bold";
  787. // grd_druglist.cellstyle("font-weight",i+1,grd_colcnt-1,i+1,grd_colcnt-1) = "bold";
  788. //}
  789. var pGrd = grd_druglist;
  790. var pGrdCnt = getNodesetCount(xWardDrugListPath);
  791. var pGrdFlag = false;
  792. var pGrdValue = "";
  793. if (pGrdCnt <= 0 ) return;
  794. var pPatinfo = "";
  795. for (var t=1;t<=pGrdCnt;t++) {
  796. pGrdValue = model.getValue("root/main/warddruginfo/warddruglist[" + t + "]/spcldrug");
  797. pGrdFlag = false;
  798. if (pGrdValue == "M" || pGrdValue == "H") pGrdFlag = true;
  799. if (pGrdFlag == true) {
  800. pGrd.cellstyle("font-weight",t,1,t,pGrd.cols-1) = "bold";
  801. }
  802. //--------------------(20081117)
  803. //머지된것중에서 동일한 경우는 색상변경으로 보이지 않게함
  804. if (pPatinfo == model.getValue("root/main/warddruginfo/warddruglist[" + t + "]/patinfo")) {
  805. pGrd.cellStyle("color", t, pGrd.colref("patinfo")) = "white";
  806. } else {
  807. pPatinfo = model.getValue("root/main/warddruginfo/warddruglist[" + t + "]/patinfo");
  808. //20110907_KNUH_Start 환자별 구분선 추가(빨간색)
  809. if(t !=1){
  810. grd_druglist.rowStyle(t-1, "all", "border-bottom-color") = "#ff0000";
  811. grd_druglist.rowStyle(t-1, "all", "border-top-width") = "3";
  812. }
  813. }
  814. //--------------------(20081117)
  815. }
  816. //-----------------------------
  817. }
  818. grd_druglist.refresh();
  819. }
  820. /**
  821. * @---------------------------------------------------
  822. * @desc : 배열에 문자가 있는지 확인하여 없으면 배열에 추가
  823. * @param : strSrc - 전체 문장
  824. * @param : strFind - 찾을 문장
  825. * @return : boolean
  826. * @---------------------------------------------------
  827. */
  828. function fnCaptionFind(strFind) {
  829. var pGrd = grd_druglist;
  830. var sGrdCap1 = pGrd.caption.split("^");
  831. var col_index = "0";
  832. var sDT = "";
  833. for (var col1=0; col1 < sGrdCap1.length; col1++) {
  834. //---------------(20080802)
  835. //if (sGrdCap1[col1] == strFind) {
  836. sDT = sGrdCap1[col1];
  837. sDT = sDT.replace("-","");
  838. sDT = sDT.replace("-",""); //풀지말것
  839. //alert(sDT + "/" + strFind);
  840. if (sDT == strFind) {
  841. col_index = col1;
  842. col_index ++;
  843. break;
  844. }
  845. }
  846. return col_index;
  847. }
  848. /**
  849. * @---------------------------------------------------
  850. * @desc : 배열에 문자가 있는지 확인하여 없으면 배열에 추가
  851. * @param : strSrc - 전체 문장
  852. * @param : strFind - 찾을 문장
  853. * @return : boolean
  854. * @---------------------------------------------------
  855. */
  856. function careIsSearchString(strSrc, strFind){
  857. var flag = false;
  858. for(var i = 0; i < strSrc.length; i++){
  859. if (strFind.length != 8) {
  860. if(fCarec_GetFillZeno(strFind,4,0) == fCarec_GetFillZeno(strSrc[i],4,0)){
  861. flag = true;
  862. break;
  863. }
  864. } else {
  865. if(strFind == strSrc[i]){
  866. flag = true;
  867. break;
  868. }
  869. }
  870. }
  871. if (flag != true) {
  872. if (strFind.length != 8) {
  873. strSrc[strSrc.length] = fCarec_GetFillZeno(strFind,4,0);
  874. } else {
  875. strSrc[strSrc.length] = strFind;
  876. }
  877. }
  878. }
  879. /**
  880. * @group :
  881. * @ver : 2007.06.23
  882. * @by : 최경용
  883. * @---------------------------------------------------
  884. * @type : function
  885. * @access : public
  886. * @desc : 정렬
  887. * @param :
  888. * @param :
  889. * @return :
  890. * @---------------------------------------------------
  891. */
  892. function sortHashKeysArray(sColArray){
  893. var temp;
  894. //배열안의 내용 정렬
  895. for(i = 0; i < sColArray.length; i++){
  896. for(j = 0; j < sColArray.length; j++){
  897. if(sort2(sColArray[i],sColArray[j]) == false){
  898. temp = sColArray[i];
  899. sColArray[i] = sColArray[j];
  900. sColArray[j] = temp;
  901. }
  902. }
  903. }
  904. return sColArray;
  905. }
  906. function sortHashKeysString(sColString){
  907. var sColArray = new Array;
  908. //string -> 배열로
  909. var sCol = sColString.split(" ");
  910. var temp = "";
  911. for(var i = 0; i < sCol.length; i++){
  912. //sColArray[i] = Number(sCol[i]);
  913. sColArray[i] = fCarec_GetFillZeno(sCol[i],4,0);
  914. sColArray[i] = sColArray[i].toString().replace(":",""); //-----(20080919)
  915. }
  916. //배열 정렬
  917. for(var i = 0; i < sColArray.length; i++){
  918. for(var j = 0; j < sColArray.length; j++){
  919. if(sort2(sColArray[i],sColArray[j]) == false){
  920. temp = fCarec_GetFillZeno(sColArray[i],4,0);
  921. sColArray[i] = fCarec_GetFillZeno(sColArray[j],4,0);
  922. sColArray[j] = fCarec_GetFillZeno(temp,4,0);
  923. }
  924. }
  925. }
  926. //중복제거
  927. sColString = "";
  928. for(var i = 0; i < sColArray.length; i++){
  929. if ( sColArray[i] == "") continue;
  930. for(var j = i+1; j < sColArray.length; j++){
  931. if ( sColArray[i] == sColArray[j]) sColArray[j] = "";
  932. }
  933. }
  934. //배열 -> string
  935. sColString = "";
  936. for(var i = 0; i < sColArray.length; i++){
  937. //if (sColArray[i] == "0000") continue; //---0919
  938. sColString += sColArray[i] + " ";
  939. }
  940. //마지막 " " 제거
  941. sColString = sColString.substr(0,sColString.length-1);
  942. //string 리턴
  943. return sColString;
  944. }
  945. //--------------------(20080605)
  946. // 음수끼리의 정렬은 반대임(기능추가)
  947. // -1800 < -2000 임 시간이므로
  948. //--------------------
  949. function sort2(a,b){
  950. // 두변수가 전부 음수인 경우(음수,음수) -1800 < -2000
  951. if ( parseInt(a) < 0 && parseInt(b) < 0 ) {
  952. if(parseInt(a) < parseInt(b)){
  953. return true;
  954. }else if(parseInt(a) > parseInt(b)){
  955. return false;
  956. }else{
  957. var sort = new Array(a,b);
  958. sort.sort();
  959. return (sort[0] == a)? false:true;
  960. }
  961. } else {
  962. //그외경우 (음수,양수/양수,음수/양수,양수)
  963. if(parseInt(a) > parseInt(b)){
  964. return true;
  965. }else if(parseInt(a) < parseInt(b)){
  966. return false;
  967. }else{
  968. var sort = new Array(a,b);
  969. sort.sort();
  970. return (sort[0] == a)? false:true;
  971. }
  972. }
  973. }
  974. /**
  975. * @group :
  976. * @ver : 20080.06.12
  977. * @by : 김보성
  978. * @---------------------------------------------------
  979. * @type : function
  980. * @access : public
  981. * @desc : 조회
  982. * @param :
  983. * @return :
  984. * @---------------------------------------------------
  985. */
  986. function fWorkListPrint() {
  987. var pGrd = grd_druglist;
  988. var stitle1 = "";
  989. var stitle2 = "";
  990. var stitle3 = ""; //--(20080923)
  991. if (pGrd.rows <= 1) {
  992. messageBox("자료가 존재하지 않습니다.","E999");
  993. return;
  994. }
  995. //-----------------------------(20080801)
  996. //stitle1 = com_wardcd.label;
  997. //stitle2 = "전체";
  998. //stitle3 = "전체";
  999. //if (com_roomcd.label.replace("-","") != "") stitle2 = com_roomcd.label + " 호";
  1000. //if (ipt_pid.label != "") stitle2 = opt_hngnm.label;
  1001. //if (rdo_drugflag.label != "") stitle3 = rdo_drugflag.label;
  1002. //model.makeValue("/root/main/cond/title", "투약 work list(" + stitle1 + "-" + stitle2 + "-" + stitle3 + ")");
  1003. //-----------------------------(20080801)
  1004. //-----------------------------(20081119)
  1005. model.makeValue("/root/main/cond/title", "투약 work list");
  1006. //-----------------------------(20081119)
  1007. //-------------(20080802)
  1008. var tempdd = model.getValue("/root/main/cond/orddd"); //printdtfr
  1009. model.makeValue("/root/main/cond/printdtfr", tempdd);
  1010. var colindex = fnCaptionFind(tempdd);
  1011. colindex --;
  1012. var sGrdCap1 = pGrd.caption.split("^");
  1013. tempdd = "";
  1014. if (sGrdCap1.length > (colindex+1)) {
  1015. tempdd = sGrdCap1[colindex+1];
  1016. tempdd = tempdd.replace("-","");
  1017. tempdd = tempdd.replace("-",""); //주석처리하지말것
  1018. model.makeValue("/root/main/cond/printdtto", tempdd);
  1019. }
  1020. //-------------(20080802)
  1021. model.makeValue("/root/main/cond/printdd", getCurrentDate());
  1022. model.makeValue("/root/main/cond/printtm", getCurrentTime().substr(0,4));
  1023. model.removeNodeSet("/root/main/prtinfo");
  1024. model.makeNode("/root/main/prtinfo/cond");
  1025. model.copynode("/root/main/prtinfo/cond", "/root/main/cond");
  1026. var rows = getNodesetCount(xWardDrugListPath);
  1027. var sPathTemp = "/root/main/prtinfo/warddruginfo/warddruglist";
  1028. var sPathDrug = "/root/main/warddruginfo/warddruglist";
  1029. //------------(20081117)
  1030. var sTempPid = ipt_pid.value;
  1031. //------------(20081117)
  1032. //--------------(20080910)
  1033. var prtflag = false;
  1034. var makerow = 0;
  1035. //--------------(20080910)
  1036. var sPathTemp2 = "/root/main/prtinfo/warddruginfo/warddruglist";
  1037. var sPathDrug2 = "/root/main/warddruginfo/warddruglist";
  1038. model.makeNode(sPathTemp2);
  1039. copyNodesetType(sPathTemp2, sPathDrug2 + "[prtchk='true']");
  1040. if(getNodesetCount(sPathTemp2) > 0 ) {
  1041. prtflag = true;
  1042. } else {
  1043. prtflag = false;
  1044. }
  1045. /*
  1046. for (var row=1;row<= rows;row++ ) {
  1047. //----------------------------(20080910)
  1048. //선택된 자료만 출력한다.
  1049. if (model.getValue(sPathDrug + "[" + row + "]/prtchk") != "true") {
  1050. continue;
  1051. }
  1052. makerow ++;
  1053. prtflag = true;
  1054. //----------------------------
  1055. model.makeNode(sPathTemp + "[" + makerow + "]");
  1056. //---------(20080923)
  1057. //model.makeValue(sPathTemp + "[" + makerow + "]/patinfo", model.getValue(sPathDrug + "[" + row + "]/patinfo"));
  1058. var vpatinfo = new Array;
  1059. vpatinfo = model.getValue(sPathDrug + "[" + row + "]/patinfo").toString().split(" ");
  1060. var vTemp = "";
  1061. for (var i=0;i<vpatinfo.length;i++) {
  1062. vTemp += vpatinfo[i].toString() + "\n";
  1063. }
  1064. model.makeValue(sPathTemp + "[" + makerow + "]/patinfo", vTemp);
  1065. //---------(20080923)
  1066. //---------(20081117)
  1067. //전부이런형태로 출력한다.
  1068. //if (sTempPid != "") {
  1069. // model.makeValue(sPathTemp + "[" + makerow + "]/pid", model.getValue("/root/main/wardpatinfo/wardpatlist[pid ='" + sTempPid + "']/pid"));
  1070. // model.makeValue(sPathTemp + "[" + makerow + "]/patnm", model.getValue("/root/main/wardpatinfo/wardpatlist[pid ='" + sTempPid + "']/patnm"));
  1071. // model.makeValue(sPathTemp + "[" + makerow + "]/sexage", model.getValue("/root/main/wardpatinfo/wardpatlist[pid ='" + sTempPid + "']/sexage"));
  1072. // model.makeValue(sPathTemp + "[" + makerow + "]/roomcd1", model.getValue("/root/main/wardpatinfo/wardpatlist[pid ='" + sTempPid + "']/roomcd") + '호');
  1073. // model.makeValue(sPathTemp + "[" + makerow + "]/orddeptnm", model.getValue("/root/main/wardpatinfo/wardpatlist[pid ='" + sTempPid + "']/orddeptnm"));
  1074. //}
  1075. //---------(20081117)
  1076. sTempPid = vpatinfo[0];
  1077. //alert(sTempPid);
  1078. //---------(20081119)
  1079. model.makeValue(sPathTemp + "[" + makerow + "]/pid1", model.getValue("/root/main/wardpatinfo/wardpatlist[pid ='" + sTempPid + "']/pid"));
  1080. model.makeValue(sPathTemp + "[" + makerow + "]/patnm1", model.getValue("/root/main/wardpatinfo/wardpatlist[pid ='" + sTempPid + "']/patnm"));
  1081. model.makeValue(sPathTemp + "[" + makerow + "]/sexage1", model.getValue("/root/main/wardpatinfo/wardpatlist[pid ='" + sTempPid + "']/sexage"));
  1082. model.makeValue(sPathTemp + "[" + makerow + "]/roomcd1", model.getValue("/root/main/wardpatinfo/wardpatlist[pid ='" + sTempPid + "']/roomcd") + '호');
  1083. model.makeValue(sPathTemp + "[" + makerow + "]/orddeptnm1", model.getValue("/root/main/wardpatinfo/wardpatlist[pid ='" + sTempPid + "']/orddeptnm"));
  1084. //---------(20081119)
  1085. model.makeValue(sPathTemp + "[" + makerow + "]/prcpkindnm", model.getValue(sPathDrug + "[" + row + "]/prcpkindnm"));
  1086. model.makeValue(sPathTemp + "[" + makerow + "]/prcpmixno", model.getValue(sPathDrug + "[" + row + "]/prcpmixno"));
  1087. //------------(20080801)
  1088. if ( model.getValue(sPathDrug + "[" + row + "]/spcldrug") == "M" ) { //마약
  1089. model.makeValue(sPathTemp + "[" + makerow + "]/spcldrug", "Y");
  1090. } else if ( model.getValue(sPathDrug + "[" + row + "]/spcldrug") == "H" ) {
  1091. model.makeValue(sPathTemp + "[" + makerow + "]/spcldrug", "Y"); //향정신성
  1092. } else {
  1093. model.makeValue(sPathTemp + "[" + makerow + "]/spcldrug", "N"); //그외
  1094. }
  1095. //-------------
  1096. model.makeValue(sPathTemp + "[" + makerow + "]/prcpcd", model.getValue(sPathDrug + "[" + row + "]/prcpcd"));
  1097. //-----------------------(20080804)
  1098. //model.makeValue(sPathTemp + "[" + row + "]/prcpnm", model.getValue(sPathDrug + "[" + row + "]/prcpnm"));
  1099. var sMixno = model.getValue(sPathDrug + "[" + row + "]/prcpmixno");
  1100. //if (sMixno != "") {
  1101. // model.makeValue(sPathTemp + "[" + makerow + "]/prcpnm", "(" + sMixno + ")" + model.getValue(sPathDrug + "[" + row + "]/prcpnm"));
  1102. //} else {
  1103. model.makeValue(sPathTemp + "[" + makerow + "]/prcpnm", model.getValue(sPathDrug + "[" + row + "]/prcpnm"));
  1104. //}
  1105. //-----------------------
  1106. //model.makeValue(sPathTemp + "[" + row + "]/prcpvol", model.getValue(sPathDrug + "[" + row + "]/prcpvol"));
  1107. model.makeValue(sPathTemp + "[" + makerow + "]/prcpvol", model.getValue(sPathDrug + "[" + row + "]/prcpvol") + "" +
  1108. model.getValue(sPathDrug + "[" + row + "]/prcpvolunitflag"));
  1109. model.makeValue(sPathTemp + "[" + makerow + "]/prcpvolunitflag",model.getValue(sPathDrug + "[" + row + "]/prcpvolunitflag"));
  1110. model.makeValue(sPathTemp + "[" + makerow + "]/prcpqty", model.getValue(sPathDrug + "[" + row + "]/prcpqty") + "" +
  1111. model.getValue(sPathDrug + "[" + row + "]/prcpqtyunitflag"));
  1112. model.makeValue(sPathTemp + "[" + makerow + "]/prcpqtyunitflag",model.getValue(sPathDrug + "[" + row + "]/prcpqtyunitflag"));
  1113. model.makeValue(sPathTemp + "[" + makerow + "]/prcptims", model.getValue(sPathDrug + "[" + row + "]/prcptims"));
  1114. model.makeValue(sPathTemp + "[" + makerow + "]/abbrnm", model.getValue(sPathDrug + "[" + row + "]/abbrnm"));
  1115. model.makeValue(sPathTemp + "[" + makerow + "]/drugmthdspccd", model.getValue(sPathDrug + "[" + row + "]/drugmthdspccd"));
  1116. model.makeValue(sPathTemp + "[" + makerow + "]/prcpdelivefact", model.getValue(sPathDrug + "[" + row + "]/prcpdelivefact"));
  1117. model.makeValue(sPathTemp + "[" + makerow + "]/orddrnm", model.getValue(sPathDrug + "[" + row + "]/orddrnm"));
  1118. model.makeValue(sPathTemp + "[" + makerow + "]/fstrgstdt", model.getValue(sPathDrug + "[" + row + "]/fstrgstdt"));
  1119. model.makeValue(sPathTemp + "[" + makerow + "]/prcphopedd", model.getValue(sPathDrug + "[" + row + "]/prcphopedd"));
  1120. model.makeValue(sPathTemp + "[" + makerow + "]/drprcpetc7", model.getValue(sPathDrug + "[" + row + "]/drprcpetc7"));
  1121. model.makeValue(sPathTemp + "[" + makerow + "]/drprcpetc8", model.getValue(sPathDrug + "[" + row + "]/drprcpetc8"));
  1122. //-----------------(20080802)
  1123. model.makeValue(sPathTemp + "[" + makerow + "]/dispdd1", grd_druglist.ValueMatrix(row,colDataidx ) );
  1124. model.makeValue(sPathTemp + "[" + makerow + "]/dispdd2", grd_druglist.ValueMatrix(row,colDataidx+1) );
  1125. //model.makeValue(sPathTemp + "[" + row + "]/dispdd1", grd_druglist.ValueMatrix(row,colindex ));
  1126. //model.makeValue(sPathTemp + "[" + row + "]/dispdd2", grd_druglist.ValueMatrix(row,colindex+1 ));
  1127. //-----------------(20080802)
  1128. //-----------------------(20081121)
  1129. model.makeValue(sPathTemp + "[" + makerow + "]/prcpnmast", model.getValue(sPathDrug + "[" + row + "]/prcpnmast"));
  1130. //-----------------------(20081217)
  1131. if (sMixno != "") {
  1132. model.makeValue(sPathTemp + "[" + makerow + "]/prcpnmprt", "(" + sMixno + ")" + model.getValue(sPathDrug + "[" + row + "]/prcpnmprt"));
  1133. } else {
  1134. model.makeValue(sPathTemp + "[" + makerow + "]/prcpnmprt", model.getValue(sPathDrug + "[" + row + "]/prcpnmprt"));
  1135. }
  1136. //-----------------------(20081217)
  1137. //model.makeValue(sPathTemp + "[" + makerow + "]/prcpnmprt", model.getValue(sPathDrug + "[" + row + "]/prcpnmprt"));
  1138. //-----------------------(20081121)
  1139. model.makeValue(sPathTemp + "[" + makerow + "]/zonecd", model.getValue(sPathDrug + "[" + row + "]/zonecd"));
  1140. }
  1141. */
  1142. //------------------------(20080910)
  1143. if ( prtflag == true ) {
  1144. //exeReportPreview("RPMNR06301", "XMLSTR" , "/root/temp/prtinfo" , "" , "false" , "false", "", "", "", "false");
  1145. //-----------(20081118)
  1146. //통합함
  1147. //if (sTempPid == "") {
  1148. // exeReportPreview("RPMNR06301", "XMLSTR" , "/root/main/prtinfo");
  1149. //} else {
  1150. //exeReportPreview("RPMNR06302", "XMLSTR" , "/root/main/prtinfo");
  1151. exeReportPreview("RPMNR06302", "XMLSTR", "/root/main/prtinfo", "", "true", "", "", "", "", "", "", "grp_report"); //미리보기 없이 출력 김홍점
  1152. //}
  1153. //-----------(20081117)
  1154. } else {
  1155. messageBox("출력할 내용이","I004");
  1156. }
  1157. //------------------------(20080910)
  1158. }
  1159. function fWorkListPrint_OLD(){
  1160. var pid = model.getValue("/root/main/cond/pid");
  1161. var indd = "";
  1162. var cretno = "";
  1163. if(pid != ""){
  1164. indd = model.getValue("/root/main/wardpatinfo/wardpatlist[pid ='" + pid + "']/indd");
  1165. cretno = model.getValue("/root/main/wardpatinfo/wardpatlist[pid ='" + pid + "']/cretno");
  1166. model.makeValue("/root/main/cond/indd", indd);
  1167. model.makeValue("/root/main/cond/cretno", cretno);
  1168. }
  1169. model.resetInstanceNode("/root/send/reqdata");
  1170. var orddd = model.getValue("/root/main/cond/orddd");
  1171. var yorddd = getDateAddc(orddd,-1);
  1172. var torddd = getDateAddc(orddd,1);
  1173. model.makeValue("/root/main/cond/yorddd", yorddd);
  1174. model.makeValue("/root/main/cond/torddd", torddd);
  1175. model.copynode("/root/send/reqdata", xCondPath);
  1176. model.removeNodeSet("/root/hidden/warddruginfo");
  1177. model.removeNodeSet("/root/main/warddruginfo");
  1178. if(submit("TRMNR06301")){
  1179. var cnt = getNodesetCount("/root/hidden/warddruginfo/warddruglist");
  1180. var inst_cnt = 0;
  1181. var prev_prcpno = "";
  1182. var drugtmspec = "";
  1183. var drugtmspeccal = "";
  1184. var medrbaseexistyn = "";
  1185. var prcpno = "";
  1186. var mod = "";
  1187. var quotient = "";
  1188. var prcpvol = "";
  1189. var prcpvolunitflag = "";
  1190. var prcpqty = "";
  1191. var prcpqtyunitflag = "";
  1192. var carebasedd = "";
  1193. var carebasetm = "";
  1194. for(var i = 1; i <= cnt; i++){
  1195. prcpno = model.getValue(xHiddenWardDrugPath + "[" + i + "]/prcpno");
  1196. drugtmspec = model.getValue(xHiddenWardDrugPath + "[" + i + "]/drugtmspec");
  1197. medrbaseexistyn = model.getValue(xHiddenWardDrugPath + "[" + i + "]/medrbaseexistyn");
  1198. if(medrbaseexistyn == "Y"){
  1199. carebasedd = drugtmspec.substr(0,8);
  1200. carebasetm = drugtmspec.substr(8,4);
  1201. if(carebasedd == orddd){
  1202. mod = carebasetm;
  1203. quotient = 0;
  1204. }else if(carebasedd == orddd){
  1205. mod = carebasetm;
  1206. quotient = 1;
  1207. }else{}
  1208. }else if(medrbaseexistyn == "N"){
  1209. mod = fCarec_GetFillZeno(parseInt(Number(drugtmspec) % 2400),4,0);
  1210. quotient = parseInt(Number(drugtmspec) / 2400);
  1211. }
  1212. if(i == 1 || prev_prcpno != prcpno){
  1213. inst_cnt++;
  1214. prcpvol = model.getValue(xHiddenWardDrugPath + "[" + i + "]/prcpvol");
  1215. prcpvolunitflag = model.getValue(xHiddenWardDrugPath + "[" + i + "]/prcpvolunitflag");
  1216. prcpqty = model.getValue(xHiddenWardDrugPath + "[" + i + "]/prcpqty");
  1217. prcpqtyunitflag = model.getValue(xHiddenWardDrugPath + "[" + i + "]/prcpqtyunitflag");
  1218. model.makeNode(xWardDrugListPath + "[" + inst_cnt + "]");
  1219. model.copynode(xWardDrugListPath + "[" + inst_cnt + "]", xHiddenWardDrugPath + "[" + i + "]");
  1220. model.makeValue(xWardDrugListPath + "[" + inst_cnt + "]/prcpvolnm", prcpvol + prcpvolunitflag);
  1221. model.makeValue(xWardDrugListPath + "[" + inst_cnt + "]/prcpqtynm", prcpqty + prcpqtyunitflag);
  1222. model.makeNode(xWardDrugListPath + "[" + inst_cnt + "]/drugtmspeccal");
  1223. model.makeNode(xWardDrugListPath + "[" + inst_cnt + "]/tdrugtmspeccal");
  1224. if(quotient == 0){
  1225. model.makeValue(xWardDrugListPath + "[" + inst_cnt + "]/drugtmspeccal", mod);
  1226. }else if(quotient == 1){
  1227. model.makeValue(xWardDrugListPath + "[" + inst_cnt + "]/tdrugtmspeccal", mod);
  1228. }else{}
  1229. prev_prcpno = model.getValue(xHiddenWardDrugPath + "[" + i + "]/prcpno");
  1230. }else{
  1231. drugtmspeccal = model.getValue(xWardDrugListPath + "[" + inst_cnt + "]/drugtmspeccal");
  1232. tdrugtmspeccal = model.getValue(xWardDrugListPath + "[" + inst_cnt + "]/tdrugtmspeccal");
  1233. if(quotient == 0){
  1234. model.makeValue(xWardDrugListPath + "[" + inst_cnt + "]/drugtmspeccal", drugtmspeccal + " " + mod);
  1235. }else if(quotient == 1){
  1236. model.makeValue(xWardDrugListPath + "[" + inst_cnt + "]/tdrugtmspeccal", tdrugtmspeccal + " " + mod);
  1237. }else{}
  1238. }
  1239. }
  1240. model.makeValue("/root/main/cond/title", "투약 work list(" + rdo_drugflag.label + ")");
  1241. model.makeValue("/root/main/cond/printdd", getCurrentDate());
  1242. model.makeValue("/root/main/cond/printtm", getCurrentTime().substr(0,4));
  1243. if(cnt > 0){
  1244. exeReportPreview("RPMNR06301", "XMLSTR" , "" , "" , "false" , "false", "", "", "", "false");
  1245. }else{
  1246. resetReportPreview();
  1247. messageBox("출력할 내용이","I004");
  1248. }
  1249. }
  1250. }
  1251. /* --------------------------------------------------*/
  1252. /* type : function */
  1253. /* access : public */
  1254. /* desc : 환자정보 가져오기(20080801) */
  1255. /* param : 검색구분 */
  1256. /* return : */
  1257. /* --------------------------------------------------*/
  1258. function fSearchPatInfo(qryflag) {
  1259. var sPath1 = "/root/main/cond";
  1260. var sPath2 = "/root/main/patinfo/patinfolist";
  1261. model.removenodeset("/root/temp/pidinfo");
  1262. model.makeValue("/root/temp/pidinfo/pid", model.getValue(sPath1 + "/pid_search"));
  1263. model.makeValue("/root/temp/pidinfo/srchcond","1");
  1264. //modal("SPPMC02500", 1,10, 10, "SPPMC02500", "/root/temp", "/root/send"); 17863430
  1265. //modal("../../../pam/commonweb/xrw/SPPMC02500", qryflag,"150", "150", "SPPMC02500", "/root/source", "/root/send");
  1266. modal("SPPMC02500", qryflag,"150", "150", "SPPMC02500", "/root/temp/pidinfo", "/root/send");
  1267. //환자번호 copy
  1268. var popupendflag = model.getValue("/root/main/popupendflag");
  1269. if (popupendflag == "ok"){
  1270. //model.makeValue(sPath1 + "/pid_search", model.getValue(sPath2 + "/pid") );
  1271. model.makeValue(sPath1 + "/pid", model.getValue(sPath2 + "/pid") );
  1272. model.makeValue(sPath1 + "/hngnm", model.getValue(sPath2 + "/hngnm") );
  1273. } else {
  1274. model.makeValue(sPath1 + "/pid", "" );
  1275. model.makeValue(sPath1 + "/hngnm", "" );
  1276. }
  1277. model.refresh();
  1278. }
  1279. //---------------------------(20080910)
  1280. function fnZoneDisp(pFlag) {
  1281. //응급의료센터(2280200000)인 경우
  1282. //병동정보대신에 구역정보가 보임)(20080620)
  1283. if ( !isNull(model.getValue("/root/code/codeinfo/codelist[cdgrupid ='002' and cdid ='"+com_wardcd.value+"']/cdid")) ) {
  1284. cap_roomcd.visible = false;
  1285. com_roomcd.visible = false;
  1286. //caption17.visible = false;
  1287. //cmb_settingrn.visible = false;
  1288. cap_Zone.visible = true;
  1289. cmb_Zone.visible = true;
  1290. var zonecd = model.getValue("/root/main/paminfo/pamlist/sectioncd");
  1291. if( !isNull(zonecd) && zonecd != "-" ){
  1292. cmb_Zone.value = model.getValue("/root/main/paminfo/pamlist/sectioncd");
  1293. } else {
  1294. cmb_Zone.value = "-";
  1295. }
  1296. } else {
  1297. cap_roomcd.visible = true;
  1298. com_roomcd.visible = true;
  1299. //caption17.visible = true;
  1300. //cmb_settingrn.visible = true;
  1301. cap_Zone.visible = false;
  1302. cmb_Zone.visible = false;
  1303. if ( pFlag != "init"){
  1304. fGetRoomList();
  1305. model.makeValue("/root/main/cond/pid", "");
  1306. model.makeValue("/root/main/cond/hngnm", "");
  1307. model.makeValue("/root/main/cond/indd", "");
  1308. model.makeValue("/root/main/cond/cretno", "");
  1309. model.makeValue("/root/main/cond/roomcd", "");
  1310. model.makeValue("/root/main/cond/settingrnid", "");
  1311. model.makeValue("/root/main/cond/zonecd", "");
  1312. model.removeNodeSet("/root/hidden/warddruginfo");
  1313. model.removeNodeSet("/root/main/warddruginfo");
  1314. grd_druglist.rebuild();
  1315. }
  1316. }
  1317. //fGetPatList();
  1318. }
  1319. //---------------------------(20080910)
  1320. //-------------------(20081117)
  1321. function fClickDrugListBefore() {
  1322. grd_druglist.visible = false;
  1323. bolall.visible = false; //전체선택버튼
  1324. //grpalert.visible = true;
  1325. callLoadingWindow("");
  1326. }
  1327. function fClickDrugListAfter() {
  1328. grd_druglist.visible = true;
  1329. bolall.visible = true; //전체선택버튼
  1330. //grpalert.visible = false;
  1331. removeLoadingWindow();
  1332. }
  1333. //--------원무팀의 입원등록에서 사용하는 것 이용함
  1334. function callLoadingWindow(msg){
  1335. //20080703 이동식 추가
  1336. //환자정보 조회 중 상태 표시
  1337. body.createChild("xforms:iviewer", "id:ivr_progress; src:../../../com/commonweb/xrw/SPZZZ00400_로딩중화면.xrw; left:435px; top:339px; width:330px; height:120px;");
  1338. var ivrObjt = document.all("ivr_progress");
  1339. if( msg == '' || msg == '-' ){
  1340. msg = "투약worklist 조회 중 입니다...";
  1341. }
  1342. ivrObjt.model.makeValue("/root/main/msg", msg);
  1343. ivrObjt.model.refresh();
  1344. }
  1345. function removeLoadingWindow(){
  1346. //20080703 이동식 추가
  1347. //환자정보 조회 중 상태 표시 지우기
  1348. body.removeChild("ivr_progress");
  1349. }
  1350. function WaitLoadingWindow(idx) {
  1351. var msg = "투약worklist 조회 중 입니다...";
  1352. //var msg = "투약기록 조회(" + idx + ") 중 입니다...";
  1353. var ivrObjt = document.all("ivr_progress");
  1354. model.setFocus("ivr_progress");
  1355. ivrObjt.model.setFocus("caption75");
  1356. ivrObjt.model.makeValue("/root/main/msg", msg);
  1357. ivrObjt.model.refresh();
  1358. //model.setFocus("output33");
  1359. model.refresh();
  1360. }
  1361. //-------------------(20081117)
  1362. /**
  1363. * @group :
  1364. * @ver : 2009.06.29
  1365. * @by : JA
  1366. * @---------------------------------------------------------------------------------
  1367. * @type : function
  1368. * @access : public
  1369. * @desc : 투약카드 출력 (A2:경구, A4:외용, A60:주사, A61:수액)
  1370. (SMMNR06000.js:fClickDrugPrint)-> 일괄출력기능으로 변경_20090629
  1371. * @param : sLineFlag : "Y" - 투약worklist에서 호출 시 투약카드에 점선기능 추가
  1372. * @return :
  1373. * @---------------------------------------------------------------------------------
  1374. */
  1375. function fAllDrugCardPrint(sLineFlag){
  1376. model.removeNodeSet("/root/send/medicard/warddruglist");
  1377. model.makeNode("/root/send/medicard");
  1378. var prt_row = "1";
  1379. var prt_col = "1";
  1380. var rows = grd_druglist.rows-1;
  1381. var prcpclscd = "";
  1382. var tims = "";
  1383. var mthdcd = "";
  1384. var prcpmixno = "";
  1385. var drugbasetmspec = "";
  1386. var pid = ""; // 20090629
  1387. var prcphopedd = ""; // 처방적용일_20091023
  1388. var medicardcnt = 1; //경구
  1389. //var medicardcnt5 = 1; //주사
  1390. //var medicardcnt7 = 1; //외용
  1391. var prtTims_Array = new Array;
  1392. var prtMthd_Array = new Array;
  1393. var prtBaseTims_Array = new Array;
  1394. var prtMix_Array = new Array;
  1395. var prtPid_Array = new Array; // 20090629
  1396. var k=1;
  1397. model.removeNodeSet("/root/send/medicard");
  1398. for(var i = 1; i <= rows; i++){
  1399. drugbasetmspec = "";
  1400. if(model.getValue(xWardDrugListPath + "[" + i + "]/prtchk") == "true"){
  1401. // alert(model.getValue(xWardDrugListPath + "[" + i + "]/prtchk")+"\n"+model.getValue(xWardDrugListPath + "[" + i + "]/pid")+"\n"+model.getValue(xWardDrugListPath + "[" + i + "]/prcpcd"));
  1402. orgprcpclscd = model.getValue(xWardDrugListPath + "[" + i + "]/orgprcpclscd");
  1403. prcpclscd = model.getValue(xWardDrugListPath + "[" + i + "]/prcpclscd"); // 20091023 //원본 prcpclscd = model.getValue(xWardDrugListPath + "[" + i + "]/orgprcpclscd");
  1404. tims = model.getValue(xWardDrugListPath + "[" + i + "]/tims");
  1405. mthdcd = model.getValue(xWardDrugListPath + "[" + i + "]/mthdcd");
  1406. prcpmixno = model.getValue(xWardDrugListPath + "[" + i + "]/prcpmixno");
  1407. pid = model.getValue(xWardDrugListPath + "[" + i + "]/pid"); // 20090629
  1408. prcphopedd = model.getValue(xWardDrugListPath + "[" + i + "]/prcphopedd");// 처방적용일_20091023
  1409. orddd = model.getValue("/root/main/cond/orddd"); // 조회조건의 업무일자_20091023
  1410. prcpmixno = model.getValue(xWardDrugListPath + "[" + i + "]/prcpmixno"); // 20091230추가
  1411. for(var j=fstdispcol; j<=lstdispcol; j++){
  1412. if(model.getValue(xWardDrugListPath + "[" + i + "]/dispdd"+j)!=""){
  1413. drugbasetmspec += model.getValue(xWardDrugListPath + "[" + i + "]/dispdd"+j)+" ";
  1414. }
  1415. }
  1416. //경구
  1417. /*원본_20090629_경구약은 따로따로 출력되어도 됨_신미진ITC
  1418. if(prcpclscd == "A2"){
  1419. alert(pid+"\n"+isSearchArrayIndex2(prtBaseTims_Array, drugbasetmspec, prtMthd_Array, mthdcd, prtPid_Array, pid));
  1420. if(isSearchArrayIndex2(prtBaseTims_Array, drugbasetmspec, prtMthd_Array, mthdcd, prtPid_Array, pid) == -1){
  1421. prtBaseTims_Array[medicardcnt] = drugbasetmspec;
  1422. prtMthd_Array[medicardcnt] = mthdcd;
  1423. prtPid_Array[medicardcnt] = pid // 20090629
  1424. model.makevalue(xWardDrugListPath + "[" + i + "]/soding", medicardcnt);
  1425. medicardcnt++;
  1426. }else{
  1427. model.makeValue(xWardDrugListPath + "[" + i + "]/soding", isSearchArrayIndex2(prtBaseTims_Array, drugbasetmspec, prtMthd_Array, mthdcd, prtPid_Array, pid));
  1428. }
  1429. }
  1430. */
  1431. if(prcphopedd == orddd && prcpmixno == ""){ // 업무일자와 처방적용일자가 동일 한 경우에만 출력, 믹스된 주사제외(믹스주사제 모두 제외여부 확인 필요!!!!!)
  1432. // 주사
  1433. // 수액제외(prcpclscd:A61)_20091023
  1434. if(orgprcpclscd == "A6" && prcpclscd != "A61"){ // 원본 if(prcpclscd == "A6"){
  1435. if(prcpmixno == "" || isSearchArrayIndex(prtMix_Array, prcpmixno, prtPid_Array, pid) == -1){
  1436. prtMix_Array[medicardcnt] = prcpmixno;
  1437. prtPid_Array[medicardcnt] = pid // 20090629
  1438. model.makeValue(xWardDrugListPath + "[" + i + "]/soding", medicardcnt);
  1439. medicardcnt++;
  1440. }else{
  1441. model.makeValue(xWardDrugListPath + "[" + i + "]/soding", isSearchArrayIndex(prtMix_Array, prcpmixno, prtPid_Array, pid));
  1442. }
  1443. }
  1444. //외용
  1445. if(orgprcpclscd == "A2" || orgprcpclscd == "A4"){ // 원본 if(prcpclscd == "A2" || prcpclscd == "A4"){
  1446. model.makeValue(xWardDrugListPath + "[" + i + "]/soding", medicardcnt);
  1447. medicardcnt++;
  1448. }
  1449. }
  1450. // 투약카드 출력 시 사용
  1451. var drugtmspect = "";
  1452. var drugtmspectime = "";
  1453. var tmpdrugtmspect = "";
  1454. var drugtmspectlist = "";
  1455. var tims = "";
  1456. var space;
  1457. drugbasetmspec= drugbasetmspec.replace(":","");
  1458. drugtmspect = drugbasetmspec.split(" ");
  1459. tims = model.getValue(xWardDrugListPath + "[" + i + "]/tims");
  1460. // 횟수별 시간공백지정
  1461. if(tims < 4){
  1462. space = " ";
  1463. }else{
  1464. space = " ";
  1465. }
  1466. /*
  1467. for(var j=1; j<drugtmspect.length; j++){
  1468. drugtmspect[j] = drugtmspect[j].replace(":","");
  1469. if(drugtmspect[j].substr(0,2) == "00"){
  1470. drugtmspect[j] = "24" + drugtmspect[j].substr(2,2);
  1471. }
  1472. }
  1473. */
  1474. // Sort기능
  1475. var tempmin=0, tempmax=0;
  1476. for(var j=1; j<drugtmspect.length; j++){
  1477. if(Number(drugtmspect[j-1]) > Number(drugtmspect[j])){
  1478. tempmin = drugtmspect[j];
  1479. drugtmspect[j] = drugtmspect[j-1];
  1480. drugtmspect[j-1] = tempmin;
  1481. }
  1482. }
  1483. for(var j=0; j<drugtmspect.length; j++){
  1484. if(Number(drugtmspect[j]) > Number(drugtmspect[j+1])){
  1485. tempmax = drugtmspect[j];
  1486. drugtmspect[j] = drugtmspect[j+1];
  1487. drugtmspect[j+1] = tempmax;
  1488. }
  1489. }
  1490. // 시간형식 설정(ex.1600 -> 4P)
  1491. for(var j=0; j<drugtmspect.length; j++){
  1492. if(drugtmspect[j] != ""){
  1493. drugtmspect[j] = drugtmspect[j].replace(":","");
  1494. if(drugtmspect[j].substr(0,2) == "00"){
  1495. drugtmspect[j] = "24" + drugtmspect[j].substr(2,2);
  1496. }
  1497. tmpdrugtmspect = Number(drugtmspect[j]);
  1498. if(tmpdrugtmspect > 1200){
  1499. if(tmpdrugtmspect >= 1300){
  1500. tmpdrugtmspect = tmpdrugtmspect - 1200;
  1501. }
  1502. if(tmpdrugtmspect < 1000){
  1503. tmpdrugtmspect = "0"+ String(tmpdrugtmspect);
  1504. }
  1505. if(String(tmpdrugtmspect).substr(2,2) == "00"){
  1506. drugtmspectime += String(tmpdrugtmspect).substr(0,2) + "P" + space;
  1507. }else{
  1508. drugtmspectime += String(tmpdrugtmspect).substr(0,2) + ":" + String(tmpdrugtmspect).substr(2,2) + "P" + space;
  1509. }
  1510. }else if(tmpdrugtmspect <= 1200){
  1511. if(tmpdrugtmspect < 1000){
  1512. tmpdrugtmspect = "0"+ String(tmpdrugtmspect);
  1513. }
  1514. if(String(tmpdrugtmspect).substr(2,2) == "00"){
  1515. drugtmspectime += String(tmpdrugtmspect).substr(0,2) + "A" + space;
  1516. }else{
  1517. drugtmspectime += String(tmpdrugtmspect).substr(0,2) + ":" + String(tmpdrugtmspect).substr(2,2) + "A" + space;
  1518. }
  1519. }
  1520. }
  1521. model.makeValue(xWardDrugListPath + "[" + i + "]/tempdrugtmspeccal", drugtmspectime);
  1522. } // end for 투약카드
  1523. } // end if check
  1524. } // end for
  1525. for(var j = 1; j <= rows; j++){
  1526. if(model.getValue(xWardDrugListPath + "[" + j + "]/prtchk") == "true"){
  1527. model.makeValue(xWardDrugListPath + "[" + j + "]/last" , medicardcnt-1);
  1528. model.makeValue(xWardDrugListPath + "[" + j + "]/row" , "1");
  1529. model.makeValue(xWardDrugListPath + "[" + j + "]/col" , "1");
  1530. model.makeValue(xWardDrugListPath + "[" + j + "]/sLineFlag" , sLineFlag); // 20090629
  1531. model.makeValue(xWardDrugListPath + "[" + j + "]/check" , model.getValue(xWardDrugListPath + "[" + j + "]/prtchk")); // 20090629
  1532. model.makeNode ("/root/send/medicard");
  1533. model.duplicate("/root/send/medicard", xWardDrugListPath + "[" + j + "]");
  1534. }
  1535. }
  1536. if(medicardcnt > 1){
  1537. exeReportPreview("RPMNR00602", "XMLSTR" , "" , "" , "true" , "", "", "", "", "true"); // 미리보기 기능 없음
  1538. // exeReportPreview("RPMNR00602", "XMLSTR", ""); // 미리보기 기능 있음 TEST용
  1539. } else{
  1540. if(prcpclscd == "A61"){
  1541. messageBox("수액은 출력되지 않습니다.","I");
  1542. }else{
  1543. messageBox("투약카드 출력항목이 아닙니다","I");
  1544. }
  1545. }
  1546. }
  1547. /**
  1548. * @group :
  1549. * @ver : 2007.06.25
  1550. * @by : 최경용
  1551. * @--------------------------------------------------------------------
  1552. * @type : function
  1553. * @access : public
  1554. * @desc : 문자열 검색(배열)
  1555. -> SMMNR06000.js에서 투약카드 출력을 위해 가져옴.
  1556. * @param :
  1557. * @return :
  1558. * @--------------------------------------------------------------------
  1559. */
  1560. function isSearchArrayIndex(baseCol_Array, sData, prtPid_Array, pid){
  1561. for(var i = 0; i <= baseCol_Array.length; i++){
  1562. if((baseCol_Array[i]) == sData && prtPid_Array[i] == pid){
  1563. return i;
  1564. }
  1565. }
  1566. return -1;
  1567. }
  1568. function isSearchArrayIndex2(baseCol_Array1, sData1, baseCol_Array2, sData2, prtPid_Array, pid){
  1569. for(var i = 0; i <= baseCol_Array1.length; i++){
  1570. if(baseCol_Array1[i] == sData1 && baseCol_Array2[i] == sData2 && prtPid_Array[i] == pid){
  1571. return i;
  1572. }
  1573. }
  1574. return -1;
  1575. }
  1576. function fSettingLine() {
  1577. var firstpid="";
  1578. var pid ="";
  1579. if(grd_druglist.rows > grd_druglist.fixedRows) {
  1580. firstpid = grd_druglist.valueMatrix(1, grd_druglist.colRef("pid"));
  1581. }
  1582. for(var i = grd_druglist.fixedRows; i < grd_druglist.rows; i++){
  1583. pid = grd_druglist.valueMatrix(i, grd_druglist.colRef("pid"));
  1584. if(firstpid != pid) {
  1585. firstpid = pid;
  1586. //grd_test
  1587. grd_druglist.rowStyle(i-1, "all", "border-bottom-color") = "#ff0000";
  1588. grd_druglist.rowStyle(i-1, "all", "border-top-width") = "3";
  1589. }
  1590. }
  1591. grd_druglist.refresh();
  1592. }