SPMQP01700_수술코드조회.xrw 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371
  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. <main>
  10. <cond>
  11. <reqflag/>
  12. <reqdata/>
  13. <srchflag>A</srchflag>
  14. <wordflag/>
  15. <trgflag/>
  16. </cond>
  17. <indxlist>
  18. <item>
  19. <depth/>
  20. <indxcd/>
  21. <upindxcd/>
  22. <indxengnm/>
  23. <indxhngnm/>
  24. <path/>
  25. </item>
  26. </indxlist>
  27. <opinfo>
  28. </opinfo>
  29. </main>
  30. <hidden>
  31. </hidden>
  32. <send>
  33. </send>
  34. <init>
  35. </init>
  36. <temp>
  37. <setdata>
  38. <icd9cd/>
  39. <icd9hngnm/>
  40. <icd9engnm/>
  41. <depth/>
  42. <path/>
  43. </setdata>
  44. <getdata>
  45. <grdfocus/>
  46. <poolsize>1</poolsize>
  47. <pool>
  48. <cd/>
  49. </pool>
  50. <endVal/>
  51. </getdata>
  52. </temp>
  53. </root>
  54. </instance>
  55. <script type="javascript" ev:event="xforms-ready">
  56. <![CDATA[
  57. grd_opcdlist.fixedcellcheckbox(0,0) = true;
  58. if( opener.javascript.getParameter("flag") != null ){
  59. var targetFlag = opener.javascript.getParameter("flag");
  60. usge = opener.javascript.getParameter("usge");
  61. model.setValue("/root/main/cond/trgflag", targetFlag);
  62. model.makeValue("/root/send/reqdata/trgflag", targetFlag);
  63. /*if(targetFlag == "ICD"){
  64. btn_icd9.selected = true;
  65. grd_opcdlist.caption = "^ICD9코드^영문명^한글명^caption1";
  66. grd_opcdlist.refresh();
  67. }*/
  68. }
  69. btn_termattr.selected = true;
  70. grd_opcdlist.caption = "^수술용어코드^영문명^한글명^caption1";
  71. grd_opcdlist.refresh();
  72. model.makeValue("/root/send/reqdata/flag", "9");
  73. submit("TRMQP01701");
  74. // 2008.07.17 pymi
  75. window.modelessTopmost = true;
  76. var condbuttonNode = opener.instance1.selectSingleNode("/root/main/cond/condbutton");
  77. if( condbuttonNode != null ) condbutton = condbuttonNode.text;
  78. ]]>
  79. </script>
  80. <submission id="TRMQP01701" ref="/root/send/reqdata" method="post" mediatype="application/x-www-form-urlencoded" resultref="/root/main/indxlist"/>
  81. <submission id="TRMQP01702" ref="/root/send/reqdata" method="post" mediatype="application/x-www-form-urlencoded" resultref="/root/main/opinfo"/>
  82. <submission id="TRMQP01703" ref="/root/send/reqdata" method="post" mediatype="application/x-www-form-urlencoded" resultref="/root/main/opinfo"/>
  83. </model>
  84. <script type="javascript" src="../../../com/commonweb/js/common.js"/>
  85. <script type="javascript" src="../../../com/commonweb/js/tfHelper.js"/>
  86. <script type="javascript" src="../../../com/commonweb/js/dateHelper.js"/>
  87. <script type="javascript" src="../../../com/commonweb/js/stringHelper.js"/>
  88. <script type="javascript">
  89. <![CDATA[
  90. var usge = "";
  91. var condbutton = ""; //값을 opener에 opener에 parameter로 보낼지, opener의 인스턴스에 직접 반영할지 구분 ( IF/THEN이면 parameter, 그렇지 않으면 instance로)
  92. // 중복 체크를 한 후 OPENER 로 데이터를 전달한다.
  93. function fSetOpenerValue( iRow ) {
  94. var bool = "false";
  95. var iCnt = parseInt(model.getValue("/root/temp/getdata/poolsize"));
  96. var selCd = model.getValue("/root/main/opinfo/info["+ iRow + "]/termcd");
  97. if(iCnt != 1){
  98. for(var i=1; i<=iCnt; i++) {
  99. if(selCd == model.getValue("/root/temp/getdata/pool/cd[" + i + "]")){
  100. bool = "ture";
  101. return;
  102. }
  103. }
  104. }
  105. if(bool == "false"){
  106. var sRow = model.getValue("/root/temp/getdata/grdfocus");
  107. if(sRow == ""){
  108. sRow = "0";
  109. model.setValue("/root/temp/getdata/endVal" , "E");
  110. }
  111. sRow = parseInt(sRow) + 1;
  112. var selCd = model.getValue("/root/main/opinfo/info[" + iRow + "]/termcd");
  113. var selHNM = model.getValue("/root/main/opinfo/info[" + iRow + "]/hngnm");
  114. var selENM = model.getValue("/root/main/opinfo/info[" + iRow + "]/engnm");
  115. opener.grd_op.addRow();
  116. opener.model.makeValue("/root/main/opinfo/oplist[" + sRow + "]/termcd", selCd);
  117. opener.model.makeValue("/root/main/opinfo/oplist[" + sRow + "]/termhngnm", selHNM);
  118. opener.model.makeValue("/root/main/opinfo/oplist[" + sRow + "]/termengnm", selENM);
  119. if( !isNull(usge) ){
  120. opener.model.makeValue("/root/main/opinfo/oplist[" + sRow + "]/m", "i");
  121. }
  122. var termflag = "T91";
  123. if(model.getValue("/root/main/cond/trgflag") == "ICD"){
  124. termflag = "T90";
  125. }
  126. opener.model.makeValue("/root/main/opinfo/oplist[" + sRow + "]/termflag", termflag);
  127. //opener.grd_op.rowStatus(iRow)= 1;
  128. //opener.grd_op.refresh();
  129. model.setValue("/root/temp/getdata/grdfocus", sRow);
  130. model.makeValue("/root/temp/getdata/pool/cd[" + iCnt + "]", selCd);
  131. iCnt = parseInt(iCnt)+1;
  132. model.setValue("/root/temp/getdata/poolsize", iCnt);
  133. }
  134. }
  135. function fReqopCD(){
  136. var reqdata = model.getValue("/root/main/cond/reqdata");
  137. if(reqdata.charCodeAt(0) > 255){
  138. model.setValue("/root/main/cond/wordflag", "H");
  139. }else{
  140. model.setValue("/root/main/cond/wordflag", "E");
  141. reqdata = reqdata.toUpperCase();
  142. }
  143. model.removeNodeset("/root/send");
  144. model.makeNode("/root/send/reqdata");
  145. model.copyNode("/root/send/reqdata", "/root/main/cond");
  146. model.setValue("/root/send/reqdata/reqdata", reqdata);
  147. model.makeValue("/root/send/reqdata/flag", "9");
  148. model.makeValue("/root/send/reqdata/trgflag", model.getValue("/root/main/cond/trgflag"));
  149. submit("TRMQP01703");
  150. }
  151. function fSetOpenerParameter(){
  152. var header = "testitemcd▦testcd▦testnm▦hvalappflag▦lvalappflag▦refhval▦reflval▦unitnm▦refseq▦alertcdflag▦alertrem▦alertprecondyn▦checkyn▦m";
  153. var detail = "";
  154. //var condbuttonNode = opener.instance1.selectSingleNode("/root/main/cond/condbutton");
  155. //var condbutton = "";
  156. //if( condbuttonNode == null ) condbutton = "";
  157. //else condbutton = condbuttonNode.text;
  158. var alertcdflagNode = opener.instance1.selectSingleNode("/root/main/cond/alertcdflag");
  159. var alertcdflag = "";
  160. var alertprecondyn = "";
  161. if( alertcdflagNode == null ) alertcdflag = "";
  162. else alertcdflag = alertcdflagNode.text;
  163. var nodeList = instance1.selectNodes("/root/main/opinfo/info[check='true']");
  164. //by sonjy 20100723 if조건도 다중선택 가능하게 변경. 단, clinical rule generator의 경우만.
  165. var inpttypecd = "";
  166. if( checkOpener() ) inpttypecd = opener.model.getValue("/root/main/cond/inpttypecd");
  167. if( condbutton == "IF" && nodeList.length > 1 && inpttypecd != "Q" ){
  168. messageBox ( "IF 조건은 2건 이상 입력", "E001" )
  169. return;
  170. }
  171. // CPG 모니터링에서 열 경우 : 2009. 01. 16 :김영학
  172. for( var i=0; i<nodeList.length; i++ ){
  173. var node = nodeList.item(i);
  174. var selCdNode = node.selectSingleNode("termcd");
  175. var selENmNode = node.selectSingleNode("engnm");
  176. if (condbutton == "IF") {
  177. alertprecondyn = "Y";
  178. }else if (condbutton == "THEN") {
  179. alertprecondyn = "N";
  180. }
  181. detail = detail + "▩" + selCdNode.text + "▦" + selCdNode.text + "▦" + selENmNode.text + "▦N▦N▦▦▦-▦▦" + alertcdflag + "▦-▦" + alertprecondyn + "▦Y▦i";
  182. }
  183. if( detail != "" ){
  184. opener.javascript.setParameter( "SPMMD06100_detlinfo", header + detail );
  185. }
  186. window.close();
  187. }
  188. ]]>
  189. </script>
  190. </xhtml:head>
  191. <xhtml:body pagewidth="866" pageheight="600" style="margin-left:8; margin-top:0; margin-right:8; margin-bottom:0; ">
  192. <treeview id="trv_indxlist" ref="/root/main/indxlist/item" itemsettype="depth" expanddepth="2" style="left:0px; top:30px; width:380px; height:540px; ">
  193. <itemset nodeset="/root/main/indxlist/item">
  194. <label ref="indxhngnm"/>
  195. <value ref="indxcd"/>
  196. <depth ref="depth"/>
  197. </itemset>
  198. <script type="javascript" ev:event="xforms-select">
  199. <![CDATA[
  200. var item = trv_indxlist.item(trv_indxlist.selectedIndex);
  201. if(item.depth == 0){
  202. //상위index만을 클릭한 경우 return한다.
  203. return;
  204. }
  205. var indxcd = trv_indxlist.value;
  206. model.removeNodeset("/root/send");
  207. model.makeValue("/root/send/reqdata/flag", "9");
  208. model.makeValue("/root/send/reqdata/srchindxcd", indxcd);
  209. model.makeValue("/root/send/reqdata/reqflag", model.getValue("/root/main/cond/reqflag"));
  210. model.makeValue("/root/send/reqdata/trgflag", model.getValue("/root/main/cond/trgflag"));
  211. submit("TRMQP01702");
  212. ]]>
  213. </script>
  214. </treeview>
  215. <shape id="roundrect1" appearance="roundrect" ellipsewidth="10" ellipseheight="10" style="left:385px; top:31px; width:465px; height:35px; background-color:#fffbf2; border-color:#ffd799; "/>
  216. <line id="line4" class="line_1" style="x1:0px; y1:25px; x2:380px; y2:25px; "/>
  217. <group id="grp_btn" style="left:0px; top:570px; width:850px; height:27px; ">
  218. <button id="button10" class="btn4_letter2" style="left:733px; top:3px; width:56px; height:22px; ">
  219. <caption>선택</caption>
  220. <script type="javascript" ev:event="DOMActivate">
  221. <![CDATA[
  222. if( condbutton != "" ){
  223. fSetOpenerParameter();
  224. return;
  225. }
  226. var rowCnt = grd_opcdlist.rows;
  227. for(var i=1; i<rowCnt; i++){
  228. var bool = grd_opcdlist.valueMatrix(i,0);
  229. if(bool == "true"){
  230. fSetOpenerValue( i );
  231. }
  232. if(model.getValue("/root/temp/getdata/endVal") == "E")
  233. window.close();
  234. }
  235. ]]>
  236. </script>
  237. </button>
  238. <button id="button9" class="btn4_letter2" style="left:792px; top:3px; width:56px; height:22px; ">
  239. <caption>닫기</caption>
  240. <script type="javascript" ev:event="DOMActivate">
  241. <![CDATA[
  242. window.close();
  243. ]]>
  244. </script>
  245. </button>
  246. </group>
  247. <input id="input1" ref="/root/main/cond/reqdata" class="input_search" style="left:529px; top:39px; width:194px; height:19px; ">
  248. <script type="javascript" ev:event="onkeypress">
  249. <![CDATA[
  250. inputEnterKey("btn_req", "DOMActivate");
  251. ]]>
  252. </script>
  253. </input>
  254. <button id="btn_req" class="btn1_letter2" style="left:784px; top:38px; width:56px; height:22px; ">
  255. <caption>조회</caption>
  256. <script type="javascript" ev:event="DOMActivate">
  257. <![CDATA[
  258. var srchStr = model.getValue("/root/main/cond/reqdata");
  259. if( isNull(srchStr) ){
  260. var msg = messageBox("검색어를 ", "C001");
  261. return;
  262. }else if( getStringLength(srchStr) < 3 ){
  263. var msg = messageBox("2글자 이상 ", "C001");
  264. return;
  265. }else{
  266. fReqopCD();
  267. }
  268. ]]>
  269. </script>
  270. </button>
  271. <line id="line1" style="x1:776px; y1:38px; x2:776px; y2:60px; border-color:#ffe4bb; border-left-style:solid; "/>
  272. <select1 id="radio1" ref="/root/main/cond/srchflag" overflow="visible" appearance="full" cols="3" style="left:395px; top:40px; width:130px; height:20px; border-style:none; ">
  273. <choices>
  274. <item>
  275. <label>전체</label>
  276. <value>A</value>
  277. </item>
  278. <item>
  279. <label>코드</label>
  280. <value>C</value>
  281. </item>
  282. <item>
  283. <label>단어</label>
  284. <value>W</value>
  285. </item>
  286. </choices>
  287. </select1>
  288. <datagrid id="grd_opcdlist" nodeset="/root/main/opinfo/info" caption="^수술코드^영문명^한글명^caption1" colwidth="29, 77, 192, 199, 29" ellipsis="true" explorerbar="sort" mergecellsfixedrows="bycolrec" rowsep="|" colsep="^" tooltip="true" style="left:385px; top:70px; width:464px; height:500px; background-color:#ffffff; border-color:#B0B0B0; ">
  289. <col ref="check" type="checkbox" checkvalue="true,false"/>
  290. <col ref="dispopcd"/>
  291. <col ref="engnm"/>
  292. <col ref="hngnm"/>
  293. <col ref="termcd" visibility="hidden"/>
  294. <script type="javascript" ev:event="ondblclick">
  295. <![CDATA[
  296. iRow = grd_opcdlist.row;
  297. model.setValue("/root/main/opinfo/info[" + iRow + "]/check", "true");
  298. grd_opcdlist.refresh();
  299. if( condbutton != "" ){
  300. fSetOpenerParameter();
  301. return;
  302. }
  303. if(iRow < 1){
  304. return;
  305. }
  306. fSetOpenerValue(iRow);
  307. //if(model.getValue("/root/temp/getdata/endVal") == "E")
  308. window.close();
  309. ]]>
  310. </script>
  311. </datagrid>
  312. <select id="checkbox1" ref="/root/main/cond/reqflag" overflow="visible" appearance="full" style="left:726px; top:40px; width:45px; height:20px; border-style:none; ">
  313. <choices>
  314. <item>
  315. <label>전체</label>
  316. <value>A</value>
  317. </item>
  318. </choices>
  319. </select>
  320. <line id="line2" class="line_1" style="x1:385px; y1:25px; x2:850px; y2:25px; "/>
  321. <button id="btn_termattr" class="btn_sw" group="tab" style="left:74px; top:2px; width:73px; height:22px; ">
  322. <caption>수술용어</caption>
  323. <script type="javascript" ev:event="DOMActivate">
  324. <![CDATA[
  325. var targetFlag = "";
  326. model.setValue("/root/main/cond/trgflag", targetFlag);
  327. grd_opcdlist.caption = "^수술코드^영문명^한글명^caption1";
  328. grd_opcdlist.refresh();
  329. if(trv_indxlist.item(trv_indxlist.selectedIndex)){
  330. trv_indxlist.dispatch("xforms-select");
  331. }
  332. ]]>
  333. </script>
  334. </button>
  335. <button id="btn_icd9" class="btn_sw" group="tab" style="left:0px; top:2px; width:74px; height:22px; ">
  336. <caption>ICD9</caption>
  337. <script type="javascript" ev:event="DOMActivate">
  338. <![CDATA[
  339. model.setValue("/root/main/cond/trgflag", "ICD");
  340. grd_opcdlist.caption = "^ICD9드^영문명^한글명^caption1";
  341. grd_opcdlist.refresh();
  342. if(trv_indxlist.item(trv_indxlist.selectedIndex)){
  343. trv_indxlist.dispatch("xforms-select");
  344. }
  345. ]]>
  346. </script>
  347. </button>
  348. </xhtml:body>
  349. </xhtml:html>