SPPIZ01700_원외처방특정내역상세관리.xrw 31 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637
  1. <?xml version="1.0" encoding="EUC-KR"?>
  2. <!--
  3. * @(#)SPPIZ01700_원외처방특정내역상세관리.xrw
  4. * 수정이력
  5. * - 2007.10.08 / 최초작성 / 박지욱
  6. -->
  7. <?xml-stylesheet type="text/css" href="../../../com/commonweb/css/common.css" ?>
  8. <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">
  9. <xhtml:head>
  10. <xhtml:title>원외처방 특정내역 상세관리</xhtml:title>
  11. <model id="model1">
  12. <instance id="instance1">
  13. <root xmlns="">
  14. <main>
  15. <item1>
  16. <clsp>
  17. <flag/>
  18. <snglcalcscorcd/>
  19. <clopdd/>
  20. <clopno/>
  21. <clodseqno/>
  22. <edilnno/>
  23. <spclcd/>
  24. <detldesc/>
  25. <spclspec/>
  26. <spclformat/>
  27. <rownum/>
  28. <cdnm/>
  29. <unitflag/>
  30. <selectedrow/>
  31. <list/>
  32. </clsp>
  33. </item1>
  34. </main>
  35. <send>
  36. <unitflag/>
  37. </send>
  38. <init>
  39. <P0117list>
  40. <P0117>
  41. <cdid/>
  42. <cdnm/>
  43. <detldesc/>
  44. <dispseq/>
  45. <cdval/>
  46. <minval/>
  47. <maxval/>
  48. <cdengabbrnm/>
  49. </P0117>
  50. </P0117list>
  51. <P0117sublist/>
  52. </init>
  53. <hidden>
  54. <clsp>
  55. <cond>
  56. <flag/>
  57. <snglcalcscorcd/>
  58. <clopdd/>
  59. <clopno/>
  60. <edilnno/>
  61. <spclcd/>
  62. <detldesc/>
  63. <spclspec/>
  64. <spclformat/>
  65. <rownum/>
  66. <cdnm/>
  67. <unitflag/>
  68. <list/>
  69. </cond>
  70. </clsp>
  71. <sppiz00700>
  72. <cond>
  73. <judgrid/>
  74. <memoflag/>
  75. <memocls/>
  76. <ediitem1/>
  77. <memo/>
  78. </cond>
  79. <rslt>
  80. <memocd/>
  81. <memo/>
  82. </rslt>
  83. </sppiz00700>
  84. <appflag/>
  85. </hidden>
  86. </root>
  87. </instance>
  88. <script type="javascript" ev:event="xforms-ready">
  89. <![CDATA[
  90. fInitialize(); // 화면을 초기화한다.
  91. fCheckAuth(); // 화면 권한을 설정한다.
  92. ]]>
  93. </script>
  94. <submission id="TRPIZ00501" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" resultref="/root/init/P0117list"/>
  95. <submission id="TRPAM00105" mediatype="application/x-www-form-urlencoded" method="post"/>
  96. </model>
  97. <script type="javascript" src="../../../com/commonweb/js/common.js"/>
  98. <script type="javascript" src="../../../com/commonweb/js/stringHelper.js"/>
  99. <script type="javascript" src="../../../com/commonweb/js/tfHelper.js"/>
  100. <script type="javascript" src="../../../com/basiccodeweb/js/ZBC001.js"/>
  101. <script type="javascript" src="../../../pam/pamcomnweb/js/PAM001.js"/>
  102. <script type="javascript">
  103. <![CDATA[
  104. // 화면 권한을 설정한다.
  105. function fCheckAuth() {
  106. /*
  107. if (getAuth() == "") { // (common.js) 현재 화면의 권한 정보를 확인
  108. // 메뉴에서 열리는 화면이 아닌 경우 메뉴가 없는 Local Test를 위해 임시로 설정함
  109. model.setValue("/root/hidden/properties/auth", "10000000"); // R권한만 있는 경우
  110. }
  111. */
  112. var xAuth = !checkAuth("X");
  113. cmb_spclcd.disabled = xAuth; // 특정코드 (CD) Combo
  114. tar_spclspec.disabled = xAuth; // 특정내역 TextArea
  115. grd_clsplist.disabled = xAuth;
  116. btn_confirm.disabled = xAuth; // 확인
  117. btn_delete.disabled = xAuth; // 삭제
  118. btn_alter.disabled = xAuth;
  119. btn_add.disabled = xAuth;
  120. btn_memohistory.disabled = xAuth;
  121. btn_memohistory_drug.disabled = xAuth;
  122. }
  123. // 화면을 초기화한다.
  124. function fInitialize() {
  125. if (checkOpener()) { // (common.js) 자신을 Open한 opener의 현재 UID가 자신을 open한 시점의 UID와 비교하여 변경되었는지 여부를 반환
  126. model.removenode("/root/main/item1/clsp");
  127. model.makeNode("/root/main/item1/clsp");
  128. model.copyNode("/root/main/item1/clsp", "/root/hidden/clsp/cond");
  129. // opener에서 특정내역 단위구분을 전달하기 않은 경우를 위해 node를 생성한다.
  130. model.makeNode("/root/main/item1/clsp/unitflag");
  131. // 특정목록 row를 선택할 때 이전 편집 내용을 자동으로 설정하기 위해 이전에 선택된 row를 기억한다.
  132. model.makeNode("/root/main/item1/clsp/selectedrow");
  133. var unitflag = model.getValue("/root/main/item1/clsp/unitflag");
  134. // 공통코드를 조회한다.
  135. //model.setValue("/root/send/unitflag", unitflag);
  136. pamfGetCodeList(new Array("P0117"), new Array("/root/init/P0117sublist"));
  137. submit("TRPIZ00501");
  138. if (unitflag == "M") {
  139. btn_memohistory.visible = false;
  140. grd_clsplist.colHidden(grd_clsplist.colRef("snglcalcscorcd")) = true;
  141. grd_clsplist.colHidden(grd_clsplist.colRef("edilnno")) = true;
  142. }
  143. grd_clsplist.rebuild();
  144. // opener에서 선택한 row를 설정한다.
  145. var row = model.getValue("/root/main/item1/clsp/rownum");
  146. for (var i = 1; i < grd_clsplist.rows; i++) {
  147. if (row == model.getValue("/root/main/item1/clsp/list["+ i +"]/rownum") ) {
  148. grd_clsplist.row = i;
  149. model.setValue("/root/main/item1/clsp/selectedrow", i);
  150. }
  151. }
  152. } else {
  153. model.removeNodeset("/root/main/item1/clsp/list");
  154. // 공통코드를 조회한다.
  155. submit("TRPIZ00501");
  156. // // (ZBC001.js) com.ZBCMCODE에서 기초코드 값을 가져와서 Combo 컨트롤 item으로 설정하기 위해 사용한다.
  157. // zbcfGetCodeList(
  158. // new Array("P0117"),
  159. // new Array("/root/init/P0117list" ),
  160. // false ); // minimum을 'false'로 설정한 경우에는 코드의 모든속성을 가져온다.
  161. // messageBox("상위화면이 변경되어 데이터를 초기화 할 수", "I004"); ///상위화면이 변경되어 데이터를 초기화 할 수 없습니다.
  162. }
  163. model.setFocus("tar_spclspec");
  164. }
  165. // SPPIZ00700_심사Comment조회.xrw 호출
  166. function fGetJudgComment(memocls) {
  167. // memoflag - 메모구분(1:심사자메모, 2:EDI메모, 3:줄단위메모, 4:타부서전달)
  168. // memocls - 메모분류(01:약, 02:주사, 03:처치, 04:검사, 99:기타)
  169. var unitflag = model.getValue("/root/main/item1/clsp/unitflag");
  170. var memoflag = "";
  171. var memo = "";
  172. if (unitflag == "M") { // 명세서 단위인 경우 2:EDI메모
  173. memoflag = "2";
  174. } else { // 줄번호 단위인 경우 3:줄단위메모
  175. memoflag = "3";
  176. }
  177. model.resetInstanceNode("/root/hidden/sppiz00700/rslt");
  178. model.resetInstanceNode("/root/hidden/sppiz00700/cond");
  179. model.setValue("/root/hidden/sppiz00700/cond/memoflag", memoflag);
  180. model.setValue("/root/hidden/sppiz00700/cond/memocls", memocls);
  181. model.setValue("/root/hidden/sppiz00700/cond/memo", memo);
  182. modal("SPPIZ00700", "1", "400", "100", "SPPIZ00700", "/root/hidden/sppiz00700", "/root/send/sppiz00700", "", "");
  183. }
  184. // 심사Comment 조회 Popup에서 선택한 줄단위메모를 설정한다.
  185. // SPPIZ00700_심사Comment조회.xrw 에서 opener.javascript.fSetLnUnitMemoRefresh(); 형태로 호출한다.
  186. function fSetLnUnitMemoRefresh(){
  187. var memo = model.getValue("/root/hidden/sppiz00700/rslt/memo");
  188. var spclspec = model.getValue("/root/main/item1/clsp/spclspec");
  189. if (memo) {
  190. if (model.getValue("/root/main/item1/clsp/spclcd") == "") {
  191. model.setValue("/root/main/item1/clsp/spclcd", "JX999");
  192. model.setValue("/root/main/item1/clsp/detldesc", "특정내역의 구분코드가 없는 경우에는 기타 줄번호(확장 번호)단위의 기타내역에 기재");
  193. model.setValue("/root/main/item1/clsp/spclformat", "X(700)");
  194. model.setValue("/root/main/item1/clsp/cdnm", "기타내역");
  195. }
  196. if (spclspec) { // 기존 줄단위메모가 공백이 아닌 경우 선택된 메모를 심사화면 메모 뒤에 덧붙인다.
  197. model.setValue("/root/main/item1/clsp/spclspec", spclspec +" \n"+ memo);
  198. } else {
  199. model.setValue("/root/main/item1/clsp/spclspec", memo);
  200. }
  201. model.refresh();
  202. }
  203. }
  204. ]]>
  205. </script>
  206. </xhtml:head>
  207. <xhtml:body pagewidth="625" pageheight="620" style="margin-left:8; margin-top:0; margin-right:8; margin-bottom:0; ">
  208. <group id="grp_biz" scroll="auto" style="left:0px; top:0px; width:600px; height:568px; ">
  209. <caption id="caption1" class="tit_2" style="left:5px; top:10px; width:157px; height:14px; ">원외처방 특정내역 상세</caption>
  210. <line id="line1" class="line_1" style="x1:0px; y1:25px; x2:594px; y2:25px; "/>
  211. <caption id="caption2" class="cell_1" style="left:0px; top:30px; width:59px; height:23px; ">수가코드</caption>
  212. <output id="opt_calcscorcd" ref="/root/main/item1/clsp/snglcalcscorcd" class="output_fix" style="left:62px; top:31px; width:83px; height:19px; "/>
  213. <caption id="caption3" class="cell_1" style="left:147px; top:30px; width:91px; height:23px; text-align:center; ">처방전교부일자</caption>
  214. <caption id="caption4" class="cell_1" style="left:0px; top:55px; width:59px; height:23px; ">특정코드</caption>
  215. <line id="line2" class="line_2" style="x1:0px; y1:54px; x2:594px; y2:54px; "/>
  216. <caption id="caption5" class="cell_1" style="left:0px; top:217px; width:59px; height:120px; ">특정내역</caption>
  217. <textarea id="tar_spclspec" ref="/root/main/item1/clsp/spclspec" navindex="2" style="left:62px; top:218px; width:532px; height:120px; "/>
  218. <line id="line3" class="line_2" style="x1:0px; y1:339px; x2:594px; y2:339px; "/>
  219. <caption id="caption6" class="cell_1" style="left:0px; top:341px; width:59px; height:23px; ">기재형식</caption>
  220. <output id="opt_spclformat" ref="/root/main/item1/clsp/spclformat" class="output_fix" style="left:62px; top:342px; width:532px; height:19px; "/>
  221. <line id="line4" class="line_3" style="x1:0px; y1:363px; x2:594px; y2:363px; "/>
  222. <caption id="caption7" class="tit_2" style="left:5px; top:370px; width:100px; height:13px; ">특정내역 목록</caption>
  223. <line id="line6" class="line_1" style="x1:0px; y1:385px; x2:594px; y2:385px; "/>
  224. <datagrid id="grd_clsplist" nodeset="/root/main/item1/clsp/list" caption="flag^row^수가코드^교부일자^교부번호^줄^특정코드^특정내역^기재형식^특정내역명칭^상세설명^mpsno^기존특정코드^기존특정내역" colsep="^" colwidth="0, 0, 80, 70, 55, 30, 56, 250, 80, 100, 100, 100, 0, 0" ellipsis="true" extendlastcol="scroll" mergecellsfixedrows="bycolrec" rowheader="update" rowsep="|" tooltip="true" style="left:0px; top:390px; width:594px; height:173px; ">
  225. <col ref="flag" visibility="hidden"/>
  226. <col ref="rownum" visibility="hidden"/>
  227. <col ref="snglcalcscorcd"/>
  228. <col ref="clopdd" format="yyyy-mm-dd" style="text-align:center; "/>
  229. <col ref="clopno" style="text-align:center; "/>
  230. <col ref="edilnno"/>
  231. <col ref="spclcd"/>
  232. <col ref="spclspec"/>
  233. <col ref="spclformat"/>
  234. <col ref="cdnm" visibility="hidden"/>
  235. <col ref="detldesc" visibility="hidden"/>
  236. <col ref="mpsno" visibility="visible"/>
  237. <col ref="oldspclcd" visibility="hidden"/>
  238. <col ref="oldspclspec" visibility="hidden"/>
  239. <script type="javascript" ev:event="onclick">
  240. <![CDATA[
  241. var row = grd_clsplist.mouseRow;
  242. if (grd_clsplist.isCell(event.target) && row >= grd_clsplist.fixedrows) {
  243. // 특정내역 목록에서 선택된 row가 변경된 경우
  244. if (row != model.getValue("/root/main/item1/clsp/selectedrow")) {
  245. // 이전 상세내역 내용을 특정내역 목록에 적용시킨 후 현재 선택된 row 내역을 상세내역에 표시한다.
  246. btn_alter.dispatch("DOMActivate");
  247. model.setValue("/root/main/item1/clsp/selectedrow", row);
  248. }
  249. // 특정내역 목록에서 선택된 row를 상세내역으로 표시한다.
  250. model.setValue("/root/main/item1/clsp/flag", model.getValue("/root/main/item1/clsp/list["+ row +"]/flag"));
  251. model.setValue("/root/main/item1/clsp/snglcalcscorcd",model.getValue("/root/main/item1/clsp/list["+ row +"]/snglcalcscorcd"));
  252. model.setValue("/root/main/item1/clsp/edilnno",model.getValue("/root/main/item1/clsp/list["+ row +"]/edilnno"));
  253. model.setValue("/root/main/item1/clsp/spclcd", model.getValue("/root/main/item1/clsp/list["+ row +"]/spclcd"));
  254. model.setValue("/root/main/item1/clsp/detldesc", model.getValue("/root/main/item1/clsp/list["+ row +"]/detldesc")); // 상세설명 부분 추가
  255. model.setValue("/root/main/item1/clsp/spclspec", model.getValue("/root/main/item1/clsp/list["+ row +"]/spclspec"));
  256. model.setValue("/root/main/item1/clsp/spclformat", model.getValue("/root/main/item1/clsp/list["+ row +"]/spclformat"));
  257. model.setValue("/root/main/item1/clsp/rownum", model.getValue("/root/main/item1/clsp/list["+ row +"]/rownum"));
  258. model.setValue("/root/main/item1/clsp/cdnm", model.getValue("/root/main/item1/clsp/list["+ row +"]/cdnm")); // 특정내역명칭 부분 추가
  259. model.refresh();
  260. }
  261. ]]>
  262. </script>
  263. </datagrid>
  264. <button id="btn_add" class="btn2_letter2" _auth="X" style="left:552px; top:365px; width:42px; height:19px; ">
  265. <caption>추가</caption>
  266. <script type="javascript" ev:event="DOMActivate">
  267. <![CDATA[
  268. var spclcd = model.getValue("/root/main/item1/clsp/spclcd");
  269. if (spclcd == "") {
  270. messageBox("특정코드를", "C002"); ///특정코드를 선택하십시오.
  271. return;
  272. }
  273. var setrow = 0; // 삭제상태인 동일한 특정내역코드가 있는지
  274. var rownum = ""; // 삭제상태인 특정내역코드의 row
  275. for (var i = 1; i < grd_clsplist.rows; i++) {
  276. var grdspclcd = model.getValue("/root/main/item1/clsp/list["+ i +"]/spclcd");
  277. if ( spclcd == grdspclcd && grdspclcd == "JX999" ) {
  278. var rowHidden = grd_clsplist.rowHidden(i);
  279. if (rowHidden == "1") {
  280. grd_clsplist.rowHidden(i) = false;
  281. setrow = i;
  282. rownum = model.getValue("/root/main/item1/clsp/list["+ i +"]/rownum");
  283. } else {
  284. messageBox("특정코드 'JX999'가 존재하므로 추가할 수", "I004"); ///특정코드 'JX999'가 존재하므로 추가할 수 없습니다.
  285. return;
  286. }
  287. } else if ( spclcd == grdspclcd && grdspclcd == "MT015" ) {
  288. var rowHidden = grd_clsplist.rowHidden(i);
  289. if (rowHidden == "1") {
  290. grd_clsplist.rowHidden(i) = false;
  291. setrow = i;
  292. rownum = model.getValue("/root/main/item1/clsp/list["+ i +"]/rownum");
  293. } else {
  294. messageBox("특정코드 'MT015'가 존재하므로 추가할 수", "I004"); ///특정코드 'MT015'가 존재하므로 추가할 수 없습니다.
  295. return;
  296. }
  297. } else if ( spclcd == grdspclcd && grdspclcd == "MT016 " ) {
  298. var rowHidden = grd_clsplist.rowHidden(i);
  299. if (rowHidden == "1") {
  300. grd_clsplist.rowHidden(i) = false;
  301. setrow = i;
  302. rownum = model.getValue("/root/main/item1/clsp/list["+ i +"]/rownum");
  303. } else {
  304. messageBox("특정코드 'MT016'가 존재하므로 추가할 수", "I004"); ///특정코드 'MT016'가 존재하므로 추가할 수 없습니다.
  305. return;
  306. }
  307. }
  308. }
  309. var row = 0;
  310. if (setrow == 0) { // 기존에 삭제상태였던 row가 없다면 신규 추가
  311. grd_clsplist.addItem();
  312. row = grd_clsplist.row;
  313. model.setValue("/root/main/item1/clsp/list["+ row +"]/flag", "I");
  314. } else {
  315. row = setrow;
  316. }
  317. var snglcalcscorcd = model.getValue("/root/main/item1/clsp/snglcalcscorcd");
  318. var clopdd = model.getValue("/root/main/item1/clsp/clopdd");
  319. var clopno = model.getValue("/root/main/item1/clsp/clopno");
  320. var edilnno = model.getValue("/root/main/item1/clsp/edilnno");
  321. var detldesc = model.getValue("/root/main/item1/clsp/detldesc");
  322. var spclspec = model.getValue("/root/main/item1/clsp/spclspec");
  323. var spclformat = model.getValue("/root/main/item1/clsp/spclformat");
  324. // 2008.01.04 박지욱 수정 - 형식 50자릿수 제한
  325. spclformat = spclformat.substring(0,50);
  326. var cdnm = model.getValue("/root/main/item1/clsp/cdnm");
  327. if (snglcalcscorcd == "") {
  328. snglcalcscorcd = "-";
  329. }
  330. if (edilnno == "") {
  331. edilnno = "0";
  332. }
  333. model.setValue("/root/main/item1/clsp/list["+ row +"]/snglcalcscorcd", snglcalcscorcd);
  334. model.setValue("/root/main/item1/clsp/list["+ row +"]/clopdd", clopdd);
  335. model.setValue("/root/main/item1/clsp/list["+ row +"]/clopno", clopno);
  336. model.setValue("/root/main/item1/clsp/list["+ row +"]/edilnno", edilnno);
  337. model.setValue("/root/main/item1/clsp/list["+ row +"]/spclcd", spclcd);
  338. model.setValue("/root/main/item1/clsp/list["+ row +"]/detldesc", detldesc);
  339. model.setValue("/root/main/item1/clsp/list["+ row +"]/spclspec", spclspec);
  340. model.setValue("/root/main/item1/clsp/list["+ row +"]/spclformat", spclformat);
  341. model.setValue("/root/main/item1/clsp/list["+ row +"]/rownum", rownum);
  342. model.setValue("/root/main/item1/clsp/list["+ row +"]/cdnm", cdnm);
  343. model.setValue("/root/main/item1/clsp/list["+ row +"]/mpsno", clopdd+clopno);
  344. // 이전에 선택된 줄
  345. // model.resetInstanceNode("/root/main/item1/clsp/selectedrow");
  346. model.setValue("/root/main/item1/clsp/selectedrow", row);
  347. // 추가후 특정내역 상세 초기화
  348. model.resetInstanceNode("/root/main/item1/clsp/spclcd");
  349. model.refresh();
  350. cmb_spclcd.dispatch("xforms-value-changed");
  351. ]]>
  352. </script>
  353. </button>
  354. <button id="btn_alter" class="btn5_letter2" disabled="true" visibility="hidden" _auth="X" style="left:462px; top:365px; width:42px; height:19px; ">
  355. <caption>수정</caption>
  356. <script type="javascript" ev:event="DOMActivate">
  357. <![CDATA[
  358. var row = model.getValue("/root/main/item1/clsp/selectedrow"); // 이전에 선택된 줄
  359. if (row > 0) {
  360. var spclcd = model.getValue("/root/main/item1/clsp/spclcd");
  361. var spclspec = model.getValue("/root/main/item1/clsp/spclspec");
  362. var snglcalcscorcd = model.getValue("/root/main/item1/clsp/snglcalcscorcd");
  363. var edilnno = model.getValue("/root/main/item1/clsp/edilnno");
  364. if (spclcd == "" || spclspec == "") {
  365. return;
  366. }
  367. // 내용이 변경되지 않은 경우의 처리
  368. var prespclcd = model.getValue("/root/main/item1/clsp/list["+ row +"]/spclcd");
  369. var prespclspec = model.getValue("/root/main/item1/clsp/list["+ row +"]/spclspec");
  370. if (spclcd == prespclcd && spclspec == prespclspec) {
  371. return;
  372. }
  373. var rownum = model.getValue("/root/main/item1/clsp/rownum");
  374. for (var i = 1; i < grd_clsplist.rows; i++) {
  375. if (row != i) {
  376. var grdspclcd = model.getValue("/root/main/item1/clsp/list["+ i +"]/spclcd");
  377. var grdedilnno = model.getValue("/root/main/item1/clsp/list["+ i +"]/edilnno");
  378. if ( edilnno == grdedilnno && spclcd == grdspclcd && grdspclcd == "JX999" ) {
  379. var rowHidden = grd_clsplist.rowHidden(i);
  380. if (rowHidden == "1") {
  381. grd_clsplist.rowHidden(i) = false;
  382. rownum = model.getValue("/root/main/item1/clsp/list["+ row +"]/rownum");
  383. } else {
  384. messageBox("특정코드 'JX999'가 존재하므로 'JX999'로 변경할 수", "I004");
  385. return;
  386. }
  387. } else if (edilnno == grdedilnno && spclcd == grdspclcd && grdspclcd == "MT015" ) {
  388. var rowHidden = grd_clsplist.rowHidden(i);
  389. if (rowHidden == "1") {
  390. grd_clsplist.rowHidden(i) = false;
  391. rownum = model.getValue("/root/main/item1/clsp/list["+ row +"]/rownum");
  392. } else {
  393. messageBox("특정코드 'MT015'가 존재하므로 'MT015'로 변경할 수", "I004"); ///특정코드 'MT015'가 존재하므로 추가할 수 없습니다.
  394. return;
  395. }
  396. } else if (edilnno == grdedilnno && spclcd == grdspclcd && grdspclcd == "MT016" ) {
  397. var rowHidden = grd_clsplist.rowHidden(i);
  398. if (rowHidden == "1") {
  399. grd_clsplist.rowHidden(i) = false;
  400. rownum = model.getValue("/root/main/item1/clsp/list["+ row +"]/rownum");
  401. } else {
  402. messageBox("특정코드 'MT016'가 존재하므로 'MT016로 변경할 수", "I004"); ///특정코드 'MT016'가 존재하므로 추가할 수 없습니다.
  403. return;
  404. }
  405. }
  406. }
  407. }
  408. var flag = model.getValue("/root/main/item1/clsp/flag");
  409. var snglcalcscorcd = model.getValue("/root/main/item1/clsp/snglcalcscorcd");
  410. var clopdd = model.getValue("/root/main/item1/clsp/clopdd");
  411. var clopno = model.getValue("/root/main/item1/clsp/clopno");
  412. var edilnno = model.getValue("/root/main/item1/clsp/edilnno");
  413. var detldesc = model.getValue("/root/main/item1/clsp/detldesc");
  414. var spclformat = model.getValue("/root/main/item1/clsp/spclformat");
  415. var cdnm = model.getValue("/root/main/item1/clsp/cdnm");
  416. if (snglcalcscorcd == "") {
  417. snglcalcscorcd = "-";
  418. }
  419. if (edilnno == "") {
  420. edilnno = "0";
  421. }
  422. var flagstat = model.getValue("/root/main/item1/clsp/list["+ row +"]/flag");
  423. var rowstatus = grd_clsplist.rowStatus(row);
  424. if (flagstat == "I" ) {
  425. model.setValue("/root/main/item1/clsp/list["+ row +"]/flag", flag);
  426. grd_clsplist.rowStatus(row) = 3;
  427. } else if (rowstatus == 1 || rowstatus == 3) { // 1 : insert, 3 : insert & new
  428. } else {
  429. grd_clsplist.rowStatus(row) = 2; // 2 : update 상태로 stat를 변경한다.
  430. model.setValue("/root/main/item1/clsp/list["+ row +"]/flag", "U");
  431. }
  432. //model.setValue("/root/main/item1/clsp/list["+ row +"]/snglcalcscorcd", snglcalcscorcd);
  433. //model.setValue("/root/main/item1/clsp/list["+ row +"]/clopdd", clopdd);
  434. //model.setValue("/root/main/item1/clsp/list["+ row +"]/clopno", clopno);
  435. //model.setValue("/root/main/item1/clsp/list["+ row +"]/edilnno", edilnno);
  436. //model.setValue("/root/main/item1/clsp/list["+ row +"]/spclcd", spclcd);
  437. //model.setValue("/root/main/item1/clsp/list["+ row +"]/detldesc", detldesc);
  438. model.setValue("/root/main/item1/clsp/list["+ row +"]/spclspec", spclspec);
  439. //model.setValue("/root/main/item1/clsp/list["+ row +"]/spclformat", spclformat);
  440. //model.setValue("/root/main/item1/clsp/list["+ row +"]/rownum", rownum);
  441. //model.setValue("/root/main/item1/clsp/list["+ row +"]/cdnm", cdnm);
  442. model.refresh();
  443. }
  444. ]]>
  445. </script>
  446. </button>
  447. <button id="btn_delete" class="btn2_letter2" _auth="X" style="left:507px; top:365px; width:42px; height:19px; ">
  448. <caption>삭제</caption>
  449. <script type="javascript" ev:event="DOMActivate">
  450. <![CDATA[
  451. if (grd_clsplist.row > 0 ) {
  452. for (var i = 0; i < grd_clsplist.selectedRows; i++) {
  453. var row = grd_clsplist.selectedrow(i);
  454. grd_clsplist.rowHidden(row) = true;
  455. model.setValue("/root/main/item1/clsp/list["+ row +"]/flag","D");
  456. }
  457. // 이전에 선택된 줄
  458. model.resetInstanceNode("/root/main/item1/clsp/selectedrow");
  459. // 추가후 특정내역 상세 초기화
  460. model.resetInstanceNode("/root/main/item1/clsp/spclcd");
  461. model.refresh();
  462. cmb_spclcd.dispatch("xforms-value-changed");
  463. grd_clsplist.row = 0;
  464. } else {
  465. messageBox("삭제할 특정내역 코드를 목록에서", "C002"); ///삭제할 특정내역 코드를 목록에서 선택하십시오.
  466. }
  467. ]]>
  468. </script>
  469. </button>
  470. <line id="line7" class="line_2" style="x1:0px; y1:215px; x2:594px; y2:215px; "/>
  471. <caption id="caption8" class="cell_1" style="left:0px; top:80px; width:59px; height:133px; ">상세설명</caption>
  472. <textarea id="tar_detldesc" ref="/root/main/item1/clsp/detldesc" disabled="true" style="left:62px; top:81px; width:532px; height:131px; padding-top:5; "/>
  473. <button id="btn_memohistory" class="btn2_letter5" _auth="X" style="left:472px; top:3px; width:75px; height:19px; ">
  474. <caption>줄단위메모</caption>
  475. <script type="javascript" ev:event="DOMActivate">
  476. <![CDATA[
  477. fGetJudgComment(""); // memocls - 메모분류(01:약, 02:주사, 03:처치, 04:검사, 99:기타)
  478. ]]>
  479. </script>
  480. </button>
  481. <button id="btn_memohistory_drug" class="btn2_letter2" _auth="X" style="left:550px; top:3px; width:42px; height:19px; ">
  482. <caption>약</caption>
  483. <script type="javascript" ev:event="DOMActivate">
  484. <![CDATA[
  485. fGetJudgComment("01"); // memocls - 메모분류(01:약, 02:주사, 03:처치, 04:검사, 99:기타)
  486. ]]>
  487. </script>
  488. </button>
  489. <select1 id="cmb_spclcd" ref="/root/main/item1/clsp/spclcd" class="combo_default" navindex="1" appearance="minimal" style="left:62px; top:57px; width:530px; height:19px; ">
  490. <choices>
  491. <itemset nodeset="/root/init/P0117list/P0117[maxval = 'O']">
  492. <label ref="cdengabbrnm"/>
  493. <value ref="cdid"/>
  494. </itemset>
  495. </choices>
  496. <script type="javascript" ev:event="xforms-value-changed">
  497. <![CDATA[
  498. var spclcd = model.getValue("/root/main/item1/clsp/spclcd");
  499. var nodeList = instance1.selectNodes("/root/init/P0117list/P0117");
  500. if (spclcd) {
  501. var cdval = cmb_spclcd.value;
  502. var format = model.getValue("/root/init/P0117list/P0117[cdid='"+cdval+"']/cdval");
  503. var detldesc = model.getValue("/root/init/P0117list/P0117[cdid='"+cdval+"']/detldesc");
  504. var cdnm = model.getValue("/root/init/P0117list/P0117[cdid='"+cdval+"']/cdnm");
  505. model.setValue("/root/main/item1/clsp/detldesc", detldesc); // 상세설명
  506. model.setValue("/root/main/item1/clsp/spclformat", format); // 기재형식
  507. model.setValue("/root/main/item1/clsp/cdnm", cdnm);
  508. model.setValue("/root/main/item1/clsp/spclspec", model.getValue("/root/init/P0117sublist/P0117[cdid='"+cdval +"']/detl"));
  509. } else {
  510. model.resetInstanceNode("/root/main/item1/clsp/detldesc"); // 상세설명
  511. model.resetInstanceNode("/root/main/item1/clsp/spclformat"); // 기재형식
  512. model.resetInstanceNode("/root/main/item1/clsp/cdnm");
  513. model.resetInstanceNode("/root/main/item1/clsp/spclspec"); // 특정내역
  514. }
  515. model.refresh();
  516. ]]>
  517. </script>
  518. </select1>
  519. <line id="line5" class="line_2" style="x1:0px; y1:79px; x2:594px; y2:79px; "/>
  520. <output id="opt_clopdd" ref="/root/main/item1/clsp/clopdd" class="output_fix" style="left:240px; top:31px; width:83px; height:19px; "/>
  521. <caption id="caption9" class="cell_1" style="left:324px; top:30px; width:68px; height:23px; text-align:center; ">교부번호</caption>
  522. <output id="opt_clopno" ref="/root/main/item1/clsp/clopno" class="output_fix" style="left:394px; top:31px; width:83px; height:19px; "/>
  523. <caption id="caption10" class="cell_1" style="left:478px; top:30px; width:50px; height:23px; text-align:center; ">줄번호</caption>
  524. <output id="opt_edilnno" ref="/root/main/item1/clsp/edilnno" class="output_fix" style="left:531px; top:31px; width:60px; height:19px; "/>
  525. <output id="output1" ref="/root/main/item1/clsp/clodseqno" class="output_fix" visibility="hidden" style="left:15px; top:109px; width:29px; height:19px; "/>
  526. <caption id="caption11" class="cell_1" visibility="hidden" style="left:5px; top:85px; width:45px; height:23px; ">seqno</caption>
  527. <button id="btn_rsltsrch" class="btn2_letter4" _auth="R" style="left:405px; top:3px; width:64px; height:19px; ">
  528. <caption>결과조회</caption>
  529. <script type="javascript" ev:event="DOMActivate">
  530. <![CDATA[
  531. if (checkOpener()) { // (common.js) 자신을 Open한 opener의 현재 UID가 자신을 open한 시점의 UID와 비교하여 변경되었는지 여부를 반환
  532. opener.javascript.fOrderRsltSrch();
  533. } else {
  534. messageBox("상위화면이 변경되어 데이터를 전달할 수", "I004"); ///상위화면이 변경되어 데이터를 전달할 수 없습니다.
  535. }
  536. ]]>
  537. </script>
  538. </button>
  539. </group>
  540. <group id="grp_btn" scroll="auto" style="left:12px; top:577px; width:595px; height:27px; ">
  541. <line id="line8" class="line_6" style="x1:0px; y1:0px; x2:594px; y2:0px; "/>
  542. <button id="btn_cancel" class="btn4_letter2" style="left:538px; top:5px; width:56px; height:22px; ">
  543. <caption>취소</caption>
  544. <close ev:event="DOMActivate"/>
  545. </button>
  546. <button id="btn_confirm" class="btn4_letter2" _auth="X" style="left:479px; top:5px; width:56px; height:22px; ">
  547. <caption>확인</caption>
  548. <script type="javascript" ev:event="DOMActivate">
  549. <![CDATA[
  550. if (checkOpener()) {
  551. if (grd_clsplist.row > 0) {
  552. btn_alter.dispatch("DOMActivate");
  553. } else {
  554. if (spclcd != "" && spclspec != "") {
  555. btn_add.dispatch("DOMActivate");
  556. }
  557. }
  558. model.removenode("/root/hidden/clsp/rslt");
  559. model.makeNode("/root/hidden/clsp/rslt");
  560. // 특정내역 목록을 opener로 전달할 형태로 만든다.
  561. var cnt = 0;
  562. for (var i = 1; i < grd_clsplist.rows; i++) {
  563. var spclcd = model.getValue("/root/main/item1/clsp/list["+ i +"]/spclcd");
  564. var spclspec = model.getValue("/root/main/item1/clsp/list["+ i +"]/spclspec").getTrim();
  565. if (spclcd != "MX999" && spclcd != "JX999") {
  566. if (spclspec.isByteSize(1750) == false) {
  567. messageBox("특정내역 입력 제한길이(1750 Byte)를", "E003");
  568. return;
  569. }
  570. }
  571. var flag = model.getValue("/root/main/item1/clsp/list["+ i +"]/flag");
  572. var rownum = model.getValue("/root/main/item1/clsp/list["+ i +"]/rownum");
  573. if (flag == "D" && rownum == "") { // 팝업 화면에서 추가되고 또 삭제되어 opener에게 전달하지 않아도 되는 경우임
  574. }
  575. else if (flag) { // 변경사항 없는 내역을 제외한다.
  576. cnt++;
  577. var clodseqno = model.getValue("/root/main/item1/clsp/list["+ i +"]/clodseqno");
  578. var edilnno = model.getValue("/root/main/item1/clsp/list["+ i +"]/edilnno");
  579. var cdnm = model.getValue("/root/main/item1/clsp/list["+ i +"]/cdnm");
  580. var spclformat = model.getValue("/root/main/item1/clsp/list["+ i +"]/spclformat");
  581. var detldesc = model.getValue("/root/main/item1/clsp/list["+ i +"]/detldesc");
  582. var snglcalcscorcd = model.getValue("/root/main/item1/clsp/list["+ i +"]/snglcalcscorcd");
  583. var clopdd = model.getValue("/root/main/item1/clsp/list["+ i +"]/clopdd");
  584. var clopno = model.getValue("/root/main/item1/clsp/list["+ i +"]/clopno");
  585. var oldspclcd = model.getValue("/root/main/item1/clsp/list["+ i +"]/oldspclcd");
  586. var oldspclspec = model.getValue("/root/main/item1/clsp/list["+ i +"]/oldspclspec");
  587. var mpsno = model.getValue("/root/main/item1/clsp/list["+ i +"]/mpsno");
  588. model.makeValue("/root/hidden/clsp/rslt/list[" + cnt + "]/flag", flag);
  589. model.makeValue("/root/hidden/clsp/rslt/list[" + cnt + "]/rownum", rownum);
  590. model.makeValue("/root/hidden/clsp/rslt/list[" + cnt + "]/clodseqno", clodseqno);
  591. model.makeValue("/root/hidden/clsp/rslt/list[" + cnt + "]/edilnno", edilnno);
  592. model.makeValue("/root/hidden/clsp/rslt/list[" + cnt + "]/spclcd", spclcd);
  593. model.makeValue("/root/hidden/clsp/rslt/list[" + cnt + "]/cdnm", cdnm);
  594. model.makeValue("/root/hidden/clsp/rslt/list[" + cnt + "]/spclspec", spclspec);
  595. model.makeValue("/root/hidden/clsp/rslt/list[" + cnt + "]/spclformat", spclformat);
  596. model.makeValue("/root/hidden/clsp/rslt/list[" + cnt + "]/detldesc", detldesc);
  597. model.makeValue("/root/hidden/clsp/rslt/list[" + cnt + "]/snglcalcscorcd", snglcalcscorcd);
  598. model.makeValue("/root/hidden/clsp/rslt/list[" + cnt + "]/clopdd", clopdd);
  599. model.makeValue("/root/hidden/clsp/rslt/list[" + cnt + "]/clopno", clopno);
  600. model.makeValue("/root/hidden/clsp/rslt/list[" + cnt + "]/oldspclcd", oldspclcd);
  601. model.makeValue("/root/hidden/clsp/rslt/list[" + cnt + "]/oldspclspec", oldspclspec);
  602. model.makeValue("/root/hidden/clsp/rslt/list[" + cnt + "]/mpsno", mpsno);
  603. // if( spclcd == 'CT001' ){
  604. // model.setValue("/root/main/item1/clsp/unitflag", "M");
  605. // model.makeValue("/root/hidden/clsp/rslt/list[" + cnt + "]/clodseqno", 0);
  606. // model.makeValue("/root/hidden/clsp/rslt/list[" + cnt + "]/edilnno", 0);
  607. // }else{
  608. // model.setValue("/root/main/item1/clsp/unitflag", "J");
  609. // }
  610. }
  611. }
  612. model.copyNode(opener.root.hidden.sppiz01700, "/root/hidden/clsp");
  613. } else {
  614. messageBox("상위화면이 변경되어 데이터를 전달할 수", "I004");
  615. }
  616. window.close();
  617. ]]>
  618. </script>
  619. </button>
  620. </group>
  621. </xhtml:body>
  622. </xhtml:html>