SMCDT00100_데이터마이닝관리.xrw 91 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225
  1. <?xml version="1.0" encoding="EUC-KR"?>
  2. <!--
  3. * Name : SMCDT00100_데이터마이닝관리
  4. * Summary : 고객정보마이닝 관리
  5. * Programmer : 최정환
  6. * Date Written : 2007.03.29
  7. * History : 2007.03.29 2008.07.01 - 사용자 요구사항에 따른 수정
  8. * Remark :
  9. -->
  10. <?xml-stylesheet type="text/css" href="../../../com/commonweb/css/common.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. <dtmntmpl>
  19. <tmpldefine>
  20. <dtmntitl/>
  21. <dtmnlrgcd/>
  22. <dtmnmdlcd/>
  23. <dtmnsmlcd/>
  24. <dtmnattruseyn/>
  25. <reqdeptnm/>
  26. <reqdeptcd/>
  27. <reqwritnm/>
  28. <reqwritid/>
  29. <dtmnsmminfo/>
  30. <dtmnlnkcond/>
  31. <savemode/>
  32. </tmpldefine>
  33. <humtrainfo>
  34. <sex/>
  35. <forgeryn/>
  36. <empyn/>
  37. <dethyn/>
  38. <educgrdecd/>
  39. <jobcd/>
  40. <religncd/>
  41. </humtrainfo>
  42. <area/>
  43. <agelist/>
  44. <chosinfo>
  45. <chostermbase/>
  46. <chosfromdd/>
  47. <chostodd/>
  48. <ordtype/>
  49. <wardcd/>
  50. <insukind/>
  51. <inpath/>
  52. </chosinfo>
  53. <chosordlist/>
  54. <snwinfo>
  55. </snwinfo>
  56. <snwlist/>
  57. <prcpinfo>
  58. <outyn/>
  59. </prcpinfo>
  60. <prcplist/>
  61. <testinfo>
  62. <testtermbase/>
  63. <testfromdd/>
  64. <testtodd/>
  65. </testinfo>
  66. <testlist/>
  67. <opinfo>
  68. <opfromdd/>
  69. <optodd/>
  70. <opflagcd/>
  71. <oppatflagcd/>
  72. </opinfo>
  73. <oplist/>
  74. <opordlist/>
  75. </dtmntmpl>
  76. <area>
  77. <seq/>
  78. <citycd>
  79. </citycd>
  80. <city/>
  81. <citycntyareacd/>
  82. <citycntyarea/>
  83. <blokcd/>
  84. <blok/>
  85. </area>
  86. <agelist/>
  87. <chosordlist/>
  88. <snwordlist/>
  89. <prcplist/>
  90. <prcpordlist/>
  91. <testlist/>
  92. <testordlist/>
  93. <oplist/>
  94. <opordlist/>
  95. <list>
  96. <dtmnexeclist/>
  97. </list>
  98. <snwlist/>
  99. </main>
  100. <send>
  101. <dtmnlrgcd/>
  102. <dtmnmdlcd/>
  103. <citycd/>
  104. <citycntyareacd/>
  105. <srch>
  106. <ordlist>
  107. <orddeptcd/>
  108. <orddeptnm/>
  109. <orddrid/>
  110. <orddrnm/>
  111. </ordlist>
  112. <perflist>
  113. <perfdeptcd/>
  114. <perfdeptnm/>
  115. <perfdrid/>
  116. <perfdrnm/>
  117. </perflist>
  118. </srch>
  119. </send>
  120. <init>
  121. <P0001list/>
  122. <P0313list/>
  123. <C0029list/>
  124. <C0039list/>
  125. <P0157list/>
  126. <M0068list/>
  127. <M0069list/>
  128. <P0008list/>
  129. <P0002list/>
  130. <M0013list/>
  131. <M0020list/>
  132. <C0042list/>
  133. <C0043list/>
  134. <C0044list/>
  135. <areacity>
  136. <city>
  137. <citynm/>
  138. <citycd/>
  139. </city>
  140. </areacity>
  141. <areacitycnty>
  142. <citycntyarea>
  143. <citycntyareanm/>
  144. <citycntyareacd/>
  145. </citycntyarea>
  146. </areacitycnty>
  147. <areablok>
  148. <blok>
  149. <bloknm/>
  150. <blokcd/>
  151. </blok>
  152. </areablok>
  153. <basecdlist>
  154. <orddeptlist>
  155. </orddeptlist>
  156. <orddrlist>
  157. <user>
  158. <usernm/>
  159. <userid/>
  160. </user>
  161. </orddrlist>
  162. <perfdrlist>
  163. <usercombo/>
  164. </perfdrlist>
  165. </basecdlist>
  166. <wardcdinfo>
  167. <wardcdlist/>
  168. </wardcdinfo>
  169. <diagdetlvw>P</diagdetlvw>
  170. <diagdetlvw1>P</diagdetlvw1>
  171. <diagdetlvw2>P</diagdetlvw2>
  172. <wardcdvw>F</wardcdvw>
  173. </init>
  174. <hidden>
  175. <scrnflag>D</scrnflag>
  176. <snwmenu>
  177. <menu>
  178. <name>행삭제</name>
  179. <func>snwlist_del</func>
  180. </menu>
  181. </snwmenu>
  182. <prcpmenu>
  183. <menu>
  184. <name>행삭제</name>
  185. <func>prcplist_del</func>
  186. </menu>
  187. </prcpmenu>
  188. <testmenu>
  189. <menu>
  190. <name>행삭제</name>
  191. <func>testlist_del</func>
  192. </menu>
  193. </testmenu>
  194. <opmenu>
  195. <menu>
  196. <name>행삭제</name>
  197. <func>oplist_del</func>
  198. </menu>
  199. </opmenu>
  200. </hidden>
  201. <temp>
  202. <areagrup>
  203. <citycd>
  204. </citycd>
  205. <city/>
  206. <citycntyareacd/>
  207. <citycntyarea/>
  208. <blokcd/>
  209. <blok/>
  210. </areagrup>
  211. <age>
  212. <agefrom/>
  213. <ageto/>
  214. </age>
  215. <chosord>
  216. <chosorddeptnm/>
  217. <chosorddeptcd/>
  218. <chosorddrnm/>
  219. <chosorddrid/>
  220. </chosord>
  221. <snw>
  222. <snwnm/>
  223. <snwcd/>
  224. </snw>
  225. <prcp>
  226. <prcpnm/>
  227. <prcpcd/>
  228. </prcp>
  229. <test>
  230. <testnm/>
  231. <testcd/>
  232. <refh/>
  233. <refl/>
  234. <judgmark/>
  235. </test>
  236. <op>
  237. <opnm/>
  238. <opcd/>
  239. </op>
  240. <ref>
  241. <data>
  242. <rgstfromdd/>
  243. <rgsttodd/>
  244. <dtmnnm/>
  245. <rgstnm/>
  246. <autexecflag/>
  247. <cmpnlnkyn/>
  248. <dtmnsmlcd/>
  249. </data>
  250. <key>
  251. <dtmnkey/>
  252. </key>
  253. <refmode/>
  254. </ref>
  255. <smsinfo>
  256. <recvrlist>
  257. <chk/>
  258. <recvrnm/>
  259. <recvrtelno/>
  260. </recvrlist>
  261. </smsinfo>
  262. <emailinfo>
  263. <recvrlist>
  264. <recvremail/>
  265. </recvrlist>
  266. </emailinfo>
  267. <dminfo>
  268. <recvrlist>
  269. <chk/>
  270. <recvrnm/>
  271. <recvrzipcd/>
  272. <recvraddr/>
  273. </recvrlist>
  274. </dminfo>
  275. <countnode/>
  276. <prcplist/>
  277. </temp>
  278. </root>
  279. </instance>
  280. <submission id="TRZBC00101" mediatype="application/x-www-form-urlencoded" method="post" replace="instance"/>
  281. <!--<submission id="TRZBC00102" method="post" mediatype="application/x-www-form-urlencoded" replace="instance"/>-->
  282. <submission id="TRZBC00104" mediatype="application/x-www-form-urlencoded" method="post" replace="instance"/>
  283. <submission id="TRZBC00105" mediatype="application/x-www-form-urlencoded" method="post" replace="instance"/>
  284. <submission id="TRZSD00109" mediatype="application/x-www-form-urlencoded" method="post" replace="instance"/>
  285. <submission id="TRZSU10105" mediatype="application/x-www-form-urlencoded" method="post"/>
  286. <submission id="TRZSU10117" mediatype="application/x-www-form-urlencoded" method="post"/>
  287. <submission id="TRCDT00101" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" replace="instance" resultref="/root/init/areacity"/>
  288. <submission id="TRCDT00102" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" replace="instance" resultref="/root/init/areacitycnty"/>
  289. <submission id="TRCDT00103" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" replace="instance" resultref="/root/init/areablok"/>
  290. <submission id="TRCDT00111" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/temp/ref/key" replace="instance" resultref="/root/main/dtmntmpl"/>
  291. <submission id="TRCDT00113" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" replace="instance" resultref="/root/init/wardcdinfo"/>
  292. <submission id="TXCDT00104" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/main/dtmntmpl" resultref="/root/temp/ref/key"/>
  293. <submission id="TRCDT00114" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/srch/ordlist" resultref="/root/init/basecdlist/orddrlist"/>
  294. </model>
  295. <script type="javascript" src="../../../com/commonweb/js/common.js"/>
  296. <script type="javascript" src="../../../com/commonweb/js/numericHelper.js"/>
  297. <script type="javascript" src="../../../com/commonweb/js/dateHelper.js"/>
  298. <script type="javascript" src="../../../com/commonweb/js/tfHelper.js"/>
  299. <script type="javascript" src="../../../com/basiccodeweb/js/ZBC001.js"/>
  300. <script type="javascript" src="../../../com/departmentcodeweb/js/ZSD001.js"/>
  301. <script type="javascript" src="../../../crm/crmweb/js/CCZ001.js"/>
  302. <script type="javascript" src="../../../com/userdeptinfoweb/js/ZSU001.js"/>
  303. <script type="javascript" ev:event="xforms-ready">
  304. <![CDATA[
  305. // 그리드의 초기화
  306. fGridInit();
  307. // 인스턴스 기본값 설정
  308. model.setValue("/root/main/dtmntmpl/tmpldefine/dtmnattruseyn","Y"); // 사용여부 "Y"
  309. // 지역의 시도구분을 가져온다.
  310. submit("TRCDT00101");
  311. // 병동코드를 가져온다.
  312. submit("TRCDT00113");
  313. // 공통코드를 호출하여 자료(진료형태,성별,외래여부, 탬플릿사용여부, 종교, 직업, 학력, 보험유형, 입원경로, 수술구분, 수술환자구분, 데이터마이닝연결조건, 내원기간기준일, 검사기간기준일)를 가져온다
  314. zbcfGetCodeList( new Array("P0001", "P0313", "C0029", "C0039", "P0157", "M0068", "M0069", "P0008", "P0002", "M0013", "M0020", "C0042", "C0043", "C0044"),
  315. new Array("/root/init/P0001list","/root/init/P0313list","/root/init/C0029list","/root/init/C0039list","/root/init/P0157list","/root/init/M0068list","/root/init/M0069list","/root/init/P0008list","/root/init/P0002list","/root/init/M0013list","/root/init/M0020list","/root/init/C0042list","/root/init/C0043list","/root/init/C0044list"));
  316. // 진료과 검색
  317. var instcd = getUserInfo("dutplceinstcd");
  318. var standard_yn = "orduseyn";
  319. var ord_deptflag = "D"; // 외래진료과
  320. var rslt_ref = "/root/init/basecdlist/orddeptlist";
  321. zbcfGetDeptCodeList(instcd, standard_yn, ord_deptflag, rslt_ref);
  322. model.copyNode("/root/send/srch/ordlist/orddeptcd", "/root/send/srch/perflist/perfdeptcd")
  323. addComboItemAll( "cmb_sex");
  324. addComboItemAll( "cmb_religncd");
  325. addComboItemAll( "cmb_educgrdecd");
  326. addComboItemAll( "cmb_jobcd");
  327. addComboItemAll( "cmb_ordtype");
  328. addComboItemAll( "cmb_inpath");
  329. addComboItemAll( "cmb_insukind");
  330. addComboItemAll( "cmb_opflagcd");
  331. addComboItemAll( "cmb_oppatflagcd");
  332. // 조회 (데이터마이닝 목록조회에서 넘어온 dtmnkey값으로 내용을 조회)
  333. var dtmnkey = model.getValue("/root/temp/ref/key/dtmnkey");
  334. var refmode = model.getValue("/root/temp/ref/refmode");
  335. if ( dtmnkey != "" ){
  336. fDtmnInfoSearch();
  337. } else {
  338. // 등록자 세션정보에서 가져오기
  339. var empnm = getUserInfo("usernm");
  340. var empid = getUserInfo("userid");
  341. model.makeValue("/root/main/dtmntmpl/tmpldefine/reqwritnm",empnm);
  342. model.makeValue("/root/main/dtmntmpl/tmpldefine/reqwritid",empid);
  343. // 입력모드로 표시
  344. model.setValue("/root/main/dtmntmpl/tmpldefine/savemode","I");
  345. }
  346. model.refresh();
  347. fCheckAuth();
  348. ]]>
  349. </script>
  350. <script type="javascript">
  351. <![CDATA[
  352. // 권한체크
  353. function fCheckAuth() {
  354. if (!checkAuth("x")) {
  355. //btn_dtmnsave.disabled=true;
  356. //btn_manlexec.disabled=true;
  357. }
  358. if (!checkAuth("p")) {
  359. //btn_saveexcel.disabled=true;
  360. }
  361. }
  362. function fDtmnInfoSearch() {
  363. submit("TRCDT00111");
  364. // 수정모드로 표시
  365. model.setValue("/root/main/dtmntmpl/tmpldefine/savemode","U");
  366. // 조회 페이지로 이동시 기존 검색조건 셋팅을 위하여 조회모드를 변경
  367. model.setValue("/root/temp/ref/refmode","C");
  368. // 인스턴스 생성 (이미 존재하는 Node 생성 안함.)
  369. // 인적정보
  370. model.makeNode( "/root/main/dtmntmpl/humtrainfo/sex" );
  371. model.makeNode( "/root/main/dtmntmpl/humtrainfo/forgeryn" );
  372. model.makeNode( "/root/main/dtmntmpl/humtrainfo/empyn" );
  373. model.makeNode( "/root/main/dtmntmpl/humtrainfo/dethyn" );
  374. model.makeNode( "/root/main/dtmntmpl/humtrainfo/educgrdecd" );
  375. model.makeNode( "/root/main/dtmntmpl/humtrainfo/jobcd" );
  376. model.makeNode( "/root/main/dtmntmpl/humtrainfo/religncd" );
  377. // 내원정보
  378. model.makeNode( "/root/main/dtmntmpl/chosinfo/chostermbase" );
  379. model.makeNode( "/root/main/dtmntmpl/chosinfo/chosfromdd" );
  380. model.makeNode( "/root/main/dtmntmpl/chosinfo/chostodd" );
  381. model.makeNode( "/root/main/dtmntmpl/chosinfo/ordtype" );
  382. model.makeNode( "/root/main/dtmntmpl/chosinfo/wardcd" );
  383. model.makeNode( "/root/main/dtmntmpl/chosinfo/insukind" );
  384. model.makeNode( "/root/main/dtmntmpl/chosinfo/inpath" );
  385. // 상병정보(2008-07-05 : 사용자 요구사항에 따라 상병기간등 삭제되었으나 추후 확장성을 위하여 메인 인스턴스는 제거안함.)
  386. // 처방정보
  387. model.makeNode( "/root/main/dtmntmpl/prcpinfo/outyn" );
  388. // 검사정보
  389. model.makeNode( "/root/main/dtmntmpl/testinfo/testtermbase" );
  390. model.makeNode( "/root/main/dtmntmpl/testinfo/testfromdd" );
  391. model.makeNode( "/root/main/dtmntmpl/testinfo/testtodd" );
  392. // 수술정보
  393. model.makeNode( "/root/main/dtmntmpl/opinfo/opfromdd" );
  394. model.makeNode( "/root/main/dtmntmpl/opinfo/optodd" );
  395. model.makeNode( "/root/main/dtmntmpl/opinfo/opflagcd" );
  396. model.makeNode( "/root/main/dtmntmpl/opinfo/oppatflagcd" );
  397. // 병동코드를 해당 트리에 뿌려준다.
  398. // var wardcd = model.getvalue("/root/main/dtmntmpl/chosinfo/wardcd");
  399. // var valuesArray = wardcd.split(";");
  400. // for (var i = 0; i < valuesArray.length; i++) {
  401. // for(var j=0; j < trv_wardcd.length; j++) {
  402. // if(trv_wardcd.item(j).value == valuesArray[i]) {
  403. // trv_wardcd.select(j);
  404. // var item = trv_wardcd.item(j);
  405. // item.checked = true;
  406. // }
  407. // }
  408. // }
  409. //코드에서''이부분 제거
  410. var str = model.getValue("/root/main/dtmntmpl/chosinfo/wardcd");
  411. var original = "'";
  412. var replacement = "";
  413. var clscdlnk = "";
  414. clscdlnk = fGetReplaceValue(str, original, replacement);
  415. fGetSrcTree(clscdlnk, trv_wardcd);
  416. }
  417. function fDiagUpdate() {
  418. var diagNode = "/root/main/snwlist";
  419. var status = model.getValue ( diagNode + "[" + grd_snw.row+ "]/status" );
  420. if (status=="-") {
  421. model.setValue ( diagNode + "[" + grd_snw.row+ "]/status", "U" );
  422. }
  423. model.refresh();
  424. }
  425. function fGetSrcTree(srcCd, srcTree){
  426. var valuesArray = srcCd.split(",");
  427. for (var i = 0; i < valuesArray.length; i++) {
  428. for(var j=0; j < srcTree.length; j++) {
  429. if(srcTree.item(j).value == valuesArray[i]) {
  430. srcTree.select(j);
  431. var item = srcTree.item(j);
  432. item.checked = true;
  433. }
  434. }
  435. }
  436. }
  437. // 그리드 초기화
  438. function fGridInit() {
  439. // 인적정보중 그리드의 col을 초기화 시켜준다.
  440. model.removenodeset("/root/main/area"); // 지역
  441. model.removenodeset("/root/main/agelist"); // 연령
  442. // 내원정보중 그리드의 col을 초기화 시켜준다.
  443. model.removenodeset("/root/main/chosordlist"); // 진료과,진료의
  444. // 상병정보중 그리드의 col을 초기화 시켜준다.
  445. model.removenodeset("/root/main/snwlist"); // 상병
  446. // 처방정보중 그리드의 col을 초기화 시켜준다.
  447. model.removenodeset("/root/main/prcplist"); // 처방
  448. // 검사정보중 그리드의 col을 초기화 시켜준다.
  449. model.removenodeset("/root/main/testlist"); // 검사
  450. // 수술정보중 그리드의 col을 초기화 시켜준다.
  451. model.removenodeset("/root/main/oplist"); // 수술
  452. model.removenodeset("/root/main/opordlist"); // 수술과.집도의
  453. }
  454. // 상병검색 팝업창 호출
  455. function fSnwCodeList(receive_snwcd_path, receive_snwnm_path){
  456. setParameter("receive_snwcd_path", receive_snwcd_path);
  457. setParameter("receive_snwnm_path", receive_snwnm_path);
  458. modal("SPCDT00600");
  459. clearParameter("receive_snwcd_path");
  460. clearParameter("receive_snwnm_path");
  461. }
  462. // 처방검색 팝업창 호출
  463. function fPrcpCodeList(receive_prcplist_path){
  464. setParameter("receive_prcplist_path", receive_prcplist_path);
  465. //setParameter("receive_prcpnm_path", receive_prcpnm_path);
  466. modal("SPCDT00700");
  467. clearParameter("receive_prcplist_path");
  468. //clearParameter("receive_prcpnm_path");
  469. }
  470. // 검사검색 팝업창 호출
  471. function fTestCodeList(standard, search_term, receive_testcd_path, receive_testnm_path){
  472. setParameter("standard", standard);
  473. setParameter("search_term", search_term);
  474. setParameter("receive_testcd_path", receive_testcd_path);
  475. setParameter("receive_testnm_path", receive_testnm_path);
  476. modal("SPCDT00800");
  477. clearParameter("standard");
  478. clearParameter("search_term");
  479. clearParameter("receive_testcd_path");
  480. clearParameter("receive_testnm_path");
  481. }
  482. // 수술검색 팝업창 호출
  483. function fOpCodeList(standard, search_term, receive_opcd_path, receive_opnm_path){
  484. setParameter("standard", standard);
  485. setParameter("search_term", search_term);
  486. setParameter("receive_opcd_path", receive_opcd_path);
  487. setParameter("receive_opnm_path", receive_opnm_path);
  488. modal("SPCDT00900");
  489. clearParameter("standard");
  490. clearParameter("search_term");
  491. clearParameter("receive_opcd_path");
  492. clearParameter("receive_opnm_path");
  493. }
  494. // 데이터마이닝 화면 초기화
  495. function fDtmnCD(){
  496. var sMAIN_PATH = "/root/main";
  497. model.resetInstanceNode(sMAIN_PATH);
  498. model.refresh();
  499. }
  500. // 그룹관리 팝업창 호출
  501. function fGrupMngt(){
  502. modal("SPCDT00100");
  503. }
  504. //----------------------------------//
  505. //value 변환 진료과 분류 //
  506. //(aa;bb;cc를 'aa','bb','cc'로 바꿈)//
  507. //----------------------------------//
  508. function fGetChangeValue(srcstr){
  509. var rtnstr = "'";
  510. var i=0;
  511. while( srcstr.charAt(i) != "" ) {
  512. if( srcstr.charAt(i)!=';') {
  513. rtnstr += srcstr.charAt(i);
  514. i++;
  515. }else{
  516. rtnstr +="','"
  517. i++;
  518. }
  519. }
  520. rtnstr +="'"
  521. return rtnstr;
  522. }
  523. //--------------------------------------------------------//
  524. // str 중 특정 문자열을 대체 문자열로 바꾸어서 반환한다. //
  525. //--------------------------------------------------------//
  526. function fGetReplaceValue(str, original, replacement) {
  527. var result = "";
  528. while(str.indexOf(original) != -1) {
  529. if (str.indexOf(original) > 0){
  530. result = result + str.substring(0, str.indexOf(original)) + replacement;
  531. }else{
  532. result = result + replacement;
  533. }
  534. str = str.substring(str.indexOf(original) + original.length, str.length);
  535. }
  536. return result + str;
  537. }
  538. // 데이터마이닝 그룹관리의 변경된 내용을 새로 적용시켜준다.
  539. /*
  540. function fDtmnLrg() {
  541. model.removenodeset("/root/init/dtmnlrg/dtmnlrggrup");
  542. model.removenodeset("/root/init/dtmnmdl/dtmnmdlgrup");
  543. model.removenodeset("/root/init/dtmnsml/dtmnsmlgrup");
  544. model.resetInstanceNode("/root/main/dtmntmpl/tmpldefine/dtmnlrgcd");
  545. model.resetInstanceNode("/root/main/dtmntmpl/tmpldefine/dtmnmdlcd");
  546. model.resetInstanceNode("/root/main/dtmntmpl/tmpldefine/dtmnsmlcd");
  547. submit("TRCDT00104");
  548. }
  549. */
  550. function fCheckDtmn() {
  551. var dtmnlnkcond = model.getValue("/root/main/dtmntmpl/tmpldefine/dtmnlnkcond");
  552. var dtmnlrgcd = model.getValue("/root/main/dtmntmpl/tmpldefine/dtmnlrgcd");
  553. var dtmnmdlcd = model.getValue("/root/main/dtmntmpl/tmpldefine/dtmnmdlcd");
  554. var dtmnsmlcd = model.getValue("/root/main/dtmntmpl/tmpldefine/dtmnsmlcd");
  555. if(dtmnlrgcd == ""){
  556. messageBox("고객정보마이닝 대분류가 선택 되지", "E007");
  557. return false;
  558. }
  559. if(dtmnmdlcd == ""){
  560. messageBox("고객정보마이닝 중분류가 선택 되지", "E007");
  561. return false;
  562. }
  563. if(dtmnsmlcd == ""){
  564. messageBox("고객정보마이닝 소분류가 선택 되지", "E007");
  565. return false;
  566. }
  567. if(dtmnlnkcond == ""){
  568. messageBox("고객정보마이닝 연결조건이 선택 되지", "E007");
  569. return false;
  570. }
  571. // 내원정보
  572. var chostermbase = model.getValue("/root/main/dtmntmpl/chosinfo/chostermbase");
  573. var chosfromdd = model.getValue("/root/main/dtmntmpl/chosinfo/chosfromdd");
  574. var chostodd = model.getValue("/root/main/dtmntmpl/chosinfo/chostodd");
  575. // 상병정보
  576. var snwcd = model.getValue("/root/main/snwlist/snwcd");
  577. // 처방정보
  578. var prcpcd = model.getValue("/root/main/prcplist/prcpcd");
  579. // 검사정보
  580. var testtermbase = model.getValue("/root/main/dtmntmpl/testinfo/testtermbase");
  581. var testfromdd = model.getValue("/root/main/dtmntmpl/testinfo/testfromdd");
  582. var testtodd = model.getValue("/root/main/dtmntmpl/testinfo/testtodd");
  583. var testcd = model.getValue("/root/main/testlist/testcd");
  584. // 수술정보
  585. var opfromdd = model.getValue("/root/main/dtmntmpl/opinfo/opfromdd");
  586. var optodd = model.getValue("/root/main/dtmntmpl/opinfo/optodd");
  587. var opcd = model.getValue("/root/main/oplist/opcd");
  588. if (dtmnlnkcond == "01") {
  589. if (chostermbase == "") {
  590. messageBox("내원기간기준일을 ","C001");
  591. } else if (chosfromdd.length < 8) {
  592. messageBox("내원일자(시작)를 ","C001");
  593. } else if (chostodd.length < 8) {
  594. messageBox("내원일자(끝)를 ","C001");
  595. } else if(chosfromdd > chostodd){
  596. messageBox("내원일자(시작)와 내원일자(끝)를 올바르게", "C001");
  597. } else {
  598. return true;
  599. }
  600. } else if (dtmnlnkcond == "02") {
  601. if (chostermbase == "") {
  602. messageBox("내원기간기준일을 ","C001");
  603. } else if (chosfromdd.length < 8) {
  604. messageBox("내원일자(시작)를 ","C001");
  605. } else if (chostodd.length < 8) {
  606. messageBox("내원일자(끝)를 ","C001");
  607. } else if(chosfromdd > chostodd){
  608. messageBox("내원일자(시작)와 내원일자(끝)를 올바르게", "C001");
  609. } else if (snwcd == "") {
  610. messageBox("상병을 ","C001");
  611. } else {
  612. return true;
  613. }
  614. } else if (dtmnlnkcond == "03") {
  615. if (chostermbase == "") {
  616. messageBox("내원기간기준일을 ","C001");
  617. } else if (chosfromdd.length < 8) {
  618. messageBox("내원일자(시작)를 ","C001");
  619. } else if (chostodd.length < 8) {
  620. messageBox("내원일자(끝)를 ","C001");
  621. } else if(chosfromdd > chostodd){
  622. messageBox("내원일자(시작)와 내원일자(끝)를 올바르게", "C001");
  623. } else if (prcpcd == "") {
  624. messageBox("처방을 ","C001");
  625. } else {
  626. return true;
  627. }
  628. } else if (dtmnlnkcond == "04") {
  629. if (chostermbase == "") {
  630. messageBox("내원기간기준일을 ","C001");
  631. } else if (chosfromdd.length < 8) {
  632. messageBox("내원일자(시작)를 ","C001");
  633. } else if (chostodd.length < 8) {
  634. messageBox("내원일자(끝)를 ","C001");
  635. } else if(chosfromdd > chostodd){
  636. messageBox("내원일자(시작)와 내원일자(끝)를 올바르게", "C001");
  637. } else if (snwcd == "") {
  638. messageBox("상병을 ","C001");
  639. } else if (prcpcd == "") {
  640. messageBox("처방을 ","C001");
  641. } else {
  642. return true;
  643. }
  644. } else if (dtmnlnkcond == "05") {
  645. if (opfromdd.length < 8) {
  646. messageBox("수술일자(시작)를 ","C001");
  647. } else if (optodd.length < 8) {
  648. messageBox("수술일자(끝)를 ","C001");
  649. } else if(opfromdd > optodd){
  650. messageBox("수술일자(시작)와 수술일자(끝)를 올바르게", "C001");
  651. //} else if (opcd == "") {
  652. // messageBox("수술을 ","C001");
  653. } else {
  654. return true;
  655. }
  656. } else if (dtmnlnkcond == "06") {
  657. if (chostermbase == "") {
  658. messageBox("내원기간기준일을 ","C001");
  659. } else if (chosfromdd.length < 8) {
  660. messageBox("내원일자(시작)를 ","C001");
  661. } else if (chostodd.length < 8) {
  662. messageBox("내원일자(끝)를 ","C001");
  663. } else if(chosfromdd > chostodd){
  664. messageBox("내원일자(시작)와 내원일자(끝)를 올바르게", "C001");
  665. } else if (opfromdd.length < 8) {
  666. messageBox("수술일자(시작)를 ","C001");
  667. } else if (optodd.length < 8) {
  668. messageBox("수술일자(끝)를 ","C001");
  669. } else if(opfromdd > optodd){
  670. messageBox("수술일자(시작)와 수술일자(끝)를 올바르게", "C001");
  671. //} else if (opcd == "") {
  672. // messageBox("수술을 ","C001");
  673. } else {
  674. return true;
  675. }
  676. } else if (dtmnlnkcond == "07") {
  677. if (chostermbase == "") {
  678. messageBox("내원기간기준일을 ","C001");
  679. } else if (chosfromdd.length < 8) {
  680. messageBox("내원일자(시작)를 ","C001");
  681. } else if (chostodd.length < 8) {
  682. messageBox("내원일자(끝)를 ","C001");
  683. } else if(chosfromdd > chostodd){
  684. messageBox("내원일자(시작)와 내원일자(끝)를 올바르게", "C001");
  685. } else if (snwcd == "") {
  686. messageBox("상병을 ","C001");
  687. } else if (opfromdd.length < 8) {
  688. messageBox("수술일자(시작)를 ","C001");
  689. } else if (optodd.length < 8) {
  690. messageBox("수술일자(끝)를 ","C001");
  691. } else if(opfromdd > optodd){
  692. messageBox("수술일자(시작)와 수술일자(끝)를 올바르게", "C001");
  693. //} else if (opcd == "") {
  694. // messageBox("수술을 ","C001");
  695. } else {
  696. return true;
  697. }
  698. } else if (dtmnlnkcond == "08") {
  699. if (chostermbase == "") {
  700. messageBox("내원기간기준일을 ","C001");
  701. } else if (chosfromdd.length < 8) {
  702. messageBox("내원일자(시작)를 ","C001");
  703. } else if (chostodd.length < 8) {
  704. messageBox("내원일자(끝)를 ","C001");
  705. } else if(chosfromdd > chostodd){
  706. messageBox("내원일자(시작)와 내원일자(끝)를 올바르게", "C001");
  707. } else if (prcpcd == "") {
  708. messageBox("처방을 ","C001");
  709. } else if (opfromdd.length < 8) {
  710. messageBox("수술일자(시작)를 ","C001");
  711. } else if (optodd.length < 8) {
  712. messageBox("수술일자(끝)를 ","C001");
  713. } else if(opfromdd > optodd){
  714. messageBox("수술일자(시작)와 수술일자(끝)를 올바르게", "C001");
  715. //} else if (opcd == "") {
  716. // messageBox("수술을 ","C001");
  717. } else {
  718. return true;
  719. }
  720. } else if (dtmnlnkcond == "09") {
  721. if (testtermbase == "") {
  722. messageBox("검사기간기준일을 ","C001");
  723. } else if (testfromdd.length < 8) {
  724. messageBox("검사일자(시작)를 ","C001");
  725. } else if (testtodd.length < 8) {
  726. messageBox("검사일자(끝)를 ","C001");
  727. } else if(chosfromdd > chostodd){
  728. messageBox("검사일자(시작)와 검사일자(끝)를 올바르게", "C001");
  729. } else if (testcd == "") {
  730. messageBox("검사를 ","C001");
  731. } else {
  732. return true;
  733. }
  734. } else if (dtmnlnkcond == "10") {
  735. if (chostermbase == "") {
  736. messageBox("내원기간기준일을 ","C001");
  737. } else if (chosfromdd.length < 8) {
  738. messageBox("내원일자(시작)를 ","C001");
  739. } else if (chostodd.length < 8) {
  740. messageBox("내원일자(끝)를 ","C001");
  741. } else if(chosfromdd > chostodd){
  742. messageBox("내원일자(시작)와 내원일자(끝)를 올바르게", "C001");
  743. } else if (testtermbase == "") {
  744. messageBox("검사기간기준일을 ","C001");
  745. } else if (testfromdd.length < 8) {
  746. messageBox("검사일자(시작)를 ","C001");
  747. } else if (testtodd.length < 8) {
  748. messageBox("검사일자(끝)를 ","C001");
  749. } else if(chosfromdd > chostodd){
  750. messageBox("검사일자(시작)와 검사일자(끝)를 올바르게", "C001");
  751. } else if (testcd == "") {
  752. messageBox("검사를 ","C001");
  753. } else {
  754. return true;
  755. }
  756. } else if (dtmnlnkcond == "11") {
  757. if (chostermbase == "") {
  758. messageBox("내원기간기준일을 ","C001");
  759. } else if (chosfromdd.length < 8) {
  760. messageBox("내원일자(시작)를 ","C001");
  761. } else if (chostodd.length < 8) {
  762. messageBox("내원일자(끝)를 ","C001");
  763. } else if(chosfromdd > chostodd){
  764. messageBox("내원일자(시작)와 내원일자(끝)를 올바르게", "C001");
  765. } else if (snwcd == "") {
  766. messageBox("상병을 ","C001");
  767. } else if (testtermbase == "") {
  768. messageBox("검사기간기준일을 ","C001");
  769. } else if (testfromdd.length < 8) {
  770. messageBox("검사일자(시작)를 ","C001");
  771. } else if (testtodd.length < 8) {
  772. messageBox("검사일자(끝)를 ","C001");
  773. } else if(chosfromdd > chostodd){
  774. messageBox("검사일자(시작)와 검사일자(끝)를 올바르게", "C001");
  775. } else if (testcd == "") {
  776. messageBox("검사를 ","C001");
  777. } else {
  778. return true;
  779. }
  780. } else if (dtmnlnkcond == "12") {
  781. if (chostermbase == "") {
  782. messageBox("내원기간기준일을 ","C001");
  783. } else if (chosfromdd.length < 8) {
  784. messageBox("내원일자(시작)를 ","C001");
  785. } else if (chostodd.length < 8) {
  786. messageBox("내원일자(끝)를 ","C001");
  787. } else if(chosfromdd > chostodd){
  788. messageBox("내원일자(시작)와 내원일자(끝)를 올바르게", "C001");
  789. } else if (prcpcd == "") {
  790. messageBox("처방을 ","C001");
  791. } else if (testtermbase == "") {
  792. messageBox("검사기간기준일을 ","C001");
  793. } else if (testfromdd.length < 8) {
  794. messageBox("검사일자(시작)를 ","C001");
  795. } else if (testtodd.length < 8) {
  796. messageBox("검사일자(끝)를 ","C001");
  797. } else if(chosfromdd > chostodd){
  798. messageBox("검사일자(시작)와 검사일자(끝)를 올바르게", "C001");
  799. } else if (testcd == "") {
  800. messageBox("검사를 ","C001");
  801. } else {
  802. return true;
  803. }
  804. } else if (dtmnlnkcond == "13") {
  805. if (chostermbase == "") {
  806. messageBox("내원기간기준일을 ","C001");
  807. } else if (chosfromdd.length < 8) {
  808. messageBox("내원일자(시작)를 ","C001");
  809. } else if (chostodd.length < 8) {
  810. messageBox("내원일자(끝)를 ","C001");
  811. } else if(chosfromdd > chostodd){
  812. messageBox("내원일자(시작)와 내원일자(끝)를 올바르게", "C001");
  813. } else if (testtermbase == "") {
  814. messageBox("검사기간기준일을 ","C001");
  815. } else if (testfromdd.length < 8) {
  816. messageBox("검사일자(시작)를 ","C001");
  817. } else if (testtodd.length < 8) {
  818. messageBox("검사일자(끝)를 ","C001");
  819. } else if(chosfromdd > chostodd){
  820. messageBox("검사일자(시작)와 검사일자(끝)를 올바르게", "C001");
  821. } else if (testcd == "") {
  822. messageBox("검사를 ","C001");
  823. } else if (opfromdd.length < 8) {
  824. messageBox("수술일자(시작)를 ","C001");
  825. } else if (optodd.length < 8) {
  826. messageBox("수술일자(끝)를 ","C001");
  827. } else if(opfromdd > optodd){
  828. messageBox("수술일자(시작)와 수술일자(끝)를 올바르게", "C001");
  829. //} else if (opcd == "") {
  830. // messageBox("수술을 ","C001");
  831. } else {
  832. return true;
  833. }
  834. } else {
  835. return true;
  836. }
  837. }
  838. function fSaveDtmn(savemode) {
  839. // 필수입력 체크
  840. if (!fCheckDtmn()) return;
  841. var dtmntitl = model.getValue("/root/main/dtmntmpl/tmpldefine/dtmntitl");
  842. var blok = model.getValue("/root/temp/areagrup/blok");
  843. if(isRequiredControls("ipt_dtmntitl")) {
  844. messageBox("모든 필수값이 입력이","I002");
  845. //} else {
  846. // 저장시 그리드값을 인스턴스로 생성
  847. var updt_area_lnk = getGridUpdateData(grd_area);
  848. if (updt_area_lnk != "") {
  849. model.makeValue("/root/main/dtmntmpl/area", grd_area.getUpdateData()); // 지역
  850. }
  851. var updt_age_lnk = getGridUpdateData(grd_age);
  852. if (updt_age_lnk != "") {
  853. model.makeValue("/root/main/dtmntmpl/agelist", grd_age.getUpdateData()); // 연령
  854. }
  855. var updt_chosord_lnk = getGridUpdateData(grd_chosord);
  856. if (updt_chosord_lnk != "") {
  857. model.makeValue("/root/main/dtmntmpl/chosordlist", grd_chosord.getUpdateData()); // 진료과/진료의(내원)
  858. }
  859. // 진단그리드 내용을 VO형태로 구성
  860. if (grd_snw.rows > 0 ) {
  861. var send_status = new Array(grd_snw.rows);
  862. var send_dtmnkey = new Array(grd_snw.rows);
  863. var send_seq = new Array(grd_snw.rows);
  864. var send_diagkindcd = new Array(grd_snw.rows);
  865. var send_diagkindcdflag = new Array(grd_snw.rows);
  866. var send_snwcd = new Array(grd_snw.rows);
  867. var send_snwnm = new Array(grd_snw.rows);
  868. var sColSep = "▦";
  869. var sRowSep = "▩";
  870. var send_data = "m" + sColSep + "seq" + sColSep + "dtmnkey" + sColSep + "diagkindcd" + sColSep + "diagkindcdflag" + sColSep + "snwcd" + sColSep + "snwnm" + sRowSep; //타이틀 map file 등에서 사용
  871. for (var i=1; i<grd_snw.rows; i++) {
  872. send_status[i] = grd_snw.valueMatrix(i, grd_snw.colRef("status")); // 상태값(I,U,D)
  873. send_seq[i] = grd_snw.valueMatrix(i, grd_snw.colRef("seq")); // 순서
  874. send_dtmnkey[i] = grd_snw.valueMatrix(i, grd_snw.colRef("dtmnkey")); // 데이터마이닝키
  875. send_diagkindcd[i] = grd_snw.valueMatrix(i, grd_snw.colRef("diagkindcd")); // 진단종류코드
  876. send_diagkindcdflag[i] = grd_snw.valueMatrix(i, grd_snw.colRef("diagkindcdflag")); // 진단종류코드구분
  877. send_snwcd[i] = grd_snw.valueMatrix(i, grd_snw.colRef("snwcd")); // 진단코드
  878. send_snwnm[i] = grd_snw.valueMatrix(i, grd_snw.colRef("snwnm")); // 진단명
  879. if (send_status[i] != "") {
  880. send_data += send_status[i] + sColSep + send_seq[i] + sColSep + send_dtmnkey[i] + sColSep + send_diagkindcd[i] + sColSep + send_diagkindcdflag[i] + sColSep + send_snwcd[i] + sColSep + send_snwnm[i] + sRowSep; // VO형태로 구성
  881. }
  882. }
  883. model.makeValue("/root/main/dtmntmpl/snwlist", send_data);
  884. }
  885. // 처방그리드 내용을 VO형태로 구성
  886. if (grd_prcp.rows > 0 ) {
  887. var send_status = new Array(grd_prcp.rows);
  888. var send_seq = new Array(grd_prcp.rows);
  889. var send_prcpcd = new Array(grd_prcp.rows);
  890. var send_prcpnm = new Array(grd_prcp.rows);
  891. var sColSep = "▦";
  892. var sRowSep = "▩";
  893. var send_data = "m" + sColSep + "seq" + sColSep + "dtmnkey" + sColSep + "prcpcd" + sColSep + "prcpnm" + sRowSep; //타이틀 map file 등에서 사용
  894. for (var i=1; i<grd_prcp.rows; i++) {
  895. send_status[i] = grd_prcp.valueMatrix(i, grd_prcp.colRef("status")); // 상태값(I,U,D)
  896. send_seq[i] = grd_prcp.valueMatrix(i, grd_prcp.colRef("seq")); // 순서
  897. send_dtmnkey[i] = grd_prcp.valueMatrix(i, grd_prcp.colRef("dtmnkey")); // 데이터마이닝키
  898. send_prcpcd[i] = grd_prcp.valueMatrix(i, grd_prcp.colRef("prcpcd")); // 처방코드
  899. send_prcpnm[i] = grd_prcp.valueMatrix(i, grd_prcp.colRef("prcpnm")); // 처방명
  900. send_data += send_status[i] + sColSep + send_seq[i] + sColSep + send_dtmnkey[i] + sColSep + send_prcpcd[i] + sColSep + send_prcpnm[i] + sRowSep; // VO형태로 구성
  901. }
  902. model.makeValue("/root/main/dtmntmpl/prcplist", send_data);
  903. }
  904. // 검사결과그리드 내용을 VO형태로 구성
  905. if (grd_test.rows > 0 ) {
  906. var send_status = new Array(grd_test.rows);
  907. var send_seq = new Array(grd_test.rows);
  908. var send_testcd = new Array(grd_test.rows);
  909. var send_testnm = new Array(grd_test.rows);
  910. var send_refh = new Array(grd_test.rows);
  911. var send_refl = new Array(grd_test.rows);
  912. var send_rsltunit = new Array(grd_test.rows);
  913. var sColSep = "▦";
  914. var sRowSep = "▩";
  915. var send_data = "m" + sColSep + "seq" + sColSep + "dtmnkey" + sColSep + "testcd" + sColSep + "testnm" + sColSep + "refh" + sColSep + "refl" + sColSep + "rsltunit" + sRowSep; //타이틀 map file 등에서 사용
  916. for (var i=1; i<grd_test.rows; i++) {
  917. send_status[i] = grd_test.valueMatrix(i, grd_test.colRef("status")); // 상태값(I,U,D)
  918. send_seq[i] = grd_test.valueMatrix(i, grd_test.colRef("seq")); // 순서
  919. send_dtmnkey[i] = grd_test.valueMatrix(i, grd_test.colRef("dtmnkey")); // 데이터마이닝키
  920. send_testcd[i] = grd_test.valueMatrix(i, grd_test.colRef("testcd")); // 검사코드
  921. send_testnm[i] = grd_test.valueMatrix(i, grd_test.colRef("testnm")); // 검사명
  922. send_refh[i] = grd_test.valueMatrix(i, grd_test.colRef("refh")); // 상한값
  923. send_refl[i] = grd_test.valueMatrix(i, grd_test.colRef("refl")); // 하한값
  924. send_rsltunit[i] = grd_test.valueMatrix(i, grd_test.colRef("rsltunit")); // 단위
  925. send_data += send_status[i] + sColSep + send_seq[i] + sColSep + send_dtmnkey[i] + sColSep + send_testcd[i] + sColSep + send_testnm[i] + sColSep + send_refh[i] + sColSep + send_refl[i] + sColSep + send_rsltunit[i] + sRowSep; // VO형태로 구성
  926. }
  927. model.makeValue("/root/main/dtmntmpl/testlist", send_data);
  928. }
  929. // 수술그리드 내용을 VO형태로 구성
  930. if (grd_op.rows > 0 ) {
  931. var send_status = new Array(grd_op.rows);
  932. var send_seq = new Array(grd_op.rows);
  933. var send_opcd = new Array(grd_op.rows);
  934. var send_opnm = new Array(grd_op.rows);
  935. var sColSep = "▦";
  936. var sRowSep = "▩";
  937. var send_data = "m" + sColSep + "seq" + sColSep + "dtmnkey" + sColSep + "opcd" + sColSep + "opnm" + sRowSep; //타이틀 map file 등에서 사용
  938. for (var i=1; i<grd_op.rows; i++) {
  939. send_status[i] = grd_op.valueMatrix(i, grd_op.colRef("status")); // 상태값(I,U,D)
  940. send_seq[i] = grd_op.valueMatrix(i, grd_op.colRef("seq")); // 순서
  941. send_dtmnkey[i] = grd_op.valueMatrix(i, grd_op.colRef("dtmnkey")); // 데이터마이닝키
  942. send_opcd[i] = grd_op.valueMatrix(i, grd_op.colRef("opcd")); // 수술코드
  943. send_opnm[i] = grd_op.valueMatrix(i, grd_op.colRef("opnm")); // 수술명
  944. send_data += send_status[i] + sColSep + send_seq[i] + sColSep + send_dtmnkey[i] + sColSep + send_opcd[i] + sColSep + send_opnm[i] + sRowSep; // VO형태로 구성
  945. }
  946. model.makeValue("/root/main/dtmntmpl/oplist", send_data);
  947. }
  948. var updt_opord_lnk = getGridUpdateData(grd_opord);
  949. if (updt_opord_lnk != "") {
  950. model.makeValue("/root/main/dtmntmpl/opordlist", grd_opord.getUpdateData()); // 수술과/집도의(내원)
  951. }
  952. if(submit("TXCDT00104") == true){
  953. // submit() 성공하면 그리드의 i,u,d 상태 제거
  954. grd_area.clearStatus();
  955. grd_age.clearStatus();
  956. grd_chosord.clearStatus();
  957. grd_snw.clearStatus();
  958. grd_prcp.clearStatus();
  959. grd_test.clearStatus();
  960. grd_op.clearStatus();
  961. grd_opord.clearStatus();
  962. messageBox("탬플릿 저장이", "I002", "");
  963. // 입력모드면 템플릿 저장후 수정모드로 변경과 dtmnkey값을 설정해준다.
  964. if (savemode == "I") {
  965. model.setValue("/root/main/dtmntmpl/tmpldefine/savemode","U");
  966. var dtmnkey = model.getValue("/root/temp/ref/key/dtmnkey");
  967. model.makeValue("/root/main/dtmntmpl/tmpldefine/dtmnkey", dtmnkey);
  968. }
  969. //else if (savemode == "U") {
  970. fGridInit(); // 그리드 초기화
  971. fDtmnInfoSearch();
  972. //}
  973. }
  974. }
  975. }
  976. // 데이터마이닝 수동실행
  977. function fDtMnExec() {
  978. // 필수입력 체크
  979. if (!fCheckDtmn()) return;
  980. // 그리드값을 인스턴스로 생성
  981. model.makeValue("/root/main/dtmntmpl/area", grd_area.getUpdateDataAll("i")); // 지역
  982. model.makeValue("/root/main/dtmntmpl/agelist", grd_age.getUpdateDataAll("i")); // 연령
  983. model.makeValue("/root/main/dtmntmpl/chosordlist", grd_chosord.getUpdateDataAll("i")); // 진료과/진료의(내원)
  984. model.makeValue("/root/main/dtmntmpl/snwlist", grd_snw.getUpdateDataAll("i")); // 상병
  985. model.makeValue("/root/main/dtmntmpl/prcplist", grd_prcp.getUpdateDataAll("i")); // 처방
  986. model.makeValue("/root/main/dtmntmpl/testlist", grd_test.getUpdateDataAll("i")); // 검사
  987. model.makeValue("/root/main/dtmntmpl/oplist", grd_op.getUpdateDataAll("i")); // 수술
  988. model.makeValue("/root/main/dtmntmpl/opordlist", grd_opord.getUpdateDataAll("i")); // 수술과/집도의
  989. window.load("SPCDT01000_데이터마이닝수동실행.xrw", "modal", "", "", "/root/main", "/root/main");
  990. /*
  991. submit("TRCDT00112");
  992. model.SetFocus("grd_dtmnexec");
  993. var grid_rows = grd_dtmnexec.rows-1;
  994. model.setvalue("/root/temp/countnode" , grid_rows);
  995. */
  996. // 수동실행을 위하여 그리드값을 인스턴스로 생성한걸 지워준다.
  997. model.resetInstanceNode("/root/main/dtmntmpl/area");
  998. model.resetInstanceNode("/root/main/dtmntmpl/agelist");
  999. model.resetInstanceNode("/root/main/dtmntmpl/chosordlist");
  1000. model.resetInstanceNode("/root/main/dtmntmpl/snwlist");
  1001. model.resetInstanceNode("/root/main/dtmntmpl/prcplist");
  1002. model.resetInstanceNode("/root/main/dtmntmpl/testlist");
  1003. model.resetInstanceNode("/root/main/dtmntmpl/oplist");
  1004. model.resetInstanceNode("/root/main/dtmntmpl/opordlist");
  1005. model.refresh();
  1006. }
  1007. // 상병정보 조건 삭제
  1008. function snwlist_del() {
  1009. var diagNode = "/root/main/snwlist";
  1010. if ( grd_snw.valueMatrix ( grd_snw.row,0 ) == "I") {
  1011. grd_snw.deleteRow(grd_snw.row, true);
  1012. } else {
  1013. model.makeValue ( diagNode + "[" + grd_snw.row + "]/status", "D" );
  1014. grd_snw.refresh();
  1015. }
  1016. }
  1017. // 처방정보 조건 삭제
  1018. function prcplist_del() {
  1019. var diagNode = "/root/main/prcplist";
  1020. if ( grd_prcp.valueMatrix ( grd_prcp.row,0 ) == "I") {
  1021. grd_prcp.deleteRow(grd_prcp.row, true);
  1022. } else {
  1023. model.makeValue ( diagNode + "[" + grd_prcp.row + "]/status", "D" );
  1024. grd_prcp.refresh();
  1025. }
  1026. }
  1027. // 검사정보 조건 삭제
  1028. function testlist_del() {
  1029. var diagNode = "/root/main/testlist";
  1030. if ( grd_test.valueMatrix ( grd_test.row,0 ) == "I") {
  1031. grd_test.deleteRow(grd_test.row, true);
  1032. } else {
  1033. model.makeValue ( diagNode + "[" + grd_test.row + "]/status", "D" );
  1034. grd_test.refresh();
  1035. }
  1036. }
  1037. // 수술정보 조건 삭제
  1038. function oplist_del() {
  1039. var diagNode = "/root/main/oplist";
  1040. if ( grd_op.valueMatrix ( grd_op.row,0 ) == "I") {
  1041. grd_op.deleteRow(grd_op.row, true);
  1042. } else {
  1043. model.makeValue ( diagNode + "[" + grd_op.row + "]/status", "D" );
  1044. grd_op.refresh();
  1045. }
  1046. }
  1047. function fGridSetStatus(grid, stat) {
  1048. // 멀티업데이트 그리드의 상태값을 설정
  1049. if (grid.rows > 0) {
  1050. for (i = 0; i < grid.rows; i++) {
  1051. grid.addStatus(i, stat);
  1052. }
  1053. }
  1054. }
  1055. function zsufGetOutCrmOrdDeptDoctorList(dutplceinstcd, dutplcecd, rslt_ref, sort_field, sort_method, basedd){
  1056. zsufGetCrmOrdDeptDoctorList("out", dutplceinstcd, dutplcecd, rslt_ref, sort_field, sort_method, basedd);
  1057. }
  1058. function zsufGetCrmOrdDeptDoctorList(inoutflag, dutplceinstcd, dutplcecd, rslt_ref, sort_field, sort_method, basedd){
  1059. if(dutplceinstcd==null||dutplceinstcd==""||dutplcecd==null||dutplcecd==""){
  1060. return;
  1061. }
  1062. model.removenode(zsuResultRef);
  1063. model.makenode(zsuResultRef);
  1064. model.removenode(rslt_ref);
  1065. model.makenode(rslt_ref);
  1066. setParameter("dutplceinstcd", dutplceinstcd);
  1067. setParameter("dutplcecd", dutplcecd);
  1068. setParameter("rslt_ref", rslt_ref);
  1069. setParameter("sortfield", sort_field);
  1070. setParameter("sortmethod", sort_method);
  1071. setParameter("basedd", basedd);
  1072. setParameter("inoutflag", inoutflag);
  1073. var success = submit("TRCDT00114", "false", getParameterPath(), zsuResultRef);
  1074. copyNodeType(rslt_ref, zsuResultRef, "replace");
  1075. clearParameter("dutplceinstcd");
  1076. clearParameter("dutplcecd");
  1077. clearParameter("rslt_ref");
  1078. clearParameter("sortfield");
  1079. clearParameter("sortmethod");
  1080. clearParameter("basedd");
  1081. clearParameter("inoutflag");
  1082. model.removenode(zsuResultRef);
  1083. }
  1084. ]]>
  1085. </script>
  1086. </xhtml:head>
  1087. <xhtml:body guideline="1,1037;1,731;1,784;" style="font-family:굴림체; font-size:9pt; margin-left:8; margin-top:0; margin-right:8; margin-bottom:0; ">
  1088. <group id="grp_tle" style="left:0px; top:0px; width:1195px; height:13px; ">
  1089. <caption id="caption1" class="tit_1" style="left:0px; top:0px; width:145px; height:13px; ">고객정보마이닝 관리</caption>
  1090. </group>
  1091. <group id="group2" style="left:224px; top:13px; width:970px; height:740px; ">
  1092. <caption id="caption9" class="tit_2" style="left:5px; top:10px; width:111px; height:13px; ">탬플릿 정의</caption>
  1093. <button id="btn_dtmnlist" class="btn5_letter2" style="left:928px; top:5px; width:42px; height:19px; ">
  1094. <caption>목록</caption>
  1095. <script type="javascript" ev:event="DOMActivate">
  1096. <![CDATA[
  1097. navigate("SMCDT00200", "", "", "", "SMCDT00200", "/root/temp/ref", "/root/send");
  1098. ]]>
  1099. </script>
  1100. </button>
  1101. <line id="line2" class="line_1" style="x1:0px; y1:25px; x2:970px; y2:25px; "/>
  1102. <line id="line3" class="line_2" style="x1:0px; y1:52px; x2:970px; y2:52px; "/>
  1103. <caption id="cap_dtmntitl" class="cell_1" style="left:0px; top:30px; width:105px; height:23px; text-align:center; vertical-align:middle; ">탬플릿명</caption>
  1104. <input id="ipt_dtmntitl" ref="/root/main/dtmntmpl/tmpldefine/dtmntitl" class="input_essential" navindex="1" style="left:108px; top:31px; width:259px; height:19px; "/>
  1105. <caption id="cap_useyn" class="cell_1" style="left:370px; top:30px; width:105px; height:23px; text-align:center; vertical-align:middle; ">사용여부</caption>
  1106. <select1 id="rdo_useyn" ref="/root/main/dtmntmpl/tmpldefine/dtmnattruseyn" navindex="2" appearance="full" cellspacing="15" cols="2" overflow="visible" style="left:478px; top:32px; width:160px; height:19px; background-color:transparent; border-style:none; ">
  1107. <choices>
  1108. <itemset nodeset="/root/init/C0039list/C0039">
  1109. <label ref="cdnm"/>
  1110. <value ref="cdid"/>
  1111. </itemset>
  1112. </choices>
  1113. </select1>
  1114. <caption id="caption2" class="cell_1" style="left:640px; top:30px; width:105px; height:23px; text-align:center; vertical-align:middle; ">등록자</caption>
  1115. <input id="ipt_writnm" ref="/root/main/dtmntmpl/tmpldefine/reqwritnm" class="input_essential" imemode="disabled" style="left:748px; top:31px; width:200px; height:19px; ">
  1116. <script type="javascript" ev:event="onkeyup">
  1117. <![CDATA[
  1118. inputEnterKey("btn_writsrch", "DOMActivate");
  1119. ]]>
  1120. </script>
  1121. </input>
  1122. <button id="btn_writsrch" class="icon_search" style="left:951px; top:31px; width:16px; height:16px; ">
  1123. <caption/>
  1124. <script type="javascript" ev:event="DOMActivate">
  1125. <![CDATA[
  1126. // 작성자 검색
  1127. // if ( model.getValue("/root/main/dtmntmpl/tmpldefine/reqwritid") != "" ){
  1128. // var search_condition = "writid";
  1129. // var search_term = model.getValue("/root/main/dtmntmpl/tmpldefine/reqwritid");
  1130. // } else if ( model.getValue("/root/main/dtmntmpl/tmpldefine/reqdeptcd") != "" ){
  1131. // var search_condition = "deptcd";
  1132. // var search_term = model.getValue("/root/main/dtmntmpl/tmpldefine/reqdeptcd");
  1133. // } else {
  1134. // var search_condition = "writid";
  1135. // var search_term = model.getValue("/root/main/dtmntmpl/tmpldefine/reqwritid");
  1136. // }
  1137. var search_condition = "empnm";
  1138. var search_term = model.getValue("/root/main/dtmntmpl/tmpldefine/reqwritnm");
  1139. var receive_empid_path = "/root/main/dtmntmpl/tmpldefine/reqwritid";
  1140. var receive_empnm_path = "/root/main/dtmntmpl/tmpldefine/reqwritnm";
  1141. var receive_deptcd_path = "/root/main/dtmntmpl/tmpldefine/reqdeptcd";
  1142. var receive_deptnm_path = "/root/main/dtmntmpl/tmpldefine/reqdeptnm";
  1143. setParameter("search_condition", search_condition);
  1144. setParameter("search_term", search_term);
  1145. setParameter("receive_empid_path", receive_empid_path);
  1146. setParameter("receive_empnm_path", receive_empnm_path);
  1147. setParameter("receive_deptcd_path", receive_deptcd_path);
  1148. setParameter("receive_deptnm_path", receive_deptnm_path);
  1149. modal("SPCCM00400")
  1150. clearParameter("search_condition");
  1151. clearParameter("search_term");
  1152. clearParameter("receive_empid_path");
  1153. clearParameter("receive_empnm_path");
  1154. clearParameter("receive_deptcd_path");
  1155. clearParameter("receive_deptnm_path");
  1156. ]]>
  1157. </script>
  1158. </button>
  1159. <line id="line9" class="line_3" style="x1:0px; y1:77px; x2:970px; y2:77px; "/>
  1160. <caption id="cap_dtmnsmminfo" class="cell_1" style="left:0px; top:54px; width:105px; height:23px; text-align:center; vertical-align:middle; ">요약정보</caption>
  1161. <input id="ipt_dtmnsmminfo" ref="/root/main/dtmntmpl/tmpldefine/dtmnsmminfo" class="input_default" navindex="1" style="left:108px; top:56px; width:529px; height:19px; "/>
  1162. <caption id="cap_dtmnlnkcond" class="cell_1" style="left:640px; top:54px; width:105px; height:23px; text-align:center; vertical-align:middle; ">연결조건</caption>
  1163. <select1 id="cmb_dtmnlnkcond" ref="/root/main/dtmntmpl/tmpldefine/dtmnlnkcond" class="combo_essential" navindex="11" appearance="minimal" style="left:748px; top:54px; width:200px; height:19px; ">
  1164. <choices>
  1165. <itemset nodeset="/root/init/C0042list/C0042">
  1166. <label ref="cdnm"/>
  1167. <value ref="cdid"/>
  1168. </itemset>
  1169. </choices>
  1170. </select1>
  1171. <line id="line1" class="line_1" style="x1:0px; y1:102px; x2:970px; y2:102px; "/>
  1172. <caption id="caption4" class="tit_2" style="left:5px; top:87px; width:111px; height:13px; ">인적정보</caption>
  1173. <line id="line4" class="line_2" style="x1:0px; y1:129px; x2:484px; y2:129px; "/>
  1174. <caption id="cap_sex" class="cell_1" style="left:0px; top:107px; width:105px; height:23px; text-align:center; vertical-align:middle; ">성별</caption>
  1175. <select1 id="cmb_sex" ref="/root/main/dtmntmpl/humtrainfo/sex" class="combo_default" navindex="13" appearance="minimal" style="left:108px; top:108px; width:131px; height:19px; ">
  1176. <choices>
  1177. <itemset nodeset="/root/init/P0313list/P0313">
  1178. <label ref="cdnm"/>
  1179. <value ref="cdid"/>
  1180. </itemset>
  1181. </choices>
  1182. </select1>
  1183. <select id="chk_forgeryn" ref="/root/main/dtmntmpl/humtrainfo/forgeryn" disabled="false" navindex="70" overflow="visible" appearance="full" cellspacing="15" cols="1" style="left:835px; top:87px; width:51px; height:13px; background-color:transparent; border-style:none; ">
  1184. <choices>
  1185. <item>
  1186. <label>외국인</label>
  1187. <value>Y</value>
  1188. </item>
  1189. </choices>
  1190. </select>
  1191. <!--<caption id="cap_empyn" class="cell_1" style="left:242px; top:155px; width:105px; height:23px; text-align:center; vertical-align:middle; ">교직원여부</caption>
  1192. <select id="chk_empyn" ref="/root/main/dtmntmpl/humtrainfo/empyn" disabled="false" navindex="70" overflow="visible" appearance="full" cellspacing="15" cols="1" style="left:356px; top:158px; width:51px; height:19px; background-color:transparent; border-style:none; ">
  1193. <choices>
  1194. <item>
  1195. <label>교직원</label>
  1196. <value>Y</value>
  1197. </item>
  1198. </choices>
  1199. </select>-->
  1200. <select id="chk_dethyn" ref="/root/main/dtmntmpl/humtrainfo/dethyn" disabled="false" navindex="70" overflow="visible" appearance="full" cellspacing="15" cols="1" style="left:910px; top:87px; width:51px; height:13px; background-color:transparent; border-style:none; ">
  1201. <choices>
  1202. <item>
  1203. <label>사망</label>
  1204. <value>Y</value>
  1205. </item>
  1206. </choices>
  1207. </select>
  1208. <line id="line6" class="line_2" style="x1:0px; y1:153px; x2:970px; y2:153px; "/>
  1209. <caption id="cap_educgrdecd" class="cell_1" style="left:0px; top:131px; width:105px; height:23px; text-align:center; vertical-align:middle; ">학력</caption>
  1210. <select1 id="cmb_educgrdecd" ref="/root/main/dtmntmpl/humtrainfo/educgrdecd" class="combo_default" navindex="13" appearance="minimal" style="left:108px; top:132px; width:131px; height:19px; ">
  1211. <choices>
  1212. <itemset nodeset="/root/init/M0069list/M0069">
  1213. <label ref="cdnm"/>
  1214. <value ref="cdid"/>
  1215. </itemset>
  1216. </choices>
  1217. </select1>
  1218. <caption id="cap_jobcd" class="cell_1" style="left:242px; top:131px; width:105px; height:23px; text-align:center; vertical-align:middle; ">직업</caption>
  1219. <select1 id="cmb_jobcd" ref="/root/main/dtmntmpl/humtrainfo/jobcd" class="combo_default" navindex="13" appearance="minimal" style="left:350px; top:132px; width:131px; height:19px; ">
  1220. <choices>
  1221. <itemset nodeset="/root/init/M0068list/M0068">
  1222. <label ref="cdnm"/>
  1223. <value ref="cdid"/>
  1224. </itemset>
  1225. </choices>
  1226. </select1>
  1227. <caption id="cap_age" class="cell_1" style="left:484px; top:106px; width:105px; height:48px; text-align:center; vertical-align:middle; ">연령</caption>
  1228. <input id="ipt_agefrom" ref="/root/temp/age/agefrom" class="output_w" navindex="14" format="999" appearance="output" style="left:762px; top:108px; width:30px; height:19px; ">
  1229. <script type="javascript" ev:event="onkeyup">
  1230. <![CDATA[
  1231. inputEnterKey("btn_age_ins", "DOMActivate");
  1232. ]]>
  1233. </script>
  1234. </input>
  1235. <caption id="caption13" style="left:795px; top:108px; width:35px; height:17px; ">세 ~</caption>
  1236. <input id="ipt_ageto" ref="/root/temp/age/ageto" class="output_w" navindex="15" format="999" appearance="output" style="left:828px; top:108px; width:30px; height:19px; ">
  1237. <script type="javascript" ev:event="onkeyup">
  1238. <![CDATA[
  1239. inputEnterKey("btn_age_ins", "DOMActivate");
  1240. ]]>
  1241. </script>
  1242. </input>
  1243. <caption id="caption14" style="left:861px; top:108px; width:20px; height:17px; ">세</caption>
  1244. <button id="btn_age_ins" class="btn2_letter2" navindex="16" style="left:763px; top:130px; width:42px; height:19px; ">
  1245. <caption>추가</caption>
  1246. <script type="javascript" ev:event="DOMActivate">
  1247. <![CDATA[
  1248. // 입력한 연령을 연령그리드에 넣어준다.
  1249. var agefrom = model.getValue("/root/temp/age/agefrom");
  1250. var ageto = model.getValue("/root/temp/age/ageto");
  1251. if(agefrom == ""){
  1252. var rtn = messageBox("시작연령 ", "C001");
  1253. return;
  1254. } else if(ageto == "") {
  1255. var rtn = messageBox("끝연령 ", "C001");
  1256. return;
  1257. } else {
  1258. if(agefrom > ageto){
  1259. var rtn = messageBox("시작연령과 끝연령을 올바르게", "C001");
  1260. } else {
  1261. grd_age.addRow();
  1262. model.copyNode("/root/main/agelist[" + grd_age.row + " ]", "/root/temp/age");
  1263. model.resetInstanceNode("/root/temp/age");
  1264. model.refresh();
  1265. grd_age.attribute ( "height" ) = ( grd_age.rows ) * 23;
  1266. model.setValue( "/root/init/diagdetlvw", "M" );
  1267. }
  1268. }
  1269. ]]>
  1270. </script>
  1271. </button>
  1272. <button id="btn_age_del" class="btn2_letter2" navindex="17" style="left:808px; top:130px; width:42px; height:19px; ">
  1273. <caption>삭제</caption>
  1274. <script type="javascript" ev:event="DOMActivate">
  1275. <![CDATA[
  1276. // 선택한 연령그리드를 삭제한다.
  1277. if ((grd_age.row > 0) && (grd_age.col > 1)){
  1278. grd_age.deleteRow(grd_age.row);
  1279. grd_age.refresh();
  1280. grd_age.attribute ( "height" ) = ( grd_age.rows ) * 23;
  1281. model.setValue( "/root/init/diagdetlvw", "M" );
  1282. } else {
  1283. messageBox("삭제할 행이 없거나 선택하지 ","E007");
  1284. }
  1285. ]]>
  1286. </script>
  1287. </button>
  1288. <line id="line7" class="line_3" style="x1:0px; y1:203px; x2:970px; y2:203px; "/>
  1289. <caption id="cap_religncd" class="cell_1" style="left:242px; top:107px; width:105px; height:23px; text-align:center; vertical-align:middle; ">종교</caption>
  1290. <select1 id="cmb_religncd" ref="/root/main/dtmntmpl/humtrainfo/religncd" class="combo_default" navindex="13" appearance="minimal" style="left:350px; top:109px; width:131px; height:19px; ">
  1291. <choices>
  1292. <itemset nodeset="/root/init/P0157list/P0157">
  1293. <label ref="cdnm"/>
  1294. <value ref="cdid"/>
  1295. </itemset>
  1296. </choices>
  1297. </select1>
  1298. <caption id="cap_area" class="cell_1" style="left:0px; top:155px; width:105px; height:48px; text-align:center; vertical-align:middle; ">거주지</caption>
  1299. <select1 id="cmb_city" ref="/root/temp/areagrup/citycd" class="combo_default" navindex="18" appearance="minimal" style="left:486px; top:156px; width:96px; height:19px; ">
  1300. <choices>
  1301. <itemset nodeset="/root/init/areacity/city">
  1302. <label ref="citynm"/>
  1303. <value ref="citycd"/>
  1304. </itemset>
  1305. </choices>
  1306. <script type="javascript" ev:event="xforms-select">
  1307. <![CDATA[
  1308. // 선택한 시도에 따른 시군구를 가져온다.
  1309. // 선택한 시도의 lable값을 인스턴스에 심어준다.
  1310. var citycd = model.getValue("/root/temp/areagrup/citycd");
  1311. var citynm = cmb_city.label;
  1312. model.setValue("/root/send/citycd",citycd);
  1313. model.setValue("/root/temp/areagrup/city", citynm);
  1314. model.removenodeset("/root/init/areacitycnty/citycntyarea");
  1315. model.removenodeset("/root/init/areablok/blok");
  1316. model.resetInstanceNode("/root/temp/areagrup/citycntyareacd");
  1317. model.resetInstanceNode("/root/temp/areagrup/blokcd");
  1318. submit("TRCDT00102");
  1319. ]]>
  1320. </script>
  1321. </select1>
  1322. <select1 id="cmb_citycntyarea" ref="/root/temp/areagrup/citycntyareacd" class="combo_default" navindex="19" appearance="minimal" style="left:585px; top:156px; width:115px; height:19px; ">
  1323. <choices>
  1324. <itemset nodeset="/root/init/areacitycnty/citycntyarea">
  1325. <label ref="citycntyareanm"/>
  1326. <value ref="citycntyareacd"/>
  1327. </itemset>
  1328. </choices>
  1329. <script type="javascript" ev:event="xforms-select">
  1330. <![CDATA[
  1331. // 선택한 시군구에 대한 읍면동을 가져온다.
  1332. // 선택한 시군구의 lable값을 인스턴스에 심어준다.
  1333. var citycntyareacd = model.getValue("/root/temp/areagrup/citycntyareacd");
  1334. var citycntyareanm = cmb_citycntyarea.label;
  1335. model.setValue("/root/send/citycntyareacd",citycntyareacd);
  1336. model.setValue("/root/temp/areagrup/citycntyarea", citycntyareanm);
  1337. submit("TRCDT00103");
  1338. ]]>
  1339. </script>
  1340. </select1>
  1341. <select1 id="cmb_blok" ref="/root/temp/areagrup/blokcd" class="combo_default" navindex="20" appearance="minimal" style="left:703px; top:156px; width:169px; height:19px; ">
  1342. <choices>
  1343. <itemset nodeset="/root/init/areablok/blok">
  1344. <label ref="bloknm"/>
  1345. <value ref="blokcd"/>
  1346. </itemset>
  1347. </choices>
  1348. <script type="javascript" ev:event="xforms-select">
  1349. <![CDATA[
  1350. // 선택한 읍면동의 lable값을 인스턴스에 심어준다.
  1351. var bloknm = cmb_blok.label;
  1352. model.setValue("/root/temp/areagrup/blok", bloknm);
  1353. ]]>
  1354. </script>
  1355. </select1>
  1356. <button id="btn_area_ins" class="btn2_letter2" navindex="21" style="left:878px; top:157px; width:42px; height:19px; ">
  1357. <caption>추가</caption>
  1358. <script type="javascript" ev:event="DOMActivate">
  1359. <![CDATA[
  1360. // 선택한 지역을 지역그리드에 넣어준다.
  1361. var citycd = model.getValue("/root/temp/areagrup/citycd");
  1362. var city = model.getValue("/root/temp/areagrup/city");
  1363. var citycntyareacd = model.getValue("/root/temp/areagrup/citycntyareacd");
  1364. var citycntyarea = model.getValue("/root/temp/areagrup/citycntyarea");
  1365. var blokcd = model.getValue("/root/temp/areagrup/blokcd");
  1366. var blok = model.getValue("/root/temp/areagrup/blok");
  1367. if(citycd == ""){
  1368. var rtn = messageBox("시도를 ", "C002");
  1369. return;
  1370. } else {
  1371. grd_area.additem();
  1372. model.copyNode("/root/main/area[" + grd_area.row + " ]", "/root/temp/areagrup");
  1373. //model.resetInstanceNode("/root/temp/citycd");
  1374. model.resetInstanceNode("/root/temp/areagrup");
  1375. model.refresh();
  1376. grd_area.attribute ( "height" ) = ( grd_area.rows ) * 23;
  1377. model.setValue( "/root/init/diagdetlvw1", "M" );
  1378. }
  1379. ]]>
  1380. </script>
  1381. </button>
  1382. <button id="btn_area_del" class="btn2_letter2" navindex="22" style="left:923px; top:157px; width:42px; height:19px; ">
  1383. <caption>삭제</caption>
  1384. <script type="javascript" ev:event="DOMActivate">
  1385. <![CDATA[
  1386. // 선택한 지역그리드를 삭제한다.
  1387. if ((grd_area.row > 0) && (grd_area.col > 1)){
  1388. grd_area.deleteRow(grd_area.row);
  1389. grd_area.refresh();
  1390. grd_area.attribute ( "height" ) = ( grd_area.rows ) * 23;
  1391. model.setValue( "/root/init/diagdetlvw1", "M" );
  1392. } else {
  1393. messageBox("삭제할 행이 없거나 선택하지 ","E007");
  1394. }
  1395. ]]>
  1396. </script>
  1397. </button>
  1398. <line id="line8" class="line_1" style="x1:0px; y1:228px; x2:970px; y2:228px; "/>
  1399. <caption id="caption17" class="tit_2" style="left:5px; top:213px; width:111px; height:13px; ">내원정보</caption>
  1400. <line id="line10" class="line_2" style="x1:0px; y1:256px; x2:970px; y2:256px; "/>
  1401. <caption id="caption18" class="cell_1" style="left:0px; top:233px; width:105px; height:23px; text-align:center; vertical-align:middle; ">내원기간</caption>
  1402. <select1 id="cmb_chostermbase" ref="/root/main/dtmntmpl/chosinfo/chostermbase" class="combo_default" navindex="27" appearance="minimal" style="left:108px; top:235px; width:97px; height:19px; ">
  1403. <choices>
  1404. <itemset nodeset="/root/init/C0043list/C0043">
  1405. <label ref="cdnm"/>
  1406. <value ref="cdid"/>
  1407. </itemset>
  1408. </choices>
  1409. <script type="javascript" ev:event="xforms-select">
  1410. <![CDATA[
  1411. // 내원기간기준일에 따라 외래처방과 입원처방으로 분류
  1412. var chostermbase = model.getValue("/root/main/dtmntmpl/chosinfo/chostermbase");
  1413. if (chostermbase == "1" ) {
  1414. model.setValue("/root/main/dtmntmpl/prcpinfo/outyn","O");
  1415. cmb_inpath.disabled = true;
  1416. ipt_wardcd.disabled =true;
  1417. } else {
  1418. model.setValue("/root/main/dtmntmpl/prcpinfo/outyn","I");
  1419. cmb_inpath.disabled = false;
  1420. ipt_wardcd.disabled =false;
  1421. }
  1422. ]]>
  1423. </script>
  1424. </select1>
  1425. <input id="ipt_chosfromdd" ref="/root/main/dtmntmpl/chosinfo/chosfromdd" class="input_default" navindex="23" inputtype="date" style="left:208px; top:235px; width:85px; height:19px; "/>
  1426. <caption id="caption27" class="search_no_b" style="left:298px; top:233px; width:12px; height:17px; ">~</caption>
  1427. <input id="ipt_chostodd" ref="/root/main/dtmntmpl/chosinfo/chostodd" class="input_default" navindex="24" inputtype="date" style="left:313px; top:235px; width:85px; height:19px; "/>
  1428. <line id="line11" class="line_2" style="x1:525px; y1:281px; x2:970px; y2:281px; "/>
  1429. <caption id="caption19" class="cell_1" style="left:525px; top:233px; width:105px; height:23px; text-align:center; vertical-align:middle; ">진료형태</caption>
  1430. <select1 id="cmb_ordtype" ref="/root/main/dtmntmpl/chosinfo/ordtype" class="combo_default" navindex="13" appearance="minimal" style="left:633px; top:235px; width:111px; height:19px; ">
  1431. <choices>
  1432. <itemset nodeset="/root/init/P0001list/P0001">
  1433. <label ref="cdnm"/>
  1434. <value ref="cdid"/>
  1435. </itemset>
  1436. </choices>
  1437. </select1>
  1438. <caption id="cap_insukind" class="cell_1" style="left:525px; top:258px; width:105px; height:23px; text-align:center; vertical-align:middle; ">보험유형</caption>
  1439. <select1 id="cmb_insukind" ref="/root/main/dtmntmpl/chosinfo/insukind" class="combo_default" navindex="13" appearance="minimal" style="left:633px; top:260px; width:111px; height:19px; ">
  1440. <choices>
  1441. <itemset nodeset="/root/init/P0008list/P0008">
  1442. <label ref="cdnm"/>
  1443. <value ref="cdid"/>
  1444. </itemset>
  1445. </choices>
  1446. </select1>
  1447. <caption id="caption21" class="cell_1" style="left:747px; top:233px; width:105px; height:23px; text-align:center; vertical-align:middle; ">입원경로</caption>
  1448. <select1 id="cmb_inpath" ref="/root/main/dtmntmpl/chosinfo/inpath" class="combo_default" navindex="13" appearance="minimal" style="left:855px; top:235px; width:111px; height:19px; ">
  1449. <choices>
  1450. <itemset nodeset="/root/init/P0002list/P0002">
  1451. <label ref="cdnm"/>
  1452. <value ref="cdid"/>
  1453. </itemset>
  1454. </choices>
  1455. </select1>
  1456. <line id="line12" class="line_2" style="x1:0px; y1:331px; x2:970px; y2:331px; "/>
  1457. <caption id="caption22" class="cell_1" style="left:0px; top:258px; width:105px; height:73px; text-align:center; vertical-align:middle; ">진료과/의료진</caption>
  1458. <select1 id="cmb_orddept" ref="/root/send/srch/ordlist/orddeptcd" class="combo_search" appearance="minimal" style="left:108px; top:258px; width:175px; height:19px; ">
  1459. <choices>
  1460. <itemset nodeset="/root/init/basecdlist/orddeptlist/dept">
  1461. <label ref="depthngnm"/>
  1462. <value ref="deptcd"/>
  1463. </itemset>
  1464. </choices>
  1465. <script type="javascript" ev:event="xforms-select">
  1466. <![CDATA[
  1467. var deptcdnm = cmb_orddept.label;
  1468. model.setValue("/root/send/srch/ordlist/orddeptnm", deptcdnm);
  1469. model.resetInstanceNode("/root/init/basecdlist/orddrlist/user");
  1470. /*
  1471. var dutplceinstcd = getGlobalVariable("dutplceinstcd");
  1472. var deptcd = model.getValue("/root/send/srch/ordlist/orddeptcd");
  1473. var basedd = getCurrentDate();
  1474. */
  1475. submit("TRCDT00114");
  1476. /*
  1477. zsufGetOutCrmOrdDeptDoctorList(dutplceinstcd, deptcd, "/root/init/basecdlist/orddrlist", "usernm", "asc", basedd);
  1478. */
  1479. if (model.getValue("/root/send/srch/ordlist/orddeptcd") == "") {
  1480. model.makeValue("/root/init/basecdlist/orddrlist", "");
  1481. }
  1482. addComboItem( "cmb_atdoct");
  1483. model.setValue("/root/send/srch/ordlist/orddrid", "");
  1484. model.refresh();
  1485. ]]>
  1486. </script>
  1487. </select1>
  1488. <select1 id="cmb_atdoct" ref="/root/send/srch/ordlist/orddrid" class="combo_search" appearance="minimal" style="left:286px; top:258px; width:145px; height:19px; ">
  1489. <choices>
  1490. <itemset nodeset="/root/init/basecdlist/orddrlist/user">
  1491. <label ref="usernm"/>
  1492. <value ref="userid"/>
  1493. </itemset>
  1494. </choices>
  1495. <script type="javascript" ev:event="xforms-select">
  1496. <![CDATA[
  1497. var orddrnm = cmb_atdoct.label;
  1498. model.setValue("/root/send/srch/ordlist/orddrnm", orddrnm);
  1499. ]]>
  1500. </script>
  1501. </select1>
  1502. <!--<select1 id="cmb_medispcl" ref="/root/send/srch/ordlist/medispclid" class="combo_search" appearance="minimal" style="left:334px; top:258px; width:95px; height:19px; ">
  1503. <choices>
  1504. <itemset nodeset="/root/init/basecdlist/orddrlist/user">
  1505. <label ref="usernm"/>
  1506. <value ref="userid"/>
  1507. </itemset>
  1508. </choices>
  1509. <script type="javascript" ev:event="xforms-select">
  1510. <![CDATA[
  1511. var medispclnm = cmb_medispcl.label;
  1512. model.setValue("/root/send/srch/ordlist/medispclnm", medispclnm);
  1513. ]]>
  1514. </script>
  1515. </select1>-->
  1516. <button id="button2" class="btn2_letter2" navindex="16" style="left:435px; top:258px; width:42px; height:19px; ">
  1517. <caption>추가</caption>
  1518. <script type="javascript" ev:event="DOMActivate">
  1519. <![CDATA[
  1520. // 선택한 진료과/의료진(주치의, 담당의)을 진료과/의료진그리드에 넣어준다.
  1521. var orddept = model.getValue("/root/send/srch/ordlist/orddeptcd");
  1522. if(orddept == ""){
  1523. var rtn = messageBox("진료과를 ", "C001");
  1524. return;
  1525. } else {
  1526. grd_chosord.addRow();
  1527. model.copyNode("/root/main/chosordlist[" + grd_chosord.row + " ]", "/root/send/srch/ordlist");
  1528. model.resetInstanceNode("/root/send/srch/ordlist");
  1529. model.refresh();
  1530. grd_chosord.attribute ( "height" ) = ( grd_chosord.rows ) * 23;
  1531. model.setValue( "/root/init/diagdetlvw2", "M" );
  1532. }
  1533. ]]>
  1534. </script>
  1535. </button>
  1536. <button id="button1" class="btn2_letter2" navindex="17" style="left:480px; top:258px; width:42px; height:19px; ">
  1537. <caption>삭제</caption>
  1538. <script type="javascript" ev:event="DOMActivate">
  1539. <![CDATA[
  1540. // 선택한 진료과/의료진그리드를 삭제한다.
  1541. if ((grd_chosord.row > 0) && (grd_chosord.col > 1)){
  1542. grd_chosord.deleteRow(grd_chosord.row);
  1543. grd_chosord.refresh();
  1544. } else {
  1545. messageBox("삭제할 행이 없거나 선택하지 ","E007");
  1546. }
  1547. ]]>
  1548. </script>
  1549. </button>
  1550. <caption id="caption23" class="cell_1" style="left:525px; top:283px; width:105px; height:48px; text-align:center; vertical-align:middle; ">병동</caption>
  1551. <input id="ipt_wardcd" ref="/root/main/dtmntmpl/chosinfo/wardcd" class="input_default" inputtype="button" style="left:633px; top:283px; width:334px; height:19px; ">
  1552. <script type="javascript" ev:event="onbuttonclick">
  1553. <![CDATA[
  1554. if (model.getValue("root/init/wardcdvw") == "F") {
  1555. trv_wardcd.visible = true;
  1556. model.setValue("root/init/wardcdvw", "T");
  1557. } else {
  1558. trv_wardcd.visible = false;
  1559. model.setValue("root/init/wardcdvw", "F");
  1560. }
  1561. var chckvalue = "";
  1562. var changevalue = "";
  1563. chckvalue = trv_wardcd.getCheckValue(";");
  1564. if(chckvalue != ""){
  1565. changevalue = fGetChangeValue(chckvalue);
  1566. model.setValue("/root/main/dtmntmpl/chosinfo/wardcd",changevalue);
  1567. model.refresh();
  1568. }else{
  1569. model.setValue("/root/main/dtmntmpl/chosinfo/wardcd","");
  1570. model.refresh();
  1571. }
  1572. ]]>
  1573. </script>
  1574. </input>
  1575. <datagrid id="grd_age" nodeset="/root/main/agelist" class="datagrid" scroll="autovscroll" caption="^연령시작^연령끝" colwidth="0, 70, 70" dataheight="22" extendlastcol="scroll" mergecellsfixedrows="bycolrec" rowheader="update" rowheight="22" style="left:592px; top:107px; width:167px; height:45px; ">
  1576. <col ref="seq" visibility="hidden"/>
  1577. <col ref="agefrom"/>
  1578. <col ref="ageto"/>
  1579. <script type="javascript" ev:event="ondblclick">
  1580. <![CDATA[
  1581. if ( model.getValue( "/root/init/diagdetlvw" ) == "P" && grd_age.rows > 2) {
  1582. grd_age.attribute ( "height" ) = ( grd_age.rows ) * 23;
  1583. model.setValue( "/root/init/diagdetlvw", "M" );
  1584. } else if ( model.getValue( "/root/init/diagdetlvw" ) == "M" && grd_age.rows > 2) {
  1585. grd_age.attribute ( "height" ) = "45";
  1586. model.setValue( "/root/init/diagdetlvw", "P" );
  1587. }
  1588. ]]>
  1589. </script>
  1590. </datagrid>
  1591. <datagrid id="grd_area" nodeset="/root/main/area" class="datagrid" scroll="autovscroll" caption="^시도^시도코드^시군구^시군구코드^읍면동^읍면동코드" colwidth="0, 90, 0, 90, 0, 170, 0" dataheight="22" extendlastcol="scroll" mergecellsfixedrows="bycolrec" rowheader="update" rowheight="22" style="left:108px; top:154px; width:372px; height:48px; ">
  1592. <col ref="seq" visibility="hidden"/>
  1593. <col ref="city"/>
  1594. <col ref="citycd" visibility="hidden"/>
  1595. <col ref="citycntyarea"/>
  1596. <col ref="citycntyareacd" visibility="hidden"/>
  1597. <col ref="blok"/>
  1598. <col ref="blokcd" visibility="hidden"/>
  1599. <script type="javascript" ev:event="ondblclick">
  1600. <![CDATA[
  1601. if ( model.getValue( "/root/init/diagdetlvw1" ) == "P" && grd_area.rows > 1 ) {
  1602. grd_area.attribute ( "height" ) = ( grd_area.rows ) * 23;
  1603. model.setValue( "/root/init/diagdetlvw1", "M" );
  1604. } else if ( model.getValue( "/root/init/diagdetlvw1" ) == "M") {
  1605. grd_area.attribute ( "height" ) = "45";
  1606. model.setValue( "/root/init/diagdetlvw1", "P" );
  1607. }
  1608. ]]>
  1609. </script>
  1610. </datagrid>
  1611. <line id="line13" class="line_3" style="x1:0px; y1:431px; x2:970px; y2:431px; "/>
  1612. <caption id="caption24" class="cell_1" style="left:0px; top:333px; width:105px; height:98px; text-align:center; vertical-align:middle; ">진단명</caption>
  1613. <!--<datagrid id="grd_snw" nodeset="/root/main/snwlist" class="datagrid" caption="^R/O^주^진단코드^진단명" colwidth="0, 30, 30, 70, 250" dataheight="23" defaultrows="0" ellipsis="true" extendlastcol="scroll" mergecellsfixedrows="bycolrec" rowheader="update" rowheight="23" tooltip="true" style="left:108px; top:333px; width:412px; height:97px; ">
  1614. <col ref="seq" visibility="hidden"/>
  1615. <col checkvalue="Y,N" ref="diagkindcd" type="checkbox"/>
  1616. <col checkvalue="Y,N" ref="diagkindcdflag" type="checkbox"/>
  1617. <col ref="snwcd"/>
  1618. <col ref="snwnm"/>
  1619. <script type="javascript" ev:event="onmousedown">
  1620. <![CDATA[
  1621. if(event.button == 3){
  1622. if(grd_snw.isCell(event.target) && grd_snw.mouseRow >= grd_snw.fixedrows){
  1623. window.setPopupMenu(true, "/root/hidden/snwmenu/menu", "name", "func", false);
  1624. }else{
  1625. window.setPopupMenu(false);
  1626. }
  1627. }
  1628. ]]>
  1629. </script>
  1630. </datagrid>-->
  1631. <datagrid id="grd_snw" nodeset="/root/main/snwlist" class="datagrid" caption="^^^R/O^주^진단코드^진단명" colwidth="30, 0, 0, 30, 30, 70, 220" dataheight="23" defaultrows="0" ellipsis="true" extendlastcol="scroll" mergecellsfixedrows="bycolrec" rowheight="23" tooltip="true" style="left:108px; top:333px; width:412px; height:97px; ">
  1632. <col disabled="true" ref="status" type="combo" style="text-align:center; focus-rect:visible; ">
  1633. <choices>
  1634. <item>
  1635. <label>신규</label>
  1636. <value>I</value>
  1637. </item>
  1638. <item>
  1639. <label>삭제</label>
  1640. <value>D</value>
  1641. </item>
  1642. <item>
  1643. <label>수정</label>
  1644. <value>U</value>
  1645. </item>
  1646. </choices>
  1647. </col>
  1648. <col ref="seq" visibility="hidden"/>
  1649. <col ref="dtmnkey" visibility="hidden"/>
  1650. <col checkvalue="Y,N" ref="diagkindcd" type="checkbox"/>
  1651. <col checkvalue="Y,N" ref="diagkindcdflag" type="checkbox"/>
  1652. <col ref="snwcd"/>
  1653. <col ref="snwnm"/>
  1654. <script type="javascript" ev:event="onmousedown">
  1655. <![CDATA[
  1656. if(event.button == 3){
  1657. if(grd_snw.isCell(event.target) && grd_snw.mouseRow >= grd_snw.fixedrows){
  1658. window.setPopupMenu(true, "/root/hidden/snwmenu/menu", "name", "func", false);
  1659. }else{
  1660. window.setPopupMenu(false);
  1661. }
  1662. }
  1663. ]]>
  1664. </script>
  1665. <script type="javascript" ev:event="xforms-value-changed">
  1666. <![CDATA[
  1667. var diagNode = "/root/main/snwlist";
  1668. if ( grd_snw.valueMatrix ( grd_snw.row,0 ) != "I") {
  1669. model.makeValue ( diagNode + "[" + grd_snw.row + "]/status", "U" );
  1670. }
  1671. model.refresh();
  1672. // fDiagUpdate();
  1673. ]]>
  1674. </script>
  1675. </datagrid>
  1676. <button id="btn_snwsrch" class="icon_search" navindex="35" style="left:112px; top:337px; width:16px; height:16px; ">
  1677. <caption/>
  1678. <script type="javascript" ev:event="onclick">
  1679. <![CDATA[
  1680. // 상병검색
  1681. //var col = grd_snw.col;
  1682. //var row = grd_snw.row;
  1683. //var receive_snwnm_path = "/root/main/snwlist["+row+"]/snwnm";
  1684. //var receive_snwcd_path = "/root/main/snwlist["+row+"]/snwcd";
  1685. //fSnwCodeList(receive_snwcd_path, receive_snwnm_path);
  1686. var receive_snw_path = "root/main/snwlist";
  1687. fSnwCodeList(receive_snw_path);
  1688. ]]>
  1689. </script>
  1690. </button>
  1691. <datagrid id="grd_chosord" nodeset="/root/main/chosordlist" class="datagrid" scroll="autovscroll" caption="^진료과^진료과코드^진료의^진료의ID" colwidth="0, 203, 0, 150, 0" dataheight="22" extendlastcol="scroll" mergecellsfixedrows="bycolrec" rowheader="update" rowheight="22" style="left:108px; top:283px; width:412px; height:48px; ">
  1692. <col ref="seq" visibility="hidden"/>
  1693. <col ref="orddeptnm"/>
  1694. <col ref="orddeptcd" visibility="hidden"/>
  1695. <col ref="orddrnm"/>
  1696. <col ref="orddrid" visibility="hidden"/>
  1697. <script type="javascript" ev:event="ondblclick">
  1698. <![CDATA[
  1699. if ( model.getValue( "/root/init/diagdetlvw2" ) == "P" && grd_chosord.rows > 2) {
  1700. grd_chosord.attribute ( "height" ) = ( grd_chosord.rows ) * 23;
  1701. model.setValue( "/root/init/diagdetlvw2", "M" );
  1702. } else if ( model.getValue( "/root/init/diagdetlvw2" ) == "M" && grd_chosord.rows > 2) {
  1703. grd_chosord.attribute ( "height" ) = "45";
  1704. model.setValue( "/root/init/diagdetlvw2", "P" );
  1705. }
  1706. ]]>
  1707. </script>
  1708. </datagrid>
  1709. <caption id="caption25" class="cell_1" style="left:525px; top:333px; width:105px; height:98px; text-align:center; vertical-align:middle; ">처방정보</caption>
  1710. <datagrid id="grd_prcp" nodeset="/root/main/prcplist" class="datagrid" caption="^^처방코드^처방명" colwidth="30,0,60,210" dataheight="23" defaultrows="0" ellipsis="true" extendlastcol="scroll" mergecellsfixedrows="bycolrec" rowheight="23" tooltip="true" style="left:633px; top:333px; width:334px; height:97px; ">
  1711. <col disabled="true" ref="status" type="combo" style="text-align:center; focus-rect:visible; ">
  1712. <choices>
  1713. <item>
  1714. <label>신규</label>
  1715. <value>I</value>
  1716. </item>
  1717. <item>
  1718. <label>삭제</label>
  1719. <value>D</value>
  1720. </item>
  1721. <item>
  1722. <label>수정</label>
  1723. <value>U</value>
  1724. </item>
  1725. </choices>
  1726. </col>
  1727. <col ref="seq" visibility="hidden"/>
  1728. <col ref="prcpcd"/>
  1729. <col ref="prcpnm"/>
  1730. <script type="javascript" ev:event="onmousedown">
  1731. <![CDATA[
  1732. if(event.button == 3){
  1733. if(grd_prcp.isCell(event.target) && grd_prcp.mouseRow >= grd_prcp.fixedrows){
  1734. window.setPopupMenu(true, "/root/hidden/prcpmenu/menu", "name", "func", false);
  1735. }else{
  1736. window.setPopupMenu(false);
  1737. }
  1738. }
  1739. ]]>
  1740. </script>
  1741. </datagrid>
  1742. <button id="btn_prcpsrch" class="icon_search" navindex="44" style="left:637px; top:337px; width:16px; height:16px; ">
  1743. <caption/>
  1744. <script type="javascript" ev:event="onclick">
  1745. <![CDATA[
  1746. // 처방검색
  1747. var col = grd_prcp.col;
  1748. var row = grd_prcp.row;
  1749. //var standard = model.getValue("/root/temp/prcp/prcpnm");
  1750. //var search_term = model.getValue("/root/temp/prcp/prcpcd");
  1751. //var receive_prcpnm_path = "/root/main/prcplist["+row+"]/prcpnm";
  1752. //var receive_prcpcd_path = "/root/main/prcplist["+row+"]/prcpcd";
  1753. //fPrcpCodeList(receive_prcpcd_path, receive_prcpnm_path);
  1754. var receive_prcplist_path = "/root/main/prcplist";
  1755. fPrcpCodeList(receive_prcplist_path);
  1756. ]]>
  1757. </script>
  1758. </button>
  1759. <line id="line14" class="line_1" style="x1:0px; y1:456px; x2:970px; y2:456px; "/>
  1760. <caption id="caption26" class="tit_2" style="left:5px; top:441px; width:111px; height:13px; ">검사결과 정보</caption>
  1761. <line id="line15" class="line_2" style="x1:0px; y1:459px; x2:970px; y2:459px; "/>
  1762. <caption id="caption28" class="cell_1" style="left:0px; top:461px; width:105px; height:23px; text-align:center; vertical-align:middle; ">검사기간</caption>
  1763. <select1 id="cmb_testtermbase" ref="/root/main/dtmntmpl/testinfo/testtermbase" class="combo_default" navindex="27" appearance="minimal" style="left:108px; top:463px; width:97px; height:19px; ">
  1764. <choices>
  1765. <itemset nodeset="/root/init/C0044list/C0044">
  1766. <label ref="cdnm"/>
  1767. <value ref="cdid"/>
  1768. </itemset>
  1769. </choices>
  1770. </select1>
  1771. <input id="ipt_testfromdd" ref="/root/main/dtmntmpl/testinfo/testfromdd" class="input_default" navindex="50" inputtype="date" style="left:208px; top:463px; width:85px; height:19px; "/>
  1772. <script type="javascript" ev:event="DOMFocusOut">
  1773. <![CDATA[
  1774. var testfromdd = model.getValue("/root/main/dtmntmpl/testinfo/testfromdd");
  1775. if (testfromdd != "" && !isValidDateTime(testfromdd,"YYYYMMDD")) {
  1776. messageBox("날짜가 바르게 입력되지","E007");
  1777. model.setFocus("ipt_testfromdd");
  1778. }
  1779. ]]>
  1780. </script>
  1781. <caption id="caption51" class="search_no_b" style="left:298px; top:461px; width:12px; height:17px; ">~</caption>
  1782. <input id="ipt_testtodd" ref="/root/main/dtmntmpl/testinfo/testtodd" class="input_default" navindex="51" inputtype="date" style="left:313px; top:463px; width:85px; height:19px; "/>
  1783. <script type="javascript" ev:event="DOMFocusOut">
  1784. <![CDATA[
  1785. var testtodd = model.getValue("/root/main/dtmntmpl/testinfo/testtodd");
  1786. if (testtodd != "" && !isValidDateTime(testtodd,"YYYYMMDD")) {
  1787. messageBox("날짜가 바르게 입력되지","E007");
  1788. model.setFocus("ipt_testtodd");
  1789. }
  1790. ]]>
  1791. </script>
  1792. <line id="line16" class="line_3" style="x1:0px; y1:583px; x2:970px; y2:583px; "/>
  1793. <caption id="caption29" class="cell_1" style="left:0px; top:486px; width:105px; height:97px; text-align:center; vertical-align:middle; ">검사결과</caption>
  1794. <datagrid id="grd_test" nodeset="/root/main/testlist" class="datagrid" caption="^^검사명^검사코드^상한값^하한값^단위" colsep="^" colwidth="30, 0, 350, 191, 80, 80, 98" ellipsis="true" extendlastcol="scroll" mergecellsfixedrows="bycolrec" rowheight="23" rowsep="|" tooltip="true" style="left:108px; top:486px; width:859px; height:95px; ">
  1795. <col disabled="true" ref="status" type="combo" style="text-align:center; focus-rect:visible; ">
  1796. <choices>
  1797. <item>
  1798. <label>신규</label>
  1799. <value>I</value>
  1800. </item>
  1801. <item>
  1802. <label>삭제</label>
  1803. <value>D</value>
  1804. </item>
  1805. <item>
  1806. <label>수정</label>
  1807. <value>U</value>
  1808. </item>
  1809. </choices>
  1810. </col>
  1811. <col ref="seq" visibility="hidden"/>
  1812. <col ref="testnm"/>
  1813. <col ref="testcd"/>
  1814. <col ref="refh" type="input"/>
  1815. <col ref="refl" type="input"/>
  1816. <col ref="rsltunit"/>
  1817. <script type="javascript" ev:event="onmousedown">
  1818. <![CDATA[
  1819. if(event.button == 3){
  1820. if(grd_test.isCell(event.target) && grd_test.mouseRow >= grd_test.fixedrows){
  1821. window.setPopupMenu(true, "/root/hidden/testmenu/menu", "name", "func", false);
  1822. }else{
  1823. window.setPopupMenu(false);
  1824. }
  1825. }
  1826. ]]>
  1827. </script>
  1828. <script type="javascript" ev:event="onkeyup">
  1829. <![CDATA[
  1830. var diagNode = "/root/main/testlist";
  1831. if ( grd_test.valueMatrix ( grd_test.row,0 ) != "I") {
  1832. model.makeValue ( diagNode + "[" + grd_test.row + "]/status", "U" );
  1833. }
  1834. model.refresh();
  1835. ]]>
  1836. </script>
  1837. </datagrid>
  1838. <button id="btn_testsrch" class="icon_search" navindex="52" style="left:112px; top:490px; width:16px; height:16px; ">
  1839. <caption/>
  1840. <script type="javascript" ev:event="onclick">
  1841. <![CDATA[
  1842. // 검사검색
  1843. // var standard = model.getValue("/root/temp/test/testnm");
  1844. // var search_term = model.getValue("/root/temp/test/testcd");
  1845. // var receive_testnm_path = "/root/temp/test/testnm";
  1846. // var receive_testcd_path = "/root/temp/test/testcd";
  1847. // fTestCodeList(standard, search_term, receive_testcd_path, receive_testnm_path);
  1848. modal("SPCDT01100");
  1849. ]]>
  1850. </script>
  1851. </button>
  1852. <line id="line17" class="line_1" style="x1:0px; y1:608px; x2:970px; y2:608px; "/>
  1853. <caption id="caption30" class="tit_2" style="left:5px; top:593px; width:111px; height:13px; ">수술정보</caption>
  1854. <button id="button4" class="btn2_letter2" navindex="17" style="left:379px; top:640px; width:42px; height:19px; ">
  1855. <caption>삭제</caption>
  1856. <script type="javascript" ev:event="DOMActivate">
  1857. <![CDATA[
  1858. // 선택한 수술과/집도의그리드를 삭제한다.
  1859. if ((grd_opord.row > 0) && (grd_opord.col > 1)){
  1860. grd_opord.deleteRow(grd_opord.row);
  1861. grd_opord.refresh();
  1862. } else {
  1863. messageBox("삭제할 행이 없거나 선택하지 ","E007");
  1864. }
  1865. ]]>
  1866. </script>
  1867. </button>
  1868. <input id="input2" ref="/root/main/dtmntmpl/opinfo/opfromdd" class="input_default" navindex="23" inputtype="date" style="left:108px; top:615px; width:85px; height:19px; "/>
  1869. <button id="button5" class="btn2_letter2" navindex="16" style="left:334px; top:640px; width:42px; height:19px; ">
  1870. <caption>추가</caption>
  1871. <script type="javascript" ev:event="DOMActivate">
  1872. <![CDATA[
  1873. // 선택한 수술과/수술의를 집도과/집도의 그리드에 넣어준다.
  1874. var perfdept = model.getValue("/root/send/srch/perflist/perfdeptcd");
  1875. if(perfdept == ""){
  1876. var rtn = messageBox("수술과를 ", "C001");
  1877. return;
  1878. } else {
  1879. grd_opord.addRow();
  1880. model.copyNode("/root/main/opordlist[" + grd_opord.row + " ]", "/root/send/srch/perflist");
  1881. model.resetInstanceNode("/root/send/srch/perflist");
  1882. model.refresh();
  1883. }
  1884. ]]>
  1885. </script>
  1886. </button>
  1887. <line id="line18" class="line_2" style="x1:0px; y1:711px; x2:525px; y2:711px; "/>
  1888. <caption id="caption32" class="cell_1" style="left:0px; top:638px; width:105px; height:73px; text-align:center; vertical-align:middle; ">수술과/집도의</caption>
  1889. <input id="input3" ref="/root/main/dtmntmpl/opinfo/optodd" class="input_default" navindex="24" inputtype="date" style="left:213px; top:615px; width:85px; height:19px; "/>
  1890. <caption id="caption33" class="search_no_b" style="left:198px; top:613px; width:12px; height:17px; ">~</caption>
  1891. <select1 id="cmb_perfdr" ref="/root/send/srch/perflist/perfdrid" class="combo_search" appearance="minimal" style="left:236px; top:638px; width:95px; height:19px; ">
  1892. <choices>
  1893. <itemset nodeset="/root/init/basecdlist/perfdrlist/user">
  1894. <label ref="usernm"/>
  1895. <value ref="userid"/>
  1896. </itemset>
  1897. </choices>
  1898. <script type="javascript" ev:event="xforms-select">
  1899. <![CDATA[
  1900. var perfdrnm = cmb_perfdr.label;
  1901. model.setValue("/root/send/srch/perflist/perfdrnm", perfdrnm);
  1902. ]]>
  1903. </script>
  1904. </select1>
  1905. <select1 id="cmb_perfdept" ref="/root/send/srch/perflist/perfdeptcd" class="combo_search" appearance="minimal" style="left:108px; top:638px; width:125px; height:19px; ">
  1906. <choices>
  1907. <itemset nodeset="/root/init/basecdlist/orddeptlist/dept">
  1908. <label ref="depthngnm"/>
  1909. <value ref="deptcd"/>
  1910. </itemset>
  1911. </choices>
  1912. <script type="javascript" ev:event="xforms-select">
  1913. <![CDATA[
  1914. var perfdeptnm = cmb_perfdept.label;
  1915. model.setValue("/root/send/srch/perflist/perfdeptnm", perfdeptnm);
  1916. model.resetInstanceNode("/root/init/basecdlist/perfdrlist/user");
  1917. var dutplceinstcd = getGlobalVariable("dutplceinstcd");
  1918. var deptcd = model.getValue("/root/send/srch/perflist/perfdeptcd");
  1919. var basedd = getCurrentDate();
  1920. zsufGetOutOrdDeptDoctorList(dutplceinstcd, deptcd, "/root/init/basecdlist/perfdrlist", "usernm", "asc", basedd);
  1921. if (model.getValue("/root/send/srch/perflist/perfdeptcd") == "") {
  1922. model.makeValue("/root/init/basecdlist/perfdrlist", "");
  1923. }
  1924. addComboItem( "cmb_perfdr");
  1925. model.setValue("/root/send/srch/perflist/perfdrid", "");
  1926. model.refresh();
  1927. ]]>
  1928. </script>
  1929. </select1>
  1930. <line id="line19" class="line_2" style="x1:0px; y1:636px; x2:525px; y2:636px; "/>
  1931. <caption id="caption34" class="cell_1" style="left:0px; top:613px; width:105px; height:23px; text-align:center; vertical-align:middle; ">수술기간</caption>
  1932. <datagrid id="grd_opord" nodeset="/root/main/opordlist" class="datagrid" scroll="autovscroll" caption="^수술과^집도과코드^집도의^집도의ID" colwidth="0, 203, 0, 150, 0" dataheight="22" extendlastcol="scroll" mergecellsfixedrows="bycolrec" rowheader="update" rowheight="22" style="left:108px; top:663px; width:412px; height:48px; ">
  1933. <col ref="seq" visibility="hidden"/>
  1934. <col ref="perfdeptnm"/>
  1935. <col ref="perfdeptcd" visibility="hidden"/>
  1936. <col ref="perfdrnm"/>
  1937. <col ref="perfdrid" visibility="hidden"/>
  1938. </datagrid>
  1939. <select1 id="cmb_opflagcd" ref="/root/main/dtmntmpl/opinfo/opflagcd" class="combo_default" navindex="13" appearance="minimal" style="left:411px; top:615px; width:111px; height:19px; ">
  1940. <choices>
  1941. <itemset nodeset="/root/init/M0013list/M0013">
  1942. <label ref="cdnm"/>
  1943. <value ref="cdid"/>
  1944. </itemset>
  1945. </choices>
  1946. </select1>
  1947. <caption id="caption35" class="cell_1" style="left:303px; top:613px; width:105px; height:23px; text-align:center; vertical-align:middle; ">수술구분</caption>
  1948. <line id="line20" class="line_3" style="x1:0px; y1:736px; x2:970px; y2:736px; "/>
  1949. <caption id="caption31" class="cell_1" style="left:0px; top:713px; width:105px; height:23px; text-align:center; vertical-align:middle; ">수술환자구분</caption>
  1950. <select1 id="cmb_oppatflagcd" ref="/root/main/dtmntmpl/opinfo/oppatflagcd" class="combo_default" navindex="13" appearance="minimal" style="left:108px; top:714px; width:120px; height:19px; ">
  1951. <choices>
  1952. <itemset nodeset="/root/init/M0020list/M0020">
  1953. <label ref="cdnm"/>
  1954. <value ref="cdid"/>
  1955. </itemset>
  1956. </choices>
  1957. </select1>
  1958. <caption id="caption37" class="cell_1" style="left:525px; top:613px; width:105px; height:122px; text-align:center; vertical-align:middle; ">수술명</caption>
  1959. <datagrid id="grd_op" nodeset="/root/main/oplist" class="datagrid" caption="^^수술코드^수술명" colwidth="30,0,60,210" dataheight="23" defaultrows="0" ellipsis="true" extendlastcol="scroll" mergecellsfixedrows="bycolrec" rowheight="23" tooltip="true" style="left:633px; top:613px; width:334px; height:121px; ">
  1960. <col disabled="true" ref="status" type="combo" style="text-align:center; focus-rect:visible; ">
  1961. <choices>
  1962. <item>
  1963. <label>신규</label>
  1964. <value>I</value>
  1965. </item>
  1966. <item>
  1967. <label>삭제</label>
  1968. <value>D</value>
  1969. </item>
  1970. <item>
  1971. <label>수정</label>
  1972. <value>U</value>
  1973. </item>
  1974. </choices>
  1975. </col>
  1976. <col ref="seq" visibility="hidden"/>
  1977. <col ref="opcd"/>
  1978. <col ref="opnm"/>
  1979. <script type="javascript" ev:event="onmousedown">
  1980. <![CDATA[
  1981. if(event.button == 3){
  1982. if(grd_op.isCell(event.target) && grd_op.mouseRow >= grd_op.fixedrows){
  1983. window.setPopupMenu(true, "/root/hidden/opmenu/menu", "name", "func", false);
  1984. }else{
  1985. window.setPopupMenu(false);
  1986. }
  1987. }
  1988. ]]>
  1989. </script>
  1990. </datagrid>
  1991. <button id="btn_opsrch" class="icon_search" navindex="52" style="left:637px; top:617px; width:16px; height:16px; ">
  1992. <caption/>
  1993. <script type="javascript" ev:event="onclick">
  1994. <![CDATA[
  1995. // 수술검색
  1996. var standard = model.getValue("/root/temp/op/opnm");
  1997. var search_term = model.getValue("/root/temp/op/opcd");
  1998. var receive_opnm_path = "/root/temp/op/opnm";
  1999. var receive_opcd_path = "/root/temp/op/opcd";
  2000. fOpCodeList(standard, search_term, receive_opcd_path, receive_opnm_path);
  2001. ]]>
  2002. </script>
  2003. </button>
  2004. <treeview id="trv_wardcd" visibility="hidden" hascheck="true" style="left:633px; top:305px; width:334px; height:200px; ">
  2005. <itemset nodeset="/root/init/wardcdinfo/wardcdlist">
  2006. <label ref="nm"/>
  2007. <value ref="cd"/>
  2008. <depth ref="depth"/>
  2009. </itemset>
  2010. </treeview>
  2011. </group>
  2012. <group id="grp_btn" scroll="auto" style="left:225px; top:753px; width:970px; height:22px; ">
  2013. <button id="btn_list" class="btn3_letter7" style="left:0px; top:0px; width:80px; height:22px; ">
  2014. <caption>고객리스트추출</caption>
  2015. <script type="javascript" ev:event="DOMActivate">
  2016. <![CDATA[
  2017. fDtMnExec(); //데이터마이닝 수동실행
  2018. ]]>
  2019. </script>
  2020. </button>
  2021. <button id="btn_save" class="btn4_letter5" style="left:748px; top:0px; width:92px; height:22px; ">
  2022. <caption>새이름으로</caption>
  2023. <script type="javascript" ev:event="DOMActivate">
  2024. <![CDATA[
  2025. model.setValue("/root/main/dtmntmpl/tmpldefine/savemode","I")
  2026. fGridSetStatus(grd_age, "insert");
  2027. fGridSetStatus(grd_area, "insert");
  2028. fGridSetStatus(grd_chosord, "insert");
  2029. fGridSetStatus(grd_snw, "insert");
  2030. fGridSetStatus(grd_prcp, "insert");
  2031. fGridSetStatus(grd_test, "insert");
  2032. fGridSetStatus(grd_opord, "insert");
  2033. fGridSetStatus(grd_op, "insert");
  2034. var savemode = model.getValue("/root/main/dtmntmpl/tmpldefine/savemode");
  2035. fSaveDtmn(savemode); //데이터마이닝 속성 저장(I:등록, U:수정)
  2036. ]]>
  2037. </script>
  2038. </button>
  2039. <button id="btn_clear" class="btn4_letter2" style="left:843px; top:0px; width:56px; height:22px; ">
  2040. <caption>저장</caption>
  2041. <script type="javascript" ev:event="DOMActivate">
  2042. <![CDATA[
  2043. var savemode = model.getValue("/root/main/dtmntmpl/tmpldefine/savemode");
  2044. fSaveDtmn(savemode); //데이터마이닝 속성 저장(I:등록, U:수정)
  2045. ]]>
  2046. </script>
  2047. </button>
  2048. <button id="button3" class="btn4_letter3" style="left:902px; top:0px; width:68px; height:22px; ">
  2049. <caption>초기화</caption>
  2050. <script type="javascript" ev:event="DOMActivate">
  2051. <![CDATA[
  2052. model.resetInstanceNode("/root/main/dtmntmpl/tmpldefine");
  2053. model.resetInstanceNode("/root/main/dtmntmpl/humtrainfo");
  2054. model.resetInstanceNode("/root/main/dtmntmpl/area");
  2055. model.resetInstanceNode("/root/main/dtmntmpl/agelist");
  2056. model.resetInstanceNode("/root/main/dtmntmpl/chosinfo");
  2057. model.resetInstanceNode("/root/main/dtmntmpl/chosordlist");
  2058. model.resetInstanceNode("/root/main/dtmntmpl/snwinfo");
  2059. model.resetInstanceNode("/root/main/dtmntmpl/snwlist");
  2060. model.resetInstanceNode("/root/main/dtmntmpl/prcpinfo");
  2061. model.resetInstanceNode("/root/main/dtmntmpl/prcplist");
  2062. model.resetInstanceNode("/root/main/dtmntmpl/testinfo");
  2063. model.resetInstanceNode("/root/main/dtmntmpl/testlist");
  2064. model.resetInstanceNode("/root/main/dtmntmpl/opinfo");
  2065. model.resetInstanceNode("/root/main/dtmntmpl/oplist");
  2066. model.resetInstanceNode("/root/main/dtmntmpl/opordlist");
  2067. model.removeNodeset("/root/init/P0001list/P0001");
  2068. model.removeNodeset("/root/init/P0313list/P0313");
  2069. model.removeNodeset("/root/init/C0029list/C0029");
  2070. model.removeNodeset("/root/init/C0039list/C0039");
  2071. model.removeNodeset("/root/init/P0157list/P0157");
  2072. model.removeNodeset("/root/init/M0068list/M0068");
  2073. model.removeNodeset("/root/init/M0069list/M0069");
  2074. model.removeNodeset("/root/init/P0008list/P0008");
  2075. model.removeNodeset("/root/init/P0002list/P0002");
  2076. model.removeNodeset("/root/init/M0013list/M0013");
  2077. model.removeNodeset("/root/init/M0020list/M0020");
  2078. model.removeNodeset("/root/init/C0042list/C0042");
  2079. model.removeNodeset("/root/init/C0043list/C0043");
  2080. model.removeNodeset("/root/init/C0044list/C0044");
  2081. model.dispatch("xforms-ready");
  2082. ]]>
  2083. </script>
  2084. </button>
  2085. </group>
  2086. <group id="group12" style="left:0px; top:23px; width:215px; height:757px; ">
  2087. <!--<caption id="caption36" class="tit_2" style="left:0px; top:0px; width:215px; height:13px; ">데이터마아닝 템플릿</caption>-->
  2088. <import id="import1" instancetype="merge" src="./SSCDT00400_데이터마이닝그룹트리.xrw" style="left:0px; top:13px; width:215px; height:744px; "/>
  2089. </group>
  2090. </xhtml:body>
  2091. </xhtml:html>