SMMNT00200_ICNP용어수정등록.xrw 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444
  1. <?xml version="1.0" encoding="EUC-KR"?>
  2. <?xml-stylesheet type="text/css" href="../../../com/commonweb/css/common.css" ?>
  3. <xhtml:html xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://www.w3.org/2002/01/xforms" xmlns:ev="http://www.w3.org/2001/xml-events">
  4. <xhtml:head>
  5. <xhtml:title>의학용어/약어 정보 조회</xhtml:title>
  6. <model id="model1">
  7. <instance id="instance1">
  8. <root xmlns="">
  9. <init/>
  10. <main>
  11. <icnpinfo>
  12. <engnm/>
  13. <hngnm/>
  14. <mean/>
  15. <synonym/>
  16. <smlarty/>
  17. <antonym/>
  18. <icnpinfolist>
  19. <engnm/>
  20. <hngnm/>
  21. <mean/>
  22. <synonym/>
  23. <smlarty/>
  24. <antonym/>
  25. </icnpinfolist>
  26. <uedt/>
  27. </icnpinfo>
  28. <cond>
  29. <flag>1</flag>
  30. <srchwrd/>
  31. </cond>
  32. <wrdlists>
  33. <wrdlist>
  34. <ssawrd/>
  35. <wrd1/>
  36. <wrd2/>
  37. <wrd3/>
  38. <wrd4/>
  39. <wrd5/>
  40. </wrdlist>
  41. </wrdlists>
  42. </main>
  43. <hidden>
  44. <status/>
  45. <searflag/>
  46. </hidden>
  47. <send>
  48. <savedata/>
  49. <savedata2/>
  50. <reqdata/>
  51. </send>
  52. <temp/>
  53. </root>
  54. </instance>
  55. <script type="javascript" ev:event="xforms-ready">
  56. <![CDATA[
  57. for( var i = 1; i < 6; i++ ){//데이터 부분 병합 금지
  58. grd_wrdlist.mergecol(i) = false;
  59. }
  60. btn_save.visible = false;
  61. btn_del.visible = false;
  62. btn_updt.disabled = true;
  63. opt_engnm.visible = true;
  64. opt_hngnm.visible = true;
  65. tar_optmean.visible = true;
  66. ipt_engnm.visible = false;
  67. ipt_hngnm.visible = false;
  68. tar_iptmean.visible = false;
  69. model.setFocus("ipt_srchwrd");
  70. ]]>
  71. </script>
  72. <submission id="TXMNT00201" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/savedata" resultref="/root/main/icnpinfo/icnpinfolist"/>
  73. <submission id="TRMNT00201" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/reqdata" resultref="/root/main/icnpinfo"/>
  74. <submission id="TRMNT00202" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/reqdata" resultref="/root/hidden"/>
  75. <submission id="TRMNT00203" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/main/cond/srchwrd" resultref="/root/main/icnpinfo"/>
  76. </model>
  77. <script type="javascript" src="../../../com/commonweb/js/common.js"/>
  78. <script type="javascript" src="../../../com/commonweb/js/tfHelper.js"/>
  79. <script type="javascript" src="../../../com/commonweb/js/dateHelper.js"/>
  80. <script type="javascript" src="../../../com/commonweb/js/stringHelper.js"/>
  81. <script type="javascript" src="../../../com/commonweb/js/numericHelper.js"/>
  82. <script type="javascript" src="../../../emr/carerecweb/js/SMMNT002.js"/>
  83. </xhtml:head>
  84. <xhtml:body style="margin-left:8; margin-top:0; margin-right:8; margin-bottom:0; ">
  85. <shape id="roundrect1" class="roundrect_search" appearance="roundrect" style="left:0px; top:20px; width:820px; height:37px; "/>
  86. <caption id="caption1" class="search_name" style="left:250px; top:30px; width:76px; height:17px; ">검색어 :</caption>
  87. <input id="ipt_srchwrd" ref="/root/main/cond/srchwrd" class="input_search" style="left:331px; top:29px; width:250px; height:19px; ">
  88. <script type="javascript" ev:event="onkeyup">
  89. <![CDATA[
  90. inputEnterKey("btn_search", "DOMActivate");
  91. ]]>
  92. </script>
  93. </input>
  94. <line id="line13" class="line_4" style="x1:674px; y1:28px; x2:674px; y2:50px; border-color:#ffe4bb; border-left-style:solid; "/>
  95. <button id="btn_search" class="btn1_letter2" selected="&quot;,&quot;" style="left:750px; top:28px; width:56px; height:22px; ">
  96. <caption>조회</caption>
  97. <script type="javascript" ev:event="DOMActivate">
  98. <![CDATA[
  99. model.resetInstanceNode("/root/main/icnpinfo");
  100. model.resetInstanceNode("/root/main/wrdlists/wrdlist");
  101. model.refresh();
  102. fSearch();
  103. if( model.getValue("/root/hidden/searflag") == "ok" ){
  104. btn_updt.disabled = false;
  105. }
  106. ]]>
  107. </script>
  108. </button>
  109. <caption id="caption26" class="cell_1" style="left:0px; top:80px; width:80px; height:30px; text-align:center; vertical-align:middle; ">영문명</caption>
  110. <caption id="caption2" class="cell_1" style="left:0px; top:113px; width:80px; height:30px; text-align:center; vertical-align:middle; ">한글명</caption>
  111. <caption id="caption3" class="cell_1" style="left:0px; top:146px; width:80px; height:250px; text-align:center; vertical-align:middle; ">의미</caption>
  112. <line id="line12" class="line_2" style="x1:0px; y1:110px; x2:820px; y2:110px; "/>
  113. <line id="line1" class="line_2" style="x1:0px; y1:143px; x2:820px; y2:143px; "/>
  114. <line id="line2" class="line_2" style="x1:0px; y1:396px; x2:820px; y2:396px; "/>
  115. <caption id="caption7" class="tit_1" style="left:0px; top:0px; width:160px; height:14px; ">ICNP 용어 등록 수정</caption>
  116. <output id="opt_engnm" ref="/root/main/icnpinfo/icnpinfolist/engnm" style="left:85px; top:85px; width:535px; height:19px; "/>
  117. <output id="opt_hngnm" ref="/root/main/icnpinfo/icnpinfolist/hngnm" style="left:85px; top:118px; width:535px; height:19px; "/>
  118. <caption id="caption8" class="search_name" style="left:15px; top:30px; width:86px; height:19px; ">구분 :</caption>
  119. <select1 id="rdo_flag" ref="/root/main/cond/flag" class="radio_search" overflow="visible" appearance="full" cols="4" style="left:80px; top:31px; width:140px; height:19px; border-style:none; ">
  120. <choices>
  121. <item>
  122. <label>조회</label>
  123. <value>1</value>
  124. </item>
  125. <item>
  126. <label>신규등록</label>
  127. <value>2</value>
  128. </item>
  129. </choices>
  130. <script type="javascript" ev:event="xforms-select">
  131. <![CDATA[
  132. if (rdo_flag.value == 1 ){
  133. model.resetInstanceNode("/root/main/wrdlists/wrdlist");
  134. model.resetInstanceNode("/root/hidden");
  135. caption1.visible = true;
  136. ipt_srchwrd.visible = true;
  137. btn_search.visible = true;
  138. btn_save.visible = false;
  139. btn_del.visible = false;
  140. btn_updt.visible = true;
  141. btn_updt.disabled = true;
  142. opt_engnm.visible = true;
  143. opt_hngnm.visible = true;
  144. tar_optmean.visible = true;
  145. ipt_engnm.value = "";
  146. ipt_hngnm.value = "";
  147. tar_iptmean.value = "";
  148. ipt_engnm.visible = false;
  149. ipt_hngnm.visible = false;
  150. tar_iptmean.visible = false;
  151. model.refresh();
  152. model.setFocus("ipt_srchwrd");
  153. }else{
  154. model.setValue("/root/hidden/status", "I"); //신규등록시 입력 상태값 저장
  155. model.setValue("/root/main/wrdlists/wrdlist/ssawrd", "동의어");
  156. for(var i = 1; i <= 5; i++ ) { //신규등록시 동의어 로우 생성
  157. model.setValue("/root/main/wrdlists/wrdlist/wrd"+i, "");
  158. }
  159. grd_wrdlist.addRow();
  160. model.setValue("/root/main/wrdlists/wrdlist[2]/ssawrd", "유사어");
  161. for(var j = 1; j <=5; j++ ) {//신규등록시 유사어 로우 생성
  162. model.setValue("/root/main/wrdlists/wrdlist[2]/wrd"+j, "");
  163. }
  164. grd_wrdlist.addRow();
  165. model.setValue("/root/main/wrdlists/wrdlist[3]/ssawrd", "반대어");
  166. for(var k = 1; k <=5; k++ ) {//신규등록시 반대어 로우 생성
  167. model.setValue("/root/main/wrdlists/wrdlist[3]/wrd"+k, "");
  168. }
  169. grd_wrdlist.colStyle(0, "all", "background-color") = "#cce8ff";
  170. btn_updt.visible = false;
  171. btn_del.visible = false;
  172. caption1.visible = false;
  173. ipt_srchwrd.visible = false;
  174. btn_search.visible = false;
  175. btn_save.visible = true;
  176. btn_del.visible = false;
  177. opt_engnm.visible = false;
  178. opt_hngnm.visible = false;
  179. tar_optmean.visible = false;
  180. opt_engnm.value = "";
  181. opt_hngnm.value = "";
  182. tar_optmean.value = "";
  183. ipt_engnm.visible = true;
  184. ipt_hngnm.visible = true;
  185. tar_iptmean.visible = true;
  186. model.setFocus("ipt_engnm");
  187. }
  188. ]]>
  189. </script>
  190. </select1>
  191. <button id="btn_save" class="btn4_letter2" style="left:750px; top:28px; width:56px; height:22px; ">
  192. <caption>등록</caption>
  193. <script type="javascript" ev:event="DOMActivate">
  194. <![CDATA[
  195. if(isRequiredControls("ipt_engnm", "ipt_hngnm")){
  196. //그리드의 값을 디비컬럼에 넣기 위해 ,로 연결
  197. var temp, titletemp, oldtitletemp;
  198. var iRows = grd_wrdlist.rows;
  199. titletemp = model.getValue("/root/main/wrdlists/wrdlist/ssawrd"); //첫번째 타이틀
  200. temp = model.getValue("/root/main/wrdlists/wrdlist/wrd1");
  201. for( var k = 2; k <= 5; k++ ){ //첫번째 로우 데이터
  202. if( model.getValue("/root/main/wrdlists/wrdlist/wrd"+k) != "" ) {//데이터의 값이 공백이 아닌것만 ,로 연결
  203. temp = temp + "," + model.getValue("/root/main/wrdlists/wrdlist/wrd"+k);
  204. }
  205. }
  206. for(var i = 2; i <= iRows; i++){
  207. oldtitletemp = titletemp;
  208. titletemp = model.getValue("/root/main/wrdlists/wrdlist"+"[" + i + "]/ssawrd");
  209. if( oldtitletemp == titletemp ) { //타이틀 비교로 같은 타이틀은 한곳으로 묶는다.
  210. for( var j = 1; j <= 5; j++) {
  211. if( model.getValue("/root/main/wrdlists/wrdlist"+"["+ i +"]/wrd"+j) != "" ) {//데이터의 값이 공백이 아닌것만 ,로 연결
  212. temp = temp + "," + model.getValue("/root/main/wrdlists/wrdlist"+"["+ i +"]/wrd"+j);
  213. }
  214. }
  215. }else{
  216. if( oldtitletemp == "동의어" ) {
  217. model.setValue("/root/main/icnpinfo/synonym", temp);
  218. }else if ( oldtitletemp == "유사어") {
  219. model.setValue("/root/main/icnpinfo/smlarty", temp);
  220. }
  221. temp = ""; //인스턴스에 저장 후 변수 초기화
  222. temp = model.getValue("/root/main/wrdlists/wrdlist"+"["+ i +"]/wrd1");
  223. for( var j = 2; j <= 5; j++) {
  224. if( model.getValue("/root/main/wrdlists/wrdlist"+"["+ i +"]/wrd"+j) != "" ) {//데이터의 값이 공백이 아닌것만 ,로 연결
  225. temp = temp + "," + model.getValue("/root/main/wrdlists/wrdlist"+"["+ i +"]/wrd"+j);
  226. }
  227. }
  228. }
  229. if( i == iRows ) { //마지막 로우이면 반대어 인스턴스 저장
  230. model.setValue("/root/main/icnpinfo/antonym", temp);
  231. }
  232. }
  233. model.copyNode("/root/send/savedata", "/root/main/icnpinfo");
  234. model.makeValue("/root/send/savedata/m", "I");
  235. submit("TXMNT00201");
  236. if( model.getValue("/root/hidden/error/msg") == "이미 존재하는 데이터입니다" ){
  237. messageBox("등록된 단어", "E008");
  238. }else{
  239. messageBox("신규등록이", "I002");
  240. }
  241. model.removenode("/root/send/savedata/m");
  242. model.resetInstanceNode("/root/send/savedata");
  243. model.resetInstanceNode("/root/main/icnpinfo");
  244. model.resetInstanceNode("/root/main/wrdlists/wrdlist");
  245. model.refresh();
  246. }
  247. ]]>
  248. </script>
  249. </button>
  250. <input id="ipt_engnm" ref="/root/main/icnpinfo/engnm" class="input_essential" navindex="1" style="left:83px; top:85px; width:737px; height:19px; "/>
  251. <input id="ipt_hngnm" ref="/root/main/icnpinfo/hngnm" class="input_essential" navindex="2" style="left:83px; top:118px; width:737px; height:19px; "/>
  252. <button id="btn_updt" class="btn4_letter2" style="left:691px; top:28px; width:56px; height:22px; ">
  253. <caption>수정</caption>
  254. <script type="javascript" ev:event="DOMActivate">
  255. <![CDATA[
  256. if( model.getValue("/root/hidden/status") != "U")
  257. {
  258. if( model.getValue("/root/hidden/searflag") == "ok" ){//조회건이 있는지 없는지
  259. rdo_flag.value = 2;
  260. caption1.visible = false;
  261. ipt_srchwrd.visible = false;
  262. btn_search.visible = false;
  263. btn_save.visible = false;
  264. btn_del.visible = true;
  265. btn_updt.visible = true;
  266. btn_updt.disabled = false;
  267. opt_engnm.visible = false;
  268. opt_hngnm.visible = false;
  269. tar_optmean.visible = false;
  270. opt_engnm.value = "";
  271. opt_hngnm.value = "";
  272. tar_optmean.value = "";
  273. ipt_engnm.visible = true;
  274. ipt_hngnm.visible = true;
  275. tar_iptmean.visible = true;
  276. submit("TRMNT00203", false);
  277. model.removenode("/root/temp");
  278. model.resetInstanceNode("/root/hidden/searflag");
  279. model.setValue("/root/hidden/status", "U"); //조회에서 수정을 눌러 수정페이지로 이동 체크
  280. model.setFocus("ipt_engnm");
  281. model.refresh();
  282. }
  283. }else {
  284. //그리드의 값을 디비컬럼에 넣기 위해 ,로 연결
  285. var temp, titletemp, oldtitletemp;
  286. var iRows = grd_wrdlist.rows;
  287. titletemp = model.getValue("/root/main/wrdlists/wrdlist/ssawrd"); //첫번째 타이틀
  288. temp = model.getValue("/root/main/wrdlists/wrdlist/wrd1");
  289. for( var k = 2; k <= 5; k++ ){ //첫번째 로우 데이터
  290. if( model.getValue("/root/main/wrdlists/wrdlist/wrd"+k) != "" ) {//데이터의 값이 공백이 아닌것만 ,로 연결
  291. temp = temp + "," + model.getValue("/root/main/wrdlists/wrdlist/wrd"+k);
  292. }
  293. }
  294. for(var i = 2; i <= iRows; i++){
  295. oldtitletemp = titletemp;
  296. titletemp = model.getValue("/root/main/wrdlists/wrdlist"+"[" + i + "]/ssawrd");
  297. if( oldtitletemp == titletemp ) { //타이틀 비교로 같은 타이틀은 한곳으로 묶는다.
  298. for( var j = 1; j <= 5; j++) {
  299. if( model.getValue("/root/main/wrdlists/wrdlist"+"["+ i +"]/wrd"+j) != "" ) {//데이터의 값이 공백이 아닌것만 ,로 연결
  300. temp = temp + "," + model.getValue("/root/main/wrdlists/wrdlist"+"["+ i +"]/wrd"+j);
  301. }
  302. }
  303. }else{
  304. if( oldtitletemp == "동의어" ) {
  305. model.setValue("/root/main/icnpinfo/synonym", temp);
  306. }else if ( oldtitletemp == "유사어") {
  307. model.setValue("/root/main/icnpinfo/smlarty", temp);
  308. }
  309. temp = ""; //인스턴스에 저장 후 변수 초기화
  310. temp = model.getValue("/root/main/wrdlists/wrdlist"+"["+ i +"]/wrd1");
  311. for( var j = 2; j <= 5; j++) {
  312. if( model.getValue("/root/main/wrdlists/wrdlist"+"["+ i +"]/wrd"+j) != "" ) {//데이터의 값이 공백이 아닌것만 ,로 연결
  313. temp = temp + "," + model.getValue("/root/main/wrdlists/wrdlist"+"["+ i +"]/wrd"+j);
  314. }
  315. }
  316. }
  317. if( i == iRows ) { //마지막 로우이면 반대어 인스턴스 저장
  318. model.setValue("/root/main/icnpinfo/antonym", temp);
  319. }
  320. }
  321. model.copyNode("/root/send/savedata", "/root/main/icnpinfo");
  322. model.makeValue("/root/send/savedata/m", "U");
  323. submit("TXMNT00201");
  324. model.setValue("/root/hidden/status", ""); //수정후 상태값 초기화
  325. model.removenode("/root/send/savedata/m");
  326. model.resetInstanceNode("/root/send/savedata");
  327. model.resetInstanceNode("/root/main/icnpinfo");
  328. model.resetInstanceNode("/root/main/wrdlists/wrdlist");
  329. model.resetInstanceNode("/root/main/cond/srchwrd");
  330. model.refresh();
  331. }
  332. ]]>
  333. </script>
  334. </button>
  335. <button id="btn_del" class="btn4_letter2" style="left:750px; top:28px; width:56px; height:22px; ">
  336. <caption>삭제</caption>
  337. <script type="javascript" ev:event="DOMActivate">
  338. <![CDATA[
  339. model.copyNode("/root/send/savedata", "/root/main/icnpinfo");
  340. model.makeValue("/root/send/savedata/m", "D");
  341. messageBox("용어를", "Q001");
  342. submit("TXMNT00201");
  343. messageBox("삭제가", "I002");
  344. model.removenode("/root/send/savedata/m");
  345. model.resetInstanceNode("/root/send/savedata");
  346. model.resetInstanceNode("/root/main/icnpinfo");
  347. model.resetInstanceNode("/root/main/wrdlists/wrdlist");
  348. model.resetInstanceNode("/root/main/cond/srchwrd");
  349. model.refresh();
  350. ]]>
  351. </script>
  352. </button>
  353. <textarea id="tar_optmean" ref="/root/main/icnpinfo/icnpinfolist/mean" editable="false" style="left:83px; top:146px; width:737px; height:250px; "/>
  354. <datagrid id="grd_wrdlist" nodeset="/root/main/wrdlists/wrdlist" autoresize="true" colsep="^" colwidth="80, 148, 148, 148,147, 147" mergecells="bycol" mergecellsfixedcols="byrow" mergecellsfixedrows="bycolrec" rowsep="|" style="left:0px; top:399px; width:820px; height:216px; text-align:center; vertical-align:middle; background-color:transparent; ">
  355. <col ref="ssawrd"/>
  356. <col ref="wrd1" type="output"/>
  357. <col ref="wrd2" type="output"/>
  358. <col ref="wrd3" type="output"/>
  359. <col ref="wrd4" type="output"/>
  360. <col ref="wrd5" type="output"/>
  361. <script type="javascript" ev:event="ondblclick">
  362. <![CDATA[
  363. var iRow = -1;
  364. var iCol = -1;
  365. if( model.getValue("/root/hidden/status") != "I" ) {
  366. if( model.getValue("/root/hidden/status") != "U" ) {
  367. iRow = grd_wrdlist.row+1;
  368. iCol = grd_wrdlist.col;
  369. if( ( iRow < 1 )||( iCol < 1 ) ) {
  370. return;
  371. }else{
  372. model.makeValue("/root/main/cond/srchwrd", model.getValue("/root/main/wrdlists/wrdlist"+"["+iRow+"]/wrd"+iCol));
  373. model.resetInstanceNode("/root/main/wrdlists/wrdlist");
  374. model.refresh();
  375. fSearch();
  376. }
  377. }else{
  378. var selCol = grd_wrdlist.mouseCol;
  379. if( selCol != 0 ) { //첫번째 타이틀 부분이 아닌 데이터 부분을 input상태로 변경
  380. grd_wrdlist.colType(grd_wrdlist.mouseCol) = "input";
  381. }else{
  382. iRow = grd_wrdlist.row+1;
  383. if( grd_wrdlist.rows == iRow ) {//마지막 로우를 선택하면 맨뒤에 로우를 생성
  384. grd_wrdlist.addRow();
  385. }else{
  386. grd_wrdlist.insertRow(iRow);
  387. }
  388. var title = model.getValue("/root/main/wrdlists/wrdlist[" + iRow + "]/ssawrd");
  389. model.setValue("/root/main/wrdlists/wrdlist[" + (iRow + 1) + "]/ssawrd", title);
  390. }
  391. }
  392. }else{
  393. var selCol = grd_wrdlist.mouseCol;
  394. if( selCol != 0 ) { //첫번째 타이틀 부분이 아닌 데이터 부분을 input상태로 변경
  395. grd_wrdlist.colType(grd_wrdlist.mouseCol) = "input";
  396. }else{
  397. iRow = grd_wrdlist.row+1;
  398. grd_wrdlist.insertRow(iRow);
  399. var title = model.getValue("/root/main/wrdlists/wrdlist[" + iRow + "]/ssawrd");
  400. model.setValue("/root/main/wrdlists/wrdlist[" + (iRow + 1) + "]/ssawrd", title);
  401. }
  402. }
  403. ]]>
  404. </script>
  405. </datagrid>
  406. <textarea id="tar_iptmean" ref="/root/main/icnpinfo/mean" navindex="3" editable="true" style="left:83px; top:146px; width:737px; height:250px; "/>
  407. </xhtml:body>
  408. </xhtml:html>