SMLPR01800_검사결과이미지.xrw 31 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819
  1. <?xml version="1.0" encoding="EUC-KR"?>
  2. <!--
  3. * 제 목 : SMLPR01800_검사결과이미지.xrw
  4. * 설 명 : 검사결과이미지 화면
  5. * 설 계 자 : (주)에이씨케이 - 유동철
  6. * 작 성 자 : (주)에이씨케이 - 유동철
  7. * 작 성 일 : 2007.11.14
  8. * 수정이력 :
  9. * 기 타 :
  10. -->
  11. <?xml-stylesheet href="../../../com/commonweb/css/common.css" type="text/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>검사결과 이미지등록</xhtml:title>
  15. <model id="model1">
  16. <instance id="instance1">
  17. <root xmlns="">
  18. <main>
  19. <ptnoinfo>
  20. <ptnolist>
  21. <choi/>
  22. <instcd/>
  23. <ptno/>
  24. <dispptno/>
  25. <pid/>
  26. <patnm/>
  27. <testnmlist/>
  28. <rsltrgstdd/>
  29. <rsltrgstno/>
  30. <readdd/>
  31. <humspec/>
  32. </ptnolist>
  33. </ptnoinfo>
  34. <imginfo>
  35. <imglist>
  36. <instcd/>
  37. <pid/>
  38. <bizflagcd/>
  39. <ptno/>
  40. <rgstdd/>
  41. <rgsttm/>
  42. <rgstrid/>
  43. <rgstrnm/>
  44. <imgno/>
  45. <imgseqno/>
  46. <imgpath/>
  47. <rsltimg/>
  48. <dummy/>
  49. <exists/>
  50. <orgimgpath/>
  51. </imglist>
  52. </imginfo>
  53. </main>
  54. <send/>
  55. <init>
  56. <acptfromdd/>
  57. <acpttodd/>
  58. <refmthdcd/>
  59. <refval/>
  60. <ptnocode/>
  61. <fromyear/>
  62. <fromptno/>
  63. <toyear/>
  64. <toptno/>
  65. <sysdt>
  66. <sysdtinfo>
  67. <sysdd/>
  68. <systm/>
  69. </sysdtinfo>
  70. </sysdt>
  71. <ptnocd>
  72. <ptnocdlist>
  73. <instcd/>
  74. <ptnocd/>
  75. <ptnonm/>
  76. </ptnocdlist>
  77. </ptnocd>
  78. <imgsrc/>
  79. <popupmenu>
  80. <item>
  81. <nm>행삭제</nm>
  82. <funt>fExeDelRow</funt>
  83. </item>
  84. <item>
  85. <nm>행삽입</nm>
  86. <funt>fExeAppendRow</funt>
  87. </item>
  88. </popupmenu>
  89. </init>
  90. <hidden>
  91. </hidden>
  92. <message/>
  93. </root>
  94. </instance>
  95. <script type="javascript" src="../../../com/commonweb/js/common.js"/>
  96. <script type="javascript" src="../../../com/commonweb/js/tfHelper.js"/>
  97. <script type="javascript" src="../../../com/commonweb/js/stringHelper.js"/>
  98. <script type="javascript" src="../../../lis/commonweb/js/LPZ001.js"/>
  99. <script type="javascript" ev:event="xforms-ready">
  100. <![CDATA[
  101. fExeInitialize();
  102. //추가 박중규 2008.09.23
  103. //결과등록화면에서 parameter를 받기 위해서 추가.
  104. if (checkOpener()) { //opener 검사
  105. var param = opener.javascript.getParameter("opener_parameter_id"); //opener parameter value를 get
  106. if(param != "") { // opener parameter value가 있는 경우
  107. //parameter value를 이용하여 프로그램 수행
  108. condarray = param.split("▦");
  109. model.setValue("/root/init/refval", condarray[0]);
  110. model.setValue("/root/init/ptnocode", condarray[1]);
  111. model.setValue("/root/init/fromyear", condarray[2]);
  112. model.setValue("/root/init/fromptno", condarray[3]);
  113. model.setValue("/root/init/toyear", condarray[2]);
  114. model.setValue("/root/init/toptno", condarray[3]);
  115. if(model.getValue("/root/init/refval") != "" || model.getValue("/root/init/ptnocode") != "") {
  116. btn_sea.dispatch("DOMActivate");
  117. }
  118. }
  119. }
  120. ]]>
  121. </script>
  122. <submission id="TRLPZ00102" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" replace="instance" resultref="/root/init/sysdt/sysdtinfo"/>
  123. <submission id="TRLPZ00109" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" replace="instance" resultref="/root/init/ptnocd/ptnocdlist"/>
  124. <submission id="TRLPR01801" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" replace="instance" resultref="/root/main/ptnoinfo/ptnolist"/>
  125. <submission id="TRLPR01802" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" replace="instance" resultref="/root/main/imginfo/imglist"/>
  126. <submission id="TXLPR01801" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" replace="instance" resultref="/root/message"/>
  127. </model>
  128. <script type="javascript">
  129. <![CDATA[
  130. /* @group : 검사결과이미지 화면
  131. * @ver : 2007.11.15 (CMCDEV-0001)
  132. * @by : 유동철(ACK)
  133. * @-----------------------------------
  134. * @type : function
  135. * @access : public
  136. * @desc : 화면초기화 함수
  137. */
  138. function fExeInitialize() {
  139. var sCurDate = "";
  140. //--------------------------------------------------
  141. model.removeNodeset("/root/main/ptnoinfo/ptnolist");
  142. model.removeNodeset("/root/main/imginfo/imglist");
  143. //----------------
  144. // 시스템일자 조회
  145. model.removeNodeset("/root/send");
  146. model.makeValue("/root/send/instcd", getUserInfo("dutplceinstcd"));
  147. submit("TRLPZ00102", false);
  148. submit("TRLPZ00109");
  149. //------------------------------------------------------------
  150. sCurDate = model.getValue("/root/init/sysdt/sysdtinfo/sysdd");
  151. //------------
  152. // 초기값 설정
  153. model.makeValue("/root/init/acptfromdd", model.getValue("/root/init/sysdt/sysdtinfo/sysdd")); // 접수일자(From)
  154. model.makeValue("/root/init/acpttodd", model.getValue("/root/init/sysdt/sysdtinfo/sysdd")); // 접수일자(To)
  155. model.makeValue("/root/init/refmthdcd", "1"); // 검색방법(등록번호)
  156. model.makeValue("/root/init/refval", ""); // 검색값
  157. model.makeValue("/root/init/ptnocode", "");
  158. model.makeValue("/root/init/fromyear", sCurDate.substr(2,2));
  159. model.makeValue("/root/init/toyear", sCurDate.substr(2,2));
  160. model.makeValue("/root/init/fromptno", "");
  161. model.makeValue("/root/init/toptno", "");
  162. //-------------
  163. model.refresh();
  164. }
  165. /* @group : 검사결과이미지 화면
  166. * @ver : 2007.11.14 (CMCDEV-0001)
  167. * @by : 유동철(ACK)
  168. * @-----------------------------------
  169. * @type : function
  170. * @access : public
  171. * @desc : 접수목록 조회 처리 함수
  172. */
  173. function fGetPtNoList() {
  174. var sTemp = "";
  175. var sFromDD = model.getValue("/root/init/acptfromdd");
  176. var sToDD = model.getValue("/root/init/acpttodd");
  177. //------------------------------------------------
  178. if (model.getValue("/root/init/ptnocode") != "") {
  179. //------------------------------------------------
  180. if (model.getValue("/root/init/fromyear") == "") {
  181. model.makeValue("/root/init/fromyear", sFromDD.substr(2,2));
  182. } else {
  183. sTemp = model.getValue("/root/init/fromyear");
  184. model.makeValue("/root/init/fromyear", sTemp.getLeftPad(2, "0"));
  185. }
  186. //----------------------------------------------
  187. if (model.getValue("/root/init/toyear") == "") {
  188. model.makeValue("/root/init/toyear", sToDD.substr(2,2));
  189. } else {
  190. sTemp = model.getValue("/root/init/toyear");
  191. model.makeValue("/root/init/toyear", sTemp.getLeftPad(2, "0"));
  192. }
  193. //------------------------------------------------
  194. if (model.getValue("/root/init/fromptno") == "") {
  195. model.makeValue("/root/init/fromptno", "000000");
  196. } else {
  197. sTemp = model.getValue("/root/init/fromptno");
  198. model.makeValue("/root/init/fromptno", sTemp.getLeftPad(6, "0"));
  199. }
  200. //----------------------------------------------
  201. if (model.getValue("/root/init/toptno") == "") {
  202. model.makeValue("/root/init/toptno", "999999");
  203. } else {
  204. sTemp = model.getValue("/root/init/toptno");
  205. model.makeValue("/root/init/toptno", sTemp.getLeftPad(6, "0"));
  206. }
  207. }
  208. //--------------------------------------------
  209. sTemp = model.getValue("/root/init/ptnocode");
  210. //--------------------------------
  211. model.removeNodeset("/root/send");
  212. model.makeValue("/root/send/instcd", getUserInfo("dutplceinstcd"));
  213. model.makeValue("/root/send/acptfromdd", model.getValue("/root/init/acptfromdd"));
  214. model.makeValue("/root/send/acpttodd", model.getValue("/root/init/acpttodd"));
  215. model.makeValue("/root/send/refmthdcd", model.getValue("/root/init/refmthdcd"));
  216. model.makeValue("/root/send/refval", model.getValue("/root/init/refval"));
  217. model.makeValue("/root/send/ptnocode", sTemp.replace("-", ""));
  218. model.makeValue("/root/send/fromyear", model.getValue("/root/init/fromyear"));
  219. model.makeValue("/root/send/fromptno", model.getValue("/root/init/fromptno"));
  220. model.makeValue("/root/send/toyear", model.getValue("/root/init/toyear"));
  221. model.makeValue("/root/send/toptno", model.getValue("/root/init/toptno"));
  222. //-------------------
  223. if(submit("TRLPR01801")) {
  224. if(grd_ptnolist.rows == 2) {
  225. grd_ptnolist.row = 1;
  226. fExePtNoListChoi(1);
  227. }
  228. if(grd_imglist.rows == 2) {
  229. grd_imglist.row = 1;
  230. fExeImgListChoi(1);
  231. }
  232. }
  233. }
  234. /* @group : 검사결과이미지
  235. * @ver : 2007.11.14 (CMCDEV-0001)
  236. * @by : 유동철(ACK)
  237. * @-----------------------------------
  238. * @type : function
  239. * @access : public
  240. * @desc : 검색값을 입력하고 Enter키를 누를 경우 처리 Function
  241. */
  242. function fExeInputKey() {
  243. if(event.keyCode == 13) {
  244. model.makeValue("/root/init/refval", ipt_seaval.currentText);
  245. ipt_seaval.refresh();
  246. //-------------
  247. fGetPtNoList();
  248. }
  249. }
  250. /* @group : 검사결과이미지
  251. * @ver : 2007.11.16 (CMCDEV-0001)
  252. * @by : 유동철(ACK)
  253. * @-----------------------------------
  254. * @type : function
  255. * @access : public
  256. * @desc : 접수목록 선택 처리 Function
  257. */
  258. function fExePtNoListChoi(pRowNo) {
  259. //if(grd_ptnolist.row > 0 && grd_ptnolist.isCell(event.target) && grd_ptnolist.row >= grd_ptnolist.fixedRows) {
  260. // fExePtNoChoi(grd_ptnolist.row);
  261. //}
  262. if(pRowNo > 0 && pRowNo >= grd_ptnolist.fixedRows) {
  263. fExePtNoChoi(pRowNo);
  264. if(grd_imglist.rows == 2 && grd_ptnolist.isCell(event.target)) {
  265. fExeImgListChoi(1);
  266. }
  267. }
  268. }
  269. /* @group : 검사결과이미지
  270. * @ver : 2007.11.16 (CMCDEV-0001)
  271. * @by : 유동철(ACK)
  272. * @-----------------------------------
  273. * @type : function
  274. * @access : public
  275. * @desc : 접수 병리번호 선택 처리 Function
  276. */
  277. function fExePtNoChoi(pRow) {
  278. var iFindNo = 0;
  279. var sNode = "/root/main/ptnoinfo/ptnolist";
  280. //--------------------------
  281. if (grd_ptnolist.col != 1) {
  282. //-----------------------------------------------------
  283. for (var iNo=1; iNo <= getNodesetCount(sNode); iNo++) {
  284. model.setValue(sNode+"["+iNo+"]/choi", "false");
  285. }
  286. //----------------------------------------------
  287. model.setValue(sNode+"["+pRow+"]/choi", "true");
  288. } else {
  289. iFindNo = grd_ptnolist.findRow("true", 1, 1, false, false);
  290. if (iFindNo <= 0) {
  291. model.removeNodeset("/root/main/imginfo/imglist");
  292. img_src.src = "";
  293. img_src.refresh();
  294. grd_imglist.refresh();
  295. }
  296. }
  297. //----------------
  298. // 이미지목록 조회
  299. model.removeNodeset("/root/send");
  300. model.removeNodeset("/root/main/imginfo/imglist");
  301. grd_imglist.refresh();
  302. //--------------------------------------------------------------------
  303. model.makeValue("/root/send/instcd", getUserInfo("dutplceinstcd"));
  304. model.makeValue("/root/send/pid", model.getValue(sNode+"["+pRow+"]/pid"));
  305. model.makeValue("/root/send/ptno", model.getValue(sNode+"["+pRow+"]/ptno"));
  306. model.makeValue("/root/send/bizflagcd", "'PR'");
  307. model.makeValue("/root/send/imgno", "0");
  308. model.makeValue("/root/send/imgseqno", "0");
  309. submit("TRLPR01802");
  310. }
  311. /* @group : 검사결과이미지
  312. * @ver : 2007.11.16 (CMCDEV-0001)
  313. * @by : 유동철(ACK)
  314. * @-----------------------------------
  315. * @type : function
  316. * @access : public
  317. * @desc : 이미지목록 선택 처리 Function
  318. */
  319. function fExeImgListChoi(pRowNo) {
  320. //if(grd_imglist.row > 0 && grd_imglist.isCell(event.target) && grd_imglist.row >= grd_imglist.fixedRows) {
  321. // fExeImgChoi(grd_imglist.row);
  322. //}
  323. if(pRowNo > 0 && pRowNo >= grd_imglist.fixedRows) {
  324. fExeImgChoi(pRowNo);
  325. }
  326. }
  327. /* @group : 검사결과이미지
  328. * @ver : 2007.11.16 (CMCDEV-0001)
  329. * @by : 유동철(ACK)
  330. * @-----------------------------------
  331. * @type : function
  332. * @access : public
  333. * @desc : 이미지 선택 처리 Function
  334. */
  335. function fExeImgChoi(pRow) {
  336. //----------------------
  337. // 찾기버튼 클릭 시 처리
  338. if (grd_imglist.col == "9")
  339. {
  340. fGetAppImg(pRow);
  341. } else {
  342. fExeImgDisp(pRow);
  343. }
  344. }
  345. /* @group : 검사결과이미지
  346. * @ver : 2007.11.16 (CMCDEV-0001)
  347. * @by : 유동철(ACK)
  348. * @-----------------------------------
  349. * @type : function
  350. * @access : public
  351. * @desc : 이미지 선택 처리 Function
  352. */
  353. function fGetAppImg(pRow) {
  354. var sFileName = openImageFileDialog();
  355. //--------------------------------
  356. if (sFileName == "") return false;
  357. //----------------------------
  358. fExeChngImg(sFileName, pRow);
  359. }
  360. /* @group : 검사결과이미지
  361. * @ver : 2007.11.16 (CMCDEV-0001)
  362. * @by : 유동철(ACK)
  363. * @-----------------------------------
  364. * @type : function
  365. * @access : public
  366. * @desc : 이미지 보여주기 처리 함수
  367. */
  368. function fExeChngImg(imgsrc, pRow) {
  369. setImageRefInstance("/root/main/imginfo/imglist["+pRow+"]/rsltimg");
  370. setImageRefInstance("/root/init/imgsrc");
  371. img_source.src = imgsrc;
  372. var imgData = img_source.getbase64data();
  373. //var imgSize = getImageSize(imgsrc);
  374. model.makeValue("/root/main/imginfo/imglist["+pRow+"]/rsltimg", imgData ,true);
  375. model.makeValue("/root/init/imgsrc", imgData ,true);
  376. model.makeValue("/root/main/imginfo/imglist["+pRow+"]/imgpath", imgsrc);
  377. /* -----------------------------------------
  378. * 사진 사이즈를 화면에 맞추기 위해서
  379. * style : stretch 추가
  380. img_src.attribute("width") = null;
  381. img_src.attribute("height") = null;
  382. grp_img.attribute("overflow") = "scroll";
  383. ------------------------------------------ */
  384. img_src.refresh();
  385. model.refresh();
  386. }
  387. /* @group : 검사결과이미지
  388. * @ver : 2007.11.16 (CMCDEV-0001)
  389. * @by : 유동철(ACK)
  390. * @-----------------------------------
  391. * @type : function
  392. * @access : public
  393. * @desc : 선택 이미지 보여주기 처리 함수
  394. */
  395. function fExeImgDisp(pRow) {
  396. setImageRefInstance("/root/main/imginfo/imglist["+pRow+"]/rsltimg");
  397. setImageRefInstance("/root/init/imgsrc");
  398. model.makeValue("/root/init/imgsrc", model.getValue("/root/main/imginfo/imglist["+pRow+"]/rsltimg"));
  399. /* ---------------------------------
  400. img_src.attribute("width") = null;
  401. img_src.attribute("height") = null;
  402. img_src.refresh();
  403. grp_img.attribute("overflow") = "scroll";
  404. --------------------------------- */
  405. img_src.refresh();
  406. model.refresh();
  407. }
  408. /* @group : 검사결과이미지
  409. * @ver : 2007.11.16 (CMCDEV-0001)
  410. * @by : 유동철(ACK)
  411. * @-----------------------------------
  412. * @type : function
  413. * @access : public
  414. * @desc : 이미지 그리드 행추가 처리 함수
  415. */
  416. function fExeAddRow() {
  417. for (var iNo=1; iNo <= getNodesetCount("/root/main/ptnoinfo/ptnolist"); iNo++) {
  418. if(model.getValue("/root/main/ptnoinfo/ptnolist["+ iNo +"]/choi") == "true") {
  419. if((model.getValue("/root/main/ptnoinfo/ptnolist["+ iNo +"]/readdd") == "") || (model.getValue("/root/main/ptnoinfo/ptnolist["+ iNo +"]/readdd") == "-")) {
  420. } else {
  421. messageBox("최종진단된 결과이미지는 수정할 수 없습니다.", "E999");
  422. return;
  423. }
  424. }
  425. }
  426. grd_imglist.addRow();
  427. fExeImgRowSet(getNodesetCount("/root/main/imginfo/imglist"));
  428. }
  429. /* @group : 검사결과이미지
  430. * @ver : 2007.11.16 (CMCDEV-0001)
  431. * @by : 유동철(ACK)
  432. * @-----------------------------------
  433. * @type : function
  434. * @access : public
  435. * @desc : 이미지 그리드 행삽입 처리 함수
  436. */
  437. function fExeAppendRow() {
  438. for (var iNo=1; iNo <= getNodesetCount("/root/main/ptnoinfo/ptnolist"); iNo++) {
  439. if(model.getValue("/root/main/ptnoinfo/ptnolist["+ iNo +"]/choi") == "true") {
  440. if((model.getValue("/root/main/ptnoinfo/ptnolist["+ iNo +"]/readdd") == "") || (model.getValue("/root/main/ptnoinfo/ptnolist["+ iNo +"]/readdd") == "-")) {
  441. } else {
  442. messageBox("최종진단된 결과이미지는 수정할 수 없습니다.", "E999");
  443. return;
  444. }
  445. }
  446. }
  447. grd_imglist.insertRow(grd_imglist.row, "after");
  448. fExeImgRowSet(grd_imglist.row);
  449. }
  450. /* @group : 검사결과이미지
  451. * @ver : 2007.11.19 (CMCDEV-0001)
  452. * @by : 유동철(ACK)
  453. * @-----------------------------------
  454. * @type : function
  455. * @access : public
  456. * @desc : 이미지 그리드 정보 설정 처리 함수
  457. */
  458. function fExeImgRowSet(pRowNo) {
  459. var iNo = 0;
  460. var iFindNo = grd_ptnolist.findRow("true", 1, 1, false, false);
  461. var sNode = "/root/main/imginfo/imglist";
  462. var sSrcNode = "/root/main/ptnoinfo/ptnolist";
  463. //----------------
  464. if (pRowNo == 1) {
  465. model.makeValue(sNode+"["+pRowNo+"]/instcd", getUserInfo("dutplceinstcd"));
  466. model.makeValue(sNode+"["+pRowNo+"]/pid", model.getValue(sSrcNode+"["+iFindNo+"]/pid"));
  467. model.makeValue(sNode+"["+pRowNo+"]/bizflagcd", "PR");
  468. model.makeValue(sNode+"["+pRowNo+"]/ptno", model.getValue(sSrcNode+"["+iFindNo+"]/ptno"));
  469. model.makeValue(sNode+"["+pRowNo+"]/rgstdd", "-");
  470. model.makeValue(sNode+"["+pRowNo+"]/rgsttm", "-");
  471. model.makeValue(sNode+"["+pRowNo+"]/rgstrid", "-");
  472. model.makeValue(sNode+"["+pRowNo+"]/rgstrnm", "-");
  473. model.makeValue(sNode+"["+pRowNo+"]/imgno", "0");
  474. model.makeValue(sNode+"["+pRowNo+"]/imgseqno", "0");
  475. model.makeValue(sNode+"["+pRowNo+"]/imgpath", " ");
  476. model.makeValue(sNode+"["+pRowNo+"]/rsltimg", " ");
  477. model.makeValue(sNode+"["+pRowNo+"]/exists", "N");
  478. model.makeValue(sNode+"["+pRowNo+"]/orgimgpath", "");
  479. } else {
  480. //-----------------------
  481. iNo = Number(pRowNo) - 1;
  482. //-----------------------------------------------------------------------------------------
  483. model.makeValue(sNode+"["+pRowNo+"]/instcd", model.getValue(sNode+"["+iNo+"]/instcd"));
  484. model.makeValue(sNode+"["+pRowNo+"]/pid", model.getValue(sNode+"["+iNo+"]/pid"));
  485. model.makeValue(sNode+"["+pRowNo+"]/bizflagcd", model.getValue(sNode+"["+iNo+"]/bizflagcd"));
  486. model.makeValue(sNode+"["+pRowNo+"]/ptno", model.getValue(sNode+"["+iNo+"]/ptno"));
  487. model.makeValue(sNode+"["+pRowNo+"]/rgstdd", model.getValue("/root/init/sysdt/sysdtinfo/sysdd"));
  488. model.makeValue(sNode+"["+pRowNo+"]/rgsttm", model.getValue("/root/init/sysdt/sysdtinfo/systm"));
  489. model.makeValue(sNode+"["+pRowNo+"]/rgstrid", getUserInfo("userid"));
  490. model.makeValue(sNode+"["+pRowNo+"]/rgstrnm", getUserInfo("usernm"));
  491. model.makeValue(sNode+"["+pRowNo+"]/imgno", model.getValue(sNode+"["+iNo+"]/imgno"));
  492. model.makeValue(sNode+"["+pRowNo+"]/imgseqno", "0");
  493. model.makeValue(sNode+"["+pRowNo+"]/imgpath", " ");
  494. model.makeValue(sNode+"["+pRowNo+"]/rsltimg", " ");
  495. model.makeValue(sNode+"["+pRowNo+"]/exists", "N");
  496. model.makeValue(sNode+"["+pRowNo+"]/orgimgpath", "");
  497. }
  498. //-----------------
  499. fGetAppImg(pRowNo);
  500. }
  501. /* @group : 검사결과이미지
  502. * @ver : 2007.11.16 (CMCDEV-0001)
  503. * @by : 유동철(ACK)
  504. * @-----------------------------------
  505. * @type : function
  506. * @access : public
  507. * @desc : 이미지 그리드 행삭제 처리 함수
  508. */
  509. function fExeDelRow() {
  510. for (var iNo=1; iNo <= getNodesetCount("/root/main/ptnoinfo/ptnolist"); iNo++) {
  511. if(model.getValue("/root/main/ptnoinfo/ptnolist["+ iNo +"]/choi") == "true") {
  512. if((model.getValue("/root/main/ptnoinfo/ptnolist["+ iNo +"]/readdd") == "") || (model.getValue("/root/main/ptnoinfo/ptnolist["+ iNo +"]/readdd") == "-")) {
  513. } else {
  514. messageBox("최종진단된 결과이미지는 수정할 수 없습니다.", "E999");
  515. return;
  516. }
  517. }
  518. }
  519. sNode = "/root/main/imginfo/imglist";
  520. //----------------------------------------------------------------
  521. if (model.getValue(sNode+"["+grd_imglist.row+"]/exists") == "N") {
  522. grd_imglist.deleteRow(grd_imglist.row);
  523. } else {
  524. model.setValue(sNode+"["+grd_imglist.row+"]/exists", "D");
  525. grd_imglist.addStatus(grd_imglist.row, "delete");
  526. grd_imglist.rowstyle(grd_imglist.row, "data", "background-color") = "#ff7c80";
  527. //grd_imglist.refresh();
  528. }
  529. }
  530. /* @group : 검사결과이미지
  531. * @ver : 2007.11.16 (CMCDEV-0001)
  532. * @by : 유동철(ACK)
  533. * @-----------------------------------
  534. * @type : function
  535. * @access : public
  536. * @desc : 이미지 저장 처리 함수
  537. */
  538. function fExeImgSave() {
  539. var re = /\\/g; // i:1회실행, g:모두실행, gi:전역실행(대소문자 안가림)
  540. var iRowNo = 1;
  541. var sNode = "/root/main/imginfo/imglist";
  542. var sImgPath = "";
  543. var sRowNo = grd_ptnolist.row;
  544. for (var iNo=1; iNo <= getNodesetCount("/root/main/ptnoinfo/ptnolist"); iNo++) {
  545. if(model.getValue("/root/main/ptnoinfo/ptnolist["+ iNo +"]/choi") == "true") {
  546. if((model.getValue("/root/main/ptnoinfo/ptnolist["+ iNo +"]/readdd") == "") || (model.getValue("/root/main/ptnoinfo/ptnolist["+ iNo +"]/readdd") == "-")) {
  547. } else {
  548. messageBox("최종진단된 결과이미지는 수정할 수 없습니다.", "E999");
  549. return;
  550. }
  551. }
  552. }
  553. //추가 박중규 2008.09.25
  554. if(sRowNo < 1) {
  555. messageBox("접수목록에서 검사를 선택하여 주세요.", "E999");
  556. return;
  557. }
  558. //------------------------
  559. grd_imglist.clearStatus();
  560. for (var iNo=1; iNo <= getNodesetCount(sNode); iNo++) {
  561. //----------------------------------------------------
  562. if (model.getValue(sNode+"["+iNo+"]/exists") == "D") {
  563. grd_imglist.addStatus(iNo, "delete");
  564. } else {
  565. grd_imglist.addStatus(iNo, "insert");
  566. model.setValue(sNode+"["+iNo+"]/imgseqno", iRowNo++);
  567. }
  568. //---------------------------------------------------
  569. //sImgPath = model.getValue(sNode+"["+iNo+"]/imgpath");
  570. //model.setValue(sNode+"["+iNo+"]/imgpath", sImgPath.replace(re, "\"));
  571. }
  572. //--------------------------------
  573. model.removeNodeset("/root/send");
  574. model.makeValue("/root/send/imglist", grd_imglist.getUpdateData());
  575. //-------------------------
  576. if (submit("TXLPR01801")) {
  577. fExePtNoChoi(sRowNo);
  578. model.makeValue("/root/init/imgsrc", "");
  579. img_src.refresh();
  580. }
  581. }
  582. ]]>
  583. </script>
  584. </xhtml:head>
  585. <xhtml:body visibility="visible" style="margin-left:8; margin-top:0; margin-right:8; margin-bottom:0; ">
  586. <group id="grp_btn" style="left:0px; top:13; width:1195px; height:27px; ">
  587. <line id="line10" class="line_6" style="x1:0px; y1:25; x2:1194px; y2:25; "/>
  588. <button id="btn_save" class="btn4_letter2" navindex="7" style="left:1139; top:3; width:56px; height:22px; ">
  589. <caption>저장</caption>
  590. <script type="javascript" ev:event="DOMActivate">
  591. <![CDATA[
  592. fExeImgSave();
  593. ]]>
  594. </script>
  595. </button>
  596. </group>
  597. <group id="grp_tle" style="left:0px; top:0px; width:1195px; height:13px; ">
  598. <caption id="caption6" class="tit_1" style="left:0px; top:0px; width:220px; height:14px; ">검사결과 이미지등록</caption>
  599. </group>
  600. <group id="grp_biz" style="left:0; top:40; width:1195; height:744; ">
  601. <caption id="caption4" class="tit_2" style="left:5px; top:55px; width:146px; height:14px; ">접수목록</caption>
  602. <line id="line1" class="line_1" style="x1:0px; y1:70px; x2:410px; y2:70px; "/>
  603. <group id="group2" style="left:0px; top:10px; width:1195px; height:35px; vertical-align:top; ">
  604. <shape id="roundrect1" class="roundrect_search" appearance="roundrect" ellipsewidth="10" ellipseheight="10" style="left:0px; top:0px; width:1194px; height:35px; background-color:#fffbf2; border-color:#ffd799; "/>
  605. <line id="line13" class="line_4" style="x1:1108px; y1:7px; x2:1108px; y2:29px; border-color:#ffe4bb; border-left-style:solid; "/>
  606. <input id="ipt_seaval" ref="/root/init/refval" class="input_search" navindex="6" maxlength="10" style="left:617px; top:8px; width:98px; height:19px; ">
  607. <script type="javascript" ev:event="onkeypress">
  608. <![CDATA[
  609. fExeInputKey();
  610. ]]>
  611. </script>
  612. </input>
  613. <caption id="caption3" class="search_name" style="left:526px; top:9px; width:86px; height:17px; ">등록번호 :</caption>
  614. <caption id="caption5" class="search_no_b" style="left:979px; top:8px; width:12px; height:17px; ">~</caption>
  615. <button id="btn_sea" class="btn1_letter2" navindex="10" style="left:1123px; top:7px; width:56px; height:22px; background-image:../../../com/commonweb/images/btn1_letter2.gif; ">
  616. <caption>조회</caption>
  617. <script type="javascript" ev:event="DOMActivate">
  618. <![CDATA[
  619. fGetPtNoList();
  620. ]]>
  621. </script>
  622. </button>
  623. <input id="ipt_cnclfromdd" ref="/root/init/acptfromdd" class="input_s_essential" navindex="8" inputtype="date" format="yyyy-mm-dd" mask="exclude" showmask="true" style="left:876px; top:8px; width:100px; height:19px; "/>
  624. <input id="ipt_cncltodd" ref="/root/init/acpttodd" class="input_s_essential" navindex="9" inputtype="date" format="yyyy-mm-dd" mask="exclude" showmask="true" style="left:995px; top:8px; width:100px; height:19px; "/>
  625. <select1 id="cbo_ptnocd" ref="/root/init/ptnocode" navindex="1" appearance="minimal" editmode="search" style="left:109px; top:8px; width:156px; height:19px; ">
  626. <choices>
  627. <itemset nodeset="/root/init/ptnocd/ptnocdlist">
  628. <label ref="ptnonm"/>
  629. <value ref="ptnocd"/>
  630. </itemset>
  631. </choices>
  632. </select1>
  633. <input id="ipt_fromptno" ref="/root/init/fromptno" class="text_center" navindex="3" maxlength="6" style="left:298px; top:8px; width:50px; height:19px; "/>
  634. <caption id="caption1" class="search_name" style="left:15px; top:9px; width:90px; height:17px; ">병리번호 :</caption>
  635. <caption id="caption7" class="search_no_b" style="left:351px; top:8px; width:12px; height:17px; ">~</caption>
  636. <input id="input1" ref="/root/init/toptno" class="text_center" navindex="5" maxlength="6" style="left:396px; top:8px; width:50px; height:19px; "/>
  637. <input id="input2" ref="/root/init/toyear" class="text_center" navindex="4" maxlength="2" style="left:366px; top:8px; width:27px; height:19px; "/>
  638. <input id="ipt_fromyear" ref="/root/init/fromyear" class="text_center" navindex="2" maxlength="2" style="left:268px; top:8px; width:27px; height:19px; "/>
  639. <caption id="cap_refdd" class="search_name" style="left:787px; top:9px; width:86px; height:17px; ">접수일자 :</caption>
  640. </group>
  641. <datagrid id="grd_ptnolist" nodeset="/root/main/ptnoinfo/ptnolist" class="datagrid2" caption="선&#xA;택^기관코드^병리번호^병리번호^등록번호^환자명^검사명^인종/민족^rsltrgstdd^rsltrgstno^readdd" colsep="^" colwidth="26, 0, 0, 80, 65, 55, 124, 100, 0, 0, 0" explorerbar="sortshow" mergecellsfixedrows="bycolrec" rowheader="seq" rowsep="|" navindex="11" style="left:0px; top:75px; width:410px; height:390px; ">
  642. <col ref="choi" type="checkbox"/>
  643. <col ref="instcd"/>
  644. <col ref="ptno"/>
  645. <col class="text_center" ref="dispptno"/>
  646. <col class="text_center" ref="pid"/>
  647. <col class="text_center" ref="patnm"/>
  648. <col ref="testnmlist"/>
  649. <col ref="humspec"/>
  650. <col class="text_center" ref="rsltrgstdd"/>
  651. <col class="text_center" ref="rsltrgstno"/>
  652. <col ref="readdd"/>
  653. <script type="javascript" ev:event="onaftersort">
  654. <![CDATA[
  655. grd_ptnolist.gridToInstance();
  656. ]]>
  657. </script>
  658. <script type="javascript" ev:event="onclick">
  659. <![CDATA[
  660. fExePtNoListChoi(grd_ptnolist.row);
  661. ]]>
  662. </script>
  663. </datagrid>
  664. <caption id="caption2" class="tit_2" style="left:0px; top:480px; width:146px; height:13px; ">이미지목록</caption>
  665. <caption id="caption8" class="tit_2" style="left:418px; top:55px; width:146px; height:13px; ">이미지</caption>
  666. <line id="line3" class="line_1" style="x1:414px; y1:69px; x2:1194px; y2:69px; "/>
  667. <button id="btn_delrow" class="btn2_letter3" navindex="11" style="left:357px; top:474px; width:53px; height:19px; ">
  668. <caption>행삭제</caption>
  669. <script type="javascript" ev:event="DOMActivate">
  670. <![CDATA[
  671. fExeDelRow();
  672. ]]>
  673. </script>
  674. </button>
  675. <button id="btn_addrow" class="btn2_letter3" navindex="11" style="left:302px; top:474px; width:53px; height:19px; ">
  676. <caption>행추가</caption>
  677. <script type="javascript" ev:event="DOMActivate">
  678. <![CDATA[
  679. fExeAddRow();
  680. ]]>
  681. </script>
  682. </button>
  683. <img id="img_source" visibility="hidden" style="left:775px; top:50px; width:40px; height:20px; background-stretch:stretch; border-style:solid; "/>
  684. <group id="grp_img" style="left:415px; top:73px; width:780px; height:664px; background-stretch:no-stretch; ">
  685. <img id="img_src" ref="/root/init/imgsrc" style="left:0px; top:1px; width:778px; height:660px; background-stretch:stretch; border-style:solid; "/>
  686. </group>
  687. <datagrid id="grd_imglist" nodeset="/root/main/imginfo/imglist" caption="instcd^pid^bizflagcd^ptno^등록일자^등록시간^등록자ID^등록자^찾기^imgno^imgseqno^파일명^rsltimg^caption1^caption2" colsep="^" colwidth="0, 0, 0, 0, 0, 70, 60, 70, 35, 0, 0, 490, 0, 0, 0" mergecellsfixedrows="bycolrec" rowheader="update" rowsep="|" style="left:0px; top:500px; width:410px; height:235px; ">
  688. <col ref="instcd"/>
  689. <col ref="pid"/>
  690. <col ref="bizflagcd"/>
  691. <col ref="ptno"/>
  692. <col ref="rgstdd"/>
  693. <col ref="rgsttm" style="text-align:center; "/>
  694. <col ref="rgstrid" style="text-align:center; "/>
  695. <col ref="rgstrnm" style="text-align:center; "/>
  696. <col ref="dummy" style="background-image:../../../com/commonweb/images/icon_search.gif; background-position:center; "/>
  697. <col ref="imgno"/>
  698. <col ref="imgseqno"/>
  699. <col ref="imgpath"/>
  700. <col ref="rsltimg"/>
  701. <col ref="exists"/>
  702. <col ref="orgimgpath"/>
  703. <script type="javascript" ev:event="onclick">
  704. <![CDATA[
  705. for (var iNo=1; iNo <= getNodesetCount("/root/main/ptnoinfo/ptnolist"); iNo++) {
  706. if(model.getValue("/root/main/ptnoinfo/ptnolist["+ iNo +"]/choi") == "true") {
  707. if((model.getValue("/root/main/ptnoinfo/ptnolist["+ iNo +"]/readdd") == "") || (model.getValue("/root/main/ptnoinfo/ptnolist["+ iNo +"]/readdd") == "-")) {
  708. } else {
  709. messageBox("최종진단된 결과이미지는 수정할 수 없습니다.", "E999");
  710. return;
  711. }
  712. }
  713. }
  714. fExeImgListChoi(grd_imglist.row);
  715. ]]>
  716. </script>
  717. <script type="javascript" ev:event="onmousedown">
  718. <![CDATA[
  719. setPopupMenu("grd_imglist", false, "/root/init/popupmenu/item", "nm", "funt");
  720. ]]>
  721. </script>
  722. <script type="javascript" ev:event="DOMFocusOut">
  723. <![CDATA[
  724. initPopupMenu();
  725. ]]>
  726. </script>
  727. </datagrid>
  728. <line id="line2" class="line_1" style="x1:0px; y1:495px; x2:410px; y2:495px; "/>
  729. </group>
  730. </xhtml:body>
  731. </xhtml:html>