SMLQJ10400_핵의학검사항목별결과관리(레벨).xrw 55 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099
  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. <testrslt>
  11. <chk/>
  12. <bcno/>
  13. <matrnm/>
  14. <levlnm/>
  15. <acptdt/>
  16. <testcd/>
  17. <testnm/>
  18. </testrslt>
  19. <testrsltinfo>
  20. <bcno/>
  21. <matrcd/>
  22. <levlcd/>
  23. <testcd/>
  24. <acptdt/>
  25. <rsltcnfmdt/>
  26. <rsltcnfmid/>
  27. <orgrslt/>
  28. <viewrslt/>
  29. <wgmrstat/>
  30. <measfactcnts/>
  31. <judgmark/>
  32. <wgmrmark/>
  33. <rsltstat/>
  34. <rsltkind/>
  35. <refkind/>
  36. <refflag/>
  37. <refl/>
  38. <refh/>
  39. <refls/>
  40. <refhs/>
  41. <refcval/>
  42. <intrsltfrmt/>
  43. <avge/>
  44. <rsltunit/>
  45. <wgmrscop/>
  46. <sdval/>
  47. <judgkind/>
  48. <rundkind/>
  49. <lotno/>
  50. <matrnm/>
  51. <prodcmpy/>
  52. <levlnm/>
  53. <bfcolumn0/>
  54. <bfcolumn1/>
  55. <bfcolumn2/>
  56. <bfcolumn3/>
  57. <bfcolumn4/>
  58. <bfcolumn5/>
  59. <bfcolumn6/>
  60. <bfcolumn7/>
  61. <bfcolumn8/>
  62. <bfrsltcnfmid/>
  63. <bfrsltcnfmdt/>
  64. <iud/>
  65. <instcd/>
  66. <userdeptflagcd/>
  67. <eqmtcd/>
  68. <acptflag/>
  69. </testrsltinfo>
  70. </main>
  71. <send>
  72. <testnm/>
  73. <testnm2/>
  74. <testcd/>
  75. <testcd2/>
  76. <rsltstat/>
  77. </send>
  78. <init/>
  79. <hidden>
  80. <ref>
  81. <acptfromdd/>
  82. <acpttodd/>
  83. <testroom>00</testroom>
  84. <eqmtcd>00</eqmtcd>
  85. <testnm/>
  86. <levlcd/>
  87. <basecdid/>
  88. <testlist>
  89. <testnm/>
  90. <testcd/>
  91. <testcd2/>
  92. <testnm2/>
  93. </testlist>
  94. <testcdlist/>
  95. <rsltflag>2</rsltflag>
  96. <acptflag>00</acptflag>
  97. <levllist>
  98. <levlnm/>
  99. <levlcd/>
  100. <levlcd2/>
  101. </levllist>
  102. </ref>
  103. <rsltinfo>
  104. <rsltstat>
  105. <rsltstat/>
  106. <wgmrmark/>
  107. <judgmark/>
  108. </rsltstat>
  109. <refval/>
  110. <wgmrscop/>
  111. <wgmrstat/>
  112. <avge/>
  113. <sdval/>
  114. <lotno/>
  115. <prodcmpy/>
  116. <orgrslt/>
  117. <measfactcnts/>
  118. <acptdt/>
  119. <bfrsltcnfmdt/>
  120. <rsltcnfmid/>
  121. <bfrsltcnfmid/>
  122. <rsltcnfmdt/>
  123. <rsltunit/>
  124. <bfrslt/>
  125. <ddosevalue/>
  126. <cdosevalue/>
  127. <bfvalue/>
  128. </rsltinfo>
  129. </hidden>
  130. </root>
  131. </instance>
  132. <script type="javascript" ev:event="xforms-model-construct-done">
  133. <![CDATA[
  134. fSetinit();
  135. ]]>
  136. </script>
  137. <script type="javascript" src="../../../com/commonweb/js/dateHelper.js"/>
  138. <script type="javascript" src="../../../com/commonweb/js/common.js"/>
  139. <script type="javascript" src="../../../com/commonweb/js/tfHelper.js"/>
  140. <script type="javascript" src="../../../com/commonweb/js/numericHelper.js"/>
  141. <script type="javascript" src="../../../lis/commonweb/js/LLZ001.js"/>
  142. <script type="javascript" src="../../../lis/commonweb/js/LQZ001.js"/>
  143. <submission id="TRLZZ00101" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" resultref="/root/LB0111"/>
  144. <submission id="TRLQJ00302" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" resultref="/root/main"/>
  145. <bind id="bind0" ref="/root/main/testrslt/column0" readonly="../column0/@readonly = 'true'"/>
  146. <bind id="bind1" ref="/root/main/testrslt/column1" readonly="../column1/@readonly = 'true'"/>
  147. <bind id="bind2" ref="/root/main/testrslt/column2" readonly="../column2/@readonly = 'true'"/>
  148. <bind id="bind3" ref="/root/main/testrslt/column3" readonly="../column3/@readonly = 'true'"/>
  149. <bind id="bind4" ref="/root/main/testrslt/column4" readonly="../column4/@readonly = 'true'"/>
  150. <bind id="bind5" ref="/root/main/testrslt/column5" readonly="../column5/@readonly = 'true'"/>
  151. <bind id="bind6" ref="/root/main/testrslt/column6" readonly="../column6/@readonly = 'true'"/>
  152. <bind id="bind7" ref="/root/main/testrslt/column7" readonly="../column7/@readonly = 'true'"/>
  153. <bind id="bind8" ref="/root/main/testrslt/column8" readonly="../column8/@readonly = 'true'"/>
  154. <bind id="bind9" ref="/root/main/testrslt/column9" readonly="../column9/@readonly = 'true'"/>
  155. <bind id="bind10" ref="/root/main/testrslt/column10" readonly="../column10/@readonly = 'true'"/>
  156. <bind id="bind11" ref="/root/main/testrslt/column11" readonly="../column11/@readonly = 'true'"/>
  157. <bind id="bind12" ref="/root/main/testrslt/column12" readonly="../column12/@readonly = 'true'"/>
  158. <bind id="bind13" ref="/root/main/testrslt/column13" readonly="../column13/@readonly = 'true'"/>
  159. <bind id="bind14" ref="/root/main/testrslt/column14" readonly="../column14/@readonly = 'true'"/>
  160. <bind id="bind15" ref="/root/main/testrslt/column15" readonly="../column15/@readonly = 'true'"/>
  161. <bind id="bind16" ref="/root/main/testrslt/column16" readonly="../column16/@readonly = 'true'"/>
  162. <bind id="bind17" ref="/root/main/testrslt/column17" readonly="../column17/@readonly = 'true'"/>
  163. <bind id="bind18" ref="/root/main/testrslt/column18" readonly="../column18/@readonly = 'true'"/>
  164. <bind id="bind19" ref="/root/main/testrslt/column19" readonly="../column19/@readonly = 'true'"/>
  165. <bind id="bind20" ref="/root/main/testrslt/column20" readonly="../column20/@readonly = 'true'"/>
  166. <bind id="bind21" ref="/root/main/testrslt/column21" readonly="../column21/@readonly = 'true'"/>
  167. <bind id="bind22" ref="/root/main/testrslt/column22" readonly="../column22/@readonly = 'true'"/>
  168. <bind id="bind23" ref="/root/main/testrslt/column23" readonly="../column23/@readonly = 'true'"/>
  169. <bind id="bind24" ref="/root/main/testrslt/column24" readonly="../column24/@readonly = 'true'"/>
  170. <bind id="bind25" ref="/root/main/testrslt/column25" readonly="../column25/@readonly = 'true'"/>
  171. <bind id="bind26" ref="/root/main/testrslt/column26" readonly="../column26/@readonly = 'true'"/>
  172. <bind id="bind27" ref="/root/main/testrslt/column27" readonly="../column27/@readonly = 'true'"/>
  173. <bind id="bind28" ref="/root/main/testrslt/column28" readonly="../column28/@readonly = 'true'"/>
  174. <bind id="bind29" ref="/root/main/testrslt/column29" readonly="../column29/@readonly = 'true'"/>
  175. <bind id="bind30" ref="/root/main/testrslt/column30" readonly="../column30/@readonly = 'true'"/>
  176. <bind id="bind31" ref="/root/main/testrslt/column31" readonly="../column31/@readonly = 'true'"/>
  177. <bind id="bind32" ref="/root/main/testrslt/column32" readonly="../column32/@readonly = 'true'"/>
  178. <bind id="bind33" ref="/root/main/testrslt/column33" readonly="../column33/@readonly = 'true'"/>
  179. <bind id="bind34" ref="/root/main/testrslt/column34" readonly="../column34/@readonly = 'true'"/>
  180. <submission id="TXLQJ00301" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" resultref="/root/main"/>
  181. </model>
  182. <script type="javascript">
  183. <![CDATA[
  184. var vStartCol = 7; //결과값이 조회되는 컬럼
  185. //초기화
  186. function fSetinit(){
  187. //var fromdate = getCurrentDate().toDate("YYYYMMDD").getAddDate(-30)
  188. //model.setValue("/root/hidden/ref/acptfromdd" , fromdate.getDateFormat("YYYYMMDD"));
  189. model.setValue("/root/hidden/ref/acptfromdd" , getCurrentDate());
  190. model.setValue("/root/hidden/ref/acpttodd" , getCurrentDate());
  191. model.makeValue("/root/send/codeflag" ,"0000|0111|0701|"); //0000:사용자부서코드, 0111:시행부서계 0707: 장비코드
  192. submit("TRLZZ00101", false);
  193. model.makeValue("/root/send/basecdid" , model.getValue("/root/init/LB0000/nm"));
  194. model.setValue("/root/send/codeflag" , "0501|0704|"); //사용자 부서별로 레벨코드를 조회하기 위해 사용자부서 코드를 가져온 다음 다시 레벨코드 조회
  195. submit("TRLZZ00101");
  196. grd_testRslt.fixedcellcheckbox(0, 1) = true;
  197. grd_testRslt.fixedcellischeck(0, 1) = false;
  198. //grd_testRslt.rowHidden(1) = true; //검사코드
  199. }
  200. //검사실에 따른 장비 조회
  201. function fSetEqmtCd(){
  202. model.removeNodeset("/root/init/LB0701");
  203. var testroom = model.getValue("/root/hidden/ref/testroom");
  204. model.makeValue("/root/send/basecdid", testroom); //검사실구분 코드(장비코드앞자리)
  205. model.setValue("/root/send/codeflag","0701|");
  206. model.setValue("/root/hidden/ref/eqmtcd", "00");
  207. submit("TRLZZ00101");
  208. }
  209. //장비별 검사항목 조회 팝업
  210. function fTestListSch(){
  211. var eqmtcd = model.getValue("/root/hidden/ref/eqmtcd"); //장비코드
  212. var deptflag = model.getValue("/root/init/LB0000/nm"); //사용자부서코드
  213. var sflag = "nu" + "▦" + eqmtcd + "▦" + deptflag;
  214. setParameter("opener_parameter_id", sflag);
  215. modal("SPLQP00100", "", "", "", "", "", "");
  216. model.setValue("/root/hidden/ref/testnm", model.getValue("/root/hidden/ref/testlist/testnm")); //검사명
  217. model.setValue("/root/send/testnm" , model.getValue("/root/hidden/ref/testlist/testnm")); //검사명
  218. model.setValue("/root/send/testnm2" , model.getValue("/root/hidden/ref/testlist/testnm2")); //검사명
  219. model.setValue("/root/send/testcd" , model.getValue("/root/hidden/ref/testlist/testcd")); //검사코드를 받아와서 셋팅~
  220. model.setValue("/root/send/testcd2" , model.getValue("/root/hidden/ref/testlist/testcd2"));
  221. model.refresh();
  222. //fGrdSet();//검사항목에 따른 그리드 셋팅
  223. }
  224. //검사항목별 레벨 조회 팝업
  225. function fTestLevlSch(){
  226. var eqmtcd = model.getValue("/root/send/eqmtcd"); //장비코드
  227. var deptflag = model.getValue("/root/init/LB0000/nm"); //사용자부서코드
  228. var tlentgh = model.getValue("/root/hidden/ref/testlist/testcd").split("▦");
  229. var testcd = model.getValue("/root/hidden/ref/testlist/testcd");
  230. for(i = 0; i < tlentgh.length; i++){
  231. testcd = testcd.replace("▦", "▤");
  232. }
  233. var sflag = "nu" + "▦" + eqmtcd + "▦" + deptflag + "▦" + testcd;
  234. setParameter("opener_parameter_id", sflag);
  235. modal("SPLQP00200", "", "", "", "", "", "");
  236. //model.makeValue("/root/send/levlnm" , model.getValue("/root/hidden/ref/levllist/levlnm")); //레벨명
  237. model.setValue("/root/hidden/ref/levlcd" , model.getValue("/root/hidden/ref/levllist/levlcd")); //레벨코드
  238. //model.makeValue("/root/send/levlcd2" , model.getValue("/root/hidden/ref/levllist/levlcd2"));
  239. //model.refresh();
  240. fGrdSet();
  241. }
  242. //검사항목에 따른 그리드 셋팅
  243. function fGrdSet(){
  244. if(model.getValue("/root/hidden/ref/levllist/levlnm") != ""){
  245. model.removeNodeset("/root/main/rslt");
  246. grd_testRslt.addRow(); //요거 안해주면 컬럼 안사라져서 이상하게됨 -_-
  247. //그리드 컬럼 추가 및 캡션 설정 //컬럼 추가때 사용
  248. var vCap = "^검사명^검체번호^Control^Standard^접수일시"; //캡션 초기화(고정인 컬럼 캡션)//검사명
  249. var vCap2 = vCap //검사코드
  250. var vTestnm = model.getValue("/root/hidden/ref/levllist/levlcd").split("▦"); //검사항목을 ▦단위로 쪼개서 담고
  251. var vTestcd = model.getValue("/root/hidden/ref/levllist/levlnm").split(", "); //검사항목을 ▦단위로 쪼개서 담고
  252. //1번째 컬럼을 제외하고 다 지운다~~
  253. for(i = grd_testRslt.cols; i>vStartCol; i--){
  254. grd_testRslt.removeColumn(false);
  255. }
  256. //검사항목 갯수만큼 컬럼 추가
  257. for(i = 0; i<vTestnm.length ; i++){ //선택한 검사항목 갯수만큼
  258. vCap = vCap + "^" + vTestnm[i]; //캡션에 하나씩 넣어주고
  259. vCap2 = vCap2 + "^" + vTestcd[i];
  260. grd_testRslt.addColumn("ref:column"+ i +"; type:input;", false); //컬럼 ref설정 및 input타입으로 컬럼 추가
  261. }
  262. grd_testRslt.caption = vCap + "|" + vCap2;
  263. }
  264. //grd_testRslt.refresh();
  265. model.resetInstanceNode("/root/hidden/rsltinfo");
  266. model.removeNodeset("/root/main/testrslt");
  267. model.refresh();
  268. }
  269. //결과조회
  270. function fGetTestRslt(){
  271. var eqmtcd = model.getValue("/root/hidden/ref/eqmtcd");
  272. var levlcd = model.getValue("/root/hidden/ref/levlcd");
  273. if(eqmtcd == "00"){
  274. messageBox("장비를", "C002","");
  275. return;
  276. }
  277. if(model.getValue("/root/hidden/ref/testlist/testnm") == ""){
  278. messageBox("검사항목을", "C002","");
  279. return;
  280. }
  281. if(levlcd == "" || levlcd == "00"){
  282. messageBox("Standard를", "C002","");
  283. return;
  284. }
  285. model.makeValue("/root/send/acptfromdd" , model.getValue("/root/hidden/ref/acptfromdd"));
  286. model.makeValue("/root/send/acpttodd" , model.getValue("/root/hidden/ref/acpttodd"));
  287. model.makeValue("/root/send/testroom" , model.getValue("/root/hidden/ref/testroom"));
  288. model.makeValue("/root/send/eqmtcd" , eqmtcd);
  289. model.makeValue("/root/send/levlcd" , levlcd);
  290. model.makeValue("/root/send/rsltflag" , model.getValue("/root/hidden/ref/rsltflag"));
  291. model.makeValue("/root/send/acptflag" , model.getValue("/root/hidden/ref/acptflag"));
  292. model.makeValue("/root/send/deptflag" , model.getValue("/root/init/LB0000/nm"));
  293. submit("TRLQJ00302");
  294. fGrdReMake();//조회후 그리드 readonly에 따른 배경색 지정
  295. }
  296. //조회후 그리드 배경색 지정
  297. function fGrdReMake(){
  298. var levlcd = model.getValue("/root/send/levlcd");
  299. var length = levlcd.split("▦").length;
  300. for (i = 1; i<grd_testRslt.rows; i++){ //row
  301. for(j = 0; j<length; j++){ //col
  302. if(model.getValue("/root/main/testrslt[" + i + "]/column"+ j +"/@readonly") == "true"){
  303. grd_testRslt.cellStyle("background-color", i+1, j+vStartCol) = "#eaeaea"; //상단 검사코드때문에 i+1
  304. }else {
  305. if(model.getValue("/root/main/testrslt[" + i + "]/column"+ j +"/@wgmrmark") == "W"){
  306. grd_testRslt.cellStyle("background-color", i+1, j+vStartCol) = "#99cf16";
  307. }/*else{
  308. grd_testRslt.cellStyle("background-color", i+1, j+vStartCol) = "#ffffff";
  309. }*/
  310. if(model.getValue("/root/main/testrslt[" + i + "]/column"+ j +"/@judgmark") == "H"){
  311. grd_testRslt.cellStyle("color", i+1, j+vStartCol) = "#ff0000";
  312. }else if(model.getValue("/root/main/testrslt[" + i + "]/column"+ j +"/@judgmark") == "L"){
  313. grd_testRslt.cellStyle("color", i+1, j+vStartCol) = "#0000ff";
  314. }/*else{
  315. grd_testRslt.cellStyle("color", i+1, j+vStartCol) = "#000000";
  316. }*/
  317. }
  318. }
  319. }
  320. }
  321. //결과상세정보 복사
  322. function fGetRsltInfo(row, col){
  323. var xPath = "/root/main/testrslt";
  324. var nNode = model.instances(0).selectSingleNode(xPath);
  325. var obj = nNode.childNodes(parseInt(col-2));
  326. var objNm = obj.nodeName;
  327. //alert(model.getValue("/root/main/testrslt[" + row + "]/column0/@bcno"));return;
  328. var findData = model.getValue("/root/main/testrslt[" + row + "]/"+ objNm + "/@bcno") + model.getValue("/root/main/testrslt[" + row + "]/testnm/@testcd");////검체코드+검사코드
  329. var findRow = grd_testRsltInfo.findRow(findData, 0, 1);
  330. if(findRow != "-1"){
  331. var acptdt = model.getValue("/root/main/testrsltinfo[" + findRow + "]/acptdt"); //접수일시
  332. var rsltcnfmdt = model.getValue("/root/main/testrsltinfo[" + findRow + "]/rsltcnfmdt"); //결과확인일시
  333. var rsltcnfmid = model.getValue("/root/main/testrsltinfo[" + findRow + "]/rsltcnfmid"); //확인자
  334. var orgrslt = model.getValue("/root/main/testrsltinfo[" + findRow + "]/orgrslt"); //실제결과
  335. var rsltstat = model.getValue("/root/main/testrsltinfo[" + findRow + "]/rsltstat"); //결과상태
  336. var wgmrstat = model.getValue("/root/main/testrsltinfo[" + findRow + "]/wgmrstat"); //WGMR상태
  337. var measfactcnts = model.getValue("/root/main/testrsltinfo[" + findRow + "]/measfactcnts"); //조치사항
  338. var judgmark = model.getValue("/root/main/testrsltinfo[" + findRow + "]/judgmark"); //판정마크
  339. var wgmrmark = model.getValue("/root/main/testrsltinfo[" + findRow + "]/wgmrmark"); //WGMR판정마크
  340. //var rsltkind = model.getValue("/root/main/testrsltinfo[" + findRow + "]/rsltkind"); //결과유형
  341. var refkind = model.getValue("/root/main/testrsltinfo[" + findRow + "]/refkind"); //참고치유형
  342. //var refflag = model.getValue("/root/main/testrsltinfo[" + findRow + "]/refflag"); //참고치구분
  343. var refl = model.getValue("/root/main/testrsltinfo[" + findRow + "]/refl"); //참고치하한
  344. var refh = model.getValue("/root/main/testrsltinfo[" + findRow + "]/refh"); //참고치상한
  345. //var refls = model.getValue("/root/main/testrsltinfo[" + findRow + "]/refls"); //하부등호
  346. //var refhs = model.getValue("/root/main/testrsltinfo[" + findRow + "]/refhs"); //상부등호
  347. var refcval = model.getValue("/root/main/testrsltinfo[" + findRow + "]/refcval"); //참고치문자
  348. //var intrsltfrmt = model.getValue("/root/main/testrsltinfo[" + findRow + "]/intrsltfrmt"); //숫자결과포멧
  349. var avge = model.getValue("/root/main/testrsltinfo[" + findRow + "]/avge"); //평균
  350. var rsltunit = model.getValue("/root/main/testrsltinfo[" + findRow + "]/rsltunit"); //단위
  351. var wgmrscop = model.getValue("/root/main/testrsltinfo[" + findRow + "]/wgmrscop"); //WGMR범위
  352. var sdval = model.getValue("/root/main/testrsltinfo[" + findRow + "]/sdval"); //표준편차
  353. //var judgkind = model.getValue("/root/main/testrsltinfo[" + findRow + "]/judgkind"); //판정유형
  354. //var rundkind = model.getValue("/root/main/testrsltinfo[" + findRow + "]/rundkind"); //반올림유형
  355. var lotno = model.getValue("/root/main/testrsltinfo[" + findRow + "]/lotno"); //LotNO
  356. var prodcmpy = model.getValue("/root/main/testrsltinfo[" + findRow + "]/prodcmpy"); //제조회사
  357. var bfrsltcnfmid = model.getValue("/root/main/testrsltinfo[" + findRow + "]/bfrsltcnfmid"); //이전결과확인자
  358. var bfrsltcnfmdt = model.getValue("/root/main/testrsltinfo[" + findRow + "]/bfrsltcnfmdt"); //이전결과검사일시
  359. var bfrslt1 = model.getValue("/root/main/testrsltinfo[" + findRow + "]/bfcolumn0"); //이전결과1
  360. //var bfrslt2 = model.getValue("/root/main/testrsltinfo[" + findRow + "]/bfcolumn1"); //이전결과2
  361. //var bfrslt3 = model.getValue("/root/main/testrsltinfo[" + findRow + "]/bfcolumn2");
  362. //var bfrslt4 = model.getValue("/root/main/testrsltinfo[" + findRow + "]/bfcolumn3");
  363. //var bfrslt5 = model.getValue("/root/main/testrsltinfo[" + findRow + "]/bfcolumn4");
  364. //var bfrslt6 = model.getValue("/root/main/testrsltinfo[" + findRow + "]/bfcolumn5");
  365. //var bfrslt7 = model.getValue("/root/main/testrsltinfo[" + findRow + "]/bfcolumn6");
  366. //var bfrslt8 = model.getValue("/root/main/testrsltinfo[" + findRow + "]/bfcolumn7");
  367. //var bfrslt9 = model.getValue("/root/main/testrsltinfo[" + findRow + "]/bfcolumn8");
  368. var ddosevalue = model.getValue("/root/main/testrsltinfo[" + findRow + "]/ddosevalue");
  369. var cdosevalue = model.getValue("/root/main/testrsltinfo[" + findRow + "]/cdosevalue");
  370. var bfvalue = model.getValue("/root/main/testrsltinfo[" + findRow + "]/bfvalue");
  371. model.setValue("/root/hidden/rsltinfo/rsltstat/judgmark" , judgmark);
  372. model.setValue("/root/hidden/rsltinfo/rsltstat/wgmrmark", wgmrmark);
  373. model.setValue("/root/hidden/rsltinfo/rsltstat/rsltstat" , rsltstat);
  374. model.setValue("/root/hidden/rsltinfo/wgmrstat" , wgmrstat);
  375. model.setValue("/root/hidden/rsltinfo/avge" , avge);
  376. model.setValue("/root/hidden/rsltinfo/sdval" , sdval);
  377. model.setValue("/root/hidden/rsltinfo/wgmrscop" , wgmrscop);
  378. model.setValue("/root/hidden/rsltinfo/lotno" , lotno);
  379. model.setValue("/root/hidden/rsltinfo/prodcmpy" , prodcmpy);
  380. model.setValue("/root/hidden/rsltinfo/orgrslt" , orgrslt);
  381. model.setValue("/root/hidden/rsltinfo/rsltunit" , rsltunit);
  382. model.setValue("/root/hidden/rsltinfo/acptdt" , acptdt);
  383. model.setValue("/root/hidden/rsltinfo/rsltcnfmdt" , rsltcnfmdt);
  384. model.setValue("/root/hidden/rsltinfo/rsltcnfmid" , rsltcnfmid);
  385. model.setValue("/root/hidden/rsltinfo/bfrsltcnfmdt" , bfrsltcnfmdt);
  386. model.setValue("/root/hidden/rsltinfo/bfrsltcnfmid" , bfrsltcnfmid);
  387. model.setValue("/root/hidden/rsltinfo/measfactcnts" , measfactcnts);
  388. model.setValue("/root/hidden/rsltinfo/bfrslt" , bfrslt1);
  389. model.setValue("/root/hidden/rsltinfo/ddosevalue" , ddosevalue);
  390. model.setValue("/root/hidden/rsltinfo/cdosevalue" , cdosevalue);
  391. model.setValue("/root/hidden/rsltinfo/bfvalue" , bfvalue);
  392. if(refkind == "1"){ //1:문자, 2:숫자, 0:없음
  393. model.setValue("/root/hidden/rsltinfo/refval", refcval);
  394. }else if(refkind == "2"){
  395. model.setValue("/root/hidden/rsltinfo/refval", refl + "~" + refh);
  396. }
  397. }else{ //검체번호+검사코드가 없으면 결과상세정보 초기화
  398. model.resetInstanceNode("/root/hidden/rsltinfo");
  399. }
  400. model.refresh();
  401. }
  402. //결과입력 키 이벤트
  403. function fGrdKeyEvent(row, col){
  404. var xPath = "/root/main/testrslt";
  405. var nNode = model.instances(0).selectSingleNode(xPath);
  406. var obj = nNode.childNodes(parseInt(col-2));
  407. var objNm = obj.nodeName;
  408. var findData = model.getValue("/root/main/testrslt[" + row + "]/"+ objNm + "/@bcno") + model.getValue("/root/main/testrslt[" + row + "]/testnm/@testcd");////검체코드+검사코드
  409. var findRow = grd_testRsltInfo.findRow(findData, 0, 1);
  410. var inptrslt = grd_testRslt.valueMatrix(grd_testRslt.row, col);
  411. if(inptrslt == ""){
  412. //다음행으로
  413. for (i = row+2; i < grd_testRslt.rows; i++) {
  414. var isReadonly = model.getValue("/root/main/testrslt[" + (i-1) + "]/column"+ (col-vStartCol) +"/@readonly");
  415. if (isReadonly == "false") {
  416. grd_testRslt.row = i;
  417. break;
  418. }
  419. }
  420. return;
  421. }
  422. //if(findRow != "-1"){
  423. var vViewRslt = "";
  424. var vJudgLH = "";
  425. //var vJudgWGMR = "";
  426. //var acptdt = model.getValue("/root/main/testrsltinfo[" + findRow + "]/acptdt"); //접수일시
  427. //var rsltcnfmdt = model.getValue("/root/main/testrsltinfo[" + findRow + "]/rsltcnfmdt"); //결과확인일시
  428. //var rsltcnfmid = model.getValue("/root/main/testrsltinfo[" + findRow + "]/rsltcnfmid"); //확인자
  429. //var orgrslt = model.getValue("/root/main/testrsltinfo[" + findRow + "]/orgrslt"); //실제결과
  430. //var rsltstat = model.getValue("/root/main/testrsltinfo[" + findRow + "]/rsltstat"); //결과상태
  431. //var wgmrstat = model.getValue("/root/main/testrsltinfo[" + findRow + "]/wgmrstat"); //WGMR상태
  432. //var measfactcnts = model.getValue("/root/main/testrsltinfo[" + findRow + "]/measfactcnts"); //조치사항
  433. //var judgmark = model.getValue("/root/main/testrsltinfo[" + findRow + "]/judgmark"); //판정마크
  434. //var wgmrmark = model.getValue("/root/main/testrsltinfo[" + findRow + "]/wgmrmark"); //WGMR판정마크
  435. var rsltkind = model.getValue("/root/main/testrsltinfo[" + findRow + "]/rsltkind"); //결과유형
  436. var refkind = model.getValue("/root/main/testrsltinfo[" + findRow + "]/refkind"); //참고치유형
  437. var refflag = model.getValue("/root/main/testrsltinfo[" + findRow + "]/refflag"); //참고치구분
  438. var refl = model.getValue("/root/main/testrsltinfo[" + findRow + "]/refl"); //참고치하한
  439. var refh = model.getValue("/root/main/testrsltinfo[" + findRow + "]/refh"); //참고치상한
  440. var refls = model.getValue("/root/main/testrsltinfo[" + findRow + "]/refls"); //하부등호
  441. var refhs = model.getValue("/root/main/testrsltinfo[" + findRow + "]/refhs"); //상부등호
  442. var refcval = model.getValue("/root/main/testrsltinfo[" + findRow + "]/refcval"); //참고치문자
  443. var intrsltfrmt = model.getValue("/root/main/testrsltinfo[" + findRow + "]/intrsltfrmt"); //숫자결과포멧
  444. var avge = model.getValue("/root/main/testrsltinfo[" + findRow + "]/avge"); //평균
  445. //var rsltunit = model.getValue("/root/main/testrsltinfo[" + findRow + "]/rsltunit"); //단위
  446. //var wgmrscop = model.getValue("/root/main/testrsltinfo[" + findRow + "]/wgmrscop"); //WGMR범위
  447. var sdval = model.getValue("/root/main/testrsltinfo[" + findRow + "]/sdval"); //표준편차
  448. var judgkind = model.getValue("/root/main/testrsltinfo[" + findRow + "]/judgkind"); //판정유형
  449. var rundkind = model.getValue("/root/main/testrsltinfo[" + findRow + "]/rundkind"); //반올림유형
  450. //var lotno = model.getValue("/root/main/testrsltinfo[" + findRow + "]/lotno"); //LotNO
  451. //var prodcmpy = model.getValue("/root/main/testrsltinfo[" + findRow + "]/prodcmpy"); //제조회사
  452. //var bfrsltcnfmid = model.getValue("/root/main/testrsltinfo[" + findRow + "]/bfrsltcnfmid"); //이전결과확인자
  453. //var bfrsltcnfmdt = model.getValue("/root/main/testrsltinfo[" + findRow + "]/bfrsltcnfmdt"); //이전결과검사일시
  454. //var bfrslt1 = model.getValue("/root/main/testrsltinfo[" + findRow + "]/bfcolumn0"); //이전결과1
  455. //var bfrslt2 = model.getValue("/root/main/testrsltinfo[" + findRow + "]/bfcolumn1"); //이전결과2
  456. //var bfrslt3 = model.getValue("/root/main/testrsltinfo[" + findRow + "]/bfcolumn2");
  457. //var bfrslt4 = model.getValue("/root/main/testrsltinfo[" + findRow + "]/bfcolumn3");
  458. //var bfrslt5 = model.getValue("/root/main/testrsltinfo[" + findRow + "]/bfcolumn4");
  459. //var bfrslt6 = model.getValue("/root/main/testrsltinfo[" + findRow + "]/bfcolumn5");
  460. //var bfrslt7 = model.getValue("/root/main/testrsltinfo[" + findRow + "]/bfcolumn6");
  461. //var bfrslt8 = model.getValue("/root/main/testrsltinfo[" + findRow + "]/bfcolumn7");
  462. //var bfrslt9 = model.getValue("/root/main/testrsltinfo[" + findRow + "]/bfcolumn8");
  463. var inptrslt = grd_testRslt.valueMatrix(grd_testRslt.row, col);
  464. vViewRslt = fCOMLIS_CvtRslt(inptrslt, rsltkind, intrsltfrmt, rundkind); //결과유형 판별 및 반올림옵션 적용
  465. vJudgLH = fCOMLIS_QCJudgLH(inptrslt, judgkind, refkind, refflag, refl, refls, refh, refhs); //L/H구분 //판정하기 위해 함수 호출
  466. //if (wgmrscop != "NNNNNN"){
  467. // if(wgmrscop != "YYNNNN" && wgmrscop != "YNNNNN" && wgmrscop != "NYNNNN" ){ //이전결과와 비교하는 판정은 일치하지 않을 수도 있기에 YYNNNN까지만 판정
  468. // wgmrscop = "YYNNNN";
  469. // }
  470. // vJudgWGMR = fCOMLIS_QCJudgWGMR(inptrslt, wgmrscop, avge, sdval, bfrslt1, bfrslt2, bfrslt3, bfrslt4, bfrslt5, bfrslt6, bfrslt7, bfrslt8, bfrslt9); //WGMR 판정 함수 호출
  471. //}
  472. if(vViewRslt == "err") { //결과유형이 숫자로 되어있는데 문자로 입력되어있을때 등등... (239Line - fCOMLIS_CvtRslt)
  473. model.setValue("/root/main/testrslt/[" + row+1 + "]/column"+ col-vStartCol,"");
  474. alert("결과유형이 맞지 않습니다");
  475. return;
  476. }
  477. //model.setValue("/root/hidden/rsltinfo/wgmrstat" , vJudgWGMR); //결과상세정보에 복사
  478. model.setValue("/root/hidden/rsltinfo/orgrslt" , inptrslt); //결과상세정보의 실제결과로
  479. //model.setValue("/root/main/testrsltinfo[" + findRow + "]/wgmrstat" , vJudgWGMR); //grd2로
  480. model.setValue("/root/main/testrsltinfo[" + findRow + "]/orgrslt" , inptrslt); //실제결과를 grd2로
  481. model.setValue("/root/main/testrsltinfo[" + findRow + "]/viewrslt" , vViewRslt); //보이는결과를 grd2로
  482. model.setValue("/root/main/testrsltinfo[" + findRow + "]/judgmark" , vJudgLH); //판정마크를 숨grd2로
  483. model.setValue("/root/main/testrslt[" + (row) + "]/column"+ (col-vStartCol), vViewRslt); //보이는결과를 결과 그리드에 넣어줌
  484. model.setValue("/root/main/testrslt[" + (row) + "]/column"+ (col-vStartCol) +"/@judgmark", vJudgLH);
  485. model.setValue("/root/hidden/rsltinfo/rsltstat[" +1+"]/judgmark", vJudgLH); //결과상세정보로
  486. //if(vJudgWGMR != ""){
  487. // model.setValue("/root/main/testrslt[" + (row) + "]/column"+ (col-vStartCol) +"/@wgmrmark", "W"); //결과의 wgmr어트리뷰트에 넣어줌
  488. // model.setValue("/root/hidden/rsltinfo/rsltstat[" +1+"]/wgmrmark" , "W"); //결과상세정보의 결과 내역으로 넣어줌
  489. // model.setValue("/root/main/testrsltinfo[" + findRow + "]/wgmrmark", "W");
  490. //}else {
  491. // model.setValue("/root/main/testrslt[" + (row) + "]/column"+ (col-vStartCol) +"/@wgmrmark", "");
  492. // model.setValue("/root/hidden/rsltinfo/rsltstat[" +1+"]/wgmrmark", "");
  493. // model.setValue("/root/main/testrsltinfo[" + findRow + "]/wgmrmark", "");
  494. //}
  495. //판정에 따라 그리드 색 변경
  496. //if(model.getValue("/root/main/testrslt[" + (row) + "]/column"+ (col-vStartCol) +"/@wgmrmark") == "W"){
  497. // grd_testRslt.cellStyle("background-color", (row+1), col) = "#99cf16";
  498. //}else{
  499. // grd_testRslt.cellStyle("background-color", (row+1), col) = "#fffff";
  500. //}
  501. if(model.getValue("/root/main/testrslt[" + (row) + "]/column"+ (col-vStartCol) +"/@judgmark") == "H"){
  502. grd_testRslt.cellStyle("color", (row+1), col) = "#ff0000";
  503. }else if(model.getValue("/root/main/testrslt[" + (row) + "]/column"+ (col-vStartCol) +"/@judgmark") == "L"){
  504. grd_testRslt.cellStyle("color", (row+1), col) = "#0000ff";
  505. }else{
  506. grd_testRslt.cellStyle("color", (row+1), col) = "#000000";
  507. }
  508. //}
  509. model.setValue("/root/main/testrslt[" + row + "]/chk", "1"); //체크 선택
  510. //readonly가 아닌 다음행으로 고고싱
  511. for (i = row+2; i <= grd_testRslt.rows; i++) {
  512. var isReadonly = model.getValue("/root/main/testrslt[" + (i-1) + "]/column"+ (col-vStartCol) +"/@readonly");
  513. if(i == grd_testRslt.rows){ //마지막행일때는 옆칸 첫행으로 이동함
  514. grd_testRslt.row = 2
  515. grd_testRslt.col += 1 ;
  516. }
  517. if (isReadonly == "false") {
  518. grd_testRslt.row = i;
  519. break;
  520. }
  521. }
  522. //grd_testRslt.row = row+2; //다음행으로
  523. fGetRsltInfo(grd_testRslt.row-1, col); //검사상세정보 조회
  524. //model.refresh();
  525. }
  526. //키다운 이벤트
  527. function fGrdKeyDown(){
  528. if(event.keyCode == "38"){ //방향키↑키라면
  529. fGetRsltInfo(grd_testRslt.row-2, grd_testRslt.col);
  530. }else if(event.keyCode == "40"){//방향키↓키라면
  531. fGetRsltInfo(grd_testRslt.row, grd_testRslt.col);
  532. }else if(event.keyCode == "37"){//방향키←키라면
  533. fGetRsltInfo(grd_testRslt.row-1, grd_testRslt.col-1);
  534. }else if(event.keyCode == "39"){//방향키→키라면
  535. fGetRsltInfo(grd_testRslt.row-1, grd_testRslt.col+1);
  536. }
  537. }
  538. //소견저장
  539. function fCntsSet(row, col, pRef){
  540. var xPath = "/root/main/testrslt";
  541. var nNode = model.instances(0).selectSingleNode(xPath);
  542. var obj = nNode.childNodes(parseInt(grd_testRslt.col-2));
  543. var objNm = obj.nodeName;
  544. var findData = model.getValue("/root/main/testrslt[" + row + "]/"+ objNm +"/@bcno") + model.getValue("/root/main/testrslt[" + row + "]/testnm/@testcd"); //검체코드+검사코드
  545. var findRow = grd_testRsltInfo.findRow(findData, 0, 1);
  546. var SaveValue = model.getValue("/root/hidden/rsltinfo/" + pRef);
  547. model.setValue("/root/main/testrsltinfo[" + findRow + "]/" + pRef, SaveValue);
  548. model.setValue("/root/main/testrslt[" +(grd_testRslt.row-1)+"]/chk", "1");
  549. grd_testRsltInfo.addStatus(findRow, "update");
  550. }
  551. function fPopMenu(row, col){
  552. model.removeNodeset("/root/hidden/popupmenu");
  553. if(event.button == 3){ // 라이트클릭 메뉴만들기...
  554. model.makeNode("/root/hidden/popupmenu/grid");
  555. model.makeNode("/root/hidden/popupmenu/grid/item");
  556. model.makeValue("/root/hidden/popupmenu/grid/item["+1+"]/name" , "▶ 제외");
  557. model.makeValue("/root/hidden/popupmenu/grid/item["+1+"]/func" , "fRemove");
  558. }
  559. if(isDataCell() && grd_testRslt.col >= vStartCol){
  560. setPopupMenu("grd_testRslt", false, "/root/hidden/popupmenu/grid/item", "name", "func");
  561. }else{
  562. window.setPopupMenu(false);
  563. }
  564. }
  565. function fRemove(){
  566. grd_testRsltInfo.clearStatus();
  567. var xPath = "/root/main/testrslt";
  568. var nNode = model.instances(0).selectSingleNode(xPath);
  569. var obj = nNode.childNodes(parseInt(grd_testRslt.col-2));
  570. var objNm = obj.nodeName;
  571. var findData = model.getValue("/root/main/testrslt[" + (grd_testRslt.row-1) + "]/"+ objNm +"/@bcno") + model.getValue("/root/main/testrslt[" + (grd_testRslt.row-1) + "]/testnm/@testcd"); //검체코드+검사코드
  572. //var findData = model.getValue("/root/main/testrslt[" + (grd_testRslt.row-1) + "]/bcno") + grd_testRslt.valueMatrix(1, grd_testRslt.col); //검체코드+검사코드
  573. var findRow = grd_testRsltInfo.findRow(findData, 0, 1);
  574. //alert(findRow+ " "+ findData);
  575. grd_testRsltInfo.addStatus(findRow, "update");
  576. model.setValue("/root/main/testrsltinfo[" + findRow + "]/iud", "R"); //결과상태를 iud에
  577. if(model.getValue("/root/main/testrsltinfo[" + findRow + "]/measfactcnts") == ""){
  578. alert("제외하실 항목을 선택 후\n조치사항에 사유를 입력하세요!");
  579. }else{
  580. fSetSave("R");
  581. }
  582. }
  583. // 보고 방법 변경 버튼
  584. function fSetreptmthdchng(){
  585. }
  586. // 저장 버튼
  587. function fSetSave(stat){
  588. if(messageBox("", "Q004")==6){ //실행하시겠습니까? 6:ok
  589. var findData, findRow;
  590. if(stat != "R"){
  591. grd_testRsltInfo.clearStatus();
  592. for(i = 1; i < grd_testRslt.rows; i++){
  593. if (model.getValue("/root/main/testrslt[" + i + "]/chk") == "1"){
  594. for(j = 0; j<grd_testRslt.cols-vStartCol; j++){
  595. if (model.getValue("/root/main/testrslt[" + i + "]/column"+j) != ""){
  596. findData = model.getValue("/root/main/testrslt[" + i + "]/column"+ j +"/@bcno") + model.getValue("/root/main/testrslt[" + i + "]/testnm/@testcd"); //검체코드+검사코드
  597. findRow = grd_testRsltInfo.findRow(findData, 0, 1);
  598. grd_testRsltInfo.addStatus(findRow, "update");
  599. model.setValue("/root/main/testrsltinfo[" + findRow + "]/iud", stat); //결과상태를 iud에*/
  600. }
  601. }
  602. }
  603. }
  604. }
  605. if(checkGridUpdate(grd_testRsltInfo)){ //저장데이터 유무 체크
  606. model.setValue("/root/send/rsltstat", stat);
  607. model.makeValue("/root/send/testrsltlist", grd_testRsltInfo.getUpdateData());
  608. if(submit("TXLQJ00301")){
  609. grd_testRslt.fixedcellischeck(0, 1) = false; //올첵 해제
  610. fGetTestRslt(); //결과 재조회
  611. }
  612. }else{
  613. alert("저장할 자료가 존재하지 않습니다!");
  614. return;
  615. }
  616. }//end if(실행할래?);
  617. }
  618. function fSetChk(){
  619. }
  620. //저장 데이터 확인
  621. function checkGridUpdate(grid){
  622. var uData = grid.getUpdateDataXml("update");
  623. if (uData==""){
  624. return false;
  625. }else{
  626. return true;
  627. }
  628. }
  629. //결과값 바뀔때
  630. function fRsltChange(){
  631. if(grd_testRslt.col >= vStartCol){
  632. var xPath = "/root/main/testrslt";
  633. var nNode = model.instances(0).selectSingleNode(xPath);
  634. var obj = nNode.childNodes(parseInt(grd_testRslt.col-2));
  635. var objNm = obj.nodeName;
  636. var findData = model.getValue("/root/main/testrslt[" + (grd_testRslt.row-1) + "]/"+ objNm +"/@bcno") + model.getValue("/root/main/testrslt[" + (grd_testRslt.row-1) + "]/testnm/@testcd"); //검체코드+검사코드
  637. var findRow = grd_testRsltInfo.findRow(findData, 0, 1);
  638. grd_testRsltInfo.addStatus(findRow, "update");
  639. }else if(grd_testRslt.col == 1){
  640. if (model.getValue("/root/main/testrslt[" + grd_testRslt.col + "]/chk") == "1"){
  641. }
  642. }
  643. }
  644. ]]>
  645. </script>
  646. </xhtml:head>
  647. <xhtml:body style="margin-left:8; margin-top:0; margin-right:8; margin-bottom:0; ">
  648. <group id="group1" style="left:0px; top:40px; width:1195px; height:744px; font-size:18pt; ">
  649. <datagrid id="grd_testRslt" nodeset="/root/main/testrslt" caption="^검사명^검체번호^Control^Standard^접수일시|^검사명^검체번호^Control^Standard^접수일시" colsep="^" colwidth="20, 80, 90, 120, 80,120,60" dataheight="23" mergecellsfixedrows="bycolrec" rowheader="seq" rowheight="23" rowsep="|" selectionmode="free" fixed.background-image="../../../com/commonweb/images/grid_bg.gif" style="left:0px; top:100px; width:1013px; height:621px; ">
  650. <col checkvalue="1,0" ref="chk" type="checkbox"/>
  651. <col ref="testnm"/>
  652. <col ref="bcno" visibility="hidden"/>
  653. <col ref="matrnm" visibility="hidden"/>
  654. <col ref="levlnm" visibility="hidden"/>
  655. <col ref="acptdt" format="yyyy-mm-dd hh:nn:ss"/>
  656. <script type="javascript" ev:event="onclick">
  657. <![CDATA[
  658. if(isDataCell() && grd_testRslt.col >= vStartCol){
  659. fGetRsltInfo(grd_testRslt.row-1, grd_testRslt.col); //row에 -1을 해준 이유는 캡션의 검사코드 row때문에..
  660. }/*else if(isDataCell() && grd_testRslt.col == 1){
  661. fSetChk(); //체크박스
  662. }*/
  663. else{
  664. model.resetInstanceNode("/root/hidden/rsltinfo");
  665. model.refresh();
  666. }
  667. ]]>
  668. </script>
  669. <script type="javascript" ev:event="onkeypress">
  670. <![CDATA[
  671. if(event.keyCode == "13"){
  672. fGrdKeyEvent(grd_testRslt.row-1, grd_testRslt.col); //결과 입력 키이벤트
  673. }
  674. ]]>
  675. </script>
  676. <script type="javascript" ev:event="onkeydown">
  677. <![CDATA[
  678. fGrdKeyDown();
  679. ]]>
  680. </script>
  681. <script type="javascript" ev:event="onmousedown">
  682. <![CDATA[
  683. fPopMenu(grd_testRslt.row-1, grd_testRslt.col);
  684. ]]>
  685. </script>
  686. <script type="javascript" ev:event="xforms-value-changed">
  687. <![CDATA[
  688. //fRsltChange();
  689. ]]>
  690. </script>
  691. </datagrid>
  692. <datagrid id="grd_testRsltInfo" nodeset="/root/main/testrsltinfo" visibility="hidden" caption="검체번호+검사코드^^DDose^CDose^BFV^검체번호^물질코드^레벨코드^검사코드^접수일시^확인일시^검사자^실제결과^보이는결과^wgmr상태^조치사항^판정마크^wgmr판정^결과상태^결과유형^참고치유형^참고치구분^하한^상한^하부등호^상부등호^참고치문자^숫자결과포멧^평균^단위^wgmr범위^편차^판정유형^반올림유형^LotNo^물질명^제조회사^레벨명^이전결과1^이전결과2^이전결과3^이전결과4^이전결과5^이전결과6^이전결과7^이전결과8^이전결과9^이전검사일시^이전결과검사자^기관코드^사용자부서^장비코드^접수구분" colsep="^" colwidth="130,20, 60, 60, 60, 80, 100, 60, 60" dataheight="23" mergecellsfixedrows="bycolrec" rowheader="update" rowheight="23" rowsep="|" fixed.background-image="../../../com/commonweb/images/grid_bg.gif" style="left:0px; top:380px; width:1013px; height:321px; ">
  693. <col ref="finddata"/>
  694. <col ref="iud"/>
  695. <col ref="ddosevalue"/>
  696. <col ref="cdosevalue"/>
  697. <col ref="bfvalue"/>
  698. <col ref="bcno"/>
  699. <col ref="matrcd"/>
  700. <col ref="levlcd"/>
  701. <col ref="testcd"/>
  702. <col ref="acptdt"/>
  703. <col ref="rsltcnfmdt"/>
  704. <col ref="rsltcnfmid"/>
  705. <col ref="orgrslt"/>
  706. <col ref="viewrslt"/>
  707. <col ref="wgmrstat"/>
  708. <col ref="measfactcnts"/>
  709. <col ref="judgmark"/>
  710. <col ref="wgmrmark"/>
  711. <col ref="rsltstat"/>
  712. <col ref="rsltkind"/>
  713. <col ref="refkind"/>
  714. <col ref="refflag"/>
  715. <col ref="refl"/>
  716. <col ref="refh"/>
  717. <col ref="refls"/>
  718. <col ref="refhs"/>
  719. <col ref="refcval"/>
  720. <col ref="intrsltfrmt"/>
  721. <col ref="avge"/>
  722. <col ref="rsltunit"/>
  723. <col ref="wgmrscop"/>
  724. <col ref="sdval"/>
  725. <col ref="judgkind"/>
  726. <col ref="rundkind"/>
  727. <col ref="lotno"/>
  728. <col ref="matrnm"/>
  729. <col ref="prodcmpy"/>
  730. <col ref="levlnm"/>
  731. <col ref="bfcolumn0"/>
  732. <col ref="bfcolumn1"/>
  733. <col ref="bfcolumn2"/>
  734. <col ref="bfcolumn3"/>
  735. <col ref="bfcolumn4"/>
  736. <col ref="bfcolumn5"/>
  737. <col ref="bfcolumn6"/>
  738. <col ref="bfcolumn7"/>
  739. <col ref="bfcolumn8"/>
  740. <col ref="bfrsltcnfmdt"/>
  741. <col ref="bfrsltcnfmid"/>
  742. <col ref="instcd"/>
  743. <col ref="userdeptflagcd"/>
  744. <col ref="eqmtcd"/>
  745. <col ref="acptflag"/>
  746. </datagrid>
  747. <line id="line14" class="line_1" style="x1:0px; y1:95px; x2:1010px; y2:95px; "/>
  748. <caption id="caption3" class="tit_2" style="left:5px; top:80px; width:139px; height:13px; ">검사항목별 결과정보</caption>
  749. <group id="group3" style="left:0px; top:10px; width:1195px; height:60px; ">
  750. <shape id="roundrect2" class="roundrect_search" appearance="roundrect" style="left:0px; top:0px; width:1195px; height:60px; "/>
  751. <button id="button6" class="btn1_letter2" style="left:1124px; top:20px; width:56px; height:22px; ">
  752. <caption>조회</caption>
  753. <script type="javascript" ev:event="DOMActivate">
  754. <![CDATA[
  755. fGetTestRslt();
  756. ]]>
  757. </script>
  758. </button>
  759. <line id="line13" class="line_4" style="x1:1109px; y1:8px; x2:1109px; y2:51px; "/>
  760. <caption id="caption2" class="search_no_b" style="left:199px; top:9px; width:15px; height:20px; vertical-align:middle; ">~</caption>
  761. <caption id="caption4" class="search_name" style="left:15px; top:9px; width:89px; height:17px; ">접수일자 :</caption>
  762. <caption id="caption5" class="search_name" style="left:15px; top:33px; width:89px; height:17px; ">검사항목 :</caption>
  763. <input id="input1" ref="/root/hidden/ref/acptfromdd" class="input_search" inputtype="date" style="left:105px; top:8px; width:90px; height:19px; "/>
  764. <input id="input2" ref="/root/hidden/ref/acpttodd" class="input_search" inputtype="date" style="left:215px; top:8px; width:90px; height:19px; "/>
  765. <caption id="caption8" class="search_name" visibility="hidden" style="left:1010px; top:10px; width:88px; height:17px; ">검 사 실 :</caption>
  766. <select1 id="combo1" ref="/root/hidden/ref/testroom" class="combo_default" visibility="hidden" appearance="minimal" style="left:985px; top:30px; width:120px; height:19px; ">
  767. <choices>
  768. <itemset nodeset="/root/init/LB0111">
  769. <label ref="nm"/>
  770. <value ref="cd"/>
  771. </itemset>
  772. </choices>
  773. <script type="javascript" ev:event="xforms-select">
  774. <![CDATA[
  775. fSetEqmtCd(); //검사실에 대한 장비 조회
  776. ]]>
  777. </script>
  778. </select1>
  779. <select1 id="combo4" ref="/root/hidden/ref/eqmtcd" class="combo_default" appearance="minimal" style="left:480px; top:8px; width:165px; height:19px; ">
  780. <choices>
  781. <itemset nodeset="/root/init/LB0701">
  782. <label ref="nm"/>
  783. <value ref="cd"/>
  784. </itemset>
  785. </choices>
  786. <script type="javascript" ev:event="xforms-select">
  787. <![CDATA[
  788. if(model.getValue("/root/hidden/ref/eqmtcd") != "00"){ //장비코드가 전체가 아니면
  789. fTestListSch(); //장비에대한 검사항목 조회 팝업뜬다~~~
  790. }
  791. ]]>
  792. </script>
  793. </select1>
  794. <caption id="caption9" class="search_name" style="left:390px; top:9px; width:90px; height:17px; ">장 비 :</caption>
  795. <caption id="caption22" class="search_name" style="left:695px; top:35px; width:87px; height:17px; ">접수구분 :</caption>
  796. <select1 id="cbo_acptFlag" ref="/root/hidden/ref/acptflag" class="combo_search" appearance="minimal" style="left:790px; top:33px; width:107px; height:19px; ">
  797. <choices>
  798. <itemset nodeset="/root/init/LB0704">
  799. <label ref="nm"/>
  800. <value ref="cd"/>
  801. </itemset>
  802. </choices>
  803. </select1>
  804. <caption id="caption10" class="search_name" style="left:695px; top:9px; width:87px; height:17px; ">작업구분 :</caption>
  805. <select1 id="radio1" ref="/root/hidden/ref/rsltflag" class="radio_search" appearance="full" cellspacing="5" cols="4" overflow="visible" style="left:785px; top:11px; width:204px; height:13px; border-style:none; ">
  806. <choices>
  807. <item>
  808. <label>전체</label>
  809. <value>0</value>
  810. </item>
  811. <item>
  812. <label>미완료</label>
  813. <value>1</value>
  814. </item>
  815. <item>
  816. <label>완료</label>
  817. <value>2</value>
  818. </item>
  819. <item>
  820. <label>제외</label>
  821. <value>R</value>
  822. </item>
  823. </choices>
  824. <script type="javascript" ev:event="xforms-value-changed">
  825. <![CDATA[
  826. if(radio1.value == "1"){
  827. //button2.disabled = false;
  828. button3.disabled = false;
  829. }else{
  830. //button2.disabled = true;
  831. button3.disabled = true;
  832. }
  833. model.resetInstanceNode("/root/hidden/rsltinfo");
  834. model.removeNodeset("/root/main/testrslt");
  835. model.refresh();
  836. ]]>
  837. </script>
  838. </select1>
  839. <output id="output17" ref="/root/hidden/ref/testnm" class="output_fix" style="left:105px; top:32px; width:200px; height:19px; "/>
  840. <button id="button61" class="icon_search" style="left:309px; top:33px; width:16px; height:16px; ">
  841. <caption/>
  842. <script type="javascript" ev:event="DOMActivate">
  843. <![CDATA[
  844. if(model.getValue("/root/hidden/ref/eqmtcd") == "00"){ //장비코드가 전체이면
  845. messageBox("장비를", "C002","");
  846. }else{
  847. fTestListSch(); //장비별 검사항목 팝업 뜨지롱
  848. }
  849. ]]>
  850. </script>
  851. </button>
  852. <caption id="caption7" class="search_name" style="left:390px; top:33px; width:92px; height:17px; ">Standard:</caption>
  853. <img id="img5" class="icon_search" visibility="hidden" style="left:602px; top:34px; width:16px; height:16px; "/>
  854. <button id="btn_levl" class="icon_search" style="left:602px; top:34px; width:16px; height:16px; ">
  855. <caption/>
  856. <script type="javascript" ev:event="DOMActivate">
  857. <![CDATA[
  858. fTestLevlSch(); //레벨조회 팝업 뜨지롱
  859. ]]>
  860. </script>
  861. </button>
  862. <select1 id="cbo_levlCd" ref="/root/hidden/ref/levlcd" class="combo_search" appearance="minimal" style="left:480px; top:32px; width:120px; height:19px; ">
  863. <choices>
  864. <itemset nodeset="/root/init/LB0501">
  865. <label ref="nm"/>
  866. <value ref="cd"/>
  867. </itemset>
  868. </choices>
  869. </select1>
  870. <output id="output16" ref="/root/hidden/ref/levllist/levlnm" class="output_fix" style="left:480px; top:32px; width:120px; height:19px; "/>
  871. </group>
  872. <line id="line2" class="line_1" style="x1:1015px; y1:95px; x2:1194px; y2:95px; "/>
  873. <caption id="caption11" class="tit_2" style="left:1020px; top:80px; width:115px; height:14px; ">결과 상세정보</caption>
  874. <output id="output1" ref="/root/hidden/rsltinfo/refval" class="output_fix" style="left:1015px; top:172px; width:179px; height:19px; "/>
  875. <line id="line7" class="line_3" style="x1:1015px; y1:720px; x2:1194px; y2:720px; "/>
  876. <datagrid id="datagrid2" nodeset="/root/hidden/rsltinfo/rsltstat" caption="S^W^N" colsep="^" colwidth="78, 53, 78" dataheight="23" extendlastcol="scroll" mergecellsfixedrows="bycolrec" rowheader="seq" rowheight="23" rowsep="|" style="left:1015px; top:100px; width:179px; height:48px; ">
  877. <col ref="rsltstat" style="left:20px; top:23px; width:50px; height:23px; font-size:9pt; font-weight:bolder; color:#339966; text-align:center; "/>
  878. <col ref="wgmrmark" visibility="hidden" style="font-weight:bolder; text-align:center; "/>
  879. <col ref="judgmark" style="font-weight:bolder; text-align:center; "/>
  880. </datagrid>
  881. <line id="line1" class="line_2" style="x1:1015px; y1:193px; x2:1194px; y2:193px; "/>
  882. <line id="line5" class="line_2" style="x1:1015px; y1:221px; x2:1194px; y2:221px; "/>
  883. <output id="output2" ref="/root/hidden/rsltinfo/wgmrstat" class="output_fix" visibility="hidden" style="left:780px; top:70px; width:179px; height:19px; "/>
  884. <line id="line6" class="line_2" visibility="hidden" style="x1:1015px; y1:197px; x2:1195px; y2:197px; "/>
  885. <output id="output3" ref="/root/hidden/rsltinfo/avge" class="output_fix" style="left:1101px; top:200px; width:93px; height:19px; "/>
  886. <output id="output4" ref="/root/hidden/rsltinfo/sdval" class="output_fix" style="left:1101px; top:224px; width:93px; height:19px; "/>
  887. <line id="line8" class="line_2" style="x1:1015px; y1:248px; x2:1194px; y2:248px; "/>
  888. <line id="line9" class="line_2" style="x1:1015px; y1:245px; x2:1194px; y2:245px; "/>
  889. <line id="line10" class="line_2" style="x1:1015px; y1:269px; x2:1194px; y2:269px; "/>
  890. <output id="output5" ref="/root/hidden/rsltinfo/lotno" class="output_fix" style="left:1101px; top:248px; width:93px; height:19px; "/>
  891. <line id="line11" class="line_2" style="x1:1015px; y1:273px; x2:1194px; y2:273px; "/>
  892. <output id="output6" ref="/root/hidden/rsltinfo/wgmrscop" class="output_fix" visibility="hidden" style="left:411px; top:76px; width:93px; height:19px; "/>
  893. <output id="output7" ref="/root/hidden/rsltinfo/prodcmpy" class="output_fix" style="left:1101px; top:276px; width:93px; height:19px; "/>
  894. <output id="output8" ref="/root/hidden/rsltinfo/orgrslt" class="output_fix" style="left:1101px; top:300px; width:93px; height:19px; "/>
  895. <line id="line12" class="line_2" style="x1:1015px; y1:297px; x2:1194px; y2:297px; "/>
  896. <line id="line15" class="line_2" style="x1:1015px; y1:321px; x2:1194px; y2:321px; "/>
  897. <line id="line16" class="line_2" style="x1:1015px; y1:389px; x2:1194px; y2:389px; "/>
  898. <line id="line17" class="line_2" style="x1:1015px; y1:433px; x2:1194px; y2:433px; "/>
  899. <line id="line18" class="line_2" style="x1:1015px; y1:457px; x2:1194px; y2:457px; "/>
  900. <line id="line19" class="line_2" style="x1:1015px; y1:501px; x2:1194px; y2:501px; "/>
  901. <textarea id="textarea1" ref="/root/hidden/rsltinfo/measfactcnts" style="left:1015px; top:647px; width:179px; height:73px; ">
  902. <script type="javascript" ev:event="xforms-value-changed">
  903. <![CDATA[
  904. fCntsSet(grd_testRslt.row-1, grd_testRslt.col, "measfactcnts");
  905. ]]>
  906. </script>
  907. </textarea>
  908. <caption id="caption1" class="cell_1" style="left:1015px; top:199px; width:85px; height:21px; ">평균</caption>
  909. <caption id="caption12" class="cell_1" style="left:1015px; top:223px; width:85px; height:21px; ">표준편차</caption>
  910. <caption id="caption13" class="cell_1" style="left:1015px; top:150px; width:179px; height:21px; ">참고치</caption>
  911. <caption id="caption14" class="cell_1" style="left:1015px; top:247px; width:85px; height:21px; ">LOT NO</caption>
  912. <caption id="caption15" class="cell_1" visibility="hidden" style="left:590px; top:70px; width:179px; height:21px; ">WGMR판정</caption>
  913. <caption id="caption16" class="cell_1" visibility="hidden" style="left:325px; top:75px; width:85px; height:21px; ">적용률</caption>
  914. <caption id="caption17" class="cell_1" style="left:1015px; top:275px; width:85px; height:21px; ">제조회사</caption>
  915. <caption id="caption18" class="cell_1" style="left:1015px; top:299px; width:85px; height:21px; ">실제 결과</caption>
  916. <caption id="caption19" class="cell_1" style="left:1015px; top:624px; width:179px; height:21px; ">조치사항(사유)</caption>
  917. <caption id="caption31" class="cell_1" style="left:1015px; top:435px; width:85px; height:21px; ">검사자</caption>
  918. <caption id="caption32" class="cell_1" style="left:1015px; top:503px; width:85px; height:21px; ">이전결과</caption>
  919. <output id="output9" ref="/root/hidden/rsltinfo/acptdt" class="output_fix" format="yyyy-mm-dd hh:nn:ss" style="left:1015px; top:369px; width:179px; height:19px; "/>
  920. <output id="output10" ref="/root/hidden/rsltinfo/rsltcnfmdt" class="output_fix" format="yyyy-mm-dd hh:nn:ss" style="left:1015px; top:413px; width:179px; height:19px; "/>
  921. <caption id="caption20" class="cell_1" style="left:1015px; top:347px; width:179px; height:21px; ">접수일시</caption>
  922. <caption id="caption21" class="cell_1" style="left:1015px; top:391px; width:179px; height:21px; ">결과보고(확인)일시</caption>
  923. <output id="output11" ref="/root/hidden/rsltinfo/rsltcnfmid" class="output_fix" style="left:1101px; top:436px; width:93px; height:19px; "/>
  924. <output id="output12" ref="/root/hidden/rsltinfo/bfrsltcnfmdt" class="output_fix" format="yyyy-mm-dd hh:nn:ss" style="left:1015px; top:481px; width:179px; height:19px; "/>
  925. <caption id="caption23" class="cell_1" style="left:1015px; top:459px; width:179px; height:21px; ">이전결과(확인)일시</caption>
  926. <output id="output13" ref="/root/hidden/rsltinfo/bfrslt" class="output_fix" style="left:1101px; top:504px; width:93px; height:19px; "/>
  927. <line id="line4" class="line_2" style="x1:1014px; y1:525px; x2:1193px; y2:525px; "/>
  928. <output id="output14" ref="/root/hidden/rsltinfo/rsltunit" class="output_fix" style="left:1101px; top:324px; width:93px; height:19px; "/>
  929. <line id="line20" class="line_2" style="x1:1015px; y1:345px; x2:1194px; y2:345px; "/>
  930. <caption id="caption24" class="cell_1" style="left:1015px; top:323px; width:85px; height:21px; ">단위</caption>
  931. <output id="output15" ref="/root/hidden/rsltinfo/bfrsltcnfmid" class="output_fix" style="left:1101px; top:528px; width:93px; height:19px; "/>
  932. <caption id="caption25" class="cell_1" style="left:1015px; top:527px; width:85px; height:21px; ">검사자</caption>
  933. <line id="line21" class="line_2" style="x1:1014px; y1:549px; x2:1193px; y2:549px; "/>
  934. <input id="output20" ref="/root/hidden/rsltinfo/bfvalue" class="input" style="left:1100px; top:601px; width:93px; height:19px; ">
  935. <script type="javascript" ev:event="xforms-value-changed">
  936. <![CDATA[
  937. fCntsSet(grd_testRslt.row-1, grd_testRslt.col, "bfvalue");
  938. ]]>
  939. </script>
  940. </input>
  941. <line id="line22" class="line_2" style="x1:1014px; y1:598px; x2:1193px; y2:598px; "/>
  942. <line id="line23" class="line_2" style="x1:1014px; y1:574px; x2:1193px; y2:574px; "/>
  943. <line id="line24" class="line_2" style="x1:1013px; y1:622px; x2:1192px; y2:622px; "/>
  944. <input id="output18" ref="/root/hidden/rsltinfo/ddosevalue" class="input" style="left:1101px; top:553px; width:93px; height:19px; ">
  945. <script type="javascript" ev:event="xforms-value-changed">
  946. <![CDATA[
  947. fCntsSet(grd_testRslt.row-1, grd_testRslt.col, "ddosevalue");
  948. ]]>
  949. </script>
  950. </input>
  951. <caption id="caption26" class="cell_1" style="left:1015px; top:552px; width:85px; height:21px; ">DEF. DOSE</caption>
  952. <input id="output19" ref="/root/hidden/rsltinfo/cdosevalue" class="input" style="left:1101px; top:577px; width:93px; height:19px; ">
  953. <script type="javascript" ev:event="xforms-value-changed">
  954. <![CDATA[
  955. fCntsSet(grd_testRslt.row-1, grd_testRslt.col, "cdosevalue");
  956. ]]>
  957. </script>
  958. </input>
  959. <caption id="caption27" class="cell_1" style="left:1015px; top:576px; width:85px; height:21px; ">CALC. DOSE</caption>
  960. <caption id="caption28" class="cell_1" style="left:1014px; top:600px; width:85px; height:21px; ">% B / F</caption>
  961. </group>
  962. <group id="group2" style="left:0px; top:0px; width:1195px; height:13px; ">
  963. <caption id="caption6" class="tit_1" style="left:0px; top:0px; width:152px; height:14px; ">
  964. <![CDATA[QC검사항목별결과관리]]>
  965. <script type="javascript" ev:event="ondblclick">
  966. <![CDATA[
  967. if(grd_testRsltInfo.visible){
  968. grd_testRsltInfo.visible = false;
  969. }else{
  970. grd_testRsltInfo.visible = true;
  971. }
  972. ]]>
  973. </script>
  974. </caption>
  975. </group>
  976. <group id="grp_btn" style="left:0px; top:13px; width:1195px; height:27px; ">
  977. <button id="button10" class="btn4_letter3" style="left:1127px; top:3px; width:68px; height:22px; ">
  978. <caption>초기화</caption>
  979. <script type="javascript" ev:event="onclick">
  980. <![CDATA[
  981. window.reload();
  982. ]]>
  983. </script>
  984. </button>
  985. <line id="line3" class="line_6" style="x1:0px; y1:25px; x2:1194px; y2:25px; "/>
  986. <button id="button2" class="btn4_letter2" style="left:1068px; top:3px; width:56px; height:22px; ">
  987. <caption>확인</caption>
  988. <script type="javascript" ev:event="DOMActivate">
  989. <![CDATA[
  990. fSetSave(2);
  991. ]]>
  992. </script>
  993. </button>
  994. <button id="button4" class="btn4_letter2" visibility="hidden" style="left:950px; top:3px; width:56px; height:22px; ">
  995. <caption>제외</caption>
  996. <script type="javascript" ev:event="onclick">
  997. <![CDATA[
  998. //fInsSave();
  999. var a = model.getValue("/root/main/testrslt[" + 2 + "]/column0/@readonly")
  1000. alert (a);
  1001. ]]>
  1002. </script>
  1003. </button>
  1004. <button id="button3" class="btn4_letter2" style="left:1009px; top:3px; width:56px; height:22px; ">
  1005. <caption>저장</caption>
  1006. <script type="javascript" ev:event="onclick">
  1007. <![CDATA[
  1008. fSetSave(1);
  1009. ]]>
  1010. </script>
  1011. </button>
  1012. <button id="btn_reptmthdchng" class="btn4_letter6" visibility="hidden" style="left:844px; top:3px; width:104px; height:22px; ">
  1013. <caption>보고방법변경</caption>
  1014. <script type="javascript" ev:event="onclick">
  1015. <![CDATA[
  1016. fSetreptmthdchng();
  1017. ]]>
  1018. </script>
  1019. </button>
  1020. </group>
  1021. </xhtml:body>
  1022. </xhtml:html>