SPCMS00700_환자조회및추가.xrw 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456
  1. <?xml version="1.0" encoding="EUC-KR"?>
  2. <!--
  3. * Name : SPCMS00700_환자조회및추가
  4. * Summary : 환자 조회 및 추가
  5. * Programmer : 차재훈
  6. * Date Written : 2008.07.28
  7. * History : 2008.07.28
  8. * Remark :
  9. -->
  10. <?xml-stylesheet href="../../../com/commonweb/css/common.css" type="text/css" ?>
  11. <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">
  12. <xhtml:head>
  13. <xhtml:title>환자 조회 및 추가</xhtml:title>
  14. <model id="model1">
  15. <instance id="instance1">
  16. <root xmlns="">
  17. <main>
  18. <innrgrupinfo>
  19. <innrgruplist>
  20. <innrgrupnm/>
  21. <innrgrupid/>
  22. </innrgruplist>
  23. </innrgrupinfo>
  24. <list>
  25. <userlist>
  26. <chk/>
  27. <pid/>
  28. <hngnm/>
  29. <rrgstno/>
  30. <mpphontel/>
  31. <hometel/>
  32. <detladdr/>
  33. <zipcd1/>
  34. <zipcd2/>
  35. <email/>
  36. <brthdd/>
  37. <lunarsolarflag/>
  38. <faxno/>
  39. </userlist>
  40. </list>
  41. </main>
  42. <send>
  43. <innrgrupid/>
  44. <publyn/>
  45. <innrgruplist/>
  46. </send>
  47. <search>
  48. <pid/>
  49. <hngnm/>
  50. <rrgstno1/>
  51. <mpphontel/>
  52. <hometel/>
  53. </search>
  54. <temp>
  55. <searchtype/>
  56. <searchstring/>
  57. <totalcount>0</totalcount>
  58. <chckcount>0</chckcount>
  59. <userlist>
  60. <innrclntnm/>
  61. <pid/>
  62. <mpphontel/>
  63. <detladdr/>
  64. <zipcd1/>
  65. <zipcd2/>
  66. <innrgrupid/>
  67. <innrclntflag/>
  68. <email/>
  69. <brthdd/>
  70. <lunarsolarflag/>
  71. <faxno/>
  72. </userlist>
  73. <publkey>
  74. <fwdpublyn/>
  75. <fwdinnrgrupid/>
  76. </publkey>
  77. </temp>
  78. <init>
  79. </init>
  80. </root>
  81. </instance>
  82. <submission id="TRCMS00701" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/search" resultref="/root/main/list"/>
  83. <submission id="TRCCN00501" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" resultref="/root/main/innrgrupinfo/innrgruplist"/>
  84. <submission id="TXCMS00502" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" replace="instance"/>
  85. </model>
  86. <script type="javascript" src="../../../com/commonweb/js/common.js"/>
  87. <script type="javascript" src="../../../com/commonweb/js/dateHelper.js"/>
  88. <script type="javascript" src="../../../com/commonweb/js/tfHelper.js"/>
  89. <script type="javascript" src="../../../crm/crmweb/js/CCZ001.js"/>
  90. <script type="javascript" ev:event="xforms-ready">
  91. <![CDATA[
  92. var rePublyn = model.getValue("/root/temp/publkey/fwdpublyn")
  93. var reInnrgrupid = model.getValue("/root/temp/publkey/fwdinnrgrupid")
  94. //검색조건 직원명 선택
  95. cmb_searchtype.select(0);
  96. // 직원 조회 그리드의 col을 초기화 시켜준다.
  97. model.removenodeset("/root/main/list/userlist");
  98. model.removenodeset("/root/main/innrgrupinfo/innrgruplist");
  99. if ( rePublyn == "" || rePublyn == null ) {
  100. // 초기화면 개인주소록으로 설정
  101. rdo_publyn.value = "N";
  102. } else {
  103. model.setValue("/root/send/publyn" , rePublyn);
  104. model.setValue("/root/send/innrgrupid" , reInnrgrupid);
  105. }
  106. submit("TRCCN00501");
  107. model.refresh();
  108. ]]>
  109. </script>
  110. <script type="javascript">
  111. <![CDATA[
  112. //----------------------------------------//
  113. // 그리드 전체 행 선택 함수 //
  114. //----------------------------------------//
  115. function fGridAllRow(grid) {
  116. var rows = grid.rows;
  117. var fRow = grid.fixedRows;
  118. var chk = grid.valueMatrix(1,grid.colRef("chk"));
  119. if(chk == "N"){
  120. for(var i=fRow; i<rows; i++){
  121. grid.valueMatrix(i,grid.colRef("chk"))="Y";
  122. }
  123. }else{
  124. for(var i=fRow; i<rows; i++){
  125. grid.valueMatrix(i,grid.colRef("chk"))="N";
  126. }
  127. }
  128. model.refresh();
  129. }
  130. //===================//
  131. // 체크된 행을 저장 //
  132. //===================//
  133. function fGridRowAddRow(sndGrid, rcvGrid){
  134. var sRows = sndGrid.rows;
  135. var sfRow = sndGrid.fixedRows;
  136. var cntRows = sndGrid.rows-1;
  137. var rRows = rcvGrid.rows;
  138. var innrgrupid = model.getValue("/root/send/innrgrupid");
  139. var innrclntflag = "1"; //환자
  140. var gridupdate = "";
  141. for(var i=sfRow; i<sRows; i++){
  142. if(sndGrid.valueMatrix(i,sndGrid.colRef("chk")) == "Y" ){
  143. rcvGrid.addRow();
  144. rcvGrid.valueMatrix(rRows, rcvGrid.colRef("innrgrupid")) = innrgrupid;
  145. rcvGrid.valueMatrix(rRows, rcvGrid.colRef("innrclntflag")) = innrclntflag;
  146. rcvGrid.valueMatrix(rRows, rcvGrid.colRef("innrclntnm")) = sndGrid.valueMatrix(i,sndGrid.colRef("hngnm"));
  147. rcvGrid.valueMatrix(rRows, rcvGrid.colRef("pid")) = sndGrid.valueMatrix(i,sndGrid.colRef("pid"));
  148. rcvGrid.valueMatrix(rRows, rcvGrid.colRef("mpphontel")) = sndGrid.valueMatrix(i,sndGrid.colRef("mpphontel"));
  149. rcvGrid.valueMatrix(rRows, rcvGrid.colRef("detladdr")) = sndGrid.valueMatrix(i,sndGrid.colRef("detladdr"));
  150. rcvGrid.valueMatrix(rRows, rcvGrid.colRef("zipcd1")) = sndGrid.valueMatrix(i,sndGrid.colRef("zipcd1"));
  151. rcvGrid.valueMatrix(rRows, rcvGrid.colRef("zipcd2")) = sndGrid.valueMatrix(i,sndGrid.colRef("zipcd2"));
  152. rcvGrid.valueMatrix(rRows, rcvGrid.colRef("email")) = sndGrid.valueMatrix(i,sndGrid.colRef("email"));
  153. rcvGrid.valueMatrix(rRows, rcvGrid.colRef("brthdd")) = sndGrid.valueMatrix(i,sndGrid.colRef("brthdd"));
  154. rcvGrid.valueMatrix(rRows, rcvGrid.colRef("lunarsolarflag")) = sndGrid.valueMatrix(i,sndGrid.colRef("lunarsolarflag"));
  155. rcvGrid.valueMatrix(rRows, rcvGrid.colRef("faxno")) = sndGrid.valueMatrix(i,sndGrid.colRef("faxno"));
  156. rRows++;
  157. }//if
  158. }//for
  159. model.refresh();
  160. if(rRows < 2){
  161. messageBox("선택된 목록이","I004");
  162. model.setFocus("grd_patlist");
  163. return;
  164. }else{
  165. gridupdate = rcvGrid.getUpdateData();
  166. model.setValue("/root/send/innrgruplist", gridupdate);
  167. submit("TXCMS00502");//목록 추가
  168. //부모창 새로고침
  169. opener.javaScript.fGetRefreshTree(innrgrupid);
  170. //초기화
  171. model.removenodeset("/root/main/list/userlist");
  172. model.resetInstanceNode("/root/temp/userlist");
  173. model.setValue("/root/temp/searchstring", "");
  174. model.refresh();
  175. //window.close();
  176. }
  177. }
  178. ]]>
  179. </script>
  180. </xhtml:head>
  181. <xhtml:body pagewidth="770" pageheight="430" guideline="2,410;1,750;" style="margin-left:8; margin-top:0; margin-right:8; margin-bottom:0; ">
  182. <caption id="caption9" class="tit_2" style="left:0px; top:67px; width:95px; height:14px; ">환자 조회</caption>
  183. <group id="grp_johe" style="left:0px; top:16px; width:750px; height:35px; vertical-align:top; ">
  184. <shape id="roundrect1" class="roundrect_search" appearance="roundrect" ellipsewidth="10" ellipseheight="10" style="left:0px; top:0px; width:750px; height:35px; background-color:#fffbf2; border-color:#ffd799; "/>
  185. <caption id="caption2" class="search_name" style="left:26px; top:9px; width:104px; height:17px; ">검색조건 :</caption>
  186. <select1 id="cmb_searchtype" ref="/root/temp/searchtype" navindex="1" appearance="minimal" style="left:120px; top:8px; width:130px; height:19px; ">
  187. <choices>
  188. <item>
  189. <label>등록번호</label>
  190. <value>1</value>
  191. </item>
  192. <item>
  193. <label>환자명</label>
  194. <value>2</value>
  195. </item>
  196. <item>
  197. <label>주민번호 앞6자리</label>
  198. <value>3</value>
  199. </item>
  200. <item>
  201. <label>휴대폰번호</label>
  202. <value>4</value>
  203. </item>
  204. <item>
  205. <label>집 전화번호</label>
  206. <value>5</value>
  207. </item>
  208. </choices>
  209. </select1>
  210. <input id="ipt_searchitem" ref="/root/temp/searchstring" class="input_s_essential" navindex="2" style="left:255px; top:8px; width:130px; height:19px; ">
  211. <script type="javascript" ev:event="onkeyup">
  212. <![CDATA[
  213. inputEnterKey("btn_search", "DOMActivate");
  214. ]]>
  215. </script>
  216. </input>
  217. <line id="line13" style="x1:640px; y1:7px; x2:640px; y2:29px; border-color:#ffe4bb; border-left-style:solid; "/>
  218. <button id="btn_search" class="btn1_letter2" navindex="3" style="left:670px; top:5px; width:56px; height:22px; ">
  219. <caption>조회</caption>
  220. <script type="javascript" ev:event="DOMActivate">
  221. <![CDATA[
  222. if (isRequiredControls("ipt_searchitem")){
  223. var searchstring = model.getValue("/root/temp/searchstring");
  224. if(searchstring != ""){
  225. if(model.getValue("/root/temp/searchtype")=="1"){//등록번호
  226. if(searchstring.length > 3){
  227. model.setValue("/root/search/pid", searchstring);
  228. model.setValue("/root/search/hngnm", "");
  229. model.setValue("/root/search/rrgstno1", "");
  230. model.setValue("/root/search/mpphontel", "");
  231. model.setValue("/root/search/hometel", "");
  232. }else{
  233. messageBox("등록번호가 4자리이상 입력되지","E007");
  234. return;
  235. }
  236. }else if(model.getValue("/root/temp/searchtype")=="2") {//환자명
  237. if(searchstring.length > 1){
  238. model.setValue("/root/search/hngnm", searchstring);
  239. model.setValue("/root/search/rrgstno1", "");
  240. model.setValue("/root/search/mpphontel", "");
  241. model.setValue("/root/search/hometel", "");
  242. model.setValue("/root/search/pid", "");
  243. }else{
  244. messageBox("환자명이 2자리이상 입력되지","E007");
  245. return;
  246. }
  247. }else if(model.getValue("/root/temp/searchtype")=="3") {//주민번호
  248. if(searchstring.length > 4){
  249. model.setValue("/root/search/rrgstno1", searchstring);
  250. model.setValue("/root/search/hngnm", "");
  251. model.setValue("/root/search/mpphontel", "");
  252. model.setValue("/root/search/hometel", "");
  253. model.setValue("/root/search/pid", "");
  254. }else{
  255. messageBox("주민번호가 5자리이상 입력되지","E007");
  256. return;
  257. }
  258. }else if(model.getValue("/root/temp/searchtype")=="4") {//휴대폰번호
  259. if(searchstring.length > 4){
  260. model.setValue("/root/search/mpphontel", searchstring);
  261. model.setValue("/root/search/rrgstno1", "");
  262. model.setValue("/root/search/hngnm", "");
  263. model.setValue("/root/search/hometel", "");
  264. model.setValue("/root/search/pid", "");
  265. }else{
  266. messageBox("휴대폰번호가 5자리이상 입력되지","E007");
  267. return;
  268. }
  269. }else { //집전화번호
  270. if(searchstring.length > 4){
  271. model.setValue("/root/search/hometel", searchstring);
  272. model.setValue("/root/search/rrgstno1", "");
  273. model.setValue("/root/search/mpphontel", "");
  274. model.setValue("/root/search/hngnm", "");
  275. model.setValue("/root/search/pid", "");
  276. }else{
  277. messageBox("집 전화번호가 5자리이상 입력되지","E007");
  278. return;
  279. }
  280. }
  281. submit("TRCMS00701");
  282. var rows = grd_patlist.rows-1;
  283. model.setValue("/root/temp/totalcount", rows);
  284. if(rows >=1){
  285. grd_patlist.valueMatrix(1,grd_patlist.colRef("chk"))="N";
  286. }
  287. model.refresh();
  288. }
  289. }
  290. ]]>
  291. </script>
  292. </button>
  293. </group>
  294. <group id="grp_body" style="left:0px; top:85px; width:750px; height:280px; ">
  295. <line id="line2" class="line_1" style="x1:0px; y1:0px; x2:750px; y2:0px; "/>
  296. <datagrid id="grd_patlist" nodeset="/root/main/list/userlist" caption="^등록번호^환자명^주민번호^휴대폰번호^집 전화번호^주 소^우편번호1^우편번호2^E-mail^생일^음력^펙스" colwidth="30, 80, 100, 110, 100, 100, 400, 0, 0, 180, 0, 0, 0" dataheight="23" explorerbar="sortshowmove" frozencols="3" mergecellsfixedrows="bycolrec" rowheader="select" rowheight="23" style="left:0px; top:5px; width:750px; height:250px; margin-left:0; margin-top:0; margin-right:0; margin-bottom:0; ">
  297. <col checkvalue="Y,N" ref="chk" type="checkbox"/>
  298. <col class="text_center" ref="pid"/>
  299. <col class="text_center" ref="hngnm"/>
  300. <col class="text_center" ref="rrgstno" secretendposition="14" secretmark="*" secretstartposition="8" format="999999-9999999"/>
  301. <col class="text_center" ref="mpphontel"/>
  302. <col class="text_center" ref="hometel"/>
  303. <col ref="detladdr"/>
  304. <col ref="zipcd1" visibility="hidden"/>
  305. <col ref="zipcd2" visibility="hidden"/>
  306. <col ref="email"/>
  307. <col ref="brthdd" visibility="hidden"/>
  308. <col ref="lunarsolarflag" visibility="hidden"/>
  309. <col ref="faxno" visibility="hidden"/>
  310. <script type="javascript" ev:event="xforms-value-changed">
  311. <![CDATA[
  312. var grid = grd_patlist;
  313. var rows = grd_patlist.rows -1;
  314. var count = 0;
  315. for(i=1; i<=rows; i++){
  316. if(grid.valueMatrix(i,grid.colRef("chk"))=="Y"){
  317. count = count + 1;
  318. }
  319. }
  320. model.setValue("/root/temp/chckcount", count);
  321. model.refresh();
  322. ]]>
  323. </script>
  324. <script type="javascript" ev:event="ondblclick">
  325. <![CDATA[
  326. if ((grd_patlist.row > 0) && grd_patlist.isCell(event.target) && (grd_patlist.col != 1) ){
  327. if(model.getValue("/root/send/innrgrupid")==""){
  328. messageBox("선택된 그룹이","I004");
  329. model.setFocus("cmb_innrgroup");
  330. return;
  331. }
  332. model.removeNodeset("/root/temp/userlist");
  333. model.refresh();
  334. grd_patlist.valueMatrix(grd_patlist.row, grd_patlist.colRef("chk")) = "Y";
  335. fGridRowAddRow(grd_patlist, grd_patlistsave);
  336. //window.close();
  337. model.setFocus("cmb_searchtype");
  338. } else {
  339. }
  340. ]]>
  341. </script>
  342. <script type="javascript" ev:event="onclick">
  343. <![CDATA[
  344. if ((grd_patlist.row > 0) && grd_patlist.isCell(event.target) && (grd_patlist.col != 1) ){
  345. var chk = grd_patlist.valueMatrix(grd_patlist.row, grd_patlist.colRef("chk"));
  346. if(chk == "Y"){
  347. grd_patlist.valueMatrix(grd_patlist.row, grd_patlist.colRef("chk"))="N";
  348. }else{
  349. grd_patlist.valueMatrix(grd_patlist.row, grd_patlist.colRef("chk"))="Y";
  350. }
  351. model.refresh();
  352. } else {
  353. }
  354. ]]>
  355. </script>
  356. </datagrid>
  357. <caption id="caption3" style="left:520px; top:257px; width:215px; height:20px; text-align:right; ">
  358. <![CDATA[< 명 / 총 명 >]]>
  359. </caption>
  360. <caption id="caption4" ref="/root/temp/totalcount" style="left:674px; top:257px; width:35px; height:19px; text-align:right; "/>
  361. <caption id="caption1" ref="/root/temp/chckcount" style="left:592px; top:257px; width:35px; height:19px; text-align:right; "/>
  362. <button id="btn_allchk" class="btn2_letter2" navindex="4" style="left:2px; top:8px; width:42px; height:19px; text-align:center; ">
  363. <caption>All</caption>
  364. <script type="javascript" ev:event="DOMActivate">
  365. <![CDATA[
  366. fGridAllRow(grd_patlist);
  367. ]]>
  368. </script>
  369. </button>
  370. <datagrid id="grd_patlistsave" nodeset="/root/temp/userlist" visibility="hidden" caption="innrclntnm^pid^mpphontel^detladdr^zipcd1^zipcd2^innrgrupid^innrclntflag^email^brthdd^lunarsolarflag^faxno" colwidth="81, 72, 96, 158, 55, 55, 85, 72, 30, 30, 30, 30" dataheight="23" extendlastcol="scroll" mergecellsfixedrows="bycolrec" rowheader="update" rowheight="23" style="left:0px; top:165px; width:720px; height:90px; margin-left:0; margin-top:0; margin-right:0; margin-bottom:0; ">
  371. <col ref="innrclntnm"/>
  372. <col ref="pid"/>
  373. <col ref="mpphontel"/>
  374. <col ref="detladdr"/>
  375. <col ref="zipcd1"/>
  376. <col ref="zipcd2"/>
  377. <col ref="innrgrupid"/>
  378. <col ref="innrclntflag"/>
  379. <col ref="email"/>
  380. <col ref="brthdd"/>
  381. <col ref="lunarsolarflag"/>
  382. <col ref="faxno"/>
  383. </datagrid>
  384. </group>
  385. <group id="grp_btn" style="left:0px; top:371px; width:750px; height:35px; vertical-align:top; ">
  386. <shape id="roundrect2" class="roundrect_search" appearance="roundrect" ellipsewidth="10" ellipseheight="10" style="left:0px; top:0px; width:750px; height:35px; background-color:#fffbf2; border-color:#ffd799; "/>
  387. <caption id="caption5" class="search_name" style="left:25px; top:9px; width:104px; height:17px; ">주소록 위치 :</caption>
  388. <select1 id="rdo_publyn" ref="/root/send/publyn" class="s" navindex="5" overflow="visible" appearance="full" cellspacing="10" cols="2" style="left:136px; top:9px; width:119px; height:16px; background-color:transparent; border-style:none; ">
  389. <choices>
  390. <item>
  391. <label>개인</label>
  392. <value>N</value>
  393. </item>
  394. <item>
  395. <label>부서</label>
  396. <value>Y</value>
  397. </item>
  398. </choices>
  399. <script type="javascript" ev:event="xforms-select">
  400. <![CDATA[
  401. submit("TRCCN00501");
  402. ]]>
  403. </script>
  404. </select1>
  405. <select1 id="cmb_innrgroup" ref="/root/send/innrgrupid" appearance="minimal" style="left:280px; top:8px; width:130px; height:19px; ">
  406. <choices>
  407. <itemset nodeset="/root/main/innrgrupinfo/innrgruplist">
  408. <label ref="innrgrupnm"/>
  409. <value ref="innrgrupid"/>
  410. </itemset>
  411. </choices>
  412. </select1>
  413. <button id="btn_save" class="btn4_letter2" style="left:618px; top:7px; width:56px; height:22px; ">
  414. <caption>등록</caption>
  415. <script type="javascript" ev:event="DOMActivate">
  416. <![CDATA[
  417. if ((grd_patlist.row > 0) && (grd_patlist.col > 0)){
  418. if(model.getValue("/root/send/innrgrupid")==""){
  419. messageBox("선택된 그룹이","I004");
  420. model.setFocus("cmb_innrgroup");
  421. return;
  422. }
  423. model.removeNodeset("/root/temp/userlist");
  424. model.refresh();
  425. fGridRowAddRow(grd_patlist, grd_patlistsave);
  426. //window.close();
  427. } else if (grd_patlist.col == 0) {
  428. messageBox("열 앞부분을 선택하지 말고 내용이나 체크 표시를 ","C002");
  429. } else {
  430. messageBox("등록할 환자를 선택하지 않았거나 선택할 환자가 없습니다. 조회하신 후 목록을 ","C002");
  431. model.SetFocus("grd_patlist");
  432. }
  433. ]]>
  434. </script>
  435. </button>
  436. <button id="btn_close" class="btn4_letter2" style="left:676px; top:7px; width:56px; height:22px; ">
  437. <caption>닫기</caption>
  438. <script type="javascript" ev:event="DOMActivate">
  439. <![CDATA[
  440. window.close();
  441. ]]>
  442. </script>
  443. </button>
  444. </group>
  445. </xhtml:body>
  446. </xhtml:html>