SMLPB00100_Cassette슬라이드제작.xrw 63 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600
  1. <?xml version="1.0" encoding="EUC-KR"?>
  2. <!--
  3. * 제 목 : SMLPB00100_Cassette슬라이드발행.xrw
  4. * 설 명 : Cassette/슬라이드발행 화면
  5. * 설 계 자 : (주)에이씨케이 - 유동철
  6. * 작 성 자 : (주)에이씨케이 - 유동철
  7. * 작 성 일 : 2007.08.11
  8. * 수정이력 :
  9. * 기 타 :
  10. -->
  11. <?xml-stylesheet type="text/css" href="../../../com/commonweb/css/common.css" ?>
  12. <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">
  13. <xhtml:head>
  14. <xhtml:title>Cassette/슬라이드발행</xhtml:title>
  15. <model id="model1">
  16. <instance id="instance1">
  17. <root xmlns="">
  18. <main>
  19. <acptspc>
  20. <acptspclist>
  21. <instcd/>
  22. <ptno/>
  23. <dispptno/>
  24. <spcacptdd/>
  25. <spcacptno/>
  26. <pid/>
  27. <patnm/>
  28. <acptdd/>
  29. <spccd/>
  30. <spcnm>
  31. </spcnm>
  32. <spcacptseqno/>
  33. <testnmlist>
  34. </testnmlist>
  35. <acptno/>
  36. </acptspclist>
  37. </acptspc>
  38. <csteinfo>
  39. <cstelist>
  40. <choi/>
  41. <instcd/>
  42. <ptno/>
  43. <spcacptdd/>
  44. <spcacptno/>
  45. <spcacptseqno/>
  46. <csteno/>
  47. <slidcnt/>
  48. <cstekindcd/>
  49. <cstecnts/>
  50. <tisscnt/>
  51. <hopper/>
  52. <statsinclflagcd/>
  53. <acptdd/>
  54. <acptno/>
  55. <testcd/>
  56. <acptitemno/>
  57. <reprnt/>
  58. <statflagcd/>
  59. <scrno/>
  60. <spccd/>
  61. <slidno/>
  62. <dispptno/>
  63. </cstelist>
  64. </csteinfo>
  65. <slidinfo>
  66. <slidlist>
  67. <instcd/>
  68. <ptno/>
  69. <spcacptdd/>
  70. <spcacptno/>
  71. <spcacptseqno/>
  72. <csteno/>
  73. <slidno/>
  74. <cstekindcd/>
  75. <cstecnts/>
  76. <statsinclflagcd/>
  77. <tisscnt/>
  78. <acptdd/>
  79. <acptno/>
  80. <testcd/>
  81. <acptitemno/>
  82. <reprnt/>
  83. <statflagcd/>
  84. <scrno/>
  85. <spccd/>
  86. <dispptno/>
  87. <relaptno/>
  88. <reladispptno/>
  89. <prtnblocnm/>
  90. </slidlist>
  91. </slidinfo>
  92. </main>
  93. <send/>
  94. <init>
  95. <ptnocode/>
  96. <fromyear/>
  97. <fromptno/>
  98. <toyear/>
  99. <toptno/>
  100. <blockind/>
  101. <hospenv>
  102. <hospenvinfo>
  103. <instcd/>
  104. <lendrtnterm/>
  105. <recvqualmthdcd/>
  106. <plgydeptcd/>
  107. <plgyteamcd/>
  108. <doctjobgradcd/>
  109. <teamjobgradcd/>
  110. <csteeqmtip/>
  111. <csteeqmtport/>
  112. <slideqmtip/>
  113. <slideqmtport/>
  114. </hospenvinfo>
  115. </hospenv>
  116. <sysdt>
  117. <sysdtinfo>
  118. <sysdd/>
  119. <systm/>
  120. </sysdtinfo>
  121. </sysdt>
  122. <resncd>
  123. <resncdlist>
  124. <instcd/>
  125. <baseflagcd/>
  126. <resncd/>
  127. <resncnts/>
  128. </resncdlist>
  129. </resncd>
  130. <relatestnm>
  131. <relatestnmlist>
  132. <instcd/>
  133. <pid/>
  134. <ptno/>
  135. <dispptno/>
  136. <acptdd/>
  137. <acptno/>
  138. <testcd/>
  139. <acptitemno/>
  140. <testnm/>
  141. </relatestnmlist>
  142. </relatestnm>
  143. <ptnocd>
  144. <ptnocdlist>
  145. <instcd/>
  146. <ptnocd/>
  147. <ptnonm/>
  148. </ptnocdlist>
  149. </ptnocd>
  150. <eqcaseqno/>
  151. <eqslidseqno/>
  152. <popupmenu>
  153. <item>
  154. <name>블록 삭제</name>
  155. <func>fDelCaList</func>
  156. </item>
  157. <item2>
  158. <name>슬라이드 삭제</name>
  159. <func>fDelSlidList</func>
  160. </item2>
  161. </popupmenu>
  162. </init>
  163. <hidden>
  164. <acptfromdd/>
  165. <acpttodd/>
  166. <seameth>0</seameth>
  167. <seaval/>
  168. <prtmeth>0</prtmeth>
  169. <slideqmtflag>0</slideqmtflag>
  170. <cstecnt>1</cstecnt>
  171. <slidcnt>1</slidcnt>
  172. </hidden>
  173. </root>
  174. </instance>
  175. <script type="javascript" ev:event="xforms-ready">
  176. <![CDATA[
  177. fExeInitialize();
  178. ]]>
  179. </script>
  180. <submission id="TRLPZ00101" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" replace="instance" resultref="/root/init/hospenv/hospenvinfo"/>
  181. <submission id="TRLPZ00102" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" replace="instance" resultref="/root/init/sysdt/sysdtinfo"/>
  182. <submission id="TRLPZ00103" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" replace="instance" resultref="/root/init/resncd/resncdlist"/>
  183. <submission id="TRLPZ00109" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" replace="instance" resultref="/root/init/ptnocd/ptnocdlist"/>
  184. <submission id="TRLPB00101" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" replace="instance" resultref="/root/main/acptspc/acptspclist"/>
  185. <submission id="TRLPB00102" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" replace="instance" resultref="/root/main/csteinfo/cstelist"/>
  186. <submission id="TRLPB00103" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" replace="instance" resultref="/root/main/slidinfo/slidlist"/>
  187. <submission id="TRLPZ00110" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" replace="instance" resultref="/root/init/relatestnm/relatestnmlist"/>
  188. <submission id="TXLPB00101" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" replace="instance" resultref="/root/message"/>
  189. <submission id="TRLPC01802" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" replace="instance" resultref="/root/main/eqinfo"/>
  190. </model>
  191. <script type="javascript" src="../../../com/commonweb/js/common.js"/>
  192. <script type="javascript" src="../../../com/commonweb/js/tfHelper.js"/>
  193. <script type="javascript" src="../../../com/commonweb/js/stringHelper.js"/>
  194. <script type="javascript" src="../../../lis/commonweb/js/LPZ001.js"/>
  195. <script type="javascript">
  196. <![CDATA[
  197. /* @group : Cassette/슬라이드발행
  198. * @ver : 2007.08.11 (CMCDEV-0001)
  199. * @by : 유동철(ACK)
  200. * @-----------------------------------
  201. * @type : function
  202. * @access : public
  203. * @desc : 초기화 Function
  204. */
  205. function fExeInitialize() {
  206. var sCurDate = "";
  207. //--------------------------------
  208. model.removeNodeset("/root/send");
  209. model.makeValue("/root/send/instcd", getUserInfo("dutplceinstcd"));
  210. submit("TRLPZ00101", false);
  211. submit("TRLPZ00102", false);
  212. submit("TRLPZ00109", false);
  213. //블록 장비 조회
  214. model.makeValue("/root/send/instcd", getUserInfo("dutplceinstcd")); //instcd
  215. model.makeValue("/root/send/seaflagcd", "0"); //"0:전체, 1:카세트, 2:슬라이드"
  216. submit("TRLPC01802");
  217. cmb_slideqlist.select(0);
  218. cmb_caeqlist.select(0);
  219. //------------------------------------------------------------
  220. sCurDate = model.getValue("/root/init/sysdt/sysdtinfo/sysdd");
  221. //------------
  222. // 초기값 설정
  223. model.makeValue("/root/hidden/seameth", "0"); // 검색방법(등록번호(0))
  224. model.makeValue("/root/hidden/seaval", ""); // 검색값
  225. model.makeValue("/root/hidden/acptfromdd", model.getValue("/root/init/sysdt/sysdtinfo/sysdd"));
  226. model.makeValue("/root/hidden/acpttodd", model.getValue("/root/init/sysdt/sysdtinfo/sysdd"));
  227. model.makeValue("/root/hidden/slideqmtflag", "0");
  228. model.makeValue("/root/init/ptnocode", "");
  229. model.makeValue("/root/init/fromyear", sCurDate.substr(2,2));
  230. model.makeValue("/root/init/toyear", sCurDate.substr(2,2));
  231. model.makeValue("/root/init/fromptno", "");
  232. model.makeValue("/root/init/toptno", "");
  233. model.makeValue("/root/init/blockind", "0");
  234. //------------------------------------------
  235. // Cassette(블록) 및 Slide(슬라이드) 목록 조회
  236. model.makeValue("/root/send/baseflagcd", "'81', '82'");
  237. submit("TRLPZ00103");
  238. //------------
  239. // 노드 초기화
  240. model.removeNodeset("/root/main/acptspc/acptspclist");
  241. model.removeNodeset("/root/main/csteinfo/cstelist");
  242. model.removeNodeset("/root/main/slidinfo/slidlist");
  243. //--------------
  244. model.refresh();
  245. }
  246. /* @group : Cassette/슬라이드발행
  247. * @ver : 2007.08.11 (CMCDEV-0001)
  248. * @by : 유동철(ACK)
  249. * @-----------------------------------
  250. * @type : function
  251. * @access : public
  252. * @desc : 접수 세부검체 목록 조회 Function
  253. */
  254. function fGetSpcSeqList() {
  255. var sTemp = "";
  256. //--------------------------------
  257. model.removeNodeset("/root/send");
  258. model.removeNodeset("/root/main/csteinfo/cstelist");
  259. model.removeNodeset("/root/main/slidinfo/slidlist");
  260. //------------------------------------------------
  261. if (model.getValue("/root/init/ptnocode") != "") {
  262. //------------------------------------------------
  263. if (model.getValue("/root/init/fromyear") == "") {
  264. model.makeValue("/root/init/fromyear", sFromDD.substr(2,2));
  265. } else {
  266. sTemp = model.getValue("/root/init/fromyear");
  267. model.makeValue("/root/init/fromyear", sTemp.getLeftPad(2, "0"));
  268. }
  269. //----------------------------------------------
  270. if (model.getValue("/root/init/toyear") == "") {
  271. model.makeValue("/root/init/toyear", sToDD.substr(2,2));
  272. } else {
  273. sTemp = model.getValue("/root/init/toyear");
  274. model.makeValue("/root/init/toyear", sTemp.getLeftPad(2, "0"));
  275. }
  276. //------------------------------------------------
  277. if (model.getValue("/root/init/fromptno") == "") {
  278. model.makeValue("/root/init/fromptno", "000000");
  279. } else {
  280. sTemp = model.getValue("/root/init/fromptno");
  281. model.makeValue("/root/init/fromptno", sTemp.getLeftPad(6, "0"));
  282. }
  283. //----------------------------------------------
  284. if (model.getValue("/root/init/toptno") == "") {
  285. model.makeValue("/root/init/toptno", "999999");
  286. } else {
  287. sTemp = model.getValue("/root/init/toptno");
  288. model.makeValue("/root/init/toptno", sTemp.getLeftPad(6, "0"));
  289. }
  290. }
  291. //--------------------------------------------
  292. sTemp = model.getValue("/root/init/ptnocode");
  293. //---------------------------------------------------------------------
  294. model.makeValue("/root/send/instcd", getUserInfo("dutplceinstcd")); // 기관코드
  295. model.makeValue("/root/send/refmthd", model.getValue("/root/hidden/seameth")); // 검색방법
  296. model.makeValue("/root/send/refval", model.getValue("/root/hidden/seaval")); // 검색값
  297. model.makeValue("/root/send/acptfromdd", model.getValue("/root/hidden/acptfromdd")); // 접수시작일자
  298. model.makeValue("/root/send/acpttodd", model.getValue("/root/hidden/acpttodd")); // 접수종료일자
  299. model.makeValue("/root/send/ptnocode", sTemp.replace("-", ""));
  300. model.makeValue("/root/send/fromyear", model.getValue("/root/init/fromyear"));
  301. model.makeValue("/root/send/fromptno", model.getValue("/root/init/fromptno"));
  302. model.makeValue("/root/send/toyear", model.getValue("/root/init/toyear"));
  303. model.makeValue("/root/send/toptno", model.getValue("/root/init/toptno"));
  304. submit("TRLPB00101");
  305. }
  306. /* @group : Cassette/슬라이드발행
  307. * @ver : 2007.08.11 (CMCDEV-0001)
  308. * @by : 유동철(ACK)
  309. * @-----------------------------------
  310. * @type : function
  311. * @access : public
  312. * @desc : 접수 세부검체 클릭 처리 Function
  313. */
  314. function fExeSpcSeqClick(pRowNo) {
  315. //---------------------------------------------------------------------------------
  316. if (grd_spclist.isCell(event.target) && grd_spclist.row >= grd_spclist.fixedRows) {
  317. fGetCsteList(pRowNo);
  318. }
  319. }
  320. /* @group : Cassette/슬라이드발행
  321. * @ver : 2007.08.11 (CMCDEV-0001)
  322. * @by : 유동철(ACK)
  323. * @-----------------------------------
  324. * @type : function
  325. * @access : public
  326. * @desc : Cassette 목록 조회 처리 Function
  327. */
  328. function fGetCsteList(pRowNo) {
  329. var sSrcNode = "/root/main/acptspc/acptspclist";
  330. //--------------------------------
  331. model.removeNodeset("/root/send");
  332. model.removeNodeset("/root/init/relatestnm/relatestnmlist");
  333. model.removeNodeset("/root/main/csteinfo/cstelist");
  334. model.removeNodeset("/root/main/slidinfo/slidlist");
  335. //-----------------------------------------------------------------------------------------
  336. model.makeValue("/root/send/instcd", model.getValue(sSrcNode+"["+pRowNo+"]/instcd"));
  337. model.makeValue("/root/send/ptno", model.getValue(sSrcNode+"["+pRowNo+"]/ptno"));
  338. model.makeValue("/root/send/spcacptdd", model.getValue(sSrcNode+"["+pRowNo+"]/spcacptdd"));
  339. model.makeValue("/root/send/spcacptno", model.getValue(sSrcNode+"["+pRowNo+"]/spcacptno"));
  340. model.makeValue("/root/send/spcacptseqno", model.getValue(sSrcNode+"["+pRowNo+"]/spcacptseqno"));
  341. //-------------------
  342. submit("TRLPB00102");
  343. //--------------------
  344. // 관련검사명 목록조회
  345. model.makeValue("/root/send/pid", model.getValue(sSrcNode+"["+pRowNo+"]/pid"));
  346. model.makeValue("/root/send/selfflagcd", "0"); // (0:전체, 1:자신제외)
  347. model.makeValue("/root/send/testflagcd", "0"); // (0:전체, 1:특수/면역/면역형광)
  348. model.makeValue("/root/send/workflagcd", "'1004', '1005', '1006'");
  349. //-------------------
  350. submit("TRLPZ00110");
  351. }
  352. /* @group : Cassette/슬라이드발행
  353. * @ver : 2007.08.11 (CMCDEV-0001)
  354. * @by : 유동철(ACK)
  355. * @-----------------------------------
  356. * @type : function
  357. * @access : public
  358. * @desc : Cassette 클릭 처리 Function
  359. */
  360. function fExeCsteClick(pRowNo) {
  361. //------------------------------------------------------------------------------------
  362. if (grd_cstelist.isCell(event.target) && grd_cstelist.row >= grd_cstelist.fixedRows) {
  363. if (grd_cstelist.col == 1) {
  364. model.makeValue("/root/init/blockind", "0");
  365. fGetSlidList(pRowNo, "C");
  366. }
  367. //--------------
  368. model.refresh();
  369. }
  370. }
  371. /* @group : Cassette/슬라이드발행
  372. * @ver : 2007.08.12 (CMCDEV-0001)
  373. * @by : 유동철(ACK)
  374. * @-----------------------------------
  375. * @type : function
  376. * @access : public
  377. * @desc : 슬라이드 목록 조회 처리 Function
  378. */
  379. function fGetSlidList(pRowNo, pBizFlagCd) {
  380. var iRowNo = grd_cstelist.row;
  381. var iCsteNo = "";
  382. var sOrgNode = "/root/main/acptspc/acptspclist";
  383. var sSrcNode = "/root/main/csteinfo/cstelist";
  384. //----------------------
  385. if (pBizFlagCd == "C") {
  386. //------------------------------------------------------------------------------
  387. for (var iNo=1; iNo <= getNodesetCount("/root/main/csteinfo/cstelist"); iNo++) {
  388. model.makeValue("/root/main/csteinfo/cstelist["+iNo+"]/choi", "false");
  389. }
  390. //-------------------------------------------------------
  391. iCsteNo = model.getValue(sSrcNode+"["+pRowNo+"]/csteno");
  392. model.makeValue("/root/main/csteinfo/cstelist["+iRowNo+"]/choi", "true");
  393. } else {
  394. iCsteNo = "000";
  395. sSrcNode = sOrgNode;
  396. }
  397. //--------------------------------
  398. model.removeNodeset("/root/send");
  399. model.removeNodeset("/root/main/slidinfo/slidlist");
  400. //-----------------------------------------------------------------------------------------
  401. model.makeValue("/root/send/instcd", model.getValue(sSrcNode+"["+pRowNo+"]/instcd"));
  402. model.makeValue("/root/send/ptno", model.getValue(sSrcNode+"["+pRowNo+"]/ptno"));
  403. model.makeValue("/root/send/spcacptdd", model.getValue(sSrcNode+"["+pRowNo+"]/spcacptdd"));
  404. model.makeValue("/root/send/spcacptno", model.getValue(sSrcNode+"["+pRowNo+"]/spcacptno"));
  405. model.makeValue("/root/send/spcacptseqno", model.getValue(sSrcNode+"["+pRowNo+"]/spcacptseqno"));
  406. model.makeValue("/root/send/csteno", iCsteNo);
  407. //-------------------
  408. submit("TRLPB00103");
  409. }
  410. /* @group : Cassette/슬라이드발행
  411. * @ver : 2007.08.12 (CMCDEV-0001)
  412. * @by : 유동철(ACK)
  413. * @-----------------------------------
  414. * @type : function
  415. * @access : public
  416. * @desc : Cassette 행추가 처리 Function
  417. */
  418. function fExeCsteAdd() {
  419. var iCsteNo = 0;
  420. var iFindNo = grd_spclist.row;
  421. var iMaxRowCnt = 0;
  422. var iIssCnt = 0;
  423. var sSrcNode = "/root/main/acptspc/acptspclist";
  424. var sDescNode = "/root/main/csteinfo/cstelist";
  425. //-----------------------------
  426. // 세부검체의 선택된 Row를 검색
  427. if (iFindNo > 0) {
  428. //-------------------------------------------------
  429. if (model.getValue("/root/hidden/cstecnt") == "") {
  430. iIssCnt = 1;
  431. } else {
  432. iIssCnt = Number(model.getValue("/root/hidden/cstecnt"));
  433. }
  434. //--------------------------------------------------
  435. for (var iLoopNo=1; iLoopNo <= iIssCnt; iLoopNo++) {
  436. //--------------------
  437. grd_cstelist.addRow();
  438. //--------------------------------------
  439. iMaxRowCnt = getNodesetCount(sDescNode);
  440. //-------------------
  441. if (iMaxRowCnt > 1) {
  442. iCsteNo = model.getValue(sDescNode+"[" + (Number(iMaxRowCnt) - 1) + "]/csteno");
  443. iCsteNo = Number(iCsteNo) + 1;
  444. } else {
  445. iCsteNo = 1;
  446. }
  447. //---------------------------------------------------------------------------------------------------------------------
  448. model.makeValue(sDescNode+"[" + iMaxRowCnt + "]/instcd", model.getValue(sSrcNode+"[" + iFindNo + "]/instcd"));
  449. model.makeValue(sDescNode+"[" + iMaxRowCnt + "]/ptno", model.getValue(sSrcNode+"[" + iFindNo + "]/ptno"));
  450. model.makeValue(sDescNode+"[" + iMaxRowCnt + "]/dispptno", model.getValue(sSrcNode+"[" + iFindNo + "]/dispptno"));
  451. model.makeValue(sDescNode+"[" + iMaxRowCnt + "]/spcacptdd", model.getValue(sSrcNode+"[" + iFindNo + "]/spcacptdd"));
  452. model.makeValue(sDescNode+"[" + iMaxRowCnt + "]/spcacptno", model.getValue(sSrcNode+"[" + iFindNo + "]/spcacptno"));
  453. model.makeValue(sDescNode+"[" + iMaxRowCnt + "]/spcacptseqno", model.getValue(sSrcNode+"[" + iFindNo + "]/spcacptseqno"));
  454. model.makeValue(sDescNode+"[" + iMaxRowCnt + "]/csteno", iCsteNo.toString().getLeftPad(3, "0"));
  455. model.makeValue(sDescNode+"[" + iMaxRowCnt + "]/slidcnt", "0");
  456. model.makeValue(sDescNode+"[" + iMaxRowCnt + "]/spccd", model.getValue(sSrcNode+"[" + iFindNo + "]/spccd"));
  457. model.makeValue(sDescNode+"[" + iMaxRowCnt + "]/slidno", "000");
  458. model.makeValue(sDescNode+"[" + iMaxRowCnt + "]/cstekindcd", "1001");
  459. model.makeValue(sDescNode+"[" + iMaxRowCnt + "]/cstecnts", model.getValue("/root/init/resncd/resncdlist[baseflagcd='81' and resncd='1001']/resncnts"));
  460. model.makeValue(sDescNode+"[" + iMaxRowCnt + "]/tisscnt", "0");
  461. model.makeValue(sDescNode+"[" + iMaxRowCnt + "]/statsinclflagcd", "0");
  462. model.makeValue(sDescNode+"[" + iMaxRowCnt + "]/acptdd", model.getValue(sSrcNode+"[" + iFindNo + "]/acptdd"));
  463. model.makeValue(sDescNode+"[" + iMaxRowCnt + "]/acptno", model.getValue(sSrcNode+"[" + iFindNo + "]/acptno"));
  464. model.makeValue(sDescNode+"[" + iMaxRowCnt + "]/testcd", "-");
  465. model.makeValue(sDescNode+"[" + iMaxRowCnt + "]/acptitemno", "0");
  466. model.makeValue(sDescNode+"[" + iMaxRowCnt + "]/reprnt", "false");
  467. model.makeValue(sDescNode+"[" + iMaxRowCnt + "]/statflagcd", "C");
  468. model.makeValue(sDescNode+"[" + iMaxRowCnt + "]/scrno", "10");
  469. model.makeValue(sDescNode+"[" + iMaxRowCnt + "]/hopper", "1");
  470. //-------------------------------
  471. grd_cstelist.row = iMaxRowCnt;
  472. fExeCsteChange();
  473. }
  474. } else {
  475. messageBox("Cassette를 발행할 세부검체를 ", "C002");
  476. }
  477. }
  478. /* @group : Cassette/슬라이드발행
  479. * @ver : 2007.08.12 (CMCDEV-0001)
  480. * @by : 유동철(ACK)
  481. * @-----------------------------------
  482. * @type : function
  483. * @access : public
  484. * @desc : Cassette 행삭제 처리 Function
  485. */
  486. function fExeCsteDel(pRowNo) {
  487. var sSrcNode = "/root/main/csteinfo/cstelist";
  488. //----------------------------------------------------------------------------
  489. if (model.getValue(sSrcNode+"[" + pRowNo+ "]/statflagcd") == "C") {
  490. grd_cstelist.deleteRow(pRowNo);
  491. } else {
  492. model.makeValue(sSrcNode+"[" + pRowNo + "]/statflagcd", "D");
  493. grd_cstelist.addStatus(pRowNo, "delete");
  494. }
  495. }
  496. /* @group : Cassette/슬라이드발행
  497. * @ver : 2007.08.12 (CMCDEV-0001)
  498. * @by : 유동철(ACK)
  499. * @-----------------------------------
  500. * @type : function
  501. * @access : public
  502. * @desc : 슬라이드 행추가 처리 Function
  503. */
  504. function fExeSlidAdd() {
  505. var iFindNo = -1;
  506. var iMaxRowCnt = 0;
  507. var iIssCnt = 0;
  508. var sOrgNode = "/root/main/acptspc/acptspclist";
  509. var sSrcNode = "/root/main/csteinfo/cstelist";
  510. var sDescNode = "/root/main/slidinfo/slidlist";
  511. //-----------------------------
  512. // Cassette의 선택된 Row를 검색
  513. iFindNo = grd_cstelist.findRow("true", 1, 1, true, true);
  514. if (iFindNo > 0) {
  515. //-------------------------------------------------------------------
  516. if (model.getValue(sSrcNode+"[" + iFindNo + "]/statflagcd") == "I") {
  517. messageBox("Cassette를 저장하여 주십시오! 슬라이드를 발행", "E001");
  518. return false;
  519. }
  520. //-----------------------------------------------
  521. if (model.getValue("/root/hidden/slidcnt") == "") {
  522. iIssCnt = 1;
  523. } else {
  524. iIssCnt = Number(model.getValue("/root/hidden/slidcnt"));
  525. }
  526. //---------------------------------------------------
  527. for (var iLoopNo=1; iLoopNo <= iIssCnt; iLoopNo++) {
  528. //--------------------
  529. grd_slidlist.addRow();
  530. //--------------------------------------
  531. iMaxRowCnt = getNodesetCount(sDescNode);
  532. model.makeValue(sDescNode+"[" + iMaxRowCnt + "]/instcd", model.getValue(sSrcNode+"[" + iFindNo + "]/instcd"));
  533. model.makeValue(sDescNode+"[" + iMaxRowCnt + "]/ptno", model.getValue(sSrcNode+"[" + iFindNo + "]/ptno"));
  534. model.makeValue(sDescNode+"[" + iMaxRowCnt + "]/dispptno", model.getValue(sSrcNode+"[" + iFindNo + "]/dispptno"));
  535. model.makeValue(sDescNode+"[" + iMaxRowCnt + "]/spcacptdd", model.getValue(sSrcNode+"[" + iFindNo + "]/spcacptdd"));
  536. model.makeValue(sDescNode+"[" + iMaxRowCnt + "]/spcacptno", model.getValue(sSrcNode+"[" + iFindNo + "]/spcacptno"));
  537. model.makeValue(sDescNode+"[" + iMaxRowCnt + "]/spcacptseqno", model.getValue(sSrcNode+"[" + iFindNo + "]/spcacptseqno"));
  538. model.makeValue(sDescNode+"[" + iMaxRowCnt + "]/csteno", model.getValue(sSrcNode+"[" + iFindNo + "]/csteno"));
  539. model.makeValue(sDescNode+"[" + iMaxRowCnt + "]/spccd", model.getValue(sSrcNode+"[" + iFindNo + "]/spccd"));
  540. model.makeValue(sDescNode+"[" + iMaxRowCnt + "]/slidno", "000");
  541. model.makeValue(sDescNode+"[" + iMaxRowCnt + "]/cstekindcd", "1001");
  542. model.makeValue(sDescNode+"[" + iMaxRowCnt + "]/cstecnts", model.getValue("/root/init/resncd/resncdlist[baseflagcd='82' and resncd='1001']/resncnts"));
  543. model.makeValue(sDescNode+"[" + iMaxRowCnt + "]/tisscnt", "0");
  544. model.makeValue(sDescNode+"[" + iMaxRowCnt + "]/statsinclflagcd", "0");
  545. model.makeValue(sDescNode+"[" + iMaxRowCnt + "]/acptdd", model.getValue(sSrcNode+"[" + iFindNo + "]/acptdd"));
  546. model.makeValue(sDescNode+"[" + iMaxRowCnt + "]/acptno", model.getValue(sSrcNode+"[" + iFindNo + "]/acptno"));
  547. model.makeValue(sDescNode+"[" + iMaxRowCnt + "]/testcd", "-");
  548. model.makeValue(sDescNode+"[" + iMaxRowCnt + "]/acptitemno", "0");
  549. model.makeValue(sDescNode+"[" + iMaxRowCnt + "]/reprnt", "false");
  550. model.makeValue(sDescNode+"[" + iMaxRowCnt + "]/statflagcd", "C");
  551. model.makeValue(sDescNode+"[" + iMaxRowCnt + "]/scrno", "20");
  552. model.makeValue(sDescNode+"[" + iMaxRowCnt + "]/relaptno", "-");
  553. model.makeValue(sDescNode+"[" + iMaxRowCnt + "]/reladispptno", "-");
  554. }
  555. } else {
  556. //-------------------------------------------------
  557. if (model.getValue("/root/init/blockind") == "0") {
  558. messageBox("슬라이드를 발행할 Cassette를 ", "C002");
  559. return false;
  560. } else {
  561. if (grd_spclist.row <= 0) {
  562. messageBox("접수검체목록에서 병리번호를 ", "C002");
  563. return false;
  564. }
  565. }
  566. //-------------------------------------------------------
  567. iIssCnt = Number(model.getValue("/root/hidden/slidcnt"));
  568. for (var iLoopNo=1; iLoopNo <= iIssCnt; iLoopNo++) {
  569. //--------------------
  570. grd_slidlist.addRow();
  571. //--------------------------------------
  572. iMaxRowCnt = getNodesetCount(sDescNode);
  573. model.makeValue(sDescNode+"[" + iMaxRowCnt + "]/instcd", model.getValue(sOrgNode+"[" + grd_spclist.row + "]/instcd"));
  574. model.makeValue(sDescNode+"[" + iMaxRowCnt + "]/ptno", model.getValue(sOrgNode+"[" + grd_spclist.row + "]/ptno"));
  575. model.makeValue(sDescNode+"[" + iMaxRowCnt + "]/dispptno", model.getValue(sOrgNode+"[" + grd_spclist.row + "]/dispptno"));
  576. model.makeValue(sDescNode+"[" + iMaxRowCnt + "]/spcacptdd", model.getValue(sOrgNode+"[" + grd_spclist.row + "]/spcacptdd"));
  577. model.makeValue(sDescNode+"[" + iMaxRowCnt + "]/spcacptno", model.getValue(sOrgNode+"[" + grd_spclist.row + "]/spcacptno"));
  578. model.makeValue(sDescNode+"[" + iMaxRowCnt + "]/spcacptseqno", model.getValue(sOrgNode+"[" + grd_spclist.row + "]/spcacptseqno"));
  579. model.makeValue(sDescNode+"[" + iMaxRowCnt + "]/csteno", "000");
  580. model.makeValue(sDescNode+"[" + iMaxRowCnt + "]/spccd", model.getValue(sOrgNode+"[" + grd_spclist.row + "]/spccd"));
  581. model.makeValue(sDescNode+"[" + iMaxRowCnt + "]/slidno", iMaxRowCnt.toString().getLeftPad(3, "0"));
  582. model.makeValue(sDescNode+"[" + iMaxRowCnt + "]/cstekindcd", "1001");
  583. model.makeValue(sDescNode+"[" + iMaxRowCnt + "]/cstecnts", model.getValue("/root/init/resncd/resncdlist[baseflagcd='82' and resncd='1001']/resncnts"));
  584. model.makeValue(sDescNode+"[" + iMaxRowCnt + "]/tisscnt", "0");
  585. model.makeValue(sDescNode+"[" + iMaxRowCnt + "]/statsinclflagcd", "0");
  586. model.makeValue(sDescNode+"[" + iMaxRowCnt + "]/acptdd", model.getValue(sOrgNode+"[" + grd_spclist.row + "]/acptdd"));
  587. model.makeValue(sDescNode+"[" + iMaxRowCnt + "]/acptno", model.getValue(sOrgNode+"[" + grd_spclist.row + "]/acptno"));
  588. model.makeValue(sDescNode+"[" + iMaxRowCnt + "]/testcd", "-");
  589. model.makeValue(sDescNode+"[" + iMaxRowCnt + "]/acptitemno", "0");
  590. model.makeValue(sDescNode+"[" + iMaxRowCnt + "]/reprnt", "false");
  591. model.makeValue(sDescNode+"[" + iMaxRowCnt + "]/statflagcd", "C");
  592. model.makeValue(sDescNode+"[" + iMaxRowCnt + "]/scrno", "20");
  593. model.makeValue(sDescNode+"[" + iMaxRowCnt + "]/relaptno", "-");
  594. model.makeValue(sDescNode+"[" + iMaxRowCnt + "]/reladispptno", "-");
  595. }
  596. }
  597. }
  598. /* @group : Cassette/슬라이드발행
  599. * @ver : 2007.08.12 (CMCDEV-0001)
  600. * @by : 유동철(ACK)
  601. * @-----------------------------------
  602. * @type : function
  603. * @access : public
  604. * @desc : 슬라이드 행삭제 처리 Function
  605. */
  606. function fExeSlideDel(pRowNo) {
  607. var sSrcNode = "/root/main/slidinfo/slidlist";
  608. //----------------------------------------------------------------------------
  609. if (model.getValue(sSrcNode+"[" + pRowNo + "]/statflagcd") == "C") {
  610. grd_slidlist.deleteItem(pRowNo);
  611. } else {
  612. model.makeValue(sSrcNode+"[" + pRowNo + "]/statflagcd", "D");
  613. grd_slidlist.addStatus(pRowNo, "delete");
  614. }
  615. }
  616. /* @group : Cassette/슬라이드발행
  617. * @ver : 2007.08.12 (CMCDEV-0001)
  618. * @by : 유동철(ACK)
  619. * @-----------------------------------
  620. * @type : function
  621. * @access : public
  622. * @desc : Cassette/슬라이드 저장 처리 Function
  623. */
  624. function fExeCsteSlidSave(pBizFlagCd) {
  625. var sSrcNode = "";
  626. var iFindNo = 0;
  627. //--------------------------------
  628. model.removeNodeset("/root/send");
  629. //------------------------
  630. // C:Cassette, S:슬라이드
  631. if (pBizFlagCd == "C") {
  632. if (getNodesetCount("/root/main/csteinfo/cstelist") <= 0) {
  633. messageBox("저장 대상이 없습니다! 저장을 ", "E001");
  634. return false;
  635. }
  636. //-------------------------
  637. grd_cstelist.clearStatus();
  638. sSrcNode = "/root/main/csteinfo/cstelist";
  639. //--------------------------------------------------------
  640. for (var iNo=1; iNo <= getNodesetCount(sSrcNode); iNo++) {
  641. if (model.getValue(sSrcNode+"["+iNo+"]/statflagcd") != "D") {
  642. grd_cstelist.addStatus(iNo, "insert");
  643. model.makeValue(sSrcNode+"["+iNo+"]/statsinclflagcd", model.getValue(sSrcNode+"["+iNo+"]/hopper"));
  644. } else if (model.getValue(sSrcNode+"["+iNo+"]/statflagcd") == "D") {
  645. grd_cstelist.addStatus(iNo, "delete");
  646. }
  647. }
  648. //-----------------------------------------------------------------------
  649. model.makeValue("/root/send/csteslidlist", grd_cstelist.getUpdateData());
  650. } else {
  651. if (getNodesetCount("/root/main/slidinfo/slidlist") <= 0) {
  652. messageBox("저장 대상이 없습니다! 저장을 ", "E001");
  653. return false;
  654. }
  655. //-------------------------
  656. grd_slidlist.clearStatus();
  657. sSrcNode = "/root/main/slidinfo/slidlist";
  658. //--------------------------------------------------------
  659. for (var iNo=1; iNo <= getNodesetCount(sSrcNode); iNo++) {
  660. if (model.getValue(sSrcNode+"["+iNo+"]/statflagcd") != "D") {
  661. grd_slidlist.addStatus(iNo, "insert");
  662. model.setValue(sSrcNode+"["+iNo+"]/statflagcd", "C");
  663. } else if (model.getValue(sSrcNode+"["+iNo+"]/statflagcd") == "D") {
  664. grd_slidlist.addStatus(iNo, "delete");
  665. }
  666. }
  667. //-----------------------------------------------------------------------
  668. model.makeValue("/root/send/csteslidlist", grd_slidlist.getUpdateData());
  669. }
  670. //-----------
  671. setAlertOn();
  672. if (submit("TXLPB00101")) {
  673. if (pBizFlagCd == "C") {
  674. fGetCsteList(grd_spclist.row);
  675. } else {
  676. if (model.getValue("/root/init/blockind") == "0") {
  677. fGetSlidList(grd_cstelist.row, "C");
  678. } else {
  679. fGetSlidList(grd_spclist.row, pBizFlagCd);
  680. }
  681. }
  682. }
  683. }
  684. /* @group : Cassette/슬라이드발행
  685. * @ver : 2007.08.12 (CMCDEV-0001)
  686. * @by : 유동철(ACK)
  687. * @-----------------------------------
  688. * @type : function
  689. * @access : public
  690. * @desc : 검사명 변경 처리 Function
  691. */
  692. function fExeSlidTestChange() {
  693. var iRowNo = grd_slidlist.row;
  694. var sSrcNode = "/root/init/relatestnm/relatestnmlist";
  695. var sDescNode = "/root/main/slidinfo/slidlist";
  696. var sNode = "";
  697. var sResnNode = "/root/init/resncd/resncdlist";
  698. var iSlidListNo = 0;
  699. //----------------------------
  700. if (grd_slidlist.col == grd_slidlist.colRef("testcd")) {
  701. //-------------------------------------------------------------------------------
  702. sNode = "acptdd='" + model.getValue(sDescNode+"["+iRowNo+"]/acptdd") + "' and ";
  703. sNode += "acptno='" + model.getValue(sDescNode+"["+iRowNo+"]/acptno") + "' and ";
  704. sNode += "testcd='" + model.getValue(sDescNode+"["+iRowNo+"]/testcd") + "'";
  705. for (var iNo=1; iNo <= getNodesetCount(sSrcNode); iNo++) {
  706. if(model.getValue(sDescNode+"["+grd_slidlist.row+"]/testcd") == model.getValue(sSrcNode+"["+iNo+"]/testcd")) {
  707. iSlidListNo = iNo;
  708. break;
  709. }
  710. }
  711. model.makeValue(sDescNode+"["+grd_slidlist.row+"]/acptitemno", model.getValue(sSrcNode+"["+iSlidListNo+"]/acptitemno"));
  712. //----------------------------------------------------------------------------------------------------------
  713. if (model.getValue(sDescNode+"["+grd_slidlist.row+"]/ptno") == model.getValue(sSrcNode+"["+iSlidListNo+"]/ptno")) {
  714. // Continue
  715. } else {
  716. model.makeValue(sDescNode+"["+grd_slidlist.row+"]/relaptno", model.getValue(sSrcNode+"["+iSlidListNo+"]/ptno"));
  717. model.makeValue(sDescNode+"["+grd_slidlist.row+"]/reladispptno", model.getValue(sSrcNode+"["+iSlidListNo+"]/dispptno"));
  718. model.makeValue(sDescNode+"["+grd_slidlist.row+"]/cstecnts", model.getValue(sSrcNode+"["+iSlidListNo+"]/testnm"));
  719. //-----------------------------------------------------------
  720. switch (model.getValue(sSrcNode+"["+ iSlidListNo+"]/workflagcd")) {
  721. case "1004" : model.makeValue(sDescNode+"["+grd_slidlist.row+"]/cstekindcd", "1009");
  722. break;
  723. case "1005" : model.makeValue(sDescNode+"["+grd_slidlist.row+"]/cstekindcd", "1010");
  724. break;
  725. case "1006" : model.makeValue(sDescNode+"["+grd_slidlist.row+"]/cstekindcd", "1011");
  726. break;
  727. default : model.makeValue(sDescNode+"["+grd_slidlist.row+"]/cstekindcd", "1001");
  728. }
  729. }
  730. } else if (grd_slidlist.col == grd_slidlist.colRef("cstekindcd")) {
  731. model.makeValue(sDescNode+"["+grd_slidlist.row+"]/cstecnts", model.getValue(sResnNode+"[baseflagcd = '82' and resncd='"+model.getValue(sDescNode+"["+grd_slidlist.row+"]/cstekindcd")+"']/resncnts"));
  732. }
  733. //---------------------
  734. grd_slidlist.refresh();
  735. }
  736. /* @group : Cassette/슬라이드발행
  737. * @ver : 2007.08.12 (CMCDEV-0001)
  738. * @by : 유동철(ACK)
  739. * @-----------------------------------
  740. * @type : function
  741. * @access : public
  742. * @desc : Cassette 재출력 처리 Function
  743. */
  744. function fExeCsteIss(pBizFlag) {
  745. var iFindNo = -1;
  746. var sSrcNode = "/root/main/csteinfo/cstelist";
  747. //---------------------
  748. // C:신규발행, R:재발행
  749. if (pBizFlag == "C") {
  750. for (var iNo=1; iNo <= getNodesetCount(sSrcNode); iNo++) {
  751. //---------------------------------
  752. // 신규와 삭제분은 발행하지 않는다.
  753. if (model.getValue(sSrcNode+"["+iNo+"]/statflagcd") == "C") {
  754. }
  755. }
  756. } else {
  757. iFindNo = grd_cstelist.findRow("true", 1, 18, true, true);
  758. if (iFindNo > 0) {
  759. fExeSocketCsteSend();
  760. } else {
  761. messageBox("재출력 Cassette를", "C002");
  762. }
  763. }
  764. }
  765. /* @group : Cassette/슬라이드발행
  766. * @ver : 2007.08.12 (CMCDEV-0001)
  767. * @by : 유동철(ACK)
  768. * @-----------------------------------
  769. * @type : function
  770. * @access : public
  771. * @desc : 슬라이드 재출력 처리 Function
  772. */
  773. function fExeSlidIss(pBizFlag) {
  774. var iFindNo = -1;
  775. var sSrcNode = "/root/main/slidinfo/slidlist";
  776. //---------------------
  777. // C:신규발행, R:재발행
  778. if (pBizFlag == "C") {
  779. for (var iNo=1; iNo <= getNodesetCount(sSrcNode); iNo++) {
  780. //---------------------------------
  781. // 신규와 삭제분은 발행하지 않는다.
  782. if (model.getValue(sSrcNode+"["+iNo+"]/statflagcd") == "C") {
  783. }
  784. }
  785. } else {
  786. iFindNo = grd_slidlist.findRow("true", 1, grd_slidlist.colRef("reprnt"), true, true);
  787. if (iFindNo > 0) {
  788. fExeSocketSlidSend();
  789. } else {
  790. messageBox("재출력 슬라이드를", "C002");
  791. }
  792. }
  793. }
  794. /* @group : Cassette일괄출력
  795. * @ver : 2007.05.24 (CMCDEV-0001)
  796. * @by : 유동철(ACK)
  797. * @-----------------------------------
  798. * @type : function
  799. * @access : public
  800. * @desc : 발행 Cassette목록을 장비로 전송 Function
  801. */
  802. function fExeSocketCsteSend() {
  803. var sSendMsg = "";
  804. //-----------------------------------------------
  805. var sInfoNode = "/root/init/hospenv/hospenvinfo";
  806. var sCsteNode = "/root/main/csteinfo/cstelist";
  807. var sCsteIP = model.getValue(sInfoNode+"/csteeqmtip");
  808. var sCstePort = model.getValue(sInfoNode+"/csteeqmtport");
  809. //장비IP set
  810. for(var iRowNo = 1 ; iRowNo <= getNodesetCount("/root/main/eqinfo/caeqlist") ; iRowNo++){
  811. if(model.getValue("/root/init/eqcaseqno") == model.getValue("/root/main/eqinfo/caeqlist["+ iRowNo +"]/eqseqno")) {
  812. sCsteIP = model.getValue("/root/main/eqinfo/caeqlist["+ iRowNo +"]/eqip");
  813. sCstePort = model.getValue("/root/main/eqinfo/caeqlist["+ iRowNo +"]/eqport");
  814. }
  815. }
  816. //------------------------------------
  817. if (sCsteIP == "" || sCsteIP == "-") {
  818. messageBox("Cassette(블럭)장비의 IP주소가 없습니다. 병원별 환경설정에서 ", "C001");
  819. return false;
  820. }
  821. //----------------------------------------
  822. if (sCstePort == "" || sCstePort == "-") {
  823. messageBox("Cassette(블럭)장비의 Port번호가 없습니다. 병원별 환경설정에서 ", "C001");
  824. return false;
  825. }
  826. //-------------------------------------
  827. socketcste.connect(sCsteIP, sCstePort);
  828. }
  829. /* @group : Cassette일괄출력
  830. * @ver : 2007.05.24 (CMCDEV-0001)
  831. * @by : 유동철(ACK)
  832. * @-----------------------------------
  833. * @type : function
  834. * @access : public
  835. * @desc : 발행 Cassette목록을 장비로 전송 Function
  836. */
  837. function fExeSocketSlidSend() {
  838. var sSendMsg = "";
  839. //-----------------------------------------------
  840. var sInfoNode = "/root/init/hospenv/hospenvinfo";
  841. var sSlidIP = model.getValue(sInfoNode+"/slideqmtip");
  842. var sSlidPort = model.getValue(sInfoNode+"/slideqmtport");
  843. //장비IP set
  844. for(var iRowNo = 1 ; iRowNo <= getNodesetCount("/root/main/eqinfo/slideqlist") ; iRowNo++){
  845. if(model.getValue("/root/init/eqslidseqno") == model.getValue("/root/main/eqinfo/slideqlist["+ iRowNo +"]/eqseqno")) {
  846. sSlidIP = model.getValue("/root/main/eqinfo/slideqlist["+ iRowNo +"]/eqip");
  847. sSlidPort = model.getValue("/root/main/eqinfo/slideqlist["+ iRowNo +"]/eqport");
  848. }
  849. }
  850. //------------------------------------
  851. if (sSlidIP == "" || sSlidIP == "-") {
  852. messageBox("슬라이드 장비의 IP주소가 없습니다. 병원별 환경설정에서 ", "C001");
  853. return false;
  854. }
  855. //----------------------------------------
  856. if (sSlidPort == "" || sSlidPort == "-") {
  857. messageBox("슬라이드 장비의 Port번호가 없습니다. 병원별 환경설정에서 ", "C001");
  858. return false;
  859. }
  860. //-------------------------------------
  861. socketslid.connect(sSlidIP, sSlidPort);
  862. }
  863. /* @group : Cassette일괄출력
  864. * @ver : 2007.11.05 (CMCDEV-0001)
  865. * @by : 유동철(ACK)
  866. * @-----------------------------------
  867. * @type : function
  868. * @access : public
  869. * @desc : 등록번호 입력 처리 Function
  870. */
  871. function fExeRefValKeyPress() {
  872. if (event.keyCode == 13) {
  873. model.makeValue("/root/hidden/seaval", ipt_seaval.currentText);
  874. ipt_seaval.refresh();
  875. //---------------
  876. fGetSpcSeqList();
  877. }
  878. }
  879. /* @group : Cassette일괄출력
  880. * @ver : 2007.11.05 (CMCDEV-0001)
  881. * @by : 유동철(ACK)
  882. * @-----------------------------------
  883. * @type : function
  884. * @access : public
  885. * @desc : Cassette종류 선택 처리 Function
  886. */
  887. function fExeCsteChange() {
  888. var sNode = "/root/main/csteinfo/cstelist";
  889. var iRowNo = grd_cstelist.row;
  890. var sCsteCnts = model.getValue(sNode+"["+iRowNo+"]/cstecnts");
  891. var iSpcSeqNo = Number(model.getValue(sNode+"["+iRowNo+"]/spcacptseqno"));
  892. var iCsteNo = Number(model.getValue(sNode+"["+iRowNo+"]/csteno"));
  893. var sCsteKind = model.getValue(sNode+"["+iRowNo+"]/cstekindcd");
  894. sCsteCnts = model.getValue("/root/init/resncd/resncdlist[resncd='"+sCsteKind+"']/resncnts");
  895. sCsteCnts = lpzfExeCsteCnt(sCsteCnts, iSpcSeqNo, Number(iCsteNo));
  896. model.setValue(sNode+"["+iRowNo+"]/cstecnts", sCsteCnts);
  897. if((model.getValue(sNode+"["+iRowNo+"]/statflagcd") != "C") && (model.getValue(sNode+"["+iRowNo+"]/statflagcd") != "D")) {
  898. model.setValue(sNode+"["+iRowNo+"]/statflagcd", "UPDATE");
  899. }
  900. grd_cstelist.refresh();
  901. }
  902. /* @group : Cassette일괄출력
  903. * @ver : 2007.11.05 (CMCDEV-0001)
  904. * @by : 유동철(ACK)
  905. * @-----------------------------------
  906. * @type : function
  907. * @access : public
  908. * @desc : Cassette종류(가상블럭) 선택 처리 Function
  909. */
  910. function fExeBlocKindChange() {
  911. var iFindNo = 0;
  912. //-------------------------
  913. if (grd_spclist.row <= 0) {
  914. messageBox("접수검체 목록에서 병리번호를 ", "C002");
  915. return false;
  916. }
  917. //-------------------------------------------------
  918. if (model.getValue("/root/init/blockind") == "0") {
  919. iFindNo = grd_cstelist.findRow("true", 1, 1, true, true);
  920. //----------------
  921. if (iFindNo > 0) {
  922. grd_cstelist.select(iFindNo, 1) = true;
  923. grd_cstelist.row = iFindNo;
  924. fGetSlidList(iFindNo, "C");
  925. } else {
  926. model.removeNodeset("/root/main/slidinfo/slidlist");
  927. }
  928. } else {
  929. fGetSlidList(grd_spclist.row, "S");
  930. }
  931. //---------------------
  932. grd_slidlist.refresh();
  933. }
  934. /* @group : Cassette/슬라이드제작화면
  935. * @ver : 2009.02.25 (CMCDEV-0001)
  936. * @by : 박중규
  937. * @-----------------------------------
  938. * @type : function
  939. * @access : public
  940. * @desc : 선택목록 삭제
  941. */
  942. function fDelCaList() {
  943. var iFirstRow = grd_cstelist.selectedRow(0);
  944. var iLasrRow = grd_cstelist.selectedRow(grd_cstelist.selectedRows-1)
  945. for(var iRowNo = iLasrRow ; iRowNo >= iFirstRow ; iRowNo--) {
  946. fExeCsteDel(iRowNo);
  947. }
  948. grd_cstelist.refresh();
  949. }
  950. /* @group : Cassette/슬라이드제작화면
  951. * @ver : 2009.02.25 (CMCDEV-0001)
  952. * @by : 박중규
  953. * @-----------------------------------
  954. * @type : function
  955. * @access : public
  956. * @desc : 선택목록 삭제
  957. */
  958. function fDelSlidList() {
  959. var iFirstRow = grd_slidlist.selectedRow(0);
  960. var iLasrRow = grd_slidlist.selectedRow(grd_slidlist.selectedRows-1)
  961. for(var iRowNo = iLasrRow ; iRowNo >= iFirstRow ; iRowNo--) {
  962. fExeSlideDel(iRowNo);
  963. }
  964. grd_slidlist.refresh();
  965. }
  966. ]]>
  967. </script>
  968. </xhtml:head>
  969. <xhtml:body pagewidth="1215" pageheight="800" guideline="1,1194;" style="margin-left:8; margin-top:0; margin-right:8; margin-bottom:0; ">
  970. <group id="group1" style="left:0px; top:0px; width:1195px; height:13px; ">
  971. <caption id="caption6" class="tit_1" style="left:0px; top:0px; width:800px; height:14px; ">Cassette/슬라이드제작</caption>
  972. </group>
  973. <group id="grp_biz" scroll="auto" style="left:0px; top:40px; width:1195px; height:735px; ">
  974. <group id="grp_sea" style="left:0px; top:10px; width:1194px; height:35px; vertical-align:top; ">
  975. <shape id="roundrect2" class="roundrect_search" appearance="roundrect" ellipsewidth="10" ellipseheight="10" style="left:0px; top:0px; width:1194px; height:35px; background-color:#fffbf2; border-color:#ffd799; "/>
  976. <caption id="caption9" class="search_name" style="left:806px; top:9px; width:86px; height:17px; ">접수일자 :</caption>
  977. <caption id="caption11" class="search_name" style="left:525px; top:9px; width:86px; height:17px; ">등록번호 :</caption>
  978. <line id="line13" class="line_4" style="x1:1107px; y1:7px; x2:1107px; y2:29px; "/>
  979. <input id="ipt_acptddfrom" ref="/root/hidden/acptfromdd" class="input_s_essential" navindex="7" inputtype="date" style="left:895px; top:8px; width:90px; height:19px; "/>
  980. <caption id="caption1" class="search_no_b" style="left:987; top:8px; width:12px; height:17px; ">~</caption>
  981. <input id="ipt_acptddto" ref="/root/hidden/acpttodd" class="input_s_essential" navindex="8" inputtype="date" style="left:1002; top:8px; width:90px; height:19px; "/>
  982. <button id="btn_sea" class="btn1_letter2" navindex="9" style="left:1123px; top:7px; width:56px; height:22px; ">
  983. <caption>조회</caption>
  984. <script type="javascript" ev:event="DOMActivate">
  985. <![CDATA[
  986. fGetSpcSeqList();
  987. ]]>
  988. </script>
  989. </button>
  990. <input id="ipt_seaval" ref="/root/hidden/seaval" class="input_search" navindex="6" maxlength="10" style="left:617px; top:8px; width:108px; height:19px; ">
  991. <script type="javascript" ev:event="onkeypress">
  992. <![CDATA[
  993. fExeRefValKeyPress();
  994. ]]>
  995. </script>
  996. </input>
  997. <select1 id="cbo_ptnocd" ref="/root/init/ptnocode" navindex="1" appearance="minimal" editmode="search" style="left:109px; top:8px; width:151px; height:19px; ">
  998. <choices>
  999. <itemset nodeset="/root/init/ptnocd/ptnocdlist">
  1000. <label ref="ptnonm"/>
  1001. <value ref="ptnocd"/>
  1002. </itemset>
  1003. </choices>
  1004. </select1>
  1005. <caption id="caption10" class="search_no_b" style="left:346px; top:8px; width:12px; height:17px; ">~</caption>
  1006. <input id="ipt_fromptno" ref="/root/init/fromptno" class="text_center" navindex="3" maxlength="6" style="left:293px; top:8px; width:50px; height:19px; "/>
  1007. <input id="input1" ref="/root/init/toptno" class="text_center" navindex="5" maxlength="6" style="left:391px; top:8px; width:50px; height:19px; "/>
  1008. <input id="input2" ref="/root/init/toyear" class="text_center" navindex="4" maxlength="2" style="left:361px; top:8px; width:27px; height:19px; "/>
  1009. <caption id="caption2" class="search_name" style="left:15px; top:9px; width:90px; height:17px; ">병리번호 :</caption>
  1010. <input id="ipt_fromyear" ref="/root/init/fromyear" class="text_center" navindex="2" maxlength="2" style="left:263px; top:8px; width:27px; height:19px; "/>
  1011. </group>
  1012. <datagrid id="grd_cstelist" nodeset="/root/main/csteinfo/cstelist" class="datagrid2" caption="선&#xA;택^기관코드^병리번호^spcacptdd^spcacptno^spcacptseqno^번호^슬라이드수^종 류^내 용^조직&#xA;갯수^Hopper^내/외&#xA;구분^acptdd^acptno^testcd^acptitemno^재출력^상태^scrno^spccd^slidno^dispptno" colsep="^" colwidth="24, 0, 0, 0, 0, 0, 40, 69, 90, 165, 40, 60, 32, 0, 0, 0, 0, 50, 0, 0, 0, 0, 0" dataheight="23" mergecellsfixedrows="bycolrec" rowheader="update" rowsep="|" navindex="11" style="left:603px; top:75px; width:590px; height:285px; ">
  1013. <col ref="choi" type="checkbox"/>
  1014. <col ref="instcd"/>
  1015. <col ref="ptno"/>
  1016. <col ref="spcacptdd"/>
  1017. <col ref="spcacptno"/>
  1018. <col ref="spcacptseqno"/>
  1019. <col class="text_center" ref="csteno"/>
  1020. <col class="text_center" ref="slidcnt"/>
  1021. <col ref="cstekindcd" type="combo">
  1022. <choices>
  1023. <itemset nodeset="/root/init/resncd/resncdlist[baseflagcd='81']">
  1024. <label ref="resncnts"/>
  1025. <value ref="resncd"/>
  1026. </itemset>
  1027. </choices>
  1028. </col>
  1029. <col ref="cstecnts" type="input"/>
  1030. <col class="text_right" ref="tisscnt" type="input" format="#,###" mask="exclude" showmask="true"/>
  1031. <col ref="hopper" type="combo">
  1032. <choices>
  1033. <item>
  1034. <label>1</label>
  1035. <value>1</value>
  1036. </item>
  1037. <item>
  1038. <label>2</label>
  1039. <value>2</value>
  1040. </item>
  1041. <item>
  1042. <label>3</label>
  1043. <value>3</value>
  1044. </item>
  1045. <item>
  1046. <label>4</label>
  1047. <value>4</value>
  1048. </item>
  1049. <item>
  1050. <label>5</label>
  1051. <value>5</value>
  1052. </item>
  1053. <item>
  1054. <label>6</label>
  1055. <value>6</value>
  1056. </item>
  1057. </choices>
  1058. </col>
  1059. <col ref="statsinclflagcd" type="combo" visibility="hidden">
  1060. <choices>
  1061. <item>
  1062. <label>원내</label>
  1063. <value>0</value>
  1064. </item>
  1065. <item>
  1066. <label>원외</label>
  1067. <value>1</value>
  1068. </item>
  1069. </choices>
  1070. </col>
  1071. <col ref="acptdd"/>
  1072. <col ref="acptno"/>
  1073. <col ref="testcd"/>
  1074. <col ref="acptitemno"/>
  1075. <col ref="reprnt" type="checkbox"/>
  1076. <col ref="statflagcd"/>
  1077. <col ref="scrno"/>
  1078. <col ref="spccd"/>
  1079. <col ref="slidno"/>
  1080. <col ref="dispptno"/>
  1081. <script type="javascript" ev:event="onclick">
  1082. <![CDATA[
  1083. fExeCsteClick(grd_cstelist.row);
  1084. ]]>
  1085. </script>
  1086. <script type="javascript" ev:event="xforms-value-changed">
  1087. <![CDATA[
  1088. var iRowNo = grd_cstelist.row;
  1089. if((grd_cstelist.col == grd_cstelist.colRef("cstekindcd")) && (grd_cstelist.row >= grd_cstelist.fixedRows)) {
  1090. fExeCsteChange();
  1091. } else if(grd_cstelist.col == grd_cstelist.colRef("cstecnts") || grd_cstelist.col == grd_cstelist.colRef("statsinclflagcd")){
  1092. if((model.getValue("/root/main/csteinfo/cstelist["+iRowNo+"]/statflagcd") != "C") && (model.getValue("/root/main/csteinfo/cstelist["+iRowNo+"]/statflagcd") != "D")) {
  1093. model.setValue("/root/main/csteinfo/cstelist["+iRowNo+"]/statflagcd", "UPDATE");
  1094. }
  1095. }
  1096. ]]>
  1097. </script>
  1098. <script type="javascript" ev:event="onmousedown">
  1099. <![CDATA[
  1100. setPopupMenu("grd_cstelist", false, "/root/init/popupmenu/item", "name", "func");
  1101. ]]>
  1102. </script>
  1103. </datagrid>
  1104. <caption id="caption3" class="tit_2" style="left:6px; top:55px; width:113px; height:14px; ">접수검체 목록</caption>
  1105. <line id="line12" class="line_1" style="x1:0px; y1:70px; x2:600px; y2:70px; "/>
  1106. <caption id="caption4" class="tit_2" style="left:609px; top:55px; width:162px; height:14px; ">Cassette(블록) 목록</caption>
  1107. <caption id="caption5" class="tit_2" style="left:609px; top:370px; width:116px; height:13px; ">슬라이드 목록</caption>
  1108. <line id="line4" class="line_1" style="x1:603px; y1:70px; x2:1193px; y2:70px; "/>
  1109. <line id="line6" class="line_1" style="x1:603px; y1:386px; x2:1193px; y2:386px; "/>
  1110. <datagrid id="grd_spclist" nodeset="/root/main/acptspc/acptspclist" class="datagrid2" caption="기관코드^ptno^병리번호^spcacptdd^spcacptno^등록번호^환자명^접수일자^spccd^검체명^세부&#xA;검체^검사항목^acptno^Cassette수" colsep="^" colwidth="0, 0, 80, 0, 0, 80, 80, 80, 0, 100, 40, 122, 0" dataheight="23" explorerbar="sortshow" mergecellsfixedrows="bycolrec" rowsep="|" navindex="10" style="left:0px; top:75px; width:600px; height:653px; font-family:굴림체; font-size:9pt; text-align:center; ">
  1111. <col ref="instcd"/>
  1112. <col ref="ptno"/>
  1113. <col ref="dispptno"/>
  1114. <col ref="spcacptdd"/>
  1115. <col ref="spcacptno"/>
  1116. <col ref="pid"/>
  1117. <col ref="patnm"/>
  1118. <col ref="acptdd" format="yyyy-mm-dd" mask="exclude" showmask="true"/>
  1119. <col ref="spccd"/>
  1120. <col ref="spcnm"/>
  1121. <col ref="spcacptseqno"/>
  1122. <col ref="testnmlist"/>
  1123. <col ref="acptno"/>
  1124. <script type="javascript" ev:event="onclick">
  1125. <![CDATA[
  1126. fExeSpcSeqClick(grd_spclist.row);
  1127. ]]>
  1128. </script>
  1129. <script type="javascript" ev:event="onaftersort">
  1130. <![CDATA[
  1131. grd_spclist.gridToInstance();
  1132. ]]>
  1133. </script>
  1134. </datagrid>
  1135. <datagrid id="grd_slidlist" nodeset="/root/main/slidinfo/slidlist" class="datagrid2" caption="기관코드^병리번호^spcacptdd^spcacptno^spcacptseqno^csteno^번호^종 류^Block번호^슬라이드 내용^내/외&#xA;구분^tisscnt^acptdd^acptno^검사명^acptitemno^재출력^상태^scrno^spccd^dispptno^relaptno^reladispptno" colsep="^" colwidth="0, 0, 0, 0, 0, 0, 35, 100, 111, 134, 21, 0, 0, 0, 110, 0, 50, 0, 0, 0, 0, 0, 0" dataheight="23" mergecellsfixedrows="bycolrec" rowheader="update" rowsep="|" navindex="16" style="left:603px; top:392px; width:590px; height:336px; ">
  1136. <col ref="instcd"/>
  1137. <col ref="ptno"/>
  1138. <col ref="spcacptdd"/>
  1139. <col ref="spcacptno"/>
  1140. <col ref="spcacptseqno"/>
  1141. <col ref="csteno"/>
  1142. <col ref="slidno"/>
  1143. <col ref="cstekindcd" type="combo">
  1144. <choices>
  1145. <itemset nodeset="/root/init/resncd/resncdlist[baseflagcd='82']">
  1146. <label ref="resncnts"/>
  1147. <value ref="resncd"/>
  1148. </itemset>
  1149. </choices>
  1150. </col>
  1151. <col ref="prtnblocnm" type="input"/>
  1152. <col ref="cstecnts" type="input"/>
  1153. <col ref="statsinclflagcd" type="combo" visibility="hidden">
  1154. <choices>
  1155. <item>
  1156. <label>원내</label>
  1157. <value>0</value>
  1158. </item>
  1159. <item>
  1160. <label>원외</label>
  1161. <value>1</value>
  1162. </item>
  1163. </choices>
  1164. </col>
  1165. <col ref="tisscnt"/>
  1166. <col ref="acptdd"/>
  1167. <col ref="acptno"/>
  1168. <col ref="testcd" type="combo">
  1169. <choices>
  1170. <itemset nodeset="/root/init/relatestnm/relatestnmlist">
  1171. <label ref="testnm"/>
  1172. <value ref="testcd"/>
  1173. </itemset>
  1174. </choices>
  1175. </col>
  1176. <col ref="acptitemno"/>
  1177. <col ref="reprnt" type="checkbox"/>
  1178. <col ref="statflagcd"/>
  1179. <col ref="scrno"/>
  1180. <col ref="spccd"/>
  1181. <col ref="dispptno"/>
  1182. <col ref="relaptno"/>
  1183. <col ref="reladispptno"/>
  1184. <script type="javascript" ev:event="xforms-value-changed">
  1185. <![CDATA[
  1186. fExeSlidTestChange();
  1187. ]]>
  1188. </script>
  1189. <script type="javascript" ev:event="onmousedown">
  1190. <![CDATA[
  1191. setPopupMenu("grd_slidlist", false, "/root/init/popupmenu/item2", "name", "func");
  1192. ]]>
  1193. </script>
  1194. </datagrid>
  1195. <button id="btn_addcste" class="btn2_letter3" navindex="14" style="left:1084px; top:50px; width:53px; height:19px; ">
  1196. <caption>행추가</caption>
  1197. <script type="javascript" ev:event="DOMActivate">
  1198. <![CDATA[
  1199. fExeCsteAdd();
  1200. ]]>
  1201. </script>
  1202. </button>
  1203. <button id="btn_delcste" class="btn2_letter3" navindex="15" style="left:1140px; top:50px; width:53px; height:19px; ">
  1204. <caption>행삭제</caption>
  1205. <script type="javascript" ev:event="DOMActivate">
  1206. <![CDATA[
  1207. fExeCsteDel(grd_cstelist.row);
  1208. ]]>
  1209. </script>
  1210. </button>
  1211. <button id="btn_addslid" class="btn2_letter3" navindex="20" style="left:1084px; top:366px; width:53px; height:19px; ">
  1212. <caption>행추가</caption>
  1213. <script type="javascript" ev:event="DOMActivate">
  1214. <![CDATA[
  1215. fExeSlidAdd();
  1216. ]]>
  1217. </script>
  1218. </button>
  1219. <button id="btn_delslid" class="btn2_letter3" navindex="21" style="left:1140px; top:366px; width:53px; height:19px; ">
  1220. <caption>행삭제</caption>
  1221. <script type="javascript" ev:event="DOMActivate">
  1222. <![CDATA[
  1223. fExeSlideDel(grd_slidlist.row);
  1224. ]]>
  1225. </script>
  1226. </button>
  1227. <button id="btn_save" class="btn2_letter4" navindex="13" style="left:1017px; top:50px; width:64px; height:19px; ">
  1228. <caption>블럭저장</caption>
  1229. <script type="javascript" ev:event="DOMActivate">
  1230. <![CDATA[
  1231. fExeCsteSlidSave("C");
  1232. ]]>
  1233. </script>
  1234. </button>
  1235. <button id="btn_slidsave" class="btn2_letter6" navindex="19" style="left:995px; top:366px; width:86px; height:19px; ">
  1236. <caption>슬라이드저장</caption>
  1237. <script type="javascript" ev:event="DOMActivate">
  1238. <![CDATA[
  1239. fExeCsteSlidSave("S");
  1240. ]]>
  1241. </script>
  1242. </button>
  1243. <select1 id="combo1" ref="/root/hidden/slideqmtflag" navindex="17" visibility="hidden" appearance="minimal" style="left:710px; top:275px; width:95px; height:19px; ">
  1244. <choices>
  1245. <item>
  1246. <label>슬라이드</label>
  1247. <value>0</value>
  1248. </item>
  1249. <item>
  1250. <label>라벨지</label>
  1251. <value>1</value>
  1252. </item>
  1253. </choices>
  1254. </select1>
  1255. <input id="ipt_cstecnt" ref="/root/hidden/cstecnt" navindex="12" format="#,###" mask="exclude" showmask="true" style="left:760px; top:50px; width:25px; height:19px; "/>
  1256. <input id="ipt_slidcnt" ref="/root/hidden/slidcnt" navindex="18" format="#,###" mask="exclude" showmask="true" style="left:713px; top:366px; width:25px; height:19px; "/>
  1257. <object id="socketcste" clsid="{81e9de7e-90be-4958-bbda-ac731c05aba8}" visibility="hidden" style="left:325px; top:40px; width:35px; height:30px; ">
  1258. <!-- 소켓 받은 메시지 이벤트 -->
  1259. <script type="javascript" ev:event="OnReceive(nDataLength, szID)">
  1260. <![CDATA[
  1261. ]]>
  1262. </script>
  1263. <!-- 소켓 에러 이벤트 -->
  1264. <script type="javascript" ev:event="OnError(lError, szMsg)">
  1265. <![CDATA[
  1266. alert("Error code = " + lError+"\nError Message : "+szMsg);
  1267. socketcste.close(); // 소켓 닫기
  1268. isConnected = false; // 접속 여부 false
  1269. ]]>
  1270. </script>
  1271. <!-- 소켓 연결 이벤트 -->
  1272. <script type="javascript" ev:event="OnConnect(szID)">
  1273. <![CDATA[
  1274. isConnected = true; // 접속 여부 false
  1275. var sCsteNode = "/root/main/csteinfo/cstelist";
  1276. //------------------------------------------------------------------
  1277. for (var iRowNo=1; iRowNo <= getNodesetCount(sCsteNode); iRowNo++) {
  1278. if (model.getValue(sCsteNode+"["+iRowNo+"]/reprnt") == "true") {
  1279. //---------------------------------
  1280. // 신규와 삭제분은 발행하지 않는다.
  1281. if (model.getValue(sCsteNode+"["+iRowNo+"]/statflagcd") == "-") {
  1282. sSendMsg = "";
  1283. sSendMsg += model.getValue(sCsteNode+"["+iRowNo+"]/ptno") + "▦"; // 병리번호
  1284. sSendMsg += model.getValue(sCsteNode+"["+iRowNo+"]/dispptno") + "▦"; // 표시병리번호
  1285. sSendMsg += model.getValue(sCsteNode+"["+iRowNo+"]/spcacptseqno") + "▦"; // 검체일련번호
  1286. sSendMsg += model.getValue(sCsteNode+"["+iRowNo+"]/csteno") + "▦"; // 블럭번호
  1287. sSendMsg += "000" + "▦"; // 슬라이드번호
  1288. sSendMsg += model.getValue(sCsteNode+"["+iRowNo+"]/cstecnts") + "▦"; // 블럭내용
  1289. sSendMsg += model.getValue(sCsteNode+"["+iRowNo+"]/hopper") + "▦"; // Hopper번호
  1290. sSendMsg += "C" + "▩";
  1291. socketcste.sendString(sSendMsg); // 전송한다.
  1292. }
  1293. }
  1294. }
  1295. //-----------------------------
  1296. //model.removeNodeset(sCsteNode);
  1297. //----------
  1298. // 소켓 닫기
  1299. socketcste.close();
  1300. ]]>
  1301. </script>
  1302. <!-- 소켓 close 이벤트 -->
  1303. <script type="javascript" ev:event="OnClose(szID)">
  1304. <![CDATA[
  1305. isConnected = false; // 접속 여부 false
  1306. ]]>
  1307. </script>
  1308. </object>
  1309. <object id="socketslid" clsid="{81e9de7e-90be-4958-bbda-ac731c05aba8}" visibility="hidden" style="left:385px; top:40px; width:35px; height:30px; ">
  1310. <!-- 소켓 받은 메시지 이벤트 -->
  1311. <script type="javascript" ev:event="OnReceive(nDataLength, szID)">
  1312. <![CDATA[
  1313. ]]>
  1314. </script>
  1315. <!-- 소켓 에러 이벤트 -->
  1316. <script type="javascript" ev:event="OnError(lError, szMsg)">
  1317. <![CDATA[
  1318. alert("Error code = " + lError+"\nError Message : "+szMsg);
  1319. socketslid.close(); // 소켓 닫기
  1320. isConnected = false; // 접속 여부 false
  1321. ]]>
  1322. </script>
  1323. <!-- 소켓 연결 이벤트 -->
  1324. <script type="javascript" ev:event="OnConnect(szID)">
  1325. <![CDATA[
  1326. var iMaxRowCnt = 0;
  1327. var sCsteNode = "/root/main/csteinfo/cstelist";
  1328. var sSlidNode = "/root/main/slidinfo/slidlist";
  1329. var sMainNode = "/root/main/acptspc/acptspclist";
  1330. var iFindNo = grd_cstelist.findRow("true", 1, 1, true, true);
  1331. //--------------------------------------
  1332. iMaxRowCnt = getNodesetCount(sSlidNode);
  1333. for (var iRowNo=1; iRowNo <= iMaxRowCnt; iRowNo++) {
  1334. if (model.getValue(sSlidNode+"["+iRowNo+"]/reprnt") == "true") {
  1335. if (model.getValue(sSlidNode+"["+iRowNo+"]/statflagcd") == "-") {
  1336. // sSendMsg = "";
  1337. // sSendMsg += model.getValue(sSlidNode+"["+iRowNo+"]/ptno") + "▦"; // 병리번호
  1338. // sSendMsg += model.getValue(sSlidNode+"["+iRowNo+"]/dispptno") + "▦"; // 표시병리번호
  1339. // sSendMsg += model.getValue(sSlidNode+"["+iRowNo+"]/spcacptseqno") + "▦"; // 검체일련번호
  1340. // sSendMsg += model.getValue(sSlidNode+"["+iRowNo+"]/csteno") + "▦"; // 블럭번호
  1341. // sSendMsg += model.getValue(sSlidNode+"["+iRowNo+"]/slidno") + "▦"; // 슬라이드번호
  1342. // sSendMsg += model.getValue(sSlidNode+"["+iRowNo+"]/prtnblocnm") + "▦"; // 블럭내용
  1343. // sSendMsg += model.getValue(sSlidNode+"["+iRowNo+"]/cstecnts") + "▦"; // 슬라이드내용
  1344. //
  1345. // //------------------
  1346. // // 전송종료여부 설정
  1347. // if (iRowNo == iMaxRowCnt) {
  1348. // sSendMsg += "Y" + "▦";
  1349. // } else {
  1350. // sSendMsg += "N" + "▦";
  1351. // }
  1352. //
  1353. // //-------------------------------------------------------------------
  1354. // //sSendMsg += model.getValue(sSlidNode+"["+iRowNo+"]/relaptno") + "▦"; // 관련병리번호
  1355. //
  1356. // if (model.getValue("/root/init/prtflag") == "0") {
  1357. // sSendMsg += "SM" + "▩";
  1358. // } else {
  1359. // sSendMsg += "SB" + "▩";
  1360. // }
  1361. sSendMsg = "";
  1362. sSendMsg += model.getValue(sSlidNode+"["+iRowNo+"]/ptno") + "▦"; // 병리번호
  1363. sSendMsg += model.getValue(sSlidNode+"["+iRowNo+"]/dispptno") + "▦"; // 표시병리번호
  1364. sSendMsg += model.getValue(sSlidNode+"["+iRowNo+"]/spcacptseqno") + "▦"; // 검체일련번호
  1365. sSendMsg += model.getValue(sSlidNode+"["+iRowNo+"]/csteno") + "▦"; // 블럭번호
  1366. sSendMsg += model.getValue(sSlidNode+"["+iRowNo+"]/slidno") + "▦"; // 슬라이드번호
  1367. sSendMsg += model.getValue(sSlidNode+"["+iRowNo+"]/prtnblocnm") + "▦"; // 블럭내용
  1368. sSendMsg += model.getValue(sSlidNode+"["+iRowNo+"]/cstecnts") + "▦"; // 슬라이드내용
  1369. //------------------
  1370. // 전송종료여부 설정
  1371. if (iRowNo == iMaxRowCnt) {
  1372. sSendMsg += "Y" + "▦";
  1373. } else {
  1374. sSendMsg += "N" + "▦";
  1375. }
  1376. //--------------------------------------------------------------
  1377. sSendMsg += model.getValue(sMainNode+"["+grd_spclist.row+"]/pid") + "▦"; // 환자번호
  1378. sSendMsg += model.getValue(sMainNode+"["+grd_spclist.row+"]/patnm") + "▦"; // 환자명
  1379. if (model.getValue("/root/init/prtflag") == "0") {
  1380. sSendMsg += "SM" + "▩";
  1381. } else {
  1382. sSendMsg += "SB" + "▩";
  1383. }
  1384. //--------------------------
  1385. socketslid.sendString(sSendMsg); // 전송한다.
  1386. }
  1387. }
  1388. }
  1389. //----------
  1390. // 소켓 닫기
  1391. socketslid.close();
  1392. ]]>
  1393. </script>
  1394. <!-- 소켓 close 이벤트 -->
  1395. <script type="javascript" ev:event="OnClose(szID)">
  1396. <![CDATA[
  1397. isConnected = false; // 접속 여부 false
  1398. ]]>
  1399. </script>
  1400. </object>
  1401. <select1 id="combo2" ref="/root/init/blockind" navindex="19" appearance="minimal" style="left:740px; top:366px; width:90px; height:19px; ">
  1402. <choices>
  1403. <item>
  1404. <label>CELL블럭</label>
  1405. <value>0</value>
  1406. </item>
  1407. <item>
  1408. <label>가상블럭</label>
  1409. <value>1</value>
  1410. </item>
  1411. </choices>
  1412. <script type="javascript" ev:event="xforms-value-changed">
  1413. <![CDATA[
  1414. fExeBlocKindChange();
  1415. ]]>
  1416. </script>
  1417. </select1>
  1418. <select1 id="cmb_caeqlist" ref="/root/init/eqcaseqno" appearance="minimal" style="left:879px; top:50px; width:134px; height:19px; ">
  1419. <choices>
  1420. <itemset nodeset="/root/main/eqinfo/caeqlist">
  1421. <label ref="eqnm"/>
  1422. <value ref="eqseqno"/>
  1423. </itemset>
  1424. </choices>
  1425. </select1>
  1426. <select1 id="cmb_slideqlist" ref="/root/init/eqslidseqno" appearance="minimal" style="left:858px; top:366px; width:134px; height:19px; ">
  1427. <choices>
  1428. <itemset nodeset="/root/main/eqinfo/slideqlist">
  1429. <label ref="eqnm"/>
  1430. <value ref="eqseqno"/>
  1431. </itemset>
  1432. </choices>
  1433. </select1>
  1434. </group>
  1435. <group id="grp_btn" scroll="auto" style="left:0px; top:13px; width:1195px; height:27px; ">
  1436. <line id="line17" class="line_6" style="x1:0px; y1:25; x2:1194px; y2:25; "/>
  1437. <button id="btn_csteiss" class="btn6_letter8" navindex="22" style="left:0px; top:3; width:56px; height:22px; ">
  1438. <caption>Cassette재발행</caption>
  1439. <script type="javascript" ev:event="DOMActivate">
  1440. <![CDATA[
  1441. fExeCsteIss("R");
  1442. ]]>
  1443. </script>
  1444. </button>
  1445. <button id="btn_slidiss" class="btn6_letter7" navindex="23" style="left:130px; top:3px; width:116px; height:22px; ">
  1446. <caption>슬라이드재발행</caption>
  1447. <script type="javascript" ev:event="DOMActivate">
  1448. <![CDATA[
  1449. fExeSlidIss("R");
  1450. ]]>
  1451. </script>
  1452. </button>
  1453. </group>
  1454. </xhtml:body>
  1455. </xhtml:html>