SMLQJ00200_물질별결과관리.xrw 45 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874
  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>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, 7, grd_testRsltInfo.row, 7) = "#f7a08b";
  271. }
  272. else if(vJudgLH == "L"){ //판정값이 L일때 배경색 변경
  273. grd_testRsltInfo.cellStyle ("background-color", grd_testRsltInfo.row, 7, grd_testRsltInfo.row, 7) = "#b9e5fb";
  274. }
  275. else{ //L이나 H가 아닐경우 허연색으로
  276. grd_testRsltInfo.cellStyle ("background-color", grd_testRsltInfo.row, 7, grd_testRsltInfo.row, 7) = "#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. grd_testRsltInfo.refresh();
  286. //결과값이 입력되면 체크 선택
  287. if(model.getValue("/root/main/rsltinfo/testrsltinfo[" + grd_testRsltInfo.row + "]/orgrslt") != ""){
  288. model.setValue("/root/main/rsltinfo/testrsltinfo[" + grd_testRsltInfo.row + "]/chk", "1");
  289. }else{
  290. model.setValue("/root/main/rsltinfo/testrsltinfo[" + grd_testRsltInfo.row + "]/chk", "0");
  291. }
  292. //엔터키 누른 후 다음칸으로 내려가게 조정하기 위하여 설정
  293. grd_testRsltInfo.row = grd_testRsltInfo.row+1;
  294. grd_testRsltInfo.col = 3;
  295. fRsltGrdEvent(); //검체 정보 조회(적용룰, 평균, 편차, 참고치, 단위등) 및 다음행 실제 결과를 임시결과칸으로 보여지게..
  296. //fGetSpcInfo(); // 다음 항목 참고치등 검체 정보 조회(▲ 함수에 같이 들어있음..아래꺼도..)
  297. //model.setValue("/root/main/rsltinfo/testrsltinfo[" + grd_testRsltInfo.row + "]/buforgrslt"
  298. // , model.getValue("/root/main/rsltinfo/testrsltinfo[" + grd_testRsltInfo.row + "]/orgrslt")); //다음행 실제 결과를 임시결과칸으로 보여지게..
  299. }
  300. }
  301. }
  302. //QC 접수 리스트 조회
  303. function fGetAcptList(pVal){
  304. model.makeValue("/root/send/bcno" , model.getValue("/root/hidden/bcno"));
  305. model.makeValue("/root/send/acptfromdd" , model.getValue("/root/hidden/acptfromdd"));
  306. model.makeValue("/root/send/acpttodd" , model.getValue("/root/hidden/acpttodd"));
  307. model.makeValue("/root/send/testroom" , model.getValue("/root/hidden/testroom"));
  308. model.makeValue("/root/send/eqmtcd" , model.getValue("/root/hidden/eqmtcd"));
  309. model.makeValue("/root/send/acptflag" , model.getValue("/root/hidden/acptflag"));
  310. model.makeValue("/root/send/matrcd" , model.getValue("/root/hidden/matrcd"));
  311. model.makeValue("/root/send/rsltstat" , model.getValue("/root/hidden/rsltstat"));
  312. model.makeValue("/root/send/deptflag" , model.getValue("/root/init/LB0000/nm"));
  313. submit("TRLQJ00201")
  314. if(grd_acptList.rows != 1){
  315. grd_acptList.row = pVal;
  316. fGetDetlInfo();
  317. }
  318. }
  319. //접수리스트 선택 시 검체 정보 및 결과정보 조회
  320. function fGetDetlInfo(){
  321. model.removeNodeset("/root/main/rsltinfo/testrsltinfo");
  322. grd_testRsltInfo.rebuild();
  323. model.makeValue("/root/send/bcno" , model.getValue("/root/main/acptlist[" + grd_acptList.row + "]/bcno"));
  324. model.makeValue("/root/send/matrcd" , model.getValue("/root/main/acptlist[" + grd_acptList.row + "]/matrcd"));
  325. model.makeValue("/root/send/levlcd" , model.getValue("/root/main/acptlist[" + grd_acptList.row + "]/levlcd"));
  326. model.makeValue("/root/send/eqmtcd" , model.getValue("/root/main/acptlist[" + grd_acptList.row + "]/eqmtcd"));
  327. model.makeValue("/root/send/acptdt" , model.getValue("/root/main/acptlist[" + grd_acptList.row + "]/acptdt"));
  328. model.makeValue("/root/send/deptflag" , model.getValue("/root/init/LB0000/nm"));
  329. submit("TRLQJ00202");
  330. if(model.getValue("/root/main/acptlist[" + grd_acptList.row + "]/rsltmark") == "◆"){
  331. btn_measfact.visible = true;
  332. }else{
  333. btn_measfact.visible = false;
  334. }
  335. //조회 후 판정값에 따라 배경 색 변환
  336. for( i =1; i<grd_testRsltInfo.rows; i++){
  337. var vJudgLH = model.getValue("/root/main/rsltinfo/testrsltinfo[" + i + "]/judgmark");
  338. var vJudgWGMR = model.getValue("/root/main/rsltinfo/testrsltinfo[" + i + "]/wgmrmark");
  339. var vRsltStat = model.getValue("/root/main/rsltinfo/testrsltinfo[" + i + "]/rsltstat");
  340. //L/H판정 값에 따른 색변경
  341. if(vJudgLH == "H"){ //판정값이 H일때 배경색 변경
  342. grd_testRsltInfo.cellStyle ("background-color", i, 7) = "#f7a08b";
  343. }
  344. else if(vJudgLH == "L"){ //판정값이 L일때 배경색 변경
  345. grd_testRsltInfo.cellStyle ("background-color", i, 7) = "#b9e5fb";
  346. }
  347. grd_testRsltInfo.cellstyle("background-color" , i,3) = "#EEFFFF";
  348. //WGMR판정값에 따른 배경색 변경
  349. if(vJudgWGMR == "W"){ //판정 값이 W다면..
  350. grd_testRsltInfo.cellStyle ("background-color", i, 9) = "#99cf16";
  351. }
  352. //결과상태 R(제외)일때 색 변경
  353. if(vRsltStat == "R"){
  354. grd_testRsltInfo.cellStyle ("background-color", i, 8) = "#fec34d";
  355. }
  356. //결과값이 있다면 자동..체크..
  357. if(model.getValue("/root/main/rsltinfo/testrsltinfo[" + i + "]/rsltstat") == "△"){ //orgrslt") != ""에서 조건 변경
  358. model.setValue("/root/main/rsltinfo/testrsltinfo[" + i + "]/chk", "1");
  359. }else{
  360. model.setValue("/root/main/rsltinfo/testrsltinfo[" + i + "]/chk", "0");
  361. }
  362. }
  363. model.setFocus("ipt_bcno");
  364. }
  365. //검사항목별 결과정보 그리드 클릭시
  366. function fRsltGrdEvent(){
  367. //if(isDataCell(grd_testRsltInfo)){ //클릭한 시점이 data영역이면 (tfHelper)//요것땜에 문제 있어서 제거함.엔터키눌르면 값이 안사라짐..
  368. fGetSpcInfo(); //검체 정보 조회(적용룰, 평균, 편차, 참고치, 단위등)
  369. //입력결과 컬럼 선택할때
  370. var col = grd_testRsltInfo.col;
  371. var vOrgRslt = model.getValue("/root/main/rsltinfo/testrsltinfo[" + grd_testRsltInfo.row + "]/orgrslt"); //입력결과 선택 시 실제결과 보이게 하기 위한 변수
  372. for(i =1; i<grd_testRsltInfo.rows; i++){
  373. if (i == grd_testRsltInfo.row){
  374. if(col==3){ //입력결과 컬럼을 클릭하면
  375. if(vOrgRslt != ""){
  376. model.setValue("/root/main/rsltinfo/testrsltinfo[" + i + "]/buforgrslt", vOrgRslt); //실제 결과를 보여준다
  377. }
  378. }else {
  379. model.setValue("/root/main/rsltinfo/testrsltinfo[" + i+ "]/buforgrslt", ""); //다른칸을 선택하면""
  380. }
  381. }
  382. else {
  383. model.setValue("/root/main/rsltinfo/testrsltinfo[" + i + "]/buforgrslt", ""); //다른행을 선택하면""
  384. }
  385. }
  386. model.refresh();
  387. //}
  388. }
  389. //검사항목별 결과 정보 선택 시 검체정보 조회
  390. function fGetSpcInfo(){
  391. var refkind = model.getValue("/root/main/rsltinfo/testrsltinfo[" + grd_testRsltInfo.row + "]/refkind");
  392. var refval = "";
  393. if(refkind == "0"){
  394. refval = "없음";
  395. }else if(refkind == "1"){
  396. refval = model.getValue("/root/main/rsltinfo/testrsltinfo[" + grd_testRsltInfo.row + "]/refcval");
  397. }else if(refkind == "2"){
  398. refval = model.getValue("/root/main/rsltinfo/testrsltinfo[" + grd_testRsltInfo.row + "]/refl") + " ~ " + model.getValue("/root/main/rsltinfo/testrsltinfo[" + grd_testRsltInfo.row + "]/refh");
  399. }
  400. model.setValue("/root/main/rsltinfo/spcinfo2/wgmr" , model.getValue("/root/main/rsltinfo/testrsltinfo[" + grd_testRsltInfo.row + "]/wgmrscop"));
  401. model.setValue("/root/main/rsltinfo/spcinfo2/sdval" , model.getValue("/root/main/rsltinfo/testrsltinfo[" + grd_testRsltInfo.row + "]/sdval"));
  402. model.setValue("/root/main/rsltinfo/spcinfo2/avg" , model.getValue("/root/main/rsltinfo/testrsltinfo[" + grd_testRsltInfo.row + "]/avg"));
  403. model.setValue("/root/main/rsltinfo/spcinfo2/unit" , model.getValue("/root/main/rsltinfo/testrsltinfo[" + grd_testRsltInfo.row + "]/rsltunit"));
  404. model.setValue("/root/main/rsltinfo/spcinfo2/refval" , refval);
  405. //아래꺼에서 위에걸로 변경 submit안타게 처리_20081015_승현
  406. /*model.makeValue("/root/send/testcd" , model.getValue("/root/main/rsltinfo/testrsltinfo[" + grd_testRsltInfo.row + "]/testcd")); //다른정보는 결과조회하면서 send에 있음
  407. submit("TRLQJ00203");*/
  408. model.refresh();
  409. }
  410. // 보고 방법 변경 버튼
  411. function fSetreptmthdchng(){
  412. }
  413. // 재검 버튼
  414. function fExeReTest(){
  415. }
  416. // 확인, 저장 할 데이터 확인
  417. function fInsSave(){
  418. if(model.getValue("/root/send/rsltstat")=="1"){ //저장일때
  419. for( i =1; i<grd_testRsltInfo.rows; i++){
  420. if(model.getValue("/root/main/rsltinfo/testrsltinfo[" + i + "]/chk") == "1"){ // 선택된 항목만 저장
  421. if(model.getValue("/root/main/rsltinfo/testrsltinfo[" + i + "]/rsltstat") == "◆" || model.getValue("/root/main/rsltinfo/testrsltinfo[" + i + "]/rsltstat") == "R"){// 확인인 항목이 있다면 저장을 하면 안되기에..
  422. alert("선택된 항목 중 확인 완료된 항목이 있습니다.");
  423. return 0;
  424. }
  425. if(model.getValue("/root/main/rsltinfo/testrsltinfo[" + i + "]/viewrslt") == ""){// 저장된 값이 없다면 저장을 하면 안되기에..
  426. alert("선택된 항목 중 결과값이 입력되지 않은항목이 있습니다.");
  427. return 0;
  428. }
  429. grd_testRsltInfo.addStatus(i, "update"); //status 를 update 변경
  430. }else{
  431. grd_testRsltInfo.removeStatus(i , "update"); //선택된 항목이 아니라면 update를 초기화한다
  432. }
  433. }
  434. }else if(model.getValue("/root/send/rsltstat")=="2"){ // 확인일때
  435. for( i =1; i<grd_testRsltInfo.rows; i++){
  436. if(model.getValue("/root/main/rsltinfo/testrsltinfo[" + i + "]/chk") == "1"){ // 선택된 항목만 저장
  437. if(model.getValue("/root/main/rsltinfo/testrsltinfo[" + i + "]/viewrslt") == ""){ // 결과값 입력 유무 체크
  438. alert("선택된 항목 중 결과값이 입력되지 않은항목이 있습니다.");
  439. return 0; //결과값이 없다면 알림창 띄우고 땡~
  440. }
  441. if(model.getValue("/root/main/rsltinfo/testrsltinfo[" + i + "]/rsltstat") == "◆" || model.getValue("/root/main/rsltinfo/testrsltinfo[" + i + "]/rsltstat") == "R"){// 확인인 항목이 있다면 저장을 하면 안되기에..
  442. alert("선택된 항목 중 확인 완료된 항목이 있습니다.");
  443. return 0;
  444. }
  445. grd_testRsltInfo.addStatus(i, "update"); //status 를 update 변경
  446. }else{
  447. grd_testRsltInfo.removeStatus(i , "update"); //선택된 항목이 아니라면 update를 초기화한다
  448. }
  449. }
  450. }else if(model.getValue("/root/send/rsltstat")=="R"){ //제외일때
  451. for( i =1; i<grd_testRsltInfo.rows; i++){
  452. if(model.getValue("/root/main/rsltinfo/testrsltinfo[" + i + "]/chk") == "1"){ // 선택된 항목만 저장
  453. if(model.getValue("/root/main/rsltinfo/testrsltinfo[" + i + "]/viewrslt") == ""){ // 결과값 입력 유무 체크
  454. var rtn = messageBox("결과값이 입력되지 않은항목이 있습니다.\n", "Q003");
  455. if(rtn != "6"){
  456. return 0;
  457. }
  458. }
  459. if(model.getValue("/root/main/rsltinfo/testrsltinfo[" + i + "]/measfactcnts") == ""){ // 조치사항사유 입력 유무 체크
  460. alert("제외를 위해 조치사항에 사유를 입력하세요");
  461. return 0; //결과값이 없다면 알림창 띄우고 땡~
  462. }
  463. grd_testRsltInfo.addStatus(i, "update"); //status 를 update 변경
  464. }else{
  465. grd_testRsltInfo.removeStatus(i , "update"); //선택된 항목이 아니라면 update를 초기화한다
  466. }
  467. }
  468. }else if(model.getValue("/root/send/rsltstat")=="F"){ //조치사유
  469. for( i =1; i<grd_testRsltInfo.rows; i++){
  470. if(model.getValue("/root/main/rsltinfo/testrsltinfo[" + i + "]/chk") == "1"){ // 선택된 항목만 저장
  471. if(model.getValue("/root/main/rsltinfo/testrsltinfo[" + i + "]/viewrslt") == ""){ // 결과값 입력 유무 체크
  472. var rtn = messageBox("결과값이 입력되지 않은항목이 있습니다.\n", "Q003");
  473. if(rtn != "6"){
  474. return 0;
  475. }
  476. }
  477. if(model.getValue("/root/main/rsltinfo/testrsltinfo[" + i + "]/measfactcnts") == ""){ // 조치사항사유 입력 유무 체크
  478. alert("선택된 항목에 조치사항을 입력하세요");
  479. return 0; //결과값이 없다면 알림창 띄우고 땡~
  480. }
  481. grd_testRsltInfo.addStatus(i, "update"); //status 를 update 변경
  482. }else{
  483. grd_testRsltInfo.removeStatus(i , "update"); //선택된 항목이 아니라면 update를 초기화한다
  484. }
  485. }
  486. }
  487. }
  488. //결과 저장 및 확인 버튼
  489. function fExeSave(){
  490. if(fInsSave() !=0){
  491. model.makeValue("/root/send/testrsltlist", grd_testRsltInfo.getUpdateData());
  492. submit("TXLQJ00201", false);
  493. //fGetDetlInfo(); //검사항목별 결과정보 다시 조회
  494. fGetAcptList(grd_acptList.row);
  495. }
  496. }
  497. //전체선택 기능(결과 입력된 값만)
  498. function btnAllCheck(){
  499. var checked = model.getValue("/root/hidden/check");
  500. if(checked=="0") {
  501. checked ="1";
  502. } else {
  503. checked ="0";
  504. }
  505. model.setValue("/root/hidden/check", checked);
  506. for(i=1 ; i<grd_testRsltInfo.rows; i++){ //결과입력상태인 항목만 체크 함
  507. if(model.getValue("/root/main/rsltinfo/testrsltinfo[" + i + "]/rsltstat") == "△"){ //orgrslt != "" 에서 조건 변경
  508. model.setValue("/root/main/rsltinfo/testrsltinfo[" + i + "]/chk", checked);
  509. }else{
  510. model.setValue("/root/main/rsltinfo/testrsltinfo[" + i + "]/chk", "0");
  511. }
  512. }
  513. btn_check.attribute("background-image") = "../../../lis/commonweb/images/chkRPT" + checked + ".gif"; //전체 체크 이미지셋팅
  514. }
  515. function fFactCntSet(){
  516. model.setValue("/root/main/rsltinfo/testrsltinfo["+ grd_testRsltInfo.row + "]/measfactcnts", grd_testRsltInfo.labelMatrix(grd_testRsltInfo.row, grd_testRsltInfo.col));
  517. model.setValue("/root/main/rsltinfo/testrsltinfo["+ grd_testRsltInfo.row + "]/chk", "1");
  518. }
  519. ]]>
  520. </script>
  521. </xhtml:head>
  522. <xhtml:body style="margin-left:8; margin-top:0; margin-right:8; margin-bottom:0; ">
  523. <group id="group1" style="left:0px; top:40px; width:1195px; height:744px; font-size:18pt; ">
  524. <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, 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" extendlastcol="scroll" 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:130px; width:869px; height:605px; ">
  525. <col checkimage="../../../lis/commonweb/images/chkRPT1.gif" checkvalue="1,0" ref="chk" type="checkbox" uncheckimage="../../../lis/commonweb/images/chkRPT0.gif"/>
  526. <col ref="testnm"/>
  527. <col ref="buforgrslt" type="input"/>
  528. <col ref="viewrslt"/>
  529. <col ref="rsltrgstdt" format="yyyy-mm-dd hh:mm:ss"/>
  530. <col ref="rsltcnfmdt" format="yyyy-mm-dd hh:mm:ss"/>
  531. <col ref="judgmark" style="font-weight:bolder; text-align:center; "/>
  532. <col ref="rsltstat" style="font-size:9pt; font-weight:bolder; color:#339966; text-align:center; "/>
  533. <col ref="wgmrmark" style="font-weight:bolder; text-align:center; "/>
  534. <col ref="wgmrstat"/>
  535. <col ref="measfactcd" type="combo">
  536. <choices>
  537. <itemset nodeset="/root/init/LB0703">
  538. <label ref="nm"/>
  539. <value ref="cd"/>
  540. </itemset>
  541. </choices>
  542. </col>
  543. <col ref="measfactcnts" type="input"/>
  544. <col ref="rsltrid" format="yyyy-mm-dd hh:mm:ss" style="text-align:center; "/>
  545. <col ref="bcno" visibility="hidden"/>
  546. <col ref="testcd" visibility="hidden"/>
  547. <col ref="judgkind" visibility="hidden"/>
  548. <col ref="refkind" visibility="hidden"/>
  549. <col ref="refflag" visibility="hidden"/>
  550. <col ref="refl" visibility="hidden"/>
  551. <col ref="refh" visibility="hidden"/>
  552. <col ref="refls" visibility="hidden"/>
  553. <col ref="refhs" visibility="hidden"/>
  554. <col ref="orgrslt" visibility="hidden"/>
  555. <col ref="rsltkind" visibility="hidden"/>
  556. <col ref="rsltunit" visibility="hidden"/>
  557. <col ref="wgmrscop" visibility="hidden"/>
  558. <col ref="sdval" visibility="hidden"/>
  559. <col ref="avg" visibility="hidden"/>
  560. <col ref="rundkind" visibility="hidden"/>
  561. <col ref="graphdispyn" visibility="hidden"/>
  562. <col ref="refcval" visibility="hidden"/>
  563. <col ref="intrsltfrmt" visibility="hidden"/>
  564. <col ref="bfrslt1"/>
  565. <col ref="bfrsltcnfmdt" format="yyyy-mm-dd hh:mm:ss"/>
  566. <col ref="bfrsltcnfmid" style="text-align:center;"/>
  567. <script type="javascript" ev:event="onclick">
  568. <![CDATA[
  569. if(isDataCell(grd_testRsltInfo)){
  570. fRsltGrdEvent(); //검체 정보 조회와 3번째칸 클릭하면 실제 결과 보여줌
  571. }
  572. ]]>
  573. </script>
  574. <script type="javascript" ev:event="onkeypress">
  575. <![CDATA[
  576. fGrdKeyEvent(); //결과 입력 키이벤트
  577. ]]>
  578. </script>
  579. <script type="javascript" ev:event="onkeydown">
  580. <![CDATA[
  581. fGrdKeyDown(); //방향키
  582. ]]>
  583. </script>
  584. <script type="javascript" ev:event="xforms-value-changed">
  585. <![CDATA[
  586. if(grd_testRsltInfo.col == 11){
  587. fFactCntSet();
  588. }
  589. ]]>
  590. </script>
  591. <!--<script type="javascript" ev:event="onentercell">
  592. <![CDATA[
  593. if(grd_testRsltInfo.colType(grd_testRsltInfo.col) == "input"){
  594. grd_testRsltInfo.editCell();
  595. }
  596. ]]>
  597. </script>-->
  598. </datagrid>
  599. <button id="btn_check" style="left:348px; top:133px; width:20px; height:20px; text-align:center; background-image:../../../lis/commonweb/images/chkRPT0.gif; background-position:center; ">
  600. <caption/>
  601. <script type="javascript" ev:event="DOMActivate">
  602. <![CDATA[
  603. btnAllCheck(); //결과 입력된 값 전체 체크
  604. ]]>
  605. </script>
  606. </button>
  607. <line id="line1" class="line_1" style="x1:0px; y1:245px; x2:320px; y2:245px; "/>
  608. <caption id="caption7" class="tit_2" style="left:5px; top:230px; width:115px; height:13px; ">QC 접수 리스트</caption>
  609. <datagrid id="grd_acptList" nodeset="/root/main/acptlist" caption="^검체번호^물질명^레벨명^물질코드^레벨코드^접수일시^장비코드" colsep="^" colwidth="20, 90, 90, 80, 80, 80, 130, 60" 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; ">
  610. <col ref="rsltmark" style="font-size:9pt; color:#339966; text-align:center; "/>
  611. <col ref="bcno"/>
  612. <col ref="matrnm"/>
  613. <col ref="levlnm"/>
  614. <col ref="matrcd" visibility="hidden"/>
  615. <col ref="levlcd" visibility="hidden"/>
  616. <col ref="acptdt" format="yyyy-mm-dd hh:nn:ss"/>
  617. <col ref="eqmtcd"/>
  618. <script type="javascript" ev:event="onclick">
  619. <![CDATA[
  620. if(isDataCell(grd_acptList)){
  621. fGetDetlInfo(); //결과정보 및 검체정보 조회(물질, 레벨, LOT번호, 제조회사, 장비)
  622. }
  623. ]]>
  624. </script>
  625. </datagrid>
  626. <line id="line14" class="line_1" style="x1:325px; y1:125px; x2:1194px; y2:125px; "/>
  627. <caption id="caption3" class="tit_2" style="left:330px; top:110px; width:139px; height:14px; ">검사항목별 결과정보</caption>
  628. <group id="group3" style="left:0px; top:10px; width:320px; height:210px; ">
  629. <shape id="roundrect2" class="roundrect_search" appearance="roundrect" style="left:0px; top:0px; width:320px; height:210px; "/>
  630. <caption id="caption1" class="search_name" style="left:15px; top:112px; width:89px; height:17px; ">접수구분 :</caption>
  631. <button id="btn_getAcptList" class="btn1_letter2" style="left:249px; top:181px; width:56px; height:22px; ">
  632. <caption>조회</caption>
  633. <script type="javascript" ev:event="DOMActivate">
  634. <![CDATA[
  635. fGetAcptList(1); //QC 접수리스트 조회
  636. ]]>
  637. </script>
  638. </button>
  639. <line id="line13" class="line_4" style="x1:234px; y1:181px; x2:234px; y2:203px; "/>
  640. <caption id="caption2" class="search_no_b" style="left:199px; top:39px; width:15px; height:20px; vertical-align:middle; ">~</caption>
  641. <select1 id="cbo_acptFlag" ref="/root/hidden/acptflag" class="combo_search" appearance="minimal" style="left:105px; top:111px; width:200px; height:19px; ">
  642. <choices>
  643. <itemset nodeset="/root/init/LB0704">
  644. <label ref="nm"/>
  645. <value ref="cd"/>
  646. </itemset>
  647. </choices>
  648. </select1>
  649. <caption id="caption4" class="search_name" style="left:15px; top:39px; width:89px; height:17px; ">접수일자 :</caption>
  650. <caption id="caption5" class="search_name" visibility="hidden" style="left:15px; top:136px; width:94px; height:17px; ">QC 물질 :</caption>
  651. <input id="ipt_acptfromdd" ref="/root/hidden/acptfromdd" class="input_search" inputtype="date" style="left:105px; top:38px; width:90px; height:19px; "/>
  652. <input id="ipt_acpttodd" ref="/root/hidden/acpttodd" class="input_search" inputtype="date" style="left:215px; top:38px; width:90px; height:19px; "/>
  653. <caption id="caption18" class="search_name" style="left:15px; top:9px; width:89px; height:17px; ">검체번호 :</caption>
  654. <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; ">
  655. <script type="javascript" ev:event="onkeypress">
  656. <![CDATA[
  657. fKeyEvent();
  658. ]]>
  659. </script>
  660. </input>
  661. <line id="line6" class="line_7" style="x1:14px; y1:32px; x2:299px; y2:32px; "/>
  662. <caption id="caption8" class="search_name" style="left:15px; top:63px; width:88px; height:17px; ">검 사 실 :</caption>
  663. <select1 id="cbo_testRoom" ref="/root/hidden/testroom" class="combo_search" appearance="minimal" style="left:105px; top:63px; width:200px; height:19px; ">
  664. <choices>
  665. <itemset nodeset="/root/init/LB0111">
  666. <label ref="nm"/>
  667. <value ref="cd"/>
  668. </itemset>
  669. </choices>
  670. <script type="javascript" ev:event="xforms-value-changed">
  671. <![CDATA[
  672. fSetEqmtCd(); //검사실에 따른 장비 설정
  673. ]]>
  674. </script>
  675. </select1>
  676. <select1 id="cbo_eqmtCd" ref="/root/hidden/eqmtcd" class="combo_search" appearance="minimal" style="left:105px; top:87px; width:200px; height:19px; ">
  677. <choices>
  678. <itemset nodeset="/root/init/LB0701">
  679. <label ref="nm"/>
  680. <value ref="cd"/>
  681. </itemset>
  682. </choices>
  683. </select1>
  684. <caption id="caption9" class="search_name" style="left:15px; top:87px; width:88px; height:17px; ">장 비 :</caption>
  685. <caption id="caption10" class="search_name" style="left:15px; top:159px; width:94px; height:17px; ">작업구분 :</caption>
  686. <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; ">
  687. <choices>
  688. <item>
  689. <label>전체</label>
  690. <value>1</value>
  691. </item>
  692. <item>
  693. <label>완료</label>
  694. <value>3</value>
  695. </item>
  696. <item>
  697. <label>미완료</label>
  698. <value>2</value>
  699. </item>
  700. <item>
  701. <label>제외</label>
  702. <value>R</value>
  703. </item>
  704. </choices>
  705. <script type="javascript" ev:event="xforms-value-changed">
  706. <![CDATA[
  707. if(rdo_Rsltflag.value == "3"){
  708. btn_save.disabled = true;
  709. btn_cfm.disabled = true;
  710. //btn_measfact.visible = true;
  711. }else{
  712. btn_save.disabled = false;
  713. btn_cfm.disabled = false;
  714. //btn_measfact.visible = false;
  715. }
  716. model.removeNodeset("/root/main/acptlist");
  717. model.removeNodeset("/root/main/rsltinfo/testrsltinfo");
  718. model.removeNodeset("/root/main/rsltinfo/spcinfo");
  719. model.removeNodeset("/root/main/rsltinfo/spcinfo2");
  720. model.refresh();
  721. ]]>
  722. </script>
  723. </select1>
  724. <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; ">
  725. <script type="javascript" ev:event="onkeypress">
  726. <![CDATA[
  727. fKeyEvent();
  728. ]]>
  729. </script>
  730. </input>
  731. </group>
  732. <line id="line2" class="line_1" style="x1:325px; y1:25px; x2:1194px; y2:25px; "/>
  733. <caption id="caption11" class="tit_2" style="left:330px; top:10px; width:115px; height:14px; ">검체정보</caption>
  734. <caption id="caption19" class="cell_1" style="left:325px; top:78px; width:60px; height:23px; ">평균</caption>
  735. <caption id="caption20" class="cell_1" style="left:757px; top:78px; width:60px; height:23px; ">참고치</caption>
  736. <caption id="caption21" class="cell_1" style="left:541px; top:78px; width:60px; height:23px; ">표준편차</caption>
  737. <caption id="caption22" class="cell_1" style="left:974px; top:78px; width:60px; height:23px; ">단위</caption>
  738. <output id="opt_matrcd" ref="/root/main/rsltinfo/spcinfo/matrnm" class="output_fix" style="left:388px; top:31px; width:225px; height:19px; "/>
  739. <line id="line4" class="line_2" style="x1:325px; y1:52px; x2:1194px; y2:52px; "/>
  740. <line id="line5" class="line_2" style="x1:325px; y1:76px; x2:1194px; y2:76px; "/>
  741. <output id="opt_levlcd" ref="/root/main/rsltinfo/spcinfo/levlnm" class="output_fix" style="left:679px; top:31px; width:225px; height:19px; "/>
  742. <output id="opt_lotno" ref="/root/main/rsltinfo/spcinfo/lotno" class="output_fix" style="left:969px; top:31px; width:225px; height:19px; "/>
  743. <output id="opt_wgRule" ref="/root/main/rsltinfo/spcinfo2/wgmr" class="output_fix" style="left:388px; top:55px; width:225px; height:19px; "/>
  744. <script type="javascript" ev:event="onmouseover">
  745. <![CDATA[
  746. 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 ";
  747. ]]>
  748. </script>
  749. <output id="opt_prodCmpy" ref="/root/main/rsltinfo/spcinfo/prodcmpy" class="output_fix" style="left:679px; top:55px; width:225px; height:19px; "/>
  750. <output id="opt_eqmtCd" ref="/root/main/rsltinfo/spcinfo/eqmtnm" class="output_fix" style="left:969px; top:55px; width:225px; height:19px; "/>
  751. <output id="opt_avg" ref="/root/main/rsltinfo/spcinfo2/avg" class="output_fix" style="left:388px; top:79px; width:150px; height:19px; "/>
  752. <line id="line7" class="line_3" style="x1:325px; y1:100px; x2:1194px; y2:100px; "/>
  753. <output id="opt_sDVal" ref="/root/main/rsltinfo/spcinfo2/sdval" class="output_fix" style="left:604px; top:79px; width:150px; height:19px; "/>
  754. <output id="opt_refVal" ref="/root/main/rsltinfo/spcinfo2/refval" class="output_fix" style="left:821px; top:79px; width:150px; height:19px; "/>
  755. <output id="opt_unit" ref="/root/main/rsltinfo/spcinfo2/unit" class="output_fix" style="left:1037px; top:79px; width:157px; height:19px; "/>
  756. <caption id="caption12" class="cell_1" style="left:616px; top:30px; width:60px; height:23px; ">레벨</caption>
  757. <caption id="caption13" class="cell_1" style="left:325px; top:30px; width:60px; height:23px; ">QC 물질</caption>
  758. <caption id="caption14" class="cell_1" style="left:907px; top:30px; width:60px; height:23px; ">LOT번호</caption>
  759. <caption id="caption15" class="cell_1" style="left:325px; top:54px; width:60px; height:23px; ">적용룰</caption>
  760. <caption id="caption16" class="cell_1" style="left:907px; top:54px; width:60px; height:23px; ">장비</caption>
  761. <caption id="caption17" class="cell_1" style="left:616px; top:54px; width:60px; height:23px; ">제조회사</caption>
  762. </group>
  763. <group id="group2" style="left:0px; top:0px; width:1195px; height:13px; ">
  764. <caption id="caption6" class="tit_1" style="left:0px; top:0px; width:126px; height:14px; ">물질별결과관리</caption>
  765. </group>
  766. <group id="grp_btn" style="left:0px; top:13px; width:1195px; height:27px; ">
  767. <line id="line3" class="line_6" style="x1:0px; y1:25px; x2:1194px; y2:25px; "/>
  768. <button id="btn_cle" class="btn4_letter3" style="left:1127px; top:3px; width:68px; height:22px; ">
  769. <caption>초기화</caption>
  770. <script type="javascript" ev:event="onclick">
  771. <![CDATA[
  772. window.reload();
  773. ]]>
  774. </script>
  775. </button>
  776. <button id="btn_exception" class="btn4_letter2" style="left:1068px; top:3px; width:56px; height:22px; ">
  777. <caption>제외</caption>
  778. <script type="javascript" ev:event="onclick">
  779. <![CDATA[
  780. model.makeValue("/root/send/rsltstat", "R");
  781. fExeSave();//fInsSave();
  782. ]]>
  783. </script>
  784. </button>
  785. <button id="btn_cfm" class="btn4_letter2" style="left:1009px; top:3px; width:56px; height:22px; ">
  786. <caption>확인</caption>
  787. <script type="javascript" ev:event="onclick">
  788. <![CDATA[
  789. model.makeValue("/root/send/rsltstat", "2");
  790. fExeSave();//fInsSave();
  791. ]]>
  792. </script>
  793. </button>
  794. <button id="btn_save" class="btn4_letter2" style="left:950px; top:3px; width:56px; height:22px; ">
  795. <caption>저장</caption>
  796. <script type="javascript" ev:event="onclick">
  797. <![CDATA[
  798. model.makeValue("/root/send/rsltstat", "1");
  799. fExeSave();//fInsSave();
  800. ]]>
  801. </script>
  802. </button>
  803. <button id="btn_measfact" class="btn4_letter6" visibility="hidden" style="left:843px; top:3px; width:104px; height:22px; ">
  804. <caption>조치사유등록</caption>
  805. <script type="javascript" ev:event="onclick">
  806. <![CDATA[
  807. model.makeValue("/root/send/rsltstat", "F");
  808. fExeSave();
  809. ]]>
  810. </script>
  811. </button>
  812. <button id="btn_retest" class="btn4_letter2" visibility="hidden" style="left:891px; top:3px; width:56px; height:22px; ">
  813. <caption>재검</caption>
  814. <script type="javascript" ev:event="onclick">
  815. <![CDATA[
  816. fExeReTest();
  817. ]]>
  818. </script>
  819. </button>
  820. </group>
  821. </xhtml:body>
  822. </xhtml:html>