SPMNR05400_병동간호마감.xrw 34 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892
  1. <?xml version="1.0" encoding="EUC-KR"?>
  2. <?xml-stylesheet type="text/css" href="../../../com/commonweb/css/common.css" ?>
  3. <xhtml:html xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://www.w3.org/2002/01/xforms" xmlns:ev="http://www.w3.org/2001/xml-events">
  4. <xhtml:head>
  5. <xhtml:title>병동투약마감</xhtml:title>
  6. <model id="model1">
  7. <instance id="instance1">
  8. <root xmlns="">
  9. <main>
  10. <cond>
  11. <settingrnid/>
  12. <wardcd/>
  13. <orddd/>
  14. <flag/>
  15. <duty/>
  16. <yorddd/>
  17. <torddd/>
  18. <multicheck>true</multicheck>
  19. <test>
  20. <pid/>
  21. <indd/>
  22. <cretno/>
  23. </test>
  24. <userid/>
  25. <fromdd/>
  26. <pid_search/>
  27. </cond>
  28. <wardpatinfo>
  29. <wardpatlist>
  30. <check/>
  31. <roomcd/>
  32. <patnm/>
  33. <sexage/>
  34. <pid/>
  35. <indd/>
  36. <cretno/>
  37. <seqno/>
  38. <instcd/>
  39. <wardcd/>
  40. <blodrecord/>
  41. </wardpatlist>
  42. <settingrn>
  43. <settingrnid/>
  44. <settingrnnm/>
  45. </settingrn>
  46. </wardpatinfo>
  47. <prcpinfo>
  48. <prcplist>
  49. <check/>
  50. <duty/>
  51. <roomcd/>
  52. <pid/>
  53. <patnm/>
  54. <sexage/>
  55. <drugtmspec/>
  56. <prcpmixno/>
  57. <prcpcd/>
  58. <prcpnm/>
  59. <prcpvol/>
  60. <prcpvolunitflag1/>
  61. <prcpqty/>
  62. <prcpqtyunitflag1/>
  63. <prcptims/>
  64. <usernm/>
  65. <exectm/>
  66. <prcpdd/>
  67. <fstrgstdt/>
  68. <enddd/>
  69. <blodrecord/>
  70. </prcplist>
  71. </prcpinfo>
  72. <patlistflag/>
  73. <paminfo/>
  74. <wardprescondinfo>
  75. <prcpnotend/>
  76. </wardprescondinfo>
  77. </main>
  78. <send>
  79. <reqdata/>
  80. <savedata/>
  81. <medicard/>
  82. <medicard8/>
  83. <signinfo>
  84. <signdata/>
  85. </signinfo>
  86. </send>
  87. <hidden>
  88. <warddruginfo/>
  89. <drugreportinfo/>
  90. <for>
  91. <prcpcd/>
  92. <hngnm/>
  93. <prcpvolnm/>
  94. </for>
  95. <message/>
  96. </hidden>
  97. <init>
  98. <ward>
  99. <wardcd/>
  100. <wardnm/>
  101. </ward>
  102. <room>
  103. <room>
  104. <roomcd/>
  105. <roomnm/>
  106. </room>
  107. </room>
  108. <settingrn>
  109. <settingrnid/>
  110. <settingrnnm/>
  111. </settingrn>
  112. <orddd>
  113. <date/>
  114. </orddd>
  115. <rdo_flag>
  116. <item>
  117. <name>D</name>
  118. <id>D</id>
  119. </item>
  120. <item>
  121. <name>E</name>
  122. <id>E</id>
  123. </item>
  124. <item>
  125. <name>N</name>
  126. <id>N</id>
  127. </item>
  128. </rdo_flag>
  129. <flag>
  130. <item>
  131. <name>마감전</name>
  132. <id>before</id>
  133. </item>
  134. <item>
  135. <name>마감후</name>
  136. <id>after</id>
  137. </item>
  138. </flag>
  139. </init>
  140. <temp>
  141. <warddruginfo>
  142. <warddruglist/>
  143. </warddruginfo>
  144. <wardactinfo>
  145. <wardactlist/>
  146. </wardactinfo>
  147. <ward>
  148. <wardcd/>
  149. <wardnm/>
  150. </ward>
  151. <settingrn>
  152. <settingrnid/>
  153. <settingrnnm/>
  154. </settingrn>
  155. <test>
  156. <pid/>
  157. <indd/>
  158. <cretno/>
  159. </test>
  160. </temp>
  161. <actingend>
  162. <endlist/>
  163. <endflagvalue>
  164. <endflag/>
  165. </endflagvalue>
  166. </actingend>
  167. <hidden>
  168. <ret>
  169. <count/>
  170. </ret>
  171. </hidden>
  172. </root>
  173. </instance>
  174. <script type="javascript">
  175. <![CDATA[
  176. /** ----------------------------------------------------------------------
  177. *
  178. * 날짜 계산(기준일자를 기준으로 입력일자만큼 이후 날짜를 찾아오기)
  179. *
  180. * ----------------------------------------------------------------------
  181. **/
  182. function getDateAddc(inputday,addend){
  183. var backDate ="";
  184. var rt = 0;
  185. var yyyy = inputday.substring(0,4) +"";
  186. var mm = inputday.substring(4,6) +"";
  187. var dd = inputday.substring(6,8) +"";
  188. var startDate = new Date(yyyy,(eval(mm)-1),dd);
  189. startDate.setTime(startDate.getTime()+(86400000*addend));
  190. NowYear = startDate.getYear();// 년
  191. NowMonth = startDate.getMonth()+1;// 월
  192. NowDay = startDate.getDate(); // 일
  193. backDate += NowYear ; //년도
  194. if (NowMonth < 10 ) backDate += "0" + NowMonth ;
  195. else backDate += (startDate.getMonth() + 1);
  196. if (NowDay < 10 ) backDate += "0" + NowDay ;
  197. else backDate += (startDate.getDate());
  198. return backDate ;
  199. }
  200. // 환자 목록 조회
  201. function fGetPatList(){
  202. submit("TRMNR05402");
  203. model.resetInstanceNode("/root/main/prcpinfo/prcplist");
  204. model.resetInstanceNode("/root/main/patlistflag");
  205. grd_patlist.fixedcellischeck(0,0) = false;
  206. var patCnt = getNodesetCount("/root/main/wardpatinfo/wardpatlist");
  207. if(patCnt> 0){
  208. for(var i = 1; i <= patCnt; i++){
  209. var blodrecord = model.getValue("/root/main/wardpatinfo/wardpatlist[" + i + "]/blodrecord");
  210. if(blodrecord > 0){
  211. grd_patlist.cellStyle("color", i, grd_patlist.colRef("patnm"), i, grd_patlist.colRef("sexage")) = "#ff00ff"; // 수혈간호기록작성되지 않은 건이 있는 환자 색 표시
  212. }else{
  213. grd_patlist.cellStyle("color", i, grd_patlist.colRef("patnm"), i, grd_patlist.colRef("sexage")) = "#000000";
  214. }
  215. }
  216. }
  217. model.refresh();
  218. }
  219. // 투약 리스트 조회
  220. function fGetPrcpList(){
  221. var sHeader = "pid▦indd▦cretno▩"
  222. var sContents = "";
  223. model.resetInstanceNode("/root/main/prcpinfo/prcplist");
  224. model.resetInstanceNode("/root/main/cond/test");
  225. model.resetInstanceNode("/root/main/cond/reqpidcond");
  226. grd_prcplist.colDisabled(0) = false;
  227. model.setValue("/root/main/cond/yorddd", getDateAddc(model.getValue("/root/main/cond/orddd"),-1));
  228. model.setValue("/root/main/cond/torddd", getDateAddc(model.getValue("/root/main/cond/orddd"),+1));
  229. var xWardPatListPath = "/root/main/wardpatinfo/wardpatlist";
  230. var flag = model.getValue("/root/main/cond/flag");
  231. if(flag!="before")
  232. {
  233. button41.visible=false;
  234. }
  235. else if(flag=="before")
  236. {
  237. button41.visible=true;
  238. }
  239. var j=1;
  240. var patCnt = getNodesetCount(xWardPatListPath);
  241. for(var i = 1; i <= patCnt; i++){
  242. // var chk = model.getValue(xWardPatListPath+"[" + i + "]/check");
  243. if(grd_patlist.textmatrix(i, 0) == 'true')
  244. {
  245. var pid = model.getValue(xWardPatListPath + "[" + i + "]/pid");
  246. var indd = model.getValue(xWardPatListPath + "[" + i + "]/indd");
  247. var cretno = model.getValue(xWardPatListPath + "[" + i + "]/cretno");
  248. model.makeNode("/root/main/cond/test["+j+"]/pid");
  249. model.makeNode("/root/main/cond/test["+j+"]/indd");
  250. model.makeNode("/root/main/cond/test["+j+"]/cretno");
  251. model.setValue("/root/main/cond/test["+j+"]/pid", pid);
  252. model.setValue("/root/main/cond/test["+j+"]/indd", indd);
  253. model.setValue( "/root/main/cond/test["+j+"]/cretno", cretno);
  254. sContents += pid + "▦"
  255. + indd + "▦"
  256. + cretno + "▩";
  257. j++;
  258. }
  259. }
  260. model.makeValue("/root/main/cond/reqpidcond", sHeader + sContents);
  261. if ( j <= 1 ) return;
  262. if(submit("TXMNR06301")){
  263. model.makeValue("/root/main/cond/pidseqno", model.getValue("/root/hidden/pidseqnoinfo/pidseqnoinfo/pidseqno"));
  264. }else {
  265. return;
  266. }
  267. submit("TRMNR05403");
  268. var nodeCnt = getNodesetCount("/root/main/prcpinfo/prcplist");
  269. var tempPid = model.getValue("/root/main/prcpinfo/prcplist[1]/pid");
  270. var tempRoom = model.getValue("/root/main/prcpinfo/prcplist[1]/roomcd");
  271. for(var i = 1; i <= nodeCnt; i++){
  272. if(flag=="after"){
  273. model.setValue("/root/main/prcpinfo/prcplist[" + i + "]/check", "false");
  274. grd_prcplist.isReadOnly(i+1,0) = true;
  275. }
  276. var ppid = model.getValue("/root/main/prcpinfo/prcplist[" + (i+1) + "]/pid");
  277. var proom = model.getValue("/root/main/prcpinfo/prcplist[" + (i+1) + "]/roomcd");
  278. var gridObj = document.all("grd_prcplist");
  279. if(tempPid == ppid && tempRoom == proom)
  280. {
  281. gridObj.cellStyle("color", i+2, 2) = "white";
  282. gridObj.cellStyle("color", i+2, 3) = "white";
  283. gridObj.cellStyle("color", i+2, 4) = "white";
  284. gridObj.cellStyle("color", i+2, 5) = "white";
  285. }
  286. else if(tempPid != ppid || tempRoom != proom)
  287. {
  288. tempPid = model.getValue("/root/main/prcpinfo/prcplist[" + (i+1) + "]/pid");
  289. tempRoom = model.getValue("/root/main/prcpinfo/prcplist[" + (i+1) + "]/roomcd");
  290. gridObj.cellStyle("color", i+2, 2) = "black";
  291. gridObj.cellStyle("color", i+2, 3) = "black";
  292. gridObj.cellStyle("color", i+2, 4) = "black";
  293. gridObj.cellStyle("color", i+2, 5) = "black";
  294. }
  295. var execdd = model.getValue("/root/main/prcpinfo/prcplist[" + i + "]/execdd");
  296. if(execdd == "00000000"){
  297. model.setValue("/root/main/prcpinfo/prcplist[" + i + "]/check", "false");
  298. grd_prcplist.isReadOnly(i+1,0) = true;
  299. }
  300. }
  301. grd_prcplist.colstyle(2,"data","text-align") = "right";
  302. grd_prcplist.colstyle(10,"data","text-align") = "right";
  303. grd_prcplist.colstyle(12,"data","text-align") = "right";
  304. }
  305. ]]>
  306. </script>
  307. <script type="javascript" ev:event="xforms-ready">
  308. <![CDATA[
  309. var pCode = "'199','200'";
  310. fGetNursHardCdInfo(pCode, getCurrentDate());
  311. model.removeNodeset("/root/main/prcpinfo/prcplist");
  312. model.removeNodeset("/root/main/wardpatinfo/wardpatlist");
  313. var sWardCd = "";
  314. var sFromdd = "";
  315. var sPamInfo = getGlobalVariable("paminfo");
  316. setCSVToNode("/root/main/paminfo",sPamInfo,"pamlist"); //환자정보내리기
  317. //var sPID = model.getValue("/root/main/paminfo/pamlist/pid");
  318. if ( checkOpener() ){
  319. sWardCd = opener.javascript.getParameter("wardcd");
  320. sFromdd = opener.javascript.getParameter("fromdd");
  321. sPID = opener.javascript.getParameter("pid");
  322. sParam = opener.javascript.getParameter("param");
  323. if( isNull(sWardCd) ){
  324. sWardCd = model.getValue("/root/main/paminfo/pamlist/wardcd");
  325. if( isNull(sWardCd) ){
  326. model.setValue("/root/main/cond/wardcd", getUserInfo("dutplcecd"));
  327. }else{
  328. model.setValue("/root/main/cond/wardcd", sWardCd);
  329. }
  330. model.setValue("/root/main/cond/fromdd", getDateAddc(getCurrentDate(),-1));
  331. model.setValue("/root/main/cond/orddd", getCurrentDate());
  332. }else{
  333. model.setValue("/root/main/cond/wardcd", sWardCd);
  334. model.setValue("/root/main/cond/fromdd", ( isNull(sFromdd) ? getDateAddc(getCurrentDate(),-1) : sFromdd) );
  335. model.setValue("/root/main/cond/orddd", getCurrentDate());
  336. if(sParam == "SMMNW01200"){ //퇴원정리 및 퇴원확정 화면
  337. model.setValue("/root/main/cond/pid_search", sPID);
  338. }
  339. }
  340. }
  341. model.setValue("/root/main/cond/yorddd", getDateAddc(model.getValue("/root/main/cond/fromdd"),-1));
  342. model.setValue("/root/main/cond/torddd", getDateAddc(model.getValue("/root/main/cond/orddd"),+1));
  343. model.setValue("/root/main/cond/userid", getUserId());
  344. grd_patlist.fixedcellcheckbox(0,0) = true;
  345. grd_prcplist.fixedcellcheckbox(0,0) = true;
  346. var curTime = getCurrentTime().substr(0,4);
  347. cmb_flag.select(0);
  348. if(curTime>"0800" && curTime < "1601"){
  349. rdo_duty.select(0);
  350. }
  351. else if(curTime>"1600" && curTime < "2301"){
  352. rdo_duty.select(1);
  353. }
  354. else {
  355. rdo_duty.select(2);
  356. }
  357. grd_patlist.mergecells = "bycol";
  358. grd_patlist.mergecol(0) = false;
  359. grd_patlist.mergecol(2) = false;
  360. grd_patlist.mergecol(3) = false;
  361. grd_patlist.mergecol(4) = false;
  362. submit("TRMNR05401");
  363. model.setValue("/root/main/cond/settingrnid", "");
  364. if(model.getValue("/root/main/cond/pid_search") == ""){
  365. for(i = 1; i <= getNodesetCount("/root/temp/settingrn"); i++ ) {
  366. if (model.getValue("/root/main/cond/userid") == model.getValue("/root/temp/settingrn["+ i +"]/settingrnid")) {
  367. model.setValue("/root/main/cond/settingrnid", model.getValue("/root/main/cond/userid"));
  368. }
  369. }
  370. }
  371. model.refresh();
  372. fGetPatList();
  373. model.setValue("/root/main/cond/pid_search", "");
  374. var patCnt = getNodesetCount("/root/main/wardpatinfo/wardpatlist");
  375. if ( getNodesetCount("/root/main/wardprescondinfo/prcpnotend") > 0 && patCnt > 0 ){
  376. for ( var endcnt = 1 ; endcnt <= getNodesetCount("/root/main/wardprescondinfo/prcpnotend") ; endcnt++){
  377. sPID = model.getValue("/root/main/wardprescondinfo/prcpnotend["+ endcnt +"]/pid");
  378. for(i=1; i < patCnt; i++){
  379. if(sPID == model.getValue("/root/main/wardpatinfo/wardpatlist["+ i +"]/pid")){
  380. model.setValue("/root/main/wardpatinfo/wardpatlist["+i+"]/check", "true" );
  381. grd_patlist.rowStyle(i, "data", "background-color") = "#FFE1E1";
  382. }
  383. }
  384. }
  385. //fGetPrcpList();
  386. } else if( !isNull(sPID) && patCnt > 0 ){
  387. for(i=1; i <= patCnt; i++){
  388. if(sPID == model.getValue("/root/main/wardpatinfo/wardpatlist["+ i +"]/pid")){
  389. model.setValue("/root/main/wardpatinfo/wardpatlist["+i+"]/check", "true" );
  390. }
  391. }
  392. }
  393. ]]>
  394. </script>
  395. <submission id="TRMNR05401" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/main/cond" resultref="/root/temp"/>
  396. <submission id="TRMNR05402" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/main/cond" resultref="/root/main/wardpatinfo"/>
  397. <submission id="TRMNR05403" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/main/cond" resultref="/root/main/prcpinfo"/>
  398. <submission id="TXMNR05401" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/actingend" resultref="/root/hidden/ret"/>
  399. <submission id="TXMNR06301" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/main/cond" resultref="/root/hidden/pidseqnoinfo"/>
  400. <submission id="TRMNW00001" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" resultref="/root/init/cmblist"/>
  401. </model>
  402. <script type="javascript" src="../../../ast/commonweb/js/AST.js"/>
  403. <script type="javascript" src="../../../com/commonweb/js/common.js"/>
  404. <script type="javascript" src="../../../com/commonweb/js/dateHelper.js"/>
  405. <script type="javascript" src="../../../com/commonweb/js/tfHelper.js"/>
  406. <script type="javascript" src="../../../com/commonweb/js/stringHelper.js"/>
  407. <script type="javascript" src="../../../com/commonweb/js/numericHelper.js"/>
  408. <script type="javascript" src="../../../emr/carecomweb/js/CareCom.js"/>
  409. </xhtml:head>
  410. <script type="javascript" src="../../../com/commonweb/js/tfHelper.js"/>
  411. <xhtml:body style="margin-left:8; margin-top:0; margin-right:8; margin-bottom:0; ">
  412. <group id="group1" style="left:0px; top:0px; width:1194px; height:13px; ">
  413. <caption id="caption6" class="tit_1" style="left:0px; top:0px; width:129px; height:14px; ">병동투약 마감</caption>
  414. </group>
  415. <group id="group3" scroll="auto" style="left:0px; top:13px; width:1195px; height:744px; ">
  416. <group id="group5" style="left:0px; top:10px; width:1194px; height:35px; vertical-align:top; ">
  417. <shape id="roundrect2" appearance="roundrect" ellipsewidth="10" ellipseheight="10" style="left:0px; top:0px; width:1194px; height:35px; background-color:#fffbf2; border-color:#ffd799; "/>
  418. <caption id="caption20" class="search_name" style="left:445px; top:10px; width:86px; height:17px; ">업무일자 :</caption>
  419. <line id="line16" style="x1:1095px; y1:5px; x2:1095px; y2:27px; border-color:#ffe4bb; border-left-style:solid; "/>
  420. <caption id="caption17" class="search_name" style="left:225px; top:10px; width:103px; height:17px; ">내 환 자 :</caption>
  421. <caption id="caption8" class="search_name" style="left:10px; top:10px; width:90px; height:17px; ">병 동 :</caption>
  422. <select1 id="cmb_settingrn" ref="/root/main/cond/settingrnid" class="combo_s_essential" navindex="5" appearance="minimal" style="left:315px; top:10px; width:109px; height:19px; ">
  423. <choices>
  424. <itemset nodeset="/root/temp/settingrn/">
  425. <label ref="settingrnnm"/>
  426. <value ref="settingrnid"/>
  427. </itemset>
  428. </choices>
  429. <script type="javascript" ev:event="xforms-value-changed">
  430. <![CDATA[
  431. fGetPatList();
  432. ]]>
  433. </script>
  434. </select1>
  435. <select1 id="cmb_ward" ref="/root/main/cond/wardcd" class="combo_search" navindex="1" appearance="minimal" style="left:84px; top:8px; width:134px; height:19px; ">
  436. <choices>
  437. <itemset nodeset="/root/temp/ward/">
  438. <label ref="wardnm"/>
  439. <value ref="wardcd"/>
  440. </itemset>
  441. </choices>
  442. <script type="javascript" ev:event="xforms-value-changed">
  443. <![CDATA[
  444. fGetPatList();
  445. ]]>
  446. </script>
  447. </select1>
  448. <input id="ipt_fromdd" ref="/root/main/cond/fromdd" class="input_search" navindex="3" inputtype="date" style="left:533px; top:8px; width:90px; height:19px; ">
  449. <script type="javascript" ev:event="xforms-value-changed">
  450. <![CDATA[
  451. fGetPrcpList();
  452. ]]>
  453. </script>
  454. </input>
  455. <button id="btn_PatListSel" class="btn1_letter2" navindex="6" style="left:1122px; top:7px; width:56px; height:22px; ">
  456. <caption>조회</caption>
  457. <script type="javascript" ev:event="onclick">
  458. <![CDATA[
  459. fGetPrcpList();
  460. ]]>
  461. </script>
  462. </button>
  463. <caption id="caption1" class="search_name" style="left:730px; top:10px; width:71px; height:17px; ">구 분 :</caption>
  464. <select1 id="cmb_flag" ref="/root/main/cond/flag" class="combo_s_essential" navindex="4" appearance="minimal" style="left:800px; top:8px; width:95px; height:19px; ">
  465. <choices>
  466. <itemset nodeset="/root/init/flag/item">
  467. <label ref="name"/>
  468. <value ref="id"/>
  469. </itemset>
  470. </choices>
  471. <script type="javascript" ev:event="xforms-value-changed">
  472. <![CDATA[
  473. var endFlag = model.getValue("/root/main/cond/flag");
  474. if(endFlag == "after")
  475. {
  476. model.makeValue("/root/init/rdo_flag/item[1]/name", "전체");
  477. model.makeValue("/root/init/rdo_flag/item[1]/id", "-");
  478. model.makeValue("/root/init/rdo_flag/item[2]/name", "D");
  479. model.makeValue("/root/init/rdo_flag/item[2]/id", "D");
  480. model.makeValue("/root/init/rdo_flag/item[3]/name", "E");
  481. model.makeValue("/root/init/rdo_flag/item[3]/id", "E");
  482. model.makeValue("/root/init/rdo_flag/item[4]/name", "N");
  483. model.makeValue("/root/init/rdo_flag/item[4]/id", "N");
  484. }
  485. else if(endFlag == "before")
  486. {
  487. model.removeNodeset("/root/init/rdo_flag/item[4]");
  488. model.makeValue("/root/init/rdo_flag/item[1]/name", "D");
  489. model.makeValue("/root/init/rdo_flag/item[1]/id", "D");
  490. model.makeValue("/root/init/rdo_flag/item[2]/name", "E");
  491. model.makeValue("/root/init/rdo_flag/item[2]/id", "E");
  492. model.makeValue("/root/init/rdo_flag/item[3]/name", "N");
  493. model.makeValue("/root/init/rdo_flag/item[3]/id", "N");
  494. }
  495. fGetPrcpList();
  496. ]]>
  497. </script>
  498. </select1>
  499. <select1 id="rdo_duty" ref="/root/main/cond/duty" appearance="full" cols="4" rows="1" overflow="visible" style="left:905px; top:10px; width:150px; height:20px; border-style:none; ">
  500. <choices>
  501. <itemset nodeset="/root/init/rdo_flag/item">
  502. <label ref="/name"/>
  503. <value ref="/id"/>
  504. </itemset>
  505. </choices>
  506. <script type="javascript" ev:event="xforms-value-changed">
  507. <![CDATA[
  508. fGetPrcpList();
  509. ]]>
  510. </script>
  511. </select1>
  512. <input id="ipt_orddd" ref="/root/main/cond/orddd" class="input_search" navindex="3" inputtype="date" style="left:635px; top:8px; width:90px; height:19px; ">
  513. <script type="javascript" ev:event="xforms-value-changed">
  514. <![CDATA[
  515. fGetPrcpList();
  516. ]]>
  517. </script>
  518. </input>
  519. <caption id="caption3" style="left:623px; top:7px; width:15px; height:20px; ">~</caption>
  520. </group>
  521. <caption id="caption2" class="tit_2" style="left:290px; top:62px; width:113px; height:13px; font-family:굴림; ">처방내역</caption>
  522. <line id="line2" class="line_1" style="x1:290px; y1:77px; x2:1190px; y2:77px; "/>
  523. <button id="button41" class="btn1_letter2" navindex="7" style="left:1133px; top:51px; width:56px; height:22px; ">
  524. <caption>마감</caption>
  525. <script type="javascript" ev:event="onclick">
  526. <![CDATA[
  527. var endListRow = 1;
  528. var blodrecordcnt = 0; // 수혈간호기록작성되지 않은 건수
  529. var nactingcnt = 0 ; // 투약기준시간 이전에 투약기록 하지 않은 건수
  530. var actingchkcnt = 0;
  531. var patinfoCnt = getNodesetCount("/root/main/wardpatinfo/wardpatlist" );
  532. for(var i = 1; i <= patinfoCnt+1; i++){
  533. if(model.getValue("/root/main/wardpatinfo/wardpatlist["+ (i-1) +"]/blodrecord") > 0){ // 수혈간호기록작성되지 않은 건수
  534. blodrecordcnt ++ ;
  535. }
  536. if(model.getValue("/root/main/wardpatinfo/wardpatlist["+ (i-1) +"]/nacting") > 0){ // 미투약건수
  537. nactingcnt ++ ;
  538. }
  539. }
  540. if(blodrecordcnt > 0){
  541. messageBox("미수행된 수혈간호기록이 있습니다. 수혈간호기록을 종료(인증저장까지 진행)하신 후 투약마감을 하시기 바랍니다. 수혈간호기록 누락자는 좌측 재원환자목록(분홍색 이름)을 참고하시기 바랍니다. ","I000");
  542. }
  543. if(getNodesetCount("/root/init/codeinfo/codelist")>0){
  544. for(var i=1; i<=getNodesetCount("/root/init/codeinfo/codelist"); i++){
  545. if(model.getValue("/root/init/codeinfo/codelist["+i+"]/cdgrupid") == '200'){
  546. if(model.getValue("/root/init/codeinfo/codelist["+i+"]/cdid") == model.getValue("/root/main/cond/wardcd")){
  547. actingchkcnt ++;
  548. }
  549. }
  550. }
  551. }
  552. if(model.getValue("/root/init/codeinfo/codelist[cdgrupid ='199']/cdid") == 'Y' ){
  553. if(nactingcnt > 0){
  554. messageBox("미투약건이 있습니다. 미투약리스트를 확인하고 투약기록 후 마감하시기 바랍니다. ","E");
  555. return ;
  556. }
  557. }else if(model.getValue("/root/init/codeinfo/codelist[cdgrupid ='199']/cdid") == 'T'){
  558. if(actingchkcnt > 0){
  559. if(nactingcnt > 0){
  560. messageBox("미투약건이 있습니다. 미투약리스트를 확인하고 투약기록 후 마감하시기 바랍니다. ","E");
  561. return ;
  562. }
  563. }
  564. }
  565. var prcpCnt = getNodesetCount("/root/main/prcpinfo/prcplist");
  566. for(var i = 1; i <= prcpCnt+1; i++){
  567. if(grd_prcplist.textmatrix(i, 0) == 'true')
  568. {
  569. model.makeNode("/root/actingend/endlist["+endListRow+"]/prcpdd");
  570. model.setValue("/root/actingend/endlist["+endListRow+"]/prcpdd", model.getValue("/root/main/prcpinfo/prcplist["+ (i-1) +"]/prcpdd"));
  571. model.makeNode("/root/actingend/endlist["+endListRow+"]/prcpno");
  572. model.setValue("/root/actingend/endlist["+endListRow+"]/prcpno", model.getValue("/root/main/prcpinfo/prcplist["+ (i-1) +"]/prcpno"));
  573. model.makeNode("/root/actingend/endlist["+endListRow+"]/prcphistno");
  574. model.setValue("/root/actingend/endlist["+endListRow+"]/prcphistno", model.getValue("/root/main/prcpinfo/prcplist["+ (i-1) +"]/prcphistno"));
  575. model.makeNode("/root/actingend/endlist["+endListRow+"]/execprcpno");
  576. model.setValue("/root/actingend/endlist["+endListRow+"]/execprcpno", model.getValue("/root/main/prcpinfo/prcplist["+ (i-1) +"]/execprcpno"));
  577. model.makeNode("/root/actingend/endlist["+endListRow+"]/instcd");
  578. model.setValue("/root/actingend/endlist["+endListRow+"]/instcd", model.getValue("/root/main/prcpinfo/prcplist["+ (i-1) +"]/instcd"));
  579. model.makeNode("/root/actingend/endlist["+endListRow+"]/execdd");
  580. model.setValue("/root/actingend/endlist["+endListRow+"]/execdd", model.getValue("/root/main/cond/orddd"));
  581. model.makeNode("/root/actingend/endlist["+endListRow+"]/duty");
  582. model.setValue("/root/actingend/endlist["+endListRow+"]/duty", model.getValue("/root/main/cond/duty"));
  583. model.makeNode("/root/actingend/endlist["+endListRow+"]/execdeptcd");
  584. model.setValue("/root/actingend/endlist["+endListRow+"]/execdeptcd", model.getValue("/root/main/cond/wardcd"));
  585. model.makeNode("/root/actingend/endlist["+endListRow+"]/oiflag");
  586. model.setValue("/root/actingend/endlist["+endListRow+"]/oiflag", "exip");
  587. endListRow++;
  588. }
  589. }
  590. // 체크된 행이 있으면 마감실행
  591. if(endListRow != 1){
  592. model.makeNode("/root/actingend/endflagvalue/endflag");
  593. model.setValue("/root/actingend/endflagvalue/endflag", "B12");
  594. submit("TXMNR05401");
  595. fGetPrcpList();
  596. }
  597. ]]>
  598. </script>
  599. </button>
  600. <caption id="caption12" class="tit_2" style="left:5px; top:62px; width:105px; height:13px; font-family:굴림; ">재원환자 목록</caption>
  601. <datagrid id="grd_patlist" nodeset="/root/main/wardpatinfo/wardpatlist" allowbigselection="false" allowselection="false" backcoloralternate="#ffffff" caption="^병실^환자명^S/A^미투약^caption1" colsep="^" colwidth="19, 60, 75, 55, 55, 100" defaultrows="0" frozencols="0" rowsep="|" style="left:0px; top:80px; width:285px; height:655px; ">
  602. <col ref="check" type="checkbox"/>
  603. <col ref="roomcd" style="text-align:center; "/>
  604. <col ref="patnm" style="text-align:center; "/>
  605. <col ref="sexage" style="text-align:center; "/>
  606. <col ref="nacting" style="text-align:center; "/>
  607. <col ref="blodrecord" visibility="hidden"/>
  608. <script type="javascript" ev:event="onaftersort">
  609. <![CDATA[
  610. grd_patlist.gridToInstance();
  611. ]]>
  612. </script>
  613. <script type="javascript" ev:event="onclick">
  614. <![CDATA[
  615. var cur_col = grd_patlist.mouseCol;
  616. var cur_row = grd_patlist.mouseRow;
  617. if( cur_col == 1)
  618. {
  619. if(grd_patlist.isMerge(cur_row, cur_col))
  620. {
  621. var sep = grd_patlist.mergeArea(cur_row, cur_col);
  622. var splitData = sep.split(",");
  623. var start_row = splitData[0];
  624. var end_row = splitData[2];
  625. end_row = parseInt(end_row) + 1;
  626. var chk_row = false;
  627. for(var i=start_row; i<end_row; i++)
  628. {
  629. if(model.getValue("/root/main/wardpatinfo/wardpatlist["+i+"]/check" ) == 'true'){
  630. chk_row = true;
  631. }
  632. }
  633. if(chk_row == false){
  634. for(var i=start_row; i<end_row; i++)
  635. {
  636. model.setValue("/root/main/wardpatinfo/wardpatlist["+i+"]/check", "true" );
  637. }
  638. }
  639. else if(chk_row == true){
  640. for(var i=start_row; i<end_row; i++)
  641. {
  642. model.setValue("/root/main/wardpatinfo/wardpatlist["+i+"]/check", "false" );
  643. }
  644. }
  645. }
  646. else{
  647. if(model.getValue("/root/main/wardpatinfo/wardpatlist["+cur_row+"]/check") == 'true' && cur_row != 0){
  648. model.setValue("/root/main/wardpatinfo/wardpatlist["+cur_row+"]/check", "false" );
  649. }
  650. else if(cur_row != 0){
  651. model.setValue("/root/main/wardpatinfo/wardpatlist["+cur_row+"]/check", "true" );
  652. }
  653. }
  654. }
  655. else if( cur_col == 2 || cur_col == 3 )
  656. {
  657. if(model.getValue("/root/main/wardpatinfo/wardpatlist["+cur_row+"]/check") == 'true' && cur_row != 0){
  658. model.setValue("/root/main/wardpatinfo/wardpatlist["+cur_row+"]/check", "false" );
  659. }
  660. else if(cur_row != 0){
  661. model.setValue("/root/main/wardpatinfo/wardpatlist["+cur_row+"]/check", "true" );
  662. }
  663. }
  664. ]]>
  665. </script>
  666. <script type="javascript" ev:event="ondblclick">
  667. <![CDATA[
  668. fGetPrcpList();
  669. ]]>
  670. </script>
  671. </datagrid>
  672. <line id="line5" class="line_1" style="x1:0px; y1:77px; x2:285px; y2:77px; "/>
  673. <datagrid id="grd_prcplist" nodeset="/root/main/prcpinfo/prcplist" caption="^Duty^병실^등록번호^환자명^S/A^투약시간^mix^처방코드^처방명[* : 혼동주의/고위험 약제]^1회용량^단위^1회수량^단위^1회횟수^투약간호사^기록시간^처방적용일^처방등록일시^마감일시^caption1^caption2|^Duty^병실^등록번호^환자명^S/A^투약시간^mix^처방코드^처방명[* : 혼동주의/고위험 약제]^1회용량^단위^1회수량^단위^1회횟수^투약간호사^기록시간^처방적용일^처방등록일시^마감일시^caption1^caption2" colsep="^" colwidth="19, 38, 40, 60, 60, 40, 40, 30, 80, 250, 40, 34, 36, 34, 0, 60, 55, 67, 100, 120" dataheight="23" defaultrows="0" explorerbar="sortshow" extendlastcol="scroll" mergecellsfixedrows="bycolrec" rowheight="23" rowsep="|" tooltip="true" style="left:290px; top:80px; width:899px; height:655px; ">
  674. <col ref="check" type="checkbox"/>
  675. <col ref="duty"/>
  676. <col ref="roomcd"/>
  677. <col ref="pid"/>
  678. <col ref="patnm"/>
  679. <col ref="sexage"/>
  680. <col ref="drugtmspec" format="99:99"/>
  681. <col ref="prcpmixno"/>
  682. <col ref="prcpcd"/>
  683. <col ref="prcpnm"/>
  684. <col ref="prcpvol"/>
  685. <col ref="prcpvolunitflag1"/>
  686. <col ref="prcpqty"/>
  687. <col ref="prcpqtyunitflag1"/>
  688. <col ref="prcptims"/>
  689. <col ref="usernm"/>
  690. <col ref="exectm" format="99:99"/>
  691. <col ref="prcpdd" format="yyyy-mm-dd"/>
  692. <col ref="fstrgstdt" format="yyyy-mm-dd 99:99AAAAA"/>
  693. <col ref="enddd" format="yyyy-mm-dd 99:99AAAAA"/>
  694. <script type="javascript" ev:event="onaftersort">
  695. <![CDATA[
  696. var nodeCnt = getNodesetCount("/root/main/prcpinfo/prcplist");
  697. var tempPid = grd_prcplist.textmatrix(2, 3);
  698. var tempRoom = grd_prcplist.textmatrix(2, 2);
  699. var gridObj = document.all("grd_prcplist");
  700. gridObj.cellStyle("color", 2, 2) = "black";
  701. gridObj.cellStyle("color", 2, 3) = "black";
  702. gridObj.cellStyle("color", 2, 4) = "black";
  703. gridObj.cellStyle("color", 2, 5) = "black";
  704. for(var i = 1; i <= nodeCnt; i++){
  705. /*if(flag=="after"){
  706. model.setValue("/root/main/prcpinfo/prcplist[" + i + "]/check", "false");
  707. grd_prcplist.isReadOnly(i+1,0) = true;
  708. }*/
  709. var ppid = grd_prcplist.textmatrix(i+2, 3);
  710. var proom = grd_prcplist.textmatrix(i+2, 2);
  711. if(tempPid == ppid && tempRoom == proom)
  712. {
  713. gridObj.cellStyle("color", i+2, 2) = "white";
  714. gridObj.cellStyle("color", i+2, 3) = "white";
  715. gridObj.cellStyle("color", i+2, 4) = "white";
  716. gridObj.cellStyle("color", i+2, 5) = "white";
  717. }
  718. else if(tempPid != ppid || tempRoom != proom)
  719. {
  720. tempPid = grd_prcplist.textmatrix(i+2, 3);
  721. tempRoom = grd_prcplist.textmatrix(i+2, 2);
  722. gridObj.cellStyle("color", i+2, 2) = "black";
  723. gridObj.cellStyle("color", i+2, 3) = "black";
  724. gridObj.cellStyle("color", i+2, 4) = "black";
  725. gridObj.cellStyle("color", i+2, 5) = "black";
  726. }
  727. /*var execdd = model.getValue("/root/main/prcpinfo/prcplist[" + i + "]/execdd");
  728. if(execdd == "00000000"){
  729. model.setValue("/root/main/prcpinfo/prcplist[" + i + "]/check", "false");
  730. grd_prcplist.isReadOnly(i+1,0) = true;
  731. }*/
  732. }
  733. grd_prcplist.gridToInstance();
  734. ]]>
  735. </script>
  736. <script type="javascript" ev:event="xforms-select">
  737. <![CDATA[
  738. var curRow = grd_prcplist.row;
  739. if(curRow == 0){
  740. var nodeCnt = getNodesetCount("/root/main/prcpinfo/prcplist");
  741. for(var i = 1; i <= nodeCnt; i++){
  742. var execdd = model.getValue("/root/main/prcpinfo/prcplist[" + i + "]/execdd");
  743. var enddd = model.getValue("/root/main/prcpinfo/prcplist[" + i + "]/enddd");
  744. if(execdd != "00000000" || enddd != ""){
  745. model.setValue("/root/main/prcpinfo/prcplist[" + i + "]/check", "true");
  746. }
  747. else{
  748. model.setValue("/root/main/prcpinfo/prcplist[" + i + "]/check", "false");
  749. }
  750. }
  751. }
  752. ]]>
  753. </script>
  754. <script type="javascript" ev:event="xforms-deselect">
  755. <![CDATA[
  756. var curRow = grd_prcplist.row;
  757. if(curRow == 0){
  758. var nodeCnt = getNodesetCount("/root/main/prcpinfo/prcplist");
  759. for(var i = 1; i <= nodeCnt; i++){
  760. model.setValue("/root/main/prcpinfo/prcplist[" + i + "]/check", "false");
  761. }
  762. }
  763. ]]>
  764. </script>
  765. </datagrid>
  766. <caption id="caption5" style="left:5px; top:45px; width:374px; height:15px; font-family:굴림; font-weight:bold; color:#008000; ">* 부서확인 전 마약 및 미승인 제한항생제는 미투약에서 제외됨</caption>
  767. <button id="btn_help" class="btn4_letter3" style="left:1060px; top:51px; width:68px; height:22px; ">
  768. <caption>도움말</caption>
  769. <script type="javascript" ev:event="DOMActivate">
  770. <![CDATA[
  771. var scrnid = getScreenID();
  772. fGetHelpList(scrnid);
  773. ]]>
  774. </script>
  775. </button>
  776. </group>
  777. <img id="img1" visibility="hidden" src="../../../emr/commonweb/images/icon_btn.gif" style="left:1165px; top:5px; width:15px; height:15px; background-stretch:stretch; ">
  778. <script type="javascript" ev:event="onmousemove">
  779. <![CDATA[
  780. cap_key.visible =true;
  781. ]]>
  782. </script>
  783. <script type="javascript" ev:event="onmouseout">
  784. <![CDATA[
  785. cap_key.visible =false;
  786. ]]>
  787. </script>
  788. </img>
  789. <caption id="cap_key" class="text_essential" visibility="hidden" appearance="caption" style="left:380px; top:5px; width:780px; height:58px; text-align:left; ">
  790. <![CDATA[1. 병동투약마감은 병동에서 정상투약, 투약X-반환불가로 기록된 투약내역에 대해서 실시한다.
  791. 병동 외 응급의료센터, 수술실 등에서 기록된 내역은 당일 24:00시에 자동마감되므로 병동투약마감에서 제외된다.
  792. 2. 전일 08:00~당일 07:59까지의 투약된 내역 중 미마감된 처방이 존재시 당일 08:00시에 해당 병동의 ordermanage사용이 blocking된다.]]>
  793. </caption>
  794. <group id="group4" scroll="auto" style="left:0px; top:752px; width:1195px; height:27px; ">
  795. <line id="line37" class="line_6" style="x1:1px; y1:0px; x2:1195px; y2:0px; "/>
  796. <caption id="caption4" style="left:10px; top:5px; width:395px; height:20px; color:#ff00ff; ">* 재원환자 목록에 분홍색 표기 : 미수행된 수혈간호기록이 있는 건</caption>
  797. </group>
  798. <caption id="caption24" style="left:1160px; top:760px; width:30px; height:20px; text-align:right; ">[표]</caption>
  799. </xhtml:body>
  800. </xhtml:html>