SPMMD06300_CPG기초임상정보선택.xrw 18 KB

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