SMLRR01600_Bonemarrow결과관리.xrw 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409
  1. <?xml version="1.0" encoding="EUC-KR"?>
  2. <?xml-stylesheet href="../../../com/commonweb/css/common.css" ztype="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. </root>
  10. </instance>
  11. </model>
  12. <script type="javascript">
  13. <![CDATA[
  14. //이미지 콤보 박스 조회
  15. function fImgRslt(cmb, cpt, img){
  16. cmb = document.controls.item(cmb);
  17. cpt = document.controls.item(cpt);
  18. fimg = document.controls.item(img);
  19. model.copyNode("/root/send/data1" , "/root/main/testinfo/spcltestinfo");
  20. if(model.getValue("/root/main/testinfo/spcltestinfo/testcd") == "LSI113") { //ld 이미지
  21. submit("TRLRR01501");
  22. model.makeNode("/root/main/imglistld"); //ld history 노드 생성
  23. copyNodeType("/root/main/imglistld", "/root/main/imglist"); //history 이동
  24. model.removenode("/root/main/imglist"); //이전 history 노드 삭제
  25. if(getNodesetCount("/root/main/imglistld/rsltseqno") > 0){ //history가 존재하면 이미지 조회
  26. cmb.value = model.getvalue("/root/main/imglistld/rsltseqno");
  27. fImgRef(img);
  28. fimg.attribute("visibility") = "visible";
  29. cpt.attribute("visibility") = "hidden";
  30. }else { //history가 없으면 no_img 띄움.
  31. fimg.attribute("visibility") = "hidden";
  32. cpt.attribute("visibility") = "visible";
  33. }
  34. } else {
  35. submit("TRLRR01501");
  36. if(getNodesetCount("/root/main/imglist/rsltseqno") > 0){ //history가 존재하면 이미지 조회
  37. cmb.value = model.getvalue("/root/main/imglist/rsltseqno");
  38. fImgRef(img);
  39. fimg.attribute("visibility") = "visible";
  40. cpt.attribute("visibility") = "hidden";
  41. }else { //history가 없으면 no_img 띄움.
  42. fimg.attribute("visibility") = "hidden";
  43. cpt.attribute("visibility") = "visible";
  44. }
  45. }
  46. model.removeNodeset("/root/send/data1");
  47. model.makeNode("/root/send/data1");
  48. model.refresh();
  49. }
  50. //판독예문 조회
  51. function fRsltCode(gridID){
  52. gridObj = document.all(gridID);
  53. model.removeNodeset("/root/main/rsltcode");
  54. model.refresh();
  55. var vTestcd = model.getvalue("/root/main/testinfo/spcltestinfo/testcd");
  56. if(model.getValue("/root/main/rslt/desc/rslt/refflag") == "01") { //Bone Marrow는 콤보
  57. cmb_exmp.choices.itemset.attribute("nodeset") = "/root/init/readrslt[etc03='" + vTestcd + "']";
  58. } else { //나머지는 그리드이므로.
  59. if(gridID != "") { //판독예문 창을 띄어 수정한 후
  60. var cdNodes = instance1.selectNodes("/root/init/readrslt[etc03='" + vTestcd + "']/cd");
  61. var cdNodes2 = instance1.selectNodes("/root/init/readrslt[etc03='" + vTestcd + "']/nm");
  62. var vRstcontLower ="";
  63. var vRstcontUpper = "";
  64. for (i = 1; i <= cdNodes.length; i++) {
  65. var cd = cdNodes.item(i - 1).text;
  66. var nm = cdNodes2.item(i - 1).text;
  67. gridObj.addRow(false);
  68. model.setvalue("/root/main/rsltcode["+i+"]/cd" , cd);
  69. model.setvalue("/root/main/rsltcode["+i+"]/nm" , nm);
  70. }
  71. if(cdNodes.length > 0)
  72. model.refresh();
  73. } else { //특수검사 조회시에는 그리드아이디를 보내지 않는다. 어느 검사인지 알수 없기에..
  74. var cdNodes = instance1.selectNodes("/root/init/readrslt[etc03='" + vTestcd + "']/cd");
  75. var cdNodes2 = instance1.selectNodes("/root/init/readrslt[etc03='" + vTestcd + "']/nm");
  76. var vRstcontLower ="";
  77. var vRstcontUpper = "";
  78. for (i = 1; i <= cdNodes.length; i++) {
  79. var cd = cdNodes.item(i - 1).text;
  80. var nm = cdNodes2.item(i - 1).text;
  81. model.makeValue("/root/main/rsltcode["+ i +"]/cd" , cd);
  82. model.makeValue("/root/main/rsltcode["+ i +"]/nm" , nm);
  83. }
  84. if(cdNodes.length > 0)
  85. model.refresh();
  86. }
  87. }
  88. }
  89. ]]>
  90. </script>
  91. </xhtml:head>
  92. <xhtml:body style="margin-left:8; margin-top:0; margin-right:8; margin-bottom:0; ">
  93. <caption id="caption25" class="tit_2" style="left:10px; top:10px; width:115px; height:14px; ">CBC Result</caption>
  94. <line id="line1" class="line_1" style="x1:5px; y1:26px; x2:400px; y2:26px; "/>
  95. <line id="line2" class="line_1" style="x1:5px; y1:241px; x2:400px; y2:241px; "/>
  96. <caption id="caption26" class="tit_2" style="left:10px; top:225px; width:115px; height:13px; ">연관검사</caption>
  97. <line id="line10" class="line_1" style="x1:5px; y1:457px; x2:400px; y2:457px; "/>
  98. <caption id="caption27" class="tit_2" style="left:10px; top:441px; width:115px; height:13px; ">BM 이전결과</caption>
  99. <datagrid id="grd_bm_cbcrslt" nodeset="/root/main/rslt/desc/rslt/cbcrslt" caption="검사코드^검사명^결과^단위^보고일시^이전결과^inptrslt" colsep="^" colwidth="55, 95, 50, 50, 105, 65" dataheight="23" ellipsis="true" mergecellsfixedrows="bycolrec" rowheader="seq" rowheight="23" rowsep="|" tooltip="true" style="left:5px; top:31px; width:395px; height:185px; ">
  100. <col ref="testcd"/>
  101. <col ref="tclsnm"/>
  102. <col ref="reptrslt"/>
  103. <col ref="rsltunit"/>
  104. <col ref="lastreptdt" format="yyyy-mm-dd hh:nn"/>
  105. <col ref="bfreptrst"/>
  106. <script type="javascript" ev:event="onmousedown">
  107. <![CDATA[
  108. if ( (grd_bm_cbcrslt.row >= grd_bm_cbcrslt.fixedRows) && (grd_bm_cbcrslt.isCell(event.target))) {
  109. grd_bm_cbcrslt.row = grd_bm_cbcrslt.mouseRow;
  110. model.removenode("/root/hidden/popupmenu/grid");
  111. model.makeValue("/root/hidden/popupmenu/grid/item/name" , "▶ XE2100결과조회");
  112. model.makeValue("/root/hidden/popupmenu/grid/item/func" , "fXERslt");
  113. setPopupMenu("grd_bm_cbcrslt", false, "/root/hidden/popupmenu/grid/item", "name", "func");
  114. }
  115. ]]>
  116. </script>
  117. <script type="javascript" ev:event="DOMFocusOut">
  118. <![CDATA[
  119. initPopupMenu();
  120. ]]>
  121. </script>
  122. </datagrid>
  123. <datagrid id="grd_bm_relrslt" nodeset="/root/main/rslt/desc/rslt/testlist" caption="검사코드^검사명^결과^보고일시^참고치^이전결과" colsep="^" colwidth="55, 145, 50, 120, 60, 65" dataheight="23" rowheader="seq" rowheight="23" rowsep="|" style="left:5px; top:246px; width:395px; height:185px; ">
  124. <col ref="tclscd"/>
  125. <col ref="tclsscrnnm"/>
  126. <col ref="reptrslt"/>
  127. <col ref="lastreptdt" format="yyyy-mm-dd hh:nn"/>
  128. <col ref="ref"/>
  129. <col ref="bfreptrst"/>
  130. </datagrid>
  131. <datagrid id="grd_bm_bfbmrslt" nodeset="/root/main/rslt/desc/rslt/bfbm" caption="보고일시^특수검사연번호^결과^inptrslt" colsep="^" colwidth="105, 90, 174" dataheight="23" ellipsis="true" extendlastcol="scroll" frozencols="2" mergecellsfixedrows="bycolrec" rowheader="seq" rowheight="23" rowsep="|" tooltip="true" style="left:5px; top:462px; width:395px; height:185px; ">
  132. <col ref="lastreptdt" format="yyyy-mm-dd hh:nn"/>
  133. <col ref="spcltestno"/>
  134. <col ref="inter"/>
  135. </datagrid>
  136. <select1 id="cmb_exmp" ref="/root/hidden/readexmp" appearance="minimal" style="left:1010px; top:5px; width:180px; height:19px; ">
  137. <choices>
  138. <itemset nodeset="/root/init/readrslt">
  139. <label ref="nm"/>
  140. <value ref="cd"/>
  141. </itemset>
  142. </choices>
  143. <script type="javascript" ev:event="xforms-value-changed">
  144. <![CDATA[
  145. var val = model.getValue("/root/hidden/readexmp");
  146. // var etc02node = instance1.selectNodes("/root/init/readrslt[cd = '"+ val +"']/etc02");
  147. // var etc01node = instance1.selectNodes("/root/init/readrslt[cd = '"+ val +"']/etc01");
  148. var etc02node = instance1.selectNodes("/root/init/readrslt[cd = '"+ val +"' and etc03='"+ model.getvalue("/root/main/testinfo/spcltestinfo/testcd") +"']/etc02");
  149. var etc01node = instance1.selectNodes("/root/init/readrslt[cd = '"+ val +"' and etc03='"+ model.getvalue("/root/main/testinfo/spcltestinfo/testcd") +"']/etc01");
  150. var etc02 = etc02node.item(0).text;
  151. var etc01 = etc01node.item(0).text;
  152. model.setValue("/root/main/rslt/desc/rslt/inter", etc02);
  153. if(model.getValue("/root/hidden/readexmpadd") == "Y") {
  154. var read = model.getValue("/root/main/rslt/desc/rslt/readrslt");
  155. model.setValue("/root/main/rslt/desc/rslt/readrslt", read + etc01);
  156. } else {
  157. model.setValue("/root/main/rslt/desc/rslt/readrslt", etc01);
  158. }
  159. model.refresh();
  160. ]]>
  161. </script>
  162. </select1>
  163. <button id="button4" class="btn2_letter4" style="left:336px; top:220px; width:64px; height:19px; ">
  164. <caption>연관검사</caption>
  165. <script type="javascript" ev:event="DOMActivate">
  166. <![CDATA[
  167. modal("SMLLF00900");
  168. fGetRelRslt();
  169. ]]>
  170. </script>
  171. </button>
  172. <button id="button5" class="btn2_letter4" style="left:941px; top:5px; width:64px; height:19px; ">
  173. <caption>판독예문</caption>
  174. <script type="javascript" ev:event="DOMActivate">
  175. <![CDATA[
  176. modal("SMLLF02000 ","","","","","/root/main/testinfo/spcltestinfo/testcd","/root/hidden/testcd");
  177. submit("TRLRR00402");
  178. fRsltCode("");
  179. model.refresh();
  180. ]]>
  181. </script>
  182. </button>
  183. <button id="btn_bm_img" class="btn_sw" group="tab" select.background-image="../../../com/commonweb/images/tab_show.gif" style="left:493px; top:3px; width:90px; height:22px; ">
  184. <caption>이미지결과</caption>
  185. <script type="javascript" ev:event="DOMActivate">
  186. <![CDATA[
  187. model.toggle("bm_img");
  188. ]]>
  189. </script>
  190. </button>
  191. <button id="btn_bm_desc" class="btn_sw" group="tab" selected="true" select.background-image="../../../com/commonweb/images/tab_show.gif" style="left:404px; top:3px; width:89px; height:22px; ">
  192. <caption>서술결과</caption>
  193. <script type="javascript" ev:event="DOMActivate">
  194. <![CDATA[
  195. model.toggle("bm_desc");
  196. ]]>
  197. </script>
  198. </button>
  199. <select id="checkbox13" ref="/root/hidden/readexmpadd" overflow="visible" appearance="full" style="left:886px; top:7px; width:50px; height:20px; border-style:none; ">
  200. <choices>
  201. <item>
  202. <label>추가</label>
  203. <value>Y</value>
  204. </item>
  205. </choices>
  206. </select>
  207. <button id="button2" class="btn2_letter4" visibility="hidden" style="left:585px; top:5px; width:64px; height:19px; ">
  208. <caption>서식출력</caption>
  209. <script type="javascript" ev:event="DOMActivate">
  210. <![CDATA[
  211. /* model.setValue("/root/hidden/xslt/signno", model.getValue("/root/main/testinfo/spcltestinfo/signno"));
  212. model.setValue("/root/hidden/xslt/form", "0000002916");
  213. modal("SPLRR90900 ","","","","","/root/hidden/xslt","/root/init");*/
  214. var signno = model.getValue("/root/main/testinfo/spcltestinfo/signno");
  215. var formcd = model.getValue("/root/main/testinfo/spcltestinfo/formcd");//"0000002916";
  216. if(signno != 0) {
  217. setParameter("SPMRI02400_prtrecinfo","E▦" + signno + "▦" + formcd + "▩");
  218. modal("SPMRI02400");
  219. } else {
  220. messageBox("전문의 확인이 되지", "E007");
  221. }
  222. ]]>
  223. </script>
  224. </button>
  225. <switch id="switch1" class="sw_box" style="left:404px; top:25px; width:786px; height:625px; ">
  226. <case id="bm_img">
  227. <caption id="cpt_bm_noimg" class="no_image" style="left:0px; top:0px; width:210px; height:240px; vertical-align:middle; background-image:../../../com/commonweb/images/no_image.gif; "/>
  228. <select1 id="cmb_bm_seq" ref="/root/hidden/rsltseqno" class="combo_default" appearance="minimal" style="left:88px; top:4px; width:120px; height:19px; ">
  229. <choices>
  230. <itemset nodeset="/root/main/imglist">
  231. <label ref="lastupdtrdt"/>
  232. <value ref="rsltseqno"/>
  233. </itemset>
  234. </choices>
  235. <script type="javascript" ev:event="xforms-value-changed">
  236. <![CDATA[
  237. fImgRef("img_bm");
  238. ]]>
  239. </script>
  240. </select1>
  241. <button id="button22" class="btn2_letter7" style="left:210px; top:4px; width:97px; height:19px; ">
  242. <caption>이미지결과등록</caption>
  243. <script type="javascript" ev:event="DOMActivate">
  244. <![CDATA[
  245. if(model.getvalue("/root/main/testinfo/spcltestinfo/bcno") != ""){
  246. modal("SMLRR01500","", "", "","", "/root/main/testinfo/spcltestinfo", "/root/hidden/spcltestinfo");
  247. fImgRslt("cmb_bm_seq", "cpt_bm_noimg", "img_bm");
  248. }
  249. ]]>
  250. </script>
  251. </button>
  252. <caption id="caption17" class="cell_1" style="left:5px; top:2px; width:80px; height:23px; vertical-align:middle; ">History</caption>
  253. <img id="img_bm" ref="/root/main/view/imgrslt" src="../images/결과이미지.gif" style="left:5px; top:28px; width:775px; height:587px; background-stretch:stretch; "/>
  254. <img id="img3" visibility="hidden" style="left:305px; top:45px; width:365px; height:148px; background-color:#ff6600; background-stretch:stretch; "/>
  255. </case>
  256. <case id="bm_desc" selected="true">
  257. <button id="button44" class="btn2_letter7" style="left:484px; top:469px; width:97px; height:19px; ">
  258. <caption>IHC stain</caption>
  259. <script type="javascript" ev:event="DOMActivate">
  260. <![CDATA[
  261. if(grd_bm_ihc.attribute("visibility") == "visible") {
  262. grd_bm_ihc.attribute("visibility") = "hidden";
  263. }else {
  264. grd_bm_ihc.attribute("visibility") = "visible";
  265. }
  266. ]]>
  267. </script>
  268. </button>
  269. <textarea id="tar_bm_readrslt" ref="/root/main/rslt/desc/rslt/readrslt" style="left:0px; top:18px; width:780px; height:447px; font-size:11pt; "/>
  270. <button id="button17" class="btn2_letter7" style="left:584px; top:469px; width:97px; height:19px; ">
  271. <caption>Special stain</caption>
  272. <script type="javascript" ev:event="DOMActivate">
  273. <![CDATA[
  274. if(grd_bm_sst.attribute("visibility") == "visible") {
  275. grd_bm_sst.attribute("visibility") = "hidden";
  276. }else {
  277. grd_bm_sst.attribute("visibility") = "visible";
  278. }
  279. ]]>
  280. </script>
  281. </button>
  282. <textarea id="tar_bm_itpt" ref="/root/main/rslt/desc/rslt/inter" style="left:0px; top:491px; width:780px; height:55px; font-size:11pt; "/>
  283. <button id="button19" class="btn2_letter7" style="left:684px; top:469px; width:97px; height:19px; ">
  284. <caption>BM Diff.count</caption>
  285. <script type="javascript" ev:event="DOMActivate">
  286. <![CDATA[
  287. if(group2.attribute("visibility") == "visible") {
  288. var val = null;
  289. sum = 0;
  290. for(i = 1; i < grd_bm_diff.rows; i++) {
  291. if(model.getValue("/root/main/rslt/desc/rslt/bm/diff["+ i +"]/input") != "") {
  292. val = model.getValue("/root/main/rslt/desc/rslt/bm/diff["+ i +"]/input");
  293. sum += parseInt(val);
  294. }
  295. }
  296. if(sum < 100) {
  297. messageBox("BM Diff.count 값이 100보다 작습니다.", "E");
  298. }
  299. group2.attribute("visibility") = "hidden";
  300. }else {
  301. group2.attribute("visibility") = "visible";
  302. }
  303. ]]>
  304. </script>
  305. </button>
  306. <line id="line11" class="line_1" style="x1:0px; y1:13px; x2:780px; y2:13px; "/>
  307. <caption id="caption4" class="tit_2" style="left:5px; top:473px; width:115px; height:13px; ">Interpretation</caption>
  308. <caption id="caption5" class="tit_2" style="left:5px; top:549px; width:158px; height:13px; ">Comments</caption>
  309. <line id="line3" class="line_1" style="x1:0px; y1:486px; x2:780px; y2:486px; "/>
  310. <line id="line4" class="line_1" style="x1:0px; y1:561px; x2:780px; y2:561px; "/>
  311. <caption id="caption28" class="tit_2" style="left:5px; top:0px; width:115px; height:13px; ">판독결과</caption>
  312. <textarea id="tar_bm_comment" ref="/root/main/rslt/desc/rslt/comments" style="left:0px; top:567px; width:780px; height:55px; font-size:11pt; "/>
  313. <group id="group2" visibility="hidden" overflow="visible" style="left:510px; top:100px; width:270px; height:370px; ">
  314. <datagrid id="grd_bm_diff" nodeset="/root/main/rslt/desc/rslt/bm/diff" visibility="visible" caption="검사명^결과" colsep="^" colwidth="150, 100" mergecellsfixedrows="bycolrec" rowsep="|" style="left:0px; top:20px; width:270px; height:348px; ">
  315. <col ref="tclsnm" type="input"/>
  316. <col ref="input" type="input"/>
  317. <script type="javascript" ev:event="onendedit">
  318. <![CDATA[
  319. if((grd_bm_diff.isCell(event.target) && grd_bm_diff.row >= grd_bm_diff.fixedRows) && grd_bm_diff.col >= 1 ){
  320. var val = null;
  321. sum = 0;
  322. for(i = 1; i < grd_bm_diff.rows; i++) {
  323. if(model.getValue("/root/main/rslt/desc/rslt/diff["+ i +"]/input") != "") {
  324. val = model.getValue("/root/main/rslt/desc/rslt/diff["+ i +"]/input");
  325. sum += parseInt(val);
  326. }
  327. }
  328. if(sum > 100) {
  329. messageBox("BM Diff.count 값이 100", "E003");
  330. return;
  331. }
  332. }
  333. ]]>
  334. </script>
  335. </datagrid>
  336. <button id="button25" class="btn2_letter3" style="left:215px; top:0px; width:53px; height:19px; ">
  337. <caption>행추가</caption>
  338. <script type="javascript" ev:event="DOMActivate">
  339. <![CDATA[
  340. grd_bm_diff.addRow();
  341. ]]>
  342. </script>
  343. </button>
  344. </group>
  345. <datagrid id="grd_bm_sst" nodeset="/root/main/rslt/desc/rslt/bm/sst" visibility="hidden" caption="검사명^결과" colsep="^" colwidth="150, 100" mergecellsfixedrows="bycolrec" rowsep="|" style="left:427px; top:260px; width:253px; height:209px; ">
  346. <col ref="tclsnm"/>
  347. <col ref="input" type="input"/>
  348. </datagrid>
  349. <datagrid id="grd_bm_ihc" nodeset="/root/main/rslt/desc/rslt/bm/ihc" visibility="hidden" caption="검사명^결과" colsep="^" colwidth="150, 100" mergecellsfixedrows="bycolrec" rowsep="|" style="left:260px; top:265px; width:253px; height:204px; ">
  350. <col ref="tclsnm"/>
  351. <col ref="input" type="input"/>
  352. </datagrid>
  353. </case>
  354. </switch>
  355. <datagrid id="grd_rslt" nodeset="/root/main/testinfo/detailtestinfo" visibility="hidden" caption="chk^검사코드^검사명^결과^결과^inptrslt^bcno" colsep="^" colwidth="50, 100, 100, 100, 100, 10, 100" mergecellsfixedrows="bycolrec" rowsep="|" style="left:185px; top:380px; width:480px; height:120px; ">
  356. <col checkvalue="Y,N" ref="chk" type="checkbox"/>
  357. <col ref="testcd"/>
  358. <col ref="tclsscrnnm"/>
  359. <col ref="bufinptrslt" type="input"/>
  360. <col ref="reptrslt"/>
  361. <col ref="inptrslt"/>
  362. <col ref="bcno"/>
  363. </datagrid>
  364. <datagrid id="grd_lb0901" nodeset="/root/init/LB0901" visibility="hidden" caption="caption1^caption2^caption3" colsep="^" mergecellsfixedrows="bycolrec" rowsep="|" style="left:355px; top:180px; width:350px; height:150px; ">
  365. <col ref="cd"/>
  366. <col ref="nm"/>
  367. <col ref="etc04"/>
  368. </datagrid>
  369. </xhtml:body>
  370. </xhtml:html>