SPPMI02800_상급병실신청관리.xfdl 54 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <FDL version="1.5">
  3. <TypeDefinition url="..\..\..\default_typedef.xml"/>
  4. <Form id="SPPMI02800" position="absolute 0 0 830 305" titletext="상급병실신청 서명관리" onload="SPPMI02800_onload">
  5. <Layouts>
  6. <Layout>
  7. <Button position="absolute 487 278 567 300" id="btn_insert" class="btn4" enable="true" taborder="8" text="신규저장" onclick="btn_insert_onclick"/>
  8. <Button position="absolute 755 278 811 300" id="button3" class="btn4" taborder="11" text="닫기" onclick="button3_onclick"/>
  9. <Button position="absolute 427 278 483 300" id="btn_update" class="btn4" taborder="9" text="수정" onclick="btn_update_onclick"/>
  10. <Button position="absolute 0 278 243 300" id="btn_print" class="btn3" text="입퇴원결정서(상급병실신청서)재출력" style="padding:0 0 0 17;" onclick="btn_print_onclick"/>
  11. <Button position="absolute 683 278 751 300" id="button7" class="btn4" taborder="10" text="초기화" onclick="button7_onclick"/>
  12. <Button position="absolute 244 278 425 300" id="button5" class="btn3" text="상급병실신청서 OCR 출력" style="padding:0 0 0 17;" onclick="button5_onclick"/>
  13. <Shape id="line6" linetype="horizontal" class="line_2" position="absolute 0 124 330 130"/>
  14. <Static id="caption5" text="상급병실신청서명" class="tit_2" position="absolute 0 2 130 19"/>
  15. <Static id="caption1" text="환자명" class="cell_1" position="absolute 170 24 233 47" style="padding:0 0 0 4;"/>
  16. <Static id="caption13" text="환자번호" class="cell_1" position="absolute 0 24 70 47" style="padding:0 0 0 4;"/>
  17. <Edit id="ipt_pid" taborder="12" position="absolute 72 26 167 45"/>
  18. <Shape id="line2" class="line_1" position="absolute 0 19 330 25" style="strokepen:3 solid #33bbbbff;"/>
  19. <Shape id="line11" linetype="horizontal" class="line_2" position="absolute 0 250 330 256"/>
  20. <Shape id="line1" linetype="horizontal" class="line_3" position="absolute 1 273 330 279"/>
  21. <Div id="import2" taborder="13" url="pam_pamcomnxp::SPPAO02102_전자서명입력_OCX.xfdl" position="absolute 73 129 330 252" anchor="right bottom" scrollbars="none" dragscrolltype="none"/>
  22. <Static id="caption2" text="서명" class="cell_1" position="absolute 0 128 70 251" style="padding:0 0 0 4;"/>
  23. <Grid id="grd_signlist" taborder="14" binddataset="ds_main_uproomsignlist" useinputpanel="false" position="absolute 335 56 810 275" oncelldblclick="grd_signlist_oncelldblclick">
  24. <Formats>
  25. <Format id="default">
  26. <Columns>
  27. <Column size="0"/>
  28. <Column size="25"/>
  29. <Column size="60"/>
  30. <Column size="0"/>
  31. <Column size="0"/>
  32. <Column size="60"/>
  33. <Column size="46"/>
  34. <Column size="33"/>
  35. <Column size="32"/>
  36. <Column size="60"/>
  37. <Column size="75"/>
  38. <Column size="0"/>
  39. <Column size="100"/>
  40. <Column size="61"/>
  41. <Column size="100"/>
  42. <Column size="0"/>
  43. <Column size="0"/>
  44. <Column size="0"/>
  45. <Column size="0"/>
  46. <Column size="0"/>
  47. <Column size="0"/>
  48. <Column size="0"/>
  49. <Column size="0"/>
  50. <Column size="0"/>
  51. <Column size="0"/>
  52. <Column size="55"/>
  53. <Column size="70"/>
  54. <Column size="55"/>
  55. <Column size="70"/>
  56. </Columns>
  57. <Rows>
  58. <Row size="24" band="head"/>
  59. <Row size="24"/>
  60. </Rows>
  61. <Band id="head">
  62. <Cell text="환자번호"/>
  63. <Cell col="1"/>
  64. <Cell col="2" text="환자명"/>
  65. <Cell col="3" text="입원일자"/>
  66. <Cell col="4" text="병동코드"/>
  67. <Cell col="5" text="병동명"/>
  68. <Cell col="6" text="병실"/>
  69. <Cell col="7" text="인실"/>
  70. <Cell col="8" text="서명"/>
  71. <Cell col="9" text="구분"/>
  72. <Cell col="10" text="시작일자"/>
  73. <Cell col="11" text="등급코드"/>
  74. <Cell col="12" text="등급"/>
  75. <Cell col="13" text="금액"/>
  76. <Cell col="14" text="OCR태그"/>
  77. <Cell col="15" text="instcd"/>
  78. <Cell col="16" text="cretno"/>
  79. <Cell col="17" text="orddeptcd"/>
  80. <Cell col="18" text="ordtype"/>
  81. <Cell col="19" text="seqno"/>
  82. <Cell col="20" text="elctsignkey1"/>
  83. <Cell col="21" text="elctsigncnts1"/>
  84. <Cell col="22" text="elctsignkey1"/>
  85. <Cell col="23" text="elctsigncnts2"/>
  86. <Cell col="24" text="최초등록정보"/>
  87. <Cell col="25" colspan="2" text="최초등록정보" taborder="undefined"/>
  88. <Cell col="27" colspan="2" text="최종수정정보" taborder="undefined"/>
  89. </Band>
  90. <Band id="body">
  91. <Cell text="bind:pid"/>
  92. <Cell col="1" celltype="head" expr="expr:currow + 1"/>
  93. <Cell col="2" style="align:center middle;" text="bind:hngnm"/>
  94. <Cell col="3" style="align:center middle;" text="bind:indd" mask="yyyy-mm-dd"/>
  95. <Cell col="4" style="align:center middle;" text="bind:wardcd"/>
  96. <Cell col="5" style="align:center middle;" text="bind:wardnm"/>
  97. <Cell col="6" style="align:center middle;" text="bind:roomcd"/>
  98. <Cell col="7" style="align:center middle;" text="bind:bedcnt"/>
  99. <Cell col="8" style="align:center middle;" text="bind:signyn"/>
  100. <Cell col="9" displaytype="combo" edittype="combo" style="align:center middle;" text="bind:ocrtype" enable="false"/>
  101. <Cell col="10" displaytype="date" style="align:center middle;" text="bind:fromdd" mask="yyyy-MM-dd" calendardisplaynulltype="none"/>
  102. <Cell col="11" text="bind:roomgrdecd"/>
  103. <Cell col="12" text="bind:gradenm"/>
  104. <Cell col="13" displaytype="expr:utlf_isNull(extrapay) ? 'none' : 'normal'" style="align:right middle;" text="bind:extrapay" mask="#,###"/>
  105. <Cell col="14" text="bind:ocrtag"/>
  106. <Cell col="15" text="bind:instcd"/>
  107. <Cell col="16" text="bind:cretno"/>
  108. <Cell col="17" text="bind:orddeptcd"/>
  109. <Cell col="18" text="bind:ordtype"/>
  110. <Cell col="19" text="bind:seqno"/>
  111. <Cell col="20" text="bind:elctsignkey1"/>
  112. <Cell col="21" text="bind:elctsigncnts1"/>
  113. <Cell col="22" text="bind:elctsignkey2"/>
  114. <Cell col="23" text="bind:elctsigncnts2"/>
  115. <Cell col="24" text="bind:fstrgstrid"/>
  116. <Cell col="25" style="align:center middle;" text="bind:fstrgstrnm"/>
  117. <Cell col="26" displaytype="date" style="align:center middle;" text="bind:fstrgstdt" mask="yyyy-MM-dd" calendardisplaynulltype="none"/>
  118. <Cell col="27" style="align:center middle;" text="bind:lastupdtrnm"/>
  119. <Cell col="28" displaytype="date" style="align:center middle;" text="bind:lastupdtdt" mask="yyyy-MM-dd" calendardisplaynulltype="none"/>
  120. </Band>
  121. </Format>
  122. </Formats>
  123. </Grid>
  124. <Button id="button1" taborder="17" text="서명" class="btn2" position="absolute 73 255 115 274"/>
  125. <Button id="button4" taborder="18" text="서명" class="btn2" position="absolute 236 255 278 274"/>
  126. <MaskEdit id="input2" taborder="19" mask="yyyy-mm-dd" position="absolute 72 52 167 71" style="align:left middle;"/>
  127. <Static id="caption3" text="시작일자" class="cell_1" position="absolute 170 50 233 73" style="padding:0 0 0 4;"/>
  128. <Static id="caption4" text="입원일자" class="cell_1" position="absolute 0 50 70 73" style="padding:0 0 0 4;"/>
  129. <Static id="caption6" text="병실" class="cell_1" position="absolute 170 76 233 99" style="padding:0 0 0 4;"/>
  130. <Static id="caption7" text="병동" class="cell_1" position="absolute 0 76 70 99" style="padding:0 0 0 4;"/>
  131. <Shape id="line3" linetype="horizontal" class="line_2" position="absolute 0 46 330 52"/>
  132. <Shape id="line4" linetype="horizontal" class="line_2" position="absolute 0 72 330 78"/>
  133. <Static id="caption9" text="신청인" class="cell_1" position="absolute 0 254 70 274"/>
  134. <Static id="caption11" text="관계" class="cell_1" position="absolute 170 254 233 274"/>
  135. <Static id="caption12" position="absolute 120 257 165 272" style="background:#ecf7fcff;border:1 solid #999999ff ;"/>
  136. <Static id="caption14" position="absolute 282 257 327 272" style="background:#ecf7fcff;border:1 solid #999999ff ;"/>
  137. <Edit id="input5" taborder="22" position="absolute 236 26 331 45"/>
  138. <MaskEdit id="input6" taborder="23" mask="yyyy-mm-dd" position="absolute 236 52 331 71" style="align:left middle;"/>
  139. <Edit id="input7" taborder="24" position="absolute 72 78 167 97"/>
  140. <CheckBox id="checkbox1" taborder="25" enable="false" visible="false" position="absolute 12 206 57 226" text="서면" onchanged="checkbox1_onchanged"/>
  141. <Edit id="input9" taborder="26" position="absolute 236 78 331 97"/>
  142. <Edit id="input8" taborder="27" position="absolute 236 104 331 123"/>
  143. <Static id="caption15" text="구분" class="cell_1" position="absolute 0 102 70 125" style="padding:0 0 0 4;"/>
  144. <Static id="caption17" text="OCRTAG" class="cell_1" position="absolute 170 102 233 125" style="padding:0 0 0 4;"/>
  145. <Shape id="line5" linetype="horizontal" class="line_2" position="absolute 0 98 330 104"/>
  146. <Combo id="combo1" taborder="28" codecolumn="codecolumn" datacolumn="datacolumn" position="absolute 73 104 168 123" onitemchanged="combo1_onitemchanged">
  147. <Dataset id="innerdataset">
  148. <ColumnInfo>
  149. <Column id="codecolumn"/>
  150. <Column id="datacolumn"/>
  151. </ColumnInfo>
  152. <Rows>
  153. <Row>
  154. <Col id="codecolumn">E</Col>
  155. <Col id="datacolumn">전자서명</Col>
  156. </Row>
  157. <Row>
  158. <Col id="codecolumn">P</Col>
  159. <Col id="datacolumn">서면서명</Col>
  160. </Row>
  161. <Row>
  162. <Col id="codecolumn">S</Col>
  163. <Col id="datacolumn">전자동의</Col>
  164. </Row>
  165. </Rows>
  166. </Dataset>
  167. </Combo>
  168. <Div id="grp" taborder="29" position="absolute 335 20 810 52" class="div_SA2">
  169. <Layouts>
  170. <Layout>
  171. <Edit id="input1" taborder="0" position="absolute 85 6 168 25"/>
  172. <Button id="button2" taborder="1" text="조회" class="btn1" position="absolute 404 5 460 27" onclick="grp_button2_onclick"/>
  173. <Edit id="input3" taborder="2" position="absolute 77 6 172 25" onkeydown="grp_input3_onkeydown"/>
  174. <Calendar id="input4" taborder="3" position="absolute 268 6 368 25" dateformat="yyyy-MM-dd" value="null" autoselect="true" autoskip="true" style="align:center middle;"/>
  175. <Static id="caption8" text="환자번호" class="search_name" position="absolute 14 10 94 22"/>
  176. <Static id="caption10" text="입원일자" class="search_name" position="absolute 199 10 279 22"/>
  177. </Layout>
  178. </Layouts>
  179. </Div>
  180. </Layout>
  181. </Layouts>
  182. <Objects>
  183. <Dataset id="ds_init_PK018list" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  184. <ColumnInfo>
  185. <Column id="cdid" type="STRING" size="256"/>
  186. <Column id="cdnm" type="STRING" size="256"/>
  187. </ColumnInfo>
  188. </Dataset>
  189. <Dataset id="ds_send" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  190. <ColumnInfo>
  191. <Column id="pid" type="STRING" size="256"/>
  192. <Column id="indd" type="STRING" size="256"/>
  193. <Column id="elctsignkey" type="STRING" size="256"/>
  194. <Column id="elctsigncnts" type="STRING" size="256"/>
  195. </ColumnInfo>
  196. <Rows>
  197. <Row>
  198. <Col id="pid"/>
  199. <Col id="indd"/>
  200. <Col id="elctsignkey"/>
  201. <Col id="elctsigncnts"/>
  202. </Row>
  203. </Rows>
  204. </Dataset>
  205. <Dataset id="ds_main_uproomsignlist" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  206. <ColumnInfo>
  207. <Column id="instcd" type="STRING" size="256" sumtext="기관코드"/>
  208. <Column id="pid" type="STRING" size="256" sumtext="환자등록번호"/>
  209. <Column id="indd" type="STRING" size="256" sumtext="입원일자"/>
  210. <Column id="cretno" type="STRING" size="256" sumtext="생성번호"/>
  211. <Column id="seqno" type="STRING" size="256" sumtext="생성번호"/>
  212. <Column id="fromdd" type="STRING" size="256" sumtext="시작일자"/>
  213. <Column id="elctsignkey1" type="STRING" size="256" sumtext="서명키"/>
  214. <Column id="elctsigncnts1" type="STRING" size="256" sumtext="서명카운터"/>
  215. <Column id="elctsignkey2" type="STRING" size="256" sumtext="본인키"/>
  216. <Column id="elctsigncnts2" type="STRING" size="256" sumtext="본인카운터"/>
  217. <Column id="hngnm" type="STRING" size="256" sumtext="환자성명"/>
  218. <Column id="wardnm" type="STRING" size="256" sumtext="병동"/>
  219. <Column id="wardcd" type="STRING" size="256" sumtext="병동"/>
  220. <Column id="roomcd" type="STRING" size="256" sumtext="병실"/>
  221. <Column id="gradenm" type="STRING" size="256" sumtext="등급"/>
  222. <Column id="roomgrdecd" type="STRING" size="256" sumtext="병실"/>
  223. <Column id="extrapay" type="STRING" size="256" sumtext="실료차"/>
  224. <Column id="signyn" type="STRING" size="256" sumtext="서명여부"/>
  225. <Column id="fstrgstrid" type="STRING" size="256" sumtext="최초등록자ID"/>
  226. <Column id="fstrgstrnm" type="STRING" size="256" sumtext="최초등록자명"/>
  227. <Column id="fstrgstdt" type="STRING" size="256" sumtext="최초등록일시"/>
  228. <Column id="lastupdtrnm" type="STRING" size="256" sumtext="최종수정자명"/>
  229. <Column id="lastupdtdt" type="STRING" size="256" sumtext="최종수정일시"/>
  230. <Column id="ocrtype" type="STRING" size="256" sumtext="서식구분"/>
  231. <Column id="ocrtag" type="STRING" size="256" sumtext="OCRTAG"/>
  232. <Column id="bedcnt" type="STRING" size="256" sumtext="병상수"/>
  233. </ColumnInfo>
  234. </Dataset>
  235. <Dataset id="ds_main_signinfo" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  236. <ColumnInfo>
  237. <Column id="instcd" type="STRING" size="256" sumtext="기관코드"/>
  238. <Column id="pid" type="STRING" size="256" sumtext="환자등록번호"/>
  239. <Column id="indd" type="STRING" size="256" sumtext="입원일자"/>
  240. <Column id="cretno" type="STRING" size="256" sumtext="생성번호"/>
  241. <Column id="ordtype" type="STRING" size="256" sumtext="진료구분"/>
  242. <Column id="seqno" type="STRING" size="256" sumtext="생성번호"/>
  243. <Column id="fromdd" type="STRING" size="256" sumtext="시작일자"/>
  244. <Column id="elctsignkey1" type="STRING" size="256" sumtext="서명키"/>
  245. <Column id="elctsigncnts1" type="STRING" size="256" sumtext="서명카운터"/>
  246. <Column id="elctsignkey2" type="STRING" size="256" sumtext="본인키"/>
  247. <Column id="elctsigncnts2" type="STRING" size="256" sumtext="본인카운터"/>
  248. <Column id="hngnm" type="STRING" size="256" sumtext="환자성명"/>
  249. <Column id="wardnm" type="STRING" size="256" sumtext="병동"/>
  250. <Column id="wardcd" type="STRING" size="256" sumtext="병동"/>
  251. <Column id="roomcd" type="STRING" size="256" sumtext="병실"/>
  252. <Column id="elctappsignyn1" type="STRING" size="256"/>
  253. <Column id="elctappsignyn2" type="STRING" size="256"/>
  254. <Column id="papersignyn" type="STRING" size="256"/>
  255. <Column id="gradenm" type="STRING" size="256" sumtext="등급"/>
  256. <Column id="roomgrdecd" type="STRING" size="256" sumtext="병실"/>
  257. <Column id="extrapay" type="STRING" size="256" sumtext="실료차"/>
  258. <Column id="signyn" type="STRING" size="256" sumtext="서명여부"/>
  259. <Column id="fstrgstrid" type="STRING" size="256" sumtext="최초등록자ID"/>
  260. <Column id="fstrgstrnm" type="STRING" size="256" sumtext="최초등록자명"/>
  261. <Column id="fstrgstdt" type="STRING" size="256" sumtext="최초등록일시"/>
  262. <Column id="lastupdtrnm" type="STRING" size="256" sumtext="최종수정자명"/>
  263. <Column id="lastupdtdt" type="STRING" size="256" sumtext="최종수정일시"/>
  264. <Column id="ocrtype" type="STRING" size="256" sumtext="서식구분"/>
  265. <Column id="ocrtag" type="STRING" size="256" sumtext="OCRTAG"/>
  266. <Column id="bedcnt" type="STRING" size="256" sumtext="병상수"/>
  267. <Column id="updateflag" type="STRING" size="256"/>
  268. <Column id="orddd" type="STRING" size="256"/>
  269. <Column id="flag" type="STRING" size="256"/>
  270. <Column id="formcd" type="STRING" size="256"/>
  271. </ColumnInfo>
  272. <Rows>
  273. <Row>
  274. <Col id="instcd"/>
  275. <Col id="pid"/>
  276. <Col id="indd"/>
  277. <Col id="cretno"/>
  278. <Col id="fromdd"/>
  279. <Col id="hngnm"/>
  280. <Col id="elctsignkey1">-</Col>
  281. <Col id="elctsigncnts1">-</Col>
  282. <Col id="elctsignkey2">-</Col>
  283. <Col id="elctsigncnts2">-</Col>
  284. <Col id="wardnm"/>
  285. <Col id="roomcd"/>
  286. <Col id="elctappsignyn1"/>
  287. <Col id="elctappsignyn2"/>
  288. <Col id="wardcd"/>
  289. <Col id="seqno"/>
  290. <Col id="roomgrdecd"/>
  291. <Col id="papersignyn"/>
  292. <Col id="fstrgstrid"/>
  293. <Col id="fstrgstdt"/>
  294. <Col id="ocrtag"/>
  295. <Col id="ocrtype"/>
  296. <Col id="bedcnt"/>
  297. </Row>
  298. </Rows>
  299. </Dataset>
  300. <Dataset id="ds_init_prncd" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false"/>
  301. <Dataset id="ds_hidden_rsltflag_indeciprint" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  302. <ColumnInfo>
  303. <Column id="indd" type="STRING" size="256" sumtext="입원일자"/>
  304. <Column id="roomcd" type="STRING" size="256" sumtext="병실코드"/>
  305. <Column id="wardcd" type="STRING" size="256" sumtext="병동코드"/>
  306. <Column id="wardnm" type="STRING" size="256" sumtext="병동명"/>
  307. <Column id="orddeptcd" type="STRING" size="256" sumtext="진료과코드"/>
  308. <Column id="orddeptnm" type="STRING" size="256" sumtext="진료과명"/>
  309. <Column id="orddrid" type="STRING" size="256" sumtext="주치의id"/>
  310. <Column id="orddrnm" type="STRING" size="256" sumtext="주치의명"/>
  311. <Column id="pid" type="STRING" size="256" sumtext="환자번호"/>
  312. <Column id="hngnm" type="STRING" size="256" sumtext="환자명"/>
  313. <Column id="rrgstno" type="STRING" size="256" sumtext="주민등록번호"/>
  314. <Column id="hometel" type="STRING" size="256" sumtext="전화번호"/>
  315. <Column id="insukind" type="STRING" size="256" sumtext="환자유형"/>
  316. <Column id="insukindcd" type="STRING" size="256" sumtext="환자유형"/>
  317. <Column id="bedcnt" type="STRING" size="256" sumtext="침상수"/>
  318. <Column id="diffamt" type="STRING" size="256" sumtext="차액"/>
  319. <Column id="inrgstid" type="STRING" size="256" sumtext="입원등록자id"/>
  320. <Column id="inrgstnm" type="STRING" size="256" sumtext="입원등록자명"/>
  321. <Column id="diagnm" type="STRING" size="256" sumtext="병명"/>
  322. <Column id="instcd" type="STRING" size="256" sumtext="기관코드"/>
  323. <Column id="cretno" type="STRING" size="256" sumtext="생성번호"/>
  324. </ColumnInfo>
  325. </Dataset>
  326. <Dataset id="ds_hidden_rsltflag_patappinfo1" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  327. <ColumnInfo>
  328. <Column id="pid" type="STRING" size="256" sumtext="환자번호"/>
  329. <Column id="hngnm" type="STRING" size="256" sumtext="환자명"/>
  330. <Column id="rrgstno1" type="STRING" size="256" sumtext="주민번호1"/>
  331. <Column id="rrgstno2" type="STRING" size="256" sumtext="주빈번호2"/>
  332. <Column id="choiflag" type="STRING" size="256" sumtext="신청구분"/>
  333. <Column id="ordtype" type="STRING" size="256" sumtext="진료형태"/>
  334. <Column id="orddd" type="STRING" size="256" sumtext="입원/진료일"/>
  335. <Column id="orddeptcd" type="STRING" size="256" sumtext="진료과"/>
  336. <Column id="orddrid" type="STRING" size="256" sumtext="주치의"/>
  337. <Column id="specordyn" type="STRING" size="256" sumtext="선택여부"/>
  338. <Column id="fromdd" type="STRING" size="256" sumtext="시작일"/>
  339. <Column id="rsrvdd" type="STRING" size="256" sumtext="예약일"/>
  340. <Column id="rsrvrgstflag" type="STRING" size="256" sumtext="예약등록여부"/>
  341. <Column id="elctappdd" type="STRING" size="256" sumtext="전자신청일자"/>
  342. <Column id="elctappsignkey" type="STRING" size="256" sumtext="전자신청서명키"/>
  343. <Column id="elctappsigncnts" type="STRING" size="256" sumtext="전자신청서명내용"/>
  344. <Column id="elctapprelakey" type="STRING" size="256" sumtext="전자신청관계키"/>
  345. <Column id="elctapprelacnts" type="STRING" size="256" sumtext="전자신청관계내용"/>
  346. <Column id="lmcd0" type="STRING" size="256" sumtext="과코드0"/>
  347. <Column id="lmdrid10" type="STRING" size="256" sumtext="과의사1"/>
  348. <Column id="lmdrid20" type="STRING" size="256" sumtext="과의사2"/>
  349. <Column id="lmdrid30" type="STRING" size="256" sumtext="과의사3"/>
  350. <Column id="lmspecyn" type="STRING" size="256" sumtext="과의사선택여부"/>
  351. <Column id="lmcd1" type="STRING" size="256" sumtext="과코드1"/>
  352. <Column id="lmdrid11" type="STRING" size="256" sumtext="과의사1"/>
  353. <Column id="lmdrid21" type="STRING" size="256" sumtext="과의사2"/>
  354. <Column id="lmdrid31" type="STRING" size="256" sumtext="과의사3"/>
  355. <Column id="lmspecyn" type="STRING" size="256" sumtext="과의사선택여부"/>
  356. <Column id="lmcd2" type="STRING" size="256" sumtext="과코드2"/>
  357. <Column id="lmdrid12" type="STRING" size="256" sumtext="과의사1"/>
  358. <Column id="lmdrid22" type="STRING" size="256" sumtext="과의사2"/>
  359. <Column id="lmdrid32" type="STRING" size="256" sumtext="과의사3"/>
  360. <Column id="lmspecyn" type="STRING" size="256" sumtext="과의사선택여부"/>
  361. <Column id="lmcd3" type="STRING" size="256" sumtext="과코드3"/>
  362. <Column id="lmdrid13" type="STRING" size="256" sumtext="과의사1"/>
  363. <Column id="lmdrid23" type="STRING" size="256" sumtext="과의사2"/>
  364. <Column id="lmdrid33" type="STRING" size="256" sumtext="과의사3"/>
  365. <Column id="lmspecyn" type="STRING" size="256" sumtext="과의사선택여부"/>
  366. <Column id="lmcd4" type="STRING" size="256" sumtext="과코드4"/>
  367. <Column id="lmdrid14" type="STRING" size="256" sumtext="과의사1"/>
  368. <Column id="lmdrid24" type="STRING" size="256" sumtext="과의사2"/>
  369. <Column id="lmdrid34" type="STRING" size="256" sumtext="과의사3"/>
  370. <Column id="lmspecyn" type="STRING" size="256" sumtext="과의사선택여부"/>
  371. <Column id="lmcd5" type="STRING" size="256" sumtext="과코드5"/>
  372. <Column id="lmdrid15" type="STRING" size="256" sumtext="과의사1"/>
  373. <Column id="lmdrid25" type="STRING" size="256" sumtext="과의사2"/>
  374. <Column id="lmdrid35" type="STRING" size="256" sumtext="과의사3"/>
  375. <Column id="lmspecyn" type="STRING" size="256" sumtext="과의사선택여부"/>
  376. <Column id="lmcd6" type="STRING" size="256" sumtext="과코드6"/>
  377. <Column id="lmdrid16" type="STRING" size="256" sumtext="과의사1"/>
  378. <Column id="lmdrid26" type="STRING" size="256" sumtext="과의사2"/>
  379. <Column id="lmdrid36" type="STRING" size="256" sumtext="과의사3"/>
  380. <Column id="lmspecyn" type="STRING" size="256" sumtext="과의사선택여부"/>
  381. <Column id="hospnm" type="STRING" size="256" sumtext="병원명"/>
  382. <Column id="elctsignkey1" type="STRING" size="256" sumtext="전자신청서명키"/>
  383. <Column id="elctsigncnts1" type="STRING" size="256" sumtext="전자신청서명내용"/>
  384. <Column id="elctsignkey2" type="STRING" size="256" sumtext="전자신청관계키"/>
  385. <Column id="elctsigncnts2" type="STRING" size="256" sumtext="전자신청관계내용"/>
  386. <Column id="wardnm" type="STRING" size="256" sumtext="병동명"/>
  387. <Column id="roomcd" type="STRING" size="256" sumtext="병실명"/>
  388. <Column id="bedcnt" type="STRING" size="256" sumtext="병상수"/>
  389. <Column id="extrapay" type="STRING" size="256" sumtext="병실차액"/>
  390. <Column id="fromdd" type="STRING" size="256" sumtext="시작일자"/>
  391. </ColumnInfo>
  392. </Dataset>
  393. <Dataset id="ds_hidden_autinsuinfo" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  394. <ColumnInfo>
  395. <Column id="hospnm" type="STRING" size="256" sumtext="병원명"/>
  396. <Column id="auttel" type="STRING" size="256" sumtext="자보담당자번호"/>
  397. </ColumnInfo>
  398. </Dataset>
  399. </Objects>
  400. <Bind>
  401. <BindItem id="item0" compid="ipt_pid" propid="value" datasetid="ds_main_signinfo" columnid="pid"/>
  402. <BindItem id="item1" compid="input5" propid="value" datasetid="ds_main_signinfo" columnid="hngnm"/>
  403. <BindItem id="item2" compid="input2" propid="value" datasetid="ds_main_signinfo" columnid="indd"/>
  404. <BindItem id="item3" compid="input6" propid="value" datasetid="ds_main_signinfo" columnid="fromdd"/>
  405. <BindItem id="item4" compid="input7" propid="value" datasetid="ds_main_signinfo" columnid="wardnm"/>
  406. <BindItem id="item5" compid="input9" propid="value" datasetid="ds_main_signinfo" columnid="roomcd"/>
  407. <BindItem id="item6" compid="combo1" propid="value" datasetid="ds_main_signinfo" columnid="ocrtype"/>
  408. <BindItem id="item7" compid="input8" propid="value" datasetid="ds_main_signinfo" columnid="ocrtag"/>
  409. <BindItem id="item8" compid="checkbox1" propid="value" datasetid="ds_main_signinfo" columnid="papersignyn"/>
  410. <BindItem id="item9" compid="grp.input3" propid="value" datasetid="ds_send" columnid="pid"/>
  411. <BindItem id="item10" compid="grp.input4" propid="value" datasetid="ds_send" columnid="indd"/>
  412. </Bind>
  413. <Script type="xscript4.0"><![CDATA[/***************************************************************************************
  414. * System Name :
  415. * Job Name :
  416. * Creator :
  417. * Make Date : 2016-05-24
  418. * Description :
  419. *---------------------------------------------------------------------------------------
  420. * Modify Date Modifier Modify Description
  421. *---------------------------------------------------------------------------------------
  422. * 2016-05-24 Live Converter TF->XP
  423. *
  424. *---------------------------------------------------------------------------------------
  425. ****************************************************************************************/
  426. //=======================================================================================
  427. // Lib Include
  428. //---------------------------------------------------------------------------------------
  429. include 'com_commonxp::comm_main.xjs';
  430. include 'emr_prcpmngtxp::MMOCommon.xjs';
  431. include 'pam_pamcomnxp::PAM.xjs';
  432. include 'pam_pamcomnxp::PAM001.xjs';
  433. var arErrorCode = new HashArray();
  434. //=======================================================================================
  435. // Local methods
  436. //---------------------------------------------------------------------------------------
  437. /****************************************************************************************
  438. * Argument :
  439. * Description : 초기화
  440. ****************************************************************************************/
  441. function fInit(){
  442. // 원무공통코드조회
  443. pamfGetCodeList([{ dsNm: 'ds_init_PK018list', cdGrpId: 'PK018' }]);
  444. // 인스턴스 초기화
  445. ds_send.clearData();
  446. ds_send.addRow();
  447. ds_main_uproomsignlist.clearData();
  448. ds_main_uproomsignlist.addRow();
  449. ds_main_signinfo.clearData();
  450. ds_main_signinfo.addRow();
  451. // 신청인 서명여부 표시
  452. fsign_chk();
  453. // 관계 서명여부 표시
  454. fsign_Rely_chk();
  455. // 버튼 제어
  456. btn_update.enable = false;
  457. btn_insert.enable = false;
  458. // 싸인패드 초기화
  459. import2.fsignpad_init();
  460. // 포커스
  461. grp.input1.setFocus();
  462. // 개인정보이용동의서 출력을 위한 서식코드 취득
  463. lf_reqHardCodeInfo(ds_init_prncd, '5604');
  464. // 부모창에서 넘겨진 파라미터 검증
  465. if(frmf_checkOpener()){
  466. var pid = utlf_transNullToEmpty(opener.frmf_getParameter('SPZHA20101_PARM_PID'));
  467. var indd = utlf_transNullToEmpty(opener.frmf_getParameter('SPZHA20101_PARM_INDD'));
  468. var autoflag = utlf_transNullToEmpty(opener.frmf_getParameter('SPZHA20101_PARM_AUTOFLAG'));
  469. ds_send.setColumn(0, 'pid', pid);
  470. ds_send.setColumn(0, 'indd', indd);
  471. // 차트번호가 존재하는 경우에만 조회실시
  472. if(pid != ''){
  473. // 초기조회
  474. fGetUpRoomSignList();
  475. // 자동실시인 경우에만 처리
  476. if(autoflag == 'Y'){
  477. // 검색결과가 1건 + 서명 N 인경우 자동으로 설정
  478. if(grd_signlist.rowcount == 1){
  479. // 전자동의서 기본출력 처리 by 조중래 20151104
  480. var extObj = new ExtCommon();
  481. if(ds_init_PK018list.getColumn(ds_init_PK018list.findRow('cdid', extObj.getIPAddress()), 'cdnm') == 'Y'
  482. && sysf_messageBox('상급병실신청서', 'Q017') == '6'){
  483. // 정보 설정
  484. fSetSignInfo();
  485. // 구분설정 S:전자동의서
  486. ds_main_signinfo.setColumn(0, 'ocrtype', 'S');
  487. setOCRType();
  488. // 자동저장
  489. fSave('I');
  490. }
  491. }
  492. }
  493. }
  494. }
  495. }
  496. /****************************************************************************************
  497. * Argument :
  498. * Description : 서명유무 체크
  499. ****************************************************************************************/
  500. function fsign_chk(){
  501. var appsigncnts = utlf_transNullToEmpty(ds_main_signinfo.getColumn(0, 'elctsignkey1'));
  502. if(appsigncnts == ''){
  503. caption12.style.backgroundColor = '#cce8ff';
  504. }
  505. else{
  506. caption12.style.backgroundColor = '#ff0000';
  507. }
  508. }
  509. /****************************************************************************************
  510. * Argument :
  511. * Description : 신청인 서명확인
  512. ****************************************************************************************/
  513. function fsign_confirm(){
  514. var flag = ds_main_signinfo.getColumn(0, 'elctappsignyn1');
  515. if(flag == 'Y'){
  516. // 전자서명 저장
  517. import2.fsignpad_save();
  518. ds_main_signinfo.setColumn(0, 'elctsignkey1', import2.ds_sign.getColumn(0, 'elctsignkey'));
  519. ds_main_signinfo.setColumn(0, 'elctsigncnts1', import2.ds_sign.getColumn(0, 'elctsigncnts'));
  520. // 전자서명 싸인패드에 표시
  521. import2.fsignpad_view(ds_main_signinfo.getColumn(0, 'elctsignkey1'), ds_main_signinfo.getColumn(0, 'elctsigncnts1'));
  522. // 서명유무 체크
  523. fsign_chk();
  524. return true;
  525. }
  526. else{
  527. sysf_messageBox('신청인 서명이 입력되지 않았습니다.', 'C000');
  528. return false;
  529. }
  530. }
  531. /****************************************************************************************
  532. * Argument :
  533. * Description : 신청인관계 서명
  534. ****************************************************************************************/
  535. function fsign_Rely_req(){
  536. // 서면확인용 버튼 기능 수행
  537. if(!fsign_confirm()){
  538. return;
  539. }
  540. // 신청인관계는 신청인 서명이 존재할 때만 서명 가능함
  541. if(ds_main_signinfo.getColumn(0, 'elctappsignyn1') != 'Y'){
  542. sysf_messageBox('신청인 서명이 입력되지 않았습니다.', 'C000');
  543. return;
  544. }
  545. import2.fsignpad_init();
  546. import2.fsignpad_request(0);
  547. ds_main_signinfo.setColumn(0, 'elctappsignyn2', 'Y');
  548. }
  549. /****************************************************************************************
  550. * Argument :
  551. * Description : 신청인 서명
  552. ****************************************************************************************/
  553. function fsign_req(){
  554. // 상급병실 신청정보가 있을 때만 처리
  555. if(utlf_isNull(ds_main_signinfo.getColumn(0, 'pid'))){
  556. sysf_messageBox('상급병실 신청정보가 선택되지 않았습니다.\r\n오른쪽 리스트에서 해당 정보를 선택한 후 진행하십시요.', 'C000');
  557. return;
  558. }
  559. import2.fsignpad_init();
  560. import2.fsignpad_request(0);
  561. ds_main_signinfo.setColumn(0, 'elctappsignyn1', 'Y');
  562. }
  563. /****************************************************************************************
  564. * Argument :
  565. * Description : 신청인관계 서명확인
  566. ****************************************************************************************/
  567. function fsign_Rely_confirm(){
  568. var flag = ds_main_signinfo.getColumn(0, 'elctappsignyn2');
  569. if(flag == 'Y'){
  570. // 전자서명 저장
  571. import2.fsignpad_save();
  572. ds_main_signinfo.setColumn(0, 'elctsignkey2', import2.ds_sign.getColumn(0, 'elctsignkey'));
  573. ds_main_signinfo.setColumn(0, 'elctsigncnts2', import2.ds_sign.getColumn(0, 'elctsigncnts'));
  574. // 전자서명 싸인패드에 표시
  575. import2.fsignpad_view(ds_main_signinfo.getColumn(0, 'elctsignkey2'), ds_main_signinfo.getColumn(0, 'elctsigncnts2'));
  576. // 서명유무 체크
  577. fsign_Rely_chk();
  578. return true;
  579. }
  580. else{
  581. sysf_messageBox('관계가 입력되지 않았습니다.', 'C000');
  582. return false;
  583. }
  584. }
  585. /****************************************************************************************
  586. * Argument :
  587. * Description : 서명유무 체크
  588. ****************************************************************************************/
  589. function fsign_Rely_chk(){
  590. var apprelacnts = utlf_transNullToEmpty(ds_main_signinfo.getColumn(0, 'elctsignkey2'));
  591. if(apprelacnts == '' || apprelacnts == '-'){
  592. caption14.style.backgroundColor = '#cce8ff';
  593. }
  594. else{
  595. caption14.style.backgroundColor = '#ff0000';
  596. }
  597. }
  598. /****************************************************************************************
  599. * Argument :
  600. * Description : 서면서명체크 제어
  601. ****************************************************************************************/
  602. function setOCRType(){
  603. var ocrtype = utlf_transNullToEmpty(ds_main_signinfo.getColumn(0, 'ocrtype'));
  604. // 전자서명 이외의 경우 버튼제어
  605. if(ocrtype != 'E'){
  606. button1.enable = false;
  607. button4.enable = false;
  608. ds_main_signinfo.setColumn(0, 'elctappsignyn1', '');
  609. ds_main_signinfo.setColumn(0, 'elctsignkey1', '');
  610. ds_main_signinfo.setColumn(0, 'elctsigncnts1', '');
  611. ds_main_signinfo.setColumn(0, 'elctappsignyn2', '');
  612. ds_main_signinfo.setColumn(0, 'elctsignkey2', '');
  613. ds_main_signinfo.setColumn(0, 'elctsigncnts2', '');
  614. fsign_chk();
  615. fsign_Rely_chk();
  616. }
  617. else{
  618. button1.enable = true;
  619. button4.enable = true;
  620. }
  621. }
  622. /****************************************************************************************
  623. * Argument :
  624. * Description : 상급병실신청서OCR서식 재출력
  625. ****************************************************************************************/
  626. function fPrintRmsn(){
  627. var pid = utlf_transNullToEmpty(ds_main_signinfo.getColumn(0, 'pid'));
  628. if(pid == ''){
  629. sysf_messageBox('환자정보가 선택되지 않았습니다.', 'E000');
  630. return;
  631. }
  632. // 구분에 맞춰 폼코드 처리(7:상급병실신청서)
  633. var formcd = ds_init_prncd.getColumn(ds_init_prncd.findRow('cdseqno', '7'), 'hardcd');
  634. var orddd = ds_main_signinfo.getColumn(0, 'indd');
  635. var cretno = ds_main_signinfo.getColumn(0, 'cretno');
  636. var ordtype = ds_main_signinfo.getColumn(0, 'ordtype');
  637. fPerPrintOCR(formcd, pid, orddd, cretno, ordtype, '');
  638. }
  639. /****************************************************************************************
  640. * Argument :
  641. * Description : 상급병실신청 서명정보설정
  642. ****************************************************************************************/
  643. function fSetSignInfo(){
  644. var row = grd_signlist.currentrow;
  645. // 상세정보 설정
  646. ds_main_signinfo.copyRow(0, ds_main_uproomsignlist, row);
  647. // 신규저장 / 수정 버튼제어
  648. if(ds_main_signinfo.getColumn(0, 'signyn') != 'N'){
  649. ds_main_signinfo.setColumn(0, 'updateflag', 'U');
  650. btn_update.enable = true;
  651. btn_insert.enable = false;
  652. }
  653. else{
  654. ds_main_signinfo.setColumn(0, 'updateflag', 'I');
  655. btn_update.enable = false;
  656. btn_insert.enable = true;
  657. }
  658. // 사인표시부 초기화
  659. import2.fsignpad_init();
  660. // 신청인 서명여부 표시
  661. fsign_chk();
  662. // 관계 서명여부 표시
  663. fsign_Rely_chk();
  664. // 구분 제어
  665. setOCRType();
  666. }
  667. /****************************************************************************************
  668. * Argument :
  669. * Description : 상급병실신청리스트 조회
  670. ****************************************************************************************/
  671. function fGetUpRoomSignList(){
  672. if(utlf_isNull(ds_send.getColumn(0, 'pid')) || utlf_isNull(ds_send.getColumn(0, 'indd'))){
  673. sysf_messageBox('환자번호 및 입원일자는 필수입니다.', 'E000');
  674. return;
  675. }
  676. // dsf_createDsRow('ds_req', [
  677. // { col: 'pid', type: 'string', size: 256, val: },
  678. // { col: 'indd', type: 'string', size: 256, val: }
  679. // ], false);
  680. ds_main_uproomsignlist.clearData();
  681. ds_main_uproomsignlist.addRow();
  682. var oParam = {};
  683. oParam.id = "TRPMI02801";
  684. oParam.service = "ipatmngtapp.InRgst";
  685. oParam.method = "reqGetUpRoomSignList";
  686. oParam.inds = "req=ds_send";
  687. oParam.outds = "ds_main_uproomsignlist=resultlist";
  688. oParam.async = false;
  689. //oParam.callback = "cf_TRPMI02801";
  690. tranf_submit(oParam);
  691. btn_update.enable = false;
  692. btn_insert.enable = false;
  693. }
  694. /****************************************************************************************
  695. * Argument :
  696. * Description : 신규저장
  697. ****************************************************************************************/
  698. function fSave(flag){
  699. var value = utlf_transNullToEmpty(ds_main_signinfo.getColumn(0, 'ocrtype'));
  700. if(value == ''){
  701. sysf_messageBox('서식구분은 필수입력입니다.', 'C000');
  702. return;
  703. }
  704. // 관계서명확인용 버튼기능 수행(서면서명/전자동의서 작성의 경우 체크제외)
  705. if(ds_main_signinfo.getColumn(0, 'ocrtype') == 'E' && !fsign_Rely_confirm()){
  706. return;
  707. }
  708. // 신청인 및 관계데이터가 모두 존재할 경우에만 저장처리(서면서명/전자동의서 작성의 경우 체크제외)
  709. if(ds_main_signinfo.getColumn(0, 'ocrtype') == 'E'){
  710. if(utlf_isNull(ds_main_signinfo.getColumn(0, 'elctsignkey1'))
  711. || utlf_isNull(ds_main_signinfo.getColumn(0, 'elctsignkey2'))){
  712. sysf_messageBox('신청인 또는 관계가 입력되지 않았습니다.', 'C000');
  713. return;
  714. }
  715. }
  716. // 전자동의서 체크 실시
  717. if(ds_main_signinfo.getColumn(0, 'ocrtype') == 'S'){
  718. // OCRTAG 등록
  719. // 1. 병동에서 OCR서식을 출력하여 내려온 경우에 수동입력
  720. // 2. 전자동의서를 통한 입력
  721. value = utlf_transNullToEmpty(ds_main_signinfo.getColumn(0, 'ocrtag'));
  722. if(value == ''){
  723. // 서식코드 취득
  724. ds_main_signinfo.setColumn(0, 'formcd', ds_init_prncd.getColumn(ds_init_prncd.findRow('cdseqno', '7'), 'hardcd'));
  725. ds_main_signinfo.setColumn(0, 'orddd', ds_main_signinfo.getColumn(0, 'indd'));
  726. ds_main_signinfo.setColumn(0, 'ordtype', 'I');
  727. ds_main_signinfo.setColumn(0, 'flag', 'U');
  728. // 전자동의서
  729. var ocrtag = utlf_transNullToEmpty(fPrintOcrConsent(ds_main_signinfo));
  730. if(ocrtag == ''){
  731. sysf_messageBox('전자동의서가 정상적으로 처리되지 않았습니다.', 'C000');
  732. return false;
  733. }
  734. else{
  735. ds_main_signinfo.setColumn(0, 'ocrtag', ocrtag);
  736. }
  737. }
  738. // 전자동의서 모듈 혹은 병동에서 내려온 서식등록의 유효성 체크
  739. if(String(ds_main_signinfo.getColumn(0, 'ocrtag')).length != 13){
  740. sysf_messageBox('전자동의서 OCRTAG가 없거나 비정상입니다.\r\n'
  741. + '전자동의서를 다시 저장하거나,병실에서 내려온 신청서의 OCRTAG를 정확히 입력해주십시요.', 'C000');
  742. return false;
  743. }
  744. }
  745. var oParam = {};
  746. oParam.id = "TXPMI02802";
  747. oParam.service = "ipatmngtapp.InRgst";
  748. oParam.method = "reqSetUpRoomSign";
  749. oParam.inds = "req=ds_main_signinfo";
  750. oParam.outds = "ds_main_uproomsignlist=resultlist";
  751. oParam.async = false;
  752. oParam.callback = "callback";
  753. // 신규저장
  754. if(flag == 'I'){
  755. tranf_submit(oParam);
  756. if(arErrorCode.pop("TXPMI02802") > -1){
  757. sysf_messageBox('정상적으로 처리되었습니다.', 'I000');
  758. }
  759. // 신규저장시 창닫기
  760. this.close();
  761. }
  762. // 수정
  763. if(flag == 'U'){
  764. if(arErrorCode.pop("TXPMI02802") > -1){
  765. sysf_messageBox('정상적으로 처리되었습니다.', 'I000');
  766. }
  767. tranf_submit(oParam);
  768. }
  769. btn_insert.enable = false;
  770. btn_update.enable = false;
  771. }
  772. /****************************************************************************************
  773. * Argument :
  774. * Description : 입퇴원결정서 재출력
  775. ****************************************************************************************/
  776. function fPrint(){
  777. var inpt_pid = utlf_transNullToEmpty(ds_main_signinfo.getColumn(0, 'pid'));
  778. // 상급병실 신청정보가 있을 때만 처리
  779. if(inpt_pid == ''){
  780. sysf_messageBox('상급병실 신청정보가 선택되지 않았습니다.'
  781. + '\r\n오른쪽 리스트에서 해당 정보를 선택한 후 진행하십시요.', 'C000');
  782. return;
  783. }
  784. dsf_createDsRow('ds_req', [
  785. { col: 'pid', type: 'string', size: 256, val: '' },
  786. { col: 'indd', type: 'string', size: 256, val: '' },
  787. { col: 'orddeptcd', type: 'string', size: 256, val: '' },
  788. { col: 'ordtype', type: 'string', size: 256, val: '' },
  789. { col: 'insukind', type: 'string', size: 256, val: '' },
  790. { col: 'instcd', type: 'string', size: 256, val: '' },
  791. { col: 'cretno', type: 'string', size: 256, val: '' },
  792. { col: 'wardcd', type: 'string', size: 256, val: '' },
  793. { col: 'roomcd', type: 'string', size: 256, val: '' },
  794. { col: 'roomgrdecd', type: 'string', size: 256, val: '' },
  795. { col: 'fromdd', type: 'string', size: 256, val: '' }
  796. ], false);
  797. ds_req.copyRow(0, ds_main_signinfo, 0, 'instcd=instcd,pid=pid,indd=indd,cretno=cretno,orddeptcd=orddeptcd,wardcd=wardcd,roomcd=roomcd,roomgrdecd=roomgrdecd,fromdd=fromdd');
  798. ds_hidden_rsltflag_indeciprint.clearData();
  799. ds_hidden_rsltflag_indeciprint.addRow();
  800. ds_hidden_rsltflag_patappinfo1.clearData();
  801. ds_hidden_rsltflag_patappinfo1.addRow();
  802. var oParam = {};
  803. oParam.id = "TRPMI01202";
  804. oParam.service = "ipatmngtapp.InRgst";
  805. oParam.method = "reqGetInDeciPrint";
  806. oParam.inds = "req=ds_req";
  807. oParam.outds = "ds_hidden_rsltflag_indeciprint=indeciprint ds_hidden_rsltflag_patappinfo1=patappinfo1";
  808. oParam.async = false;
  809. //oParam.callback = "cf_TRPMI01202";
  810. tranf_submit(oParam);
  811. // 상급병실 신청내역 있을경우 기존 병실정보에 엎어서 출력
  812. dsf_updateColumnId(ds_hidden_rsltflag_patappinfo1, 'lmcd=lmcd0 lmdrid1=lmdrid10 lmdrid2=lmdrid20 lmdrid3=lmdrid30 nmcd=lmcd1 nmdrid1=lmdrid11 '
  813. + 'nmdrid2=lmdrid21 nmdrid3=lmdrid31 nmspecyn=lmspecyn apcd=lmcd2 apdrid1=lmdrid12 apdrid2=lmdrid22 '
  814. + 'apdrid3=lmdrid32 apspecyn=lmspecyn rdcd=lmcd3 rddrid1=lmdrid13 rddrid2=lmdrid23 rddrid3=lmdrid33 '
  815. + 'rdspecyn=lmspecyn rtcd=lmcd4 rtdrid1=lmdrid14 rtdrid2=lmdrid24 rtdrid3=lmdrid34 rtspecyn=lmspecyn '
  816. + 'ancd=lmcd5 andrid1=lmdrid15 andrid2=lmdrid25 andrid3=lmdrid35 anspecyn=lmspecyn npcd=lmcd6 '
  817. + 'npdrid1=lmdrid16 npdrid2=lmdrid26 npdrid3=lmdrid36 npspecyn=lmspecyn');
  818. // 상급병실 신청내역 있을경우 기존 병실정보에 엎어서 출력.
  819. ds_hidden_rsltflag_indeciprint.setColumn(0, 'wardnm', ds_hidden_rsltflag_patappinfo1.getColumn(0, 'wardnm'));
  820. ds_hidden_rsltflag_indeciprint.setColumn(0, 'roomcd', ds_hidden_rsltflag_patappinfo1.getColumn(0, 'roomcd'));
  821. ds_hidden_rsltflag_indeciprint.setColumn(0, 'bedcnt', ds_hidden_rsltflag_patappinfo1.getColumn(0, 'bedcnt'));
  822. ds_hidden_rsltflag_indeciprint.setColumn(0, 'diffamt', ds_hidden_rsltflag_patappinfo1.getColumn(0, 'extrapay'));
  823. ds_hidden_rsltflag_patappinfo1.setColumn(0, 'signimgsign', ds_hidden_rsltflag_patappinfo1.getColumn(0, 'elctappsigncnts'));
  824. ds_hidden_rsltflag_patappinfo1.setColumn(0, 'signimgrela', ds_hidden_rsltflag_patappinfo1.getColumn(0, 'elctapprelacnts'));
  825. // 전과전실 선택진료 사인 추가 2011.11.18 노회식
  826. ds_hidden_rsltflag_patappinfo1.setColumn(0, 'signimgsign1', ds_hidden_rsltflag_patappinfo1.getColumn(0, 'elctsigncnts1'));
  827. ds_hidden_rsltflag_patappinfo1.setColumn(0, 'signimgrela1', ds_hidden_rsltflag_patappinfo1.getColumn(0, 'elctsigncnts2'));
  828. sysf_setGlobalVariable('SPPAO00100_강제출력여부', 'Y', 'p');
  829. //ds_hidden_rsltflag_indeciprint.setColumn(0, 'diagnm', ds_temp.getColumn(0, 'daignm'));
  830. // 공통코드 P0045에서 프린터 명칭과 트레이 호출 - 입퇴원결정서
  831. fGetPrintName();
  832. var printname = sysf_getGlobalVariable('SPPAO00100_P0045_6_nm', 'p');
  833. var printtray = sysf_getGlobalVariable('SPPAO00100_P0045_6_tray', 'p');
  834. // DOM 객체 설정
  835. var objDOM = rptf_createDOM();
  836. rptf_setNodeListToDOM(objDOM, "root/hidden/rsltflag/indeciprint" , ds_hidden_rsltflag_indeciprint);
  837. rptf_setNodeListToDOM(objDOM, "root/hidden/rsltflag/patappinfo1" , ds_hidden_rsltflag_patappinfo1);
  838. // 입퇴원결정서 프린터
  839. if(printname != 'false'){
  840. rptf_exeReportPreview30(['RPPMI01201'], [{ xml_data_XML1: objDOM.documentElement.source }],
  841. "open=1;save=1;directprint=1;printdialog=0;print=1;zoom=0");
  842. }
  843. // 자보환자안내문 출력
  844. if(ds_hidden_rsltflag_indeciprint.getColumn(0, '') == '31' || opener.ds_main_ptin.getColumn(0, 'ptin_insukind') == '31'){
  845. // 공통코드 P0045에서 프린터 명칭과 트레이 호출 - 자보환자안내문
  846. ds_hidden_autinsuinfo.clearData();
  847. ds_hidden_autinsuinfo.addRow();
  848. oParam = {};
  849. oParam.id = "TRPMI01203";
  850. oParam.service = "ipatmngtapp.InRgst";
  851. oParam.method = "reqGetAutInsuInfo";
  852. oParam.inds = "";
  853. oParam.outds = "ds_hidden_autinsuinfo=autinsuinfo";
  854. oParam.async = false;
  855. //oParam.callback = "cf_TRPMI01203";
  856. tranf_submit(oParam);
  857. printname = sysf_getGlobalVariable('SPPAO00100_P0045_100_nm', 'p');
  858. printtray = sysf_getGlobalVariable('SPPAO00100_P0045_100_tray', 'p');
  859. // 디폴트 프린터
  860. if(printname != 'false'){
  861. objDOM = rptf_createDOM();
  862. rptf_setNodeListToDOM(objDOM, "root/hidden/autinsuinfo" , ds_hidden_rsltflag_indeciprint);
  863. rptf_setNodeListToDOM(objDOM, "root/main/ptbs" , opener.ds_main_ptbs);
  864. rptf_exeReportPreview30(['RPPMI01203'], [{ xml_data_XML1: objDOM.documentElement.source }],
  865. "open=1;save=1;directprint=1;printdialog=0;print=1;zoom=0");
  866. }
  867. }
  868. sysf_setGlobalVariable('SPPAO00100_강제출력여부', '', 'p');
  869. }
  870. /**********************************************************************************
  871. * 함수명 : dsf_updateColumnId
  872. * 설 명 : 컬럼 이름을 변경한다, 컬럼명이 없다면 변경하지 못한다
  873. * argument : oDataset - 대상 Dataset
  874. * colNms - 변경할 컬럼 이름
  875. * 사용예시 : 1) dsf_updateColumnId(dataset, "prev_nm1=after_nm1 prev_nm2=after_nm2");
  876. * return Type :
  877. * 작성자 :
  878. **********************************************************************************/
  879. function dsf_updateColumnId(target:Dataset, colNms){
  880. if(utlf_isNull(target) || colNms.length < 1){
  881. return;
  882. }
  883. // 변환 하려고 하는 컬럼명들을 배열로 분리한다
  884. var arr = colNms.split(' ');
  885. var updatecontrol = target.updatecontrol;
  886. if(updatecontrol){
  887. target.updatecontrol = false;
  888. }
  889. target.enableevent = false;
  890. for(var i in arr){
  891. var names = arr[i].split('=');
  892. if(names.length != 2){
  893. break;
  894. }
  895. if(!utlf_isNull(target.getColumnInfo(names[0]))){
  896. target.updateColID(names[0], names[1]);
  897. }
  898. }
  899. if(updatecontrol){
  900. target.updatecontrol = true;
  901. }
  902. target.enableevent = true;
  903. }
  904. //=======================================================================================
  905. // callback
  906. //---------------------------------------------------------------------------------------
  907. function callback(sSvcId, nErrorCode, sErrorMsg){
  908. arErrorCode.push(sSvcId, nErrorCode);
  909. }
  910. //=======================================================================================
  911. // Events
  912. //---------------------------------------------------------------------------------------
  913. /****************************************************************************************
  914. * Argument :
  915. * Description : onload
  916. ****************************************************************************************/
  917. function SPPMI02800_onload(obj:Form, e:LoadEventInfo){
  918. // 폼 초기화
  919. frmf_initForm(obj);
  920. fInit();
  921. }
  922. /****************************************************************************************
  923. * Argument :
  924. * Description : 구분 콤보 아이템 변경 이벤트
  925. ****************************************************************************************/
  926. function combo1_onitemchanged(obj:Combo, e:ItemChangeEventInfo){
  927. setOCRType();
  928. }
  929. /****************************************************************************************
  930. * Argument :
  931. * Description : 체크박스 아이템 클릭 이벤트
  932. ****************************************************************************************/
  933. function checkbox1_onchanged(obj:CheckBox, e:CheckBoxChangeEventInfo){
  934. setOCRType();
  935. }
  936. /****************************************************************************************
  937. * Argument :
  938. * Description : 환자번호 키보드 입력 이벤트
  939. ****************************************************************************************/
  940. function grp_input3_onkeydown(obj:Edit, e:KeyEventInfo){
  941. if(e.keycode == 13){
  942. fGetUpRoomSignList();
  943. }
  944. }
  945. /****************************************************************************************
  946. * Argument :
  947. * Description : 조회 버튼 클릭 이벤트
  948. ****************************************************************************************/
  949. function grp_button2_onclick(obj:Button, e:ClickEventInfo){
  950. fGetUpRoomSignList();
  951. }
  952. /****************************************************************************************
  953. * Argument :
  954. * Description : 조회 버튼 클릭 이벤트
  955. ****************************************************************************************/
  956. function grd_signlist_oncelldblclick(obj:Grid, e:GridClickEventInfo){
  957. fSetSignInfo();
  958. }
  959. /****************************************************************************************
  960. * Argument :
  961. * Description : 입퇴원결정서(상급병실신청서)재출력 버튼 클릭 이벤트
  962. ****************************************************************************************/
  963. function btn_print_onclick(obj:Button, e:ClickEventInfo){
  964. fPrint();
  965. }
  966. /****************************************************************************************
  967. * Argument :
  968. * Description : 상급병실신청서 OCR 출력 버튼 클릭 이벤트
  969. ****************************************************************************************/
  970. function button5_onclick(obj:Button, e:ClickEventInfo){
  971. fPrintRmsn();
  972. }
  973. /****************************************************************************************
  974. * Argument :
  975. * Description : 수정 버튼 클릭 이벤트
  976. ****************************************************************************************/
  977. function btn_update_onclick(obj:Button, e:ClickEventInfo){
  978. fSave('U');
  979. }
  980. /****************************************************************************************
  981. * Argument :
  982. * Description : 신규저장 버튼 클릭 이벤트
  983. ****************************************************************************************/
  984. function btn_insert_onclick(obj:Button, e:ClickEventInfo){
  985. fSave('I');
  986. }
  987. /****************************************************************************************
  988. * Argument :
  989. * Description : 초기화 버튼 클릭 이벤트
  990. ****************************************************************************************/
  991. function button7_onclick(obj:Button, e:ClickEventInfo){
  992. fInit();
  993. }
  994. /****************************************************************************************
  995. * Argument :
  996. * Description : 닫기 버튼 클릭 이벤트
  997. ****************************************************************************************/
  998. function button3_onclick(obj:Button, e:ClickEventInfo){
  999. import2.fsignpad_close();
  1000. this.close();
  1001. }
  1002. ]]></Script>
  1003. </Form>
  1004. </FDL>