SMSMP90103_공통API.xfdl 100 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <FDL version="1.4">
  3. <TypeDefinition url="..\..\..\default_typedef.xml"/>
  4. <Form id="SMSMP90103" classname="SMSMP90101_report연계샘플" inheritanceid="" position="absolute 0 0 1256 805" titletext="공통API샘플" style="background:beige;" onload="SMSMP90103_onload" ontimer="SMSMP90103_ontimer" onrbuttondown="SMSMP90103_onrbuttondown">
  5. <Layouts>
  6. <Layout>
  7. <Button id="btn_codeList" taborder="2" text="공통코드목록" class="btn2" position="absolute 592 532 684 552" tooltiptext="adfasdfaf" onclick="btn_codeList_onclick"/>
  8. <Combo id="cb_codeList01" taborder="3" value="6" innerdataset="DsList" codecolumn="idx" datacolumn="context" displayrowcount="5" position="absolute 692 532 792 552"/>
  9. <Combo id="cb_codeList02" taborder="4" value="6" innerdataset="DsList" codecolumn="idx" datacolumn="context" displayrowcount="5" position="absolute 800 532 900 552"/>
  10. <Button id="btn_kindList" taborder="5" text="유형코드목록" class="btn2" position="absolute 8 64 100 84" tooltiptext="adfasdfaf" onclick="btn_kindList_onclick"/>
  11. <Button id="btn_code" taborder="6" text="공통코드팝업" onclick="btn_code_onclick" class="btn2" position="absolute 8 8 100 28" tooltiptext="adfasdfaf"/>
  12. <Combo id="cb_kindList01" taborder="7" value="6" innerdataset="DsList" codecolumn="idx" datacolumn="context" displayrowcount="5" position="absolute 108 64 208 84"/>
  13. <Combo id="cb_kindList02" taborder="8" value="6" innerdataset="DsList" codecolumn="idx" datacolumn="context" displayrowcount="5" position="absolute 216 64 316 84"/>
  14. <Button id="btn_kindPop" taborder="9" text="유형코드팝업" class="btn2" position="absolute 8 92 100 112" tooltiptext="adfasdfaf" onclick="btn_kindPop_onclick"/>
  15. <Button id="btn_codeGrpPop" taborder="10" text="코드그룹팝업" class="btn2" position="absolute 8 120 100 140" tooltiptext="adfasdfaf" onclick="btn_codeGrpPop_onclick"/>
  16. <Button id="btn_allKindCode" taborder="11" text="All유형팝업" class="btn2" position="absolute 8 148 100 168" tooltiptext="adfasdfaf" onclick="btn_allKindCode_onclick"/>
  17. <Button id="btn_bizCodePop" taborder="12" text="업무규칙팝업" class="btn2" position="absolute 8 176 100 196" tooltiptext="adfasdfaf" onclick="btn_bizCodePop_onclick"/>
  18. <Button id="btn_subCodeList" taborder="13" text="하위코드목록" class="btn2" position="absolute 592 564 684 584" tooltiptext="adfasdfaf" onclick="btn_subCodeList_onclick"/>
  19. <Combo id="cb_subCodeList" taborder="14" value="6" displayrowcount="5" position="absolute 692 564 792 584" innerdataset="@ds_init_cmb_prcpclscd1" codecolumn="cls_cd1" datacolumn="cls_nm1"/>
  20. <Button id="btn_deptCodePop" taborder="15" text="부서코드팝업" class="btn2" position="absolute 8 232 100 252" tooltiptext="adfasdfaf" onclick="btn_deptCodePop_onclick"/>
  21. <Button id="btn_masterDept" taborder="16" text="통합부서팝업" class="btn2" position="absolute 8 260 100 280" tooltiptext="adfasdfaf" onclick="btn_masterDept_onclick"/>
  22. <Button id="btn_deptCodeList" taborder="17" text="부서코드목록" class="btn2" position="absolute 8 288 100 308" tooltiptext="부서코드목록" onclick="btn_deptCodeList_onclick"/>
  23. <Combo id="cb_deptCodeList" taborder="18" value="6" displayrowcount="5" position="absolute 108 288 208 308"/>
  24. <Button id="btn_treeDeptPop" taborder="19" text="트리부서팝업" class="btn2" position="absolute 8 316 100 336" tooltiptext="adfasdfaf" onclick="btn_treeDeptPop_onclick"/>
  25. <Button id="btn_userInfo" taborder="20" text="사원정보팝업" class="btn2" position="absolute 592 596 684 616" tooltiptext="adfasdfaf" onclick="btn_userInfo_onclick"/>
  26. <Button id="btn_title" taborder="21" text="화면타이틀고" class="btn2" position="absolute 8 372 100 392" tooltiptext="adfasdfaf" onclick="btn_title_onclick"/>
  27. <Button id="btn_modal" taborder="23" text="modal" class="btn2" position="absolute 592 8 684 28" tooltiptext="adfasdfaf" onclick="btn_modal_onclick"/>
  28. <Button id="btn_code01" taborder="24" text="확인" class="btn2" position="absolute 967 232 1059 252" tooltiptext="adfasdfaf" onclick="btn_code01_onclick"/>
  29. <Button id="btn_modeless" taborder="25" text="modeless" class="btn2" position="absolute 592 44 684 64" tooltiptext="adfasdfaf" onclick="btn_modeless_onclick"/>
  30. <Edit id="edt_chkMdt2" taborder="27" position="absolute 409 271 509 291"/>
  31. <Button id="btn_findPopup" taborder="29" text="findPopup" class="btn2" position="absolute 592 80 684 100" tooltiptext="adfasdfaf" onclick="btn_findPopup_onclick"/>
  32. <Grid id="Grid01" taborder="30" useinputpanel="false" position="absolute 592 182 959 407" binddataset="Dataset00" onvtracklast="Grid01_onvtracklast" onrbuttonup="Grid01_onrbuttonup">
  33. <Formats>
  34. <Format id="default">
  35. <Columns>
  36. <Column size="29"/>
  37. <Column size="80"/>
  38. <Column size="276"/>
  39. </Columns>
  40. <Rows>
  41. <Row size="24" band="head"/>
  42. <Row size="24"/>
  43. </Rows>
  44. <Band id="head">
  45. <Cell/>
  46. <Cell col="1" text="bizabbr"/>
  47. <Cell col="2" text="prgmnm"/>
  48. </Band>
  49. <Band id="body">
  50. <Cell/>
  51. <Cell col="1" edittype="normal" text="bind:bizabbr"/>
  52. <Cell col="2" displaytype="normal" text="bind:prgmnm"/>
  53. </Band>
  54. </Format>
  55. </Formats>
  56. </Grid>
  57. <Button id="btn_paging" taborder="31" text="paging" class="btn2" position="absolute 867 158 959 178" tooltiptext="adfasdfaf" onclick="btn_paging_onclick"/>
  58. <Button id="btn_messageBox" taborder="32" text="messageBox" class="btn2" position="absolute 592 118 684 138" tooltiptext="adfasdfaf" onclick="btn_messageBox_onclick"/>
  59. <Button id="btn_tranBasic" taborder="33" text="tranBasic" class="btn2" position="absolute 592 158 684 178" tooltiptext="adfasdfaf" onclick="btn_tranBasic_onclick"/>
  60. <Button id="btn_createDs" taborder="34" text="createDs" class="btn2" position="absolute 592 416 684 436" tooltiptext="adfasdfaf" onclick="btn_createDs_onclick"/>
  61. <Button id="btn_createDsRow" taborder="35" text="createDsRow" class="btn2" position="absolute 592 444 684 464" tooltiptext="adfasdfaf" onclick="btn_createDsRow_onclick"/>
  62. <TextArea id="tar_info" taborder="36" position="absolute 692 596 900 720"/>
  63. <cp_monthCal id="cp_monthCal00" titletext="monthCalendar" taborder="37" text="cp_monthCal00" scrollbars="none" position="absolute 382 237 457 257"/>
  64. <Button id="btn_doctorList" taborder="38" text="진료의목록" class="btn2" position="absolute 592 746 684 766" tooltiptext="adfasdfaf" onclick="btn_doctorList_onclick"/>
  65. <Combo id="cb_doctorList" taborder="39" value="6" displayrowcount="5" position="absolute 692 746 792 766"/>
  66. <Div id="Div00" taborder="40" text="Div00" position="absolute 346 305 550 470" style="background:aqua;">
  67. <Layouts>
  68. <Layout>
  69. <Edit id="Edit00" taborder="0" position="absolute 29 22 129 42"/>
  70. <Edit id="Edit01" taborder="1" position="absolute 36 69 136 89"/>
  71. </Layout>
  72. </Layouts>
  73. </Div>
  74. <Button id="btn_viewImg" taborder="41" text="base64_img" position="absolute 802 46 902 66" onclick="btn_viewImg_onclick"/>
  75. <ImageViewer id="ImageViewer00" taborder="42" position="absolute 910 8 1063 144"/>
  76. <Button id="btn_userList" taborder="47" text="사용자조회" class="btn2" position="absolute 8 204 100 224" tooltiptext="adfasdfaf" onclick="btn_userList_onclick"/>
  77. <Combo id="cb_codeList03" taborder="48" value="6" innerdataset="DsList" codecolumn="idx" datacolumn="context" displayrowcount="5" position="absolute 904 532 1004 552"/>
  78. <Combo id="cb_codeList04" taborder="49" value="6" innerdataset="DsList" codecolumn="idx" datacolumn="context" displayrowcount="5" position="absolute 1008 532 1108 552"/>
  79. <Button id="btn_dw" taborder="50" text="DW테스트" class="btn2" position="absolute 8 774 100 794" tooltiptext="adfasdfaf" onclick="btn_dw_onclick"/>
  80. <Button id="btn_team" taborder="51" text="근무지별팝업" class="btn2" position="absolute 8 344 100 364" tooltiptext="adfasdfaf" onclick="btn_team_onclick"/>
  81. <Calendar id="Calendar00" taborder="52" position="absolute 216 298 316 318"/>
  82. <Button id="btn_addrow" taborder="53" text="Button00" position="absolute 725 158 825 178" onclick="btn_addrow_onclick"/>
  83. <Button id="btn_base64tobin" taborder="54" text="base64_bin" position="absolute 802 72 902 92" onclick="btn_base64tobin_onclick"/>
  84. <Button id="btn_imgtobin" taborder="55" text="imgTObin" position="absolute 802 100 902 120" onclick="btn_imgtobin_onclick"/>
  85. <ImageViewer id="ImageViewer01" taborder="56" text="ImageViewer01" position="absolute 1071 8 1214 144"/>
  86. <Button id="btn_addCombo" taborder="57" text="Button00" position="absolute 592 504 692 524" onclick="btn_addCombo_onclick"/>
  87. <Button id="btn_closePop" taborder="61" text="팝업닫기" position="absolute 108 8 208 28" onclick="btn_closePop_onclick"/>
  88. <Button id="btn_pop1" taborder="62" text="팝업1" position="absolute 216 8 316 28" onclick="btn_pop1_onclick"/>
  89. <Button id="btn_pop2" taborder="63" text="팝업2" position="absolute 324 8 424 28" onclick="btn_pop2_onclick"/>
  90. <ImageViewer id="ImageViewer02" taborder="65" position="absolute 434 100 524 200" style="background:#ffffffff URL('IMG::emr/mr/blood.png');"/>
  91. <Grid id="Grid00" taborder="66" useinputpanel="false" position="absolute 8 501 509 584" binddataset="Dataset04">
  92. <Formats>
  93. <Format id="default">
  94. <Columns>
  95. <Col size="80"/>
  96. <Col size="80"/>
  97. <Col size="80"/>
  98. <Col size="80"/>
  99. <Col size="80"/>
  100. <Col size="80"/>
  101. </Columns>
  102. <Rows>
  103. <Row band="head" size="24"/>
  104. <Row band="body" size="24"/>
  105. </Rows>
  106. <Band id="head">
  107. <Cell col="0" disptype="normal" text="Column0"/>
  108. <Cell col="1" disptype="normal" text="Column1"/>
  109. <Cell col="2" disptype="normal" text="Column2"/>
  110. <Cell col="3" disptype="normal" text="Column3"/>
  111. <Cell col="4" disptype="normal" text="Column4"/>
  112. <Cell col="5" disptype="normal" text="Column5"/>
  113. </Band>
  114. <Band id="body">
  115. <Cell col="0" disptype="normal" text="bind:Column0"/>
  116. <Cell col="1" disptype="normal" text="bind:Column1"/>
  117. <Cell col="2" disptype="normal" text="bind:Column2"/>
  118. <Cell col="3" disptype="normal" text="bind:Column3"/>
  119. <Cell col="4" disptype="normal" text="bind:Column4"/>
  120. <Cell col="5" disptype="normal" text="bind:Column5"/>
  121. </Band>
  122. </Format>
  123. </Formats>
  124. </Grid>
  125. <Grid id="Grid02" taborder="67" useinputpanel="false" position="absolute 8 592 509 674" binddataset="Dataset05">
  126. <Formats>
  127. <Format id="default">
  128. <Columns>
  129. <Col size="80"/>
  130. </Columns>
  131. <Rows>
  132. <Row band="head" size="24"/>
  133. <Row band="body" size="24"/>
  134. </Rows>
  135. <Band id="head">
  136. <Cell col="0" disptype="normal" text="Column0"/>
  137. </Band>
  138. <Band id="body">
  139. <Cell col="0" disptype="normal" text="bind:Column0"/>
  140. </Band>
  141. </Format>
  142. </Formats>
  143. </Grid>
  144. <ActiveX id="ActiveX00" position="absolute 108 92 374 280" useautobitmapcache="1" anchor="default" taborder="68" progid="{6bf52a52-394a-11d3-b153-00c04f79faa6}" stretchToFit="1"/>
  145. </Layout>
  146. </Layouts>
  147. <Objects>
  148. <Dataset id="ds_report" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false" oncolumnchanged="ds_report_oncolumnchanged">
  149. <ColumnInfo>
  150. <Column id="userid" type="STRING" size="256"/>
  151. <Column id="usernm" type="STRING" size="256"/>
  152. <Column id="userfromdd" type="STRING" size="256"/>
  153. <Column id="usertodd" type="STRING" size="256"/>
  154. <Column id="posinstnm" type="STRING" size="256"/>
  155. <Column id="posinstcd" type="STRING" size="256"/>
  156. <Column id="posdeptnm" type="STRING" size="256"/>
  157. <Column id="posdeptcd" type="STRING" size="256"/>
  158. <Column id="fstrgstrid" type="STRING" size="256"/>
  159. <Column id="fstrgstdt" type="STRING" size="256"/>
  160. <Column id="lastupdtrid" type="STRING" size="256"/>
  161. <Column id="lastupdtdt" type="STRING" size="256"/>
  162. <Column id="pwd" type="STRING" size="256"/>
  163. <Column id="Column0" type="BLOB" size="256"/>
  164. </ColumnInfo>
  165. <Rows>
  166. <Row>
  167. <Col id="userid">10205245</Col>
  168. <Col id="usernm">지성배</Col>
  169. <Col id="userfromdd">20070101</Col>
  170. <Col id="usertodd">29991231</Col>
  171. <Col id="posinstnm">순천향의료원</Col>
  172. <Col id="posinstcd">001</Col>
  173. <Col id="posdeptnm">외과</Col>
  174. <Col id="posdeptcd">10400</Col>
  175. <Col id="fstrgstrid">12345678</Col>
  176. <Col id="fstrgstdt">20070221184447592</Col>
  177. <Col id="lastupdtrid">12345678</Col>
  178. <Col id="lastupdtdt">20070221184447592</Col>
  179. <Col id="pwd">c4ca4238a0b923820dcc509a6f75849b</Col>
  180. <Col id="Column0">UWswK0JBQUFBQUFBQUQ0QUFBQW9BQUFBZ0FBQUFFQUFBQUFCQUFFQUFBQUFBQUFFQUFERURnQUF4QTRBQUFBQUFBQUFBQUFBQUFBQUFQLy8vd0QvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLytILy8vLy8vLytQLy8vLy8vLy8vLy9oLy8vLy8vLy9ELy8vLy8vLy8vLy84Zi8vLy8vLy9oLy8vLy8vLy8vLy8vbi8vLy8vLy80Ly8vLy8vLy8vLy8vNC8vLy8vLy84Zi8vLy8vLy8vLy8vL1AvLy8vLy8rUC8vLy8vLy8vLy8vLzUvLy8vLy8vSC8vLy8vLy8vLy8vLy9QLy8vLy8vaC8vLy8vLy8vLy8vLy81Ly8vLy8veC8vLy8vLy8vLy8vLy8vUC8vLy8vOC8vLy8vLy8vLy8vLy8vNS8vLy8vK1AvLy8vLy8vLy8vLy8vL0gvLy8vL1AvLy8vLy8vLy8vLy8vLzRmLy8vL2ovLy8vLy8vLy8vLy8vLy9qLy8vL3gvLy8vLy8vLy8vLy8vLy8rZi8vLzhmLy8vLy8vLy8vLy8vLy8veC8vLytmLy8vLy8vLy8vLy8vLy8vK1AvLy9QLy8vLy8vLy8vLy8vLy8vLzQvLy9qLy8vLy8vLy8vLy8vLy8vLy9ILy81Ly8vLy8vLy8vLy8vLy8vLy84UC84Ly8vLy8vLy8vLy8vLy8vLy8vaC8rZi8vLy8vLy8vLy80Ly8vLy8vL0gvbi8vLy8vLy8vLy80UC8vLy8vLzQvei8vLy8vLy8vLy8rUC8vLy8vLy9oNS8vLy8vLy8vLy8vSC8vLy8vLy84T2YvLy8vLy8vLy8veC8vLy8vLy8vNFAvLy8vLy8vLy8vOC8vLy8vLy8vL0QvLzUvLy8vLy8vL1AvLy8vLy8vL3lQLytmLy8vLy8vL3gvLy8vLy8vLzh3Zi9ILy8vLy8vLytmLy8vLy8vLytmQS9oLy8vLy8vLy9qLy8vLy8vLy9QK0FCLy8vLy8vLy84Ly8vLy8vLy9uLzhBLy8vLy8vLy8vai8vLy8vLy96Ly8vLy8vLy8vLy8vOGYvLy8vLy84Ly8vLy8vLy8vLy8vL2gvLy8vLy84UC8vLy8vLy8vLy8vLzhQLy8vLy8vSC8vLy8vLy8vLy8vLy93Zi8vLy8vbi8vLy8vLy8vLy8vLy8vRC8vLy8vNS8vLy8vLy8vLy8vLy8vK1AvLy8vOC8vLy8vLy8vLy8vLy8vL3dmLy8vK2YvLy84Ly8vLy8vLy8vLy9ELy8vL1AvLy8vUC8vLy8vLy8vLy8rSC8vL3ovLy8vei8vLy8vLy8vLy8vd1AvLzUvLy8vK2YvLy8vLy8vLy8vL2cvLzgvLy8vL24vLy8vLy8vLy8vLy9BLytmLy8vLzUvLy8vLy8vLy8vLy84Qi9QLy8vLytQLy8vLy8vLy8vLy8vOER6Ly8vLy96Ly8vLy8vLy8vLy8vLzRCLy8vLy84Ly8vLy8vLy8vLy8vLy93Qi8vLy8vbi8vLy8vLy8vLy8vLy8rWUEvLy8vNC8vLy8vLy8vLy8vLy8vUDRBUC8vL1AvLy8vLy8vLy8vLy8vei84QUgvL3ovLy8vLy8vLy8vLy8vNS8vL0FELzgvLy8vLy8vLy8vLy8vOC8vLy9nQWZQLy8vLy8vLy8vLy8vOGYvLy8vd0FELy8vLy8vLy8vLy8vK0gvLy8vLytBLy8vLy8vLy8vLy8vL24vLy8vLy8vLy8vLy8vLy8vLy8vL2ovLy8vLy8vLy8vLy8vLy8vLy8vUHcvLy8vLy8vLy8vLy8vLy8vLy8vejQvLy8vLy8vLy8vLy8vLy8=</Col>
  181. </Row>
  182. <Row>
  183. <Col id="userid">10303460</Col>
  184. <Col id="usernm">김영균</Col>
  185. <Col id="userfromdd">20070101</Col>
  186. <Col id="usertodd">29991231</Col>
  187. <Col id="posinstnm">순천향의료원</Col>
  188. <Col id="posinstcd">001</Col>
  189. <Col id="posdeptnm">외과</Col>
  190. <Col id="posdeptcd">10400</Col>
  191. <Col id="fstrgstrid">12345678</Col>
  192. <Col id="fstrgstdt">20070221184447592</Col>
  193. <Col id="lastupdtrid">12345678</Col>
  194. <Col id="lastupdtdt">20070221184447592</Col>
  195. <Col id="pwd">c4ca4238a0b923820dcc509a6f75849b</Col>
  196. </Row>
  197. <Row>
  198. <Col id="userid">10402471</Col>
  199. <Col id="usernm">이상명</Col>
  200. <Col id="userfromdd">20070101</Col>
  201. <Col id="usertodd">29991231</Col>
  202. <Col id="posinstnm">순천향의료원</Col>
  203. <Col id="posinstcd">001</Col>
  204. <Col id="posdeptnm">외과</Col>
  205. <Col id="posdeptcd">10400</Col>
  206. <Col id="fstrgstrid">12345678</Col>
  207. <Col id="fstrgstdt">20070221184447592</Col>
  208. <Col id="lastupdtrid">12345678</Col>
  209. <Col id="lastupdtdt">20070221184447592</Col>
  210. <Col id="pwd">c4ca4238a0b923820dcc509a6f75849b</Col>
  211. </Row>
  212. <Row>
  213. <Col id="userid">10500500</Col>
  214. <Col id="usernm">문은정</Col>
  215. <Col id="userfromdd">20070101</Col>
  216. <Col id="usertodd">29991231</Col>
  217. <Col id="posinstnm">순천향의료원</Col>
  218. <Col id="posinstcd">001</Col>
  219. <Col id="posdeptnm">외과</Col>
  220. <Col id="posdeptcd">10400</Col>
  221. <Col id="fstrgstrid">12345678</Col>
  222. <Col id="fstrgstdt">20070221184447592</Col>
  223. <Col id="lastupdtrid">12345678</Col>
  224. <Col id="lastupdtdt">20070221184447592</Col>
  225. <Col id="pwd">c4ca4238a0b923820dcc509a6f75849b</Col>
  226. </Row>
  227. <Row>
  228. <Col id="userid">10501262</Col>
  229. <Col id="usernm">김현실</Col>
  230. <Col id="userfromdd">20070101</Col>
  231. <Col id="usertodd">29991231</Col>
  232. <Col id="posinstnm">순천향의료원</Col>
  233. <Col id="posinstcd">001</Col>
  234. <Col id="posdeptnm">외과</Col>
  235. <Col id="posdeptcd">10400</Col>
  236. <Col id="fstrgstrid">12345678</Col>
  237. <Col id="fstrgstdt">20070221184447592</Col>
  238. <Col id="lastupdtrid">12345678</Col>
  239. <Col id="lastupdtdt">20070221184447592</Col>
  240. <Col id="pwd">c4ca4238a0b923820dcc509a6f75849b</Col>
  241. </Row>
  242. <Row>
  243. <Col id="userid">10600273</Col>
  244. <Col id="usernm">류정석</Col>
  245. <Col id="userfromdd">20070101</Col>
  246. <Col id="usertodd">29991231</Col>
  247. <Col id="posinstnm">순천향의료원</Col>
  248. <Col id="posinstcd">001</Col>
  249. <Col id="posdeptnm">외과</Col>
  250. <Col id="posdeptcd">10400</Col>
  251. <Col id="fstrgstrid">12345678</Col>
  252. <Col id="fstrgstdt">20070221184447592</Col>
  253. <Col id="lastupdtrid">12345678</Col>
  254. <Col id="lastupdtdt">20070221184447592</Col>
  255. <Col id="pwd">c4ca4238a0b923820dcc509a6f75849b</Col>
  256. </Row>
  257. <Row>
  258. <Col id="userid">10602336</Col>
  259. <Col id="usernm">김혜영</Col>
  260. <Col id="userfromdd">20070101</Col>
  261. <Col id="usertodd">29991231</Col>
  262. <Col id="posinstnm">순천향의료원</Col>
  263. <Col id="posinstcd">001</Col>
  264. <Col id="posdeptnm">외과</Col>
  265. <Col id="posdeptcd">10400</Col>
  266. <Col id="fstrgstrid">12345678</Col>
  267. <Col id="fstrgstdt">20070221184447592</Col>
  268. <Col id="lastupdtrid">12345678</Col>
  269. <Col id="lastupdtdt">20070221184447592</Col>
  270. <Col id="pwd">c4ca4238a0b923820dcc509a6f75849b</Col>
  271. </Row>
  272. <Row>
  273. <Col id="userid">10300621</Col>
  274. <Col id="usernm">이범성</Col>
  275. <Col id="userfromdd">20070101</Col>
  276. <Col id="usertodd">29991231</Col>
  277. <Col id="posinstnm">순천향의료원</Col>
  278. <Col id="posinstcd">001</Col>
  279. <Col id="posdeptnm">외과</Col>
  280. <Col id="posdeptcd">10400</Col>
  281. <Col id="fstrgstrid">12345678</Col>
  282. <Col id="fstrgstdt">20070221184447592</Col>
  283. <Col id="lastupdtrid">12345678</Col>
  284. <Col id="lastupdtdt">20070221184447592</Col>
  285. <Col id="pwd">c4ca4238a0b923820dcc509a6f75849b</Col>
  286. </Row>
  287. </Rows>
  288. </Dataset>
  289. <Dataset id="Dataset00" firefirstcount="0" firenextcount="0" useclientlayout="true" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  290. <ColumnInfo>
  291. <Column id="bizabbr" type="STRING" size="256"/>
  292. <Column id="prgmnm" type="STRING" size="256"/>
  293. </ColumnInfo>
  294. </Dataset>
  295. <Dataset id="DatasetTemp" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false"/>
  296. <Dataset id="ds_report00" firefirstcount="0" firenextcount="0" useclientlayout="true" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  297. <ColumnInfo>
  298. <Column id="userid" type="STRING" size="256"/>
  299. <Column id="usernm" type="STRING" size="256"/>
  300. <Column id="userfromdd" type="STRING" size="256"/>
  301. <Column id="usertodd" type="STRING" size="256"/>
  302. <Column id="posinstnm" type="STRING" size="256"/>
  303. <Column id="posinstcd" type="STRING" size="256"/>
  304. <Column id="posdeptnm" type="STRING" size="256"/>
  305. <Column id="posdeptcd" type="STRING" size="256"/>
  306. <Column id="fstrgstrid" type="STRING" size="256"/>
  307. <Column id="fstrgstdt" type="STRING" size="256"/>
  308. <Column id="lastupdtrid" type="STRING" size="256"/>
  309. <Column id="lastupdtdt" type="STRING" size="256"/>
  310. <Column id="pwd" type="STRING" size="256"/>
  311. <Column id="Column0" type="STRING" size="256"/>
  312. </ColumnInfo>
  313. <Rows>
  314. <Row>
  315. <Col id="userid">10205245</Col>
  316. <Col id="usernm">1</Col>
  317. <Col id="userfromdd">20070101</Col>
  318. <Col id="usertodd">29991231</Col>
  319. <Col id="posinstnm">순천향의료원</Col>
  320. <Col id="posinstcd">001</Col>
  321. <Col id="posdeptnm">외과</Col>
  322. <Col id="posdeptcd">10400</Col>
  323. <Col id="fstrgstrid">12345678</Col>
  324. <Col id="fstrgstdt">20070221184447592</Col>
  325. <Col id="lastupdtrid">12345678</Col>
  326. <Col id="lastupdtdt">20070221184447592</Col>
  327. <Col id="pwd">c4ca4238a0b923820dcc509a6f75849b</Col>
  328. </Row>
  329. <Row>
  330. <Col id="userid">10303460</Col>
  331. <Col id="usernm">2</Col>
  332. <Col id="userfromdd">20070101</Col>
  333. <Col id="usertodd">29991231</Col>
  334. <Col id="posinstnm">순천향의료원</Col>
  335. <Col id="posinstcd">001</Col>
  336. <Col id="posdeptnm">외과</Col>
  337. <Col id="posdeptcd">10400</Col>
  338. <Col id="fstrgstrid">12345678</Col>
  339. <Col id="fstrgstdt">20070221184447592</Col>
  340. <Col id="lastupdtrid">12345678</Col>
  341. <Col id="lastupdtdt">20070221184447592</Col>
  342. <Col id="pwd">c4ca4238a0b923820dcc509a6f75849b</Col>
  343. </Row>
  344. <Row>
  345. <Col id="userid">10402471</Col>
  346. <Col id="usernm">3</Col>
  347. <Col id="userfromdd">20070101</Col>
  348. <Col id="usertodd">29991231</Col>
  349. <Col id="posinstnm">순천향의료원</Col>
  350. <Col id="posinstcd">001</Col>
  351. <Col id="posdeptnm">외과</Col>
  352. <Col id="posdeptcd">10400</Col>
  353. <Col id="fstrgstrid">12345678</Col>
  354. <Col id="fstrgstdt">20070221184447592</Col>
  355. <Col id="lastupdtrid">12345678</Col>
  356. <Col id="lastupdtdt">20070221184447592</Col>
  357. <Col id="pwd">c4ca4238a0b923820dcc509a6f75849b</Col>
  358. </Row>
  359. <Row>
  360. <Col id="userid">10500500</Col>
  361. <Col id="usernm">4</Col>
  362. <Col id="userfromdd">20070101</Col>
  363. <Col id="usertodd">29991231</Col>
  364. <Col id="posinstnm">순천향의료원</Col>
  365. <Col id="posinstcd">001</Col>
  366. <Col id="posdeptnm">외과</Col>
  367. <Col id="posdeptcd">10400</Col>
  368. <Col id="fstrgstrid">12345678</Col>
  369. <Col id="fstrgstdt">20070221184447592</Col>
  370. <Col id="lastupdtrid">12345678</Col>
  371. <Col id="lastupdtdt">20070221184447592</Col>
  372. <Col id="pwd">c4ca4238a0b923820dcc509a6f75849b</Col>
  373. </Row>
  374. </Rows>
  375. </Dataset>
  376. <Dataset id="Dataset01" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  377. <ColumnInfo>
  378. <Column id="tubeiconimg" type="BLOB" size="256"/>
  379. <Column id="tubeorgimg" type="BLOB" size="256"/>
  380. </ColumnInfo>
  381. </Dataset>
  382. <Dataset id="ds_grid_grd_data" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  383. <ColumnInfo>
  384. <Column id="prcpcd" type="STRING" size="256"/>
  385. <Column id="prcpcd2" type="STRING" size="256"/>
  386. <Column id="clsnm1" type="STRING" size="256"/>
  387. <Column id="prcpnm" type="STRING" size="256"/>
  388. <Column id="useflag" type="STRING" size="256"/>
  389. <Column id="p_fromdd" type="STRING" size="256"/>
  390. <Column id="p_todd" type="STRING" size="256"/>
  391. <Column id="end_yn" type="STRING" size="256"/>
  392. <Column id="m_fromdd" type="STRING" size="256"/>
  393. <Column id="m_todd" type="STRING" size="256"/>
  394. <Column id="rmk" type="STRING" size="256"/>
  395. <Column id="tcnt" type="STRING" size="256"/>
  396. <Column id="instcd" type="STRING" size="256"/>
  397. </ColumnInfo>
  398. </Dataset>
  399. <Dataset id="ds_img" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  400. <ColumnInfo>
  401. <Column id="image" type="BLOB" size="256"/>
  402. </ColumnInfo>
  403. </Dataset>
  404. <Dataset id="ds_init_cmb_prcpclscd1" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  405. <ColumnInfo>
  406. <Column id="cls_cd1" type="STRING" size="256"/>
  407. <Column id="cls_nm1" type="STRING" size="256"/>
  408. </ColumnInfo>
  409. </Dataset>
  410. <Dataset id="ds_init_healexamdetlflag" firefirstcount="0" firenextcount="0" useclientlayout="true" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  411. <ColumnInfo>
  412. <Column id="cdid" type="STRING" size="256"/>
  413. <Column id="cdnm" type="STRING" size="256"/>
  414. </ColumnInfo>
  415. </Dataset>
  416. <Dataset id="Dataset02" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  417. <ColumnInfo>
  418. <Column id="col1" type="STRING" size="256"/>
  419. <Column id="col2" type="STRING" size="256"/>
  420. <Column id="col3" type="STRING" size="256"/>
  421. <Column id="col4" type="STRING" size="256"/>
  422. <Column id="col5" type="STRING" size="256"/>
  423. <Column id="col6" type="STRING" size="256"/>
  424. </ColumnInfo>
  425. <Rows>
  426. <Row>
  427. <Col id="col1">A</Col>
  428. <Col id="col2">20</Col>
  429. <Col id="col3">30</Col>
  430. <Col id="col4">40</Col>
  431. <Col id="col5">50</Col>
  432. <Col id="col6">60</Col>
  433. </Row>
  434. <Row>
  435. <Col id="col1">B</Col>
  436. <Col id="col2">123</Col>
  437. <Col id="col3">123</Col>
  438. <Col id="col4">334</Col>
  439. <Col id="col5">123</Col>
  440. <Col id="col6">111</Col>
  441. </Row>
  442. </Rows>
  443. </Dataset>
  444. <Dataset id="Dataset03" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  445. <ColumnInfo>
  446. <Column id="Column0" type="STRING" size="256"/>
  447. </ColumnInfo>
  448. </Dataset>
  449. <Dataset id="Dataset04" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  450. <ColumnInfo>
  451. <Column id="Column0" type="STRING" size="256"/>
  452. <Column id="Column1" type="STRING" size="256"/>
  453. <Column id="Column2" type="STRING" size="256"/>
  454. <Column id="Column3" type="STRING" size="256"/>
  455. <Column id="Column4" type="STRING" size="256"/>
  456. <Column id="Column5" type="STRING" size="256"/>
  457. </ColumnInfo>
  458. <Rows>
  459. <Row>
  460. <Col id="Column0">1</Col>
  461. <Col id="Column1">2</Col>
  462. <Col id="Column2">3</Col>
  463. <Col id="Column3">4</Col>
  464. <Col id="Column4">5</Col>
  465. <Col id="Column5">6</Col>
  466. </Row>
  467. <Row>
  468. <Col id="Column0">a</Col>
  469. <Col id="Column1">b</Col>
  470. <Col id="Column2">c</Col>
  471. <Col id="Column3">d</Col>
  472. <Col id="Column4">e</Col>
  473. <Col id="Column5">f</Col>
  474. </Row>
  475. </Rows>
  476. </Dataset>
  477. <Dataset id="Dataset05" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  478. <ColumnInfo>
  479. <Column id="Column0" type="STRING" size="256"/>
  480. </ColumnInfo>
  481. <Rows>
  482. <Row>
  483. <Col id="Column0">1</Col>
  484. </Row>
  485. </Rows>
  486. </Dataset>
  487. </Objects>
  488. <Script type="xscript4.0"><![CDATA[/***************************************************************************************
  489. * System Name : HIT
  490. * Job Name :
  491. * File Name : SMSMP90103_공통API.xfdl
  492. * Creator :
  493. * Make Date : 2014-02-18
  494. *
  495. * Description :
  496. *---------------------------------------------------------------------------------------
  497. * Modify Date Modifier Modify Description
  498. *---------------------------------------------------------------------------------------
  499. * 2014-02-18 HIT
  500. *
  501. *---------------------------------------------------------------------------------------
  502. ****************************************************************************************/
  503. //=======================================================================================
  504. // Lib Include
  505. //---------------------------------------------------------------------------------------
  506. include "com_commonxp::comm_main.xjs"
  507. //include "com_commodulexp::SMZFS00501.xjs"
  508. //=======================================================================================
  509. // Global Form Variable
  510. //---------------------------------------------------------------------------------------
  511. var lgv_val = "";
  512. //=======================================================================================
  513. // Function
  514. //---------------------------------------------------------------------------------------
  515. //=======================================================================================
  516. // Transaction Callback
  517. //---------------------------------------------------------------------------------------
  518. function cbf_subCode(){
  519. cb_subCodeList.innerdataset = "ds_subCodeList";
  520. cb_subCodeList.datacolumn = "cdgrupnm";
  521. cb_subCodeList.codecolumn = "cdgrupid";
  522. cb_subCodeList.index = 0;
  523. }
  524. function cbf_deptCodeList(){
  525. cb_deptCodeList.innerdataset = "ds_deptCodeList";
  526. cb_deptCodeList.datacolumn = "depthngnm";
  527. cb_deptCodeList.codecolumn = "deptcd";
  528. cb_deptCodeList.index = 0;
  529. }
  530. //=======================================================================================
  531. // Event
  532. //---------------------------------------------------------------------------------------
  533. /****************************************************************************************
  534. * Components : form
  535. * Components ID : SMSMP90103
  536. * Event : onload
  537. * Argument : 01.obj : Form
  538. * : 02.e : LoadEventInfo
  539. * Description :
  540. ****************************************************************************************/
  541. function SMSMP90103_onload(obj:Form, e:LoadEventInfo)
  542. {
  543. //그리드 및 기타 공통 기능 초기화
  544. frmf_initForm(obj);
  545. //frmf_initQuickLink(obj);
  546. cp_monthCal00.setCallEvent("fn_Cal");
  547. //grdf_setRowTypeIcon(Grid00, 0);
  548. //grdf_setRowTypeIcon(Grid01, 0);
  549. //frmf_createPopupMenu("pmn_popupMenu1", "lf_menu_event1", [{id: "1", level: "1", title: "삭제1"}, {id: "2", level: "1", title: "추가1"}], "ds_popupmenu01");
  550. //frmf_createPopupMenu("pmn_popupMenu2", "lf_menu_event2", [{id: "1", level: "1", title: "삭제2"}, {id: "2", level: "1", title: "추가2"}], "ds_popupmenu02");
  551. }
  552. function lf_menu_event1(){
  553. alert("A");
  554. }
  555. function lf_menu_event2(){
  556. alert("A");
  557. }
  558. /****************************************************************************************
  559. * Components : button
  560. * Components ID : btn_code
  561. * Event : onclick
  562. * Argument : 01.obj : Button
  563. * : 02.e : ClickEventInfo
  564. * Description :
  565. ****************************************************************************************/
  566. function btn_code_onclick(obj:Button, e:ClickEventInfo)
  567. {
  568. var sReturn = appf_openCodeList("M0003", "cdnm", "", "");
  569. trace("sReturn="+sReturn.cdid);
  570. trace("sReturn="+sReturn.cdnm);
  571. }
  572. /****************************************************************************************
  573. * Components : button
  574. * Components ID : btn_codeList
  575. * Event : onclick
  576. * Argument : 01.obj : Button
  577. * : 02.e : ClickEventInfo
  578. * Description :
  579. ****************************************************************************************/
  580. function btn_codeList_onclick(obj:Button, e:ClickEventInfo)
  581. {
  582. var arrParam = new Array();
  583. // arrParam = [{dsNm: "ds_code_1", cdGrpId: "M0003", showValue: true}
  584. // , {dsNm: "ds_code_2", cdGrpId: "R3310", showValue: true}];
  585. arrParam = [{dsNm: "ds_code_1", cdGrpId: "R3310", showValue: true}
  586. , {dsNm: "ds_code_2", cdGrpId: "R3310", showValue: true}
  587. , {dsNm: "ds_code_3", cdGrpId: "M0003", showValue: true}
  588. , {dsNm: "ds_code_4", cdGrpId: "M0003", showValue: true}];
  589. //비동기
  590. appf_getCodeList(arrParam, true);
  591. //trace(ds_code_1.saveXML());
  592. cbf_code();
  593. //동기
  594. //appf_getCodeList(arrParam, true);
  595. }
  596. function cbf_code(){
  597. cb_codeList01.innerdataset = "ds_code_1";
  598. cb_codeList01.datacolumn = "cdnm";
  599. cb_codeList01.codecolumn = "cdid";
  600. cb_codeList01.index = 0;
  601. cb_codeList02.innerdataset = "ds_code_2";
  602. cb_codeList02.datacolumn = "cdnm";
  603. cb_codeList02.codecolumn = "cdid";
  604. cb_codeList02.index = 0;
  605. cb_codeList03.innerdataset = "ds_code_3";
  606. cb_codeList03.datacolumn = "cdnm";
  607. cb_codeList03.codecolumn = "cdid";
  608. cb_codeList03.index = 0;
  609. cb_codeList04.innerdataset = "ds_code_4";
  610. cb_codeList04.datacolumn = "cdnm";
  611. cb_codeList04.codecolumn = "cdid";
  612. cb_codeList04.index = 0;
  613. }
  614. /****************************************************************************************
  615. * Components : button
  616. * Components ID : btn_kindList
  617. * Event : onclick
  618. * Argument : 01.obj : Button
  619. * : 02.e : ClickEventInfo
  620. * Description :
  621. ****************************************************************************************/
  622. function btn_kindList_onclick(obj:Button, e:ClickEventInfo)
  623. {
  624. var arrParam = new Array();
  625. arrParam = [{bizId: "Z0001", cdGrpId: "Z0009", dsNm: "ds_kindCode_1"}
  626. , {bizId: "M0036", cdGrpId: "M0289", dsNm: "ds_kindCode_2"}];
  627. arrParam = [{bizId: "Z0001", cdGrpId: "Z0009", dsNm: "ds_kindCode_1"}
  628. , {bizId: "Z0001", cdGrpId: "Z0009", dsNm: "ds_kindCode_2"}];
  629. appf_getKindCodeList(arrParam, true, "");
  630. //appf_getKindCodeList([{bizId: "M0035", cdGrpId: "M0045", dsNm: "ds_kindCode_1"}], false, "");
  631. cb_kindList01.innerdataset = "ds_kindCode_1";
  632. cb_kindList01.datacolumn = "cdnm";
  633. cb_kindList01.codecolumn = "cdid";
  634. cb_kindList01.index = 0;
  635. cb_kindList02.innerdataset = "ds_kindCode_2";
  636. cb_kindList02.datacolumn = "cdnm";
  637. cb_kindList02.codecolumn = "cdid";
  638. cb_kindList02.index = 0;
  639. }
  640. /****************************************************************************************
  641. * Components : button
  642. * Components ID : btn_kindPop
  643. * Event : onclick
  644. * Argument : 01.obj : Button
  645. * : 02.e : ClickEventInfo
  646. * Description :
  647. ****************************************************************************************/
  648. function btn_kindPop_onclick(obj:Button, e:ClickEventInfo)
  649. {
  650. var sReturn = appf_openKindCodeList("Z0001", "Z0009", "cdnm", "");
  651. trace("sReturn="+sReturn.cdid);
  652. trace("sReturn="+sReturn.cdnm);
  653. }
  654. /****************************************************************************************
  655. * Components : button
  656. * Components ID : btn_codeGrpPop
  657. * Event : onclick
  658. * Argument : 01.obj : Button
  659. * : 02.e : ClickEventInfo
  660. * Description :
  661. ****************************************************************************************/
  662. function btn_codeGrpPop_onclick(obj:Button, e:ClickEventInfo)
  663. {
  664. var sReturn = appf_openCodeGroupList("cdgrupnm");
  665. trace("sReturn="+sReturn.cdgrupid);
  666. trace("sReturn="+sReturn.cdgrupnm);
  667. }
  668. /****************************************************************************************
  669. * Components : button
  670. * Components ID : btn_allKindCode
  671. * Event : onclick
  672. * Argument : 01.obj : Button
  673. * : 02.e : ClickEventInfo
  674. * Description :
  675. ****************************************************************************************/
  676. function btn_allKindCode_onclick(obj:Button, e:ClickEventInfo)
  677. {
  678. var sReturn = appf_openAllKindCodeList("Z0001", "Z0009");
  679. trace("sReturn="+sReturn.cdid);
  680. trace("sReturn="+sReturn.cdnm);
  681. }
  682. /****************************************************************************************
  683. * Components : button
  684. * Components ID : btn_bizCodePop
  685. * Event : onclick
  686. * Argument : 01.obj : Button
  687. * : 02.e : ClickEventInfo
  688. * Description :
  689. ****************************************************************************************/
  690. function btn_bizCodePop_onclick(obj:Button, e:ClickEventInfo)
  691. {
  692. var sReturn = appf_openBizCodeList("bizid", "");
  693. trace("sReturn="+sReturn.bizid);
  694. trace("sReturn="+sReturn.biznm);
  695. }
  696. /****************************************************************************************
  697. * Components : button
  698. * Components ID : btn_subCodeList
  699. * Event : onclick
  700. * Argument : 01.obj : Button
  701. * : 02.e : ClickEventInfo
  702. * Description :
  703. ****************************************************************************************/
  704. function btn_subCodeList_onclick(obj:Button, e:ClickEventInfo)
  705. {
  706. //appf_getSubCodeGroupList("A050305", "ds_subCodeList", true, "cbf_subCode");
  707. frmf_addComboItem("cb_subCodeList", "전체", "", "");
  708. }
  709. /****************************************************************************************
  710. * Components : button
  711. * Components ID : btn_deptCodePop
  712. * Event : onclick
  713. * Argument : 01.obj : Button
  714. * : 02.e : ClickEventInfo
  715. * Description :
  716. ****************************************************************************************/
  717. function btn_deptCodePop_onclick(obj:Button, e:ClickEventInfo)
  718. {
  719. //
  720. var sReturn = appf_openDeptCodeList("totalinstcd", "053");
  721. trace("sReturn="+sReturn.deptcd);
  722. trace("sReturn="+sReturn.depthngnm);
  723. trace("sReturn="+sReturn.detail);
  724. }
  725. /****************************************************************************************
  726. * Components : button
  727. * Components ID : btn_masterDept
  728. * Event : onclick
  729. * Argument : 01.obj : Button
  730. * : 02.e : ClickEventInfo
  731. * Description :
  732. ****************************************************************************************/
  733. function btn_masterDept_onclick(obj:Button, e:ClickEventInfo)
  734. {
  735. var sReturn = appf_openMasterDeptCodeList();
  736. trace("sReturn="+sReturn.deptcd);
  737. trace("sReturn="+sReturn.deptnm);
  738. }
  739. /****************************************************************************************
  740. * Components : button
  741. * Components ID : btn_deptCodeList
  742. * Event : onclick
  743. * Argument : 01.obj : Button
  744. * : 02.e : ClickEventInfo
  745. * Description :
  746. ****************************************************************************************/
  747. function btn_deptCodeList_onclick(obj:Button, e:ClickEventInfo)
  748. {
  749. appf_getDeptCodeList("053", "orduseyn", "W", "", "", "", "", "", "ds_deptCodeList", true, "cbf_deptCodeList");
  750. }
  751. /****************************************************************************************
  752. * Components : button
  753. * Components ID : btn_treeDeptPop
  754. * Event : onclick
  755. * Argument : 01.obj : Button
  756. * : 02.e : ClickEventInfo
  757. * Description :
  758. ****************************************************************************************/
  759. function btn_treeDeptPop_onclick(obj:Button, e:ClickEventInfo)
  760. {
  761. // trace("getscreenurl="+sysf_getScreenURL("SPZSD00700"));
  762. //var sReturn = appf_openInsuUseDeptCodeList("", "", "053");
  763. var sReturn = appf_openDeptListFromTree("", "", "053")
  764. // appf_openDeptListFromTree();
  765. trace("sReturn="+sReturn.deptcd);
  766. trace("sReturn="+sReturn.depthngnm);
  767. }
  768. /****************************************************************************************
  769. * Components : button
  770. * Components ID : btn_userInfo
  771. * Event : onclick
  772. * Argument : 01.obj : Button
  773. * : 02.e : ClickEventInfo
  774. * Description :
  775. ****************************************************************************************/
  776. function btn_userInfo_onclick(obj:Button, e:ClickEventInfo)
  777. {
  778. var sReturn = appf_openUserInfo("usernm", "", "", "", "01");
  779. trace("sReturn="+sReturn.userInfo);
  780. tar_info.value = sReturn.userInfo;
  781. }
  782. /****************************************************************************************
  783. * Components : button
  784. * Components ID : btn_title
  785. * Event : onclick
  786. * Argument : 01.obj : Button
  787. * : 02.e : ClickEventInfo
  788. * Description :
  789. ****************************************************************************************/
  790. function btn_title_onclick(obj:Button, e:ClickEventInfo)
  791. {
  792. //sysf_setTitleText("");
  793. //var logindt = sysf_getUserInfo("logindt");
  794. //trace(gds_userInfo.saveXML());
  795. //trace(this.hasPopupFrame());
  796. frmf_open("SMSMP90103", "SMSMP90103", "");
  797. }
  798. /****************************************************************************************
  799. * Components : button
  800. * Components ID : btn_code00
  801. * Event : onclick
  802. * Argument : 01.obj : Button
  803. * : 02.e : ClickEventInfo
  804. * Description :
  805. ****************************************************************************************/
  806. function btn_code00_onclick(obj:Button, e:ClickEventInfo)
  807. {
  808. //frmf_open("test", "");
  809. frmf_openInternal("test", "tmp_samplexp::form주석샘플.xfdl");
  810. //trace(sysf_isPopup());
  811. }
  812. /****************************************************************************************
  813. * Components : button
  814. * Components ID : btn_code01
  815. * Event : onclick
  816. * Argument : 01.obj : Button
  817. * : 02.e : ClickEventInfo
  818. * Description :
  819. ****************************************************************************************/
  820. // 한글, 영숫자의 Byte를 계산하여 처리하는 프로퍼타입 추가
  821. String.prototype.cut = function(len) {
  822. var str = this;
  823. var l = 0;
  824. for (var i=0; i<len; i++) {
  825. l += (str.charCodeAt(i) > 127) ? 2 : 1;
  826. if (l > len){
  827. return str.substr(0, i);
  828. }else if (l == len){
  829. return str.substr(0, i+1);
  830. }
  831. }
  832. return str;
  833. }
  834. String.prototype.recut = function(len) {
  835. var str = this;
  836. var l = 0;
  837. for (var i=0; i<str.length; i++) {
  838. l += (str.charCodeAt(i) > 128) ? 2 : 1;
  839. if (l > len) return str.substr(i) ;
  840. }
  841. return str;
  842. }
  843. String.prototype.substr2 = function(stt, len) {
  844. var str = this;
  845. var str_tmp = str.recut(stt);
  846. trace("==="+str_tmp);
  847. return str_tmp.cut(len);
  848. }
  849. function gf_GetStringByte(sValue, StartByte, EndByte){
  850. var buf = sValue;
  851. var Len = 0;
  852. var strText = "";
  853. for(var i=0; i<buf.length; i++){
  854. if (buf.charCodeAt(i) > 127){
  855. Len += 2;
  856. } else {
  857. Len += 1;
  858. }
  859. if( Len >= StartByte && Len <= EndByte){
  860. //strText += String.fromCharCode(buf.charCodeAt(i));
  861. }
  862. }
  863. return strText;
  864. }
  865. function byteSubstring(str,st,ed){
  866. var arr = [];
  867. var b = 0;
  868. for(var i=0,m=str.length;i<m;i++){
  869. if(str.charCodeAt(i)>127){
  870. arr.push(i);
  871. arr.push(i);
  872. }else{
  873. arr.push(i);
  874. }
  875. }
  876. if(arr[st]==arr[ed]){
  877. return false;
  878. }else{
  879. return str.substring(arr[st],arr[ed])
  880. }
  881. }
  882. function btn_code01_onclick(obj:Button, e:ClickEventInfo){
  883. //frmf_open("SMMMO08700", "SMMMO08700", "", "", 1, 5, 5, "","","","","","M");
  884. //var test = "test";
  885. //eval("lf_evaltest(test);");
  886. //maintest();
  887. //lf_log();
  888. // var objColInfo = new Array();
  889. // objColInfo.push({col: "acptno", val: "12100001"});
  890. // dsf_createDsRow("ds_send_main", objColInfo);
  891. //
  892. // tranf_submit({
  893. // id: "TRMQR01020"
  894. // , service: "qiapp.SafeAcdMngt"
  895. // , method: "reqGetAnlyRept"
  896. // , inds : "acptno=ds_send_main"
  897. // , outds: "Dataset05=anlyinfo"
  898. // , async: false});
  899. //
  900. // trace(Dataset05.getColumn(0, "redlightinfo"));
  901. var str = "미국의 9살 소녀가 뇌 먹는 아메바로 인해 사망했다는 소식이 전해져 충격을 주고 있다.얼마 전 인터넷에 뜬 기사다. 할리 유스트라는 이름의 이 소녀는 호수에서 수영을 한 뒤 뇌수막염에 걸려 사망했는데, 그 원인이 파울러자유아메바(Naegleria fowleri)라는 기생충이란다. 이게 기사거리가 되는 것은 다음과 같은 이유다. 첫째, 그래도 선진국으로 알고 있는 미국에서 기생충으로 인해 사람이 죽다니? 그것도 9살짜리 여자애가? 둘째, 기생충은 날것을 먹는 등의 행위로 걸린다고 생각했는데 수영을 하다 걸리다니? 기사 자체는 충격적이지만, 사실 이런 기사는 매년 여름마다 올라오곤 했다. 시간이 되시면 작년 기사를 한번 찾아보시라. 사망자 나이와 이름만 제외하면 기사가 거의 똑같다는 걸 알 수 있을 것이다. “올 여름에 수영 못하겠네?”라는 댓글이 달리는 것도 늘 반복되는 패턴, 그래도 파울러자유아메바는 우리나라에서 비교적 생소한 기생충이니, 이에 대해 알아보자.파울러자유아메바란?아메바 하면 이질아메바 (Entamoeba histolytica)와 대장아메바 (Entamoeba coli)가 유명하다. 이들 아메바는 물속에 살면서 사람이 물을 마실 때 감염되어 그 안에서 증식하면서 병을 일으킨다. 즉 생활사를 완성하기 위해 사람의 몸을 필요로 한다는 얘기, 이와 반대로 자유생활아메바는 사람에게 굳이 들어가지 않아도 생활사를 영위할 수 있으며, 파울러자유아메바가 그 대표적인 예다. 파울러아메바는 대기 온도가 30도 이상이 되면 활발히 증식한다. 온도가 높고 먹을 게 많으면 영양형이라고, 사람에서 병을 일으키는 형태로 있지만, 온도가 낮아지면 주머니를 뒤집어쓴 형태가 되어 오랜 기간 버티는데, 이를 포낭형이라고 한다. 영양형은 크기가 7-20 um로, 사람의 뇌에서 주로 발견되는 형태다. 포낭형은 9 um로, 주머니가 두겹으로 돼 있다. 환경이 좋아지는 경우 포낭형은 잽싸게 영양형으로 바뀌어 수영하는 사람을 노리며, 여름에 환자가 발생하는 이유도 이 때문이다.파울러자유아메바 포낭형파울러자유아메바 영양형파울러자유아메바가 인간의 병원체로 처음 보고된 것은 1965년이었다. 9살 아이를 시작으로 호주에서 네 명이 뇌수막염으로 죽었는데, 부검결과 뇌에서 기묘한 형태의 아메바가 관찰이 된 것. 환자들의 병리소견을 본 파울러 (M. Fowler)와 카터 (RF Carter)는 크게 놀랐다. “아니 이게 뭐지? 지금까지 사람의 조직을 침범하는 아메바는 이질아메바밖에 없었는데, 이건 아주 다르게 생겼잖아! 크기도 두 배나 더 크고 말이야.” 파울러와 카터가 어떤 관계인지는 모르겠지만, 그 아메바는 파울러의 이름을 따서 ‘파울러자유아메바’라는 이름이 붙었다. 그때만 해도 이 아메바가 어떤 경로로 사람에게 침투하는지 몰랐지만, 그로부터 1년 뒤 플로리다에서 세 명의 사망자가 더 발생하면서 감염경로가 밝혀졌다. 사망자들은 예외 없이 감염 1주 이내에 수영을 했다! 사망자들이 수영을 했던 저수지를 조사했더니 파울러자유아메바를 어렵지 않게 찾을 수 있었다. 그 뒤 파울러아메바 찾기가 유행처럼 번졌는데, 일본과 태국, 체코, 이탈리아 등등 거의 모든 나라에서 이 아메바가 나왔고, 저수지나 호수, 강가, 온천 이외에도 수영장과 젖은 토양 등도 이 아메바의 서식처라는 게 알려졌다."+
  902. "궁금증이 생긴다. 이 아메바가 전 세계적으로 분포한다면, 호주나 미국같은 잘 사는 나라들에서만 환자가 나오는 이유가 뭘까? 파울러자유아메바는 인체에 감염되면 뇌수막염을 일으키는데, 진단을 위해서는 뇌척수액이나 뇌조직에서 파울러자유아메바를 찾아야 한다. 그런데 좀 못사는 나라들에서는 세균에 의한 뇌수막염이 워낙 흔하고, 그로 인해 죽는 아이들도 많다 보니 뇌수막염으로 누가 죽어도 “죽었구나”라고 할 뿐 원인을 끝까지 추적하려고 하지 않는다. 반면 좀 사는 나라들에서는 뇌수막염으로 죽는 일이 드물어 정확한 진단을 위해 애를 쓴다. 선진국에서 주로 감염자가 보고되는 이유는 거기에 있다. 두 번째 궁금증. 우리나라에도 이 아메바가 있을까? 당연히 그렇다. 그럼 우리나라에도 환자가 있을까? 글을 끝까지 읽게 하기 위해 이에 대한 답은 나중으로 미루고, 우선 이 아메바가 어떻게 병을 일으키는지 알아보기로 하자."+
  903. "코를 통해 침투해 뇌로 간다"+
  904. "파울러자유아메바의 생활사."+
  905. "기회감염성 병원체라는 게 있다. 건강한 사람에게는 얼씬도 못하지만, 몸이 좀 약해지면 우르르 들어와 병을 일으키는 병원체를 그렇게 부른다. 강자에 약하고 약자에 강하다니, 비겁하다고 욕하고 싶겠지만, 대부분의 병원체는 그런 속성이 있다. 사람 몸에 들어가긴 들어가야 하는데 들어가려면 각종 방어막을 뚫어야 하는 게 부담스럽다. 그런데 그런 방어막이 해제된 사람이 있다면 얼씨구나 좋다고 들어가지 않겠는가? 그런데 이 파울러자유아메바는 그런 기회주의적인 병원체가 아니다. 하나같이 건강한 사람들에게만 병을 일으키니까. 그도 그럴 것이, 강이나 저수지에서 수영을 하려면 웬만큼 건강해야 한다. 물론 환자들 중에 아이들이 꽤 있다는 건 비난받아 마땅하지만, 어른과 아이를 가려서 침투하라는 건 기생충에겐 너무 무리한 요구인 듯하다. 대부분의 기생충이 숙주와 평화롭게 공존하는 반면 이 아메바는 왜 사람을 죽일까? 그건 이렇게 생각할 수 있다. 번식을 위해 숙주를 필요로 하는 대부분의 기생충과 달리 파울러자유아메바는 숙주가 없어도 나름대로 잘 살 수 있다. 특히 더운 여름은 자기들이 마음껏 증식해 숫자를 불릴 기회, 그런데 거기 수영하러 온 인간들은 아메바가 보기엔 자기 서식처를 어지럽히는 약탈자일 수 있고, 사람을 죽이기까지 하는 건 그런 이유인 듯하다."+
  906. "대부분의 기생충이 입을 통해 전파되는 반면, 파울러자유아메바는 수영을 하는 사람의 코를 통해 감염된다. 특히 물에 다이빙을 한다든지 할 때 들어가는 경우가 흔하다니, 저수지에서 수영할 때는 물에 조용히 들어가는 게 좋겠다. 코로 들어간 아메바는 위쪽으로 올라가며, 후각신경이 뇌와 연결되는 구멍을 통해 뇌로 들어간다. 아메바가 본격적으로 증식하며 활동을 시작하면 환자는 심한 두통과 발열, 구토 등이 생기고, 수막뇌염의 특징인 목이 뻣뻣한 증상도 호소하게 된다. 파울러자유아메바가 후각신경을 침범하므로 냄새가 조금 이상하다고 느낀다든지, 코피가 난다든지 하는 증상이 있기도 하지만, 아메바에 의한 뇌수막염과 세균에 의한 뇌수막염을 구별하는 건 그리 쉬운 일은 아니다. 그 후의 경과는 복시가 생기고 발작을 하거나 의식이 없어지는 등 다른 뇌수막염과 크게 다르지 않다. 수영을 하고 난 뒤 5-8일 정도에 증상이 생기는 경우가 많지만, 경우에 따라서는 수영 후 24시간 뒤에 뇌수막염이 생기기도 한다. 일단 증상이 생기고 나면 진행이 굉장히 빠른데, 얼마나 빠른지 다음 사례를 살펴보자."+
  907. "이탈리아에 사는 아홉 살 소년이 하루 전부터 열이 나고 오른쪽 머리가 아파서 병원에 왔다. 그 소년은 증상이 시작되기 10일 전에 집 근처 강에서 수영을 했다고 한다. 뇌가 좀 부은 것 같아 뇌부종을 없애는 치료를 시작했지만 몇 시간 뒤 소년은 갑자기 의식이 없어져 버렸고, 그에게 인공호흡기가 장착됐다. 스테로이드와 항생제에도 불구하고 소년은 계속 혼수상태였고, 결국 증상이 시작된 지 6일 만에 죽고 말았다. 부검 결과 뇌에는 염증과 출혈이 가득했으며, 그 안에서 파울러아메바를 발견할 수 있었다."+
  908. "여기서 보듯 환자 대부분은 증상이 생긴 지 일주 이내에 사망에 이르고, 치사율이 95% 이상이란다. 그런데 이게 꼭 수영을 통해서만 감염되는 건 아니다. 대만에 살던 75세 노인은 온천을 한 뒤 뇌수막염 증상이 있어서 병원에 갔는데, 뇌척수액을 뽑아서 검사해보니 파울러자유아메바가 득실대고 있었단다. 그래도 살아생전 진단이 됐기에 제대로 된 치료약이 투여됐지만, 치료가 시작된 지 25일만에 죽고 말았다. 뒤늦게 대만 보건국이 환자가 몸을 담궜던 온천물을 조사했더니 파울러자유아메바가 헤엄치고 있었단다."+
  909. "1962년에서 2013년까지 미국에서 발생한 감염사례. 한 해에 최대 8건이 발생했다. 대체로 5살에서 14실까지의 어린 아이들의 감염이 많다."+
  910. "수돗물도 믿지 말자"+
  911. "수영을 조심하면서 동시에 온천도 조심하면 아메바에 안 걸릴 수 있을까? 다음 사례를 보면 꼭 그런 것도 아닌 듯하다. 2011년 6월 초, 미국에서 28세 된 남자가 심한 두통과 목의 빳빳함을 주소로 병원에 왔다. 다음 날에는 의식이 없어져 좀 더 큰 병원의 응급실로 이송됐는데, 뇌척수액 검사를 통해 파울러자유아메바에 의한 뇌수막염으로 진단됐다. 그리고 환자는 병원에 온 지 닷새 만에 죽었다. 이 환자가 다른 환자와 달랐던 것은 그때가 6월 초였고, 이 환자가 수영이나 온천을 한 적이 없다는 점이었다. 대체 어디서 아메바에 걸렸을까? 보건당국이 조사에 나선 결과 이 환자는 만성 축농증을 앓고 있었는데, ‘네티팟’(neti pot)이라고, 비염 환자들이 코를 청소하는 기구로 부비동(코 주변 얼굴 뼈에 있는 공기로 찬 동굴, 부비강, 코곁굴이라고도 한다)을 소독했다고 했다. 그는 수돗물에 소금을 넣은 용액을 네티팟에 담아 소독을 했는데, 보건당국은 이 과정에서 파울러자유아메바가 감염된 것으로 추측했고, 실제로 네티팟을 비롯해서 집안 곳곳에서 아메바를 발견할 수 있었다. 네티팟을 사용할 때 물을 체온과 비슷하게 덥히는데, 그 온도는 파울러자유아메바가 가장 좋아하는 온도라는 것을 명심하자."+
  912. "네티팟을 사용하는 모습. 의료기관에서는 네티팟을 사용할 때 물을 충분히 끓인 후 식혀서 사용하거나, 증류·소독된 물을 사용하여 파울러자유아메바 감염을 예방해야 한다고 권하고 있다. <출처 (cc) Aikhan at Wikimedia.org>"+
  913. "이번 사례만 있었다면 이건 아주 예외적인 경우라고 할 수 있겠지만, 비슷한 환자가 한 명 더 나왔다. 같은 해 9월, 51세 여자가 고열과 구토, 그리고 정신이 오락가락한 걸 주소로 내원했다. 목이 빳빳한 걸로 보아 뇌수막염을 의심했는데, CSF를 비롯해서 각종 검사를 다 해봤지만 병원체는 검출되지 않았다. 그로부터 닷새 뒤 환자는 죽었고, 뇌조직 소견에서 내려진 결과는 파울러자유아메바로 인한 뇌수막염이었다. 그녀의 부모는 “최근 2주간 물에서 수영을 한다든지 하는 일은 없었다”라고 증언했다. 그렇다면 어디서 걸렸을까? 이 환자 역시 부비동에 염증이 있어서 네티팟을 가지고 코 청소를 했던 게 힌트. 욕실과 주방, 샤워실 꼭지 등에서 파울러자유아메바가 발견된 것은 당연한 일이었다. 특이하게도 이 두 환자 모두 루지애나 주에 살고 있었다니, 그곳 수돗물에 무슨 문제가 있지 않을까 싶었지만, 조사 결과 수돗물에서 아메바는 검출되지 않았다. 염소소독을 하고 필터를 한 수돗물은 대개 아메바로부터 안전하다고 알려져 왔지만, 루지애나의 사례가 충격적이었던 것은 그곳 수돗물은 염소소독을 한 상태였기 때문이다. 그 후로는 다행히 환자가 발생하지 않고 있긴 하지만, 우리나라에도 네티팟을 쓰는 사람들이 점점 늘어나고 있다는 점에서 이에 대한 대처가 필요할 것 같다. 수돗물 대신 증류수를 사용하면 아메바에 의한 감염을 최소화할 수 있단다."+
  914. "치료는 불가능할까?"+
  915. "사실 치료보다 더 시급한 것은 진단이지만, 자유생활아메바에 의한 뇌수막염이 워낙 드물고, 또 진행이 빨라 진단을 내리는 게 쉽지 않다. 뇌수막염 증상을 보이는 환자가 증상 2주를 전후해서 수영이나 온천을 한 적이 있다면 의심을 하고, 약을 써야 한다. 완벽하게 치료하는 약은 없지만, 암포테리신 B (amphotericin B)라고, 무좀 등에도 쓰는 곰팡이 약이 제법 효과가 있다. 1962년부터 2013년까지 미국에서 이 아메바에 감염된 사람은 모두 132명이고 그 중 생존자는 세 명에 불과했다. 운좋게 살아난 9세 소녀는 캘리포니아 온천에서 수영을 하다가 감염된 사례인데, 정맥과 척수강 내로 암포테리신 B을 주사한 결과 살 수 있었고, 또 다른 생존자도 암포테리신 B로 치료한 끝에 좋은 결과를 봤다. 2013년에 나온 세 번째 생존자는 케일리 (Kali Hardig)는 12세 소녀로, 저수지나 강, 호수도 아닌, 아칸소주의 워터파크에서 이 아메바에 감염됐다. 이 소녀는 유방암이나 열대성 기생충에 쓰곤 했던 밀테포신(miltefosine)이란 약으로 치료를 받았는데, 미국 식약청의 승인을 받지 않은 이 약은 케일리의 목숨을 구했다. 암포테리신 B와 더불어 밀테포신도 기억해 놓자."+
  916. "케일리의 감염과 회복 소식은 미국 주요 언론에 보도되었다. CNN에 보도된 모습."+
  917. "자유생활아메바의 명암"+
  918. "글을 맺기 전에 이 글의 도입부에서 제기된 물음에 답할 시간이 된 것 같다. 우리나라에 자유생활아메바에 감염된 환자가 없느냐는 질문 말이다. 기록에 의하면 자유생활아메바로 인해 뇌수막염에 걸려 사망한 환자가 두 명 있지만, 이 환자들은 파울러자유아메바에 의한 게 아닌, 가시아메바 (Acanthamoeba sp.)에 의한 감염이었다. 가시아메바는 자유생활아메바와 달리 건강한 사람이 아닌, 면역이 약화된 사람을 주로 감염시킨다. 또한 금방 사람을 죽이는 파울러자유아메바와 달리 가시아메바는 병의 진행이 서서히 일어난다는 특징이 있고, 뇌보다는 눈을 좋아해 각막염을 주로 일으킨다. 치료가 쉽지 않은 것은 마찬가지지만, 그래도 파울러자유아메바에 비할 바는 아니다. 물론 우리나라에도 파울러자유아메바가 없는 것은 아니다. 그런데 왜 우리나라에서는 이 아메바에 의한 치명적 뇌수막염 환자가 단 한 번도 발생하지 않았을까? 20년 넘게 자유생활아메바를 연구한 동아대 공현희 교수는 그 이유를 이렇게 설명한다."+
  919. "우리나라에서 파울러자유아메바에 의한 뇌수막염 환자가 거의 발생하지 않는 이유는 미국과 달리 수영을 할 수 있는 민물이 별로 없어서가 아닐까 싶네요."+
  920. "그렇다. 우리나라라고 해서 개울에서 수영하는 아이들이 없는 것은 아니지만, 다이빙을 할만한 깊이의 개울은 드물지 않은가?"+
  921. "우리나라가 비교적 안전하다고 다가 아니다. 파울러자유아메바에 감염되기 쉬운 장소는 대부분 관광객이 많이 찾는 곳이니 말이다. 미국의 엘로우스톤(Yellow Stone)과 그랜드티턴 국립공원을 비롯해서 많은 스파나 온천에서 파울러자유아메바가 검출됐다고 한다. 우리나라 사람들이 많이 찾는 태국만 해도 온천 68곳 중 35.3%에서 아메바가 나왔다. 그러니 이 아메바에 감염되지 않으려면 아예 물에 들어가지 말아야겠지만, 이게 불가능하다면 최소한 코에 물이 들어가는 것을 최소화시키는 게 필요하다. 물에 다이빙을 하는 걸 피하고, 미심쩍은 곳에서 수영이나 수상스키를 탈 때는 코마개를 하는 것도 고려해야 한다. 대부분의 감염이 26도 이상의 물에서 일어나니, 뜨거운 물에 들어갈 때는 각별한 주의가 요구된다. 물론 그보다 더 중요한 건 물에 빠지지 않는 것이다. 파울러자유아메바로 인한 사망은 지금까지 190례에 불과하지만, 물에 빠져 죽는 사람은 해마다 35만명에 달하며, 미국은 4천명, 우리나라도 해마다 150명의 익사자가 발생하고 있단다. 자나깨나 물조심, 여름을 맞는 우리가 늘 숙지해야 하는 구호다."+
  922. "참고문헌"+
  923. "1. Markell. John. Krotoski. 정동일 등 옮김. 의학기생충학. 정문각. 2006. "+
  924. "2. TW Heggie. Swimming with death: Naegleria fowleri infections in recreational waters. Travel Medicine and Infectious Disease 2010: 8; 201-206."+
  925. "3. Su MY et al. A Fatal Case of Naegleria fowleri Meningoencephalitis in Taiwan. Korean J Parasitol 2013: 51; 203-206."+
  926. "4. Yoder JS et al. Primary Amebic Meningoencephalitis Deaths Associated With Sinus Irrigation Using Contaminated Tap Water. Clinical Infectious Diseases 2012; 55: 79–85."+
  927. "5. Fowler M, Carter RF. Acute pyogenic meningitis probably due to Acanthamoeba sp.: a preliminary report. BMJ 1965;2:740-742."+
  928. "6. Shin HJ, Im KI. Pathogenic free-living amoebae in Korea. Korean J Parasitol 2004; 42: 93-119.";
  929. str = str + "미국의 9살 소녀가 뇌 먹는 아메바로 인해 사망했다는 소식이 전해져 충격을 주고 있다.얼마 전 인터넷에 뜬 기사다. 할리 유스트라는 이름의 이 소녀는 호수에서 수영을 한 뒤 뇌수막염에 걸려 사망했는데, 그 원인이 파울러자유아메바(Naegleria fowleri)라는 기생충이란다. 이게 기사거리가 되는 것은 다음과 같은 이유다. 첫째, 그래도 선진국으로 알고 있는 미국에서 기생충으로 인해 사람이 죽다니? 그것도 9살짜리 여자애가? 둘째, 기생충은 날것을 먹는 등의 행위로 걸린다고 생각했는데 수영을 하다 걸리다니? 기사 자체는 충격적이지만, 사실 이런 기사는 매년 여름마다 올라오곤 했다. 시간이 되시면 작년 기사를 한번 찾아보시라. 사망자 나이와 이름만 제외하면 기사가 거의 똑같다는 걸 알 수 있을 것이다. “올 여름에 수영 못하겠네?”라는 댓글이 달리는 것도 늘 반복되는 패턴, 그래도 파울러자유아메바는 우리나라에서 비교적 생소한 기생충이니, 이에 대해 알아보자.파울러자유아메바란?아메바 하면 이질아메바 (Entamoeba histolytica)와 대장아메바 (Entamoeba coli)가 유명하다. 이들 아메바는 물속에 살면서 사람이 물을 마실 때 감염되어 그 안에서 증식하면서 병을 일으킨다. 즉 생활사를 완성하기 위해 사람의 몸을 필요로 한다는 얘기, 이와 반대로 자유생활아메바는 사람에게 굳이 들어가지 않아도 생활사를 영위할 수 있으며, 파울러자유아메바가 그 대표적인 예다. 파울러아메바는 대기 온도가 30도 이상이 되면 활발히 증식한다. 온도가 높고 먹을 게 많으면 영양형이라고, 사람에서 병을 일으키는 형태로 있지만, 온도가 낮아지면 주머니를 뒤집어쓴 형태가 되어 오랜 기간 버티는데, 이를 포낭형이라고 한다. 영양형은 크기가 7-20 um로, 사람의 뇌에서 주로 발견되는 형태다. 포낭형은 9 um로, 주머니가 두겹으로 돼 있다. 환경이 좋아지는 경우 포낭형은 잽싸게 영양형으로 바뀌어 수영하는 사람을 노리며, 여름에 환자가 발생하는 이유도 이 때문이다.파울러자유아메바 포낭형파울러자유아메바 영양형파울러자유아메바가 인간의 병원체로 처음 보고된 것은 1965년이었다. 9살 아이를 시작으로 호주에서 네 명이 뇌수막염으로 죽었는데, 부검결과 뇌에서 기묘한 형태의 아메바가 관찰이 된 것. 환자들의 병리소견을 본 파울러 (M. Fowler)와 카터 (RF Carter)는 크게 놀랐다. “아니 이게 뭐지? 지금까지 사람의 조직을 침범하는 아메바는 이질아메바밖에 없었는데, 이건 아주 다르게 생겼잖아! 크기도 두 배나 더 크고 말이야.” 파울러와 카터가 어떤 관계인지는 모르겠지만, 그 아메바는 파울러의 이름을 따서 ‘파울러자유아메바’라는 이름이 붙었다. 그때만 해도 이 아메바가 어떤 경로로 사람에게 침투하는지 몰랐지만, 그로부터 1년 뒤 플로리다에서 세 명의 사망자가 더 발생하면서 감염경로가 밝혀졌다. 사망자들은 예외 없이 감염 1주 이내에 수영을 했다! 사망자들이 수영을 했던 저수지를 조사했더니 파울러자유아메바를 어렵지 않게 찾을 수 있었다. 그 뒤 파울러아메바 찾기가 유행처럼 번졌는데, 일본과 태국, 체코, 이탈리아 등등 거의 모든 나라에서 이 아메바가 나왔고, 저수지나 호수, 강가, 온천 이외에도 수영장과 젖은 토양 등도 이 아메바의 서식처라는 게 알려졌다."+
  930. "궁금증이 생긴다. 이 아메바가 전 세계적으로 분포한다면, 호주나 미국같은 잘 사는 나라들에서만 환자가 나오는 이유가 뭘까? 파울러자유아메바는 인체에 감염되면 뇌수막염을 일으키는데, 진단을 위해서는 뇌척수액이나 뇌조직에서 파울러자유아메바를 찾아야 한다. 그런데 좀 못사는 나라들에서는 세균에 의한 뇌수막염이 워낙 흔하고, 그로 인해 죽는 아이들도 많다 보니 뇌수막염으로 누가 죽어도 “죽었구나”라고 할 뿐 원인을 끝까지 추적하려고 하지 않는다. 반면 좀 사는 나라들에서는 뇌수막염으로 죽는 일이 드물어 정확한 진단을 위해 애를 쓴다. 선진국에서 주로 감염자가 보고되는 이유는 거기에 있다. 두 번째 궁금증. 우리나라에도 이 아메바가 있을까? 당연히 그렇다. 그럼 우리나라에도 환자가 있을까? 글을 끝까지 읽게 하기 위해 이에 대한 답은 나중으로 미루고, 우선 이 아메바가 어떻게 병을 일으키는지 알아보기로 하자."+
  931. "코를 통해 침투해 뇌로 간다"+
  932. "파울러자유아메바의 생활사."+
  933. "기회감염성 병원체라는 게 있다. 건강한 사람에게는 얼씬도 못하지만, 몸이 좀 약해지면 우르르 들어와 병을 일으키는 병원체를 그렇게 부른다. 강자에 약하고 약자에 강하다니, 비겁하다고 욕하고 싶겠지만, 대부분의 병원체는 그런 속성이 있다. 사람 몸에 들어가긴 들어가야 하는데 들어가려면 각종 방어막을 뚫어야 하는 게 부담스럽다. 그런데 그런 방어막이 해제된 사람이 있다면 얼씨구나 좋다고 들어가지 않겠는가? 그런데 이 파울러자유아메바는 그런 기회주의적인 병원체가 아니다. 하나같이 건강한 사람들에게만 병을 일으키니까. 그도 그럴 것이, 강이나 저수지에서 수영을 하려면 웬만큼 건강해야 한다. 물론 환자들 중에 아이들이 꽤 있다는 건 비난받아 마땅하지만, 어른과 아이를 가려서 침투하라는 건 기생충에겐 너무 무리한 요구인 듯하다. 대부분의 기생충이 숙주와 평화롭게 공존하는 반면 이 아메바는 왜 사람을 죽일까? 그건 이렇게 생각할 수 있다. 번식을 위해 숙주를 필요로 하는 대부분의 기생충과 달리 파울러자유아메바는 숙주가 없어도 나름대로 잘 살 수 있다. 특히 더운 여름은 자기들이 마음껏 증식해 숫자를 불릴 기회, 그런데 거기 수영하러 온 인간들은 아메바가 보기엔 자기 서식처를 어지럽히는 약탈자일 수 있고, 사람을 죽이기까지 하는 건 그런 이유인 듯하다."+
  934. "대부분의 기생충이 입을 통해 전파되는 반면, 파울러자유아메바는 수영을 하는 사람의 코를 통해 감염된다. 특히 물에 다이빙을 한다든지 할 때 들어가는 경우가 흔하다니, 저수지에서 수영할 때는 물에 조용히 들어가는 게 좋겠다. 코로 들어간 아메바는 위쪽으로 올라가며, 후각신경이 뇌와 연결되는 구멍을 통해 뇌로 들어간다. 아메바가 본격적으로 증식하며 활동을 시작하면 환자는 심한 두통과 발열, 구토 등이 생기고, 수막뇌염의 특징인 목이 뻣뻣한 증상도 호소하게 된다. 파울러자유아메바가 후각신경을 침범하므로 냄새가 조금 이상하다고 느낀다든지, 코피가 난다든지 하는 증상이 있기도 하지만, 아메바에 의한 뇌수막염과 세균에 의한 뇌수막염을 구별하는 건 그리 쉬운 일은 아니다. 그 후의 경과는 복시가 생기고 발작을 하거나 의식이 없어지는 등 다른 뇌수막염과 크게 다르지 않다. 수영을 하고 난 뒤 5-8일 정도에 증상이 생기는 경우가 많지만, 경우에 따라서는 수영 후 24시간 뒤에 뇌수막염이 생기기도 한다. 일단 증상이 생기고 나면 진행이 굉장히 빠른데, 얼마나 빠른지 다음 사례를 살펴보자."+
  935. "이탈리아에 사는 아홉 살 소년이 하루 전부터 열이 나고 오른쪽 머리가 아파서 병원에 왔다. 그 소년은 증상이 시작되기 10일 전에 집 근처 강에서 수영을 했다고 한다. 뇌가 좀 부은 것 같아 뇌부종을 없애는 치료를 시작했지만 몇 시간 뒤 소년은 갑자기 의식이 없어져 버렸고, 그에게 인공호흡기가 장착됐다. 스테로이드와 항생제에도 불구하고 소년은 계속 혼수상태였고, 결국 증상이 시작된 지 6일 만에 죽고 말았다. 부검 결과 뇌에는 염증과 출혈이 가득했으며, 그 안에서 파울러아메바를 발견할 수 있었다."+
  936. "여기서 보듯 환자 대부분은 증상이 생긴 지 일주 이내에 사망에 이르고, 치사율이 95% 이상이란다. 그런데 이게 꼭 수영을 통해서만 감염되는 건 아니다. 대만에 살던 75세 노인은 온천을 한 뒤 뇌수막염 증상이 있어서 병원에 갔는데, 뇌척수액을 뽑아서 검사해보니 파울러자유아메바가 득실대고 있었단다. 그래도 살아생전 진단이 됐기에 제대로 된 치료약이 투여됐지만, 치료가 시작된 지 25일만에 죽고 말았다. 뒤늦게 대만 보건국이 환자가 몸을 담궜던 온천물을 조사했더니 파울러자유아메바가 헤엄치고 있었단다."+
  937. "1962년에서 2013년까지 미국에서 발생한 감염사례. 한 해에 최대 8건이 발생했다. 대체로 5살에서 14실까지의 어린 아이들의 감염이 많다."+
  938. "수돗물도 믿지 말자"+
  939. "수영을 조심하면서 동시에 온천도 조심하면 아메바에 안 걸릴 수 있을까? 다음 사례를 보면 꼭 그런 것도 아닌 듯하다. 2011년 6월 초, 미국에서 28세 된 남자가 심한 두통과 목의 빳빳함을 주소로 병원에 왔다. 다음 날에는 의식이 없어져 좀 더 큰 병원의 응급실로 이송됐는데, 뇌척수액 검사를 통해 파울러자유아메바에 의한 뇌수막염으로 진단됐다. 그리고 환자는 병원에 온 지 닷새 만에 죽었다. 이 환자가 다른 환자와 달랐던 것은 그때가 6월 초였고, 이 환자가 수영이나 온천을 한 적이 없다는 점이었다. 대체 어디서 아메바에 걸렸을까? 보건당국이 조사에 나선 결과 이 환자는 만성 축농증을 앓고 있었는데, ‘네티팟’(neti pot)이라고, 비염 환자들이 코를 청소하는 기구로 부비동(코 주변 얼굴 뼈에 있는 공기로 찬 동굴, 부비강, 코곁굴이라고도 한다)을 소독했다고 했다. 그는 수돗물에 소금을 넣은 용액을 네티팟에 담아 소독을 했는데, 보건당국은 이 과정에서 파울러자유아메바가 감염된 것으로 추측했고, 실제로 네티팟을 비롯해서 집안 곳곳에서 아메바를 발견할 수 있었다. 네티팟을 사용할 때 물을 체온과 비슷하게 덥히는데, 그 온도는 파울러자유아메바가 가장 좋아하는 온도라는 것을 명심하자."+
  940. "네티팟을 사용하는 모습. 의료기관에서는 네티팟을 사용할 때 물을 충분히 끓인 후 식혀서 사용하거나, 증류·소독된 물을 사용하여 파울러자유아메바 감염을 예방해야 한다고 권하고 있다. <출처 (cc) Aikhan at Wikimedia.org>"+
  941. "이번 사례만 있었다면 이건 아주 예외적인 경우라고 할 수 있겠지만, 비슷한 환자가 한 명 더 나왔다. 같은 해 9월, 51세 여자가 고열과 구토, 그리고 정신이 오락가락한 걸 주소로 내원했다. 목이 빳빳한 걸로 보아 뇌수막염을 의심했는데, CSF를 비롯해서 각종 검사를 다 해봤지만 병원체는 검출되지 않았다. 그로부터 닷새 뒤 환자는 죽었고, 뇌조직 소견에서 내려진 결과는 파울러자유아메바로 인한 뇌수막염이었다. 그녀의 부모는 “최근 2주간 물에서 수영을 한다든지 하는 일은 없었다”라고 증언했다. 그렇다면 어디서 걸렸을까? 이 환자 역시 부비동에 염증이 있어서 네티팟을 가지고 코 청소를 했던 게 힌트. 욕실과 주방, 샤워실 꼭지 등에서 파울러자유아메바가 발견된 것은 당연한 일이었다. 특이하게도 이 두 환자 모두 루지애나 주에 살고 있었다니, 그곳 수돗물에 무슨 문제가 있지 않을까 싶었지만, 조사 결과 수돗물에서 아메바는 검출되지 않았다. 염소소독을 하고 필터를 한 수돗물은 대개 아메바로부터 안전하다고 알려져 왔지만, 루지애나의 사례가 충격적이었던 것은 그곳 수돗물은 염소소독을 한 상태였기 때문이다. 그 후로는 다행히 환자가 발생하지 않고 있긴 하지만, 우리나라에도 네티팟을 쓰는 사람들이 점점 늘어나고 있다는 점에서 이에 대한 대처가 필요할 것 같다. 수돗물 대신 증류수를 사용하면 아메바에 의한 감염을 최소화할 수 있단다."+
  942. "치료는 불가능할까?"+
  943. "사실 치료보다 더 시급한 것은 진단이지만, 자유생활아메바에 의한 뇌수막염이 워낙 드물고, 또 진행이 빨라 진단을 내리는 게 쉽지 않다. 뇌수막염 증상을 보이는 환자가 증상 2주를 전후해서 수영이나 온천을 한 적이 있다면 의심을 하고, 약을 써야 한다. 완벽하게 치료하는 약은 없지만, 암포테리신 B (amphotericin B)라고, 무좀 등에도 쓰는 곰팡이 약이 제법 효과가 있다. 1962년부터 2013년까지 미국에서 이 아메바에 감염된 사람은 모두 132명이고 그 중 생존자는 세 명에 불과했다. 운좋게 살아난 9세 소녀는 캘리포니아 온천에서 수영을 하다가 감염된 사례인데, 정맥과 척수강 내로 암포테리신 B을 주사한 결과 살 수 있었고, 또 다른 생존자도 암포테리신 B로 치료한 끝에 좋은 결과를 봤다. 2013년에 나온 세 번째 생존자는 케일리 (Kali Hardig)는 12세 소녀로, 저수지나 강, 호수도 아닌, 아칸소주의 워터파크에서 이 아메바에 감염됐다. 이 소녀는 유방암이나 열대성 기생충에 쓰곤 했던 밀테포신(miltefosine)이란 약으로 치료를 받았는데, 미국 식약청의 승인을 받지 않은 이 약은 케일리의 목숨을 구했다. 암포테리신 B와 더불어 밀테포신도 기억해 놓자."+
  944. "케일리의 감염과 회복 소식은 미국 주요 언론에 보도되었다. CNN에 보도된 모습."+
  945. "자유생활아메바의 명암"+
  946. "글을 맺기 전에 이 글의 도입부에서 제기된 물음에 답할 시간이 된 것 같다. 우리나라에 자유생활아메바에 감염된 환자가 없느냐는 질문 말이다. 기록에 의하면 자유생활아메바로 인해 뇌수막염에 걸려 사망한 환자가 두 명 있지만, 이 환자들은 파울러자유아메바에 의한 게 아닌, 가시아메바 (Acanthamoeba sp.)에 의한 감염이었다. 가시아메바는 자유생활아메바와 달리 건강한 사람이 아닌, 면역이 약화된 사람을 주로 감염시킨다. 또한 금방 사람을 죽이는 파울러자유아메바와 달리 가시아메바는 병의 진행이 서서히 일어난다는 특징이 있고, 뇌보다는 눈을 좋아해 각막염을 주로 일으킨다. 치료가 쉽지 않은 것은 마찬가지지만, 그래도 파울러자유아메바에 비할 바는 아니다. 물론 우리나라에도 파울러자유아메바가 없는 것은 아니다. 그런데 왜 우리나라에서는 이 아메바에 의한 치명적 뇌수막염 환자가 단 한 번도 발생하지 않았을까? 20년 넘게 자유생활아메바를 연구한 동아대 공현희 교수는 그 이유를 이렇게 설명한다."+
  947. "우리나라에서 파울러자유아메바에 의한 뇌수막염 환자가 거의 발생하지 않는 이유는 미국과 달리 수영을 할 수 있는 민물이 별로 없어서가 아닐까 싶네요."+
  948. "그렇다. 우리나라라고 해서 개울에서 수영하는 아이들이 없는 것은 아니지만, 다이빙을 할만한 깊이의 개울은 드물지 않은가?"+
  949. "우리나라가 비교적 안전하다고 다가 아니다. 파울러자유아메바에 감염되기 쉬운 장소는 대부분 관광객이 많이 찾는 곳이니 말이다. 미국의 엘로우스톤(Yellow Stone)과 그랜드티턴 국립공원을 비롯해서 많은 스파나 온천에서 파울러자유아메바가 검출됐다고 한다. 우리나라 사람들이 많이 찾는 태국만 해도 온천 68곳 중 35.3%에서 아메바가 나왔다. 그러니 이 아메바에 감염되지 않으려면 아예 물에 들어가지 말아야겠지만, 이게 불가능하다면 최소한 코에 물이 들어가는 것을 최소화시키는 게 필요하다. 물에 다이빙을 하는 걸 피하고, 미심쩍은 곳에서 수영이나 수상스키를 탈 때는 코마개를 하는 것도 고려해야 한다. 대부분의 감염이 26도 이상의 물에서 일어나니, 뜨거운 물에 들어갈 때는 각별한 주의가 요구된다. 물론 그보다 더 중요한 건 물에 빠지지 않는 것이다. 파울러자유아메바로 인한 사망은 지금까지 190례에 불과하지만, 물에 빠져 죽는 사람은 해마다 35만명에 달하며, 미국은 4천명, 우리나라도 해마다 150명의 익사자가 발생하고 있단다. 자나깨나 물조심, 여름을 맞는 우리가 늘 숙지해야 하는 구호다."+
  950. "참고문헌"+
  951. "1. Markell. John. Krotoski. 정동일 등 옮김. 의학기생충학. 정문각. 2006. "+
  952. "2. TW Heggie. Swimming with death: Naegleria fowleri infections in recreational waters. Travel Medicine and Infectious Disease 2010: 8; 201-206."+
  953. "3. Su MY et al. A Fatal Case of Naegleria fowleri Meningoencephalitis in Taiwan. Korean J Parasitol 2013: 51; 203-206."+
  954. "4. Yoder JS et al. Primary Amebic Meningoencephalitis Deaths Associated With Sinus Irrigation Using Contaminated Tap Water. Clinical Infectious Diseases 2012; 55: 79–85."+
  955. "5. Fowler M, Carter RF. Acute pyogenic meningitis probably due to Acanthamoeba sp.: a preliminary report. BMJ 1965;2:740-742."+
  956. "6. Shin HJ, Im KI. Pathogenic free-living amoebae in Korea. Korean J Parasitol 2004; 42: 93-119.";
  957. //str = "가나다라abc";
  958. //trace("가나".length);
  959. //str.substr2(0, 2);
  960. //trace(byteSubstring(str, 0, 2));
  961. //for(var i=0 ; i<100 ; i++){
  962. //str.substr(0, 2);
  963. //trace(str.getByteString(10));
  964. //trace(gf_GetStringByte(str, 0, 2));
  965. //}
  966. //inff_initsound();
  967. //inff_playsound("ding", 6);
  968. //inff_playsound("ringin");
  969. //ActiveX00.playCount = 5;
  970. //trace(ActiveX00.versionInfo);
  971. // ActiveX00.URL = "file://C:/himed/components/VoiceWare/ringin.wav";
  972. // ActiveX00.newPlaylist
  973. // ActiveX00.settings.playCount = 6;
  974. // ActiveX00.controls.play();
  975. var objArg = new Object();
  976. objArg.plgv_trsmreqdt = "20140101010101"; //도착시간
  977. objArg.plgv_pid = "00000001"; //환자ID
  978. objArg.plgv_hngnm = "임준호"; //환자명
  979. objArg.plgv_recvrnm = "이상준"; //보낸사람
  980. objArg.plgv_recvrid = "merquery"; //송신자ID
  981. objArg.plgv_msgtype = "종류"; //메시지종류
  982. objArg.plgv_msgcnts = "메시지내용"; //메시지내용
  983. frmf_open("SPZMI00401", "SPZMI00401", objArg, null, null, null, null, null, null, null, null, null, "");
  984. }
  985. function lf_evaltest(param){
  986. trace("===="+param);
  987. }
  988. function onTest(){
  989. trace("==================test");
  990. }
  991. function lf_funSearch(sScrnId, strFunc){
  992. var doc = new DomDocument;
  993. doc.url = sysf_getScreenURL(sScrnId);
  994. doc.load(false);
  995. var Script_doc = doc.documentElement.getElementsByTagName("Script");
  996. for( var i = 0 ; i < Script_doc.length ; i++ ){
  997. var source = Script_doc.get_item(i).source;
  998. trace(source);
  999. var nIdx = eval("source.search(/"+strFunc+"/g)");
  1000. if(nIdx >= 0 )
  1001. return true;
  1002. else
  1003. return false;
  1004. }
  1005. }
  1006. /****************************************************************************************
  1007. * Components : button
  1008. * Components ID : btn_code02
  1009. * Event : onclick
  1010. * Argument : 01.obj : Button
  1011. * : 02.e : ClickEventInfo
  1012. * Description :
  1013. ****************************************************************************************/
  1014. function btn_code02_onclick(obj:Button, e:ClickEventInfo)
  1015. {
  1016. appf_openInternal("test44", "tmp_samplexp::form주석샘플.xfdl");
  1017. }
  1018. /****************************************************************************************
  1019. * Components : onclick
  1020. * Components ID : Button00
  1021. * Event : onclick
  1022. * Argument : 01.obj : Button
  1023. * : 02.e : ClickEventInfo
  1024. * Description :
  1025. ****************************************************************************************/
  1026. function Button00_onclick(obj:Button, e:ClickEventInfo)
  1027. {
  1028. Div01.url = "com_commodulexp::SMZFS00201_사용자목록조회SHOWCASE.xfdl";
  1029. }
  1030. /****************************************************************************************
  1031. * Components : onclick
  1032. * Components ID : btn_modal
  1033. * Event : onclick
  1034. * Argument : 01.obj : Button
  1035. * : 02.e : ClickEventInfo
  1036. * Description :
  1037. ****************************************************************************************/
  1038. function btn_modal_onclick(obj:Button, e:ClickEventInfo)
  1039. {
  1040. var sReturn = appf_openUserInfoList("usernm", "이상준", "", "", "01");
  1041. //appf_openTeamMember("", "", "053");
  1042. trace("sReturn="+sReturn.userInfo);
  1043. }
  1044. /****************************************************************************************
  1045. * Components : onclick
  1046. * Components ID : btn_modeless
  1047. * Event : onclick
  1048. * Argument : 01.obj : Button
  1049. * : 02.e : ClickEventInfo
  1050. * Description :
  1051. ****************************************************************************************/
  1052. function btn_modeless_onclick(obj:Button, e:ClickEventInfo)
  1053. {
  1054. //frmf_open("SMSMP901031", "SMSMP901031", "");
  1055. //frmf_setParameter("TEST", "A");
  1056. //frmf_openInternal("SMSMP90202", "tmp_samplexp::SMSMP90202_가이드팝업.xfdl", "", "", "", "", "", "", "", "", "M");
  1057. //frmf_openInternal("SMSMP90202", "tmp_samplexp::SMSMP90202_가이드팝업s.xfdl", null, false, 1, null, null, 300, 200, null, null, null, "M");
  1058. //frmf_openInternal("SMSMP90202", "tmp_samplexp::SMSMP90202_가이드팝업.xfdl", null, false, 1, null, null, null, null, null, null, null, "M");
  1059. //frmf_modalInternal("SMSMP90202", "com_hismainxp::form_confirm.xfdl", null, null, null, null, 1, 1, null, null, null, null, "P");
  1060. //frmf_modalInternal("SPZUM00400", "com_hismainxp::form_confirm.xfdl", null, false, null, null, null, 354, 188);
  1061. var nMoniterIndex = system.getMonitorIndex(system.cursorx, system.cursory); //모니터번호
  1062. var objScreenInfo = system.getScreenRect(nMoniterIndex);
  1063. var nScreenLeft = objScreenInfo.left;
  1064. var nScreenTop = objScreenInfo.top;
  1065. var nScreenRight = objScreenInfo.right;
  1066. var nScreenBottom = objScreenInfo.bottom;
  1067. var nScreenWidth = nScreenRight - nScreenLeft;
  1068. var nScreenHeight = nScreenBottom - nScreenTop;
  1069. var nWidth = 370;
  1070. var nHeight = 131;
  1071. var nLeft = (nScreenLeft+(nScreenWidth/2))-(nWidth/2);
  1072. var nTop = (nScreenTop+(nScreenHeight/2))-(nHeight/2);
  1073. var newChild = new ChildFrame();
  1074. // newChild.showtitlebar = true;
  1075. // newChild.autosize = true;
  1076. // newChild.layered = false;
  1077. // newChild.resizable = false;
  1078. newChild.init("SPZUM00400");
  1079. newChild.formurl = "com_hismainxp::form_confirm.xfdl";
  1080. newChild.openalign = "center middle";
  1081. var objArgs = new Object();
  1082. objArgs.ds = ds_report;
  1083. rtn = newChild.showModeless("SPZUM00400", this.getOwnerFrame(), objArgs);
  1084. }
  1085. function lf_modelessTest(){
  1086. alert(this.name);
  1087. }
  1088. /****************************************************************************************
  1089. * Components : onclick
  1090. * Components ID : btn_findPopup
  1091. * Event : onclick
  1092. * Argument : 01.obj : Button
  1093. * : 02.e : ClickEventInfo
  1094. * Description :
  1095. ****************************************************************************************/
  1096. function btn_findPopup_onclick(obj:Button, e:ClickEventInfo)
  1097. {
  1098. var objPopForm = frmf_findPopup("SMSMP90202");
  1099. objPopForm.edt_test.value = "test";
  1100. }
  1101. /****************************************************************************************
  1102. * Components : onclick
  1103. * Components ID : btn_messageBox
  1104. * Event : onclick
  1105. * Argument : 01.obj : Button
  1106. * : 02.e : ClickEventInfo
  1107. * Description :
  1108. ****************************************************************************************/
  1109. function btn_messageBox_onclick(obj:Button, e:ClickEventInfo)
  1110. {
  1111. sysf_messageBox("예약여부는", "I003");
  1112. }
  1113. ///////////////////////////////////////////////////////////////////////////////////////////////
  1114. ///////////////////////////////////////////////////////////////////////////////////////////////
  1115. // paging sample
  1116. ///////////////////////////////////////////////////////////////////////////////////////////////
  1117. ///////////////////////////////////////////////////////////////////////////////////////////////
  1118. var lgv_nOffset = 0;
  1119. var lgv_nPagesize = 9;
  1120. function lf_paging_test(){
  1121. var objColInfo = new Array();
  1122. objColInfo.push({col: "offset", val: lgv_nOffset});
  1123. objColInfo.push({col: "pagesize", val: lgv_nPagesize});
  1124. objColInfo.push({col: "tot_cnt", val: "1"});
  1125. dsf_createDsRow("ds_req", objColInfo);
  1126. tranf_submit({
  1127. id: "TRZSB00201"
  1128. , service: "batchinfoapp.BatchInfo"
  1129. , method: "reqGetBatchProgramList"
  1130. , inds: "req=ds_req"
  1131. , outds: "DatasetTemp=batprgm"
  1132. , callback: "cbf_TRZSB00201"
  1133. //, paging: {offset: lgv_nOffset, pagesize: lgv_nPagesize, dsNm: "req"}
  1134. });
  1135. //trace(DatasetTemp.saveXML());
  1136. }
  1137. function cbf_TRZSB00201(){
  1138. Dataset00.appendData(DatasetTemp, true);
  1139. DatasetTemp.clear();
  1140. lgv_nOffset = lgv_nOffset + lgv_nPagesize;
  1141. }
  1142. function Grid01_onvtracklast(obj:Grid, e:ScrollEventInfo)
  1143. {
  1144. lf_paging_test();
  1145. }
  1146. function btn_paging_onclick(obj:Button, e:ClickEventInfo)
  1147. {
  1148. lf_paging_test();
  1149. }
  1150. ////////////////////////////////////////////////////////////////////////////////////////////////
  1151. ///////////////////////////////////////////////////////////////////////////////////////////////
  1152. ///////////////////////////////////////////////////////////////////////////////////////////////
  1153. // 공통API
  1154. ///////////////////////////////////////////////////////////////////////////////////////////////
  1155. ///////////////////////////////////////////////////////////////////////////////////////////////
  1156. //tranf_submit
  1157. ////기본
  1158. function btn_tranBasic_onclick(obj:Button, e:ClickEventInfo)
  1159. {
  1160. //trace("bizabbr="+Dataset00.getColumn(0, "bizabbr"));
  1161. lf_asyncTest("1");
  1162. }
  1163. function lf_asyncTest(id){
  1164. //frmf_openLoadingBar();
  1165. //frmf_closeLoadingBar();
  1166. var objColInfo = new Array();
  1167. objColInfo.push({col: "param1", val: "val1"});
  1168. objColInfo.push({col: "param2", val: "val2"});
  1169. dsf_createDsRow("ds_req", objColInfo);
  1170. //trace(ds_req.saveXML());
  1171. //application.usewaitcursor = true;
  1172. tranf_submit({
  1173. id: "TRZSB00"
  1174. , service: "batchinfoapp.BatchInfo"
  1175. , method: "reqGetBatchProgramList"
  1176. , inds: "req=ds_req:U"
  1177. , outds: "Dataset00=batprgm"
  1178. , args: "key1='value1' key2='value2' key3="+wrapQuote("value3")
  1179. , async: true
  1180. , callback: "cbf_TRZSB00201111"
  1181. , progress: true
  1182. //, alert: true
  1183. //, surrogate: "userid='ENRBC' dutplcecd='B051'"
  1184. , typeStr: "s"
  1185. , transaction: false
  1186. });
  1187. trace("A");
  1188. }
  1189. function cbf_TRZSB00201111(sSvcId, objErrorCode, objErrorMsg){
  1190. trace("1");
  1191. //application.usewaitcursor = false;
  1192. //trace("bizabbr="+Dataset00.getColumn(0, "bizabbr"));
  1193. }
  1194. //dsf_createDs = makeNode
  1195. function btn_createDs_onclick(obj:Button, e:ClickEventInfo)
  1196. {
  1197. dsf_createDs("ds_sample", [{col: "col1", type:"string", size:256}, {col: "col2", type:"string", size:256}], true);
  1198. trace(ds_sample.saveXML());
  1199. }
  1200. //dsf_createDsRow = makeValue
  1201. function btn_createDsRow_onclick(obj:Button, e:ClickEventInfo)
  1202. {
  1203. var objColInfo = new Array();
  1204. objColInfo.push({col: "param1", val: "val1"});
  1205. objColInfo.push({col: "param2", val: "val2"});
  1206. dsf_createDsRow("ds_createDsRow", objColInfo);
  1207. trace(ds_createDsRow.saveXML());
  1208. }
  1209. //appf_getCodeList
  1210. //
  1211. ///////////////////////////////////////////////////////////////////////////////////////////////
  1212. function btn_doctorList_onclick(obj:Button, e:ClickEventInfo)
  1213. {
  1214. appf_getOrdDeptDoctorList("inout", "053", "GAD", null, null, null, "ds_doctorList");
  1215. cb_doctorList.innerdataset = ds_doctorList;
  1216. cb_doctorList.datacolumn = "usernm";
  1217. cb_doctorList.codecolumn = "userid";
  1218. cb_doctorList.index = 0;
  1219. }
  1220. function Grid01_onrbuttonup(obj:Grid, e:GridMouseEventInfo)
  1221. {
  1222. //pmn_popupMenu2.trackPopup(e.screenX, e.screenY);
  1223. trace(e.cell);
  1224. if(e.cell > 0){};
  1225. }
  1226. function Grid00_oncellclick(obj:Grid, e:GridClickEventInfo)
  1227. {
  1228. if(e.col == 1){
  1229. grdf_columnSetData(ds_report, e.row, "userid", ds_report.getColumn(e.row, "Column0"), "A", "B");
  1230. }
  1231. }
  1232. function btn_viewImg_onclick(obj:Button, e:ClickEventInfo)
  1233. {
  1234. // //서비스에서 받아온 STRING(CLOB DATA) 데이터를 BASE64방식으로 DECODE하여 이미지로 표현
  1235. var ExtObj = new ExtCommon();
  1236. //var objBase64 = "Qk0+BAAAAAAAAD4AAAAoAAAAgAAAAEAAAAABAAEAAAAAAAAEAADEDgAAxA4AAAAAAAAAAAAAAAAAAP///wD/////////////////////////////////////////////////////////////////////////////////////////+H///////+P///////////h////////D///////////8f///////h////////////n///////4////////////4///////8f////////////P//////+P////////////5///////H/////////////P//////h/////////////5//////x//////////////P/////8//////////////5/////+P//////////////H/////P//////////////4f////j///////////////j////x///////////////+f///8f///////////////x///+f///////////////+P///P////////////////4///j/////////////////H//5/////////////////8P/8//////////////////h/+f//////////4///////H/n//////////4P//////4/z//////////+P///////h5///////////H///////8Of//////////x////////4P//////////8/////////D//5////////P////////yP/+f///////x////////8wf/H///////+f///////+fA/h////////j////////P+AB////////8////////n/8A/////////j///////z////////////8f//////8/////////////h//////8P////////////8P//////H/////////////wf/////n//////////////D/////5//////////////+P////8///////////////wf///+f///8///////////D////P////P//////////+H///z////z///////////wP//5////+f///////////g//8/////n////////////A/+f////5////////////8B/P////+P////////////8Dz/////z/////////////4B/////8//////////////wB/////n/////////////+YA////4//////////////P4AP///P/////////////z/8AH//z/////////////5///AD/8/////////////8////gAfP////////////8f////wAD////////////+H/////+A/////////////n////////////////////j///////////////////Pw///////////////////z4///////////////";
  1237. //var objBase64 = ExtObj.readFile("C:\\temp\\sign.txt");
  1238. var objBase64 = ExtObj.readFile("C:\\temp\\base64.txt");
  1239. //trace(objBase64);
  1240. //var objBuff = new Buffer(objBase64);
  1241. //ExtObj.writeFile("C:\\temp\\base64_copy.txt", objBuff);
  1242. var objImage = new Image;
  1243. trace(ExtObj.decodeBase64(objBase64, "BIN"));
  1244. var bSucc = objImage.setBinary(ExtObj.decodeBase64(objBase64, "BIN"));
  1245. trace(bSucc);
  1246. ImageViewer00.image = objImage;
  1247. // var objImage = new Image;
  1248. // var varImage ;
  1249. //var ExtObj = new ExtCommon();
  1250. //var debase64 = ExtObj.decodeBase64(sBase64, "OBJ");
  1251. // //trace("debase64:" + debase64.getText(0));
  1252. // var bufObj = new Buffer(debase64);
  1253. // var bSucc = objImage.setBinary(bufObj.data);
  1254. // ImageViewer00.image = objImage;
  1255. //var objDebase64 = ExtObj.decodeBase64(sBase64, "OBJ");
  1256. //var objBuff = new Buffer(objDebase64);
  1257. //var bSucc = objImage.setBinary(objBuff.data);
  1258. //ds_report.setColumn(1, "Column0", objBuff.data);
  1259. //utlf_transBase64ToImg(ImageViewer00, sBase64);
  1260. //lf_getAllBizCodeList([{bizFlag: "P", cdGrpId: "P0032", dsNm: "ds_P_P0032_temp", sortField: "dispseq", sortMethod: "asc"}], false, false, null);
  1261. // ds_report.setColumn(1, "Column0", sBase64);
  1262. //
  1263. //
  1264. // var sInDsName = dsf_createDsRow("ds_temp_search"
  1265. // , [{col: "refgbn", val: "1"}
  1266. // , {col: "deptflag", val: "L"}])
  1267. //
  1268. //
  1269. // // 서브밋호출
  1270. // tranf_submit({
  1271. // id: "TRLLF00401"
  1272. // , service: "diagtestbaseinfomngtapp.GeneralTestBaseInfoMngt"
  1273. // , method: "reqGetTubeList"
  1274. // , inds : "cond="+sInDsName
  1275. // , outds: "Dataset01=gettube"
  1276. // , async: false
  1277. // });
  1278. //
  1279. // trace(Dataset01.saveXML());
  1280. }
  1281. function ds_report_oncolumnchanged(obj:Dataset, e:DSColChangeEventInfo)
  1282. {
  1283. var nLeft = system.clientToScreenX(btn_code, 0);
  1284. var nTop = system.clientToScreenY(btn_code, 0);
  1285. //frmf_modal("SPZUM00400", "SPZUM00400", null, null, null, nLeft, nTop);
  1286. // frmf_modal(sID, sScreenID, sArg, bPrevPos, nMonitor, nLeft, nTop, nWidth, nHeight, sStyle, sProp, objScrnInfo, sOpt)
  1287. frmf_modal("SPZUM00400", "SPZUM00400", null, false, 1, null, null, 300, 177);
  1288. // var newChild = new ChildFrame();
  1289. // // newChild.showtitlebar = true;
  1290. // // newChild.autosize = true;
  1291. // // newChild.layered = false;
  1292. // // newChild.resizable = false;
  1293. // trace(nLeft);
  1294. // trace(nTop);
  1295. // newChild.init("SPZUM00400", nLeft, nTop, nLeft, nTop);
  1296. // newChild.formurl = "com_hismainxp::form_confirm.xfdl";
  1297. // //newChild.openalign = "center middle";
  1298. //
  1299. // var objArgs = new Object();
  1300. // objArgs.ds = ds_report;
  1301. //
  1302. // rtn = newChild.showModeless("SPZUM00400", this.getOwnerFrame());
  1303. }
  1304. function btn_userList_onclick(obj:Button, e:ClickEventInfo)
  1305. {
  1306. var sReturn = appf_openUserInfo("", "", "", "", "01");
  1307. trace("sReturn="+sReturn.userInfo);
  1308. }
  1309. function btn_dw_onclick(obj:Button, e:ClickEventInfo)
  1310. {
  1311. system.execBrowser("http://edu.schmc.ac.kr/himed2/dwinf.jsp?user_id=COMBC");
  1312. }
  1313. function btn_team_onclick(obj:Button, e:ClickEventInfo)
  1314. {
  1315. //appf_openTeamMember(sSearchCondition, sSearchTerm, sDutplceinstcd, sDutplcecd, sBasedd);
  1316. appf_openTeamMember("usernm", "", "053", "053");
  1317. }
  1318. function btn_addrow_onclick(obj:Button, e:ClickEventInfo)
  1319. {
  1320. var nRowNum = Dataset00.addRow();
  1321. }
  1322. function Grid02_onrbuttondown(obj:Grid, e:GridMouseEventInfo)
  1323. {
  1324. if(e.cell > 0){
  1325. trace("A");
  1326. }
  1327. }
  1328. function btn_base64tobin_onclick(obj:Button, e:ClickEventInfo)
  1329. {
  1330. var objBase64 = "Qk0+BAAAAAAAAD4AAAAoAAAAgAAAAEAAAAABAAEAAAAAAAAEAADEDgAAxA4AAAAAAAAAAAAAAAAAAP///wD/////////////////////////////////////////////////////////////////////////////////////////+H///////+P///////////h////////D///////////8f///////h////////////n///////4////////////4///////8f////////////P//////+P////////////5///////H/////////////P//////h/////////////5//////x//////////////P/////8//////////////5/////+P//////////////H/////P//////////////4f////j///////////////j////x///////////////+f///8f///////////////x///+f///////////////+P///P////////////////4///j/////////////////H//5/////////////////8P/8//////////////////h/+f//////////4///////H/n//////////4P//////4/z//////////+P///////h5///////////H///////8Of//////////x////////4P//////////8/////////D//5////////P////////yP/+f///////x////////8wf/H///////+f///////+fA/h////////j////////P+AB////////8////////n/8A/////////j///////z////////////8f//////8/////////////h//////8P////////////8P//////H/////////////wf/////n//////////////D/////5//////////////+P////8///////////////wf///+f///8///////////D////P////P//////////+H///z////z///////////wP//5////+f///////////g//8/////n////////////A/+f////5////////////8B/P////+P////////////8Dz/////z/////////////4B/////8//////////////wB/////n/////////////+YA////4//////////////P4AP///P/////////////z/8AH//z/////////////5///AD/8/////////////8////gAfP////////////8f////wAD////////////+H/////+A/////////////n////////////////////j///////////////////Pw///////////////////z4///////////////";
  1331. var binObj = utlf_transBase64ToBin(objBase64);
  1332. var nRowNum = ds_img.addRow();
  1333. ds_img.setColumn(nRowNum, "image", binObj);
  1334. //trace(ds_img.saveXML());
  1335. var objImage = ds_img.getColumn(nRowNum, "image");
  1336. ImageViewer00.image = objImage;
  1337. trace("saveToImageObject="+ImageViewer00.saveToImageObject().getBinary());
  1338. }
  1339. function btn_imgtobin_onclick(obj:Button, e:ClickEventInfo)
  1340. {
  1341. //ImageViewer00 의 이미지를
  1342. var binImg = utlf_saveToImageBinary(ImageViewer00);
  1343. var nRowNum = ds_img.addRow();
  1344. //da_img의 image컬럼은 반드시 blob타입으로 설정되어 있어야 한다.
  1345. ds_img.setColumn(nRowNum, "image", binImg);
  1346. trace(ds_img.saveXML());
  1347. var objImage = ds_img.getColumn(nRowNum, "image");
  1348. ImageViewer01.image = objImage;
  1349. }
  1350. function SMSMP90103_onrbuttondown(obj:Form, e:MouseEventInfo)
  1351. {
  1352. // pmn_popupMenu1.trackPopup(e.canvasX, e.canvasY);
  1353. }
  1354. function btn_addCombo_onclick(obj:Button, e:ClickEventInfo)
  1355. {
  1356. frmf_addComboItemAll("cb_codeList01", "전체", "");
  1357. cb_codeList01.index = 0;
  1358. }
  1359. function btn_closePop_onclick(obj:Button, e:ClickEventInfo)
  1360. {
  1361. frmf_closeChildPop();
  1362. }
  1363. function btn_pop1_onclick(obj:Button, e:ClickEventInfo)
  1364. {
  1365. // var objParam = new Object();
  1366. // objParam.plgv_param = Dataset02;
  1367. // frmf_openInternal("pop1", "tmp_samplexp::pop1.xfdl", objParam);
  1368. // Dataset03.addRow();
  1369. // var result = Dataset03.copyRow(0, Dataset02, 0);
  1370. // trace("result="+result+":"+Dataset03.rowcount);
  1371. frmf_open("SMSMP90101", "SMSMP90101", null, null, null, null, null, null, null, null, null, null, "");
  1372. }
  1373. function btn_pop2_onclick(obj:Button, e:ClickEventInfo)
  1374. {
  1375. frmf_open("SMZSA20500", "SMZSA20500", null, null, null, null, null, null, null, null, null, null, "M");
  1376. }]]></Script>
  1377. </Form>
  1378. </FDL>