SMMNR07500.js 67 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177
  1. /*
  2. 투약시간 기준관리(SMMNW075.xfm - JScript )
  3. - Version :
  4. 1) : Ver.1.00.01
  5. */
  6. var dept_tims = "";
  7. var dept_prcpcd = "";
  8. var dept_direccd = "";
  9. var xDtimList = "/root/main/mnrmdtim/mnrmdtimList";
  10. var xMechList = "/root/main/picmmech/picmmechList";
  11. var xDeptList = "/root/main/deptdtim/deptdtimList";
  12. var xSapList = "/root/main/sapinfo/saplist/saplist";
  13. /**
  14. * @group :
  15. * @ver : 2007.04.19
  16. * @by : 하재륜
  17. * @---------------------------------------------------
  18. * @type : function
  19. * @access : public
  20. * @desc : 병동코드 조회
  21. * @param :
  22. * @return :
  23. * @---------------------------------------------------
  24. */
  25. function fInitialize(){
  26. //수액기준자료관리 정리
  27. model.removenodeset("/root/main/sapinfo/saplist/saplist");
  28. //공통코드
  29. zbcfGetCodeList(new Array("A0017"), new Array("/root/init/A0017list"));
  30. model.removenode("/root/init/init");
  31. model.removenode("/root/main/deptdtim");
  32. //병동(부서) 리스트 조회
  33. submit("TRMNR00601");
  34. //화면 초기화
  35. var cnt = getNodesetCount("/root/init/init/ward");
  36. model.makeValue("/root/init/init/ward1/wardcd", "ALL");
  37. model.makeValue("/root/init/init/ward1/wardnm", "공통");
  38. for(var i = 1; i <= cnt; i++){
  39. model.makenode("/root/init/init/ward1[" + (i+1) + "]");
  40. model.copynode("/root/init/init/ward1[" + (i+1) + "]","/root/init/init/ward[" + i + "]");
  41. }
  42. model.setValue("/root/init/A0017list", "N");
  43. model.setValue("/root/init/baseflaglist", "N");
  44. model.setValue("/root/init/deptcdList", getUserInfo("dutplcecd"));
  45. fmthdChange("mthdcd"); //용법코드 조회 후 콤보박스에 저장
  46. fDeptSerch(); //투약시간기준관리(부서별)
  47. //------------------------------------
  48. // superuser id인 경우
  49. // 추후 superuser ID로 변경될 예정
  50. //------------------------------------
  51. //1. 투약기준시간관리
  52. var userid = getUserId();
  53. var btnActiveFlag = true;
  54. //------------------------------------(20080811)
  55. //권한 정해지면 다시 작업함 일단 전체 품
  56. //-------(20080912) 소경화 선생님 ID
  57. //db화 해야 할것 같음(간호공통에 등록해야할것 같음)
  58. //alert(userid);
  59. //-------------------------------------------------(20081208)
  60. //프로그램사용권한으로 막는다고 정의함(20081208) 따라서 사용자로는 막지 않음
  61. //즉, 모든 사용자가 슈퍼유저임
  62. //if(userid == "96030294" || userid == "DEV503") {
  63. //
  64. if(getScreenMenuParameter() == "SU") {
  65. btnActiveFlag = false; //superuser 만 버튼 사용가능
  66. } else {
  67. btnActiveFlag = true;
  68. }
  69. //} else {
  70. // //투약기준시간관리
  71. // cmb_dept.disabled = true // super user id 가 아니면 부서콤보를 고정시킴
  72. // cmb_dept.value = getUserInfo("dutplcecd"); // super user id 가 아니면 부서정보를 로그인자 정보로 설정한다.
  73. //
  74. // //수액기준시간관리
  75. // cmb_sapdept.disabled= true // super user id 가 아니면 부서콤보를 고정시킴
  76. // cmb_sapdept.value = getUserInfo("dutplcecd"); // super user id 가 아니면 부서정보를 로그인자 정보로 설정한다.
  77. //
  78. // messageBox("슈퍼 유저가 아니므로 부서정보를 변경할수 없습니다. " +
  79. // getUserInfo("dutplcenm") + "(" + getUserInfo("dutplcecd") + ")" ,"E999");
  80. //}
  81. //-------------------------------------------------(20081208)
  82. //------------------------------------
  83. //test용으로 일단 전부 활성화시킴
  84. //btnActiveFlag = false
  85. btn_init.disabled = btnActiveFlag; //공통&용법 초기화버튼
  86. btn_dtimcon.disabled = btnActiveFlag; //공통&용법 적용버튼
  87. btn_mthdadd.disabled = btnActiveFlag; //공통&용법 추가버튼
  88. btn_mthddel.disabled = btnActiveFlag; //공통&용법 삭제버튼
  89. btn_mthdsave.disabled = btnActiveFlag; //공통&용법 저장버튼
  90. btn_mechcon.disabled = btnActiveFlag; //공통&약품 적용버튼
  91. btn_mechadd.disabled = btnActiveFlag; //공통&약품 추가버튼
  92. btn_mechdel.disabled = btnActiveFlag; //공통&약품 삭제버튼
  93. btn_mechsave.disabled = btnActiveFlag; //공통&약품 저장버튼
  94. // btn_deptcon.disabled = false; //부서 적용버튼
  95. // btn_deptdel.disabled = false; //부서 삭제버튼
  96. // btn_deptsave.disabled = false; //부서 저장버튼
  97. // btn_apply.disabled = false; //적용 버튼
  98. //------------------------------------
  99. model.refresh();
  100. //--------(20080514)
  101. //fMechSerch("grdclick"); //화면 open 시 공통&약품도 조회함(막음(20080520)
  102. //--------(20080519)
  103. grd_dtimList.frozenCols = grd_dtimList.colRef("direccd")+1;
  104. grd_mechList.frozenCols = grd_mechList.colRef("prcpcd")+1;
  105. grd_deptList.frozenCols = grd_deptList.colRef("direccd")+1;
  106. }
  107. /**
  108. * @group :
  109. * @ver : 2007.04.19
  110. * @by : 하재륜
  111. * @---------------------------------------------------
  112. * @type : function
  113. * @access : public
  114. * @desc : 용법코드 조회 후 콤보박스에 저장
  115. * @param : direccd
  116. * @return : mthdcd
  117. * @---------------------------------------------------
  118. */
  119. function fmthdChange(flg){
  120. cmb_deptBaseflg.value = cmb_baseflg.value;
  121. var direccd = model.getValue("/root/init/A0017list");
  122. var mthdcd = model.getValue("/root/init/mthdcdlist");
  123. model.removenode("/root/send");
  124. model.makeValue("/root/send/direccd", direccd);
  125. model.makeValue("/root/send/mthdcd", mthdcd);
  126. if(flg=="mthdcd") {
  127. model.removenode("/root/init/mthdcdlist");
  128. model.setValue("/root/init/mthdcdlist_1/basecnt","");
  129. model.makeValue("/root/send/flg", "mthdcd");
  130. submit("TRMNR07501"); //용법구분에 따른 용법코드추출
  131. //용법구분과 공통&약품과는 관계가 없다.(20080520이전) ==> 관계있음(20080520)
  132. model.removenodeset("/root/main/picmmech/picmmechList");
  133. fSearch();// 용법별 조회
  134. }else if(flg=="basecnt"){
  135. fSearch();// 용법별 조회
  136. //용법과 약품코드는 관계가 없으므로 조회기능을 막는다.(20080519)
  137. fMechSerch("direccd");// 약품코드별 조회
  138. }
  139. }
  140. /**
  141. * @group :
  142. * @ver : 2007.04.19
  143. * @by : 하재륜
  144. * @---------------------------------------------------
  145. * @type : function
  146. * @access : public
  147. * @desc : 기준시간관리 저장(공통/용법)
  148. * 단일 저장
  149. * @param :
  150. * @return :
  151. * @---------------------------------------------------
  152. */
  153. function fDtimSave() {
  154. var cnt = grd_dtimList.rows - 1;
  155. var chkcnt = 0;
  156. var rowstatus = "";
  157. var direccd = "";
  158. var baseflag = "";
  159. var exectims = "";
  160. var drugtmspec = "";
  161. var drugtmspecspl = "";
  162. var drugtmspeccal = "";
  163. var drugtmspeccalspl = "";
  164. var comyn = "";
  165. var grpno = "";
  166. var prcpcd = "";
  167. var deptcd = "";
  168. //공통&용법 그리드 check row 체크
  169. for(var i = 1 ;i <= cnt ; i++){
  170. if((model.getValue("/root/main/mnrmdtim/mnrmdtimList["+i+"]/status"))=="true"){
  171. chkcnt++;
  172. }
  173. }
  174. if(chkcnt < 1){
  175. messageBox("저장할 항목을 ","C002");
  176. return;
  177. }
  178. var sData = fSaveHeader();
  179. for(var i = 1; i <= cnt; i++){
  180. rowstatus = grd_dtimList.rowstatus(i);
  181. //1:insert 2:update 3:insert&new : (20080517)
  182. if(rowstatus == "1" || rowstatus == "3" || rowstatus == "2" ){
  183. direccd = model.getValue(xDtimList + "[" + i + "]/direccd");
  184. baseflag = model.getValue(xDtimList + "[" + i + "]/baseflag");
  185. exectims = model.getValue(xDtimList + "[" + i + "]/exectims");
  186. drugtmspec = model.getValue(xDtimList + "[" + i + "]/drugtmspec");
  187. drugtmspecspl = drugtmspec.split(" ");
  188. drugtmspeccal = model.getValue(xDtimList + "[" + i + "]/drugtmspeccal");
  189. drugtmspeccalspl = drugtmspeccal.split(" ");
  190. comnyn = model.getValue(xDtimList + "[" + i + "]/comnyn");
  191. grpno = model.getValue(xDtimList + "[" + i + "]/grpno");
  192. //----------------------------------------------------------------------------------
  193. //등록또는 수정시 서버로직에서 삭제후 신규등록으로 처리(기준시간(pk)이 변경될수가 있으므로)
  194. //row가 다르면 일련번호가 1부터 시작
  195. //----------------------------------------------------------------------------------
  196. for(var j = 0; j < exectims; j++){
  197. sData += direccd + "▦"; // 용법코드
  198. sData += "ALL" + "▦"; // 처방코드
  199. sData += "ALL" + "▦"; // 부서코드
  200. sData += (j+1) + "▦"; // 일련번호
  201. sData += baseflag + "▦"; // 기준구분
  202. sData += drugtmspecspl[j] + "▦"; // 지정시간
  203. sData += parseInt(drugtmspeccalspl[j] / 2400) + "▦"; // 기준일수
  204. sData += drugtmspeccalspl[j] + "▦"; // 실제시간
  205. sData += exectims + "▦"; // 수행횟수
  206. sData += comnyn + "▦"; // 기본값여부
  207. sData += drugtmspec + "▦"; // 투여시간text표시
  208. sData += drugtmspeccal + "▦"; // 투여시간text표시(24시간 기준)
  209. sData += grpno + "▦"; // 그룹번호(20080515)
  210. sData += "fDtimSave" + "▩"; // 코드구분자
  211. }
  212. chkcnt++
  213. }
  214. }
  215. if(chkcnt == 0){
  216. messageBox("저장할 항목을 ","C002");
  217. return;
  218. }
  219. model.removenode("/root/send");
  220. model.makeValue("/root/send/sData", sData );
  221. //------------------test
  222. submit("TXMNR07501");
  223. //model.setValue("/root/init/mthdcdlist", "");
  224. fSearch(); //공통&용법 조회
  225. }
  226. function fDtimSave_OLD(){
  227. var apnttm;
  228. var basedayno;
  229. var orgtm;
  230. var baseflag = model.getValue("/root/init/A0017list");
  231. var direccd = model.getValue("/root/init/mthdcdlist");
  232. var exectims = model.getValue("/root/init/mthdcdlist_1/basecnt");
  233. var comnyn = model.getValue("/root/hidden/comnyn");
  234. var drugtmspec = "";//투여시간 text 형시으로 표시
  235. var drugtmspeccal = "";//투여시간 text 형시으로 표시(익일시간 추가)
  236. if(baseflag == ""){
  237. messageBox("기준구분을 ","C002");
  238. return;
  239. }
  240. if(direccd == ""){
  241. messageBox("용법종류를 ","C002");
  242. return;
  243. }
  244. if(exectims == ""){
  245. messageBox("투약회수를 ","C002");
  246. return;
  247. }
  248. var time = "";
  249. var day = "";
  250. drugtmspec = "";
  251. for (var i=1 ; i<=exectims ; i++){
  252. time = grd_mnrmdtim.valueMatrix(1,i);
  253. day = grd_mnrmdtim.valueMatrix(2,i);
  254. if(i != 1) {
  255. drugtmspec += " ";
  256. drugtmspeccal += " ";
  257. }
  258. if(day == "0" || day == ""){
  259. drugtmspec += time;
  260. drugtmspeccal += time;
  261. }else{
  262. drugtmspec += time;
  263. time = (Number(time) + Number(day) * 2400);
  264. drugtmspeccal += Number(time);
  265. }
  266. }
  267. var sData = "";
  268. //헤드
  269. sData = "direccd"; // 용법코드
  270. sData += "▦prcpcd"; // 처방코드
  271. sData += "▦deptcd"; // 부서코드
  272. sData += "▦seqno"; // 일련번호
  273. sData += "▦baseflag"; // 기준구분
  274. sData += "▦apnttm"; // 지정시간
  275. sData += "▦basedayno"; // 기준일수
  276. sData += "▦orgtm"; // 실제시간
  277. sData += "▦exectims"; // 수행횟수
  278. sData += "▦comnyn"; // 공통여부
  279. sData += "▦drugtmspec"; // 투여시간text표시
  280. sData += "▦drugtmspeccal"; // 코드구분자
  281. sData += "▦flg"; // 투여시간text표시(24시간 기준)
  282. sData += "▩"; // Record(Row) 분리기호
  283. for(var i=1 ; i<=exectims ; i++){
  284. apnttm = grd_mnrmdtim.valueMatrix(1,i);
  285. basedayno = grd_mnrmdtim.valueMatrix(2,i);
  286. if(basedayno == "") {
  287. basedayno = "0";
  288. orgtm = apnttm;
  289. }else if(basedayno == "0"){
  290. orgtm = apnttm;
  291. }else if(basedayno == "1"){
  292. orgtm = Number(apnttm) + 2400;
  293. }else{}
  294. orgtm = fCarec_GetFillZeno(orgtm,4,0);
  295. if(!((grd_mnrmdtim.valueMatrix(2,i) == "") ||(grd_mnrmdtim.valueMatrix(2,i) == "0")||(grd_mnrmdtim.valueMatrix(2,i) == "1"))){
  296. messageBox("Day 항목은 0 또는 1 만 ","C001");
  297. return;
  298. }
  299. //data
  300. sData += direccd +"▦";
  301. sData += "ALL" +"▦";
  302. sData += "ALL" +"▦";
  303. sData += i +"▦";
  304. sData += baseflag +"▦";
  305. sData += apnttm +"▦";
  306. sData += basedayno +"▦";
  307. sData += orgtm +"▦";
  308. sData += exectims +"▦";
  309. sData += comnyn +"▦";
  310. sData += drugtmspec +"▦";
  311. sData += drugtmspeccal+"▦";
  312. sData += "fDtimSave" +"▩";
  313. }
  314. model.removenode("/root/send");
  315. model.makeValue("/root/send/sData" ,sData );
  316. submit("TXMNR07501");
  317. model.setValue("/root/init/mthdcdlist", "");
  318. fSearch();
  319. }
  320. /**
  321. * @group :
  322. * @ver : 2007.04.19
  323. * @by : 하재륜
  324. * @---------------------------------------------------
  325. * @type : function
  326. * @access : public
  327. * @desc : 기준시간 저장을 위한 header
  328. * @param :
  329. * @return :
  330. * @---------------------------------------------------
  331. */
  332. function fSaveHeader() {
  333. var sData = "";
  334. sData = ""
  335. sData += "direccd" ;// 용법코드
  336. sData += "▦prcpcd" ;// 처방코드
  337. sData += "▦deptcd" ;// 부서코드
  338. sData += "▦seqno" ;// 일련번호
  339. sData += "▦baseflag" ;// 기준구분
  340. sData += "▦apnttm" ;// 지정시간
  341. sData += "▦basedayno" ;// 기준일수
  342. sData += "▦orgtm" ;// 실제시간
  343. sData += "▦exectims" ;// 수행횟수
  344. sData += "▦comnyn" ;// 공통여부
  345. sData += "▦drugtmspec" ;// 투여시간text표시
  346. sData += "▦drugtmspeccal" ;// 투여시간text표시(24시간 기준)
  347. sData += "▦grpno" ;// 그룹번호(20080515)
  348. sData += "▦flg" ;// 코드구분자
  349. sData += "▩" ;// Record(Row) 분리기호
  350. return sData;
  351. }
  352. /**
  353. * @group :
  354. * @ver : 2007.04.27
  355. * @by : 하재륜
  356. * @---------------------------------------------------
  357. * @type : function
  358. * @access : public
  359. * @desc : 투약시간기준관리(용법별)
  360. * @param :
  361. * @param :
  362. * @return :
  363. * @---------------------------------------------------
  364. */
  365. function fSearch(){
  366. var direccd = model.getValue("/root/init/mthdcdlist");
  367. if(direccd == "") direccd = "%";
  368. for (var i=1 ; i<=13 ; i++){
  369. grd_mnrmdtim.valueMatrix(1,i) = "";
  370. grd_mnrmdtim.valueMatrix(2,i) = "";
  371. }
  372. model.removenodeset("/root/main/mnrmdtim/mnrmdtimList");
  373. model.removenode("/root/send");
  374. model.makeValue("/root/send/baseflag", model.getValue("/root/init/A0017list"));
  375. model.makeValue("/root/send/direccd",direccd);
  376. submit("TRMNR07504");
  377. grd_dtimList.clearStatus();
  378. grd_dtimList.refresh();
  379. }
  380. /**
  381. * @group :
  382. * @ver : 2007.04.27
  383. * @by : 하재륜
  384. * @---------------------------------------------------
  385. * @type : function
  386. * @access : public
  387. * @desc : 투약시간기준관리(약품코드별)
  388. * @param :
  389. * @param :
  390. * @return :
  391. * @---------------------------------------------------
  392. */
  393. function fMechSerch(gubun){
  394. model.removenodeset("/root/main/picmmech/picmmechList");
  395. model.removenode("/root/send");
  396. model.makeValue("/root/send/baseflag", model.getValue("/root/init/A0017list"));
  397. if (gubun=="direccd"){
  398. var direccd = model.getValue("/root/init/mthdcdlist");
  399. model.makeValue("/root/send/direccd",direccd);
  400. }else if(gubun=="grdclick"){
  401. //공통 용법이 변경되면 공통 약품이 변경된어야 한다.
  402. var direccd = grd_dtimList.valueMatrix(grd_dtimList.row, 1);
  403. var direccd = grd_dtimList.valueMatrix(grd_dtimList.row, grd_dtimList.colRef("direccd") );
  404. model.makeValue("/root/send/direccd",direccd);
  405. }
  406. submit("TRMNR07505");
  407. grd_mechList.clearStatus();
  408. grd_mechList.refresh();
  409. }
  410. /**
  411. * @group :
  412. * @ver : 2007.05.08
  413. * @by : 하재륜
  414. * @---------------------------------------------------
  415. * @type : function
  416. * @access : public
  417. * @desc : 투약시간기준관리(약품코드별) 적용
  418. * @param :
  419. * @param :
  420. * @return :
  421. * @---------------------------------------------------
  422. */
  423. function fMechApply(){
  424. var pGrdmnrmdtim = grd_mnrmdtim; //설정입력그리드
  425. var pPathmnrmdtim = "/root/main/dtiminfo/dtim"; //설정입력그리드 path
  426. var pGrdmechList = grd_mechList; //설정반영그리드
  427. var pPathmechList = "/root/main/picmmech/picmmechList"; //설정반영그리드 path
  428. //체크
  429. // if(pGrdmnrmdtim.rows < 3){
  430. // messageBox("공통투약시간에 설정되지않았습니다.","E999");
  431. // return;
  432. // }
  433. if(model.getValue("/root/init/mthdcdlist_1/basecnt") == ""){
  434. messageBox("공통투약시간에 설정되지않았습니다.","E999");
  435. return;
  436. }
  437. if(pGrdmechList.row < 1){
  438. return;
  439. }
  440. //---------------------------------
  441. // 투약시간 설정값 추출
  442. //---------------------------------
  443. var drugtmspec = "";; //투여시간 text 형시으로 표시(화면용)
  444. var drugtmspeccal = ""; //투여시간 text 형시으로 표시(자료용)(24시간기준)
  445. var day = "";
  446. //var dtim_tims = model.getValue(pPathdtimList + "[" + pGrdtimList.row + "]/exectims"); //투약회수
  447. var dtim_tims = model.getValue("/root/init/mthdcdlist_1/basecnt"); //투약회수
  448. //설정입력그리드를 돌면서 시간(n row)을 한줄의 텍스트로 만듬
  449. for (var i = 1 ; i <= dtim_tims ; i++){
  450. time = pGrdmnrmdtim.valueMatrix(1,i);
  451. day = pGrdmnrmdtim.valueMatrix(2,i);
  452. if(time.length != 4){
  453. messageBox("시간은 4자리를","C001");
  454. return;
  455. }
  456. if(i != 1) {
  457. drugtmspec += " ";
  458. drugtmspeccal += " ";
  459. }
  460. drugtmspec += fCarec_GetFillZeno(time,4,0);
  461. drugtmspeccal += fCarec_GetFillZeno((Number(time) + Number(day) * 2400),4,0);
  462. }
  463. //-----------------------------------------------
  464. //설정반영그리드에 반영
  465. //신규가 아니면 수정으로 처리한다.(20080519)
  466. //-----------------------------------------------
  467. var rowstatus = pGrdmechList.rowstatus(pGrdmechList.row);
  468. if (rowstatus == "1" || rowstatus == "3") {
  469. } else {
  470. pGrdmechList.rowstatus(pGrdmechList.row) = "2"; //수정으로상태변경
  471. }
  472. model.setValue(pPathmechList + "[" + pGrdmechList.row + "]/status", "true" ); //check
  473. model.setValue(pPathmechList + "[" + pGrdmechList.row + "]/exectims", dtim_tims ); //투여회수
  474. model.setValue(pPathmechList + "[" + pGrdmechList.row + "]/drugtmspec", drugtmspec ); //투약시간
  475. model.setValue(pPathmechList + "[" + pGrdmechList.row + "]/drugtmspeccal", drugtmspeccal ); //투약시간
  476. rdo_comnyn.disabled = true; //공통&약품인 경우는 무조건 'Y'이므로 수정할수 없다.
  477. model.refresh();
  478. }
  479. function fMechApply_OLD(){
  480. if(grd_mechList.row<1){
  481. return;
  482. }
  483. var cnt = grd_mechList.rows-1;
  484. var chkcnt =0;
  485. for(var i=1 ;i <= cnt ; i++){
  486. if((model.getValue("/root/main/picmmech/picmmechList[" + i + "]/status"))=="true"){
  487. chkcnt++;
  488. }
  489. }
  490. if(chkcnt<1){
  491. messageBox("적용할 항목을 ","C002");
  492. return;
  493. }
  494. var direccd = model.getValue("/root/init/mthdcdlist");
  495. var exectims = model.getValue("/root/init/mthdcdlist_1/basecnt");
  496. var drugtmspec = ""; //투여시간 text 형시으로 표시
  497. var drugtmspeccal = ""; //투여시간 text 형시으로 표시(24시간기준)
  498. var time = "";
  499. var day = "";
  500. for (var i=1 ; i<=exectims ; i++){
  501. if(i==1){
  502. drugtmspec = grd_mnrmdtim.valueMatrix(1,i);
  503. }else{
  504. drugtmspec = drugtmspec + " " + grd_mnrmdtim.valueMatrix(1,i);
  505. }
  506. }
  507. for (var i=1 ; i <= exectims ; i++){
  508. time = grd_mnrmdtim.valueMatrix(1,i);
  509. day = grd_mnrmdtim.valueMatrix(2,i);
  510. if(i != 1) {
  511. drugtmspeccal += " ";
  512. }
  513. if(day == "0" || day == ""){
  514. drugtmspeccal += time;
  515. }else{
  516. time = (Number(time) + Number(day) * 2400);
  517. drugtmspeccal += Number(time);
  518. }
  519. }
  520. for(var i=1 ;i <= cnt ; i++){
  521. if((model.getValue("/root/main/picmmech/picmmechList["+i+"]/status")) == "true"){
  522. model.setValue("/root/main/picmmech/picmmechList["+i+"]/direccd", direccd );
  523. model.setValue("/root/main/picmmech/picmmechList["+i+"]/exectims", exectims );
  524. model.setValue("/root/main/picmmech/picmmechList["+i+"]/drugtmspec", drugtmspec );
  525. model.setValue("/root/main/picmmech/picmmechList["+i+"]/drugtmspeccal", drugtmspeccal );
  526. }
  527. }
  528. for(var j=1 ;j < grd_dtimList.rows ; j++){
  529. model.setValue("/root/main/mnrmdtim/mnrmdtimList["+j+"]/status", "");
  530. }
  531. model.refresh();
  532. }
  533. /**
  534. * @group :
  535. * @ver : 2007.04.17
  536. * @by : 하재륜
  537. * @---------------------------------------------------
  538. * @type : function
  539. * @access : public
  540. * @desc : 기준시간 삭제
  541. * @param : dtim : 용법별 , mech : 약품코드별 , dept : 부서별
  542. * @param :
  543. * @return :
  544. * @---------------------------------------------------
  545. */
  546. function fDtimDelete(gubun) {
  547. var cntrows ;
  548. var chkcnt = 0;
  549. var xpathDtim;
  550. //삭제 버튼 구분
  551. if(gubun=="dtim"){// 용법별
  552. cntrows = grd_dtimList.rows-1;
  553. xpathGubun = "/root/main/mnrmdtim/mnrmdtimList";
  554. }else if(gubun=="mech"){// 약품코드별
  555. cntrows = grd_mechList.rows-1;
  556. xpathGubun = "/root/main/picmmech/picmmechList";
  557. }else if(gubun=="dept"){// 부서별
  558. cntrows = grd_deptList.rows-1;
  559. xpathGubun = "/root/main/deptdtim/deptdtimList";
  560. }
  561. var chkstatus ;
  562. for(var i=0 ;i <= cntrows ; i++){
  563. chkstatus = model.getValue(xpathGubun+"["+i+"]/status");
  564. if(chkstatus =="true"){
  565. chkcnt = chkcnt+1;
  566. }
  567. }
  568. if(chkcnt < 1){
  569. messageBox("삭제할 항목을 ","C002");
  570. return;
  571. }
  572. var sData = "";
  573. sData = "";
  574. sData += "direccd" ;// 용법코드
  575. sData += "▦prcpcd" ;// 처방코드
  576. sData += "▦deptcd" ;// 부서코드
  577. sData += "▦baseflag" ;// 기준구분
  578. sData += "▦exectims" ;// 수행횟수
  579. sData += "▦flg" ;// 코드구분자
  580. sData += "▦grpno" ;// 그룹번호
  581. sData += "▩" ;// Record(Row) 분리기호
  582. var direccd = "";
  583. var prcpcd = "";
  584. var deptcd = "";
  585. var baseflag = "";
  586. var exectims = "";
  587. var grpno = "";
  588. var delcnt = 0; //삭제건수 여부
  589. var pGrd;
  590. for(var i=1 ;i <= cntrows ; i++){
  591. chkstatus = model.getValue(xpathGubun+"[" + i +"]/status");
  592. if (chkstatus =="true"){
  593. if(gubun == "dtim"){
  594. pGrd = grd_dtimList; //공통&용법별조회
  595. }else if(gubun == "mech"){
  596. pGrd = grd_mechList; //공통&약품코드별조회
  597. }else if(gubun == "dept"){
  598. pGrd = grd_deptList; //부서&(용법||약품)별조회
  599. }else{}
  600. //상태체크
  601. // var rowstatus = pGrd.rowstatus(i);
  602. // if(rowstatus == "1" || rowstatus == "3") {
  603. //// pGrd.deleteRow(i); //신규row는 그냥 삭제함 , 넘어가고 재조회시 없어짐
  604. // } else {
  605. direccd = model.getValue(xpathGubun+"["+i+"]/direccd");
  606. prcpcd = model.getValue(xpathGubun+"["+i+"]/prcpcd");
  607. deptcd = model.getValue(xpathGubun+"["+i+"]/deptcd");
  608. baseflag = model.getValue(xpathGubun+"["+i+"]/baseflag");
  609. exectims = model.getValue(xpathGubun+"["+i+"]/exectims");
  610. grpno = model.getValue(xpathGubun+"["+i+"]/grpno");
  611. //if (direccd == "" || direccd == "ALL") {
  612. // sData += "ALL" + "▦";
  613. //} else {
  614. sData += direccd + "▦";
  615. //}
  616. if (prcpcd == "" || prcpcd == "ALL") {
  617. sData += "ALL" + "▦";
  618. } else {
  619. sData += prcpcd + "▦";
  620. }
  621. if (deptcd == "" || deptcd == "ALL") {
  622. sData += "ALL" + "▦";
  623. } else {
  624. sData += deptcd + "▦";
  625. }
  626. sData += baseflag + "▦";
  627. sData += exectims + "▦";
  628. sData += "fDtimDelete" + "▦";
  629. sData += grpno + "▩";
  630. /*
  631. sData += model.getValue(xpathGubun+"["+i+"]/direccd") + "▦";
  632. if(gubun=="dept"){
  633. if((model.getValue(xpathGubun+"["+i+"]/prcpcd"))=="" ) {
  634. sData += "ALL" + "▦";
  635. }else
  636. sData += model.getValue(xpathGubun+"["+i+"]/prcpcd") + "▦";
  637. }else{
  638. sData += model.getValue(xpathGubun+"["+i+"]/prcpcd") + "▦";
  639. }
  640. sData += model.getValue(xpathGubun+"["+i+"]/deptcd") + "▦";
  641. sData += model.getValue(xpathGubun+"["+i+"]/baseflag") + "▦";
  642. sData += model.getValue(xpathGubun+"["+i+"]/exectims") + "▦";
  643. sData += "fDtimDelete" + "▦";
  644. sData += "" + "▩";
  645. */
  646. delcnt += 1; //삭제건수 증가
  647. // }
  648. }
  649. }
  650. // //삭제건수 체크
  651. // if (delcnt <= 0) return;
  652. model.removenode("/root/send");
  653. model.makeValue("/root/send/sData", sData );
  654. //-------------(test)
  655. //return;
  656. submit("TXMNR07501");
  657. if(gubun == "dtim"){
  658. fSearch(); //공통&용법별조회
  659. }else if(gubun == "mech"){
  660. fMechSerch("direccd"); //공통&약품코드별조회
  661. }else if(gubun == "dept"){
  662. fDeptSerch(); //부서&(용법||약품)별조회
  663. }else{}
  664. }
  665. function fDtimDelete_OLD(gubun) {
  666. var cnt ;
  667. var chkcnt = 0;
  668. var xpathDtim;
  669. //삭제 버튼 구분
  670. if(gubun=="dtim"){// 용법별
  671. cnt = grd_dtimList.rows-1;
  672. xpathGubun = "/root/main/mnrmdtim/mnrmdtimList";
  673. }else if(gubun=="mech"){// 약품코드별
  674. cnt = grd_mechList.rows-1;
  675. xpathGubun = "/root/main/picmmech/picmmechList";
  676. }else if(gubun=="dept"){// 부서별
  677. cnt = grd_deptList.rows-1;
  678. xpathGubun = "/root/main/deptdtim/deptdtimList";
  679. }
  680. for(var i=1 ;i <= cnt ; i++){
  681. if((model.getValue(xpathGubun+"["+i+"]/status"))=="true"){
  682. chkcnt = chkcnt+1;
  683. }
  684. }
  685. if(chkcnt < 1){
  686. messageBox("삭제할 항목을 ","C002");
  687. return;
  688. }
  689. var sData = "direccd" ;// 용법코드
  690. sData += "▦prcpcd" ;// 처방코드
  691. sData += "▦deptcd" ;// 부서코드
  692. sData += "▦baseflag" ;// 기준구분
  693. sData += "▦exectims" ;// 수행횟수
  694. sData += "▦flg" ;// 코드구분자
  695. sData += "▩" ;// Record(Row) 분리기호
  696. for(var i=1 ;i <= cnt ; i++){
  697. if ((model.getValue(xpathGubun+"["+i+"]/status"))=="true"){
  698. sData += model.getValue(xpathGubun+"["+i+"]/direccd") + "▦";
  699. if(gubun=="dept"){
  700. if((model.getValue(xpathGubun+"["+i+"]/prcpcd"))=="" ) {
  701. sData += "ALL" +"▦";
  702. }else
  703. sData += model.getValue(xpathGubun+"["+i+"]/prcpcd") + "▦";
  704. }else{
  705. sData += model.getValue(xpathGubun+"["+i+"]/prcpcd") + "▦";
  706. }
  707. sData += model.getValue(xpathGubun+"["+i+"]/deptcd") + "▦";
  708. sData += model.getValue(xpathGubun+"["+i+"]/baseflag") + "▦";
  709. sData += model.getValue(xpathGubun+"["+i+"]/exectims") + "▦";
  710. sData += "fDtimDelete" + "▩";
  711. }
  712. }
  713. model.removenode("/root/send");
  714. model.makeValue("/root/send/sData", sData );
  715. submit("TXMNR07501");
  716. if(gubun == "dtim"){
  717. fSearch();//용법별 조회
  718. }else if(gubun == "mech"){
  719. fMechSerch("direccd");//약품코드별 조회
  720. }else if(gubun == "dept"){
  721. fDeptSerch();//부서별 조회
  722. }else{}
  723. }
  724. /**
  725. * @group :
  726. * @ver : 2007.04.17
  727. * @by : 하재륜
  728. * @---------------------------------------------------
  729. * @type : function
  730. * @access : public
  731. * @desc : 공통 & 약품코드별 저장
  732. * @param :
  733. * @param :
  734. * @return :
  735. * @---------------------------------------------------
  736. */
  737. function fMechSave() {
  738. var cnt = grd_mechList.rows-1;
  739. var chkcnt = 0;
  740. var rowstatus = "";
  741. var direccd = "";
  742. var baseflag = "";
  743. var exectims = "";
  744. var drugtmspec = "";
  745. var drugtmspecspl = "";
  746. var drugtmspeccal = "";
  747. var drugtmspeccalspl = "";
  748. var comyn = "";
  749. var grpno = "";
  750. var prcpcd = "";
  751. var deptcd = "";
  752. for(var i = 1 ;i <= cnt ; i++){
  753. if((model.getValue("/root/main/picmmech/picmmechList["+i+"]/status"))=="true"){
  754. if((model.getValue("/root/main/picmmech/picmmechList[" + i + "]/hngnm")) == ""){
  755. messageBox("잘못된 약품코드입니다 다시 ","C001");
  756. return;
  757. }
  758. if((model.getValue("/root/main/picmmech/picmmechList[" + i + "]/drugtmspec")) == ""){
  759. messageBox("투약시간이 적용되지 않았습니다. 다시 ","C001");
  760. return;
  761. }
  762. // if((model.getValue("/root/main/picmmech/picmmechList[" + i + "]/direccd")) == ""){
  763. // messageBox("적용버튼을 누른후 ","C001");
  764. // return;
  765. // }
  766. chkcnt++;
  767. }
  768. }
  769. if(chkcnt < 1){
  770. messageBox("저장할 항목을 ","C002");
  771. return;
  772. }
  773. var sData = fSaveHeader();
  774. for(var i = 1; i <= cnt; i++){
  775. rowstatus = grd_mechList.rowstatus(i);
  776. //1:insert 2:update 3:insert&new : (20080517)
  777. if(rowstatus == "1" || rowstatus == "3" || rowstatus == "2" ){
  778. direccd = model.getValue(xMechList + "[" + i + "]/direccd");
  779. prcpcd = model.getValue(xMechList + "[" + i + "]/prcpcd");
  780. baseflag = model.getValue(xMechList + "[" + i + "]/baseflag");
  781. //baseflag = "-";
  782. exectims = model.getValue(xMechList + "[" + i + "]/exectims");
  783. drugtmspec = model.getValue(xMechList + "[" + i + "]/drugtmspec");
  784. drugtmspecspl = drugtmspec.split(" ");
  785. drugtmspeccal = model.getValue(xMechList + "[" + i + "]/drugtmspeccal");
  786. drugtmspeccalspl = drugtmspeccal.split(" ");
  787. comnyn = "Y";
  788. grpno = model.getValue(xMechList + "[" + i + "]/grpno");
  789. //----------------------------------------------------------------------------------
  790. //등록또는 수정시 서버로직에서 삭제후 신규등록으로 처리(기준시간(pk)이 변경될수가 있으므로)
  791. //row가 다르면 일련번호가 1부터 시작
  792. //----------------------------------------------------------------------------------
  793. for(var j = 0; j < exectims; j++){
  794. //sData += "ALL" +"▦"; // 용법코드
  795. sData += direccd +"▦"; // 용법코드
  796. sData += prcpcd +"▦"; // 처방코드
  797. sData += "ALL" +"▦"; // 부서코드
  798. sData += (j+1) +"▦"; // 일련번호
  799. sData += baseflag +"▦"; // 기준구분
  800. sData += drugtmspecspl[j] +"▦"; // 지정시간
  801. sData += parseInt(drugtmspeccalspl[j] / 2400) +"▦"; // 기준일수
  802. sData += drugtmspeccalspl[j] +"▦"; // 실제시간
  803. sData += exectims +"▦"; // 수행횟수
  804. sData += comnyn +"▦"; // 기본값여부
  805. sData += drugtmspec +"▦"; // 투여시간text표시
  806. sData += drugtmspeccal +"▦"; // 투여시간text표시(24시간 기준)
  807. sData += grpno +"▦"; // 그룹번호(20080515)
  808. sData += "fDtimSave" +"▩"; // 코드구분자
  809. /*
  810. sData += grd_mechList.valueMatrix(i,3) +"▦"; // 용법코드
  811. sData += grd_mechList.valueMatrix(i,1) +"▦"; // 처방코드
  812. sData += "ALL" +"▦"; // 부서코드
  813. sData += '1' +"▦"; // 일련번호
  814. sData += model.getValue("/root/init/A0017list") +"▦"; // 기준구분
  815. sData += "" +"▦"; // 지정시간
  816. sData += "" +"▦"; // 기준일수
  817. sData += "" +"▦"; // 실제시간
  818. sData += grd_mechList.valueMatrix(i,4) +"▦"; // 수행횟수
  819. sData += model.getValue("/root/hidden/comnyn") +"▦"; // 기본값여부
  820. sData += grd_mechList.valueMatrix(i,5) +"▦"; // 투여시간text표시
  821. sData += grd_mechList.valueMatrix(i,6) +"▦"; // 투여시간text표시(24시간 기준)
  822. sData += grd_mechList.valueMatrix(i,colgrpno) +"▦"; // 그룹번호(20080515)
  823. sData += "fDtimSave" +"▩"; // 코드구분자
  824. */
  825. }
  826. chkcnt++
  827. }
  828. }
  829. if(chkcnt == 0){
  830. messageBox("저장할 항목을 ","C002");
  831. return;
  832. }
  833. model.removenode("/root/send");
  834. model.makeValue("/root/send/sData", sData );
  835. //-----------(test)
  836. //return;
  837. submit("TXMNR07501");
  838. fMechSerch("grdclick"); // 공통&약품코드별 조회
  839. }
  840. function fMechSave_OLD() {
  841. var cnt = grd_mechList.rows-1;
  842. var chkcnt =0;
  843. for(var i = 1 ;i <= cnt ; i++){
  844. if((model.getValue("/root/main/picmmech/picmmechList["+i+"]/status"))=="true"){
  845. chkcnt++;
  846. }
  847. }
  848. if(chkcnt < 1){
  849. messageBox("저장할 항목을 ","C002");
  850. return;
  851. }
  852. var sData = "direccd" ;//용법코드
  853. sData += "▦prcpcd" ;//처방코드
  854. sData += "▦deptcd" ;//부서코드
  855. sData += "▦seqno" ;//일련번호
  856. sData += "▦baseflag" ;//기준구분
  857. sData += "▦apnttm" ;//지정시간
  858. sData += "▦basedayno" ;//기준일수
  859. sData += "▦orgtm" ;//실제시간
  860. sData += "▦exectims" ;//수행횟수
  861. sData += "▦comnyn" ;//공통여부
  862. sData += "▦drugtmspec" ;//투여시간text표시
  863. sData += "▦drugtmspeccal";//투여시간text표시
  864. sData += "▦flg" ;//코드구분자
  865. sData += "▩" ;//Record(Row) 분리기호
  866. for(var i = 1; i <= cnt; i++){
  867. if((model.getValue("/root/main/picmmech/picmmechList[" + i + "]/status")) == "true"){
  868. if((model.getValue("/root/main/picmmech/picmmechList[" + i + "]/prcpcd")) == ""){
  869. messageBox("약품코드를 ","C001");
  870. return;
  871. }
  872. if((model.getValue("/root/main/picmmech/picmmechList[" + i + "]/hngnm")) == ""){
  873. messageBox("잘못된 약품코드입니다 다시 ","C001");
  874. return;
  875. }
  876. if((model.getValue("/root/main/picmmech/picmmechList[" + i + "]/direccd")) == ""){
  877. messageBox("적용버튼을 누른후 ","C001");
  878. return;
  879. }
  880. sData += grd_mechList.valueMatrix(i,3) +"▦";
  881. sData += grd_mechList.valueMatrix(i,1) +"▦";
  882. sData += "ALL" +"▦";
  883. sData += '1' +"▦";
  884. sData += model.getValue("/root/init/A0017list") +"▦";
  885. sData += "" +"▦";
  886. sData += "" +"▦";
  887. sData += "" +"▦";
  888. sData += grd_mechList.valueMatrix(i,4) +"▦";
  889. sData += model.getValue("/root/hidden/comnyn") +"▦";
  890. sData += grd_mechList.valueMatrix(i,5) +"▦";
  891. sData += grd_mechList.valueMatrix(i,6) +"▦";
  892. sData += "fDtimSave" +"▩";
  893. }
  894. }
  895. model.removenode("/root/send");
  896. model.makeValue("/root/send/sData", sData );
  897. submit("TXMNR07501");
  898. fMechSerch("direccd"); // 약품코드별 조회
  899. }
  900. /**
  901. * @group :
  902. * @ver : 2007.04.17
  903. * @by : 하재륜
  904. * @---------------------------------------------------
  905. * @type : function
  906. * @access : public
  907. * @desc : 부서별(용법 또는 약품) 저장
  908. * @param :
  909. * @param :
  910. * @return :
  911. * @---------------------------------------------------
  912. */
  913. function fDeptSave() {
  914. var cnt = grd_deptList.rows - 1;
  915. var chkcnt = 0;
  916. var rowstatus = "";
  917. var direccd = "";
  918. var baseflag = "";
  919. var exectims = "";
  920. var drugtmspec = "";
  921. var drugtmspecspl = "";
  922. var drugtmspeccal = "";
  923. var drugtmspeccalspl = "";
  924. var comyn = "";
  925. var grpno = "";
  926. var prcpcd = "";
  927. var deptcd = "";
  928. //부서&(용법 || 약품) 그리드 check row 체크
  929. for(var i = 1 ;i <= cnt ; i++){
  930. if((model.getValue("/root/main/deptdtim/deptdtimList["+i+"]/status"))=="true"){
  931. chkcnt++;
  932. }
  933. }
  934. if(chkcnt < 1){
  935. messageBox("저장할 항목을 ","C002");
  936. return;
  937. }
  938. var sData = fSaveHeader();
  939. for(var i = 1; i <= cnt; i++){
  940. rowstatus = grd_deptList.rowstatus(i);
  941. //1:insert 2:update 3:insert&new : (20080517)
  942. if(rowstatus == "1" || rowstatus == "3" || rowstatus == "2" ){
  943. direccd = model.getValue(xDeptList + "[" + i + "]/direccd");
  944. prcpcd = model.getValue(xDeptList + "[" + i + "]/prcpcd");
  945. baseflag = model.getValue(xDeptList + "[" + i + "]/baseflag");
  946. deptcd = model.getValue("/root/init/deptcdList");
  947. exectims = model.getValue(xDeptList + "[" + i + "]/exectims");
  948. drugtmspec = model.getValue(xDeptList + "[" + i + "]/drugtmspec");
  949. drugtmspecspl = drugtmspec.split(" ");
  950. drugtmspeccal = model.getValue(xDeptList + "[" + i + "]/drugtmspeccal");
  951. drugtmspeccalspl = drugtmspeccal.split(" ");
  952. comnyn = "Y"; //기본값여부 ('N'->'Y'(20080517)
  953. grpno = model.getValue(xDtimList + "[" + i + "]/grpno");
  954. //----------------------------------------------------------------------------------
  955. //등록또는 수정시 서버로직에서 삭제후 신규등록으로 처리(기준시간(pk)이 변경될수가 있으므로)
  956. //row가 다르면 일련번호가 1부터 시작
  957. //----------------------------------------------------------------------------------
  958. for(var j = 0; j < exectims; j++){
  959. //if (direccd == "") {
  960. // sData += "ALL" + "▦"; // 용법코드
  961. //} else {
  962. sData += direccd + "▦"; // 용법코드
  963. //}
  964. if (prcpcd == "") {
  965. sData += "ALL" + "▦"; // 처방코드
  966. } else {
  967. sData += prcpcd + "▦"; // 처방코드
  968. }
  969. sData += deptcd + "▦"; // 부서코드
  970. sData += (j+1) + "▦"; // 일련번호
  971. sData += baseflag + "▦"; // 기준구분
  972. sData += drugtmspecspl[j] + "▦"; // 지정시간
  973. sData += parseInt(drugtmspeccalspl[j] / 2400) + "▦"; // 기준일수
  974. sData += drugtmspeccalspl[j] + "▦"; // 실제시간
  975. sData += exectims + "▦"; // 수행횟수
  976. sData += comnyn + "▦"; // 기본값여부 ('N'->'Y'(20080517)
  977. sData += drugtmspec + "▦"; // 투여시간text표시
  978. sData += drugtmspeccal + "▦"; // 투여시간text표시(24시간 기준)
  979. sData += grpno + "▦"; // 그룹번호(20080515)
  980. sData += "fDtimSave" + "▩"; // 코드구분자
  981. }
  982. chkcnt++
  983. }
  984. }
  985. if(chkcnt == 0){
  986. messageBox("저장할 항목을 ","C002");
  987. return;
  988. }
  989. model.removenode("/root/send");
  990. model.makeValue("/root/send/sData", sData );
  991. //-------------(test)
  992. //return;
  993. submit("TXMNR07501");
  994. fDeptSerch(); // 부서(용법 || 약품코드) 조회
  995. }
  996. function fDeptSave_OLD() {
  997. var cnt = grd_deptList.rows - 1;
  998. var chkcnt = 0;
  999. var rowstatus = "";
  1000. var drugtmspec = "";
  1001. var drugtmspecspl = "";
  1002. var drugtmspeccal = "";
  1003. var drugtmspeccalspl = "";
  1004. var exectims = "";
  1005. var sData = "direccd▦" ; // 용법코드
  1006. sData += "prcpcd▦" ; // 처방코드
  1007. sData += "deptcd▦" ; // 부서코드
  1008. sData += "seqno▦" ; // 일련번호
  1009. sData += "baseflag▦" ; // 기준구분
  1010. sData += "apnttm▦" ; // 지정시간
  1011. sData += "basedayno▦" ; // 기준일수
  1012. sData += "orgtm▦" ; // 실제시간
  1013. sData += "exectims▦" ; // 수행횟수
  1014. sData += "comnyn▦" ; // 공통여부
  1015. sData += "drugtmspec▦" ; // 투여시간text표시
  1016. sData += "drugtmspeccal▦"; // 투여시간text표시(24시간 기준)
  1017. sData += "flg▩" ; // 코드구분자
  1018. for(var i = 1; i <= cnt; i++){
  1019. rowstatus = grd_deptList.rowstatus(i);
  1020. if(rowstatus == "1" || rowstatus == "3"){
  1021. exectims = model.getValue(xDeptList + "[" + i + "]/exectims");
  1022. drugtmspec = model.getValue(xDeptList + "[" + i + "]/drugtmspec");
  1023. drugtmspecspl = drugtmspec.split(" ");
  1024. drugtmspeccal = model.getValue(xDeptList + "[" + i + "]/drugtmspeccal");
  1025. drugtmspeccalspl = drugtmspeccal.split(" ");
  1026. for(var j = 0; j < exectims; j++){
  1027. sData += model.getValue(xDeptList + "[" + i + "]/direccd") + "▦";
  1028. sData += "ALL" + "▦";
  1029. sData += model.getValue("/root/init/deptcdList") + "▦";
  1030. sData += (j+1) + "▦";
  1031. sData += model.getValue(xDeptList + "[" + i + "]/baseflag") + "▦";
  1032. sData += drugtmspecspl[j] + "▦";
  1033. sData += parseInt(drugtmspeccalspl[j] / 2400) + "▦";
  1034. sData += drugtmspeccalspl[j] + "▦";
  1035. sData += exectims + "▦";
  1036. sData += "N" + "▦";
  1037. sData += drugtmspec + "▦";
  1038. sData += drugtmspeccal + "▦";
  1039. sData += "fDtimSave" + "▩";
  1040. }
  1041. chkcnt++
  1042. }
  1043. }
  1044. if(chkcnt == 0){
  1045. messageBox("저장할 항목을 ","C002");
  1046. return;
  1047. }
  1048. model.removenode("/root/send");
  1049. model.makeValue("/root/send/sData", sData );
  1050. submit("TXMNR07501");
  1051. fDeptSerch(); // 약품코드별 조회
  1052. }
  1053. /**
  1054. * @group :
  1055. * @ver : 2007.05.08
  1056. * @by : 하재륜
  1057. * @---------------------------------------------------
  1058. * @type : function
  1059. * @access : public
  1060. * @desc : 약품코드명 조회
  1061. * @param :
  1062. * @param :
  1063. * @return :
  1064. * @---------------------------------------------------
  1065. */
  1066. function fPrcpSerch(){
  1067. var calcscorcd;
  1068. var colidx1 = grd_mechList.colRef("prcpcd");
  1069. var colidx2 = grd_mechList.colRef("hngnm");
  1070. //if(grd_mechList.col==1){ (20080519)
  1071. if (grd_mechList.col == colidx1) {
  1072. //calcscorcd = grd_mechList.valueMatrix(grd_mechList.row,1);
  1073. calcscorcd = grd_mechList.valueMatrix(grd_mechList.row, colidx1);
  1074. for(var i=0 ;grd_mechList.rows-1;i++ ){
  1075. //if(calcscorcd == (grd_mechList.valueMatrix(i,1))){
  1076. if(calcscorcd == (grd_mechList.valueMatrix(i,colidx1))){
  1077. if(i == grd_mechList.row){
  1078. break;
  1079. }
  1080. messageBox("약품이 ","E006");
  1081. return;
  1082. }
  1083. }
  1084. model.removenode("/root/send");
  1085. model.makeValue("/root/send/calcscorcd", calcscorcd);
  1086. submit("TRMNR07506");
  1087. if(model.getValue("/root/hidden/mech/hngnm") == ""){
  1088. //grd_mechList.valueMatrix(grd_mechList.row,2) = "";
  1089. grd_mechList.valueMatrix(grd_mechList.row,colidx2) = "";
  1090. messageBox("조회된 약품코드가 ","I004");
  1091. }else {
  1092. //grd_mechList.valueMatrix(grd_mechList.row,2) = model.getValue("/root/hidden/mech/hngnm");
  1093. grd_mechList.valueMatrix(grd_mechList.row,colidx2) = model.getValue("/root/hidden/mech/hngnm");
  1094. }
  1095. model.refresh();
  1096. }
  1097. }
  1098. /**
  1099. * @group :
  1100. * @ver : 2007.05.08
  1101. * @by : 하재륜
  1102. * @---------------------------------------------------
  1103. * @type : function
  1104. * @access : public
  1105. * @desc : 부서별 설정에 적용
  1106. * @param :
  1107. * @param :
  1108. * @return :
  1109. * @---------------------------------------------------
  1110. */
  1111. function fDeptApply(){
  1112. var dtimrows = grd_dtimList.rows;
  1113. var mechrows = grd_mechList.rows;
  1114. var deptrows = grd_deptList.rows;
  1115. var direcd_Array = new Array;
  1116. var prcpcd_Array = new Array;
  1117. var k = 1, l = 1;
  1118. var prcpcd = "";
  1119. var direccd = "";
  1120. var exectims = "";
  1121. var dept_prcpcd = "";
  1122. var dept_direccd = "";
  1123. var dept_exectims = "";
  1124. var chk_direcd = "false";
  1125. var chk_prcpcd = "false";
  1126. var direcdcnt = 0;
  1127. var prcpcdcnt = 0;
  1128. var row = 0;
  1129. for(var i = 1; i <= dtimrows; i++){
  1130. if((model.getValue(xDtimList + "[" + i + "]/status")) == "true"){
  1131. direcd_Array[direcd_Array.length] = i;
  1132. model.setValue(xDtimList + "[" + i + "]/status", "false");
  1133. }
  1134. }
  1135. for(var j = 1; j <= mechrows; j++){
  1136. if((model.getValue(xMechList + "[" + j + "]/status")) == "true"){
  1137. prcpcd_Array[prcpcd_Array.length] = j;
  1138. model.setValue(xMechList + "[" + j + "]/status", "false");
  1139. }
  1140. }
  1141. if(direcd_Array.length + prcpcd_Array.length == 0){
  1142. messageBox("적용할 항목을 ","C002");
  1143. return;
  1144. }
  1145. //용법코드별 적용
  1146. for(k = 0; k < direcd_Array.length; k++){
  1147. direccd = model.getValue(xDtimList + "[" + direcd_Array[k] + "]/direccd");
  1148. exectims = model.getValue(xDtimList + "[" + direcd_Array[k] + "]/exectims");
  1149. //부서별 초기값설정 그리드 약품코드 중복체크
  1150. for(l = 1; l < deptrows; l++){
  1151. dept_prcpcd = model.getValue(xDeptList + "[" + l + "]/prcpcd");
  1152. dept_direccd = model.getValue(xDeptList + "[" + l + "]/direccd");
  1153. dept_exectims = model.getValue(xDeptList + "[" + l + "]/exectims");
  1154. if(dept_prcpcd == "" && direccd == dept_direccd && exectims == dept_exectims){
  1155. messageBox(direccd + "용법이 ","E006");
  1156. chk_direcd = "true";
  1157. }
  1158. }
  1159. if(chk_direcd == "false"){
  1160. direcdcnt++;
  1161. grd_deptList.addrow(false);
  1162. row = grd_deptList.rows-1;
  1163. model.copynode(xDeptList + "[" + row + "]", xDtimList + "[" + direcd_Array[k] + "]");
  1164. model.makeValue(xDeptList + "[" + row + "]/prcpcd", "");
  1165. model.makeValue(xDeptList + "[" + row + "]/hngnm", ""); //--(20081117)
  1166. model.makeValue(xDeptList + "[" + row + "]/status", "");
  1167. model.makeValue(xDeptList + "[" + row + "]/comnyn", "Y");
  1168. }
  1169. chk_direcd = "false";
  1170. }
  1171. //약품코드별 적용
  1172. //alert ( prcpcd_Array.length ) ;
  1173. for(k = 0; k < prcpcd_Array.length; k++){
  1174. prcpcd = model.getValue(xMechList + "[" + prcpcd_Array[k] + "]/prcpcd");
  1175. exectims = model.getValue(xMechList + "[" + prcpcd_Array[k] + "]/exectims");
  1176. //부서별 초기값설정 그리드 약품코드 중복체크
  1177. for(l = 1; l <= deptrows; l++){
  1178. dept_prcpcd = model.getValue(xDeptList + "[" + l + "]/prcpcd");
  1179. dept_direccd = model.getValue(xDeptList + "[" + l + "]/direccd");
  1180. dept_exectims = model.getValue(xDeptList + "[" + l + "]/exectims");
  1181. if(dept_direccd == "" && prcpcd == dept_prcpcd && exectims == dept_exectims){
  1182. messageBox(prcpcd + "약품이 ","E006");
  1183. chk_prcpcd = "true";
  1184. }
  1185. }
  1186. if(chk_prcpcd == "false"){
  1187. prcpcdcnt++;
  1188. grd_deptList.addrow(false);
  1189. row = grd_deptList.rows-1;
  1190. model.copynode(xDeptList + "[" + row + "]", xMechList + "[" + prcpcd_Array[k] + "]");
  1191. //model.makeValue(xDeptList + "[" + row + "]/direccd", "");
  1192. model.makeValue(xDeptList + "[" + row + "]/status", "");
  1193. model.makeValue(xDeptList + "[" + row + "]/comnyn", "Y");
  1194. }
  1195. chk_prcpcd = "false";
  1196. }
  1197. grd_deptList.refresh();
  1198. }
  1199. /**
  1200. * @group :
  1201. * @ver : 2007.05.09
  1202. * @by : 하재륜
  1203. * @---------------------------------------------------
  1204. * @type : function
  1205. * @access : public
  1206. * @desc : 부서별 리스트 클릭시
  1207. * @param :
  1208. * @param :
  1209. * @return :
  1210. * @---------------------------------------------------
  1211. */
  1212. function fDeptListClick(){
  1213. var row = grd_deptList.row;
  1214. if(grd_deptList.col != 0){
  1215. //그리드 초기화
  1216. for (var i=1 ; i<=13 ; i++){
  1217. grd_deptdtim.valueMatrix(1,i)="";
  1218. grd_deptdtim.valueMatrix(2,i)="";
  1219. }
  1220. var exectims = model.getValue("/root/main/deptdtim/deptdtimList[" + row + "]/exectims");
  1221. var timscount = model.getValue("/root/main/deptdtim/deptdtimList[" + row + "]/drugtmspec");
  1222. var timscountextt = model.getValue("/root/main/deptdtim/deptdtimList[" + row + "]/drugtmspeccal");
  1223. var prcpcd = model.getValue("/root/main/deptdtim/deptdtimList[" + row + "]/prcpcd");
  1224. var direccd = model.getValue("/root/main/deptdtim/deptdtimList[" + row + "]/direccd");
  1225. for(var i= 1 ; i< 13 ;i++){
  1226. grd_deptdtim.colHidden(i) = true;
  1227. }
  1228. for(var i= 1 ; i<= exectims ;i++){
  1229. grd_deptdtim.colHidden(i) = false; //그리드 활성화
  1230. }
  1231. var array_timscount = timscount.split(" ");
  1232. var array_timscounpartextt = timscountextt.split(" ");
  1233. var cnt = array_timscount.length;
  1234. dept_tims = exectims;
  1235. dept_prcpcd = prcpcd;
  1236. dept_direccd = direccd;
  1237. for(var i = 0; i < cnt; i++){
  1238. var a = array_timscount[i];
  1239. var b = array_timscounpartextt[i];
  1240. grd_deptdtim.valueMatrix(1,i+1) = a;
  1241. grd_deptdtim.valueMatrix(2,i+1) = parseInt(b/2400);
  1242. }
  1243. }
  1244. }
  1245. /**
  1246. * @group :
  1247. * @ver : 2007.05.09
  1248. * @by : 하재륜
  1249. * @---------------------------------------------------
  1250. * @type : function
  1251. * @access : public
  1252. * @desc : 투약시간기준관리(부서별)
  1253. * @param :
  1254. * @param :
  1255. * @return :
  1256. * @---------------------------------------------------
  1257. */
  1258. function fDeptSerch(){
  1259. cmb_baseflg.value = cmb_deptBaseflg.value;
  1260. var deptcd = model.getValue("/root/init/deptcdList");
  1261. var baseflaglist = model.getValue("/root/init/baseflaglist");
  1262. if(baseflaglist == ""){
  1263. baseflaglist = "%";
  1264. }
  1265. model.removenode("/root/main/deptdtim");
  1266. model.removenode("/root/send");
  1267. model.makeValue("/root/send/baseflag", baseflaglist);
  1268. model.makeValue("/root/send/deptcd", deptcd);
  1269. submit("TRMNR07507");
  1270. grd_deptList.clearStatus();
  1271. grd_deptList.refresh();
  1272. }
  1273. /**
  1274. * @group :
  1275. * @ver : 2007.05.08
  1276. * @by : 하재륜
  1277. * @---------------------------------------------------
  1278. * @type : function
  1279. * @access : public
  1280. * @desc : 투약시간기준관리(부서별) 적용
  1281. * @param :
  1282. * @param :
  1283. * @return :
  1284. * @---------------------------------------------------
  1285. */
  1286. function fDeptlistApply(){
  1287. var pGrddeptdtim = grd_deptdtim; //설정입력그리드
  1288. var pPathdeptdtim = "/root/main/dtiminfo/dtim"; //설정입력그리드 path
  1289. var pGrddeptList = grd_deptList; //설정반영그리드
  1290. var pPathdeptList = "/root/main/deptdtim/deptdtimList"; //설정반영그리드 path
  1291. //체크
  1292. if(pGrddeptdtim.rows < 3){
  1293. messageBox("공통투약시간에 설정되지않았습니다.","E999");
  1294. return;
  1295. }
  1296. if(pGrddeptList.row < 1){
  1297. return;
  1298. }
  1299. //---------------------------------
  1300. // 투약시간 설정값 추출
  1301. //---------------------------------
  1302. var cntrows = pGrddeptList.rows;
  1303. var drugtmspec = ""; //투여시간 text 형시으로 표시(화면용)
  1304. var drugtmspeccal = ""; //투여시간 text 형시으로 표시(자료용)(24시간기준)
  1305. var day = ""; //일수
  1306. var time = ""; //시간
  1307. //var dtim_tims = model.getValue(pPathdeptList + "[" + grd_deptList.row + "]/exectims"); //투약회수
  1308. var dtim_tims = dept_tims;
  1309. //설정입력그리드를 돌면서 시간(n row)을 한줄의 텍스트로 만듬
  1310. for (var i = 1 ; i <= dtim_tims ; i++){
  1311. time = pGrddeptdtim.valueMatrix(1,i);
  1312. day = pGrddeptdtim.valueMatrix(2,i);
  1313. if(time.length != 4){
  1314. messageBox("시간은 4자리를","C001");
  1315. return;
  1316. }
  1317. if(i != 1) {
  1318. drugtmspec += " ";
  1319. drugtmspeccal += " ";
  1320. }
  1321. drugtmspec += fCarec_GetFillZeno(time,4,0);
  1322. drugtmspeccal += fCarec_GetFillZeno((Number(time) + Number(day) * 2400),4,0);
  1323. }
  1324. //-----------------------------------------------
  1325. //설정반영그리드에 반영
  1326. //신규가 아니면 수정으로 처리한다.(20080519)
  1327. //-----------------------------------------------
  1328. //pGrddeptList 클릭시 dept_tims , dept_prcpcd , dept_direccd 에 값이 반영됨
  1329. for(var j = 1 ; j < cntrows ; j++){
  1330. if( dept_tims == model.getValue(pPathdeptList + "[" + j + "]/exectims") &&
  1331. dept_prcpcd == model.getValue(pPathdeptList + "[" + j + "]/prcpcd") &&
  1332. dept_direccd == model.getValue(pPathdeptList + "[" + j + "]/direccd") ) {
  1333. var rowstatus = pGrddeptList.rowstatus(pGrddeptList.row);
  1334. if (rowstatus == "1" || rowstatus == "3") {
  1335. } else {
  1336. pGrddeptList.rowstatus(pGrddeptList.row) = "2"; //수정으로상태변경
  1337. }
  1338. model.setValue(pPathdeptList + "[" + j + "]/status", "true" ); //check
  1339. model.setValue(pPathdeptList + "[" + j + "]/drugtmspec", drugtmspec );
  1340. model.setValue(pPathdeptList + "[" + j + "]/drugtmspeccal", drugtmspeccal );
  1341. }
  1342. }
  1343. model.refresh();
  1344. }
  1345. function fDeptlistApply_OLD(){
  1346. if(grd_deptList.row < 1){
  1347. return;
  1348. }
  1349. var cnt = grd_deptList.rows;
  1350. var drugtmspec = "";; //투여시간 text 형시으로 표시
  1351. var drugtmspeccal = ""; //투여시간 text 형시으로 표시
  1352. var day = "";
  1353. for (var i = 1 ; i <= dept_tims ; i++){
  1354. time = grd_deptdtim.valueMatrix(1,i);
  1355. day = grd_deptdtim.valueMatrix(2,i);
  1356. if(time.length != 4){
  1357. messageBox("시간은 4자리를","C001");
  1358. return;
  1359. }
  1360. if(i != 1) {
  1361. drugtmspec += " ";
  1362. drugtmspeccal += " ";
  1363. }
  1364. drugtmspec += fCarec_GetFillZeno(time,4,0);
  1365. drugtmspeccal += fCarec_GetFillZeno((Number(time) + Number(day) * 2400),4,0);
  1366. }
  1367. for(var j = 1 ; j < cnt ; j++){
  1368. if(dept_tims == model.getValue("/root/main/deptdtim/deptdtimList[" + j + "]/exectims") &&
  1369. dept_prcpcd == model.getValue("/root/main/deptdtim/deptdtimList[" + j + "]/prcpcd") &&
  1370. dept_direccd == model.getValue("/root/main/deptdtim/deptdtimList[" + j + "]/direccd")){
  1371. model.setValue("/root/main/deptdtim/deptdtimList[" + j + "]/drugtmspec", drugtmspec);
  1372. model.setValue("/root/main/deptdtim/deptdtimList[" + j + "]/drugtmspeccal", drugtmspeccal);
  1373. }
  1374. }
  1375. model.refresh();
  1376. }
  1377. /**
  1378. * @group :
  1379. * @ver : 2007.12.07
  1380. * @by : 최경용
  1381. * @---------------------------------------------------
  1382. * @type : function
  1383. * @access : public
  1384. * @desc : 수액기준관리 조회
  1385. * @param :
  1386. * @param :
  1387. * @return :
  1388. * @---------------------------------------------------
  1389. */
  1390. function fGetSapList(){
  1391. model.removenodeset("/root/main/sapinfo/saplist/saplist");
  1392. model.removenode("/root/send");
  1393. model.makeValue("/root/send/deptcd",model.getValue("/root/main/cond/deptcd"));
  1394. model.makeValue("/root/send/drugcd",model.getValue("/root/main/cond/drugcd"));
  1395. model.makeValue("/root/send/drugnm",model.getValue("/root/main/cond/drugnm"));
  1396. submit("TRMNR07508");
  1397. // var rows = grd_saplist.rows;
  1398. // for(var i = 2; i <= rows; i++){
  1399. // grd_saplist.isReadOnly(i, 2) = true;
  1400. // }
  1401. //-------------------(20080910)
  1402. var yellow = "#ffff00";
  1403. var white = "#ffffff";
  1404. var sPathSapInfo = "/root/main/sapinfo/saplist/saplist";
  1405. var rows = grd_saplist.rows-1;
  1406. //부서가 공통이 아닌경우
  1407. //해당부서에 수액정보가 등록되지 않은 경우는 공통부서정보를 표시하여 저장한다.
  1408. if (model.getValue("/root/main/cond/deptcd") != "ALL") {
  1409. for(var row = 1; row <= rows; row++){
  1410. //자료선택여부
  1411. if (model.getValue(sPathSapInfo + "[" + row + "]/ordflag") == "2") {
  1412. grd_saplist.cellstyle("background-color",row,1,row,grd_saplist.cols-1 ) = yellow;
  1413. } else {
  1414. grd_saplist.cellstyle("background-color",row,1,row,grd_saplist.cols-1) = white;
  1415. }
  1416. }
  1417. out_sapmsg.value = "노란색은 공통부서자료입니다.";
  1418. out_sapmsg.visible = true;
  1419. } else {
  1420. for(var row = 1; row <= rows; row++){
  1421. grd_saplist.cellstyle("background-color",row,1,row,grd_saplist.cols-1) = white;
  1422. }
  1423. out_sapmsg.value = "";
  1424. out_sapmsg.visible = false;
  1425. }
  1426. //-------------------(20080910)
  1427. grd_saplist.clearStatus();
  1428. grd_saplist.refresh();
  1429. }
  1430. /**
  1431. * @group :
  1432. * @ver : 2007.12.07
  1433. * @by : 최경용
  1434. * @---------------------------------------------------
  1435. * @type : function
  1436. * @access : public
  1437. * @desc : 수액기준관리 저장
  1438. * @param :
  1439. * @param :
  1440. * @return :
  1441. * @---------------------------------------------------
  1442. */
  1443. function fSaveSapInfo(flag){
  1444. var sPathSapInfo = "/root/main/sapinfo/saplist/saplist";
  1445. var rows = grd_saplist.rows-1;
  1446. // //약품코드 확인
  1447. // for(var i = 1; i < rows; i++){
  1448. // if((grd_saplist.rowStatus(i+1) == 1 || grd_saplist.rowStatus(i+1) == 3) &&
  1449. // model.getValue("/root/main/sapinfo/saplist/saplist[" + i + "]/drugnm") == ""){
  1450. // grd_saplist.deleteRow(i+1);
  1451. // }
  1452. // }
  1453. // grd_saplist.rebuildStyle();
  1454. var sSateData = "";
  1455. //저장 자료 생성
  1456. var savecnt = 0;
  1457. var savestatus = "";
  1458. var sHeader = "m▦rownum▦drugcd▦deptcd▦commyn▦sapyn▦ioyn▦sapnoyn▦status▩"
  1459. var sData = "";
  1460. rows = grd_saplist.rows-1;
  1461. for(var i = 1; i <= rows; i++){
  1462. //자료선택여부
  1463. if (model.getValue(sPathSapInfo + "[" + i + "]/chk") == "true") {
  1464. savestatus = "";
  1465. if ( flag == "del") {
  1466. //부서조회인데, 공통자료를 가져온것이므로 삭제대상이 아니다.
  1467. if ( model.getValue(sPathSapInfo + "[" + i + "]/status") == "I" ) {
  1468. } else {
  1469. savestatus = "d";
  1470. }
  1471. } else {
  1472. if ( model.getValue(sPathSapInfo + "[" + i + "]/status") == "I" ) {
  1473. savestatus = "i";
  1474. } else {
  1475. savestatus = "u";
  1476. }
  1477. }
  1478. if (savestatus != "") {
  1479. sData += savestatus + "▦";
  1480. sData += i + "▦";
  1481. sData += model.getValue(sPathSapInfo + "[" + i + "]/drugcd") + "▦";
  1482. sData += cmb_sapdept.value + "▦";
  1483. if ( model.getValue(sPathSapInfo + "[" + i + "]/commyn") == "true" ) {
  1484. sData += "Y" + "▦";
  1485. } else {
  1486. sData += "N" + "▦";
  1487. }
  1488. if ( model.getValue(sPathSapInfo + "[" + i + "]/sapyn") == "true" ) {
  1489. sData += "Y" + "▦";
  1490. } else {
  1491. sData += "N" + "▦";
  1492. }
  1493. if ( model.getValue(sPathSapInfo + "[" + i + "]/ioyn") == "true" ) {
  1494. sData += "Y" + "▦";
  1495. } else {
  1496. sData += "N" + "▦";
  1497. }
  1498. if ( model.getValue(sPathSapInfo + "[" + i + "]/sapnoyn") == "true" ) {
  1499. sData += "Y" + "▦";
  1500. } else {
  1501. sData += "N" + "▦";
  1502. }
  1503. sData += "" + "▩";
  1504. savecnt ++;
  1505. }
  1506. }
  1507. }
  1508. if (savecnt <= 0 ) {
  1509. messageBox("저장할 자료가 존재하지 않습니다.","E999");
  1510. return;
  1511. }
  1512. model.removenode("/root/send");
  1513. //model.makeValue("/root/send/saplist", grd_saplist.getUpdateData());
  1514. model.makeValue("/root/send/saplist", sHeader + sData);
  1515. model.makeValue("/root/send/deptcd",model.getValue("/root/main/cond/deptcd"));
  1516. model.makeValue("/root/send/drugcd",model.getValue("/root/main/cond/drugcd"));
  1517. model.makeValue("/root/send/drugnm",model.getValue("/root/main/cond/drugnm"));
  1518. //test
  1519. //return;
  1520. if(submit("TXMNR07502")){
  1521. messageBox("성공적으로","I001");
  1522. //---------------(20080910)
  1523. fGetSapList(); //저장후 재조회
  1524. //---------------(20080910)
  1525. }
  1526. grd_saplist.rebuild();
  1527. }
  1528. function fSaveSapInfo_OLD(){
  1529. var rows = grd_saplist.rows-1;
  1530. for(var i = 1; i < rows; i++){
  1531. if((grd_saplist.rowStatus(i+1) == 1 || grd_saplist.rowStatus(i+1) == 3) &&
  1532. model.getValue("/root/main/sapinfo/saplist/saplist[" + i + "]/drugnm") == ""){
  1533. grd_saplist.deleteRow(i+1);
  1534. }
  1535. }
  1536. grd_saplist.rebuildStyle();
  1537. var sSateData = "";
  1538. model.removenode("/root/send");
  1539. model.makeValue("/root/send/saplist", grd_saplist.getUpdateData());
  1540. model.makeValue("/root/send/deptcd",model.getValue("/root/main/cond/deptcd"));
  1541. model.makeValue("/root/send/drugcd",model.getValue("/root/main/cond/drugcd"));
  1542. //test
  1543. return;
  1544. if(submit("TXMNR07502")){
  1545. messageBox("성공적으로","I001");
  1546. }
  1547. grd_saplist.rebuild();
  1548. }
  1549. /**
  1550. * @group :
  1551. * @ver : 2007.12.07
  1552. * @by : 최경용
  1553. * @---------------------------------------------------
  1554. * @type : function
  1555. * @access : public
  1556. * @desc : 약품정보 조회(수액기준관리)
  1557. * @param :
  1558. * @param :
  1559. * @return :
  1560. * @---------------------------------------------------
  1561. */
  1562. function fDrugDbClick(flag){
  1563. model.setValue("/root/temp/receivedata/receiveref", "/root/temp/druginfo");
  1564. modal("SPADB60100",0,100,150,"SPADB60100","/root/temp/receivedata","/root/temp/receivedata");
  1565. var drugcd = model.getValue("/root/temp/druginfo");
  1566. var drugnm = "";
  1567. var row = 0;
  1568. if(drugcd != ""){
  1569. model.removenode("/root/send");
  1570. model.makeValue("/root/send/calcscorcd", drugcd);
  1571. submit("TRMNR07506");
  1572. drugnm = model.getValue("/root/hidden/mech/hngnm");
  1573. if(drugnm == ""){
  1574. messageBox("약품 유효기간이 지났습니다.","E999");
  1575. return;
  1576. }
  1577. if(flag == "sap"){
  1578. //row = grd_saplist.row-1;
  1579. row = grd_saplist.row;
  1580. model.setValue(xSapList + "[" + row + "]/drugcd", drugcd);
  1581. model.setValue(xSapList + "[" + row + "]/drugnm", drugnm);
  1582. }else if(flag == "mthd"){
  1583. row = grd_mechList.row;
  1584. model.setValue(xMechList + "[" + row + "]/prcpcd", drugcd);
  1585. model.setValue(xMechList + "[" + row + "]/hngnm", drugnm);
  1586. }else if(flag == "dept"){
  1587. row = grd_deptList.row;
  1588. model.setValue(xDeptList + "[" + row + "]/prcpcd", drugcd);
  1589. model.setValue(xDeptList + "[" + row + "]/hngnm", drugnm);
  1590. }
  1591. model.setValue("/root/temp/druginfo", "");
  1592. }
  1593. //용법구분이 주사제인 경우는 '투약횟수'를 입력할수 있음.
  1594. // if(cmb_baseflg.value == 'I'){
  1595. // var rowstatus = grd_mechList.rowstatus(grd_mechList.row);
  1596. // if (rowstatus == "1" || rowstatus == "3") {
  1597. // cmb_exectims.disabled = false;
  1598. // }
  1599. // }else{
  1600. // cmb_exectims.disabled = true;
  1601. // }
  1602. model.refresh();
  1603. }
  1604. /**
  1605. * @group :
  1606. * @ver : 2008.05.14
  1607. * @by : 김보성
  1608. * @---------------------------------------------------
  1609. * @type : function
  1610. * @access : public
  1611. * @desc : 수액기준자료관리-조회조건 항목 중 약품정보
  1612. * @param :
  1613. * @param :
  1614. * @return :
  1615. * @---------------------------------------------------
  1616. */
  1617. function fDrugDbClick1(){
  1618. model.setValue("/root/temp/receivedata/receiveref", "/root/temp/druginfo");
  1619. model.setValue("/root/temp/receivedata/srchflag", "1");
  1620. model.setValue("/root/temp/receivedata/srchcnts", model.getValue("/root/main/cond/drugnm"));
  1621. model.setValue("/root/temp/receivedata/drugkind","");
  1622. modal("SPADB60100",0,100,150,"SPADB60100","/root/temp/receivedata","/root/temp/receivedata");
  1623. var drugcd = model.getValue("/root/temp/druginfo");
  1624. var drugnm = "";
  1625. var row = 0;
  1626. if(drugcd != ""){
  1627. model.removenode("/root/send");
  1628. model.makeValue("/root/send/calcscorcd", drugcd);
  1629. submit("TRMNR07506");
  1630. drugnm = model.getValue("/root/hidden/mech/hngnm");
  1631. if(drugnm == ""){
  1632. messageBox("약품 유효기간이 지났습니다.","E999");
  1633. return;
  1634. }
  1635. model.setValue("/root/main/cond/drugcd", drugcd);
  1636. model.setValue("/root/main/cond/drugnm", drugnm);
  1637. model.setValue("/root/temp/druginfo", "");
  1638. }
  1639. model.refresh();
  1640. }
  1641. /**
  1642. * @group :
  1643. * @ver : 2007.12.07
  1644. * @by : 최경용
  1645. * @---------------------------------------------------
  1646. * @type : function
  1647. * @access : public
  1648. * @desc : 수액기준관리 삭제
  1649. * @param :
  1650. * @param :
  1651. * @return :
  1652. * @---------------------------------------------------
  1653. */
  1654. function fClickSapDelete(){
  1655. var row = grd_saplist.row;
  1656. if(model.getValue("/root/main/sapinfo/saplist/saplist[" + (row-1) + "]/delcheck") == "true"){
  1657. if(grd_saplist.rowStatus(row) == "2"){
  1658. grd_saplist.rowStatus(row) = 4;
  1659. }else if(grd_saplist.rowStatus(row) == "3" || grd_saplist.rowStatus(row) == "1"){
  1660. grd_saplist.deleteRow(row);
  1661. }else{}
  1662. }else if(model.getValue("/root/main/sapinfo/saplist/saplist[" + (row-1) + "]/delcheck") == "false"){
  1663. grd_saplist.rowStatus(row) = 2;
  1664. }else{}
  1665. grd_saplist.refresh();
  1666. }
  1667. /**
  1668. * @group :
  1669. * @ver : 2008.05.14
  1670. * @by : 김보성
  1671. * @---------------------------------------------------
  1672. * @type : function
  1673. * @access : public
  1674. * @desc : 기준시간 추가
  1675. * @param : dtim : 용법별만 있음(mech : 약품코드별 , dept : 부서별)
  1676. * @param :
  1677. * @return :
  1678. * @---------------------------------------------------
  1679. */
  1680. function fDtimAdd() {
  1681. var pGrd = grd_dtimList;
  1682. var xpathDtim;
  1683. var oldrow = pGrd.row;
  1684. var newrow;
  1685. //ROW 추가
  1686. if (oldrow < 1 ) return false;
  1687. //insertrow후 반드시 refresh할것
  1688. pGrd.insertRow(oldrow, "below", false);
  1689. pGrd.refresh();
  1690. newrow = pGrd.row;
  1691. //alert( oldrow + "/" + newrow );
  1692. model.copyNode("/root/main/mnrmdtim/mnrmdtimList["+newrow+"]", "/root/main/mnrmdtim/mnrmdtimList["+oldrow+"]");
  1693. model.setValue("/root/main/mnrmdtim/mnrmdtimList["+newrow+"]/status","true");
  1694. model.setValue("/root/main/mnrmdtim/mnrmdtimList["+newrow+"]/comnyn","N");
  1695. model.setValue("/root/main/mnrmdtim/mnrmdtimList["+newrow+"]/grpno","");
  1696. model.setValue("/root/main/mnrmdtim/mnrmdtimList["+newrow+"]/saveflag","I"); //--------(20080911)
  1697. model.refresh();
  1698. return true;
  1699. }
  1700. /**
  1701. * @group :
  1702. * @ver : 2008.05.14
  1703. * @by : 김보성
  1704. * @---------------------------------------------------
  1705. * @type : function
  1706. * @access : public
  1707. * @desc : 공통/용법 그리드 클릭시 상세정보 display
  1708. * @param :
  1709. * @param :
  1710. * @return :
  1711. * @---------------------------------------------------
  1712. */
  1713. function fgrddtimlist_ondelayclick() {
  1714. if(grd_dtimList.col != 0){
  1715. for (var i=1 ; i<=13 ; i++){
  1716. grd_mnrmdtim.valueMatrix(1,i)="";
  1717. grd_mnrmdtim.valueMatrix(2,i)="";
  1718. }//그리드 초기화
  1719. //var dtims = grd_dtimList.valueMatrix(grd_dtimList.row,2);
  1720. //var timscount = grd_dtimList.valueMatrix(grd_dtimList.row,3);
  1721. var dtims = grd_dtimList.valueMatrix(grd_dtimList.row,grd_dtimList.colref("exectims") );
  1722. var timscount = grd_dtimList.valueMatrix(grd_dtimList.row,grd_dtimList.colref("drugtmspec") );
  1723. var timscountextt = model.getValue("/root/main/mnrmdtim/mnrmdtimList["+grd_dtimList.row+"]/drugtmspeccal");
  1724. for (var i= 1 ; i< 13 ;i++) grd_mnrmdtim.colHidden(i) = true;
  1725. for (var i= 1 ; i<= dtims ;i++) grd_mnrmdtim.colHidden(i) = false; //그리드 활성화
  1726. //cmb_exectims.value = dtims;
  1727. var array_timscount = timscount.split(" ");
  1728. var array_timscounpartextt = timscountextt.split(" ");
  1729. var cnt = array_timscount.length;
  1730. for(var i = 0 ; i < cnt ; i++){
  1731. var a = array_timscount[i];
  1732. var b = array_timscounpartextt[i];
  1733. grd_mnrmdtim.valueMatrix(1,i+1) = a; //시간
  1734. grd_mnrmdtim.valueMatrix(2,i+1) = parseInt(b/2400); //일수
  1735. }
  1736. cmb_exectims.value = dtims; //투약회수
  1737. rdo_comnyn.value = model.getValue("/root/main/mnrmdtim/mnrmdtimList["+grd_dtimList.row+"]/comnyn"); //default
  1738. cmb_direccd.value = model.getValue("/root/main/mnrmdtim/mnrmdtimList["+grd_dtimList.row+"]/direccd"); //용법코드
  1739. //용법구분이 주사제인 경우는 '투약횟수'를 입력할수 있음.
  1740. cmb_exectims.disabled = true;
  1741. if(cmb_baseflg.value == 'I'){
  1742. var rowstatus = grd_dtimList.rowstatus(grd_dtimList.row);
  1743. if (rowstatus == "1" || rowstatus == "3") {
  1744. cmb_exectims.disabled = false;
  1745. }
  1746. }
  1747. //공통&용법인 경우는 수정가능하다.
  1748. rdo_comnyn.disabled = false;
  1749. //---------------(20080813)
  1750. if ( model.getValue("/root/main/mnrmdtim/mnrmdtimList["+grd_dtimList.row+"]/saveflag") == "I") {
  1751. cmb_exectims.disabled = false;
  1752. } else {
  1753. cmb_exectims.disabled = true;
  1754. }
  1755. //---------------
  1756. }
  1757. }
  1758. /**
  1759. * @group :
  1760. * @ver : 2008.05.14
  1761. * @by : 김보성
  1762. * @---------------------------------------------------
  1763. * @type : function
  1764. * @access : public
  1765. * @desc : 공통/약품 그리드 클릭시 상세정보 display
  1766. * @param :
  1767. * @param :
  1768. * @return :
  1769. * @---------------------------------------------------
  1770. */
  1771. function fgrdmechList_ondelayclick() {
  1772. if(grd_dtimList.col != 0){
  1773. for (var i=1 ; i<=13 ; i++){
  1774. grd_mnrmdtim.valueMatrix(1,i)="";
  1775. grd_mnrmdtim.valueMatrix(2,i)="";
  1776. }//그리드 초기화
  1777. //var dtims = grd_dtimList.valueMatrix(grd_dtimList.row,2);
  1778. //var timscount = grd_dtimList.valueMatrix(grd_dtimList.row,3);
  1779. var dtims = grd_mechList.valueMatrix(grd_mechList.row,grd_mechList.colref("exectims") );
  1780. var timscount = grd_mechList.valueMatrix(grd_mechList.row,grd_mechList.colref("drugtmspec") );
  1781. var timscountextt = model.getValue("/root/main/picmmech/picmmechList["+grd_mechList.row+"]/drugtmspeccal");
  1782. for (var i= 1 ; i< 13 ;i++) grd_mnrmdtim.colHidden(i) = true;
  1783. for (var i= 1 ; i<= dtims ;i++) grd_mnrmdtim.colHidden(i) = false; //그리드 활성화
  1784. //cmb_exectims.value = dtims;
  1785. var array_timscount = timscount.split(" ");
  1786. var array_timscounpartextt = timscountextt.split(" ");
  1787. var cnt = array_timscount.length;
  1788. for(var i = 0 ; i < cnt ; i++){
  1789. var a = array_timscount[i];
  1790. var b = array_timscounpartextt[i];
  1791. grd_mnrmdtim.valueMatrix(1,i+1) = a; //시간
  1792. grd_mnrmdtim.valueMatrix(2,i+1) = parseInt(b/2400); //일수
  1793. }
  1794. cmb_exectims.value = dtims; //투약회수
  1795. rdo_comnyn.value = model.getValue("/root/main/picmmech/picmmechList["+grd_mechList.row+"]/comnyn"); //default
  1796. cmb_direccd.value = model.getValue("/root/main/picmmech/picmmechList["+grd_mechList.row+"]/direccd"); //용법코드
  1797. cmb_exectims.disabled = true; //투약횟수 수정불가
  1798. rdo_comnyn.disabled = true; //default 수정불가
  1799. }
  1800. }
  1801. /**
  1802. * @group :
  1803. * @ver : 2008.05.15
  1804. * @by : 김보성
  1805. * @---------------------------------------------------
  1806. * @type : function
  1807. * @access : public
  1808. * @desc : 투약시간기준관리(공통/용법별) 적용
  1809. * @param :
  1810. * @param :
  1811. * @return :
  1812. * @---------------------------------------------------
  1813. */
  1814. function fDtimApply(){
  1815. var pGrdmnrmdtim = grd_mnrmdtim; //설정입력그리드
  1816. var pPathmnrmdtim = "/root/main/dtiminfo/dtim"; //설정입력그리드 path
  1817. var pGrddtimList = grd_dtimList; //설정반영그리드
  1818. var pPathdtimList = "/root/main/mnrmdtim/mnrmdtimList"; //설정반영그리드 path
  1819. //체크
  1820. // if(pGrdmnrmdtim.rows < 3){
  1821. // messageBox("공통투약시간에 설정되지않았습니다.","E999");
  1822. // return;
  1823. // }
  1824. if(model.getValue("/root/init/mthdcdlist_1/basecnt") == ""){
  1825. messageBox("공통투약시간에 설정되지않았습니다.","E999");
  1826. return;
  1827. }
  1828. if(pGrddtimList.row < 1){
  1829. return;
  1830. }
  1831. //---------------------------------
  1832. // 투약시간 설정값 추출
  1833. //---------------------------------
  1834. //var cnt = pGrd.rows;
  1835. var drugtmspec = "";; //투여시간 text 형시으로 표시(화면용)
  1836. var drugtmspeccal = ""; //투여시간 text 형시으로 표시(자료용)(24시간기준)
  1837. var day = ""; //일수
  1838. var time = ""; //시간
  1839. //var dtim_tims = model.getValue(pPathdtimList + "[" + pGrdtimList.row + "]/exectims"); //투약회수
  1840. var dtim_tims = model.getValue("/root/init/mthdcdlist_1/basecnt"); //투약회수
  1841. //설정입력그리드를 돌면서 시간(n row)을 한줄의 텍스트로 만듬
  1842. for (var i = 1 ; i <= dtim_tims ; i++){
  1843. time = pGrdmnrmdtim.valueMatrix(1,i);
  1844. day = pGrdmnrmdtim.valueMatrix(2,i);
  1845. if(time.length != 4){
  1846. messageBox("시간은 4자리를","C001");
  1847. return;
  1848. }
  1849. if(i != 1) {
  1850. drugtmspec += " ";
  1851. drugtmspeccal += " ";
  1852. }
  1853. drugtmspec += fCarec_GetFillZeno(time,4,0);
  1854. drugtmspeccal += fCarec_GetFillZeno((Number(time) + Number(day) * 2400),4,0);
  1855. }
  1856. //-----------------------------------------------
  1857. //설정반영그리드에 반영
  1858. //신규가 아니면 수정으로 처리한다.(20080519)
  1859. //-----------------------------------------------
  1860. var rowstatus = pGrddtimList.rowstatus(pGrddtimList.row);
  1861. if (rowstatus == "1" || rowstatus == "3") {
  1862. } else {
  1863. pGrddtimList.rowstatus(pGrddtimList.row) = "2"; //update
  1864. }
  1865. //--------(20080812)
  1866. if (model.getValue(pPathdtimList + "[" + pGrddtimList.row + "]/saveflag") == "I") {
  1867. var baseflag = cmb_baseflg.value; //용법(20080812)
  1868. pGrddtimList.rowstatus(pGrddtimList.row)= "1"; //insert
  1869. model.setValue(pPathdtimList + "[" + pGrddtimList.row + "]/baseflag", baseflag);
  1870. //alert(baseflag);
  1871. }
  1872. //---------
  1873. var comnyn = model.getValue("/root/hidden/comnyn");
  1874. model.setValue(pPathdtimList + "[" + pGrddtimList.row + "]/comnyn", comnyn ); //default
  1875. model.setValue(pPathdtimList + "[" + pGrddtimList.row + "]/status", "true" ); //check
  1876. model.setValue(pPathdtimList + "[" + pGrddtimList.row + "]/exectims", dtim_tims ); //투여회수
  1877. model.setValue(pPathdtimList + "[" + pGrddtimList.row + "]/drugtmspec", drugtmspec ); //투약시간
  1878. model.setValue(pPathdtimList + "[" + pGrddtimList.row + "]/drugtmspeccal", drugtmspeccal ); //투약시간
  1879. model.refresh();
  1880. }