SPMMO02600_처방진검검체.xrw 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486
  1. <?xml version="1.0" encoding="EUC-KR"?>
  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. <![CDATA[]]>
  6. <xhtml:title>진단검사리스트</xhtml:title>
  7. <model id="model1">
  8. <instance id="instance1">
  9. <root xmlns="">
  10. <main>
  11. <prcp>
  12. <prcplist/>
  13. </prcp>
  14. </main>
  15. <prcpcls>
  16. <prcpclslist>
  17. <prcpgrupcd/>
  18. <prcpgrupnm/>
  19. </prcpclslist>
  20. </prcpcls>
  21. <send>
  22. <cond1/>
  23. <cond2/>
  24. <cond3/>
  25. <cond4/>
  26. <cond5/>
  27. <cond6/>
  28. <cond99/>
  29. </send>
  30. <prcpinfo>
  31. <prcpinfolist1>
  32. <titlflag/>
  33. <tclscd/>
  34. <tclsscrnnm/>
  35. <basespccd/>
  36. <lvl/>
  37. <lvldisplay/>
  38. </prcpinfolist1>
  39. </prcpinfo>
  40. <prcpsrch>
  41. <prcplist/>
  42. </prcpsrch>
  43. <srchcond4/>
  44. <usge>diagtest</usge>
  45. <init>
  46. <msrght>
  47. <mouserght>
  48. <label>삭제</label>
  49. <func>fDeleteRow</func>
  50. </mouserght>
  51. </msrght>
  52. <msrghtsrch>
  53. <mouserght>
  54. <label>복사</label>
  55. <func>fCopyRow</func>
  56. </mouserght>
  57. </msrghtsrch>
  58. </init>
  59. <prcpgroup/>
  60. <multisrch>
  61. <multisrchlist>
  62. <prcpcd/>
  63. <prcpdd/>
  64. <insukind/>
  65. <srchkind/>
  66. </multisrchlist>
  67. </multisrch>
  68. <reset>
  69. <multisrchlist>
  70. <prcpcd/>
  71. <prcpdd/>
  72. <insukind/>
  73. <srchkind/>
  74. </multisrchlist>
  75. </reset>
  76. <trgtcdinfo/>
  77. <temp/>
  78. <prcpinfolist>
  79. <prcpinfolist1/>
  80. </prcpinfolist>
  81. </root>
  82. </instance>
  83. <script type="javascript">
  84. <![CDATA[
  85. function fDeleteRow() {
  86. var selectedRows = grd_prcplist.selectedRows;
  87. alert(selectedRows);
  88. for (i= selectedRows-1; i >= 0; i--){
  89. model.removeNode ( "/root/main/prcp/prcplist[" + grd_prcplist.selectedrow(i) + "]" );
  90. }
  91. model.refresh();
  92. }
  93. function fMouseRghtBtnPopupSel() {
  94. if (event.button == 3) {
  95. if (grd_prcplist.rows-grd_prcplist.fixedRows>0) {
  96. setPopupMenu("grd_prcplist",false, "/root/init/msrght/mouserght", "label", "func");
  97. }
  98. }
  99. }
  100. function fMouseRghtBtnPopupSrch() {
  101. if (event.button == 3) {
  102. var ctrl = event.currentTarget;
  103. var grdobj = document.controls.item(ctrl);
  104. if( grdobj.rows-grdobj.fixedRows>0){
  105. setPopupMenu(ctrl, false, "/root/init/msrghtsrch/mouserght", "label", "func");
  106. }
  107. }
  108. }
  109. function fCopyRow() {
  110. button2.dispatch ( "DOMActivate" );
  111. }
  112. function fMakeGrd(){
  113. model.removeNodeset("/root/prcpinfo");
  114. model.makeNode("/root/prcpinfo");
  115. //---------------------------- 추가그리드
  116. var length = model.instances(0).selectNodes( "/root/prcpinfolist/prcpinfolist1").length;
  117. var grdnum = Math.ceil((length)/29);
  118. var left =0;
  119. group1.visible=false;
  120. for (var i = 1; i <= grdnum; i ++){
  121. var grdnm = "grd_prcpsrch" + i;
  122. var refnm = "root/prcpinfo/prcpinfolist" + i;
  123. //그리드생성
  124. var newgrd = group1.createChild("xforms:datagrid", "id:"+ grdnm
  125. + "; nodeset: " + refnm
  126. + ";caption:^^caption; rowsep:|; colsep: ^"
  127. + ";colwidth:26, 24, 125; ellipsis : true"
  128. + "; left: " + left + "px; top:0px; width:211px; height:669px"
  129. + "; extendlastcol : scroll; mergecellsfixedrows : bycolrec; tooltip : true; backcoloralternate:transparent");
  130. var col = newgrd.createChild("xforms:col", "ref:lvl; visibility:hidden");
  131. var col = newgrd.createChild("xforms:col", "ref:lvldisplay; style:border-right-width:0");
  132. var col = newgrd.createChild("xforms:col", "ref:tclsscrnnm; style:border-left-width:0");
  133. newgrd.attribute("ondblclick") = "fGrdOndbClick()";
  134. newgrd.attribute("onclick") = "fGrdOnClick()";
  135. newgrd.attribute("onmousedown") = "fMouseRghtBtnPopupSrch()";
  136. left = left + 214;
  137. newgrd.rebuild();
  138. //원래있던거
  139. var grdsty = document.controls("grd_prcpsrch"+i);
  140. grdsty.rowHeight(0)= 0;
  141. //값을넣어요
  142. var fromnode = 29 * (i-1)+1;
  143. var tonode = fromnode + 28;
  144. var num = 0;
  145. for(var k = fromnode ; k <= tonode ; k++){
  146. num++;
  147. model.makeNode(refnm + "[" +num+ "]");
  148. model.copyNode(refnm + "[" +num+ "]", "/root/prcpinfolist/prcpinfolist1["+k+"]");
  149. //데이터길이까지 갔으면 그만복사해요
  150. if(k==length){
  151. tonode=length;
  152. }
  153. }
  154. group1.refresh();
  155. var lengthnm = model.instances(0).selectNodes( refnm ).length;
  156. for ( var j = 1; j <= lengthnm; j++ ) {
  157. if ( model.getValue ( refnm + "["+ j +"]/titlflag" ) == "Y" ) {
  158. grdsty.rowstyle(j, "data", "background-image") = "../../../com/commonweb/images/grid_bg.gif";
  159. grdsty.rowstyle(j, "data", "background-repeat") = "repeat-x";
  160. grdsty.rowstyle(j, "data", "text-align") = "center";
  161. } else {
  162. grdsty.rowstyle(j, "data", "background-image") = "";
  163. grdsty.rowstyle(j, "data", "text-align") = "left";
  164. }
  165. setTree ( grdsty, 0, 1, false );
  166. }
  167. }
  168. group1.visible=true;
  169. }
  170. ]]>
  171. </script>
  172. <script type="javascript" ev:event="xforms-model-construct-done">
  173. <![CDATA[
  174. grd_prcpcls.backcoloralternate = "transparent";
  175. grd_prcplist.backcoloralternate = "transparent";
  176. model.removeNodeset ( "/root/main/prcp/prcplist" );
  177. submit ( "TRMMO02611" );
  178. grd_prcpcls.row = 1;
  179. fGetPrcpInfo();
  180. ]]>
  181. </script>
  182. <submission id="TRMMO02611" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" resultref="/root/prcpcls"/>
  183. <submission id="TRMMO02612" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" resultref="/root/prcpinfolist"/>
  184. <submission id="TRMMO00100" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" resultref="/root/prcpsrch"/>
  185. <submission id="TRMMO00101" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" resultref="/root/prcpgroup"/>
  186. <submission id="TRMMO00115" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" resultref="/root/prcpsrch"/>
  187. <submission id="TRMMO00207" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" resultref="/root/addsetprcp"/>
  188. <!-- 처방 복사 로직변경 xml 2013.07.05 by 엄영만-->
  189. <submission id="TRMMO00150" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" resultref="/root/prcpcopy"/>
  190. <submission id="TRMMO00151" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" resultref="/root/temp"/>
  191. <submission id="TXMMO00120" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/monitoringlog/reqdata" resultref="/root/monitoringlog"/>
  192. </model>
  193. <script type="javascript" src="../../../com/commonweb/js/common.js"/>
  194. <script type="javascript" src="../../../com/commonweb/js/dateHelper.js"/>
  195. <script type="javascript" src="../../../emr/prcpmngtweb/js/SMMMO00100.js"/>
  196. <script type="javascript" src="../../../com/commonweb/js/tfHelper.js"/>
  197. <script type="javascript" src="../../../com/commonweb/js/stringHelper.js"/>
  198. <script type="javascript" src="../../../emr/prcpmngtweb/js/MMO001.js"/>
  199. <script type="javascript">
  200. <![CDATA[
  201. function fAddPrcpDiagTest ( prcpcd, basespccd, testlrgkind ) {
  202. var prcpdd = "";
  203. if ( !isNull(opener.model.getValue ( "/root/init/prcpdd" ))) {
  204. prcpdd = opener.model.getValue ( "/root/init/prcpdd" );
  205. } else {
  206. prcpdd = getCurrentDate();
  207. }
  208. fPrcpSrchCom ( prcpcd, prcpdd, opener.model.getValue ( "/root/paminfo/list/insukind"), "TRMMO00100", "-", false, "getPrcpCdSrchInfo" );
  209. appendChildPrcp ( "/root/prcpsrch/prcplist" , "/root/main/prcp", "main", "I" );
  210. model.refresh();
  211. }
  212. function fGetPrcpInfo() {
  213. //그리드4번부터 삭제
  214. var del = group1.children;
  215. for (var z = 4; z <= del.length ; z++ ){
  216. group1.removeChild( "grd_prcpsrch"+z );
  217. }
  218. model.setValue ( "/root/send/cond1" , model.getValue ( "/root/prcpcls/prcpclslist[" + grd_prcpcls.row + "]/prcpgrupcd"));
  219. model.setValue ( "/root/send/cond2", getCurrentDate());
  220. model.setValue ( "/root/send/cond3", "1");
  221. submit ( "TRMMO02612");
  222. fMakeGrd();
  223. }
  224. function fMultiSelect(grdobj, grdcnt){
  225. //수정위해서
  226. var length = model.instances(0).selectNodes( "/root/prcpinfolist/prcpinfolist1").length;
  227. var grdnum = Math.ceil((length)/29);
  228. //원래있던
  229. var nextflag = "Y"; //다음 그리드 select여부
  230. var startrow = grdobj.row + 1;
  231. var endrow = startrow;
  232. var titlflag = model.getValue(grdobj.nodeset + "[" + grdobj.row + "]/titlflag");
  233. if(titlflag == "Y"){
  234. for(var i = grdcnt; i <= grdnum ; i++){
  235. for(var endrow = startrow; endrow < grdobj.rows; endrow++){
  236. var titlflag = model.getValue(grdobj.nodeset + "[" + endrow + "]/titlflag");
  237. if(titlflag == "Y"){
  238. nextflag = "N"; //title을 현재 그리드에서 찾은 경우, 다음 그리드 select를 하지 않는다.
  239. break;
  240. }
  241. }
  242. endrow--;
  243. grdobj.select(startrow, 2, endrow, 2) = true;
  244. if(nextflag == "N"){break;}
  245. if(i == grdnum ){break;}
  246. var cnt = parseInt(i) + 1;
  247. objnm="grd_prcpsrch" + cnt;
  248. grdobj = document.controls.item(objnm);
  249. startrow = 1;
  250. endrow = startrow;
  251. }
  252. }
  253. }
  254. //datagrid관련 event
  255. function fGrdOndbClick()
  256. {
  257. var ctrl = event.currentTarget;
  258. var i = ctrl.substr(ctrl.length-1,ctrl.length);
  259. var grdobj = document.controls.item(ctrl);
  260. var prcpcd = model.getValue ( "/root/prcpinfo/prcpinfolist"+i+"[" + grdobj.row + "]/tclscd" );
  261. var basespccd = model.getValue ( "/root/prcpinfo/prcpinfolist"+i+"[" + grdobj.row + "]/basespccd" );
  262. var testlrgkind = model.getValue ( "/root/prcpinfo/prcpinfolist"+i+"[" + grdobj.row + "]/testlrgkind" );
  263. var lvl = model.getValue ( "/root/prcpinfo/prcpinfolist"+i+"[" + grdobj.row + "]/lvl" );
  264. if ( lvl == "1" ) {
  265. fAddPrcpDiagTest ( prcpcd, basespccd, testlrgkind );
  266. }
  267. }
  268. function fGrdOnClick()
  269. {
  270. var ctrl = event.currentTarget;
  271. var num = ctrl.substr(ctrl.length-1,ctrl.length);
  272. //수정해야함
  273. var nextflag = "Y"; //다음 그리드 select여부
  274. var grdobj = document.controls.item(ctrl);
  275. fMultiSelect(grdobj, num);
  276. }
  277. ]]>
  278. </script>
  279. </xhtml:head>
  280. <xhtml:body pagewidth="1120" pageheight="728" guideline="1,1194;">
  281. <datagrid id="grd_prcpcls" nodeset="/root/prcpcls/prcpclslist" caption="진단검사 처방분류" colsep="^" colwidth="155" ellipsis="true" extendlastcol="scroll" mergecellsfixedrows="bycolrec" rowheader="seq" rowsep="|" tooltip="true" style="left:6px; top:27px; width:230px; height:669; ">
  282. <col ref="prcpgrupnm"/>
  283. <script type="javascript" ev:event="onclick">
  284. <![CDATA[
  285. if( grd_prcpcls.isCell(event.target) && grd_prcpcls.row >= grd_prcpcls.fixedRows ){
  286. fGetPrcpInfo();
  287. }
  288. ]]>
  289. </script>
  290. </datagrid>
  291. <datagrid id="grd_prcplist" nodeset="/root/main/prcp/prcplist" caption="^tempcol2^prcpcd^선택처방" colsep="^" colwidth="30, 0, 0, 176" ellipsis="true" extendlastcol="scroll" mergecellsfixedrows="bycolrec" rowsep="|" tooltip="true" style="left:884px; top:27px; width:231px; height:669; ">
  292. <col checkvalue="I,N" ref="status" type="checkbox"/>
  293. <col ref="tempcol2"/>
  294. <col ref="prcpcd"/>
  295. <col ref="prcpnm"/>
  296. <script type="javascript" ev:event="ondblclick">
  297. <![CDATA[
  298. ]]>
  299. </script>
  300. <script type="javascript" ev:event="onclick">
  301. <![CDATA[
  302. if ( isDataCell == true ) {
  303. if ( model.getValue ( "/root/main/prcp/prcplist["+ grd_prcplist.row +"]/status" ) == "N" ) {
  304. model.setValue ( "/root/main/prcp/prcplist["+ grd_prcplist.row +"]/status", "I" );
  305. } else {
  306. model.setValue ( "/root/main/prcp/prcplist["+ grd_prcplist.row +"]/status", "N" );
  307. }
  308. }
  309. model.refresh();
  310. ]]>
  311. </script>
  312. <script type="javascript" ev:event="onmousedown">
  313. <![CDATA[
  314. fMouseRghtBtnPopupSel();
  315. ]]>
  316. </script>
  317. </datagrid>
  318. <line id="line5" class="line_1" style="x1:6; y1:22; x2:236; y2:22; "/>
  319. <line id="line1" class="line_1" style="x1:240; y1:22px; x2:880; y2:22px; "/>
  320. <line id="line2" class="line_1" style="x1:884; y1:22px; x2:1115; y2:22px; "/>
  321. <button id="button1" class="btn4_letter2" style="left:1056px; top:700px; width:56px; height:22px; ">
  322. <caption>취소</caption>
  323. <script type="javascript" ev:event="DOMActivate">
  324. <![CDATA[
  325. window.close();
  326. ]]>
  327. </script>
  328. </button>
  329. <button id="btn_copy" class="btn4_letter2" style="left:998px; top:700px; width:56px; height:22px; ">
  330. <caption>확인</caption>
  331. <script type="javascript" ev:event="DOMActivate">
  332. <![CDATA[
  333. if ( opener.model.getValue ( "/root/usge" ) == "prms" && opener.model.getValue ( "/root/cp" ) != "S" ) {
  334. var srcNodeList = model.instances(0).selectNodes("/root/main/prcp/prcplist");
  335. var destNode = opener.model.instances(0).selectSingleNode("/root/main/prcp");
  336. var cnt = 0;
  337. for ( i=0; i < srcNodeList.length; i++ ){
  338. cnt = i + 1;
  339. if ( model.getValue ( "/root/main/prcp/prcplist[" + cnt + "]/status") == "I" ) {
  340. destNode.appendChild(srcNodeList.item(i).cloneNode(true));
  341. }
  342. }
  343. } else {
  344. addPrcp ( "child", "/root/main/prcp/prcplist", "/root/main/prcp", "Y", "status", "I", grd_prcplist, "Y", "00");
  345. }
  346. window.close();
  347. ]]>
  348. </script>
  349. </button>
  350. <caption id="caption22" class="tit_2" style="left:11px; top:2px; width:125px; height:13px; ">진단검사 리스트</caption>
  351. <input id="input3" ref="/root/srchcond4" class="input_search" style="left:137px; top:0px; width:160px; height:19px; ">
  352. <script type="javascript" ev:event="onkeyup">
  353. <![CDATA[
  354. inputEnterKey ( "btn_srch", "DOMActivate" )
  355. ]]>
  356. </script>
  357. </input>
  358. <button id="btn_srch" class="btn2_letter2" style="left:301px; top:0px; width:42px; height:19px; ">
  359. <caption>검색</caption>
  360. <script type="javascript" ev:event="DOMActivate">
  361. <![CDATA[
  362. model.setValue ( "/root/send/cond2", getCurrentDate());
  363. model.setValue ( "/root/send/cond3", "2");
  364. model.setValue ( "/root/send/cond4", model.getValue("/root/srchcond4").toUpperCase());
  365. submit ( "TRMMO02612" );
  366. //그리드4번부터 삭제
  367. var del = group1.children;
  368. for (var z = 4; z <= del.length ; z++ ){
  369. group1.removeChild( "grd_prcpsrch"+z );
  370. }
  371. fMakeGrd();
  372. ]]>
  373. </script>
  374. </button>
  375. <button id="button2" class="btn2_letter4" style="left:815px; top:0px; width:64px; height:19px; ">
  376. <caption>처방복사</caption>
  377. <script type="javascript" ev:event="DOMActivate">
  378. <![CDATA[
  379. var length = model.instances(0).selectNodes( "/root/prcpinfolist/prcpinfolist1").length;
  380. var grdnum = Math.ceil((length)/29);
  381. var chkcnt = 0;
  382. var addrow = 0;
  383. for (var j = 1; j <= grdnum; j ++){
  384. var grdobj = document.controls.item("grd_prcpsrch"+j);
  385. //하나로합쳐넣은거
  386. var selectedRows = grdobj.selectedRows;
  387. for (var i=0; i< selectedRows; i++) {
  388. var prcpcd = model.getValue ( "/root/prcpinfo/prcpinfolist"+j+"[" + grdobj.selectedrow(i) + "]/tclscd" );
  389. var basespccd = model.getValue ( "/root/prcpinfo/prcpinfolist"+j+"[" + grdobj.selectedrow(i) + "]/basespccd" );
  390. var testlrgkind = model.getValue ( "/root/prcpinfo/prcpinfolist"+j+"[" + grdobj.selectedrow(i) + "]/testlrgkind" );
  391. var lvl = model.getValue ( "/root/prcpinfo/prcpinfolist"+j+"[" + grdobj.selectedrow(i) + "]/lvl" );
  392. if ( lvl == "1" ) {
  393. appendChildPrcp ( "/root/reset/multisrchlist", "/root/multisrch", "main" );
  394. addrow = addrow +1 ;
  395. chkcnt = 0;
  396. model.setValue ( "/root/multisrch/multisrchlist[" + addrow + "]/prcpcd", prcpcd );
  397. model.setValue ( "/root/multisrch/multisrchlist[" + addrow + "]/prcpdd", opener.model.getValue ( "/root/init/prcpdd" ));
  398. model.setValue ( "/root/multisrch/multisrchlist[" + addrow + "]/insukind", opener.model.getValue ( "/root/paminfo/list/insukind"));
  399. model.setValue ( "/root/multisrch/multisrchlist[" + addrow + "]/srchkind", "B2");
  400. }
  401. }
  402. }
  403. var saveInfo = model.instances(0).selectNodes( "/root/multisrch/multisrchlist" );
  404. model.setValue ( "/root/send/cond1", getNodeListCSV (saveInfo));
  405. submit ( "TRMMO00115", false );
  406. appendChildPrcp ( "/root/prcpsrch/prcplist" , "/root/main/prcp", "main", "" );
  407. model.refresh();
  408. model.removeNodeset ( "/root/multisrch/multisrchlist" );
  409. //처방복사 이후, 그리드 select를 해체한다.
  410. for (var i = 1; i <= grdnum; i ++){
  411. var grdobj = document.controls.item("grd_prcpsrch"+i);
  412. grdobj.select(0,0) = true;
  413. }
  414. ]]>
  415. </script>
  416. </button>
  417. <button id="button3" class="btn2_letter2" style="left:1070px; top:0px; width:42px; height:19px; ">
  418. <caption>삭제</caption>
  419. <script type="javascript" ev:event="DOMActivate">
  420. <![CDATA[
  421. for (i= grd_prcplist.rows-1; i >= 1; i--){
  422. if ( model.getValue ( "/root/main/prcp/prcplist[" + i + "]/status" ) == "I" ) {
  423. model.removeNode ( "/root/main/prcp/prcplist[" + i + "]" );
  424. }
  425. }
  426. model.refresh();
  427. ]]>
  428. </script>
  429. </button>
  430. <group id="group1" style="left:240px; top:27; width:640px; height:688; "/>
  431. </xhtml:body>
  432. </xhtml:html>