SPMNE08001_응급실사전등록.xfdl 56 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <FDL version="1.5">
  3. <TypeDefinition url="..\..\..\default_typedef.xml"/>
  4. <Form id="SPMNE04500" position="absolute 0 0 773 577" titletext="응급실 사전 환자 등록" oninit="SPMNE04500_oninit" onload="SPMNE04500_onload" onkeydown="SPMNE04500_onkeydown">
  5. <Layouts>
  6. <Layout>
  7. <Div id="Div00" taborder="7" style="background:@gradation;border:0 solid burlywood ;color:black;" text="Div00" position="absolute 1 -3 760 176" anchor="left top right">
  8. <Layouts>
  9. <Layout>
  10. <Static id="caption9" text="사전등록" class="tit_2" position="absolute -1 4 110 18" anchor="default"/>
  11. <Static id="caption00" text="주민번호" class="cell_1" position="absolute 2 55 69 76" anchor="default"/>
  12. <Static id="caption1" text="성 명" class="cell_1" position="absolute 283 55 342 76" anchor="default"/>
  13. <Edit id="ipt_srchhngnm" taborder="2" autoselect="true" onkeydown="fGetPatInfo_onkeydown" position="absolute 347 55 446 76" anchor="default" oneditclick="Div00_ipt_srchhngnm_oneditclick"/>
  14. <Static id="caption5" text="등록번호" class="cell_1" position="absolute 2 28 69 49" anchor="default"/>
  15. <Edit id="ipt_pid" taborder="3" autoselect="true" onkeydown="ipt_srchpid_onkeydown" position="absolute 74 29 174 48" anchor="default"/>
  16. <Button id="btn_srchhngnm" taborder="4" text="검색" onclick="btn_srchhngnm_onclick" class="btn2" position="absolute 451 56 493 75" anchor="default"/>
  17. <Shape id="line1" class="line_10" position="absolute -2 21 757 27" anchor="left top right"/>
  18. <Button id="btnPrePatRgst" taborder="5" text="사전등록" onclick="btnRgst_onclick" class="btn4" position="absolute 501 151 581 173" anchor="default"/>
  19. <Button id="btnSetArvCnfm" taborder="6" text="도착확인" onclick="btnRgst_onclick" class="btn4" position="absolute 589 152 669 174" anchor="default"/>
  20. <Edit id="ipt_rrgstno1" taborder="0" inputtype="number" maxlength="6" autoselect="true" autoskip="true" class="input_essential" position="absolute 75 55 174 76" style="align:left middle;" type="string" limitbymask="######" maskchar=" " anchor="default" readonly="false"/>
  21. <Edit id="ipt_rrgstno2" taborder="1" inputtype="number" maxlength="7" autoselect="true" class="input_essential" position="absolute 179 55 278 76" style="align:left middle;" type="string" maskchar="#######" onkeydown="fGetPatInfo_onkeydown" anchor="default"/>
  22. <Static id="Static00" text="Static00" position="absolute 230 90 534 102" anchor="default" visible="false"/>
  23. <Static id="caption02" text="질환 분류" class="cell_1" position="absolute 2 84 69 105" anchor="default"/>
  24. <Combo id="cbDiagkind" taborder="7" position="absolute 74 85 204 106" codecolumn="cdid" datacolumn="cdnm" index="0" innerdataset="@ds_diagkind" value="1" text="급성 뇌경색" anchor="default"/>
  25. <Static id="caption03" text="비 고" class="cell_1" position="absolute 2 110 69 131" style="align:center middle;" anchor="default"/>
  26. <Button id="btnPatRgstCncl" taborder="9" text="등록취소" class="btn4" position="absolute 677 152 757 174" onclick="btnRgst_onclick" anchor="default"/>
  27. <Button id="button16" taborder="10" text="초기화(F1)" onclick="button16_onclick" class="btn2" position="absolute 500 56 576 75" anchor="left top"/>
  28. <TextArea id="ipt_remark" taborder="11" position="absolute 74 110 759 147" anchor="left"/>
  29. <Edit id="Edit00" taborder="12" readonly="true" visible="false" position="absolute 78 155 149 174" anchor="default"/>
  30. </Layout>
  31. </Layouts>
  32. <InitValue>
  33. <Combo id="cbDiagkind" index="1" type="dropdown" cds_req_new_patinfoodecolumn="codecolumn" datacolumn="datacolumn" innerdataset="innerdataset"/>
  34. </InitValue>
  35. </Div>
  36. <Div id="Div01" taborder="8" text="Div01" position="absolute 1 184 769 549" style="background:aliceblue;border:0 solid #808080ff ;" anchor="all">
  37. <Layouts>
  38. <Layout>
  39. <Static id="caption9" text="사전 등록 환자조회" class="tit_2" position="absolute 1 -1 151 19" anchor="default"/>
  40. <Div id="group2" taborder="1" class="div_SA" position="absolute 0 21 757 88" anchor="default">
  41. <Layouts>
  42. <Layout>
  43. <Static id="caption1" text="등록일자" class="search_name" position="absolute 8 8 77 29" anchor="default"/>
  44. <Shape id="line1" linetype="vertical" position="absolute 682 7 688 29" anchor="default"/>
  45. <Button id="btn_search" taborder="4" text="조회" onclick="group5_group2_btn_search_onclick" class="btn1" position="absolute 694 7 750 29" anchor="default"/>
  46. <Calendar id="calFromdd" taborder="5" position="absolute 89 8 190 29" anchor="default"/>
  47. <Calendar id="calTodd" taborder="6" position="absolute 197 8 298 29" anchor="default"/>
  48. <Static id="caption00" text="성 명" class="search_name" position="absolute 244 38 297 58" anchor="default"/>
  49. <Edit id="ipt_srchpid" taborder="7" autoselect="true" onkeydown="ipt_srchpid_onkeydown" position="absolute 303 38 401 58" anchor="default" maxlength="8"/>
  50. <CheckBox id="CheckBox00" taborder="8" text="사전 등록 환자만 조회" position="absolute 609 34 750 62" anchor="default" falsevalue="N" truevalue="Y"/>
  51. <Button id="btnSetYesterday" taborder="9" text="어제" onclick="btnSetDay_onclick" class="btn2" position="absolute 333 8 375 28" anchor="default"/>
  52. <Button id="btnSetToday" taborder="10" text="오늘" class="btn2" position="absolute 378 8 420 28" onclick="btnSetDay_onclick" anchor="default"/>
  53. <Button id="btnSetTomorrow" taborder="11" text="내일" class="btn2" position="absolute 423 8 465 28" onclick="btnSetDay_onclick" anchor="default"/>
  54. <Static id="caption02" text="주민번호" class="search_name" position="absolute 8 38 77 58" anchor="default"/>
  55. <Edit id="ipt_srchrgstno" taborder="12" maxlength="14" autoselect="true" onkeydown="ipt_srchpid_onkeydown" position="absolute 91 38 221 58" anchor="default"/>
  56. </Layout>
  57. </Layouts>
  58. </Div>
  59. <Grid id="grd_prepatmng" taborder="2" binddataset="ds_main_prepatmng" scrollbars="autoboth" useinputpanel="false" position="absolute 2 96 760 358" anchor="all" cellsizebandtype="body" cellsizingtype="col" oncellclick="Div01_grd_erpatlist_oncellclick">
  60. <Formats>
  61. <Format id="default">
  62. <Columns>
  63. <Column size="0"/>
  64. <Column size="0"/>
  65. <Column size="104"/>
  66. <Column size="115"/>
  67. <Column size="59"/>
  68. <Column size="79"/>
  69. <Column size="57"/>
  70. <Column size="120"/>
  71. <Column size="131"/>
  72. <Column size="92"/>
  73. <Column size="131"/>
  74. <Column size="251"/>
  75. <Column size="86"/>
  76. <Column size="50"/>
  77. <Column size="50"/>
  78. </Columns>
  79. <Rows>
  80. <Row size="37" band="head"/>
  81. <Row size="24"/>
  82. </Rows>
  83. <Band id="head">
  84. <Cell text="도착확인"/>
  85. <Cell col="1" text="등록취소"/>
  86. <Cell col="2" text="질환 분류"/>
  87. <Cell col="3" text="주민번호"/>
  88. <Cell col="4" text="성명"/>
  89. <Cell col="5" text="등록번호"/>
  90. <Cell col="6" text="상태"/>
  91. <Cell col="7" text="사전 등록일시"/>
  92. <Cell col="8" text="환자 도착일시"/>
  93. <Cell col="9" text="소요시간&#13;&#10;(분)" wordwrap="word"/>
  94. <Cell col="10" text="등록 취소 일시"/>
  95. <Cell col="11" text="비고"/>
  96. <Cell col="12" text="입원일자"/>
  97. <Cell col="13" text="생성번호"/>
  98. <Cell col="14" text="일련번호"/>
  99. </Band>
  100. <Band id="body">
  101. <Cell displaytype="button" text="도착확인"/>
  102. <Cell col="1" displaytype="button" text="등록취소"/>
  103. <Cell col="2" displaytype="combo" edittype="combo" style="align:center middle;" text="bind:diagkind" combodataset="ds_diagkind" combocodecol="cdid" combodatacol="cdnm" combodisplay="edit"/>
  104. <Cell col="3" style="align:left middle;" text="bind:rgstno"/>
  105. <Cell col="4" style="align:left middle;" text="bind:hngnm"/>
  106. <Cell col="5" style="align:center middle;" text="bind:pid"/>
  107. <Cell col="6" displaytype="combo" style="align:center;" text="bind:fstrstatcd" combodataset="ds_stat" combocodecol="cdid" combodatacol="cdnm"/>
  108. <Cell col="7" style="align:center middle;" text="bind:rgstdt"/>
  109. <Cell col="8" style="align:center middle;" text="bind:arvdt"/>
  110. <Cell col="9" style="align:center middle;" text="bind:term"/>
  111. <Cell col="10" text="bind:incncldt"/>
  112. <Cell col="11" edittype="textarea" style="align:left middle;" text="bind:remark"/>
  113. <Cell col="12" style="align:center middle;" text="bind:indd"/>
  114. <Cell col="13" style="align:center middle;" text="bind:cretno"/>
  115. <Cell col="14" style="align:center middle;" text="bind:seqno"/>
  116. </Band>
  117. </Format>
  118. </Formats>
  119. </Grid>
  120. </Layout>
  121. </Layouts>
  122. <InitValue>
  123. <Grid id="grd_prepatmng" binddataset="ds_main_prepatmng"/>
  124. </InitValue>
  125. </Div>
  126. <Static id="Static00" text="Static00" position="absolute 7 554 762 570"/>
  127. <Div id="Div02" taborder="9" text="Div02" position="absolute 781 21 964 184" style="background:antiquewhite;" visible="false">
  128. <Layouts>
  129. <Layout>
  130. <Button id="Button00" taborder="0" text="전자인증 테스트" onclick="TestButton_onclick" position="absolute 12 35 176 59" style="color:fuchsia;" anchor="default"/>
  131. <Button id="Button01" taborder="1" text="약속처방,진단 가져오기" onclick="TestButton_onclick" position="absolute 12 60 176 84" style="color:deeppink;" anchor="default"/>
  132. <Button id="Button02" taborder="2" text="상단 정보 세팅 값 가져오기" onclick="TestButton_onclick" position="absolute 12 85 176 109" anchor="default"/>
  133. <Button id="Button03" taborder="3" text="인증서 띄우기" position="absolute 11 10 175 34" onclick="TestButton_onclick" anchor="default"/>
  134. <Button id="Button04" taborder="4" text="응급접수" position="absolute 12 110 176 134" onclick="TestButton_onclick" anchor="default"/>
  135. <Button id="Button05" taborder="5" text="처방등록" onclick="TestButton_onclick" position="absolute 13 135 177 159" anchor="default"/>
  136. </Layout>
  137. </Layouts>
  138. </Div>
  139. </Layout>
  140. </Layouts>
  141. <Objects>
  142. <Dataset id="ds_main_prepatmng" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" reversesubsum="false">
  143. <ColumnInfo>
  144. <Column id="rgstno" type="STRING" size="256"/>
  145. <Column id="hngnm" type="STRING" size="256"/>
  146. <Column id="pid" type="STRING" size="256"/>
  147. <Column id="rgstdt" type="STRING" size="256"/>
  148. <Column id="arvdt" type="STRING" size="256"/>
  149. <Column id="indd" type="STRING" size="256"/>
  150. <Column id="cretno" type="STRING" size="256"/>
  151. <Column id="diagkind" type="STRING" size="256"/>
  152. <Column id="seqno" type="STRING" size="256"/>
  153. <Column id="term" type="STRING" size="256"/>
  154. <Column id="stat" type="STRING" size="256"/>
  155. <Column id="remark" type="STRING" size="256"/>
  156. </ColumnInfo>
  157. </Dataset>
  158. <Dataset id="ds_main_cond" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  159. <ColumnInfo>
  160. <Column id="fromdd" type="STRING" size="256"/>
  161. <Column id="todd" type="STRING" size="256"/>
  162. <Column id="pid" type="STRING" size="256"/>
  163. <Column id="hngnm" type="STRING" size="256"/>
  164. <Column id="arvpatexpt" type="STRING" size="256"/>
  165. <Column id="rgstno" type="STRING" size="256"/>
  166. </ColumnInfo>
  167. <Rows>
  168. <Row/>
  169. </Rows>
  170. </Dataset>
  171. <Dataset id="ds_send_reqdata" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  172. <ColumnInfo>
  173. <Column id="pid" type="STRING" size="256"/>
  174. <Column id="rgstno1" type="STRING" size="256"/>
  175. <Column id="rgstno2" type="STRING" size="256"/>
  176. <Column id="hngnm" type="STRING" size="256"/>
  177. <Column id="diagkind" type="STRING" size="256"/>
  178. <Column id="remark" type="STRING" size="9999"/>
  179. <Column id="seqno" type="STRING" size="256"/>
  180. <Column id="setno" type="STRING" size="256"/>
  181. <Column id="diaghrcd" type="STRING" size="256"/>
  182. <Column id="indd" type="STRING" size="256"/>
  183. <Column id="cretno" type="STRING" size="256"/>
  184. <Column id="ordtype" type="STRING" size="256"/>
  185. <Column id="orddeptcd" type="STRING" size="256"/>
  186. <Column id="medispclid" type="STRING" size="256"/>
  187. <Column id="fstrstatcd" type="STRING" size="256"/>
  188. <Column id="signBfPrcpConts" type="STRING" size="256"/>
  189. <Column id="signBfDiagConts" type="STRING" size="256"/>
  190. <Column id="signAfPrcpConts" type="STRING" size="256"/>
  191. <Column id="signAfDiagConts" type="STRING" size="256"/>
  192. <Column id="ipaddr" type="STRING" size="256"/>
  193. </ColumnInfo>
  194. <Rows>
  195. <Row/>
  196. </Rows>
  197. </Dataset>
  198. <Dataset id="ds_source" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  199. <ColumnInfo>
  200. <Column id="srchcond" type="STRING" size="256"/>
  201. <Column id="hngnm" type="STRING" size="256"/>
  202. <Column id="rrgstno1" type="STRING" size="256"/>
  203. <Column id="rrgstno2" type="STRING" size="256"/>
  204. <Column id="autoflag" type="STRING" size="256"/>
  205. <Column id="checkfnexam" type="STRING" size="256"/>
  206. </ColumnInfo>
  207. <Rows>
  208. <Row/>
  209. </Rows>
  210. </Dataset>
  211. <Dataset id="ds_diagkind" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  212. <ColumnInfo>
  213. <Column id="cdid" type="STRING" size="256"/>
  214. <Column id="cdnm" type="STRING" size="256"/>
  215. </ColumnInfo>
  216. <Rows>
  217. <Row>
  218. <Col id="cdid">1</Col>
  219. <Col id="cdnm">급성 뇌경색</Col>
  220. </Row>
  221. </Rows>
  222. </Dataset>
  223. <Dataset id="ds_stat" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  224. <ColumnInfo>
  225. <Column id="cdid" type="STRING" size="256"/>
  226. <Column id="cdnm" type="STRING" size="256"/>
  227. </ColumnInfo>
  228. <Rows>
  229. <Row>
  230. <Col id="cdid">C</Col>
  231. <Col id="cdnm">사전등록</Col>
  232. </Row>
  233. <Row>
  234. <Col id="cdid">Y</Col>
  235. <Col id="cdnm">도착확인</Col>
  236. </Row>
  237. <Row>
  238. <Col id="cdid">D</Col>
  239. <Col id="cdnm">등록취소</Col>
  240. </Row>
  241. <Row>
  242. <Col id="cdid">X</Col>
  243. <Col id="cdnm">접수취소</Col>
  244. </Row>
  245. <Row>
  246. <Col id="cdid">I</Col>
  247. <Col id="cdnm">응급접수</Col>
  248. </Row>
  249. </Rows>
  250. </Dataset>
  251. <Dataset id="ds_reqPatValid" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  252. <ColumnInfo>
  253. <Column id="pid" type="STRING" size="256"/>
  254. <Column id="orddd" type="STRING" size="256"/>
  255. <Column id="cretno" type="STRING" size="256"/>
  256. <Column id="hngnm" type="STRING" size="256"/>
  257. <Column id="prcpgenrflag" type="STRING" size="256"/>
  258. <Column id="srchtabflag" type="STRING" size="256"/>
  259. </ColumnInfo>
  260. <Rows>
  261. <Row/>
  262. </Rows>
  263. </Dataset>
  264. <Dataset id="ds_ret_newpatinfo" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false"/>
  265. <Dataset id="ds_patinfolist" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false"/>
  266. <Dataset id="ds_protocol_prcplist" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false"/>
  267. <Dataset id="ds_protocol_diaglist" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false"/>
  268. <Dataset id="ds_patmaintopinfo" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  269. <ColumnInfo>
  270. <Column id="pid" type="STRING" size="256" sumtext="등록번호"/>
  271. <Column id="hngnm" type="STRING" size="256" sumtext="환자명"/>
  272. <Column id="hngnm2" type="STRING" size="256" sumtext="환자명2"/>
  273. <Column id="dispnm1" type="STRING" size="256" sumtext="환자표시명1"/>
  274. <Column id="dispnm2" type="STRING" size="256" sumtext="환자표시명2"/>
  275. <Column id="rrgstno" type="STRING" size="256" sumtext="주민번호"/>
  276. <Column id="sa" type="STRING" size="256" sumtext="성별"/>
  277. <Column id="addr" type="STRING" size="256" sumtext="주소"/>
  278. <Column id="insukind" type="STRING" size="256" sumtext="보험유형"/>
  279. <Column id="ininfo" type="STRING" size="256" sumtext="입원정보"/>
  280. <Column id="body" type="STRING" size="256" sumtext="신체사정"/>
  281. <Column id="orddept" type="STRING" size="256" sumtext="부서"/>
  282. <Column id="apntdr" type="STRING" size="256" sumtext="지정의"/>
  283. <Column id="attndr" type="STRING" size="256" sumtext="주치의"/>
  284. <Column id="btype" type="STRING" size="256" sumtext="혈액형"/>
  285. <Column id="diagnosis" type="STRING" size="256" sumtext="진단"/>
  286. <Column id="operation" type="STRING" size="256" sumtext="수술"/>
  287. <Column id="allergy" type="STRING" size="256" sumtext="알러지"/>
  288. <Column id="infection" type="STRING" size="256" sumtext="감염"/>
  289. <Column id="intcare" type="STRING" size="256" sumtext="중증"/>
  290. <Column id="cp" type="STRING" size="256" sumtext="CP여부"/>
  291. <Column id="drgyn" type="STRING" size="256" sumtext="DRG환자여부"/>
  292. <Column id="regstno" type="STRING" size="256" sumtext="주민번호뒷자리"/>
  293. <Column id="detladdr" type="STRING" size="256" sumtext="상세주소"/>
  294. <Column id="zipcd" type="STRING" size="256" sumtext="우편번호"/>
  295. <Column id="phontel" type="STRING" size="256" sumtext="전화번호"/>
  296. <Column id="cnsttypenm" type="STRING" size="256" sumtext="협진분류명"/>
  297. <Column id="newallergy" type="STRING" size="256" sumtext="뉴알러지"/>
  298. <Column id="healexam" type="STRING" size="256" sumtext="건진여부"/>
  299. <Column id="vip" type="STRING" size="256" sumtext="vip여부"/>
  300. <Column id="coop" type="STRING" size="256" sumtext="의료협력"/>
  301. <Column id="recovwardnm" type="STRING" size="256" sumtext="회복병동코드"/>
  302. <Column id="stgediagnm" type="STRING" size="256" sumtext="병기분류진단코드"/>
  303. <Column id="stgediagcd" type="STRING" size="256" sumtext="병기분류진단명"/>
  304. <Column id="stagecd" type="STRING" size="256" sumtext="병기분류stagecd"/>
  305. <Column id="tnmcd1" type="STRING" size="256" sumtext="병기분류tnmcd1"/>
  306. <Column id="tnmcd2" type="STRING" size="256" sumtext="병기분류tnmcd2"/>
  307. <Column id="tnmcd3" type="STRING" size="256" sumtext="병기분류tnmcd3"/>
  308. <Column id="insuyn" type="STRING" size="256" sumtext="보험종류에따른플레그값(급여,자보일경우Y"/>
  309. <Column id="organ" type="STRING" size="256" sumtext="이식"/>
  310. <Column id="dinfo" type="STRING" size="256" sumtext="낙상"/>
  311. <Column id="binfo" type="STRING" size="256" sumtext="욕창"/>
  312. <Column id="pinfo" type="STRING" size="256" sumtext="사생활"/>
  313. <Column id="nutinfo" type="STRING" size="256" sumtext="영양고위험"/>
  314. <Column id="recmer" type="STRING" size="256" sumtext="지인유무"/>
  315. <Column id="recmerinfo" type="STRING" size="256" sumtext="지인정보"/>
  316. <Column id="drginfo" type="STRING" size="256" sumtext="DRG 정보"/>
  317. <Column id="pregnant" type="STRING" size="256" sumtext="임신부 정보"/>
  318. </ColumnInfo>
  319. </Dataset>
  320. <Dataset id="ds_ret_inptinfo" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false"/>
  321. <Dataset id="ds_local" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  322. <ColumnInfo>
  323. <Column id="msg" type="STRING" size="999999"/>
  324. </ColumnInfo>
  325. <Rows>
  326. <Row/>
  327. </Rows>
  328. </Dataset>
  329. </Objects>
  330. <Bind>
  331. <BindItem id="item9" compid="Div00.Edit00" propid="value" datasetid="ds_send_reqdata" columnid="seqno"/>
  332. <BindItem id="item1" compid="Div00.ipt_srchhngnm" propid="value" datasetid="ds_send_reqdata" columnid="hngnm"/>
  333. <BindItem id="item0" compid="Div00.ipt_pid" propid="value" datasetid="ds_send_reqdata" columnid="pid"/>
  334. <BindItem id="item2" compid="Div01.group2.ipt_srchpid" propid="value" datasetid="ds_main_cond" columnid="hngnm"/>
  335. <BindItem id="item5" compid="Div00.ipt_rrgstno1" propid="value" datasetid="ds_send_reqdata" columnid="rgstno1"/>
  336. <BindItem id="item6" compid="Div00.ipt_rrgstno2" propid="value" datasetid="ds_send_reqdata" columnid="rgstno2"/>
  337. <BindItem id="item3" compid="Div00.Static00" propid="text" datasetid="ds_local" columnid="msg"/>
  338. <BindItem id="item4" compid="Div00.cbDiagkind" propid="value" datasetid="ds_send_reqdata" columnid="diagkind"/>
  339. <BindItem id="item7" compid="Div01.group2.calFromdd" propid="value" datasetid="ds_main_cond" columnid="fromdd"/>
  340. <BindItem id="item8" compid="Div01.group2.calTodd" propid="value" datasetid="ds_main_cond" columnid="todd"/>
  341. <BindItem id="item10" compid="Div01.group2.CheckBox00" propid="value" datasetid="ds_main_cond" columnid="arvpatexpt"/>
  342. <BindItem id="item11" compid="Div00.ipt_remark" propid="value" datasetid="ds_send_reqdata" columnid="remark"/>
  343. <BindItem id="item12" compid="Div01.group2.ipt_srchrgstno" propid="value" datasetid="ds_main_cond" columnid="rgstno"/>
  344. <BindItem id="item13" compid="Static00" propid="text" datasetid="ds_local" columnid="msg"/>
  345. </Bind>
  346. <InitValue/>
  347. <Script type="xscript4.0"><![CDATA[/***************************************************************************************
  348. * System Name :
  349. * Job Name :
  350. * Creator :
  351. * Make Date : 2015-11-13
  352. * Description :
  353. *---------------------------------------------------------------------------------------
  354. * Modify Date Modifier Modify Description
  355. *---------------------------------------------------------------------------------------
  356. * 2015-11-13 Live Converter TF->XP
  357. *
  358. *---------------------------------------------------------------------------------------
  359. ****************************************************************************************/
  360. include "com_commonxp::comm_main.xjs";
  361. include "emr_carecomxp::CareCom.xjs";
  362. include "emr_prcpmngtxp::MMO001.xjs";
  363. include "emr_prcpmngtxp::SMMMO04100.xjs";
  364. //=======================================================================================
  365. // Global Form Variable
  366. //---------------------------------------------------------------------------------------
  367. var arErrorCode = new HashArray();
  368. //var errflag;
  369. // var zes_objSKComm = null;
  370. // var zes_objKMClient = null;
  371. // var zes_objForm = null;
  372. // var zes_sCertYear = 1970;
  373. // var zes_sCertMonth = 1;
  374. // var zes_sCertDate = 1;
  375. // var zes_sUID = "";
  376. function fGetPatInfo_onkeydown(obj:Edit, e:KeyEventInfo)
  377. {
  378. if (e.keycode == 13) // enter
  379. {
  380. obj.updateToDataset();
  381. // 환자 번호 조회
  382. lf_getPtbsInfo();
  383. }
  384. }
  385. function lf_getPtbsInfo()
  386. {
  387. var sHngnm = ds_send_reqdata.getColumn(0, "hngnm"); // 환자성명
  388. var sRgstno1 = ds_send_reqdata.getColumn(0, "rgstno1"); // 주민번호1
  389. var sRgstno2 = ds_send_reqdata.getColumn(0, "rgstno2"); // 주민번호2
  390. var arrErrMsg = new Array();
  391. var inxArray = 0;
  392. // 입력값 체크
  393. if ( sRgstno1.length <> 6 || sRgstno2.length <> 7 )
  394. {
  395. arrErrMsg[inxArray++] = "주민등록번호 형식이 맞지 않습니다.";
  396. }
  397. // if ( utlf_isNull(sHngnm) )
  398. // {
  399. // arrErrMsg[inxArray++] = "환자성명을 입력하지 않았습니다.";
  400. // }
  401. if (arrErrMsg.length > 0)
  402. {
  403. var sErrMsg = "";
  404. for(var i = 0; i < arrErrMsg.length; i++)
  405. {
  406. sErrMsg += (i + 1) + "." + arrErrMsg[i] + "\n";
  407. }
  408. sysf_messageBox(sErrMsg, "E000");
  409. return ;
  410. }
  411. ds_source.setColumn(0, "srchcond", "4");
  412. ds_source.setColumn(0, "hngnm" , sHngnm);
  413. ds_source.setColumn(0, "rrgstno1", sRgstno1);
  414. ds_source.setColumn(0, "rrgstno2", sRgstno2);
  415. //조회건수가 1건일 경우 팝업창을 바로 닫는다.
  416. ds_source.setColumn(0, "checkfnexam", "1");
  417. ds_source.setColumn(0, "autoflag", "Y");
  418. var objArg = new Object();
  419. objArg.arg_ds_send = ds_source;
  420. // modal("SPPMC02500", 1,"150", "150", "SPPMC02500", ds_source, "/root/send");
  421. frmf_modal("SPPMC02500", "SPPMC02500", objArg, false, 1, '', '', 618, 343, "", "", "", "M");
  422. ds_source.clearData();
  423. ds_source.addRow();
  424. var popupendflag = frmf_getParameter("SPPMC02500_popupendflag")
  425. if (popupendflag == "ok") {
  426. ds_send_reqdata.setColumn(0, "pid" , ds_patinfolist.getColumn(0, "pid")) ;
  427. ds_send_reqdata.setColumn(0, "hngnm" , ds_patinfolist.getColumn(0, "hngnm")) ;
  428. ds_send_reqdata.setColumn(0, "rgstno1", ds_patinfolist.getColumn(0, "rrgstno1")) ;
  429. ds_send_reqdata.setColumn(0, "rgstno2", ds_patinfolist.getColumn(0, "rrgstno2")) ;
  430. //20080703 이동식 추가
  431. //환자정보 조회 중 상태 표시
  432. frmf_openLoadingBar(); //callLoadingWindow(""); //--> 화면 표시 클리어 현재는 없어서 막은 상태임. 2016-08-06 kimdo3
  433. //환자정보 조회 중 상태 표시 지우기
  434. frmf_closeLoadingBar();
  435. //end,
  436. }
  437. else {
  438. if (sysf_messageBox("조회된 데이터가 없습니다. 신환 번호를 생성하시겠습니까? ", "Q0001")== 6)
  439. {
  440. // 신환 번호 생성
  441. fSetNewPatInfo();
  442. }
  443. // //환자조회 팝업에서 '취소'또는 'X'로 종료하면 화면 클리어!!
  444. // var rrgstno1 = String(ds_main_ptbs.getColumn(0, "ptbs_rrgstno1")).trim();
  445. // var rrgstno2 = String(ds_main_ptbs.getColumn(0, "ptbs_rrgstno2")).trim();
  446. //
  447. // if (rrgstno1.length == 6 && rrgstno2.length == 7) {
  448. //
  449. // //포커스 이동 연락처 입력칸!!
  450. // //frmf_inputEnterKey('ipt_rrgstno2', 'ontextchanged', new TextChangedEventInfo);
  451. //
  452. // ipt_rrgstno2_textchanged(ipt_rrgstno2);
  453. // ipt_hometel.setFocus();
  454. // }
  455. // else {
  456. // //포커스 이동 주민번호 입력칸!!
  457. // ipt_rrgstno1.setFocus();
  458. // }
  459. }
  460. //2016/04/12 치과 및 본원간 환자정보 동기화 관련 수정(이정택)
  461. //fPatInfoCheck();
  462. // 입원 등록 여부 확인.
  463. var bInhosp = fChkInhosp();
  464. if (! bInhosp) // 재원이 아니면
  465. {
  466. Div00.btnPrePatRgst.enable = true;
  467. Div00.btnSetArvCnfm.enable = false;
  468. Div00.btnPatRgstCncl.enable = false;
  469. }
  470. else
  471. {
  472. Div00.btnPrePatRgst.enable = false;
  473. Div00.btnSetArvCnfm.enable = false;
  474. Div00.btnPatRgstCncl.enable = false;
  475. }
  476. }
  477. // 신환자 번호 생성
  478. function fSetNewPatInfo()
  479. {
  480. // 환자번호 등록 (병원에 도착한 상태가 아니라서 환자의 주민번호 전체는 입력을 하지 않음)
  481. //var sRgstno2 = ds_send_reqdata.getColumn(0, "rgstno2").substr(0,1) + "000000";
  482. var sRgstno2 = ds_send_reqdata.getColumn(0, "rgstno2");
  483. dsf_createDsRow("ds_hidden_send_ptbs", [
  484. {col:"ptbs_hngnm" , type:"STRING", size:256, val: ds_send_reqdata.getColumn(0, "hngnm")}
  485. , {col:"ptbs_rrgstno1" , type:"STRING", size:256, val: ds_send_reqdata.getColumn(0, "rgstno1")}
  486. , {col:"ptbs_rrgstno2" , type:"STRING", size:256, val: sRgstno2}
  487. , {col:"ptbs_brthdd" , type:"STRING", size:256, val: ""}
  488. , {col:"ptbs_sex" , type:"STRING", size:256, val: "M"}
  489. , {col:"ptbs_mpphontel", type:"STRING", size:256, val: ""}
  490. ]);
  491. var oParam = {};
  492. oParam.id = "TXMNE08002";
  493. oParam.service = "opatmngtapp.OPatMngt";
  494. oParam.method = "reqSetPatInfo";
  495. oParam.inds = "req=ds_hidden_send_ptbs";
  496. oParam.outds = "ds_ret_newpatinfo=ptbs";
  497. oParam.async = false;
  498. oParam.callback = "cf_TXMNE08002";
  499. tranf_submit(oParam);
  500. }
  501. function cf_TXMNE08002(sSvcId, nErrorCode, sErrorMsg)
  502. {
  503. if (ds_ret_newpatinfo.rowcount > 0)
  504. {
  505. ds_send_reqdata.setColumn(0, "pid", ds_ret_newpatinfo.getColumn(0, "ptbs_pid"));
  506. }
  507. else
  508. {
  509. sysf_messageBox("환자번호 생성에 실패하였습니다.", "E000");
  510. }
  511. }
  512. // 해당 환자 재원 여부 확인
  513. function fChkInhosp()
  514. {
  515. dsf_createDsRow("ds_rslt_inhosp", [
  516. {col:"inhospyn" , type:"STRING", size:256, val: ""}
  517. ]);
  518. var oParam = {};
  519. oParam.id = "TXMNE080021";
  520. oParam.service = "ercareapp.ERPatMngt";
  521. oParam.method = "reqGetInhospInfo";
  522. oParam.inds = "req=ds_send_reqdata";
  523. oParam.outds = "ds_rslt_inhosp=result";
  524. oParam.async = false;
  525. oParam.callback = "";
  526. tranf_submit(oParam);
  527. var msg = fGetPatInfo();
  528. var bRtn = false;
  529. if (ds_rslt_inhosp.rowcount == 0)
  530. {
  531. bRtn = false;
  532. }
  533. else
  534. {
  535. sysf_messageBox(fGetPatInfo() + "\n\n" + ds_rslt_inhosp.getColumn(0, "inhospdesc") + "에 재원 중인 환자입니다.", "I999");
  536. bRtn = true;
  537. }
  538. return bRtn;
  539. }
  540. function SPMNE04500_oninit(obj:Form, e:InitEventInfo)
  541. {
  542. frmf_initForm(obj);
  543. }
  544. function SPMNE04500_onload(obj:Form, e:LoadEventInfo)
  545. {
  546. fInitialize_SPMNE04500();
  547. }
  548. function fInitialize_SPMNE04500()
  549. {
  550. grdf_initGrid(Div01.grd_prepatmng);
  551. Div00.cbDiagkind.index = 0;
  552. // 조회 기간 은 전날~다음날 (00시 기준으로 날짜가 넘어갈 수 있기 때문에)
  553. var curDate = utlf_getCurrentDate();
  554. ds_main_cond.setColumn(0, "fromdd", utlf_addDate(curDate, -1));
  555. ds_main_cond.setColumn(0, "todd", utlf_addDate(curDate, 1));
  556. // 도착 확인 환자 제외
  557. ds_main_cond.setColumn(0, "arvpatexpt", "Y");
  558. // 공통코드를 가져온다.
  559. dsf_createDs("ds_send");
  560. dsf_createDs("ds_codelist");
  561. var pCdrupid = "'E50','073'"; /// E50 : 질환분류, 073 : 응급의학과 부서코드
  562. var pFromDate = utlf_getCurrentDate(); //조회기준일자
  563. // 간호 하드코드 가져오기.
  564. fGetNursHardCdInfo(pCdrupid, pFromDate);
  565. // 질환 분류 코드 가져오기
  566. ds_codelist.filter("cdgrupid =='E50'");
  567. ds_diagkind.copyData(ds_codelist, true);
  568. dsf_makeValue(ds_diagkind, "setno", "string");
  569. dsf_makeValue(ds_diagkind, "diaghrcd", "string");
  570. for (var i = 0; i < ds_diagkind.rowcount; i++)
  571. {
  572. var sProtocol = utlf_transNullToEmpty(ds_diagkind.getColumn(i, "supcdid"));
  573. if ( !utlf_isNull(sProtocol) )
  574. {
  575. var arrProtocol = sProtocol.split("|");
  576. ds_diagkind.setColumn(i, "setno", arrProtocol[0]);
  577. ds_diagkind.setColumn(i, "diaghrcd", arrProtocol[1]);
  578. }
  579. }
  580. // 응급의학과 부서 코드가져오기
  581. ds_codelist.filter("cdgrupid =='073'");
  582. ds_send_reqdata.setColumn(0, "orddeptcd", ds_codelist.getColumn(0, "cdid"));
  583. // 사전 등록환자 조회
  584. fGetPrePatMng();
  585. // 그리드 색깔 표시
  586. var backgroundExpt = ""
  587. backgroundExpt += "EXPR( fstrstatcd == 'C' ? '#ffffff' ";
  588. backgroundExpt += " : fstrstatcd == 'I' ? '#ffffff' ";
  589. backgroundExpt += " : fstrstatcd == 'D' ? '#c0c0c0' ";
  590. backgroundExpt += " : fstrstatcd == 'Y' ? '#b9c1f9' ";
  591. backgroundExpt += " : fstrstatcd == 'X' ? '#c0c0c0' ";
  592. backgroundExpt += " : '#c0c0c0')";
  593. var rowindex = 6;
  594. Div01.grd_prepatmng.setCellProperty("Body", rowindex, "background" , backgroundExpt);
  595. Div01.grd_prepatmng.setCellProperty("Body", rowindex, "background2" , backgroundExpt);
  596. Div01.grd_prepatmng.setCellProperty("Body", rowindex, "selectbackground", backgroundExpt);
  597. //인증저장 셋팅..
  598. zesf_InitSign();
  599. Div00.btnSetArvCnfm.enable = false;
  600. Div00.btnPatRgstCncl.enable = false;
  601. Div00.cbDiagkind.index = 0;
  602. ds_local.setColumn(0, "msg", "★ 응급접수 상태인 경우 처방 화면에서 개별로 처방을 내어 주시길 바랍니다.");
  603. // 개발자 모드일 경우
  604. //if (IsDevMode())
  605. if (gv_bIsPreview)
  606. {
  607. Div00.Edit00.visible = true;
  608. Div02.visible= true;
  609. }
  610. }
  611. function btnRgst_onclick(obj:Button, e:ClickEventInfo)
  612. {
  613. if ( !utlf_isNull (ds_send_reqdata.getColumn(0, "rgstno1"))
  614. && !utlf_isNull (ds_send_reqdata.getColumn(0, "rgstno2"))
  615. && !utlf_isNull (ds_send_reqdata.getColumn(0, "hngnm"))
  616. )
  617. {
  618. var msg = fGetPatInfo();
  619. var bRtn = false;
  620. switch (obj.name)
  621. {
  622. case "btnPrePatRgst": // 사전등록
  623. if ( sysf_messageBox(msg + "\n\n사전 등록을 하시겠습니까?\n", "Q0001") == 6)
  624. {
  625. // 사전 등록 저장
  626. fInsPrePatMng();
  627. }
  628. break;
  629. case "btnSetArvCnfm": // 도착확인
  630. // 의사 직종만 도착확인이 가능.
  631. if((sysf_getUserInfo("jobkindcd") != "0330")){ // 0330 : 의사
  632. sysf_messageBox("의사만 도착 확인이 가능 합니다.", "I003");
  633. return;
  634. }
  635. if ( sysf_messageBox(msg + "\n\n도착 확인을 하시겠습니까?\n", "Q0001") == 6)
  636. {
  637. // 도착 확인
  638. bRtn = fSetArvCnfm();
  639. if (bRtn)
  640. {
  641. fSetInitReqData();
  642. }
  643. }
  644. break;
  645. case "btnPatRgstCncl": // 등록취소
  646. if ( sysf_messageBox(msg + "\n\n등록 취소를 하시겠습니까?\n", "Q0001") == 6)
  647. {
  648. fDelErPrePatRgst();
  649. }
  650. break;
  651. }
  652. // 사전 등록 대상자 조회
  653. fGetPrePatMng();
  654. fSetInitReqData();
  655. }
  656. else
  657. {
  658. sysf_messageBox("환자 정보가 입력되지", "E007");
  659. }
  660. }
  661. // 사전 등록
  662. function fInsPrePatMng()
  663. {
  664. // 재원 여부 확인.
  665. var bInhosp = fChkInhosp();
  666. if (! bInhosp) // 재원 아님
  667. {
  668. var oParam = {};
  669. oParam.id = "TXMNE08001";
  670. oParam.service = "ercareapp.ERPatMngt";
  671. oParam.method = "reqInsErPrePatRgst";
  672. oParam.inds = "savedata=ds_send_reqdata";
  673. //oParam.outds = "ds_item_cnt=item";
  674. oParam.async = false;
  675. oParam.callback = "cf_TXMNE08001";
  676. tranf_submit(oParam);
  677. return true;
  678. }
  679. else
  680. {
  681. return false;
  682. }
  683. }
  684. function cf_TXMNE08001(sSvcId, nErrorCode, sErrorMsg)
  685. {
  686. ds_send_reqdata.clearData();
  687. ds_send_reqdata.addRow();
  688. ds_send_reqdata.setColumn(0, "diagkind", "1");
  689. }
  690. // 도착 확인
  691. function fSetArvCnfm()
  692. {
  693. var bRtn = false;
  694. // 인증서 입력창을 팝업함.
  695. bRtn = fShowSignPopup();
  696. if (bRtn)
  697. {
  698. // 원무 응급 등록 실행
  699. bRtn = fSaveInpt();
  700. if (ds_ret_inptinfo.rowcount > 0)
  701. {
  702. trace("### 원무 응급 등록 성공");
  703. bRtn = fSavePrcp();
  704. if (bRtn)
  705. {
  706. sysf_messageBox("도착 확인을 완료 하였습니다.", "I999");
  707. }
  708. else
  709. {
  710. sysf_messageBox("처방 저장을 실패하였습니다.", "I999");
  711. }
  712. return bRtn;
  713. }
  714. }
  715. else
  716. {
  717. sysf_messageBox("인증서 정보가 잘못되었습니다.", "I999");
  718. }
  719. }
  720. // 원무 응급 등록 실행
  721. function fSaveInpt()
  722. {
  723. var oParam = {};
  724. oParam.id = "TXMNE0800110";
  725. oParam.service = "ercareapp.ERPatMngt";
  726. oParam.method = "reqSetErPrePatArv";
  727. oParam.inds = "savedata=ds_send_reqdata";
  728. oParam.outds = "ds_ret_inptinfo=result";
  729. oParam.async = false;
  730. oParam.callback = "cbf_TXMNE0800110";
  731. tranf_submit(oParam);
  732. ds_send_reqdata.setColumn(0, "indd" , utlf_transNullToEmpty(ds_ret_inptinfo.getColumn(0, "indd")));
  733. ds_send_reqdata.setColumn(0, "cretno" , utlf_transNullToEmpty(ds_ret_inptinfo.getColumn(0, "cretno")));
  734. ds_send_reqdata.setColumn(0, "ordtype" , utlf_transNullToEmpty(ds_ret_inptinfo.getColumn(0, "ordtype")));
  735. ds_send_reqdata.setColumn(0, "medispclid", utlf_transNullToEmpty(ds_ret_inptinfo.getColumn(0, "medispclid")));
  736. }
  737. function cbf_TXMNE0800110(strSvcID, nErrorCode, strErrorMsg)
  738. {
  739. //에러 처리
  740. if(nErrorCode == 0){
  741. }else{
  742. sysf_messageBox("원무 응급 등록에 실패하였습니다.","I999");
  743. }
  744. }
  745. // 약속처방/진단 가져오기
  746. function fGetProtocolPrcpDiagList()
  747. {
  748. var oParam = {};
  749. oParam.id = "TXMNE080022";
  750. oParam.service = "ercareapp.ERPatMngt";
  751. oParam.method = "reqGetProtocolPrcpList";
  752. oParam.inds = "req=ds_send_reqdata";
  753. oParam.outds = "ds_protocol_prcplist=prcp ds_protocol_diaglist=diag";
  754. oParam.async = false;
  755. oParam.callback = "cbf_TXMNE080022";
  756. tranf_submit(oParam);
  757. if (arErrorCode.pop("TXMNE080022") == 0)
  758. return true;
  759. else
  760. return false;
  761. }
  762. function cbf_TXMNE080022(sSvcId, nErrorCode, sErrorMsg)
  763. {
  764. arErrorCode.push(sSvcId, nErrorCode);
  765. }
  766. // 처방 등록 및 전자인증
  767. function fSavePrcp()
  768. {
  769. ds_send_reqdata.setColumn(0, "ipaddr", sysf_getUserInfo("ipaddr"));
  770. var bRtn = false;
  771. // 약속처방, 진단 가져오기
  772. bRtn = fGetProtocolPrcpDiagList();
  773. if (bRtn)
  774. {
  775. // 전자인증 하기
  776. bRtn = fPrcpSaveSign();
  777. if (bRtn) // 전자인증값 가져오기 성공
  778. {
  779. var oParam = {};
  780. oParam.id = "TXMNE0800113";
  781. oParam.service = "ercareapp.ERPatMngt";
  782. oParam.method = "reqSetErPrePatPrcp";
  783. oParam.inds = "savedata=ds_send_reqdata";
  784. oParam.outds = "ds_ret_inptinfo=result";
  785. oParam.async = false;
  786. oParam.callback = "cbf_TXMNE0800113";
  787. tranf_submit(oParam);
  788. if (arErrorCode.pop("TXMNE0800113") == 0)
  789. return true;
  790. else
  791. return false;
  792. }
  793. else
  794. {
  795. sysf_messageBox("전자인증에 실패하였습니다.", "I999");
  796. return false;
  797. }
  798. }
  799. else
  800. {
  801. sysf_messageBox("약속처방 조회에 실패하였습니다.", "I999");
  802. return false;
  803. }
  804. }
  805. function cbf_TXMNE0800113(sSvcId, nErrorCode, sErrorMsg)
  806. {
  807. arErrorCode.push(sSvcId, nErrorCode);
  808. }
  809. // 사전 등록 취소 확인
  810. function fDelErPrePatRgst()
  811. {
  812. var oParam = {};
  813. oParam.id = "TXMNE080011";
  814. oParam.service = "ercareapp.ERPatMngt";
  815. oParam.method = "reqDelErPrePatRgst";
  816. oParam.inds = "savedata=ds_send_reqdata";
  817. //oParam.outds = "ds_item_cnt=item";
  818. oParam.async = false;
  819. oParam.callback = "";
  820. tranf_submit(oParam);
  821. }
  822. function group5_group2_btn_search_onclick(obj:Button, e:ClickEventInfo)
  823. {
  824. // 환자 조회
  825. fGetPrePatMng();
  826. }
  827. // 사전 등록 환자 조회
  828. function fGetPrePatMng(seqno, dsrow)
  829. {
  830. var oParam = {};
  831. oParam.id = "TXMNE080012";
  832. oParam.service = "ercareapp.ERPatMngt";
  833. oParam.method = "reqGetErPrePatRgst";
  834. oParam.inds = "req=ds_main_cond";
  835. oParam.outds = "ds_main_prepatmng=info";
  836. oParam.async = true;
  837. oParam.callback = "";
  838. tranf_submit(oParam);
  839. }
  840. function Div01_grd_erpatlist_oncellclick(obj:Grid, e:GridClickEventInfo)
  841. {
  842. // 선택된 사전등록 번호를 위쪽에 세팅하기
  843. fGetPreRgstInfo();
  844. }
  845. function btn_srchhngnm_onclick(obj:Button, e:ClickEventInfo)
  846. {
  847. // 환자 번호 조회
  848. lf_getPtbsInfo();
  849. }
  850. function btnSetDay_onclick(obj:Button, e:ClickEventInfo)
  851. {
  852. var sCurdd = utlf_getCurrentDate();
  853. switch (obj.name)
  854. {
  855. case "btnSetYesterday":
  856. var sCalcdd = utlf_addDate(sCurdd, -1);
  857. break;
  858. case "btnSetToday":
  859. var sCalcdd = sCurdd;
  860. break;
  861. case "btnSetTomorrow":
  862. var sCalcdd = utlf_addDate(sCurdd, 1);
  863. break;
  864. }
  865. ds_main_cond.setColumn(0, "fromdd", sCalcdd);
  866. ds_main_cond.setColumn(0, "todd" , sCalcdd);
  867. }
  868. // 입력값 초기화
  869. function button16_onclick(obj:Button, e:ClickEventInfo)
  870. {
  871. fSetInitReqData();
  872. }
  873. // 선택된 환자 정보 가져오기
  874. function fGetPatInfo()
  875. {
  876. var pid = utlf_transNullToEmpty(ds_send_reqdata.getColumn(0, "pid"));
  877. var hngnm = utlf_transNullToEmpty(ds_send_reqdata.getColumn(0, "hngnm"));
  878. return hngnm + "/" + pid + "";
  879. }
  880. function fSetInitReqData()
  881. {
  882. ds_send_reqdata.setColumn(0, "pid" , "");
  883. ds_send_reqdata.setColumn(0, "rgstno1" , "");
  884. ds_send_reqdata.setColumn(0, "rgstno2" , "");
  885. ds_send_reqdata.setColumn(0, "hngnm" , "");
  886. ds_send_reqdata.setColumn(0, "diagkind" , "1");
  887. ds_send_reqdata.setColumn(0, "seqno" , "");
  888. ds_send_reqdata.setColumn(0, "setno" , "");
  889. ds_send_reqdata.setColumn(0, "diaghrcd" , "");
  890. ds_send_reqdata.setColumn(0, "indd" , "");
  891. ds_send_reqdata.setColumn(0, "cretno" , "");
  892. ds_send_reqdata.setColumn(0, "medispclid" , "");
  893. Div00.btnPrePatRgst.enable = true;
  894. Div00.btnSetArvCnfm.enable = false;
  895. Div00.btnPatRgstCncl.enable = false;
  896. Div00.ipt_pid.readonly = false;
  897. Div00.ipt_rrgstno1.readonly = false;
  898. Div00.ipt_rrgstno2.readonly = false;
  899. Div00.ipt_srchhngnm.readonly = false;
  900. Div00.cbDiagkind.readonly = false;
  901. Div00.ipt_remark.readonly = false;
  902. Div00.ipt_rrgstno1.setFocus();
  903. Div00.cbDiagkind.index = 0;
  904. }
  905. // 선택된 사전등록 번호를 상단에 올리기
  906. function fGetPreRgstInfo()
  907. {
  908. var rowindex = ds_main_prepatmng.rowposition;
  909. var rgstno = ds_main_prepatmng.getColumn(rowindex, "rgstno");
  910. var arrRgstno = rgstno.split("-");
  911. if (ds_send_reqdata.rowcount == 0)
  912. ds_send_reqdata.addRow();
  913. ds_send_reqdata.setColumn(0, "pid" , ds_main_prepatmng.getColumn(rowindex, "pid"));
  914. ds_send_reqdata.setColumn(0, "rgstno1" , arrRgstno[0]);
  915. ds_send_reqdata.setColumn(0, "rgstno2" , arrRgstno[1]);
  916. ds_send_reqdata.setColumn(0, "hngnm" , ds_main_prepatmng.getColumn(rowindex, "hngnm"));
  917. ds_send_reqdata.setColumn(0, "diagkind" , ds_main_prepatmng.getColumn(rowindex, "diagkind"));
  918. ds_send_reqdata.setColumn(0, "seqno" , ds_main_prepatmng.getColumn(rowindex, "seqno"));
  919. ds_diagkind.filter("cdid == '" + ds_main_prepatmng.getColumn(rowindex, "diagkind") + "'");
  920. var setno = ds_diagkind.getColumn(0, "setno");
  921. ds_diagkind.filter("cdid == '" + ds_main_prepatmng.getColumn(rowindex, "diagkind") + "'");
  922. var diaghrcd = ds_diagkind.getColumn(0, "diaghrcd");
  923. ds_diagkind.filter("");
  924. ds_send_reqdata.setColumn(0, "setno" , setno);
  925. ds_send_reqdata.setColumn(0, "diaghrcd" , diaghrcd);
  926. // trace("aa : " + ds_diagkind.lookup("diaghrcd", ds_main_prepatmng.getColumn(rowindex, "diagkind"), "diaghrcd") + " , rowindex : " + ds_main_prepatmng.getColumn(rowindex, "diagkind"));
  927. // trace("bb : " + ds_diagkind.lookup("diaghrcd", "002", "diaghrcd") + "");
  928. ds_send_reqdata.setColumn(0, "indd" , ds_main_prepatmng.getColumn(rowindex, "indd"));
  929. ds_send_reqdata.setColumn(0, "cretno" , ds_main_prepatmng.getColumn(rowindex, "cretno"));
  930. ds_send_reqdata.setColumn(0, "ordtype" , ds_main_prepatmng.getColumn(rowindex, "ordtype"));
  931. ds_send_reqdata.setColumn(0, "medispclid" , ds_main_prepatmng.getColumn(rowindex, "medispclid"));
  932. ds_send_reqdata.setColumn(0, "fstrstatcd" , ds_main_prepatmng.getColumn(rowindex, "fstrstatcd"));
  933. ds_codelist.filter("cdgrupid =='073'");
  934. ds_send_reqdata.setColumn(0, "orddeptcd", ds_codelist.getColumn(0, "cdid"));
  935. if ( !utlf_isNull(ds_send_reqdata.getColumn(0, "seqno")) )
  936. {
  937. Div00.btnPrePatRgst.enable = false;
  938. Div00.ipt_pid.readonly = true;
  939. Div00.ipt_rrgstno1.readonly = true;
  940. Div00.ipt_rrgstno2.readonly = true;
  941. Div00.ipt_srchhngnm.readonly = true;
  942. Div00.cbDiagkind.readonly = true;
  943. Div00.ipt_remark.readonly = true;
  944. }
  945. switch (ds_send_reqdata.getColumn(0, "fstrstatcd") )
  946. {
  947. case "D":
  948. case "Y":
  949. Div00.btnSetArvCnfm.enable = false;
  950. Div00.btnPatRgstCncl.enable = false;
  951. break;
  952. default:
  953. // 입원 등록 여부 확인.
  954. var bInhosp = fChkInhosp();
  955. // 입원 등록 여부 확인.
  956. if (! bInhosp)
  957. {
  958. Div00.btnSetArvCnfm.enable = true;
  959. Div00.btnPatRgstCncl.enable = true;
  960. }
  961. else
  962. {
  963. Div00.btnSetArvCnfm.enable = false;
  964. Div00.btnPatRgstCncl.enable = false;
  965. // 사전등록 상태인데 재원 중인 경우 등록 취소로 변경을 하기
  966. if (ds_send_reqdata.getColumn(0, "fstrstatcd") == "C")
  967. {
  968. if ( sysf_messageBox(fGetPatInfo() + "\n\n재원 중입니다.\n등록 취소를 하시겠습니까?\n", "Q0001") == 6)
  969. {
  970. fDelErPrePatRgst();
  971. }
  972. }
  973. }
  974. }
  975. }
  976. function SPMNE04500_onkeydown(obj:Form, e:KeyEventInfo)
  977. {
  978. switch(e.keycode)
  979. {
  980. case 112: // F1
  981. fSetInitReqData();
  982. }
  983. }
  984. function ipt_srchpid_onkeydown(obj:Edit, e:KeyEventInfo)
  985. {
  986. if (e.keycode == 13) // Enter Key
  987. {
  988. obj.updateToDataset();
  989. fGetPrePatMng();
  990. }
  991. }
  992. // 전자인증 하기
  993. function fPrcpSaveSign()
  994. {
  995. //zesf_InitSign(); //인증저장 셋팅..
  996. // 원무 정보 가져오기
  997. fReqERPatPamInfo();
  998. dsf_createDs("ds_paminfo");
  999. ds_paminfo.copyData(ds_inpatpaminfo);
  1000. var sSignBfPrcpConts = lf_getSignBfConts("1", "ds_paminfo", "ds_protocol_prcplist"); // 암호화전 인증저장 처방 데이터
  1001. var sSignBfDiagConts = lf_getSignBfConts("2", "ds_paminfo", "ds_protocol_diaglist"); // 암호화전 인증저장 진단 데이터
  1002. var sSignAfPrcpConts = ""; // 암호화후 인증저장 처방 데이터
  1003. var sSignAfDiagConts = ""; // 암호화후 인증저장 진단 데이터
  1004. var bSignOpt = false;
  1005. dsf_createDs("ds_securelimitdeptlist");
  1006. lf_getHardCDList("N", 282, null, ds_securelimitdeptlist);
  1007. // 응급실환자중 하드코드에 등록되어 있는 과 의사가 로그인 후 처방을 낼 경우에는 인증저장을 한번만 하게 함.(외래와 동일하게 처리)
  1008. var sPD = ds_securelimitdeptlist.lookup("hardcd", sysf_getUserInfo("dutplcecd"), "hardcd");
  1009. if ( sPrcpGenrFlag != "O" && !(sPrcpGenrFlag == "E" && !utlf_isNull(sPD)) ) {
  1010. bSignOpt = true;
  1011. }
  1012. // 입원 또는 응급일 경우 // 20111201 knuh 최원돈
  1013. // 기록/처방 직전 인증저장이 정해진 시간(분 단위, 하드코드 401) 이내이면 인증서를 띄우지 않음(1/2)
  1014. // SMMMO00100.js, MMR01300.js, MMR00100.js, SPMRF05200.js
  1015. // 띄우지 않는 로직
  1016. var ls_emrinptsavetime = lf_getHardCDList("Y", 401, 3);
  1017. var ll_emrinptsavetime = utlf_isNull(ls_emrinptsavetime) ? 0 : parseInt(ls_emrinptsavetime) * -1;
  1018. var sPrcpGenrFlag = "E";
  1019. if ( ( sPrcpGenrFlag == "I"
  1020. || sPrcpGenrFlag == "E")
  1021. && ll_emrinptsavetime < 0
  1022. && sysf_getGlobalVariable("emrinptsavetime") >= utlf_getCurrentDateTime().toDate("YYYYMMDD hhmmss").getAddDate(ll_emrinptsavetime, "m").getDateFormat("YYYYMMDD hhmmss"))
  1023. {
  1024. bSignOpt = false;
  1025. }
  1026. //trace("bSignOpt : " + bSignOpt + ", sysf_getGlobalVariable(emrinptsavetime)" + sysf_getGlobalVariable("emrinptsavetime") + " , ll_emrinptsavetime " + ll_emrinptsavetime + ", ll_emrinptsavetime : " + ll_emrinptsavetime);
  1027. if(!utlf_isNull(sSignBfPrcpConts)) {
  1028. var sUserId = sysf_getUserId();
  1029. sSignAfPrcpConts = lf_saveSign ( sSignBfPrcpConts, sUserId, bSignOpt); //처방인증
  1030. if ( sSignAfPrcpConts != "N" ) {
  1031. if (utlf_isNull( sSignAfPrcpConts )) { return false; }
  1032. bSignOpt = false; //진단에서 또 안띄우기 위해서 false로 수정
  1033. }
  1034. }
  1035. if(!utlf_isNull(sSignBfDiagConts)) {
  1036. sSignAfDiagConts = lf_saveSign ( sSignBfDiagConts, sUserId, bSignOpt); //진단인증
  1037. // trace("sSignAfDiagConts :\n" + sSignBfDiagConts);
  1038. // trace("\nsSignAfDiagConts :\n" + sSignAfDiagConts);
  1039. if ( sSignAfDiagConts != "N") {
  1040. if (utlf_isNull(sSignAfDiagConts)) { return false; }
  1041. }
  1042. }
  1043. // 인증 전 후 데이터 세팅
  1044. ds_send_reqdata.setColumn(0, "signBfPrcpConts", sSignBfPrcpConts);
  1045. ds_send_reqdata.setColumn(0, "signBfDiagConts", sSignBfDiagConts);
  1046. ds_send_reqdata.setColumn(0, "signAfPrcpConts", sSignAfPrcpConts);
  1047. ds_send_reqdata.setColumn(0, "signAfDiagConts", sSignAfDiagConts);
  1048. return true;
  1049. }
  1050. // 응급실 상단 정보 가져오기
  1051. function fReqERPatPamInfo()
  1052. {
  1053. var pid = ds_send_reqdata.getColumn(0, "pid");
  1054. var indd = ds_send_reqdata.getColumn(0, "indd");
  1055. var cretno = ds_send_reqdata.getColumn(0, "cretno");
  1056. var instcd = sysf_getUserInfo("dutplceinstcd");
  1057. var srchdd = utlf_getCurrentDate();
  1058. var callvisityn = "N"
  1059. var param = "E" + "▦" + pid + "▦" + indd + "▦" + cretno + "▦" + instcd + "▦" + srchdd + "▦" + callvisityn ;// 응급실 콜비짓 여부 추가 20100526 LYJ
  1060. // 진짜 상단 정보 세팅 하는 거
  1061. //appf_initPatientInfo(param);
  1062. return fGetPatientInfo(param);
  1063. }
  1064. // 상단 정보 세팅하는 것과 유사한 로직 추가
  1065. function fGetPatientInfo(param, errFlag)
  1066. {
  1067. if( !utlf_isNull(param) && !utlf_isNull(frmf_getScreenID()) ){
  1068. param += "▦" + frmf_getScreenID();
  1069. }
  1070. var objForm = frmf_getViewer("patientInfo");
  1071. var dutplceinstcd = sysf_getUserInfo("dutplceinstcd");
  1072. condarray = param.split("▦");
  1073. errflag = errFlag;
  1074. //처방화면에서 인증저장할때 팝업들의 재로딩을 방지하기 위함
  1075. //lf_broadcastEvent() 함수에서 lgv_sPid, lgv_sLoadingflag를 사용한다.
  1076. lgv_sPid = condarray[1];
  1077. // lgv_sLoadingflag = sLoadingflag;
  1078. lgv_sScreenId = utlf_transNullToEmpty(condarray[condarray.length -1]); //2016.09.13 screenid param
  1079. if (lf_ContainsHardCD("505", sysf_getUserInfo("dutplcecd"))) { // 안내 메세지 제외 부서 2015.06.23 심사팀 제외 이은정 선생님 요청
  1080. lgv_sMsgYn = "N";
  1081. }
  1082. //var bRtn = fGetDisPatientInfo();
  1083. //// function fReqERPatTopInfo() 함수 참고
  1084. dsf_createDsRow("ds_reqdataEr", [
  1085. {col:"pid" , type:"STRING", size:256, val: condarray[1]}
  1086. , {col:"orddd" , type:"STRING", size:256, val: condarray[2]}
  1087. , {col:"cretno" , type:"STRING", size:256, val: condarray[3]}
  1088. , {col:"instcd" , type:"STRING", size:256, val: condarray[4]}
  1089. , {col:"ioflag" , type:"STRING", size:256, val: "E"}
  1090. ]);
  1091. dsf_createDs("ds_inpatpaminfo");
  1092. dsf_createDs("ds_patmaintopinfo");
  1093. dsf_createDs("ds_inpatflaginfo");
  1094. var oParam = {};
  1095. oParam.id = "TRMMO04302";
  1096. oParam.service = "prcpmngtapp.EtcPrcpMngt";
  1097. oParam.method = "reqGetPatTopInfo";
  1098. oParam.inds = "req=" + "ds_reqdataEr";
  1099. oParam.outds = "ds_inpatpaminfo=inpatpaminfo" + " ds_patmaintopinfo=patmaintopinfo" + " ds_inpatflaginfo=inpatflaginfo";
  1100. oParam.async = false;
  1101. oParam.error = (frmf_getParameter("errflag") == "Y") ? false : true;
  1102. oParam.callback = "cf_TRMMO04302"
  1103. oParam.progress = false;
  1104. tranf_submit(oParam);
  1105. return ;
  1106. }
  1107. function cf_TRMMO04302(sSvcId, nErrorCode, sErrorMsg)
  1108. {
  1109. arErrorCode.push(sSvcId, nErrorCode);
  1110. }
  1111. //////////////////////////////////////////// 테스트용 코드
  1112. function TestButton_onclick(obj:Button, e:ClickEventInfo)
  1113. {
  1114. switch (obj.name)
  1115. {
  1116. case "Button00":
  1117. // 약속처방, 진단 가져오기
  1118. fGetProtocolPrcpDiagList();
  1119. // 전자인증
  1120. var bRtn = fPrcpSaveSign();
  1121. alert((bRtn ? "전자인증 성공": "전자인증 실패"));
  1122. break;
  1123. case "Button01":
  1124. // 약속처방, 진단 가져오기
  1125. fGetProtocolPrcpDiagList();
  1126. break;
  1127. case "Button02":
  1128. // 상단 정보 세팅 값 가져오기
  1129. fReqERPatPamInfo();
  1130. dsf_createDs("ds_paminfo");
  1131. ds_paminfo.copyData(ds_inpatpaminfo);
  1132. break;
  1133. case "Button03":
  1134. // 인증서 띄우기
  1135. fShowSignPopup();
  1136. break;
  1137. case "Button04":
  1138. // 응급등록
  1139. fSaveInpt();
  1140. break;
  1141. case "Button05":
  1142. // 처방 등록.
  1143. fSavePrcp();
  1144. break;
  1145. }
  1146. }
  1147. // 인증서 팝업
  1148. function fShowSignPopup()
  1149. {
  1150. var pUid = sysf_getUserInfo("userid");
  1151. var pDbg = null; // 디버그 메시지 안 띄움
  1152. //zesf_InitSign();
  1153. // 인증서 로그인을 한 경우 다시 인증서 비밀번호 팝업이 안 뜨도록
  1154. var bSignOpt = false;
  1155. dsf_createDs("ds_securelimitdeptlist");
  1156. lf_getHardCDList("N", 282, null, ds_securelimitdeptlist);
  1157. // 응급실환자중 하드코드에 등록되어 있는 과 의사가 로그인 후 처방을 낼 경우에는 인증저장을 한번만 하게 함.(외래와 동일하게 처리)
  1158. var sPD = ds_securelimitdeptlist.lookup("hardcd", sysf_getUserInfo("dutplcecd"), "hardcd");
  1159. if ( sPrcpGenrFlag != "O" && !(sPrcpGenrFlag == "E" && !utlf_isNull(sPD)) ) {
  1160. bSignOpt = true;
  1161. }
  1162. // 입원 또는 응급일 경우 // 20111201 knuh 최원돈
  1163. // 기록/처방 직전 인증저장이 정해진 시간(분 단위, 하드코드 401) 이내이면 인증서를 띄우지 않음(1/2)
  1164. // SMMMO00100.js, MMR01300.js, MMR00100.js, SPMRF05200.js
  1165. // 띄우지 않는 로직
  1166. var ls_emrinptsavetime = lf_getHardCDList("Y", 401, 3);
  1167. var ll_emrinptsavetime = utlf_isNull(ls_emrinptsavetime) ? 0 : parseInt(ls_emrinptsavetime) * -1;
  1168. var sPrcpGenrFlag = "E";
  1169. if ( ( sPrcpGenrFlag == "I"
  1170. || sPrcpGenrFlag == "E")
  1171. && ll_emrinptsavetime < 0
  1172. && sysf_getGlobalVariable("emrinptsavetime") >= utlf_getCurrentDateTime().toDate("YYYYMMDD hhmmss").getAddDate(ll_emrinptsavetime, "m").getDateFormat("YYYYMMDD hhmmss"))
  1173. {
  1174. bSignOpt = false;
  1175. }
  1176. //trace(sysf_getGlobalVariable("emrinptsavetime") + "/" + bSignOpt);
  1177. if (bSignOpt)
  1178. {
  1179. if( zesf_LoadKeyAndCert( pUid, pDbg ) == "" ) {
  1180. //return signedData;
  1181. return false;
  1182. }
  1183. else
  1184. {
  1185. sysf_setGlobalVariable("emrinptsavetime", utlf_getCurrentDateTime()); // 인증저장시간 설정
  1186. return true;
  1187. }
  1188. }
  1189. else
  1190. {
  1191. sysf_setGlobalVariable("emrinptsavetime", utlf_getCurrentDateTime()); // 인증저장시간 설정
  1192. return true;
  1193. }
  1194. }
  1195. // 동적으로 그리드 바인딩하기
  1196. function fDynamicGridBind(gridName, dsName)
  1197. {
  1198. var grid = eval(gridName)
  1199. var ds = eval(dsName);
  1200. grid.binddataset = ds ;
  1201. grid.createFormat();
  1202. for (var i = 0; i < ds.getColCount(); i++)
  1203. {
  1204. grid.setCellProperty("Head", i, "text", ds.getColumnInfo(i).name);
  1205. }
  1206. }
  1207. // 개발 운영 모드 확인
  1208. function IsDevMode()
  1209. {
  1210. var systeminstnm = sysf_getUserInfo("systeminstnm");
  1211. if (systeminstnm.indexOf("개인HIS개발") >= 0 )
  1212. {
  1213. return true;
  1214. }
  1215. else
  1216. {
  1217. return false;
  1218. }
  1219. }]]></Script>
  1220. </Form>
  1221. </FDL>