SMLQJ00500_미생물물질별결과관리.xrw 47 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919
  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>QC물질별결과관리</xhtml:title>
  6. <model id="model1">
  7. <instance id="instance1">
  8. <root xmlns="">
  9. <main>
  10. <acptlist>
  11. <rsltmark/>
  12. <bcno/>
  13. <matrnm/>
  14. <levlnm/>
  15. <matrcd/>
  16. <levlcd/>
  17. <acptdt/>
  18. </acptlist>
  19. <rsltinfo>
  20. <testrsltinfo>
  21. <chk/>
  22. <testnm/>
  23. <buforgrslt/>
  24. <viewrslt/>
  25. <judgmark/>
  26. <rsltstat/>
  27. <wgmrmark/>
  28. <wgmrstat/>
  29. <bcno/>
  30. <testcd/>
  31. <measfactcd/>
  32. <measfactcnts/>
  33. <judgkind/>
  34. <refkind/>
  35. <refflag/>
  36. <refl/>
  37. <refh/>
  38. <refls/>
  39. <refhs/>
  40. <orgrslt/>
  41. <rsltkind/>
  42. <wgmrscop/>
  43. <sdval/>
  44. <avg/>
  45. <rundkind/>
  46. <graphdispyn/>
  47. <refcval/>
  48. <intrsltfrmt/>
  49. <bfrslt1/>
  50. <rsltcnfmdt/>
  51. <bfrsltcnfmdt/>
  52. <bfrsltcnfmid/>
  53. <bfrslt2/>
  54. <bfrslt3/>
  55. <bfrslt4/>
  56. <bfrslt5/>
  57. <bfrslt6/>
  58. <bfrslt7/>
  59. <bfrslt8/>
  60. <bfrslt9/>
  61. <rsltunit/>
  62. <rsltrid/>
  63. </testrsltinfo>
  64. <spcinfo>
  65. <matrnm/>
  66. <levlnm/>
  67. <lotno/>
  68. <prodcmpy/>
  69. <eqmtnm/>
  70. </spcinfo>
  71. <spcinfo2>
  72. <wgmr/>
  73. <avg/>
  74. <sdval/>
  75. <refval/>
  76. <unit/>
  77. </spcinfo2>
  78. </rsltinfo>
  79. </main>
  80. <init/>
  81. <hidden>
  82. <bcno/>
  83. <acptfromdd/>
  84. <acpttodd/>
  85. <testroom>00</testroom>
  86. <eqmtcd>00</eqmtcd>
  87. <acptflag>00</acptflag>
  88. <matrcd/>
  89. <rsltstat>2</rsltstat>
  90. <check>0</check>
  91. </hidden>
  92. <send/>
  93. </root>
  94. </instance>
  95. <script type="javascript" ev:event="xforms-ready">
  96. <![CDATA[
  97. fSetInit();
  98. ]]>
  99. </script>
  100. <script type="javascript" src="../../../com/commonweb/js/common.js"/>
  101. <script type="javascript" src="../../../com/commonweb/js/tfHelper.js"/>
  102. <script type="javascript" src="../../../com/commonweb/js/dateHelper.js"/>
  103. <script type="javascript" src="../../../com/commonweb/js/numericHelper.js"/>
  104. <script type="javascript" src="../../../com/commonweb/js/stringHelper.js"/>
  105. <script type="javascript" src="../../../lis/commonweb/js/LQZ001.js"/>
  106. <submission id="TRLZZ00101" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" resultref="/root/LB0111"/>
  107. <submission id="TRLQJ00201" mediatype="application/x-www-form-urlencoded" method="post" ref="root/send" resultref="/root/main/acptlist"/>
  108. <submission id="TRLQJ00202" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" resultref="/root/main/rsltinfo"/>
  109. <submission id="TRLQJ00203" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" resultref="/root/main/rsltinfo/spcinfo2"/>
  110. <submission id="TXLQJ00201" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send"/>
  111. </model>
  112. <script type="javascript">
  113. <![CDATA[
  114. // 초기화 버튼
  115. function fSetInit(){
  116. model.removeNodeset("/root/main/acptlist");
  117. grd_acptList.rebuild();
  118. model.removeNodeset("/root/main/rsltinfo/testrsltinfo");
  119. grd_testRsltInfo.rebuild();
  120. model.resetInstanceNode("/root/main/rsltinfo");
  121. //grd_testRsltInfo.fixedcellcheckbox(0,1) = true;
  122. /*var cDate = getCurrentDate();
  123. var toDate = cDate.toDate().getAddDate(-1);
  124. model.setValue("/root/hidden/acptfromdd", toDate.getDateFormat()); //이전날짜로 셋팅할경우..*/
  125. model.setValue("/root/hidden/acptfromdd" , getCurrentDate());
  126. model.setValue("/root/hidden/acpttodd" , getCurrentDate());
  127. model.makeValue("/root/send/codeflag" ,"0000|0111|0701|0703|"); //0000:사용자부서코드, 0111:시행부서계 0701: 장비코드 0703: 조치사유
  128. submit("TRLZZ00101");
  129. model.setValue("/root/send/codeflag","0704|"); //0704: 접수구분
  130. model.makeValue("/root/send/basecdid", model.getValue("/root/init/LB0000/nm"));
  131. submit("TRLZZ00101");
  132. }
  133. //장비코드설정
  134. function fSetEqmtCd(){
  135. model.removeNodeset("/root/init/LB0701");
  136. model.makeValue("/root/send/basecdid", model.getValue("/root/hidden/testroom")); //검사실구분 코드(장비코드앞자리)
  137. model.makeValue("/root/send/codeflag","0701|");
  138. model.makeValue("/root/hidden/eqmtcd", '00');
  139. submit("TRLZZ00101");
  140. }
  141. //키입력이벤트
  142. function fKeyEvent(){
  143. if(event.keyCode == "13" ){
  144. if(event.target == "ipt_matr" || event.target == "ipt_bcno"){ //검체번호나 QC물질일때..
  145. model.setValue("/root/hidden/bcno", (ipt_bcno.currentText).toUpperCase());
  146. model.setValue("/root/hidden/matrcd", ipt_matr.currentText);
  147. //QC 접수리스트 조회
  148. fGetAcptList(1);
  149. }
  150. }
  151. }
  152. //키다운 이벤트
  153. function fGrdKeyDown(){
  154. if(event.keyCode == "38"){ //방향키↑키라면
  155. if(grd_testRsltInfo.row != "1"){ //첫 행이 아니라면
  156. if(grd_testRsltInfo.col == 3){ //입력 결과 칸이라면 실제 결과 조회
  157. //model.setValue("/root/main/rsltinfo/testrsltinfo[" + (grd_testRsltInfo.row-1)+ "]/buforgrslt", model.getvalue("/root/main/rsltinfo/testrsltinfo[" + (grd_testRsltInfo.row-1) + "]/orgrslt"));
  158. for(i =1; i<grd_testRsltInfo.rows; i++){
  159. if (i == (grd_testRsltInfo.row-1)){
  160. if(model.getvalue("/root/main/rsltinfo/testrsltinfo[" + (grd_testRsltInfo.row-1) + "]/orgrslt") != ""){
  161. model.setValue("/root/main/rsltinfo/testrsltinfo[" + i + "]/buforgrslt", model.getvalue("/root/main/rsltinfo/testrsltinfo[" + (grd_testRsltInfo.row-1) + "]/orgrslt")); //실제 결과를 보여준다
  162. }
  163. }
  164. else {
  165. model.setValue("/root/main/rsltinfo/testrsltinfo[" + i + "]/buforgrslt", ""); //다른행을 선택하면""
  166. }
  167. }
  168. }
  169. var refkind = model.getValue("/root/main/rsltinfo/testrsltinfo[" + (grd_testRsltInfo.row-1) + "]/refkind");
  170. var refval = "";
  171. if(refkind == "1"){
  172. refval = model.getValue("/root/main/rsltinfo/testrsltinfo[" + (grd_testRsltInfo.row-1) + "]/refcval");
  173. }else if(refkind == "2"){
  174. refval = model.getValue("/root/main/rsltinfo/testrsltinfo[" + (grd_testRsltInfo.row-1) + "]/refl") + " ~ " + model.getValue("/root/main/rsltinfo/testrsltinfo[" + (grd_testRsltInfo.row-1) + "]/refh");
  175. }else if(refkind == "0"){
  176. refval = "없음";
  177. }
  178. model.setValue("/root/main/rsltinfo/spcinfo2/wgmr" , model.getValue("/root/main/rsltinfo/testrsltinfo[" + (grd_testRsltInfo.row-1) + "]/wgmrscop"));
  179. model.setValue("/root/main/rsltinfo/spcinfo2/sdval" , model.getValue("/root/main/rsltinfo/testrsltinfo[" + (grd_testRsltInfo.row-1) + "]/sdval"));
  180. model.setValue("/root/main/rsltinfo/spcinfo2/avg" , model.getValue("/root/main/rsltinfo/testrsltinfo[" + (grd_testRsltInfo.row-1) + "]/avg"));
  181. model.setValue("/root/main/rsltinfo/spcinfo2/unit" , model.getValue("/root/main/rsltinfo/testrsltinfo[" + (grd_testRsltInfo.row-1) + "]/rsltunit"));
  182. model.setValue("/root/main/rsltinfo/spcinfo2/refval" , refval);
  183. /*
  184. model.makeValue("/root/send/testcd" , model.getValue("/root/main/rsltinfo/testrsltinfo[" + (grd_testRsltInfo.row-1) + "]/testcd")); //다른정보는 결과조회하면서 send에 있음
  185. submit("TRLQJ00203");//검체 정보 조회*/
  186. }
  187. }
  188. if(event.keyCode == "40"){ //방향키↓키라면
  189. if(grd_testRsltInfo.row != grd_testRsltInfo.rows-1){ //젤 마지막 행이 아니라면
  190. if(grd_testRsltInfo.col == 3){ //입력 결과 칸이라면 실제 결과 조회
  191. //model.setValue("/root/main/rsltinfo/testrsltinfo[" + (grd_testRsltInfo.row+1) + "]/buforgrslt", model.getvalue("/root/main/rsltinfo/testrsltinfo[" + (grd_testRsltInfo.row+1) + "]/orgrslt"));
  192. for(i =1; i<grd_testRsltInfo.rows; i++){
  193. if (i == (grd_testRsltInfo.row+1)){
  194. if(model.getvalue("/root/main/rsltinfo/testrsltinfo[" + (grd_testRsltInfo.row+1) + "]/orgrslt") != ""){
  195. model.setValue("/root/main/rsltinfo/testrsltinfo[" + i + "]/buforgrslt", model.getvalue("/root/main/rsltinfo/testrsltinfo[" + (grd_testRsltInfo.row+1) + "]/orgrslt")); //실제 결과를 보여준다
  196. }
  197. }
  198. else {
  199. model.setValue("/root/main/rsltinfo/testrsltinfo[" + i + "]/buforgrslt", ""); //다른행을 선택하면""
  200. }
  201. }
  202. }
  203. var refkind = model.getValue("/root/main/rsltinfo/testrsltinfo[" + (grd_testRsltInfo.row+1) + "]/refkind");
  204. var refval = "";
  205. if(refkind == "1"){
  206. refval = model.getValue("/root/main/rsltinfo/testrsltinfo[" + (grd_testRsltInfo.row+1) + "]/refcval");
  207. }else if(refkind == "2"){
  208. refval = model.getValue("/root/main/rsltinfo/testrsltinfo[" + (grd_testRsltInfo.row+1) + "]/refl") + " ~ " + model.getValue("/root/main/rsltinfo/testrsltinfo[" + (grd_testRsltInfo.row+1) + "]/refh");
  209. }else if(refkind == "0"){
  210. refval = "없음";
  211. }
  212. model.setValue("/root/main/rsltinfo/spcinfo2/wgmr" , model.getValue("/root/main/rsltinfo/testrsltinfo[" + (grd_testRsltInfo.row+1) + "]/wgmrscop"));
  213. model.setValue("/root/main/rsltinfo/spcinfo2/sdval" , model.getValue("/root/main/rsltinfo/testrsltinfo[" + (grd_testRsltInfo.row+1) + "]/sdval"));
  214. model.setValue("/root/main/rsltinfo/spcinfo2/avg" , model.getValue("/root/main/rsltinfo/testrsltinfo[" + (grd_testRsltInfo.row+1) + "]/avg"));
  215. model.setValue("/root/main/rsltinfo/spcinfo2/unit" , model.getValue("/root/main/rsltinfo/testrsltinfo[" + (grd_testRsltInfo.row+1) + "]/rsltunit"));
  216. model.setValue("/root/main/rsltinfo/spcinfo2/refval" , refval);
  217. /*model.makeValue("/root/send/testcd" , model.getValue("/root/main/rsltinfo/testrsltinfo[" + (grd_testRsltInfo.row+1) + "]/testcd")); //다른정보는 결과조회하면서 send에 있음
  218. submit("TRLQJ00203");//검체 정보 조회*/
  219. }
  220. }
  221. model.refresh();
  222. }
  223. //검사항목별 결과정보 결과에서 엔터키..
  224. function fGrdKeyEvent(){
  225. if(grd_testRsltInfo.col == 3){ //입력 결과 컬럼일때..
  226. if(event.keyCode == "13"){ //엔터키이면
  227. var vOrgRslt = model.getValue("/root/main/rsltinfo/testrsltinfo[" + grd_testRsltInfo.row + "]/buforgrslt"); //입력결과
  228. var vJudgKind = model.getValue("/root/main/rsltinfo/testrsltinfo[" + grd_testRsltInfo.row + "]/judgkind"); //판정유형 0:미사용, 1:L/H
  229. var vRefKind = model.getValue("/root/main/rsltinfo/testrsltinfo[" + grd_testRsltInfo.row + "]/refkind"); //참고치유형 0:없음, 1:문자, 2:숫자
  230. var vRefFalg = model.getValue("/root/main/rsltinfo/testrsltinfo[" + grd_testRsltInfo.row + "]/refflag"); //참고치구분 0:사용안함, 1:하한만사용, 2:상한만사용, 3:모두사용
  231. var vRefL = model.getValue("/root/main/rsltinfo/testrsltinfo[" + grd_testRsltInfo.row + "]/refl"); //참고치하한
  232. var vRefH = model.getValue("/root/main/rsltinfo/testrsltinfo[" + grd_testRsltInfo.row + "]/refh"); //참고치상한
  233. var vRefLS = model.getValue("/root/main/rsltinfo/testrsltinfo[" + grd_testRsltInfo.row + "]/refls"); //참고치하한부등호 0:<, 1:<=
  234. var vRefHS = model.getValue("/root/main/rsltinfo/testrsltinfo[" + grd_testRsltInfo.row + "]/refhs"); //참고치상한부등호 0:>, 1>=
  235. var vWgmr = model.getValue("/root/main/rsltinfo/testrsltinfo[" + grd_testRsltInfo.row + "]/wgmrscop"); //WGMR범위
  236. var vAvg = model.getValue("/root/main/rsltinfo/testrsltinfo[" + grd_testRsltInfo.row + "]/avg"); //평균
  237. var vSdVal = model.getValue("/root/main/rsltinfo/testrsltinfo[" + grd_testRsltInfo.row + "]/sdval"); //표준편차
  238. var vIntFrmt = model.getValue("/root/main/rsltinfo/testrsltinfo[" + grd_testRsltInfo.row + "]/intrsltfrmt"); //소수점이하자릿수
  239. var vRundKind = model.getValue("/root/main/rsltinfo/testrsltinfo[" + grd_testRsltInfo.row + "]/rundkind"); //반올림옵션 0:사용안함, 1:반올림, 2:올림, 3:내림
  240. var vRsltKind = model.getValue("/root/main/rsltinfo/testrsltinfo[" + grd_testRsltInfo.row + "]/rsltkind"); //결과유형 0:문자+숫자, 1:숫자
  241. var vBfRslt = model.getValue("/root/main/rsltinfo/testrsltinfo[" + grd_testRsltInfo.row + "]/bfrslt1"); //이전결과
  242. var vBfRslt2 = model.getValue("/root/main/rsltinfo/testrsltinfo[" + grd_testRsltInfo.row + "]/bfrslt2"); //이전결과 접수일자 기준 최근 2번째
  243. var vBfRslt3 = model.getValue("/root/main/rsltinfo/testrsltinfo[" + grd_testRsltInfo.row + "]/bfrslt3"); //이전결과 접수일자 기준 최근 3번째
  244. var vBfRslt4 = model.getValue("/root/main/rsltinfo/testrsltinfo[" + grd_testRsltInfo.row + "]/bfrslt4"); //이전결과
  245. var vBfRslt5 = model.getValue("/root/main/rsltinfo/testrsltinfo[" + grd_testRsltInfo.row + "]/bfrslt5"); //이전결과
  246. var vBfRslt6 = model.getValue("/root/main/rsltinfo/testrsltinfo[" + grd_testRsltInfo.row + "]/bfrslt6"); //이전결과
  247. var vBfRslt7 = model.getValue("/root/main/rsltinfo/testrsltinfo[" + grd_testRsltInfo.row + "]/bfrslt7"); //이전결과
  248. var vBfRslt8 = model.getValue("/root/main/rsltinfo/testrsltinfo[" + grd_testRsltInfo.row + "]/bfrslt8"); //이전결과
  249. var vBfRslt9 = model.getValue("/root/main/rsltinfo/testrsltinfo[" + grd_testRsltInfo.row + "]/bfrslt9"); //이전결과
  250. var vViewRslt = fCOMLIS_CvtRslt(vOrgRslt, vRsltKind, vIntFrmt, vRundKind); //결과유형 판별 및 반올림옵션 적용
  251. var vJudgLH = fCOMLIS_QCJudgLH(vOrgRslt, vJudgKind, vRefKind, vRefFalg, vRefL, vRefLS, vRefH, vRefHS); //L/H구분 //판정하기 위해 함수 호출
  252. var vJudgWGMR = "";
  253. if (vWgmr != "NNNNNN"){
  254. vJudgWGMR = fCOMLIS_QCJudgWGMR(vOrgRslt, vWgmr, vAvg, vSdVal, vBfRslt, vBfRslt2, vBfRslt3, vBfRslt4, vBfRslt5, vBfRslt6, vBfRslt7, vBfRslt8, vBfRslt9); //WGMR 판정 함수 호출
  255. }
  256. if(vViewRslt == "err") { //결과유형이 숫자로 되어있는데 문자로 입력되어있을때 등등... (239Line - fCOMLIS_CvtRslt)
  257. model.setvalue("/root/main/rsltinfo/testrsltinfo[" + grd_testRsltInfo.row + "]/buforgrslt","");
  258. return;
  259. }
  260. model.setvalue("root/main/rsltinfo/testrsltinfo["+grd_testRsltInfo.row +"]/judgmark", vJudgLH); //L/H 판정 받은 값을 넣어줌
  261. model.setvalue("root/main/rsltinfo/testrsltinfo["+grd_testRsltInfo.row +"]/wgmrstat", vJudgWGMR); //WGMR 판정 값을 WGMR판정에 넣어줌
  262. if(model.getvalue("root/main/rsltinfo/testrsltinfo["+grd_testRsltInfo.row +"]/wgmrstat") != ""){
  263. model.setvalue("root/main/rsltinfo/testrsltinfo["+grd_testRsltInfo.row +"]/wgmrmark", "W"); //WGMR 판정 값이 있다면 WGMR상태에 "W"넣어줌
  264. }else model.setvalue("root/main/rsltinfo/testrsltinfo["+grd_testRsltInfo.row +"]/wgmrmark", ""); //WGMR 판정 값이 없다면 WGMR상태에 ""넣어줌
  265. model.setValue("/root/main/rsltinfo/testrsltinfo[" + grd_testRsltInfo.row + "]/viewrslt", vViewRslt); //입력결과를 반올림처리한 보이는 결과로
  266. model.setValue("/root/main/rsltinfo/testrsltinfo[" + grd_testRsltInfo.row + "]/orgrslt", vOrgRslt); //입력결과를 실제 결과로 저장
  267. //판정값에 따라 그리드 셀 배경색 변경
  268. // L/H값에 따른 배경색 변경
  269. if(vJudgLH == "H"){ //판정값이 H일때 배경색 변경
  270. grd_testRsltInfo.cellStyle ("background-color", grd_testRsltInfo.row, 10, grd_testRsltInfo.row, 10) = "#f7a08b";
  271. }
  272. else if(vJudgLH == "L"){ //판정값이 L일때 배경색 변경
  273. grd_testRsltInfo.cellStyle ("background-color", grd_testRsltInfo.row, 10, grd_testRsltInfo.row, 10) = "#b9e5fb";
  274. }
  275. else{ //L이나 H가 아닐경우 허연색으로
  276. grd_testRsltInfo.cellStyle ("background-color", grd_testRsltInfo.row, 10, grd_testRsltInfo.row, 10) = "#fffff:";
  277. }
  278. //WGMR판정에 따른 배경색 변경
  279. if(model.getvalue("root/main/rsltinfo/testrsltinfo["+grd_testRsltInfo.row +"]/wgmrmark") == "W"){ //판정 값이 W면..
  280. //grd_testRsltInfo.cellStyle ("background-color", grd_testRsltInfo.row, 9, grd_testRsltInfo.row, 9) = "#99cf16";
  281. }
  282. else{ //판정값이 ""일경우 허연색으로..
  283. //grd_testRsltInfo.cellStyle ("background-color", grd_testRsltInfo.row, 9, grd_testRsltInfo.row, 9) = "#fffff:";
  284. }
  285. //model.setValue("/root/main/rsltinfo/testrsltinfo[" + grd_testRsltInfo.row + "]/buforgrslt", vOrgRslt);
  286. grd_testRsltInfo.refresh();
  287. //결과값이 입력되면 체크 선택
  288. if(model.getValue("/root/main/rsltinfo/testrsltinfo[" + grd_testRsltInfo.row + "]/orgrslt") != ""){
  289. model.setValue("/root/main/rsltinfo/testrsltinfo[" + grd_testRsltInfo.row + "]/chk", "1");
  290. }else{
  291. model.setValue("/root/main/rsltinfo/testrsltinfo[" + grd_testRsltInfo.row + "]/chk", "0");
  292. }
  293. //엔터키 누른 후 다음칸으로 내려가게 조정하기 위하여 설정
  294. grd_testRsltInfo.row = grd_testRsltInfo.row+1;
  295. grd_testRsltInfo.col = 3;
  296. //fRsltGrdEvent(); //검체 정보 조회(적용룰, 평균, 편차, 참고치, 단위등) 및 다음행 실제 결과를 임시결과칸으로 보여지게.. 미생물제외
  297. //fGetSpcInfo(); // 다음 항목 참고치등 검체 정보 조회(▲ 함수에 같이 들어있음..아래꺼도..)
  298. //model.setValue("/root/main/rsltinfo/testrsltinfo[" + grd_testRsltInfo.row + "]/buforgrslt"
  299. // , model.getValue("/root/main/rsltinfo/testrsltinfo[" + grd_testRsltInfo.row + "]/orgrslt")); //다음행 실제 결과를 임시결과칸으로 보여지게..
  300. }
  301. }
  302. if(grd_testRsltInfo.col == 5){
  303. if(event.keyCode == "13"){
  304. model.setValue("/root/main/rsltinfo/testrsltinfo[" + grd_testRsltInfo.row + "]/refrslt", grd_testRsltInfo.valueMatrix(grd_testRsltInfo.row, grd_testRsltInfo.col));
  305. if(model.getValue("/root/main/rsltinfo/testrsltinfo[" + grd_testRsltInfo.row + "]/refrslt") != ""){
  306. model.setValue("/root/main/rsltinfo/testrsltinfo[" + grd_testRsltInfo.row + "]/chk", "1");
  307. }else{
  308. model.setValue("/root/main/rsltinfo/testrsltinfo[" + grd_testRsltInfo.row + "]/chk", "0");
  309. }
  310. grd_testRsltInfo.row = grd_testRsltInfo.row+1;
  311. grd_testRsltInfo.col = 5;
  312. }
  313. }
  314. if(grd_testRsltInfo.col == 6){
  315. if(event.keyCode == "13"){
  316. model.setValue("/root/main/rsltinfo/testrsltinfo[" + grd_testRsltInfo.row + "]/cfmref", grd_testRsltInfo.valueMatrix(grd_testRsltInfo.row, grd_testRsltInfo.col));
  317. if(model.getValue("/root/main/rsltinfo/testrsltinfo[" + grd_testRsltInfo.row + "]/cfmref") != ""){
  318. model.setValue("/root/main/rsltinfo/testrsltinfo[" + grd_testRsltInfo.row + "]/chk", "1");
  319. }else{
  320. model.setValue("/root/main/rsltinfo/testrsltinfo[" + grd_testRsltInfo.row + "]/chk", "0");
  321. }
  322. grd_testRsltInfo.row = grd_testRsltInfo.row+1;
  323. grd_testRsltInfo.col = 6;
  324. }
  325. }
  326. }
  327. //QC 접수 리스트 조회
  328. function fGetAcptList(pVal){
  329. model.makeValue("/root/send/bcno" , model.getValue("/root/hidden/bcno"));
  330. model.makeValue("/root/send/acptfromdd" , model.getValue("/root/hidden/acptfromdd"));
  331. model.makeValue("/root/send/acpttodd" , model.getValue("/root/hidden/acpttodd"));
  332. model.makeValue("/root/send/testroom" , model.getValue("/root/hidden/testroom"));
  333. model.makeValue("/root/send/eqmtcd" , model.getValue("/root/hidden/eqmtcd"));
  334. model.makeValue("/root/send/acptflag" , model.getValue("/root/hidden/acptflag"));
  335. model.makeValue("/root/send/matrcd" , model.getValue("/root/hidden/matrcd"));
  336. model.makeValue("/root/send/rsltstat" , model.getValue("/root/hidden/rsltstat"));
  337. model.makeValue("/root/send/deptflag" , "M");
  338. submit("TRLQJ00201")
  339. if(grd_acptList.rows != 1){
  340. grd_acptList.row = pVal;
  341. fGetDetlInfo();
  342. }
  343. }
  344. //접수리스트 선택 시 검체 정보 및 결과정보 조회
  345. function fGetDetlInfo(){
  346. model.removeNodeset("/root/main/rsltinfo/testrsltinfo");
  347. grd_testRsltInfo.rebuild();
  348. model.makeValue("/root/send/bcno" , model.getValue("/root/main/acptlist[" + grd_acptList.row + "]/bcno"));
  349. model.makeValue("/root/send/matrcd" , model.getValue("/root/main/acptlist[" + grd_acptList.row + "]/matrcd"));
  350. model.makeValue("/root/send/levlcd" , model.getValue("/root/main/acptlist[" + grd_acptList.row + "]/levlcd"));
  351. model.makeValue("/root/send/eqmtcd" , model.getValue("/root/main/acptlist[" + grd_acptList.row + "]/eqmtcd"));
  352. model.makeValue("/root/send/acptdt" , model.getValue("/root/main/acptlist[" + grd_acptList.row + "]/acptdt"));
  353. model.makeValue("/root/send/deptflag" , "M");
  354. submit("TRLQJ00202");
  355. if(model.getValue("/root/main/acptlist[" + grd_acptList.row + "]/rsltmark") == "◆"){
  356. btn_measfact.visible = true;
  357. }else{
  358. btn_measfact.visible = false;
  359. }
  360. //조회 후 판정값에 따라 배경 색 변환
  361. for( i =1; i<grd_testRsltInfo.rows; i++){
  362. var vJudgLH = model.getValue("/root/main/rsltinfo/testrsltinfo[" + i + "]/judgmark");
  363. var vJudgWGMR = model.getValue("/root/main/rsltinfo/testrsltinfo[" + i + "]/wgmrmark");
  364. var vRsltStat = model.getValue("/root/main/rsltinfo/testrsltinfo[" + i + "]/rsltstat");
  365. model.setValue("/root/main/rsltinfo/testrsltinfo[" + i + "]/buforgrslt", model.getValue("/root/main/rsltinfo/testrsltinfo[" + i + "]/orgrslt"));
  366. //L/H판정 값에 따른 색변경
  367. if(vJudgLH == "H"){ //판정값이 H일때 배경색 변경
  368. grd_testRsltInfo.cellStyle ("background-color", i, 10) = "#f7a08b";
  369. }
  370. else if(vJudgLH == "L"){ //판정값이 L일때 배경색 변경
  371. grd_testRsltInfo.cellStyle ("background-color", i, 10) = "#b9e5fb";
  372. }
  373. //grd_testRsltInfo.cellstyle("background-color" , i,3) = "#EEFFFF";
  374. //WGMR판정값에 따른 배경색 변경
  375. if(vJudgWGMR == "W"){ //판정 값이 W다면..
  376. //grd_testRsltInfo.cellStyle ("background-color", i, 9) = "#99cf16";
  377. }
  378. //결과상태 R(제외)일때 색 변경
  379. if(vRsltStat == "R"){
  380. //grd_testRsltInfo.cellStyle ("background-color", i, 8) = "#fec34d";
  381. }
  382. //결과값이 있다면 자동..체크..
  383. if(model.getValue("/root/main/rsltinfo/testrsltinfo[" + i + "]/rsltstat") == "△"){ //orgrslt") != ""에서 조건 변경
  384. model.setValue("/root/main/rsltinfo/testrsltinfo[" + i + "]/chk", "1");
  385. }else{
  386. model.setValue("/root/main/rsltinfo/testrsltinfo[" + i + "]/chk", "0");
  387. }
  388. }
  389. model.setFocus("ipt_bcno");
  390. }
  391. //검사항목별 결과정보 그리드 클릭시
  392. function fRsltGrdEvent(){
  393. //if(isDataCell(grd_testRsltInfo)){ //클릭한 시점이 data영역이면 (tfHelper)//요것땜에 문제 있어서 제거함.엔터키눌르면 값이 안사라짐..
  394. //fGetSpcInfo(); //검체 정보 조회(적용룰, 평균, 편차, 참고치, 단위등)
  395. //입력결과 컬럼 선택할때
  396. var col = grd_testRsltInfo.col;
  397. var vOrgRslt = model.getValue("/root/main/rsltinfo/testrsltinfo[" + grd_testRsltInfo.row + "]/orgrslt"); //입력결과 선택 시 실제결과 보이게 하기 위한 변수
  398. for(i =1; i<grd_testRsltInfo.rows; i++){
  399. if (i == grd_testRsltInfo.row){
  400. if(col==3){ //입력결과 컬럼을 클릭하면
  401. if(vOrgRslt != ""){
  402. model.setValue("/root/main/rsltinfo/testrsltinfo[" + i + "]/buforgrslt", vOrgRslt); //실제 결과를 보여준다
  403. }
  404. }else {
  405. //model.setValue("/root/main/rsltinfo/testrsltinfo[" + i+ "]/buforgrslt", ""); //다른칸을 선택하면""
  406. model.setValue("/root/main/rsltinfo/testrsltinfo[" + i + "]/buforgrslt", vOrgRslt);
  407. }
  408. }
  409. else {
  410. //model.setValue("/root/main/rsltinfo/testrsltinfo[" + i + "]/buforgrslt", ""); //다른행을 선택하면""
  411. model.setValue("/root/main/rsltinfo/testrsltinfo[" + i + "]/buforgrslt", vOrgRslt);
  412. }
  413. }
  414. model.refresh();
  415. //}
  416. }
  417. //검사항목별 결과 정보 선택 시 검체정보 조회
  418. function fGetSpcInfo(){
  419. var refkind = model.getValue("/root/main/rsltinfo/testrsltinfo[" + grd_testRsltInfo.row + "]/refkind");
  420. var refval = "";
  421. if(refkind == "0"){
  422. refval = "없음";
  423. }else if(refkind == "1"){
  424. refval = model.getValue("/root/main/rsltinfo/testrsltinfo[" + grd_testRsltInfo.row + "]/refcval");
  425. }else if(refkind == "2"){
  426. refval = model.getValue("/root/main/rsltinfo/testrsltinfo[" + grd_testRsltInfo.row + "]/refl") + " ~ " + model.getValue("/root/main/rsltinfo/testrsltinfo[" + grd_testRsltInfo.row + "]/refh");
  427. }
  428. model.setValue("/root/main/rsltinfo/spcinfo2/wgmr" , model.getValue("/root/main/rsltinfo/testrsltinfo[" + grd_testRsltInfo.row + "]/wgmrscop"));
  429. model.setValue("/root/main/rsltinfo/spcinfo2/sdval" , model.getValue("/root/main/rsltinfo/testrsltinfo[" + grd_testRsltInfo.row + "]/sdval"));
  430. model.setValue("/root/main/rsltinfo/spcinfo2/avg" , model.getValue("/root/main/rsltinfo/testrsltinfo[" + grd_testRsltInfo.row + "]/avg"));
  431. model.setValue("/root/main/rsltinfo/spcinfo2/unit" , model.getValue("/root/main/rsltinfo/testrsltinfo[" + grd_testRsltInfo.row + "]/rsltunit"));
  432. model.setValue("/root/main/rsltinfo/spcinfo2/refval" , refval);
  433. //아래꺼에서 위에걸로 변경 submit안타게 처리_20081015_승현
  434. /*model.makeValue("/root/send/testcd" , model.getValue("/root/main/rsltinfo/testrsltinfo[" + grd_testRsltInfo.row + "]/testcd")); //다른정보는 결과조회하면서 send에 있음
  435. submit("TRLQJ00203");*/
  436. model.refresh();
  437. }
  438. // 보고 방법 변경 버튼
  439. function fSetreptmthdchng(){
  440. }
  441. // 재검 버튼
  442. function fExeReTest(){
  443. }
  444. // 확인, 저장 할 데이터 확인
  445. function fInsSave(){
  446. if(model.getValue("/root/send/rsltstat")=="1"){ //저장일때
  447. for( i =1; i<grd_testRsltInfo.rows; i++){
  448. if(model.getValue("/root/main/rsltinfo/testrsltinfo[" + i + "]/chk") == "1"){ // 선택된 항목만 저장
  449. if(model.getValue("/root/main/rsltinfo/testrsltinfo[" + i + "]/rsltstat") == "◆" || model.getValue("/root/main/rsltinfo/testrsltinfo[" + i + "]/rsltstat") == "R"){// 확인인 항목이 있다면 저장을 하면 안되기에..
  450. alert("선택된 항목 중 확인 완료된 항목이 있습니다.");
  451. return 0;
  452. }
  453. //if(model.getValue("/root/main/rsltinfo/testrsltinfo[" + i + "]/viewrslt") == ""){// 저장된 값이 없다면 저장을 하면 안되기에..
  454. // alert("선택된 항목 중 결과값이 입력되지 않은항목이 있습니다.");
  455. // return 0;
  456. //}
  457. grd_testRsltInfo.addStatus(i, "update"); //status 를 update 변경
  458. }else{
  459. grd_testRsltInfo.removeStatus(i , "update"); //선택된 항목이 아니라면 update를 초기화한다
  460. }
  461. }
  462. }else if(model.getValue("/root/send/rsltstat")=="2"){ // 확인일때
  463. for( i =1; i<grd_testRsltInfo.rows; i++){
  464. if(model.getValue("/root/main/rsltinfo/testrsltinfo[" + i + "]/chk") == "1"){ // 선택된 항목만 저장
  465. if(model.getValue("/root/main/rsltinfo/testrsltinfo[" + i + "]/viewrslt") == ""){ // 결과값 입력 유무 체크
  466. alert("선택된 항목 중 결과값이 입력되지 않은항목이 있습니다.");
  467. return 0; //결과값이 없다면 알림창 띄우고 땡~
  468. }
  469. if(model.getValue("/root/main/rsltinfo/testrsltinfo[" + i + "]/rsltstat") == "◆" || model.getValue("/root/main/rsltinfo/testrsltinfo[" + i + "]/rsltstat") == "R"){// 확인인 항목이 있다면 저장을 하면 안되기에..
  470. alert("선택된 항목 중 확인 완료된 항목이 있습니다.");
  471. return 0;
  472. }
  473. grd_testRsltInfo.addStatus(i, "update"); //status 를 update 변경
  474. }else{
  475. grd_testRsltInfo.removeStatus(i , "update"); //선택된 항목이 아니라면 update를 초기화한다
  476. }
  477. }
  478. }else if(model.getValue("/root/send/rsltstat")=="R"){ //제외일때
  479. for( i =1; i<grd_testRsltInfo.rows; i++){
  480. if(model.getValue("/root/main/rsltinfo/testrsltinfo[" + i + "]/chk") == "1"){ // 선택된 항목만 저장
  481. if(model.getValue("/root/main/rsltinfo/testrsltinfo[" + i + "]/viewrslt") == ""){ // 결과값 입력 유무 체크
  482. var rtn = messageBox("결과값이 입력되지 않은항목이 있습니다.\n", "Q003");
  483. if(rtn != "6"){
  484. return 0;
  485. }
  486. }
  487. if(model.getValue("/root/main/rsltinfo/testrsltinfo[" + i + "]/measfactcnts") == ""){ // 조치사항사유 입력 유무 체크
  488. alert("제외를 위해 조치사항에 사유를 입력하세요");
  489. return 0; //결과값이 없다면 알림창 띄우고 땡~
  490. }
  491. grd_testRsltInfo.addStatus(i, "update"); //status 를 update 변경
  492. }else{
  493. grd_testRsltInfo.removeStatus(i , "update"); //선택된 항목이 아니라면 update를 초기화한다
  494. }
  495. }
  496. }else if(model.getValue("/root/send/rsltstat")=="F"){ //조치사유
  497. for( i =1; i<grd_testRsltInfo.rows; i++){
  498. if(model.getValue("/root/main/rsltinfo/testrsltinfo[" + i + "]/chk") == "1"){ // 선택된 항목만 저장
  499. if(model.getValue("/root/main/rsltinfo/testrsltinfo[" + i + "]/viewrslt") == ""){ // 결과값 입력 유무 체크
  500. var rtn = messageBox("결과값이 입력되지 않은항목이 있습니다.\n", "Q003");
  501. if(rtn != "6"){
  502. return 0;
  503. }
  504. }
  505. if(model.getValue("/root/main/rsltinfo/testrsltinfo[" + i + "]/measfactcnts") == ""){ // 조치사항사유 입력 유무 체크
  506. alert("선택된 항목에 조치사항을 입력하세요");
  507. return 0; //결과값이 없다면 알림창 띄우고 땡~
  508. }
  509. grd_testRsltInfo.addStatus(i, "update"); //status 를 update 변경
  510. }else{
  511. grd_testRsltInfo.removeStatus(i , "update"); //선택된 항목이 아니라면 update를 초기화한다
  512. }
  513. }
  514. }
  515. }
  516. //결과 저장 및 확인 버튼
  517. function fExeSave(){
  518. if(fInsSave() !=0){
  519. model.makeValue("/root/send/testrsltlist", grd_testRsltInfo.getUpdateData());
  520. submit("TXLQJ00201", false);
  521. //fGetDetlInfo(); //검사항목별 결과정보 다시 조회
  522. fGetAcptList(grd_acptList.row);
  523. }
  524. }
  525. //전체선택 기능(결과 입력된 값만)
  526. function btnAllCheck(){
  527. var checked = model.getValue("/root/hidden/check");
  528. if(checked=="0") {
  529. checked ="1";
  530. } else {
  531. checked ="0";
  532. }
  533. model.setValue("/root/hidden/check", checked);
  534. for(i=1 ; i<grd_testRsltInfo.rows; i++){ //결과입력상태인 항목만 체크 함
  535. if(model.getValue("/root/main/rsltinfo/testrsltinfo[" + i + "]/rsltstat") == "△"){ //orgrslt != "" 에서 조건 변경
  536. model.setValue("/root/main/rsltinfo/testrsltinfo[" + i + "]/chk", checked);
  537. }else{
  538. model.setValue("/root/main/rsltinfo/testrsltinfo[" + i + "]/chk", "0");
  539. }
  540. }
  541. btn_check.attribute("background-image") = "../../../lis/commonweb/images/chkRPT" + checked + ".gif"; //전체 체크 이미지셋팅
  542. }
  543. function fFactCntSet(){
  544. model.setValue("/root/main/rsltinfo/testrsltinfo["+ grd_testRsltInfo.row + "]/measfactcnts", grd_testRsltInfo.labelMatrix(grd_testRsltInfo.row, grd_testRsltInfo.col));
  545. model.setValue("/root/main/rsltinfo/testrsltinfo["+ grd_testRsltInfo.row + "]/chk", "1");
  546. }
  547. ]]>
  548. </script>
  549. </xhtml:head>
  550. <xhtml:body style="margin-left:8; margin-top:0; margin-right:8; margin-bottom:0; ">
  551. <group id="group1" style="left:0px; top:40px; width:1195px; height:744px; font-size:18pt; ">
  552. <datagrid id="grd_testRsltInfo" nodeset="/root/main/rsltinfo/testrsltinfo" caption="^검사항목명^결과^결과^판정^보정판정^참고치^결과등록일시^결과보고시간^N^S^W^WGMR판정^조치사항^조치사항^검사자^bcno^testcd^판정유형^참고치유형^참고치구분^하한^상한^refls^refhs^실제결과^결과유형^단위^wgmr범위^표준편차^평균^반올림옵션^그래프표시^참고치문자^숫자결과포멧^이전결과^이전결과일^이전검사자" colsep="^" colwidth="25, 200, 50, 50, 50, 55, 80, 0, 90, 25, 25, 25, 80, 25, 150, 70, 80, 50, 30, 30, 30, 30, 30, 30, 30, 30, 25, 30, 60, 35, 35, 25, 25, 40, 40, 60, 120, 70" dataheight="23" ellipsis="true" frozencols="5" mergecellsfixedrows="bycolrec" rowheader="seq" rowheight="23" rowsep="|" selectionmode="free" tooltip="true" fixed.background-image="../../../com/commonweb/images/grid_bg.gif" style="left:325px; top:115px; width:869px; height:620px; ">
  553. <col checkimage="../../../lis/commonweb/images/chkRPT1.gif" checkvalue="1,0" ref="chk" type="checkbox" uncheckimage="../../../lis/commonweb/images/chkRPT0.gif"/>
  554. <col ref="testnm"/>
  555. <col ref="buforgrslt" type="input"/>
  556. <col ref="viewrslt" visibility="hidden"/>
  557. <col ref="refrslt" type="input" _chartype="upper"/>
  558. <col ref="cfmref" type="input" _chartype="upper"/>
  559. <col ref="refinfo" type="output" style="text-align:center; "/>
  560. <col ref="rsltrgstdt" format="yyyy-mm-dd hh:mm:ss"/>
  561. <col ref="rsltcnfmdt" format="yyyy-mm-dd hh:mm:ss"/>
  562. <col ref="judgmark" style="font-weight:bolder; text-align:center; "/>
  563. <col ref="rsltstat" style="font-size:9pt; font-weight:bolder; color:#339966; text-align:center; "/>
  564. <col ref="wgmrmark" visibility="hidden" style="font-weight:bolder; text-align:center; "/>
  565. <col ref="wgmrstat" visibility="hidden"/>
  566. <col ref="measfactcd" type="combo">
  567. <choices>
  568. <itemset nodeset="/root/init/LB0703">
  569. <label ref="nm"/>
  570. <value ref="cd"/>
  571. </itemset>
  572. </choices>
  573. </col>
  574. <col ref="measfactcnts" type="input"/>
  575. <col ref="rsltrid" format="yyyy-mm-dd hh:mm:ss" style="text-align:center; "/>
  576. <col ref="bcno" visibility="hidden"/>
  577. <col ref="testcd" visibility="hidden"/>
  578. <col ref="judgkind" visibility="hidden"/>
  579. <col ref="refkind" visibility="hidden"/>
  580. <col ref="refflag" visibility="hidden"/>
  581. <col ref="refl" visibility="hidden"/>
  582. <col ref="refh" visibility="hidden"/>
  583. <col ref="refls" visibility="hidden"/>
  584. <col ref="refhs" visibility="hidden"/>
  585. <col ref="orgrslt" visibility="hidden"/>
  586. <col ref="rsltkind" visibility="hidden"/>
  587. <col ref="rsltunit" visibility="hidden"/>
  588. <col ref="wgmrscop" visibility="hidden"/>
  589. <col ref="sdval" visibility="hidden"/>
  590. <col ref="avg" visibility="hidden"/>
  591. <col ref="rundkind" visibility="hidden"/>
  592. <col ref="graphdispyn" visibility="hidden"/>
  593. <col ref="refcval" visibility="hidden"/>
  594. <col ref="intrsltfrmt" visibility="hidden"/>
  595. <col ref="bfrslt1"/>
  596. <col ref="bfrsltcnfmdt" format="yyyy-mm-dd hh:mm:ss"/>
  597. <col ref="bfrsltcnfmid" style="text-align:center; "/>
  598. <script type="javascript" ev:event="onclick">
  599. <![CDATA[
  600. if(isDataCell(grd_testRsltInfo)){
  601. //fRsltGrdEvent(); //검체 정보 조회와 3번째칸 클릭하면 실제 결과 보여줌 미생물제외
  602. }
  603. ]]>
  604. </script>
  605. <script type="javascript" ev:event="onkeypress">
  606. <![CDATA[
  607. fGrdKeyEvent(); //결과 입력 키이벤트
  608. ]]>
  609. </script>
  610. <script type="javascript" ev:event="onkeydown">
  611. <![CDATA[
  612. fGrdKeyDown(); //방향키
  613. ]]>
  614. </script>
  615. <script type="javascript" ev:event="xforms-value-changed">
  616. <![CDATA[
  617. if(grd_testRsltInfo.col == 14){
  618. fFactCntSet();
  619. }
  620. ]]>
  621. </script>
  622. <!--<script type="javascript" ev:event="onentercell">
  623. <![CDATA[
  624. if(grd_testRsltInfo.colType(grd_testRsltInfo.col) == "input"){
  625. grd_testRsltInfo.editCell();
  626. }
  627. ]]>
  628. </script>-->
  629. </datagrid>
  630. <button id="btn_check" style="left:348px; top:118px; width:20px; height:20px; text-align:center; background-image:../../../lis/commonweb/images/chkRPT0.gif; background-position:center; ">
  631. <caption/>
  632. <script type="javascript" ev:event="DOMActivate">
  633. <![CDATA[
  634. btnAllCheck(); //결과 입력된 값 전체 체크
  635. ]]>
  636. </script>
  637. </button>
  638. <line id="line1" class="line_1" style="x1:0px; y1:245px; x2:320px; y2:245px; "/>
  639. <caption id="caption7" class="tit_2" style="left:5px; top:230px; width:115px; height:13px; ">QC 접수 리스트</caption>
  640. <datagrid id="grd_acptList" nodeset="/root/main/acptlist" caption="^검체번호^접수일시^장비코드^물질명^레벨명^물질코드^레벨코드" colsep="^" colwidth="20, 90, 130, 60, 90, 80, 80, 80" dataheight="23" extendlastcol="scroll" mergecellsfixedrows="bycolrec" rowheader="seq" rowheight="23" rowsep="|" fixed.background-image="../../../com/commonweb/images/grid_bg.gif" style="left:0px; top:250px; width:320px; height:483px; ">
  641. <col ref="rsltmark" style="font-size:9pt; color:#339966; text-align:center; "/>
  642. <col ref="bcno"/>
  643. <col ref="acptdt" format="yyyy-mm-dd hh:nn:ss"/>
  644. <col ref="eqmtcd"/>
  645. <col ref="matrnm"/>
  646. <col ref="levlnm"/>
  647. <col ref="matrcd" visibility="hidden"/>
  648. <col ref="levlcd" visibility="hidden"/>
  649. <script type="javascript" ev:event="onclick">
  650. <![CDATA[
  651. if(isDataCell(grd_acptList)){
  652. fGetDetlInfo(); //결과정보 및 검체정보 조회(물질, 레벨, LOT번호, 제조회사, 장비)
  653. }
  654. ]]>
  655. </script>
  656. </datagrid>
  657. <line id="line14" class="line_1" style="x1:325px; y1:110px; x2:1194px; y2:110px; "/>
  658. <caption id="caption3" class="tit_2" style="left:330px; top:95px; width:139px; height:13px; ">검사항목별 결과정보</caption>
  659. <group id="group3" style="left:0px; top:10px; width:320px; height:210px; ">
  660. <shape id="roundrect2" class="roundrect_search" appearance="roundrect" style="left:0px; top:0px; width:320px; height:210px; "/>
  661. <caption id="caption1" class="search_name" style="left:15px; top:87px; width:89px; height:17px; ">접수구분 :</caption>
  662. <button id="btn_getAcptList" class="btn1_letter2" style="left:249px; top:181px; width:56px; height:22px; ">
  663. <caption>조회</caption>
  664. <script type="javascript" ev:event="DOMActivate">
  665. <![CDATA[
  666. fGetAcptList(1); //QC 접수리스트 조회
  667. ]]>
  668. </script>
  669. </button>
  670. <line id="line13" class="line_4" style="x1:234px; y1:181px; x2:234px; y2:203px; "/>
  671. <caption id="caption2" class="search_no_b" style="left:199px; top:39px; width:15px; height:20px; vertical-align:middle; ">~</caption>
  672. <select1 id="cbo_acptFlag" ref="/root/hidden/acptflag" class="combo_search" appearance="minimal" style="left:105px; top:86px; width:200px; height:19px; ">
  673. <choices>
  674. <itemset nodeset="/root/init/LB0704">
  675. <label ref="nm"/>
  676. <value ref="cd"/>
  677. </itemset>
  678. </choices>
  679. </select1>
  680. <caption id="caption4" class="search_name" style="left:15px; top:39px; width:89px; height:17px; ">접수일자 :</caption>
  681. <caption id="caption5" class="search_name" visibility="hidden" style="left:15px; top:136px; width:94px; height:17px; ">QC 물질 :</caption>
  682. <input id="ipt_acptfromdd" ref="/root/hidden/acptfromdd" class="input_search" inputtype="date" style="left:105px; top:38px; width:90px; height:19px; "/>
  683. <input id="ipt_acpttodd" ref="/root/hidden/acpttodd" class="input_search" inputtype="date" style="left:215px; top:38px; width:90px; height:19px; "/>
  684. <caption id="caption18" class="search_name" style="left:15px; top:9px; width:89px; height:17px; ">검체번호 :</caption>
  685. <input id="ipt_bcno" ref="/root/hidden/bcno" class="input_button" imemode="disabled" inputtype="button" maxlength="10" _chartype="upper" style="left:105px; top:9px; width:200px; height:19px; ">
  686. <script type="javascript" ev:event="onkeypress">
  687. <![CDATA[
  688. fKeyEvent();
  689. ]]>
  690. </script>
  691. </input>
  692. <line id="line6" class="line_7" style="x1:14px; y1:32px; x2:299px; y2:32px; "/>
  693. <caption id="caption8" class="search_name" visibility="hidden" style="left:15px; top:110px; width:88px; height:17px; ">검 사 실 :</caption>
  694. <select1 id="cbo_testRoom" ref="/root/hidden/testroom" class="combo_search" visibility="hidden" appearance="minimal" style="left:105px; top:110px; width:200px; height:19px; ">
  695. <choices>
  696. <itemset nodeset="/root/init/LB0111">
  697. <label ref="nm"/>
  698. <value ref="cd"/>
  699. </itemset>
  700. </choices>
  701. <script type="javascript" ev:event="xforms-value-changed">
  702. <![CDATA[
  703. fSetEqmtCd(); //검사실에 따른 장비 설정
  704. ]]>
  705. </script>
  706. </select1>
  707. <select1 id="cbo_eqmtCd" ref="/root/hidden/eqmtcd" class="combo_search" appearance="minimal" style="left:105px; top:62px; width:200px; height:19px; ">
  708. <choices>
  709. <itemset nodeset="/root/init/LB0701[etc01 = 'M']">
  710. <label ref="nm"/>
  711. <value ref="cd"/>
  712. </itemset>
  713. </choices>
  714. </select1>
  715. <caption id="caption9" class="search_name" style="left:15px; top:62px; width:88px; height:17px; ">장 비 :</caption>
  716. <caption id="caption10" class="search_name" style="left:15px; top:159px; width:94px; height:17px; ">작업구분 :</caption>
  717. <select1 id="rdo_Rsltflag" ref="/root/hidden/rsltstat" class="radio_search" appearance="full" cellspacing="5" cols="4" overflow="visible" style="left:105px; top:161px; width:210px; height:13px; border-style:none; ">
  718. <choices>
  719. <item>
  720. <label>전체</label>
  721. <value>1</value>
  722. </item>
  723. <item>
  724. <label>완료</label>
  725. <value>3</value>
  726. </item>
  727. <item>
  728. <label>미완료</label>
  729. <value>2</value>
  730. </item>
  731. <item>
  732. <label>제외</label>
  733. <value>R</value>
  734. </item>
  735. </choices>
  736. <script type="javascript" ev:event="xforms-value-changed">
  737. <![CDATA[
  738. if(rdo_Rsltflag.value == "3"){
  739. btn_save.disabled = true;
  740. btn_cfm.disabled = true;
  741. //btn_measfact.visible = true;
  742. }else{
  743. btn_save.disabled = false;
  744. btn_cfm.disabled = false;
  745. //btn_measfact.visible = false;
  746. }
  747. model.removeNodeset("/root/main/acptlist");
  748. model.removeNodeset("/root/main/rsltinfo/testrsltinfo");
  749. model.removeNodeset("/root/main/rsltinfo/spcinfo");
  750. model.removeNodeset("/root/main/rsltinfo/spcinfo2");
  751. model.refresh();
  752. ]]>
  753. </script>
  754. </select1>
  755. <input id="ipt_matr" ref="/root/hidden/matrcd" class="input_s_search" visibility="hidden" inputtype="button" style="left:105px; top:135px; width:200px; height:19px; ">
  756. <script type="javascript" ev:event="onkeypress">
  757. <![CDATA[
  758. fKeyEvent();
  759. ]]>
  760. </script>
  761. </input>
  762. </group>
  763. <line id="line2" class="line_1" style="x1:325px; y1:25px; x2:1194px; y2:25px; "/>
  764. <caption id="caption11" class="tit_2" style="left:330px; top:10px; width:115px; height:14px; ">검체정보</caption>
  765. <caption id="caption19" class="cell_1" visibility="hidden" style="left:325px; top:80px; width:60px; height:23px; ">평균</caption>
  766. <caption id="caption20" class="cell_1" visibility="hidden" style="left:757px; top:80px; width:60px; height:23px; ">참고치</caption>
  767. <caption id="caption21" class="cell_1" visibility="hidden" style="left:541px; top:80px; width:60px; height:23px; ">표준편차</caption>
  768. <caption id="caption22" class="cell_1" style="left:907px; top:54px; width:60px; height:23px; ">단위</caption>
  769. <output id="opt_matrcd" ref="/root/main/rsltinfo/spcinfo/matrnm" class="output_fix" style="left:388px; top:31px; width:225px; height:19px; "/>
  770. <line id="line4" class="line_2" style="x1:325px; y1:52px; x2:1194px; y2:52px; "/>
  771. <line id="line5" class="line_2" style="x1:325px; y1:76px; x2:1194px; y2:76px; "/>
  772. <output id="opt_levlcd" ref="/root/main/rsltinfo/spcinfo/levlnm" class="output_fix" style="left:679px; top:31px; width:225px; height:19px; "/>
  773. <output id="opt_lotno" ref="/root/main/rsltinfo/spcinfo/lotno" class="output_fix" style="left:969px; top:31px; width:225px; height:19px; "/>
  774. <output id="opt_wgRule" ref="/root/main/rsltinfo/spcinfo2/wgmr" class="output_fix" visibility="hidden" style="left:1048px; top:83px; width:112px; height:19px; "/>
  775. <script type="javascript" ev:event="onmouseover">
  776. <![CDATA[
  777. opt_wgRule.hint = "1 : 1(2S) " + "\n" + "2 : 1(3S) " + "\n" + "3 : 2(2S) " + "\n" + "4 : R(4S) " + "\n" + "5 : 4(1S) " + "\n" + "6 : 10X ";
  778. ]]>
  779. </script>
  780. <output id="opt_prodCmpy" ref="/root/main/rsltinfo/spcinfo/prodcmpy" class="output_fix" style="left:388px; top:55px; width:225px; height:19px; "/>
  781. <output id="opt_eqmtCd" ref="/root/main/rsltinfo/spcinfo/eqmtnm" class="output_fix" style="left:679px; top:55px; width:225px; height:19px; "/>
  782. <output id="opt_avg" ref="/root/main/rsltinfo/spcinfo2/avg" class="output_fix" visibility="hidden" style="left:388px; top:81px; width:150px; height:19px; "/>
  783. <line id="line7" class="line_3" style="x1:325px; y1:78px; x2:1194px; y2:78px; "/>
  784. <output id="opt_sDVal" ref="/root/main/rsltinfo/spcinfo2/sdval" class="output_fix" visibility="hidden" style="left:604px; top:81px; width:150px; height:19px; "/>
  785. <output id="opt_refVal" ref="/root/main/rsltinfo/spcinfo2/refval" class="output_fix" visibility="hidden" style="left:821px; top:81px; width:150px; height:19px; "/>
  786. <output id="opt_unit" ref="/root/main/rsltinfo/spcinfo2/unit" class="output_fix" style="left:969px; top:55px; width:225px; height:19px; "/>
  787. <caption id="caption12" class="cell_1" style="left:616px; top:30px; width:60px; height:23px; ">레벨</caption>
  788. <caption id="caption13" class="cell_1" style="left:325px; top:30px; width:60px; height:23px; ">QC 물질</caption>
  789. <caption id="caption14" class="cell_1" style="left:907px; top:30px; width:60px; height:23px; ">LOT번호</caption>
  790. <caption id="caption15" class="cell_1" visibility="hidden" style="left:985px; top:82px; width:60px; height:23px; ">적용룰</caption>
  791. <caption id="caption16" class="cell_1" style="left:616px; top:54px; width:60px; height:23px; ">장비</caption>
  792. <caption id="caption17" class="cell_1" style="left:325px; top:54px; width:60px; height:23px; ">제조회사</caption>
  793. </group>
  794. <group id="group2" style="left:0px; top:0px; width:1195px; height:13px; ">
  795. <caption id="caption6" class="tit_1" style="left:0px; top:0px; width:155px; height:14px; ">미생물 물질별 결과관리</caption>
  796. </group>
  797. <group id="grp_btn" style="left:0px; top:13px; width:1195px; height:27px; ">
  798. <line id="line3" class="line_6" style="x1:0px; y1:25px; x2:1194px; y2:25px; "/>
  799. <button id="btn_cle" class="btn4_letter3" style="left:1127px; top:3px; width:68px; height:22px; ">
  800. <caption>초기화</caption>
  801. <script type="javascript" ev:event="onclick">
  802. <![CDATA[
  803. window.reload();
  804. ]]>
  805. </script>
  806. </button>
  807. <button id="btn_exception" class="btn4_letter2" style="left:1068px; top:3px; width:56px; height:22px; ">
  808. <caption>제외</caption>
  809. <script type="javascript" ev:event="onclick">
  810. <![CDATA[
  811. model.makeValue("/root/send/rsltstat", "R");
  812. fExeSave();//fInsSave();
  813. ]]>
  814. </script>
  815. </button>
  816. <button id="btn_cfm" class="btn4_letter2" style="left:1009px; top:3px; width:56px; height:22px; ">
  817. <caption>확인</caption>
  818. <script type="javascript" ev:event="onclick">
  819. <![CDATA[
  820. model.makeValue("/root/send/rsltstat", "2");
  821. fExeSave();//fInsSave();
  822. ]]>
  823. </script>
  824. </button>
  825. <button id="btn_save" class="btn4_letter2" style="left:950px; top:3px; width:56px; height:22px; ">
  826. <caption>저장</caption>
  827. <script type="javascript" ev:event="onclick">
  828. <![CDATA[
  829. model.makeValue("/root/send/rsltstat", "1");
  830. fExeSave();//fInsSave();
  831. ]]>
  832. </script>
  833. </button>
  834. <button id="btn_measfact" class="btn4_letter6" visibility="hidden" style="left:843px; top:3px; width:104px; height:22px; ">
  835. <caption>조치사유등록</caption>
  836. <script type="javascript" ev:event="onclick">
  837. <![CDATA[
  838. model.makeValue("/root/send/rsltstat", "F");
  839. fExeSave();
  840. ]]>
  841. </script>
  842. </button>
  843. <button id="btn_retest" class="btn4_letter2" visibility="hidden" style="left:891px; top:3px; width:56px; height:22px; ">
  844. <caption>재검</caption>
  845. <script type="javascript" ev:event="onclick">
  846. <![CDATA[
  847. fExeReTest();
  848. ]]>
  849. </script>
  850. </button>
  851. </group>
  852. </xhtml:body>
  853. </xhtml:html>