SPMMD06400_CPG투약코드선택.xrw 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450
  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. <prcpclskindcd>A</prcpclskindcd>
  12. <alertcdflag/>
  13. <prcpclscd/>
  14. <prcpflag/>
  15. <prcpcd/>
  16. </cond>
  17. <codegroupinfo>
  18. <grouplist/>
  19. </codegroupinfo>
  20. <testinfo>
  21. <testlist/>
  22. </testinfo>
  23. <selecttestinfo>
  24. <selecttestlist/>
  25. </selecttestinfo>
  26. </main>
  27. <send>
  28. <reqdata/>
  29. </send>
  30. <init/>
  31. <hidden/>
  32. </root>
  33. </instance>
  34. <script type="javascript" ev:event="xforms-ready">
  35. <![CDATA[
  36. var openflag = opener.model.getValue("/root/main/cond/condbutton");
  37. var sRow = "";
  38. var alertcdflag = "";
  39. if (openflag == "IF") {
  40. alertcdflag = opener.model.getValue("/root/main/cond/alertcdflag");
  41. } else {
  42. alertcdflag = opener.model.getValue("/root/main/cond/alertcdflag");
  43. }
  44. model.removeNodeset("/root/main/testinfo/testlist");
  45. model.removeNodeset("/root/main/selecttestinfo/selecttestlist");
  46. model.setValue("/root/main/cond/alertcdflag", alertcdflag);
  47. submit("TRMMD06401");
  48. //btn_srchreq.dispatch("DOMActivate");
  49. model.refresh();
  50. ]]>
  51. </script>
  52. <submission id="TRMMD06401" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/main/cond" resultref="/root/main/testinfo"/>
  53. <submission id="TRMMD06402" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/reqdata" resultref="/root/main/testinfo"/>
  54. </model>
  55. <script type="javascript" src="../../../com/commonweb/js/common.js"/>
  56. <script type="javascript" src="../../../com/basiccodeweb/js/ZBC001.js"/>
  57. <script type="javascript" src="../../../com/commonweb/js/numericHelper.js"/>
  58. <script type="javascript" src="../../../com/commonweb/js/stringHelper.js"/>
  59. <script type="javascript" src="../../../com/commonweb/js/dateHelper.js"/>
  60. <script type="javascript" src="../../../com/commonweb/js/tfHelper.js"/>
  61. <script type="javascript" src="../../../com/commonweb/js/utilHelper.js"/>
  62. <script type="javascript" src="../../../emr/cpgweb/js/MMPCommon.js"/>
  63. <script type="javascript">
  64. <![CDATA[
  65. var openflag =""
  66. /**
  67. * @desc : 단일 진단코드 선택, 그리드 클릭
  68. * @
  69. * @param : trgtrow - 현재 클릭한 그리드의 row 위치
  70. * @return :
  71. * @---------------------------------------------------
  72. */
  73. function fAddDiag(trgtrow){
  74. var itemcd = model.getValue("/root/main/testinfo/testlist[" + trgtrow + "]/itemcd");
  75. var grupcd = model.getValue("/root/main/testinfo/testlist[" + trgtrow + "]/grupcd");
  76. var itemnm = model.getValue("/root/main/testinfo/testlist[" + trgtrow + "]/itemnm");
  77. var unitnm = model.getValue("/root/main/testinfo/testlist[" + trgtrow + "]/unitnm");
  78. var fndrow = grd_selectlist.findRow(itemcd, 1, 0, "true", "true");
  79. if(fndrow < 0){
  80. grd_selectlist.addRow(false);
  81. currow = grd_selectlist.row;
  82. model.makeValue("/root/main/selecttestinfo/selecttestlist[" + currow + "]/testitemcd" , grupcd);
  83. model.makeValue("/root/main/selecttestinfo/selecttestlist[" + currow + "]/testcd" , itemcd);
  84. model.makeValue("/root/main/selecttestinfo/selecttestlist[" + currow + "]/testnm" , itemnm);
  85. model.makeValue("/root/main/selecttestinfo/selecttestlist[" + currow + "]/unitnm" , unitnm);
  86. model.makeValue("/root/main/selecttestinfo/selecttestlist[" + currow + "]/lvalappflag" , "N");
  87. model.makeValue("/root/main/selecttestinfo/selecttestlist[" + currow + "]/hvalappflag" , "N");
  88. }
  89. model.refresh();
  90. }
  91. /**
  92. * @desc : 다수의 진단코드 선택 후, 진단추가버튼 클릭
  93. * @ : 1. check box에 선택된 진단을 추가
  94. * @ : 2. ctrl + mouse select로 선택된 진단을 추가
  95. * @param :
  96. * @return :
  97. * @---------------------------------------------------
  98. */
  99. function fAppendDiagCD(){
  100. var totrow = grd_codelist.rows;
  101. for(var i = 1; i < totrow; i++){
  102. var bflag = grd_codelist.valueMatrix(i, grd_codelist.colRef("boolflag"));
  103. if(bflag == "Y"){
  104. fAddDiag(i);
  105. grd_codelist.valueMatrix(i, grd_codelist.colRef("boolflag")) = "N"; //복사한 진단은 check box의 값을 해체
  106. }
  107. }
  108. grd_selectlist.rebuild();
  109. }
  110. /**
  111. * @desc : 진단코드리스트 전달
  112. * @
  113. * @param :
  114. * @return :
  115. * @---------------------------------------------------
  116. */
  117. function fSendItemCDList(){
  118. if(checkOpener()){
  119. var condbutton = opener.model.getValue("/root/main/cond/condbutton");
  120. var alertcdflag = opener.model.getValue("/root/main/cond/alertcdflag");
  121. if ( grd_selectlist.rows < "1" ) {
  122. messageBox ( "선택된 처방이", "I004" );
  123. }
  124. //var rtn1 = getItemNodeListCSV ( model.instances(0).selectNodes( "/root/main/selectitemlnfo/selectitemlist" ));
  125. var rtn = "testitemcd▦testcd▦testnm▦hvalappflag▦lvalappflag▦refhval▦reflval▦unitnm▦refseq▦alertcdflag▦alertrem▦alertprecondyn▦checkyn▦m" ;
  126. var Select_Path ="/root/main/selecttestinfo/selecttestlist"
  127. for (i = 1; i < grd_selectlist.rows; i ++) {
  128. var testitemcd = model.getValue(Select_Path + "[" + i + "]/testitemcd");
  129. var testcd = model.getValue(Select_Path + "[" + i + "]/testcd");
  130. var testnm = model.getValue(Select_Path + "[" + i + "]/testnm");
  131. var hvalappflag = model.getValue(Select_Path + "[" + i + "]/hvalappflag");
  132. var lvalappflag = model.getValue(Select_Path + "[" + i + "]/lvalappflag");
  133. var refhval = model.getValue(Select_Path + "[" + i + "]/refhval");
  134. var reflval = model.getValue(Select_Path + "[" + i + "]/reflval");
  135. var unitnm = model.getValue(Select_Path + "[" + i + "]/unitnm");
  136. var refseq = model.getValue(Select_Path + "[" + i + "]/refseq");
  137. var alertrem = model.getValue(Select_Path + "[" + i + "]/alertrem");
  138. var alertprecondyn = "N"
  139. var checkyn = model.getValue(Select_Path + "[" + i + "]/checkyn");
  140. var m = model.getValue(Select_Path + "[" + i + "]/m");
  141. rtn += "▩" + testitemcd + "▦" + testcd + "▦" + testnm + "▦" + hvalappflag + "▦" + lvalappflag+ "▦" + refhval + "▦" + reflval + "▦" + unitnm + "▦" + "▦" + alertcdflag + "▦" + alertrem + "▦" + alertprecondyn + "▦" + "▦";
  142. }
  143. opener.javascript.setParameter( "SPMMD06100_detlinfo", rtn );
  144. window.close();
  145. }
  146. }
  147. function getItemNodeListCSV(nodeList) {
  148. if( nodeList.length == 0 ){
  149. return;
  150. }
  151. var sColSep = "▦";
  152. var sRowSep = "▩";
  153. var rCSV = "";
  154. var childNodeList = nodeList.item(0).childNodes;
  155. var childNodeCnt = childNodeList.length;
  156. if( childNodeCnt == 0 ){
  157. return;
  158. }
  159. var i, j;
  160. for( i = 0; i < childNodeCnt - 1; i++) {
  161. rCSV += childNodeList.item(i).nodeName + sColSep;
  162. }
  163. rCSV += childNodeList.item(i).nodeName;
  164. var node;
  165. var cnt = 1;
  166. var selCnt = 0;
  167. while( node = nodeList.nextNode() ) {
  168. rCSV += sRowSep;
  169. childNodeList = node.childNodes;
  170. for( i = 0; i < childNodeCnt - 1; i++) {
  171. rCSV += childNodeList.item(i).text + sColSep;
  172. }
  173. rCSV += childNodeList.item(i).text ;
  174. selCnt++;
  175. }
  176. if ( selCnt == 0 ) {
  177. return "N"
  178. } else {
  179. return rCSV;
  180. }
  181. }
  182. /**
  183. * @desc : 진단코드 전달
  184. * @
  185. * @param :
  186. * @return :
  187. * @---------------------------------------------------
  188. */
  189. function fSendDiag(currow){
  190. if(checkOpener()){
  191. var nodelist = model.instance1.selectNodes("/root/main/selecttestinfo/selecttestlist[" + currow + "]");
  192. var node = nodelist.item(0);
  193. var nodepath = opener.javascript.getParameter("SPMQP00300_param_nodepath");
  194. if(nodepath == ""){ //opener의 특정 nodepath를 넘겨주지 않은 경우
  195. var selectnode = opener.instance1.selectSingleNode("/root/temp/selectitemlist");
  196. if(selectnode == null){ //opener에 node를 만든다.
  197. opener.model.makeNode("/root/temp/selectitemlist");
  198. }
  199. model.copyNode(opener.root.temp.selectitemlist, node);
  200. }else{ //opener의 특정 nodepath를 넘겨준 경우
  201. var selectnode = opener.instance1.selectSingleNode(nodepath);
  202. if(selectnode == null){ //opener에 node를 만든다.
  203. opener.model.makeNode(nodepath);
  204. }
  205. opener.model.copyNode(nodepath, node); //opener에 복사
  206. }
  207. opener.javascript.setParameter("SPMQP00300_rtn_useyn", "Y");
  208. }else{
  209. messageBox("상위 화면이 변경되어 데이터를 전달", "E001");
  210. }
  211. window.close();
  212. }
  213. ]]>
  214. </script>
  215. </xhtml:head>
  216. <xhtml:body pagewidth="790" pageheight="630" guideline="2,625;" style="margin-left:8; margin-top:0; margin-right:8; margin-bottom:0; ">
  217. <line id="line15" class="line_1" style="x1:379px; y1:60px; x2:774px; y2:60px; "/>
  218. <group id="grp_btn" style="left:380px; top:595px; width:390px; height:30px; ">
  219. <button id="button7" class="btn4_letter2" disable.background-image="../../../com/commonweb/images/dis_btn4_letter2.gif" style="left:274px; top:4px; width:56px; height:22px; background-image:../../../com/commonweb/images/btn4_letter2.gif; ">
  220. <caption>등록</caption>
  221. <script type="javascript" ev:event="DOMActivate">
  222. <![CDATA[
  223. fSendItemCDList();
  224. ]]>
  225. </script>
  226. </button>
  227. <button id="button3" class="btn4_letter2" disable.background-image="../../../com/commonweb/images/dis_btn4_letter2.gif" style="left:332px; top:4px; width:56px; height:22px; background-image:../../../com/commonweb/images/btn4_letter2.gif; ">
  228. <caption>닫기</caption>
  229. <script type="javascript" ev:event="DOMActivate">
  230. <![CDATA[
  231. window.close();
  232. ]]>
  233. </script>
  234. </button>
  235. </group>
  236. <shape id="roundrect3" appearance="roundrect" ellipsewidth="20" ellipseheight="20" style="left:378px; top:17px; width:392px; height:40px; "/>
  237. <datagrid id="grd_codelist" nodeset="/root/main/testinfo/testlist" caption="선택^depth^grupcd^처방코드^처방명^단위" colsep="^" colwidth="50, 10, 15, 112, 205, 10" mergecellsfixedrows="bycolrec" rowsep="|" style="left:378px; top:65px; width:392px; height:360px; ">
  238. <col checkvalue="Y,N" ref="boolflag" type="checkbox"/>
  239. <col ref="depth" visibility="hidden"/>
  240. <col ref="grupcd" visibility="hidden"/>
  241. <col ref="itemcd"/>
  242. <col ref="itemnm"/>
  243. <col ref="unitnm" visibility="hidden"/>
  244. <script type="javascript" ev:event="ondblclick">
  245. <![CDATA[
  246. fAddDiag(grd_codelist.row);
  247. model.refresh();
  248. ]]>
  249. </script>
  250. <script type="javascript" ev:event="onclick">
  251. <![CDATA[
  252. if (isDataCell() == true ) {
  253. var grdcol = grd_codelist.col
  254. var currow = grd_codelist.row
  255. var rows = grd_codelist.rows
  256. var grdrow = rows - currow;
  257. var rowno = rows - 1;
  258. if (grdcol == "0") {
  259. var boolflag = model.getValue("/root/main/testinfo/testlist[" + currow + "]/boolflag");
  260. if (boolflag == "N" ) {
  261. model.setValue("/root/main/testinfo/testlist[" + currow + "]/boolflag", "N");
  262. } else {
  263. model.setValue("/root/main/testinfo/testlist[" + currow + "]/boolflag", "Y");
  264. }
  265. var depth = model.getValue("/root/main/testinfo/testlist[" + currow + "]/depth");
  266. if (depth == "1") {
  267. for (i = 0 ; i < grdrow ; i ++ ) {
  268. currow = currow + 1;
  269. depth = model.getValue("/root/main/testinfo/testlist[" + currow + "]/depth");
  270. if (depth != "1") {
  271. if (currow <= rowno) {
  272. var boolflag = model.getValue("/root/main/testinfo/testlist[" + currow + "]/boolflag")
  273. if (boolflag == "Y") {
  274. model.setValue("/root/main/testinfo/testlist[" + currow + "]/boolflag", "N");
  275. } else {
  276. model.setValue("/root/main/testinfo/testlist[" + currow + "]/boolflag", "Y");
  277. }
  278. }
  279. } else if (depth == "1") {
  280. return;
  281. }
  282. }
  283. }
  284. }
  285. }
  286. model.refresh();
  287. ]]>
  288. </script>
  289. </datagrid>
  290. <datagrid id="grd_selectlist" nodeset="/root/main/selecttestinfo/selecttestlist" autoresize="true" caption="grupcd^검사코드^검사명^하한치^하한치^상한치^상한치^단위^refseq^alertcdflag^alertrem^alertprecondyn^checkyn^m" colsep="^" colwidth="0, 130, 236, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10" mergecellsfixedrows="bycolrec" rowsep="|" style="left:378px; top:453px; width:392px; height:142px; ">
  291. <col ref="testitemcd" visibility="hidden"/>
  292. <col ref="testcd"/>
  293. <col ref="testnm"/>
  294. <col ref="reflval" type="input" visibility="hidden"/>
  295. <col ref="lvalappflag" type="combo" visibility="hidden">
  296. <choices>
  297. <item>
  298. <label>이상</label>
  299. <value>U</value>
  300. </item>
  301. <item>
  302. <label>이하</label>
  303. <value>D</value>
  304. </item>
  305. <item>
  306. <label>-</label>
  307. <value>N</value>
  308. </item>
  309. </choices>
  310. </col>
  311. <col ref="refhval" type="input" visibility="hidden"/>
  312. <col ref="hvalappflag" type="combo" visibility="hidden">
  313. <choices>
  314. <item>
  315. <label>이상</label>
  316. <value>U</value>
  317. </item>
  318. <item>
  319. <label>이하</label>
  320. <value>D</value>
  321. </item>
  322. <item>
  323. <label>-</label>
  324. <value>N</value>
  325. </item>
  326. </choices>
  327. </col>
  328. <col ref="unitnm" visibility="hidden"/>
  329. <col ref="refseq" visibility="hidden"/>
  330. <col ref="alertcdflag" visibility="hidden"/>
  331. <col ref="alertrem" visibility="hidden"/>
  332. <col ref="alertprecondyn" visibility="hidden"/>
  333. <col ref="checkyn" visibility="hidden"/>
  334. <col ref="m" visibility="hidden"/>
  335. </datagrid>
  336. <button id="btn_srchreq" class="btn1_letter2" navindex="2" disable.background-image="../../../com/commonweb/images/dis_btn4_letter2.gif" style="left:709px; top:27px; width:56px; height:22px; background-image:../../../com/commonweb/images/btn4_letter2.gif; ">
  337. <caption>조회</caption>
  338. <script type="javascript" ev:event="DOMActivate">
  339. <![CDATA[
  340. if( isNull(model.getValue("/root/main/cond/prcpflag")) ){
  341. messageBox("검색 조건을", "C002");
  342. return;
  343. }
  344. if( isNull(model.getValue("/root/main/cond/prcpcd")) ){
  345. messageBox("검색어를", "C002");
  346. return;
  347. }
  348. model.copyNode("/root/send/reqdata", "/root/main/cond");
  349. model.setValue("/root/send/reqdata/prcpclscd", "");
  350. submit("TRMMD06402");
  351. model.refresh();
  352. ]]>
  353. </script>
  354. </button>
  355. <button id="button6" class="btn2_letter4" disable.background-image="../../../com/commonweb/images/dis_btn2_letter2.gif" style="left:662px; top:428px; width:64px; height:19px; background-image:../../../com/commonweb/images/btn2_letter2.gif; ">
  356. <caption>항목추가</caption>
  357. <script type="javascript" ev:event="DOMActivate">
  358. <![CDATA[
  359. fAppendDiagCD();
  360. ]]>
  361. </script>
  362. </button>
  363. <caption id="caption4" class="search_name" style="left:382px; top:28px; width:70px; height:17px; ">검색 :</caption>
  364. <caption id="caption5" class="tit_2" style="left:384px; top:431px; width:142px; height:13px; ">선택 투약코드</caption>
  365. <select1 id="radio2" ref="/root/main/cond/prcpflag" navindex="3" appearance="full" cellspacing="10" cols="2" overflow="visible" style="left:443px; top:28px; width:136px; height:20px; border-style:none; ">
  366. <choices>
  367. <item>
  368. <label>처방코드</label>
  369. <value>C</value>
  370. </item>
  371. <item>
  372. <label>처방명</label>
  373. <value>N</value>
  374. </item>
  375. </choices>
  376. </select1>
  377. <input id="input3" ref="/root/main/cond/prcpcd" navindex="1" style="left:579px; top:28px; width:120px; height:19px; ">
  378. <script type="javascript" ev:event="onkeyup">
  379. <![CDATA[
  380. if(event.keyCode == "13") {
  381. inputEnterKey("btn_srchreq", "DOMActivate");
  382. }
  383. ]]>
  384. </script>
  385. </input>
  386. <caption id="caption14" class="tit_2" style="left:0px; top:0px; width:142px; height:14px; ">투약코드 정보</caption>
  387. <line id="line1" class="line_1" style="x1:380px; y1:448px; x2:771px; y2:448px; "/>
  388. <button id="button1" class="btn2_letter2" disable.background-image="../../../com/commonweb/images/dis_btn2_letter2.gif" style="left:728px; top:428px; width:42px; height:19px; background-image:../../../com/commonweb/images/btn2_letter2.gif; ">
  389. <caption>삭제</caption>
  390. <script type="javascript" ev:event="DOMActivate">
  391. <![CDATA[
  392. var selectedRowList = grd_selectlist.selectedRows;
  393. if( selectedRowList > 0 ){
  394. for (var i=selectedRowList-1; i>=0; i--) {
  395. model.removeNodeset("/root/main/selecttestinfo/selecttestlist[" + grd_selectlist.selectedrow(i) + "]");
  396. }
  397. grd_selectlist.refresh();
  398. }
  399. ]]>
  400. </script>
  401. </button>
  402. <treeview id="trv_prcpclscdlist" ref="/root/main/cond/prcpclscd" expanddepth="1" itemsettype="depth" style="left:0px; top:17px; width:376px; height:579px; border-style:solid; ">
  403. <itemset nodeset="/root/main/codegroupinfo/grouplist">
  404. <label ref="prcpclsnm"/>
  405. <value ref="prcpclscd"/>
  406. <depth ref="lvl"/>
  407. </itemset>
  408. <script type="javascript" ev:event="xforms-select">
  409. <![CDATA[
  410. //var slePrcpClsCd = trv_prcpclscdlist.value;
  411. //var tRow = trv_prcpclscdlist.focusIndex + 1;
  412. //var slePrcpClsCd = model.getValue("/root/main/codegroupinfo/grouplist[" + tRow + "]/prcpclscd");
  413. model.copyNode("/root/send/reqdata", "/root/main/cond");
  414. model.setValue("/root/send/reqdata/prcpflag", "");
  415. model.setValue("/root/send/reqdata/prcpcd", "");
  416. submit("TRMMD06402");
  417. model.refresh();
  418. ]]>
  419. </script>
  420. </treeview>
  421. </xhtml:body>
  422. </xhtml:html>