SPMMO08600_관심슬립관리.xrw 31 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698
  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>관심슬립관리</xhtml:title>
  6. <model id="model1">
  7. <instance id="instance1">
  8. <root xmlns="">
  9. <main>
  10. <cond>
  11. <slipnm/>
  12. <useyn/>
  13. <status/>
  14. <slipno/>
  15. <sliphistno/>
  16. <sliptypecd>C</sliptypecd>
  17. <slipkindcd>P</slipkindcd>
  18. <userid/>
  19. <alertcdflag>01</alertcdflag>
  20. <alertgrde/>
  21. </cond>
  22. <info>
  23. <concslipinfo>
  24. <concsliplist>
  25. <slipnm/>
  26. <useyn/>
  27. <slipno/>
  28. <userid/>
  29. <sliphistno/>
  30. <sliptypecd/>
  31. <slipkindcd/>
  32. <alertgrde/>
  33. </concsliplist>
  34. </concslipinfo>
  35. <testiteminfo>
  36. <testitemlist>
  37. <testnm/>
  38. <testitemnm/>
  39. <refhval/>
  40. <reflval/>
  41. <testcd/>
  42. <slipno/>
  43. <testitemcd/>
  44. <hvalappflag/>
  45. <lvalappflag/>
  46. <rsltunit/>
  47. <sliphistno/>
  48. <alertcdflag/>
  49. </testitemlist>
  50. </testiteminfo>
  51. </info>
  52. </main>
  53. <send>
  54. <reqdata/>
  55. <savedata/>
  56. </send>
  57. <hidden/>
  58. <init>
  59. <alertgrdelist/>
  60. </init>
  61. </root>
  62. </instance>
  63. <script type="javascript">
  64. <![CDATA[//bind : 상한값상태나 하한값상태가 선택된 경우만 수정가능]]>
  65. </script>
  66. <bind id="bind1" ref="/root/main/info/testiteminfo/testitemlist/refhval" readonly="../hvalappflag = 'N'"/>
  67. <bind id="bind2" ref="/root/main/info/testiteminfo/testitemlist/reflval" readonly="../lvalappflag = 'N'"/>
  68. <script type="javascript" ev:event="xforms-ready">
  69. <![CDATA[
  70. // 공통코드를 조회한다.
  71. zbcfGetCodeList( new Array("M0517"), new Array( "/root/init/alertgrdelist") );
  72. model.setValue("/root/main/cond/alertgrde", "M04"); //알람방법:조회
  73. model.setValue("/root/main/cond/alertcdflag", "01"); //알람구분:진단검사
  74. //그리드 초기화
  75. model.removeNodeset("/root/main/info/concslipinfo/concsliplist");
  76. model.removeNodeset("/root/main/info/testiteminfo/testitemlist");
  77. model.refresh();
  78. //슬립명 입력창을 비활성화
  79. ipt_slipnm.disabled = 'ture';
  80. //관심슬립을 조회
  81. if (model.getValue ("/root/main/cond/slipkindcd") == "P" ){
  82. model.setValue("/root/main/cond/userid", getUserInfo("userid"));
  83. } else if ( model.getValue ("/root/main/cond/slipkindcd") == "D" ) {
  84. model.setValue("/root/main/cond/userid", getUserInfo("dutplcecd"));
  85. }
  86. model.copyNode("/root/send/reqdata","/root/main/cond");
  87. submit("TRMMO08601");
  88. //관심슬립 첫행의 검사항목을 조회
  89. // if (model.getValue ("/root/main/cond/slipkindcd") == "P" ){
  90. // model.setValue("/root/main/info/concslipinfo/concsliplist/userid", getUserInfo("userid"));
  91. // } else if ( model.getValue ("/root/main/cond/slipkindcd") == "D" ) {
  92. // model.setValue("/root/main/info/concslipinfo/concsliplist/userid", getUserInfo("dutplcecd"));
  93. // }
  94. model.copyNode("/root/send/reqdata","/root/main/info/concslipinfo/concsliplist[" + 1 + "]");
  95. if (model.getValue ("/root/main/cond/slipkindcd") == "P" ){
  96. model.setValue("/root/main/cond/userid", getUserInfo("userid"));
  97. } else if ( model.getValue ("/root/main/cond/slipkindcd") == "D" ) {
  98. model.setValue("/root/main/cond/userid", getUserInfo("dutplcecd"));
  99. }
  100. appendChildPrcp ( "/root/main/cond/userid", "/root/send/reqdata", "main" );
  101. submit("TRMMO08602");
  102. var slipnm = model.getValue("/root/main/info/concslipinfo/concsliplist/slipnm");
  103. var slipno = model.getValue("/root/main/info/concslipinfo/concsliplist/slipno");
  104. var sliphistno = model.getValue("/root/main/info/concslipinfo/concsliplist/sliphistno"); //2008.12.16
  105. var useyn = model.getValue("/root/main/info/concslipinfo/concsliplist/useyn");
  106. //첫 시작시 슬립이 선택된 상태에서 시작하게 하기
  107. grd_concslip.row = 1;
  108. model.setValue("/root/main/cond/slipno",slipno);
  109. model.setValue("/root/main/cond/sliphistno",sliphistno);
  110. if(useyn == 'Y'){
  111. yn = 'true';
  112. }else{
  113. yn = 'false';
  114. }
  115. //입력창을 비활성화하고 값을 세팅한다
  116. ipt_slipnm.disabled = 'true';
  117. ipt_slipnm.value = slipnm;
  118. bol_useyn.value = yn;
  119. //검사항목 리스트에서 검사명과 상태검사명을 병합
  120. grd_testitemnvalrslt.mergeCellsFixedRows = "byrow";
  121. grd_testitemnvalrslt.mergecol(6) = false;
  122. grd_testitemnvalrslt.mergecol(7) = false;
  123. grd_testitemnvalrslt.mergecol(8) = false;
  124. grd_testitemnvalrslt.mergecol(9) = false;
  125. grd_testitemnvalrslt.mergecol(10) = false;
  126. grd_testitemnvalrslt.mergecells = "bycol";
  127. // var rows = grd_testitemnvalrslt.rows - grd_testitemnvalrslt.fixedRows;
  128. //
  129. // if(rows > 1){
  130. // for(var i = 1; i <= rows ; i++){
  131. // var hflag = model.getValue("/root/main/info/testiteminfo/testitemlist[" + i + "]/hvalappflag");
  132. // var lflag = model.getValue("/root/main/info/testiteminfo/testitemlist[" + i + "]/lvalappflag");
  133. // if(hflag == 'Y'){
  134. // model.setValue("/root/main/info/testiteminfo/testitemlist[" + i + "]/hvalappflag", 'true');
  135. // }else{
  136. // model.setValue("/root/main/info/testiteminfo/testitemlist[" + i + "]/hvalappflag", 'false');
  137. // }
  138. // if(lflag == 'Y'){
  139. // model.setValue("/root/main/info/testiteminfo/testitemlist[" + i + "]/lvalappflag", 'true');
  140. // }else{
  141. // model.setValue("/root/main/info/testiteminfo/testitemlist[" + i + "]/lvalappflag", 'false');
  142. // }
  143. // }
  144. // }
  145. // model.refresh();
  146. ]]>
  147. </script>
  148. <submission id="TRZBC00101" mediatype="application/x-www-form-urlencoded" method="post"/>
  149. <submission id="TRMMO08601" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/reqdata" resultref="/root/main/info/concslipinfo"/>
  150. <submission id="TXMMO08601" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" resultref="/root/main/info"/>
  151. <submission id="TRMMO08602" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/reqdata" resultref="/root/main/info/testiteminfo"/>
  152. <submission id="TXMMO08602" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" resultref="/root/main/info"/>
  153. </model>
  154. <script type="javascript" src="../../../com/commonweb/js/common.js"/>
  155. <script type="javascript" src="../../../com/commonweb/js/tfHelper.js"/>
  156. <script type="javascript" src="../../../com/commonweb/js/dateHelper.js"/>
  157. <script type="javascript" src="../../../emr/prcpmngtweb/js/MMO001.js"/>
  158. <script type="javascript" src="../../../com/basiccodeweb/js/ZBC001.js"/>
  159. </xhtml:head>
  160. <xhtml:body guideline="1,1191;" style="margin-left:8; margin-top:0; margin-right:8; margin-bottom:0; ">
  161. <caption id="caption1" class="tit_1" style="left:0px; top:0px; width:140px; height:13px; ">관심슬립</caption>
  162. <caption id="caption6" class="tit_2" style="left:0px; top:24px; width:175px; height:13px; text-align:left; ">관심슬립 등록</caption>
  163. <line id="line3" class="line_1" style="x1:0px; y1:40px; x2:460px; y2:40px; "/>
  164. <caption id="caption2" class="cell_1" style="left:0px; top:45px; width:70px; height:23px; vertical-align:middle; ">슬립명</caption>
  165. <input id="ipt_slipnm" ref="/root/main/cond/slipnm" class="input_search" imemode="alpha" style="left:72px; top:47px; width:268px; height:19px; "/>
  166. <caption id="caption3" class="tit_2" style="left:0px; top:104px; width:175px; height:13px; text-align:left; ">관심슬립 리스트</caption>
  167. <line id="line2" class="line_1" style="x1:0px; y1:120px; x2:460px; y2:120px; "/>
  168. <datagrid id="grd_concslip" nodeset="/root/main/info/concslipinfo/concsliplist" autoresize="true" caption="슬립명^슬립번호^사용여부" colsep="^" colwidth="370, 0, 60" extendlastcol="noscroll" mergecellsfixedrows="bycolrec" rowheader="seq" rowsep="|" style="left:0px; top:125px; width:460px; height:652px; ">
  169. <col ref="slipnm"/>
  170. <col ref="slipno" style="text-align:center; "/>
  171. <col ref="useyn" style="text-align:center; "/>
  172. <script type="javascript" ev:event="onclick">
  173. <![CDATA[
  174. ///수정를 원하는 로우를 얻어온다.
  175. var gridrow = grd_concslip.row;
  176. //선택된 로우 값들을 받아옴
  177. var slipno = model.getValue("/root/main/info/concslipinfo/concsliplist[" + gridrow + "]/slipno");
  178. var sliphistno = model.getValue("/root/main/info/concslipinfo/concsliplist[" + gridrow + "]/sliphistno"); //2008.12.16
  179. var slipnm = model.getValue("/root/main/info/concslipinfo/concsliplist[" + gridrow + "]/slipnm");
  180. var useyn = model.getValue("/root/main/info/concslipinfo/concsliplist[" + gridrow + "]/useyn");
  181. var alertgrde = model.getValue("/root/main/info/concslipinfo/concsliplist[" + gridrow + "]/alertgrde");
  182. //선택한 로우값을 입력창에 보여줌
  183. model.setValue("/root/main/cond/slipnm",slipnm);
  184. model.setValue("/root/main/cond/slipno",slipno);
  185. model.setValue("/root/main/cond/sliphistno",sliphistno);
  186. model.setValue("/root/main/cond/alertgrde",alertgrde);
  187. if(useyn == 'Y'){
  188. model.setValue("/root/main/cond/useyn",'true');
  189. }else{
  190. model.setValue("/root/main/cond/useyn",'false');
  191. }
  192. model.refresh();
  193. //수정가능하게 활성화
  194. ipt_slipnm.disabled = 'false';
  195. ]]>
  196. </script>
  197. <script type="javascript" ev:event="onclick">
  198. <![CDATA[
  199. ///수정를 원하는 로우를 얻어온다.
  200. var gridrow = grd_concslip.row;
  201. //코드값을 가지고 검사항목을 조회하러 간다
  202. model.copyNode("/root/send/reqdata","/root/main/info/concslipinfo/concsliplist[" + gridrow + "]");
  203. if (model.getValue ("/root/main/cond/slipkindcd") == "P" ){
  204. model.setValue("/root/main/cond/userid", getUserInfo("userid"));
  205. } else if ( model.getValue ("/root/main/cond/slipkindcd") == "D" ) {
  206. model.setValue("/root/main/cond/userid", getUserInfo("dutplcecd"));
  207. }
  208. appendChildPrcp ( "/root/main/cond/userid", "/root/send/reqdata", "main" );
  209. submit("TRMMO08602");
  210. model.setValue("/root/send/reqdata",'');
  211. //조회후 병합
  212. grd_testitemnvalrslt.mergecol(6) = false;
  213. grd_testitemnvalrslt.mergecol(7) = false;
  214. grd_testitemnvalrslt.mergecol(8) = false;
  215. grd_testitemnvalrslt.mergecol(9) = false;
  216. grd_testitemnvalrslt.mergecol(10) = false;
  217. grd_testitemnvalrslt.mergecells = "bycol";
  218. //checkvalue="Y,N" 으로 인해 이소스를 사용할 필요 없음
  219. // var rows = grd_testitemnvalrslt.rows - grd_testitemnvalrslt.fixedRows;
  220. //
  221. // if(rows > 1){
  222. // for(var i = 1; i <= rows ; i++){
  223. // var hflag = model.getValue("/root/main/info/testiteminfo/testitemlist[" + i + "]/hvalappflag");
  224. // var lflag = model.getValue("/root/main/info/testiteminfo/testitemlist[" + i + "]/lvalappflag");
  225. // if(hflag == 'Y'){
  226. // model.setValue("/root/main/info/testiteminfo/testitemlist[" + i + "]/hvalappflag", 'true');
  227. // }else{
  228. // model.setValue("/root/main/info/testiteminfo/testitemlist[" + i + "]/hvalappflag", 'false');
  229. // }
  230. // if(lflag == 'Y'){
  231. // model.setValue("/root/main/info/testiteminfo/testitemlist[" + i + "]/lvalappflag", 'true');
  232. // }else{
  233. // model.setValue("/root/main/info/testiteminfo/testitemlist[" + i + "]/lvalappflag", 'false');
  234. // }
  235. // }
  236. // }
  237. // model.refresh();
  238. ]]>
  239. </script>
  240. </datagrid>
  241. <caption id="caption4" class="tit_2" style="left:469px; top:24px; width:150px; height:13px; text-align:left; ">검사항목</caption>
  242. <line id="line1" class="line_1" style="x1:464px; y1:40px; x2:1191px; y2:40px; "/>
  243. <datagrid id="grd_testitemnvalrslt" nodeset="/root/main/info/testiteminfo/testitemlist" caption="caption1^검사명^슬립번호^검사코드^상태검사코드^상태검사명^상한값^상한값^하한값^하한값^단위^슬립이력번호^알람구분" colsep="^" colwidth="25, 250, 0, 0, 0, 250, 30, 50, 30, 50, 50, 25, 20" extendlastcol="noscroll" mergecellsfixedrows="bycolrec" rowheader="update" rowsep="|" style="left:464px; top:40px; width:727px; height:737px; ">
  244. <col ref="userid" visibility="hidden"/>
  245. <col ref="testnm"/>
  246. <col ref="slipno"/>
  247. <col ref="testcd"/>
  248. <col ref="testitemcd"/>
  249. <col ref="testitemnm"/>
  250. <col checkvalue="Y,N" ref="hvalappflag" type="checkbox"/>
  251. <col ref="refhval" type="input" style="text-align:center; "/>
  252. <col checkvalue="Y,N" ref="lvalappflag" type="checkbox"/>
  253. <col ref="reflval" type="input" style="text-align:center; "/>
  254. <col ref="rsltunit" style="text-align:center; "/>
  255. <col ref="sliphistno" visibility="hidden"/>
  256. <col ref="alertcdflag" visibility="hidden"/>
  257. </datagrid>
  258. <button id="button1" class="btn4_letter2" style="left:346px; top:17px; width:56px; height:22px; ">
  259. <caption>신규</caption>
  260. <script type="javascript" ev:event="DOMActivate">
  261. <![CDATA[
  262. //관심슬립 그리드의 선택이 해제되게 하기
  263. grd_concslip.row=0;
  264. grd_concslip.col=0;
  265. //입력가능하게 입력값을 지우고 활성화
  266. ipt_slipnm.value = '';
  267. bol_useyn.value = 'false';
  268. ipt_slipnm.disabled = 'false';
  269. //상태값을 등록으로 만든다.
  270. model.setValue("/root/main/cond/status", 'i');
  271. model.setValue("/root/main/cond/slipno", '');
  272. model.setValue("/root/main/cond/slipnm", '');
  273. model.setValue("/root/main/cond/useyn", 'false');
  274. model.setValue("/root/main/cond/alertgrde", 'M04');
  275. //바로 입력가능 하게 포커스를 옮김
  276. model.setFocus("ipt_slipnm");
  277. //그리드를 지움
  278. model.removeNodeset("/root/main/info/testiteminfo/testitemlist");
  279. model.refresh();
  280. ]]>
  281. </script>
  282. </button>
  283. <button id="button3" class="btn4_letter2" style="left:404px; top:17px; width:56px; height:22px; ">
  284. <caption>저장</caption>
  285. <script type="javascript" ev:event="DOMActivate">
  286. <![CDATA[
  287. //현재 상태값을 받아옴
  288. var status = model.getValue("/root/main/cond/status");
  289. //삭제나 신규가 아닌 경우는 수정이므로 상태값을 입력
  290. if((status != 'i') && (status != 'd')){
  291. model.setValue("/root/main/cond/status", 'u');
  292. }
  293. // //신규인경우는 그리드의 총 개수를 받아옴
  294. // if(status == 'i'){
  295. // var gridrow = grd_concslip.rows - grd_concslip.fixedRows;
  296. // }else{
  297. // //신규가 아닌경우는 선택된 로우 값을 받아옴
  298. // var gridrow = grd_concslip.row;
  299. // }
  300. // model.removenode("/root/send/reqdata");
  301. // model.makeNode("/root/send/reqdata/no");
  302. // model.makeNode("/root/send/reqdata/nm");
  303. // model.makeNode("/root/send/reqdata/yn");
  304. // var slipno = model.getValue("/root/main/info/concslipinfo/concsliplist[" + gridrow + "]/slipno");
  305. // var slipnm = model.getValue("/root/main/info/concslipinfo/concsliplist[" + gridrow + "]/slipnm");
  306. // var useyn = model.getValue("/root/main/info/concslipinfo/concsliplist[" + gridrow + "]/useyn");
  307. // model.setValue("/root/send/reqdata/no",slipno);
  308. // model.setValue("/root/send/reqdata/nm",slipnm);
  309. // model.setValue("/root/send/reqdata/yn",useyn);
  310. var useyn = model.getValue("/root/main/cond/useyn");
  311. if(useyn == 'true'){
  312. model.setValue("/root/main/cond/useyn",'Y');
  313. }else{
  314. model.setValue("/root/main/cond/useyn",'N');
  315. }
  316. //관심슬립 등록, 수정
  317. model.copyNode("/root/send/savedata","");
  318. if (model.getValue ("/root/main/cond/slipkindcd") == "P" ){
  319. model.setValue("/root/main/cond/userid", getUserInfo("userid"));
  320. } else if ( model.getValue ("/root/main/cond/slipkindcd") == "D" ) {
  321. model.setValue("/root/main/cond/userid", getUserInfo("dutplcecd"));
  322. }
  323. model.copyNode("/root/send/reqdata","/root/main/cond");
  324. submit("TXMMO08601");
  325. //다시 초기화
  326. model.setValue("/root/main/cond/status", '');
  327. ipt_slipnm.disabled = 'ture';
  328. ipt_slipnm.value = '';
  329. ]]>
  330. </script>
  331. </button>
  332. <button id="button2" class="btn2_letter2" style="left:419px; top:98px; width:42px; height:19px; ">
  333. <caption>삭제</caption>
  334. <script type="javascript" ev:event="DOMActivate">
  335. <![CDATA[
  336. //멀티로 삭제를 원하는 로우를 얻어온다.
  337. var selectedRows = grd_concslip.selectedRows;
  338. //선택한 로우의 슬립명을 받아옴
  339. var slipno = new Array();
  340. //선택한 삭제로우행을 받아오기 위해 배열지정
  341. var row = new Array();
  342. //멀티로 선택한 로우행값,슬립번호을 받아옴
  343. for (var i= selectedRows-1 ; i >= 0 ; i--){
  344. row[i] = grd_concslip.selectedrow(i);
  345. slipno[i] = model.getValue("/root/main/info/concslipinfo/concsliplist[" + grd_concslip.selectedrow(i)+ "]/slipno");
  346. }
  347. xPath = "/root/main/info/concslipinfo/concsliplist";
  348. var savedata ="m▦slipnm▦useyn▦slipno▦sliphistno▦userid▩";
  349. for (var i= selectedRows-1 ; i >= 0 ; i--){
  350. model.setValue("/root/main/cond/slipno",slipno[i]);
  351. //삭제를 원하는 로우를 얻어온다.
  352. var no = slipno[i]
  353. //슬립번호가 비어있는 경우 메세지
  354. if(no == ''){
  355. messageBox("삭제할 관심슬립을 ", "C002");
  356. }else{
  357. savedata += 'd' + "▦";
  358. savedata += model.getValue(xPath+"["+ row[i] +"]/slipnm") + "▦";
  359. savedata += model.getValue(xPath+"["+ row[i] +"]/useyn") + "▦";
  360. savedata += model.getValue(xPath+"["+ row[i] +"]/slipno") + "▦";
  361. savedata += model.getValue(xPath+"["+ row[i] +"]/sliphistno") + "▦";
  362. if (model.getValue ("/root/main/cond/slipkindcd") == "P" ){
  363. var userid = getUserInfo("userid");
  364. savedata += userid+ "▩";
  365. } else if ( model.getValue ("/root/main/cond/slipkindcd") == "D" ) {
  366. var deptcd = getUserInfo("dutplcecd");
  367. savedata += deptcd+ "▩";
  368. }
  369. }
  370. }
  371. model.setValue("/root/send/savedata",savedata);
  372. model.copyNode("/root/send/reqdata","");
  373. //관심슬립 삭제(검사항목까지 같이 삭제)
  374. submit("TXMMO08601");
  375. ipt_slipnm.disabled = 'ture';
  376. ipt_slipnm.value = '';
  377. ]]>
  378. </script>
  379. </button>
  380. <line id="line4" class="line_3" style="x1:0px; y1:95px; x2:460px; y2:95px; "/>
  381. <button id="button7" class="btn2_letter2" style="left:1058px; top:18px; width:42px; height:19px; ">
  382. <caption>신규</caption>
  383. <script type="javascript" ev:event="DOMActivate">
  384. <![CDATA[
  385. //검사항목리스트의 총 개수
  386. var rows = grd_testitemnvalrslt.rows - grd_testitemnvalrslt.fixedRows;
  387. //수치검사항목 팝업으로 총개수를 넘겨줌
  388. setParameter("count", rows);
  389. //수치검사항목 팝업으로 코드 값을 넘겨주기 위해 코드 값을 받아옴
  390. for(var i = 1 ; i <= rows ; i++){
  391. var testitemcd = model.getValue("/root/main/info/testiteminfo/testitemlist[" + i + "]/testitemcd");
  392. //var testcd = model.getValue("/root/main/info/testiteminfo/testitemlist[" + i + "]/testcd");
  393. if(i == 1){
  394. setParameter("cd", testitemcd);
  395. }else{
  396. addParameter("cd", testitemcd);
  397. }
  398. }
  399. //관심슬립 리스트에 선택된 로우값을 받아옴
  400. var row = grd_concslip.row;
  401. //현재 관심슬립의 슬립번호를 받아옴
  402. var no = model.getValue("/root/main/cond/slipno");
  403. var histno = model.getValue("/root/main/cond/sliphistno");
  404. var alertcdflag = model.getValue("/root/main/cond/alertcdflag");
  405. //검사항목 총개수에서 하나씩 추가할 로우개수
  406. var usercount = 0;
  407. //관심슬립번호가 존재하지 않거나 현재 선택된 관심슬립이 없는경우 메세지
  408. if((row == -1) || (no == '')){
  409. messageBox("관심슬립을","C002");
  410. }else{
  411. //수치검사항목 팝업을 띠움
  412. //수정전 팝업
  413. //modal("SPMMB01300", "1","150", "150", "SPMMB01300", "", "");
  414. modal("SPMMB01500", "1","150", "150", "SPMMB01500", "", "");
  415. //검사항목 총 개수
  416. var gridrows = grd_testitemnvalrslt.rows;
  417. //수치검사항목 팝업에서 넘겨받은 신규로 등록한 개수
  418. var count = model.getValue("/root/hidden/testiteminfo/count");
  419. //수치검사항목에서 넘겨받은 데이타의 사용여부
  420. var useyn = model.getValue("/root/hidden/testiteminfo/useyn");
  421. //수치검사항목에서 넘겨받은 데이타의 사용여부가 yes인경우 (확인)
  422. if(useyn == 'Y'){
  423. //신규로 등록한 개수 대로 나타내기
  424. for(var i=1; i<=count ; i++){
  425. //중복여부 변수
  426. var dupl = 0;
  427. //검사항목 총개수
  428. var rows = grd_testitemnvalrslt.rows - grd_testitemnvalrslt.fixedRows;
  429. //검사항목 총개수에서 로우를 증가를 위한 값
  430. usercount = rows + 1 ;
  431. //수치검사항목 팝업창에서 받아옴 데이타를 하나씩 받아옴
  432. var testcd = model.getValue("/root/hidden/testiteminfo/testitemlist[" + i + "]/testcd");
  433. var testitemcd = model.getValue("/root/hidden/testiteminfo/testitemlist[" + i + "]/testitemcd");
  434. var testnm = model.getValue("/root/hidden/testiteminfo/testitemlist[" + i + "]/testnm");
  435. var testitemnm = model.getValue("/root/hidden/testiteminfo/testitemlist[" + i + "]/testitemnm");
  436. var rsltunit = model.getValue("/root/hidden/testiteminfo/testitemlist[" + i + "]/rsltunit");
  437. // if(testnm != ''){
  438. // //model.makeNode("/root/main/testiteminfo/testitemlist[" + i + "]/testnm");
  439. // model.setValue("/root/main/testiteminfo/testitemlist[" + i + "]/testnm",testnm);
  440. // }else{
  441. // //model.makeNode("/root/main/testiteminfo/testitemlist[" + i + "]/testnm");
  442. // model.setValue("/root/main/tstiteminfo/testitemlist[" + i + "]/testnm이",'');
  443. // }
  444. // model.makeNode("/root/main/testiteminfo/testitemlist[" + count + "]/slipno");
  445. // model.makeNode("/root/main/testiteminfo/testitemlist[" + count + "]/testcd");
  446. //신규로 받아온 데이타의 검사코드와 현재 있는 검사코드가 같은 경우가 있는지 확인
  447. for(var j= 1 ; j<=rows ; j++){
  448. var usertestcd = model.getValue("/root/main/info/testiteminfo/testitemlist[" + j + "]/testitemcd");
  449. //var usertestnm = model.getValue("/root/main/info/testiteminfo/testitemlist[" + j + "]/testitemnm");
  450. //중복된 코드가 잇는 경우 메세지 출력
  451. if(testitemcd == usertestcd){
  452. //messageBox(usertestnm + " 검사명이","E006");
  453. dupl = dupl + 1;
  454. }
  455. }
  456. //중복된 코드가 없는 경우 그리드에 신규로 추가
  457. if(dupl == 0){
  458. grd_testitemnvalrslt.addRow(false);
  459. model.setValue("/root/main/info/testiteminfo/testitemlist[" + usercount + "]/testcd",testcd);
  460. model.setValue("/root/main/info/testiteminfo/testitemlist[" + usercount + "]/testitemcd",testitemcd);
  461. model.setValue("/root/main/info/testiteminfo/testitemlist[" + usercount + "]/testnm",testnm);
  462. model.setValue("/root/main/info/testiteminfo/testitemlist[" + usercount + "]/testitemnm",testitemnm);
  463. model.setValue("/root/main/info/testiteminfo/testitemlist[" + usercount + "]/slipno",no);
  464. model.setValue("/root/main/info/testiteminfo/testitemlist[" + usercount + "]/sliphistno",histno);
  465. model.setValue("/root/main/info/testiteminfo/testitemlist[" + usercount + "]/refhval",'0');
  466. model.setValue("/root/main/info/testiteminfo/testitemlist[" + usercount + "]/reflval",'0');
  467. model.setValue("/root/main/info/testiteminfo/testitemlist[" + usercount + "]/hvalappflag",'Y');
  468. model.setValue("/root/main/info/testiteminfo/testitemlist[" + usercount + "]/lvalappflag",'Y');
  469. model.setValue("/root/main/info/testiteminfo/testitemlist[" + usercount + "]/rsltunit",rsltunit); //2008.12.16 JJE
  470. model.setValue("/root/main/info/testiteminfo/testitemlist[" + usercount + "]/alertcdflag",alertcdflag); //2008.12.16 JJE
  471. }
  472. }
  473. model.refresh();
  474. }
  475. }
  476. ]]>
  477. </script>
  478. </button>
  479. <button id="button8" class="btn2_letter2" style="left:1103px; top:18px; width:42px; height:19px; ">
  480. <caption>삭제</caption>
  481. <script type="javascript" ev:event="DOMActivate">
  482. <![CDATA[
  483. //삭제를 원하는 로우를 얻어온다.
  484. var selectedRows = grd_testitemnvalrslt.selectedRows;
  485. //선택한 삭제로우행을 받아오기 위해 배열지정
  486. var row = new Array();
  487. //멀티로 선택한 로우행값을 받아옴
  488. for (i= selectedRows-1; i >= 0; i--){
  489. row[i] = grd_testitemnvalrslt.selectedrow(i);
  490. }
  491. //선택한 로우가 없는 경우 메세지
  492. if(selectedRows == 0){
  493. messageBox("삭제할검사항목을 ", "C002");
  494. }else{
  495. xPath = "/root/main/info/testiteminfo/testitemlist";
  496. var savedata ="userid▦m▦testnm▦testitemnm▦refhval▦reflval▦testcd▦slipno▦sliphistno▦testitemcd▦hvalappflag▦lvalappflag▦rsltunit▩";
  497. for (i= selectedRows-1; i >= 0; i--){
  498. if (model.getValue ("/root/main/cond/slipkindcd") == "P" ){
  499. var userid = getUserInfo("userid");
  500. savedata += userid+ "▦";
  501. } else if ( model.getValue ("/root/main/cond/slipkindcd") == "D" ) {
  502. var deptcd = getUserInfo("dutplcecd");
  503. savedata += deptcd+ "▦";
  504. }
  505. savedata += 'd' + "▦";
  506. savedata += model.getValue(xPath+"["+ row[i] +"]/testnm") + "▦";
  507. savedata += model.getValue(xPath+"["+ row[i] +"]/testitemnm" ) + "▦";
  508. savedata += model.getValue(xPath+"["+ row[i] +"]/refhval" ) + "▦";
  509. savedata += model.getValue(xPath+"["+ row[i] +"]/reflval" ) + "▦";
  510. savedata += model.getValue(xPath+"["+ row[i] +"]/testcd" ) + "▦";
  511. savedata += model.getValue(xPath+"["+ row[i] +"]/slipno" ) + "▦";
  512. savedata += model.getValue(xPath+"["+ row[i] +"]/sliphistno" ) + "▦";
  513. savedata += model.getValue(xPath+"["+ row[i] +"]/testitemcd" ) + "▦";
  514. savedata += model.getValue(xPath+"["+ row[i] +"]/hvalappflag" ) + "▦";
  515. savedata += model.getValue(xPath+"["+ row[i] +"]/lvalappflag" ) + "▦";
  516. savedata += model.getValue(xPath+"["+ row[i] +"]/rsltunit" ) + "▩";
  517. }
  518. //멀티로 원한 데이타를 가지고 삭제하러 간다
  519. //model.copyNode("/root/send/reqdata","");
  520. model.setValue("/root/send/savedata",savedata);
  521. //검사항목을 삭제
  522. submit("TXMMO08602");
  523. }
  524. model.refresh();
  525. //검사명, 상태검사명 병합
  526. grd_testitemnvalrslt.mergecol(6) = false;
  527. grd_testitemnvalrslt.mergecol(7) = false;
  528. grd_testitemnvalrslt.mergecol(8) = false;
  529. grd_testitemnvalrslt.mergecol(9) = false;
  530. grd_testitemnvalrslt.mergecol(10) = false;
  531. grd_testitemnvalrslt.mergecells = "bycol";
  532. ]]>
  533. </script>
  534. </button>
  535. <button id="button9" class="btn5_letter2" style="left:1149px; top:18px; width:42px; height:19px; ">
  536. <caption>저장</caption>
  537. <script type="javascript" ev:event="DOMActivate">
  538. <![CDATA[
  539. //검사항목 등록이나, 수정인경우 저장하러 간다~
  540. var grd_concslip_row = grd_concslip.row;
  541. var userid = getUserInfo("userid");
  542. var deptcd = getUserInfo("dutplcecd");
  543. if( ! getGridUpdateData(grd_testitemnvalrslt) ){
  544. messageBox("입력","E013"); // 그리드에 데이터가 업데이트 되지 않으면 "입력된 데이터가 없습니다."는 메시지 출력
  545. return ;
  546. }
  547. for (var i=1; i <= grd_testitemnvalrslt.rows-1; i++){
  548. // model.makeValue("/root/main/info/testiteminfo/testitemlis["+ i +"]/dept",userid);
  549. if (model.getValue ("/root/main/cond/slipkindcd") == "P" ){
  550. grd_testitemnvalrslt.textmatrix(i,1) = userid;
  551. // model.makeValue("/root/main/info/testiteminfo/testitemlis["+ i +"]/dept",userid);
  552. } else if ( model.getValue ("/root/main/cond/slipkindcd") == "D" ) {
  553. grd_testitemnvalrslt.textmatrix(i,1) = deptcd;
  554. // model.makeValue("/root/main/info/testiteminfo/testitemlis["+ i +"]/dept",deptcd);
  555. }
  556. }
  557. // if (model.getValue ("/root/main/cond/slipkindcd") == "P" ){
  558. // model.setValue("/root/send/savedata",userid + "▦" + grd_testitemnvalrslt.getUpdateData());
  559. // } else if ( model.getValue ("/root/main/cond/slipkindcd") == "D" ) {
  560. // model.setValue("/root/send/savedata",deptcd+ "▦" + grd_testitemnvalrslt.getUpdateData());
  561. // }
  562. model.setValue("/root/send/savedata",grd_testitemnvalrslt.getUpdateData());
  563. model.copyNode("/root/send/reqdata","/root/main/cond"); //2008.12.16
  564. submit("TXMMO08602",false);
  565. grd_testitemnvalrslt.mergecol(6) = false;
  566. grd_testitemnvalrslt.mergecol(7) = false;
  567. grd_testitemnvalrslt.mergecol(8) = false;
  568. grd_testitemnvalrslt.mergecol(9) = false;
  569. grd_testitemnvalrslt.mergecol(10) = false;
  570. grd_testitemnvalrslt.mergecells = "bycol";
  571. grd_concslip.row = grd_concslip_row;
  572. grd_concslip.dispatch("onclick");
  573. //model.refresh();
  574. ]]>
  575. </script>
  576. </button>
  577. <caption id="caption5" class="cell_1" style="left:345px; top:45px; width:70px; height:23px; vertical-align:middle; ">사용여부</caption>
  578. <bool id="bol_useyn" ref="/root/main/cond/useyn" style="left:415px; top:45px; width:40px; height:20px; "/>
  579. <caption id="caption7" class="cell_1" style="left:0px; top:70px; width:70px; height:23px; vertical-align:middle; ">분류구분</caption>
  580. <select1 id="rdo_kindflag" ref="/root/main/cond/slipkindcd" appearance="full" cellspacing="10" cols="2" overflow="visible" style="left:74px; top:73px; width:90px; height:15px; font-weight:bold; border-style:none; ">
  581. <choices>
  582. <item>
  583. <label>개인</label>
  584. <value>P</value>
  585. </item>
  586. <item>
  587. <label>과</label>
  588. <value>D</value>
  589. </item>
  590. </choices>
  591. <script type="javascript" ev:event="xforms-value-changed">
  592. <![CDATA[
  593. if (model.getValue ("/root/main/cond/slipkindcd") == "P" ){
  594. model.setValue("/root/main/cond/userid", getUserInfo("userid"));
  595. } else if ( model.getValue ("/root/main/cond/slipkindcd") == "D" ) {
  596. model.setValue("/root/main/cond/userid", getUserInfo("dutplcecd"));
  597. }
  598. model.copyNode("/root/send/reqdata","/root/main/cond");
  599. model.removeNodeset("/root/main/info/concslipinfo/concsliplist");
  600. model.removeNodeset("/root/main/info/testiteminfo/testitemlist");
  601. model.setValue("/root/main/cond/slipnm", '');
  602. model.setValue("/root/main/cond/useyn", 'false');
  603. model.refresh();
  604. //슬립명 입력창을 비활성화
  605. ipt_slipnm.disabled = 'ture';
  606. //관심슬립을 조회
  607. submit("TRMMO08601");
  608. ]]>
  609. </script>
  610. </select1>
  611. <select id="checkbox1" ref="/root/main/cond/sliptypecd" visibility="hidden" overflow="visible" appearance="full" style="left:195px; top:15px; width:145px; height:20px; border-style:none; ">
  612. <choices>
  613. <item>
  614. <label>슬립형태_일반임상의용</label>
  615. <value>C</value>
  616. </item>
  617. <item>
  618. <label>슬립형태_감염관리_격리주의</label>
  619. <value>A</value>
  620. </item>
  621. </choices>
  622. </select>
  623. <select1 id="combo1" ref="/root/main/cond/alertcdflag" class="input_s_essential" visibility="hidden" appearance="minimal" style="left:135px; top:15px; width:55px; height:19px; ">
  624. <choices>
  625. <item>
  626. <label>진단검사</label>
  627. <value>01</value>
  628. </item>
  629. <item>
  630. <label>핵의학체외검사</label>
  631. <value>02</value>
  632. </item>
  633. </choices>
  634. </select1>
  635. <select1 id="radio1" ref="/root/main/cond/alertgrde" visibility="hidden" appearance="full" cellspacing="10" cols="3" overflow="visible" style="left:243px; top:73px; width:220px; height:15px; border-style:none; ">
  636. <choices>
  637. <itemset nodeset="/root/init/alertgrdelist/M0517">
  638. <label ref="cdnm"/>
  639. <value ref="cdid"/>
  640. </itemset>
  641. </choices>
  642. </select1>
  643. <caption id="caption8" class="cell_1" visibility="hidden" style="left:169px; top:70px; width:70px; height:23px; vertical-align:middle; ">알람방법</caption>
  644. </xhtml:body>
  645. </xhtml:html>