SMMMR03100_아파치기간조회.xrw 29 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717
  1. <?xml version="1.0" encoding="EUC-KR"?>
  2. <?xml-stylesheet href="../../../com/commonweb/css/common.css" type="text/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>APACHE II 기간조회</xhtml:title>
  6. <model id="model1">
  7. <instance id="instance1">
  8. <root xmlns="">
  9. <main>
  10. <apachelist>
  11. <list>
  12. <apch>
  13. <pid/>
  14. <hngnm/>
  15. <sexage/>
  16. <age/>
  17. <orddd/>
  18. <cretno/>
  19. <depthngnm/>
  20. <fromdd/>
  21. <todd/>
  22. <todd2/>
  23. <ining/>
  24. <graph/>
  25. <apchdd/>
  26. <apchscore/>
  27. <dethrate/>
  28. <adjusted/>
  29. </apch>
  30. </list>
  31. <apchday>
  32. <apchddlist>
  33. <apchdd/>
  34. </apchddlist>
  35. </apchday>
  36. </apachelist>
  37. </main>
  38. <send>
  39. <stnddd/>
  40. <enddd/>
  41. <range/>
  42. <status/>
  43. <ward/>
  44. <orddept/>
  45. <outchk/>
  46. <scorechk/>
  47. <scoredown/>
  48. <scoreup/>
  49. </send>
  50. <init>
  51. <ward/>
  52. <orddept>
  53. <dept/>
  54. </orddept>
  55. <userlist/>
  56. <orddeptlist/>
  57. </init>
  58. <hidden>
  59. </hidden>
  60. <temp>
  61. <apachelist>
  62. <row/>
  63. </apachelist>
  64. <initlist>
  65. </initlist>
  66. </temp>
  67. <paminfo/>
  68. <grd_temp>
  69. <grid>
  70. <pid/>
  71. <hngnm/>
  72. <sexage/>
  73. <age/>
  74. <orddd/>
  75. <cretno/>
  76. <depthngnm/>
  77. <fromdd/>
  78. <todd/>
  79. <todd2/>
  80. <ining/>
  81. <apchdd/>
  82. </grid>
  83. </grd_temp>
  84. </root>
  85. </instance>
  86. <script type="javascript" src="../../../com/commonweb/js/common.js"/>
  87. <script type="javascript" src="../../../com/commonweb/js/tfHelper.js"/>
  88. <script type="javascript" src="../../../com/commonweb/js/dateHelper.js"/>
  89. <script type="javascript" src="../../../com/commonweb/js/stringHelper.js"/>
  90. <script type="javascript" src="../../../emr/prcpmngtweb/js/MMO001.js"/>
  91. <script type="javascript" src="../../../emr/commonweb/js/EMRCommon.js"/>
  92. <script type="javascript" src="../../../com/commonweb/js/tchartHelper.js"/>
  93. <script type="javascript" src="../../../emr/anstrecweb/js/MMR03100.js"/>
  94. <script type="javascript" src="../../../com/basiccodeweb/js/ZBC001.js"/>
  95. <script type="javascript" src="../../../com/userdeptinfoweb/js/ZSU001.js"/>
  96. <script type="javascript" src="../../../com/departmentcodeweb/js/ZSD001.js"/>
  97. <script type="javascript" ev:event="xforms-ready">
  98. <![CDATA[
  99. fSetInit();
  100. ]]>
  101. </script>
  102. <submission id="TRMMR03100" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" resultref="/root/init/ward"/>
  103. <submission id="TRMMR03101" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" resultref="/root/main/apachelist/list"/>
  104. <submission id="TRMMB04101" mediatype="application/x-www-form-urlencoded" method="post"/>
  105. <submission id="TRMMR03102" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" resultref="/root/main/apachelist/apchday"/>
  106. </model>
  107. <script type="javascript">
  108. <![CDATA[
  109. //초기화
  110. function fSetInit(){
  111. var vNowDD = getCurrentDate();
  112. model.setValue("/root/send/stnddd",vNowDD);
  113. model.setValue("/root/send/enddd",vNowDD);
  114. model.setValue("/root/send/status", "2");
  115. model.setValue("/root/send/range", "0");
  116. model.setValue("/root/send/orddept", "-");
  117. var node = getGlobalVariable("paminfo");
  118. model.removeNodeset("/root/main/paminfo");
  119. setCSVToNode("/root/main", node, "paminfo");
  120. //zsdfGetInOutOrdDeptList(getUserInfo("dutplceinstcd"),"/root/init/orddept","depthngnm","asc"); //전체 진료과
  121. mmbfGetDeptCodeComboList("/root/send/reqdata2", "/root/init/orddept", "A");
  122. addComboInstance("/root/init/orddept" , "deptcd^depthngnm", "-^전체", "dept"); //부서콤보 Item '전체'추가
  123. //var wardinfo = opener.instance1.getXPathString("/root/main/paminfo");
  124. var wardinfo = model.getValue("/root/main/paminfo/wardcd");
  125. var jobkind = getUserInfo("jobkindcd").substring(0, 2);
  126. if(jobkind != "03")//의사가 아닌경우
  127. {
  128. model.setValue("/root/send/ward", getUserInfo("dutplcecd")); // 근무부서
  129. model.refresh();
  130. }
  131. else
  132. {
  133. model.setValue("/root/send/ward", wardinfo); // 병동정보
  134. model.refresh();
  135. }
  136. if(submit("TRMMR03100")){
  137. copyNodesetType("/root/init/ward","/root/temp/initlist/icudept","replace", model, model);
  138. }
  139. addComboInstance("/root/init/ward" , "deptcd^deptnm", "-^전체", "icudept"); //중환자실 부서콤보 Item '전체'추가
  140. model.setValue("/root/send/ward", "-");
  141. model.refresh();
  142. }
  143. function fGetRefInfo(){
  144. init_grid();
  145. submit("TRMMR03102"); //apchdd 리스트
  146. submit("TRMMR03101"); // 아파치 리스트 가져오기
  147. // 원본 데이터 그리드 : datagrid2
  148. // 그래프 생성 될 데이터 그리드 : grd_apachelist
  149. // 티챠트가 거지 같아서 그리드 이름은 꼭 datagrid1 이어야 제대로 가져 온다.
  150. // 원본 데이터 갯수
  151. var row_cnt = datagrid2.rows; // 아파치 전체 리스트
  152. var day_cnt = grd_apchday.rows; // 아파치 작성일자 리스트
  153. // 캡션 날짜, inputdate의 최소 날짜에서 최대 날짜 까지를 그리드에 몽땅 그려 준다.
  154. var min_date = "2100-12-31";
  155. var max_date = "2000-12-31";
  156. // min,max 날짜 구하기 , full search 할 수 밖에 없다.
  157. // for( i = 1 ; i < row_cnt ; i++ ){
  158. // if( min_date > datagrid2.textmatrix(i,7)){
  159. // min_date = datagrid2.textmatrix(i,7);
  160. // }
  161. //
  162. // if( max_date < datagrid2.textmatrix(i,7)){
  163. // max_date = datagrid2.textmatrix(i,7);
  164. // }
  165. // }
  166. for( i = 1 ; i < day_cnt ; i++ ){
  167. if( min_date > grd_apchday.textmatrix(i,0)){
  168. min_date = grd_apchday.textmatrix(i,0);
  169. }
  170. if( max_date < grd_apchday.textmatrix(i,0)){
  171. max_date = grd_apchday.textmatrix(i,0);
  172. }
  173. }
  174. // 구한 날짜를 날짜 형식으로 변형한다. ( 날짜가 하루씩 증가해야 하니까.. )
  175. var minyear = min_date.substr(0,4);
  176. var minmon = min_date.substr(4,2);
  177. var minday = min_date.substr(6,2);
  178. // 날짜 계산을 위해서 여기서 1달 작은 값을 넣고 밑에서는 +1달을 해 준다.
  179. // 월을 0~11 까지로 출력하기 때문에 이런 뻘짓이 필요하다. 이렇게 안 하면 내년에 1월이 00으로 찍힌다.
  180. var tmp_min_date = new Date(minyear,minmon-1,minday);
  181. // 성능 대박 향상을 위한 caption_tmp!!! 컬럼 추가 될때 마다 캡션값을 입력하면 컬럼 하나씩 들어가는게 눈에 보인다.
  182. // 고로.. 변수에 저장해 두었다가 마지막에 찍어 주자.
  183. var caption_tmp = grd_apachelist.caption;
  184. // 날짜가 하루 더 많다. 그래서 하루 빼줬다.
  185. tmp_min_date.setDate(tmp_min_date.getDate()-1);
  186. // 컬럼 추가, 그리드 캡션 지정
  187. for(k = 1; k < day_cnt; k++){
  188. tmp_min_date.setDate(tmp_min_date.getDate()+1);
  189. // 그리드에서 비교를 위해 날짜 포맷 설정
  190. ty = tmp_min_date.getYear();
  191. tm = tmp_min_date.getMonth()+1;
  192. td = tmp_min_date.getDate();
  193. if(tm < 10)
  194. tm = "0" + tm;
  195. if(td < 10)
  196. td = "0" + td;
  197. tt = ty + "-" + tm + "-" + td;
  198. to = ty + tm + td;
  199. s = "A";
  200. d = "D";
  201. a = "D(Adjusted)";
  202. // 최대날짜까지 컬럼 추가
  203. grd_apachelist.addColumn("ref:s" + tt + s + ";; type: output;",false);
  204. //grd_apachelist.colWidth(grd_apachelist.cols-12) = 80;
  205. grd_apachelist.addColumn("ref:d" + tt + d + ";; type: output;",false);
  206. //grd_apachelist.colWidth(grd_apachelist.cols-13) = 80;
  207. grd_apachelist.addColumn("ref:a" + tt + a + ";; type: inputbutton;",false);
  208. //grd_apachelist.colWidth(grd_apachelist.cols-14) = 80;
  209. }
  210. for(j = 1; j < day_cnt; j++){
  211. //아파치 작성일자 추가
  212. //아파치 일자와 그리드 날짜가 동일할 때
  213. if(grd_apachelist.textmatrix(0,(13+3*j-3)) != grd_apchday.textmatrix(j,0)){
  214. grd_apachelist.textmatrix(0,(13+3*j-3)) = grd_apchday.textmatrix(j,0); //날짜는 0 로우에..add_row_cnt-i-1
  215. grd_apachelist.textmatrix(0,(14+3*j-3)) = grd_apchday.textmatrix(j,0);
  216. grd_apachelist.textmatrix(0,(15+3*j-3)) = grd_apchday.textmatrix(j,0);
  217. grd_apachelist.textmatrix(1,(13+3*j-3)) = "A"; //항목은 1 로우에
  218. grd_apachelist.colWidth(13+3*j-3) = 80;
  219. grd_apachelist.textmatrix(1,(14+3*j-3)) = "D";
  220. grd_apachelist.colWidth(14+3*j-3) = 80;
  221. grd_apachelist.textmatrix(1,(15+3*j-3)) = "D(Adjusted)";
  222. grd_apachelist.colWidth(15+3*j-3) = 80;
  223. }
  224. }
  225. // 로우 생성, subteam,dev 입력
  226. var add_row_cnt = 2;
  227. var col_cnt = 12;
  228. var cmp_dev = "시작은암것두엄는거다";
  229. var cmp_team = "시작은암것두엄는거다";
  230. var cmp_day = "시작은암것두엄는거다";
  231. // 원본 데이터를 첨 부터 끝까지 읽어 내려가면서 그래프 기준이 될 데이터 그리드를 생성한다.
  232. for( i = 1 ; i < row_cnt ; i++ ){
  233. // 앞에 이름과 현재 로우의 dev가 다르면 로우를 추가한다. (dev로 sort 해서 가져 왔심)
  234. // 앞에 이름과 같은데 팀이 달라도 로우를 추가 한다. 두탕 뛰는 개발자 색출
  235. if (cmp_dev != datagrid2.textmatrix(i,0) || (cmp_dev == datagrid2.textmatrix(i,0) && cmp_team != datagrid2.textmatrix(i,1))){
  236. grd_apachelist.addRow(false);
  237. // fixed컬럼에 dev, subteam에 해당팀, 개발자 입력
  238. //grd_apachelist.textmatrix(add_row_cnt,0) = datagrid2.textmatrix(i,0);
  239. grd_apachelist.textmatrix(add_row_cnt,1) = datagrid2.textmatrix(i,0);
  240. grd_apachelist.textmatrix(add_row_cnt,2) = datagrid2.textmatrix(i,1);
  241. grd_apachelist.textmatrix(add_row_cnt,3) = datagrid2.textmatrix(i,2);
  242. grd_apachelist.textmatrix(add_row_cnt,4) = datagrid2.textmatrix(i,3);
  243. grd_apachelist.textmatrix(add_row_cnt,5) = datagrid2.textmatrix(i,4);
  244. grd_apachelist.textmatrix(add_row_cnt,6) = datagrid2.textmatrix(i,5);
  245. grd_apachelist.textmatrix(add_row_cnt,7) = datagrid2.textmatrix(i,6);
  246. grd_apachelist.textmatrix(add_row_cnt,8) = datagrid2.textmatrix(i,7);
  247. grd_apachelist.textmatrix(add_row_cnt,9) = datagrid2.textmatrix(i,8);
  248. grd_apachelist.textmatrix(add_row_cnt,10) = datagrid2.textmatrix(i,9);
  249. grd_apachelist.textmatrix(add_row_cnt,11) = datagrid2.textmatrix(i,10);
  250. add_row_cnt = add_row_cnt + 1;
  251. }
  252. //아파치 일자와 그리드 날짜가 동일할 때
  253. // alert("add_row_cnt : " + add_row_cnt);
  254. // alert("그리드날짜 datagrid2.textmatrix(i,7) : " + datagrid2.textmatrix(i,7));
  255. // alert("그리드날짜 grd_apachelist.textmatrix(0,(8+3*i-3)) : " + grd_apachelist.textmatrix(0,(8+3*i-3)));
  256. // if(grd_apachelist.textmatrix(0,(8+3*i-3)) != datagrid2.textmatrix(i,7)){
  257. // grd_apachelist.textmatrix(0,(8+3*i-3)) = datagrid2.textmatrix(i,7); //날짜는 0 로우에..add_row_cnt-i-1
  258. // grd_apachelist.textmatrix(0,(9+3*i-3)) = datagrid2.textmatrix(i,7);
  259. // grd_apachelist.textmatrix(0,(10+3*i-3)) = datagrid2.textmatrix(i,7);
  260. // alert("빼기 add_row_cnt : " + add_row_cnt);
  261. // grd_apachelist.textmatrix(1,(8+3*i-3)) = "A"; //항목은 1 로우에
  262. // grd_apachelist.textmatrix(1,(9+3*i-3)) = "D";
  263. // grd_apachelist.textmatrix(1,(10+3*i-3)) = "D(Adjusted)";
  264. // }
  265. //// }else{
  266. //// alert("로우추가 날짜가 같을 때 add_row_cnt : " + add_row_cnt);
  267. //// grd_apachelist.textmatrix(add_row_cnt-i-2,(8+3*i-3)) = datagrid2.textmatrix(i,7);
  268. //// grd_apachelist.textmatrix(add_row_cnt-i-2,(9+3*i-3)) = datagrid2.textmatrix(i,7);
  269. //// grd_apachelist.textmatrix(add_row_cnt-i-2,(10+3*i-3)) = datagrid2.textmatrix(i,7);
  270. ////
  271. //// grd_apachelist.textmatrix(add_row_cnt-i-1,(8+3*i-3)) = "A";
  272. //// grd_apachelist.textmatrix(add_row_cnt-i-1,(9+3*i-3)) = "D";
  273. //// grd_apachelist.textmatrix(add_row_cnt-i-1,(10+3*i-3)) = "D(Adjusted)";
  274. //// }
  275. //
  276. // 데이터 맵핑
  277. for ( c = 13 ; c < grd_apachelist.cols ; c+=3 ){
  278. // input date가 같다면 해당 셀에 데이터 맵핑
  279. if (grd_apachelist.textmatrix(0,c) == datagrid2.textmatrix(i,11)){
  280. // 통계 데이터 맵핑
  281. grd_apachelist.textmatrix(add_row_cnt-1,c) = datagrid2.textmatrix(i,12); //apchscore
  282. grd_apachelist.textmatrix(add_row_cnt-1,c+1) = datagrid2.textmatrix(i,13); //dethrate
  283. grd_apachelist.textmatrix(add_row_cnt-1,c+2) = datagrid2.textmatrix(i,14); //adjusted
  284. }else{
  285. if(grd_apachelist.textmatrix(add_row_cnt-1,c) == ""){
  286. // 빈 셀은 0으로 채워 준다 -> 값이 비었을 경우 티차트에서 에러 발생.
  287. grd_apachelist.textmatrix(add_row_cnt-1,c) = "0"; //apchscore
  288. grd_apachelist.textmatrix(add_row_cnt-1,c+1) = "0"; //dethrate
  289. }
  290. }
  291. var colNum = grd_apachelist.colRef("graph");
  292. grd_apachelist.cellstyle("background-image", add_row_cnt-1, 12) = "../../../emr/anstrecweb/images/barchart.gif"
  293. grd_apachelist.cellstyle("background-position", add_row_cnt-1, 12) = "center center"
  294. }
  295. // 현재 행의 개발자,Subteam 을 저장해 두었다가 다음 행과 비교한다.
  296. cmp_dev = datagrid2.textmatrix(i,0);
  297. cmp_team = datagrid2.textmatrix(i,1);
  298. cmp_day = datagrid2.textmatrix(i,10);
  299. }
  300. /*
  301. var cols = grd_apachelist.cols-grd_apachelist.fixedCols;
  302. var rows = grd_apachelist.rows-grd_apachelist.fixedRows;
  303. for( var i = grd_apachelist.cols; i >= grd_apachelist.fixedCols; i-- ) {
  304. grd_apachelist.deleteColumn(i,"false");
  305. }
  306. for( var j = grd_apachelist.cols; j >= grd_apachelist.fixedCols; j-- ) {
  307. grd_apachelist.deleteRow(j,"false");
  308. }
  309. model.removeNodeset("/root/main/apachelist");
  310. if(getNodesetCount("/root/main/apachelist/row") > 0) {
  311. if(grd_prescond.rows-grd_prescond.fixedRows < 4) {
  312. grd_prescond.addRow(false);
  313. grd_prescond.addRow(false);
  314. grd_prescond.addRow(false);
  315. }
  316. var pid = "";
  317. var hngnm ="";
  318. var sexage ="";
  319. var depthngnm ="";
  320. var fromdd = "";
  321. var todd ="";
  322. var ining ="";
  323. var score ="";
  324. var dethrate = "";
  325. var scorea ="";
  326. for(k=1; k <= getNodesetCount("/root/main/apachelist/row"); k++ ) {
  327. deptnm = model.getValue("/root/main/apachelist/row["+ k +"]/pid");
  328. hngnm = model.getValue("/root/main/apachelist/row["+ k +"]/hngnm");
  329. sexage = model.getValue("/root/main/apachelist/row["+ k +"]/sexage");
  330. depthngnm = model.getValue("/root/main/apachelist/row["+ k +"]/depthngnm");
  331. fromdd = model.getValue("/root/main/apachelist/row["+ k +"]/fromdd");
  332. todd = model.getValue("/root/main/apachelist/row["+ k +"]/todd");
  333. ining = model.getValue("/root/main/apachelist/row["+ k +"]/ining");
  334. score = model.getValue("/root/main/apachelist/row["+ k +"]/score");
  335. dethrate = model.getValue("/root/main/apachelist/row["+ k +"]/dethrate");
  336. scorea = model.getValue("/root/main/apachelist/row["+ k +"]/scorea");
  337. if(deptnm != tempdeptnm ) {
  338. grd_prescond.addColumn("ref:"+ deptnm +"; type:output;text-align:center;", false);
  339. caption = caption + "^"+ deptnm;
  340. grd_prescond.valueMatrix(1, grd_prescond.cols-1) = "0";
  341. grd_prescond.valueMatrix(2, grd_prescond.cols-1) = "0";
  342. tempdeptnm = deptnm;
  343. }
  344. }
  345. model.refresh();
  346. submit("TRMMR03101");
  347. model.resetInstanceNode("/root/send");
  348. var gridCaption = model.getValue("/root/hidden/temp/apachelist/header/caption");
  349. var gridCaption2 = model.getValue("/root/hidden/temp/apachelist/header/caption2");
  350. //20080613 if(gridCaption == "") return;
  351. //ref 정보
  352. var gridColRef = model.getValue("/root/hidden/temp/apachelist/header/colref");
  353. var gridColRefArray = gridColRef.split("^");
  354. var gridColType = model.getValue("/root/hidden/temp/apachelist/header/type");
  355. var gridColTypeArray = gridColType.split("^");
  356. if(gridColRef == "") return;
  357. for( var i = 0; i < gridColRefArray.length; i++ ) {
  358. grd_apachelist.addColumn("ref:" + gridColRefArray[i] + "; type:"+gridColTypeArray[i]+"; ", false);
  359. }
  360. grd_apachelist.colWidth(1) = 120;
  361. grd_apachelist.colWidth(4) = 30;
  362. grd_apachelist.colWidth(5) = 15;
  363. for( i = 6; i < grd_apachelist.cols; i++ ) {
  364. grd_apachelist.colWidth(i) = 50;
  365. }
  366. grd_apachelist.caption = gridCaption;
  367. var node = instance1.selectSingleNode("/root/main");
  368. node.replaceChild(instance1.root.hidden.temp.apachelist, instance1.root.main.apachelist);
  369. grd_apachelist.rowheight(0) = 30;
  370. grd_apachelist.rebuild();
  371. grd_apachelist.colstyle(2, "data", "text-align") = "left";
  372. grd_apachelist.colStyle(4, "data", "background-color") = "#ff99cc";
  373. grd_apachelist.colStyle(5, "data", "background-color") = "#ff99cc";
  374. // copyNodeset("/root/main/apachelist/row", "/root/hidden/temp/apachelist/row");
  375. */
  376. }
  377. function init_grid(){
  378. // 컬럼 캡션 초기화
  379. grd_apachelist.caption = "환자번호^성명^S/A^AGE^ORDDD^CRETNO^진료과^입실일자^퇴실일자^퇴실일자2^ICU재원기간^그래프보기|환자번호^성명^S/A^AGE^ORDDD^CRETNO^진료과^입실일자^퇴실일자^퇴실일자2^ICU재원기간^그래프보기";
  380. var cols = grd_apachelist.cols-grd_apachelist.fixedCols+1;
  381. for( var i = 0; i < cols; i++ ) {
  382. //그리드의 컬럼 삭제
  383. grd_apachelist.removeColumn(false);
  384. }
  385. // 노드 초기화
  386. model.removeNodeset("/root/main/apachelist/list/apch");
  387. model.removeNodeset("/root/grd_temp/grid");
  388. model.resetInstanceNode("/root/grd_temp/grid");
  389. model.resetInstanceNode("/root/main/apachelist/list/apch");
  390. }
  391. ]]>
  392. </script>
  393. </xhtml:head>
  394. <xhtml:body pagewidth="1190" pageheight="750">
  395. <shape id="roundrect2" appearance="roundrect" ellipsewidth="20" ellipseheight="20" style="left:470px; top:96px; width:640px; height:24px; "/>
  396. <datagrid id="grd_apachelist" nodeset="/root/grd_temp/grid" caption="환자번호^성명^S/A^AGE^입원일자^원무번호^진료과^입실일자^퇴실일자^퇴실일자2^ICU재원기간^그래프보기|환자번호^성명^S/A^AGE^입원일자^원무번호^진료과^입실일자^퇴실일자^퇴실일자2^ICU재원기간^그래프보기" colsep="^" colwidth="70, 100, 50, 0, 0, 0, 120, 70, 70, 0, 50, 45" dataheight="25" defaultrows="0" explorerbar="sort" extendlastcol="scroll" fixedcols="13" mergecellsfixedrows="bycolrec" rowheader="seq" rowheight="30" rowsep="|" tooltip="true" style="left:5px; top:128px; width:1178px; height:615px; text-align:center; ">
  397. <col ref="pid"/>
  398. <col ref="hngnm"/>
  399. <col ref="sexage"/>
  400. <col ref="age" visibility="hidden"/>
  401. <col ref="orddd" visibility="hidden"/>
  402. <col ref="cretno" visibility="hidden"/>
  403. <col ref="depthngnm"/>
  404. <col ref="fromdd"/>
  405. <col ref="todd"/>
  406. <col ref="todd2" visibility="hidden"/>
  407. <col ref="ining"/>
  408. <col ref="graph"/>
  409. <script type="javascript" ev:event="onaftersort">
  410. <![CDATA[
  411. grd_apachelist.gridToInstance();
  412. model.refresh();
  413. ]]>
  414. </script>
  415. <script type="javascript" ev:event="onbuttonclick">
  416. <![CDATA[
  417. var iRow = grd_apachelist.row - grd_apachelist.fixedRows+1;
  418. var iCol = grd_apachelist.col;
  419. if (iCol != 12) {
  420. setParameter("SPMMR03200_pid", model.getValue("/root/grd_temp/grid["+ iRow +"]/pid"));
  421. setParameter("SPMMR03200_hngnm", model.getValue("/root/grd_temp/grid["+ iRow +"]/hngnm"));
  422. setParameter("SPMMR03200_orddd", model.getValue("/root/grd_temp/grid["+ iRow +"]/orddd"));
  423. setParameter("SPMMR03200_cretno", model.getValue("/root/grd_temp/grid["+ iRow +"]/cretno"));
  424. var apchdd = grd_apachelist.textmatrix(0,iCol)
  425. setParameter("SPMMR03200_apchdd", apchdd);
  426. setParameter("SPMMR03200_age", model.getValue("/root/grd_temp/grid["+ iRow +"]/age"));
  427. setParameter("SPMMR03200_fromdd", model.getValue("/root/grd_temp/grid["+ iRow +"]/fromdd"));
  428. var fromdd = model.getValue("/root/grd_temp/grid["+ iRow +"]/fromdd");
  429. setParameter("SPMMR03200_todd", model.getValue("/root/grd_temp/grid["+ iRow +"]/todd"));
  430. if(apchdd < fromdd){
  431. messageBox("입실일자 ","E012");
  432. return;
  433. }else{
  434. //modal("SPMMR03200", "", "", "", "", "/root/send/param", "/root/send");
  435. window.load("SPMMR03200_아파치기록정보.xrw", "modeless", "pop1", "width:900px; height:980;");
  436. inputEnterKey("btn_srch", "DOMActivate");
  437. }
  438. }
  439. ]]>
  440. </script>
  441. <script type="javascript" ev:event="onclick">
  442. <![CDATA[
  443. var iRow = grd_apachelist.row - grd_apachelist.fixedRows+1;
  444. var iCol = grd_apachelist.col;
  445. if(grd_apachelist.isCell(event.target) && grd_apachelist.row >= grd_apachelist.fixedRows){
  446. if (iCol == 12) {
  447. setParameter("SPMMR03300_pid", model.getValue("/root/grd_temp/grid["+ iRow +"]/pid"));
  448. setParameter("SPMMR03300_fromdd", model.getValue("/root/grd_temp/grid["+ iRow +"]/fromdd"));
  449. setParameter("SPMMR03300_todd", model.getValue("/root/grd_temp/grid["+ iRow +"]/todd"));
  450. setParameter("SPMMR03300_orddd", model.getValue("/root/grd_temp/grid["+ iRow +"]/orddd"));
  451. setParameter("SPMMR03300_range", model.getValue("/root/send/range"));
  452. setParameter("SPMMR03300_status", model.getValue("/root/send/status"));
  453. setParameter("SPMMR03300_ward", model.getValue("/root/send/ward"));
  454. setParameter("SPMMR03300_orddept", model.getValue("/root/send/orddept"));
  455. setParameter("SPMMR03300_outchk", model.getValue("/root/send/outchk"));
  456. setParameter("SPMMR03300_scorechk", model.getValue("/root/send/scorechk"));
  457. setParameter("SPMMR03300_scoredown", model.getValue("/root/send/scoredown"));
  458. setParameter("SPMMR03300_scoreup", model.getValue("/root/send/scoreup"));
  459. window.load("SPMMR03300_아파치환자그래프.xrw", "modeless", "pop1", "left:300px; top:100px; width:700px; height:780;");
  460. }
  461. }
  462. ]]>
  463. </script>
  464. </datagrid>
  465. <shape id="roundrect1" appearance="roundrect" ellipsewidth="10" ellipseheight="10" style="left:5px; top:25px; width:1178px; height:65px; background-color:#fffbf2; border-color:#ffd799; "/>
  466. <caption id="caption6" class="tit_1" style="left:0px; top:0px; width:106px; height:18px; ">APACHE II</caption>
  467. <line id="line13" class="line_4" style="x1:1075px; y1:30px; x2:1075px; y2:87px; "/>
  468. <line id="line12" class="line_1" style="x1:5px; y1:123px; x2:1184px; y2:123px; "/>
  469. <caption id="caption17" class="tit_2" style="left:8px; top:101px; width:95px; height:13px; ">환자리스트</caption>
  470. <button id="btn_srchall" class="btn1_letter2" style="left:1105px; top:48px; width:56px; height:22px; ">
  471. <caption>조회</caption>
  472. <script type="javascript" ev:event="DOMActivate">
  473. <![CDATA[
  474. //init_grid();
  475. //fGetRefInfo();
  476. fTermSearch();
  477. model.refresh();
  478. ]]>
  479. </script>
  480. </button>
  481. <button id="btn_excel" class="btn2_letter4" style="left:1120px; top:99px; width:64px; height:19px; ">
  482. <caption>엑셀저장</caption>
  483. <script type="javascript" ev:event="DOMActivate">
  484. <![CDATA[
  485. var fileName = window.fileDialog("save", ",", false, "excel", "xls", "Excel Files(*.xls)|*.xls|All Files (*.*)|*.*");
  486. if (fileName != "")
  487. {
  488. grd_apachelist.saveExcel(fileName, "SheetName", true, false, "", "", true);
  489. }
  490. ]]>
  491. </script>
  492. </button>
  493. <caption id="caption4" style="left:480px; top:98px; width:621px; height:20px; ">* A : APACHE|| score (점) D : Predicted death rate (%) D(Adjusted) : Predicted death rate (%)</caption>
  494. <input id="ipt_reqstnddd" ref="/root/send/stnddd" class="input_essential" inputtype="date" format="yyyy-mm-dd" style="left:105px; top:33px; width:95px; height:19px; ">
  495. <script type="javascript" ev:event="xforms-value-changed">
  496. <![CDATA[
  497. model.setValue("/root/send/stnddd", model.getValue("/root/send/stnddd"));
  498. model.refresh();
  499. ]]>
  500. </script>
  501. </input>
  502. <input id="ipt_reqenddd" ref="/root/send/enddd" class="input_essential" inputtype="date" format="yyyy-mm-dd" style="left:220px; top:33px; width:95px; height:19px; ">
  503. <script type="javascript" ev:event="xforms-value-changed">
  504. <![CDATA[
  505. model.setValue("/root/send/enddd", model.getValue("/root/send/enddd"));
  506. model.refresh();
  507. ]]>
  508. </script>
  509. </input>
  510. <select1 id="cmb_icu" ref="/root/send/ward" class="combo_search" appearance="minimal" style="left:695px; top:35px; width:130px; height:19px; ">
  511. <choices>
  512. <itemset nodeset="/root/init/ward/icudept">
  513. <label ref="deptnm"/>
  514. <value ref="deptcd"/>
  515. </itemset>
  516. </choices>
  517. <script type="javascript" ev:event="xforms-value-changed">
  518. <![CDATA[
  519. model.setValue("/root/send/ward", model.getValue("/root/send/ward"));
  520. model.refresh();
  521. ]]>
  522. </script>
  523. </select1>
  524. <select id="opt_scorechk" ref="/root/send/scorechk" overflow="visible" appearance="full" style="left:175px; top:65px; width:190px; height:15px; border-style:none; ">
  525. <choices>
  526. <item>
  527. <label>APACHE Score 20점 이하</label>
  528. <value>Y</value>
  529. </item>
  530. </choices>
  531. </select>
  532. <caption id="caption1" style="left:205px; top:35px; width:15px; height:15px; ">~</caption>
  533. <caption id="caption2" class="search_name" style="left:20px; top:33px; width:80px; height:17px; ">조회기준</caption>
  534. <caption id="caption3" class="search_name" style="left:835px; top:35px; width:85px; height:17px; ">진 료 과</caption>
  535. <select1 id="cmb_term" ref="/root/send/range" class="combo_search" appearance="minimal" style="left:320px; top:33px; width:60px; height:19px; ">
  536. <choices>
  537. <item>
  538. <label/>
  539. <value>0</value>
  540. </item>
  541. <item>
  542. <label>3개월</label>
  543. <value>90</value>
  544. </item>
  545. <item>
  546. <label>6개월</label>
  547. <value>180</value>
  548. </item>
  549. <item>
  550. <label>9개월</label>
  551. <value>270</value>
  552. </item>
  553. <item>
  554. <label>1년</label>
  555. <value>365</value>
  556. </item>
  557. <item>
  558. <label>2년</label>
  559. <value>730</value>
  560. </item>
  561. </choices>
  562. <script type="javascript" ev:event="xforms-value-changed">
  563. <![CDATA[
  564. var date2 = ipt_reqenddd.value;
  565. var term = cmb_term.value;
  566. ipt_reqstnddd.value = date2.toDate().getAddDate(-term,"D").getDateFormat("YYYYMMDD") ;
  567. ]]>
  568. </script>
  569. </select1>
  570. <select id="opt_scoreup" ref="/root/send/scoreup" overflow="visible" appearance="full" style="left:590px; top:65px; width:180px; height:15px; border-style:none; ">
  571. <choices>
  572. <item>
  573. <label>APACHE Score 26점 이상</label>
  574. <value>Y</value>
  575. </item>
  576. </choices>
  577. </select>
  578. <select1 id="cmb_orddeptcd" ref="/root/send/orddept" class="combo_search" appearance="minimal" style="left:910px; top:35px; width:130px; height:19px; ">
  579. <choices>
  580. <itemset nodeset="/root/init/orddept/dept">
  581. <label ref="depthngnm"/>
  582. <value ref="deptcd"/>
  583. </itemset>
  584. </choices>
  585. <script type="javascript" ev:event="xforms-value-changed">
  586. <![CDATA[
  587. model.setValue("/root/send/orddept", model.getValue("/root/send/orddept"));
  588. model.refresh();
  589. ]]>
  590. </script>
  591. </select1>
  592. <select id="opt_outchk" ref="/root/send/outchk" overflow="visible" appearance="full" style="left:40px; top:65px; width:100px; height:15px; border-style:none; ">
  593. <choices>
  594. <item>
  595. <label>퇴실환자 포함</label>
  596. <value>Y</value>
  597. </item>
  598. </choices>
  599. </select>
  600. <select1 id="rdo_status" ref="/root/send/status" appearance="full" cellspacing="8" cols="3" rows="1" overflow="visible" style="left:385px; top:35px; width:210px; height:15px; border-style:none; ">
  601. <choices>
  602. <item>
  603. <label>재원중</label>
  604. <value>0</value>
  605. </item>
  606. <item>
  607. <label>퇴실일자</label>
  608. <value>1</value>
  609. </item>
  610. <item>
  611. <label>입실일자</label>
  612. <value>2</value>
  613. </item>
  614. </choices>
  615. </select1>
  616. <caption id="caption29" class="search_name" style="left:610px; top:35px; width:85px; height:17px; ">중환자실</caption>
  617. <select id="opt_scoredown" ref="/root/send/scoredown" overflow="visible" appearance="full" style="left:385px; top:65px; width:175px; height:15px; border-style:none; ">
  618. <choices>
  619. <item>
  620. <label>APACHE Score 21 ~ 25점</label>
  621. <value>Y</value>
  622. </item>
  623. </choices>
  624. </select>
  625. <datagrid id="datagrid2" nodeset="/root/main/apachelist/list/apch" visibility="hidden" caption="환자번호^성명^S/A^AGE^ORDDD^CRETNO^진료과^입실일자^퇴실일자^퇴실일자2^ICU재원기간^작성일자^1^2^3" colsep="^" colwidth="60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60" dataheight="23" defaultrows="0" extendlastcol="scroll" fixedcols="12" mergecellsfixedrows="bycolrec" rowheight="23" rowsep="|" tooltip="true" style="left:70px; top:370px; width:905px; height:230px; ">
  626. <col ref="pid"/>
  627. <col ref="hngnm"/>
  628. <col ref="sexage"/>
  629. <col ref="age"/>
  630. <col ref="orddd"/>
  631. <col ref="cretno"/>
  632. <col ref="depthngnm"/>
  633. <col ref="fromdd"/>
  634. <col ref="todd"/>
  635. <col ref="todd2"/>
  636. <col ref="ining"/>
  637. <col ref="apchdd"/>
  638. <col ref="apchscore"/>
  639. <col ref="dethrate"/>
  640. <col ref="adjusted"/>
  641. </datagrid>
  642. <datagrid id="grd_apchday" nodeset="/root/main/apachelist/apchday/apchddlist" visibility="hidden" caption="작성일자" colsep="^" colwidth="60" dataheight="23" defaultrows="0" extendlastcol="scroll" fixedcols="8" mergecellsfixedrows="bycolrec" rowheight="23" rowsep="|" tooltip="true" style="left:1000px; top:370px; width:65px; height:230px; ">
  643. <col ref="apchdd"/>
  644. </datagrid>
  645. </xhtml:body>
  646. </xhtml:html>