SMMMI01000_회진정보관리.xfdl 73 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <FDL version="1.5">
  3. <TypeDefinition url="..\..\..\default_typedef.xml"/>
  4. <Form id="SMMMB08400" position="absolute 0 0 950 700" titletext="회진 관리" oninit="SMMMI01000_oninit" onload="SMMMI01000_onload">
  5. <Layouts>
  6. <Layout>
  7. <Static text="회진 관리" position="absolute 0 0 89 25" id="caption1" class="tit_1"/>
  8. <Div position="absolute 0 20 330 448" id="grp_left" anchor="left top">
  9. <Layouts>
  10. <Layout>
  11. <Static text="회진 이력" position="absolute 0 7 220 23" align="align:left middle;" id="caption6" class="tit_2" anchor="default"/>
  12. <Shape position="absolute 0 23 330 29" linetype="horizontal" id="line2" class="line_10" anchor="default"/>
  13. <Div position="absolute 0 28 330 106" id="roundrect2" type="roundrectangle" anchor="default" class="div_SA2">
  14. <Layouts>
  15. <Layout>
  16. <Static id="Static04" text="진료과 :" class="search_name" position="absolute 4 28 64 48" anchor="default"/>
  17. <Combo id="cmb_orddept" taborder="1" innerdataset="ds_orddept" codecolumn="deptcd" datacolumn="depthngnm" position="absolute 66 28 252 48" anchor="default" onitemchanged="grp_left_roundrect2_cmb_orddept_onitemchanged"/>
  18. <Static id="Static06" text="전문의 :" class="search_name" position="absolute 4 52 64 72" anchor="default"/>
  19. <Combo id="cmb_drid" taborder="2" innerdataset="ds_userlist" codecolumn="userid" datacolumn="usernm" position="absolute 66 52 252 72" anchor="default" onitemchanged="grp_left_roundrect2_cmb_drid_onitemchanged"/>
  20. <Static id="caption2" text="회진일 :" class="search_name" position="absolute 4 5 64 25" anchor="default"/>
  21. <Calendar id="ipt_fromdd" taborder="3" autoselect="true" dateformat="yyyy-MM-dd" position="absolute 66 4 151 24" anchor="default"/>
  22. <Static id="caption3" text="~" position="absolute 154 4 169 24" anchor="default"/>
  23. <Calendar id="ipt_todd" taborder="4" autoselect="true" dateformat="yyyy-MM-dd" position="absolute 167 4 252 24" anchor="default"/>
  24. <Button id="btn_print" taborder="5" text="스케쥴" class="btn6" position="absolute 263 47 324 67" anchor="top right" onclick="grp_left_roundrect2_btn_print_onclick"/>
  25. </Layout>
  26. </Layouts>
  27. </Div>
  28. <Shape position="absolute 253 32 262 97" linetype="vertical" id="line1" anchor="default"/>
  29. <Button position="absolute 263 48 324 68" id="btn_search" class="btn1" text="조회" anchor="default" onclick="grp_left_btn_search_onclick"/>
  30. <Grid id="grd_histtree" taborder="2" binddataset="ds_dr_hist" useinputpanel="false" selecttype="treecell" autofittype="col" treeusecheckbox="false" position="absolute 0 108 330 428" anchor="left top" oncellclick="grp_left_grd_histtree_oncellclick" onrbuttondown="grp_left_grd_histtree_onrbuttondown">
  31. <Formats>
  32. <Format id="default">
  33. <Columns>
  34. <Column size="489"/>
  35. </Columns>
  36. <Rows>
  37. <Row size="24" band="head"/>
  38. <Row size="24"/>
  39. </Rows>
  40. <Band id="head">
  41. <Cell displaytype="normal" text="회진 이력"/>
  42. </Band>
  43. <Band id="body">
  44. <Cell displaytype="tree" edittype="tree" text="bind:displaynm" treestartlevel="1" treelevel="bind:levl" autosizecol="limitmax"/>
  45. </Band>
  46. </Format>
  47. </Formats>
  48. </Grid>
  49. </Layout>
  50. </Layouts>
  51. </Div>
  52. <Div position="absolute 338 20 938 96" id="grp_right_top" anchor="left top right">
  53. <Layouts>
  54. <Layout>
  55. <Static text="회진 정보" position="absolute 0 7 220 23" align="align:left middle;" id="caption3" class="tit_2" anchor="default"/>
  56. <Shape position="absolute 0 23 600 29" linetype="horizontal" id="line5" class="line_10" anchor="left top right"/>
  57. <Button position="absolute 406 3 448 23" id="button1" class="btn2" text="삭제" onclick="grp_right_top_button1_onclick" anchor="top right"/>
  58. <Button position="absolute 451 3 493 23" id="button2" class="btn2" text="신규" onclick="grp_right_top_button2_onclick" anchor="top right"/>
  59. <Button position="absolute 496 3 538 23" id="button7" class="btn2" text="수정" onclick="grp_right_top_button7_onclick" anchor="top right"/>
  60. <Button position="absolute 543 3 599 23" id="btn_Save" class="btn4" text="저장" anchor="top right" onclick="grp_right_top_btn_Save_onclick"/>
  61. <Static id="caption4" text="회진일" class="cell_1" position="absolute 0 28 60 51" anchor="default"/>
  62. <Static id="caption8" text="비고" class="cell_1" position="absolute 312 29 372 76" anchor="default"/>
  63. <TextArea id="txt_rmk" taborder="1" enable="false" position="absolute 375 29 598 76" anchor="left top"/>
  64. <Static id="caption10" text="회진시간" class="cell_1" position="absolute 150 28 210 51" anchor="default"/>
  65. <Calendar id="cal_drdd" taborder="5" autoselect="true" autoskip="true" dateformat="yyyy-MM-dd" onchanged="Div00_Calendar00_onchanged" position="absolute 62 31 147 51" anchor="default" value="null" editformat="yyyy-MM-dd"/>
  66. <Static id="Static00" text="~" position="absolute 255 33 273 50" anchor="default"/>
  67. <MaskEdit id="ipt_fromtm" taborder="7" position="absolute 213 31 253 51" mask="##:##" trimtype="both" type="string" style="align:center middle;" ontextchanged="grp_right_top_ipt_fromtm_ontextchanged" onkillfocus="grp_right_top_ipt_fromtm_onkillfocus" anchor="default"/>
  68. <MaskEdit id="ipt_totm" taborder="8" position="absolute 267 31 307 51" mask="##:##" trimtype="both" type="string" style="align:center middle;" anchor="default"/>
  69. <CheckBox id="chk_wardpat" taborder="9" text="Ward" value="N" truevalue="Y" falsevalue="N" position="absolute 63 56 123 76" anchor="default"/>
  70. <Static id="caption00" text="포함환자" class="cell_1" position="absolute 0 53 60 76" anchor="default"/>
  71. <CheckBox id="chk_erpat" taborder="10" text="ER" value="N" truevalue="Y" falsevalue="N" position="absolute 125 56 178 76" anchor="default"/>
  72. <CheckBox id="chk_icupat" taborder="11" text="ICU" value="N" truevalue="Y" falsevalue="N" position="absolute 179 56 231 76" anchor="default"/>
  73. <CheckBox id="chk_cstpat" taborder="12" text="Consult" value="N" truevalue="Y" falsevalue="N" position="absolute 237 56 302 76" anchor="default"/>
  74. </Layout>
  75. </Layouts>
  76. </Div>
  77. <Div position="absolute 338 100 938 288" id="grp_right_middle" anchor="left top right">
  78. <Layouts>
  79. <Layout>
  80. <Static text="회진 스텝" position="absolute 0 7 86 27" align="align:left middle;" id="caption7" class="tit_2" anchor="default"/>
  81. <Shape position="absolute 0 23 600 29" linetype="horizontal" id="line3" class="line_10" anchor="left top right"/>
  82. <Button position="absolute 543 3 599 23" id="btn_Save" class="btn4" text="저장" anchor="top right" onclick="grp_right_middle_btn_Save_onclick"/>
  83. <Button position="absolute 496 3 538 23" id="button5" class="btn2" text="삭제" onclick="grp_right_middle_button5_onclick" anchor="top right"/>
  84. <Button position="absolute 451 3 493 23" id="button11" class="btn2" text="추가" onclick="grp_right_middle_button11_onclick" anchor="top right"/>
  85. <Grid position="absolute 0 28 600 187" id="grd_drstafflist" binddataset="ds_dr_staff" autofittype="col" anchor="left top right" selecttype="row" onrbuttondown="grp_right_middle_grd_drstafflist_onrbuttondown">
  86. <Formats>
  87. <Format id="default">
  88. <Columns>
  89. <Column size="25" band="left"/>
  90. <Column size="25"/>
  91. <Column size="90"/>
  92. <Column size="60"/>
  93. <Column size="80"/>
  94. <Column size="100"/>
  95. <Column size="195"/>
  96. </Columns>
  97. <Rows>
  98. <Row size="24" band="head"/>
  99. <Row size="24"/>
  100. </Rows>
  101. <Band id="head">
  102. <Cell/>
  103. <Cell col="1" displaytype="checkbox" edittype="checkbox"/>
  104. <Cell col="2" displaytype="normal" text="구분"/>
  105. <Cell col="3" displaytype="normal" text="사번"/>
  106. <Cell col="4" displaytype="normal" text="사용자명"/>
  107. <Cell col="5" text="핸드폰"/>
  108. <Cell col="6" text="비고"/>
  109. </Band>
  110. <Band id="body">
  111. <Cell celltype="head" text="expr:currow+1"/>
  112. <Cell col="1" displaytype="checkbox" edittype="checkbox" text="bind:chk"/>
  113. <Cell col="2" displaytype="combo" edittype="combo" style="align:center;" text="bind:staffcls" combodataset="ds_M0779" combocodecol="cdid" combodatacol="cdnm"/>
  114. <Cell col="3" displaytype="normal" edittype="none" style="align:center;" text="bind:userid" editautoselect="true"/>
  115. <Cell col="4" displaytype="normal" style="align:center middle;" text="bind:usernm"/>
  116. <Cell col="5" text="bind:mpphonno"/>
  117. <Cell col="6" displaytype="text" edittype="text" text="bind:rmk"/>
  118. </Band>
  119. </Format>
  120. </Formats>
  121. </Grid>
  122. <Button id="btn_sms" taborder="3" text="시작SMS" class="btn2" position="absolute 296 3 371 23" onclick="grp_right_middle_btn_sms_onclick"/>
  123. <Button id="btn_cancelsms" taborder="4" text="취소SMS" class="btn2" position="absolute 373 3 448 23" onclick="grp_right_middle_btn_cancelsms_onclick"/>
  124. <Button id="btn_smshist" taborder="5" text="SMS이력" class="btn2" position="absolute 219 3 294 23" onclick="grp_right_middle_btn_smshist_onclick" usebitmapcache="false" visible="true"/>
  125. </Layout>
  126. </Layouts>
  127. </Div>
  128. <Div position="absolute 338 287 938 693" id="grp_right_bottom" anchor="all">
  129. <Layouts>
  130. <Layout>
  131. <Static text="회진 환자" position="absolute 0 7 86 27" align="align:left middle;" id="caption11" class="tit_2" anchor="default"/>
  132. <Shape position="absolute 0 23 600 29" linetype="horizontal" id="line6" class="line_10" anchor="left top right"/>
  133. <Button position="absolute 543 3 599 23" id="btn_Save" class="btn4" text="저장" anchor="top right" onclick="grp_right_bottom_btn_Save_onclick"/>
  134. <Button position="absolute 451 3 493 23" id="button8" class="btn2" text="추가" onclick="grp_right_bottom_button8_onclick" anchor="top right"/>
  135. <Button position="absolute 496 3 538 23" id="button9" class="btn2" text="삭제" onclick="grp_right_bottom_button9_onclick" anchor="top right"/>
  136. <Grid position="absolute 0 28 600 406" id="grd_drpatlist" binddataset="ds_dr_pat" style="align:center middle;" autosizingtype="none" extendsizetype="none" anchor="all" autofittype="none" selecttype="row" scrollpixel="all" onrbuttondown="grp_right_bottom_grd_drpatlist_onrbuttondown">
  137. <Formats>
  138. <Format id="default">
  139. <Columns>
  140. <Column size="25" band="left"/>
  141. <Column size="25" band="left"/>
  142. <Column size="55" band="left"/>
  143. <Column size="60" band="left"/>
  144. <Column size="60" band="left"/>
  145. <Column size="40"/>
  146. <Column size="200"/>
  147. <Column size="200"/>
  148. <Column size="50"/>
  149. <Column size="50"/>
  150. <Column size="50"/>
  151. <Column size="80"/>
  152. <Column size="40"/>
  153. <Column size="40"/>
  154. <Column size="80"/>
  155. <Column size="100"/>
  156. <Column size="250"/>
  157. </Columns>
  158. <Rows>
  159. <Row size="24" band="head"/>
  160. <Row size="24"/>
  161. </Rows>
  162. <Band id="head">
  163. <Cell/>
  164. <Cell col="1" displaytype="checkbox" edittype="checkbox"/>
  165. <Cell col="2" text="병실"/>
  166. <Cell col="3" displaytype="normal" text="환자번호"/>
  167. <Cell col="4" displaytype="normal" text="성명"/>
  168. <Cell col="5" displaytype="normal" text="S/A"/>
  169. <Cell col="6" displaytype="normal" text="진단명"/>
  170. <Cell col="7" text="수술명"/>
  171. <Cell col="8" text="전문의"/>
  172. <Cell col="9" text="담당의"/>
  173. <Cell col="10" text="퇴원구분"/>
  174. <Cell col="11" displaytype="normal" text="AD"/>
  175. <Cell col="12" text="HD"/>
  176. <Cell col="13" text="POD"/>
  177. <Cell col="14" displaytype="normal" text="퇴원일"/>
  178. <Cell col="15" text="핸드폰"/>
  179. <Cell col="16" displaytype="normal" text="비고"/>
  180. </Band>
  181. <Band id="body">
  182. <Cell celltype="head" text="expr:currow + 1"/>
  183. <Cell col="1" displaytype="checkbox" edittype="checkbox" text="bind:chk"/>
  184. <Cell col="2" text="bind:roomcd"/>
  185. <Cell col="3" displaytype="normal" edittype="none" style="align:center;" text="bind:pid" autosizerow="default"/>
  186. <Cell col="4" displaytype="normal" edittype="none" style="align:center;" text="bind:hngnm" editautoselect="true"/>
  187. <Cell col="5" displaytype="normal" edittype="none" style="align:center middle;" text="bind:sa" editautoselect="true" autosizerow="default"/>
  188. <Cell col="6" displaytype="normal" edittype="none" style="align:left top;padding:5 0 0 5;" text="bind:diagnm"/>
  189. <Cell col="7" style="align:left top;padding:5 0 0 5;" text="bind:opnm"/>
  190. <Cell col="8" text="bind:medispclnm"/>
  191. <Cell col="9" text="bind:atdoctnm"/>
  192. <Cell col="10"/>
  193. <Cell col="11" displaytype="date" edittype="date" text="bind:ad"/>
  194. <Cell col="12" text="bind:hd"/>
  195. <Cell col="13" text="bind:pod"/>
  196. <Cell col="14" displaytype="date" edittype="date" text="bind:dschdd"/>
  197. <Cell col="15" text="bind:mpphontel"/>
  198. <Cell col="16" displaytype="normal" edittype="text" style="align:left;" text="bind:rmk"/>
  199. </Band>
  200. </Format>
  201. </Formats>
  202. </Grid>
  203. <Button id="btn_excel" taborder="1" text="Excel" onclick="btn_excel_onclick" class="btn7" position="absolute 331 3 394 23" anchor="top right"/>
  204. <Button id="btn_sms" taborder="4" text="시작SMS" class="btn2" position="absolute 177 3 252 23" onclick="grp_right_bottom_btn_sms_onclick"/>
  205. <Button id="btn_print" taborder="5" text="출력" class="btn6" position="absolute 396 3 448 23" anchor="top right" onclick="grp_right_bottom_btn_print_onclick"/>
  206. <Button id="btn_sendward" taborder="6" text="병동알림" class="btn2" position="absolute 100 3 175 23" onclick="grp_right_bottom_btn_sendward_onclick" tooltiptext="선택 환자의 현재시간 병동근무자에게 HIS 메세지 전송"/>
  207. <Button id="btn_cancelsms" taborder="7" text="취소SMS" class="btn2" position="absolute 254 3 329 23" onclick="grp_right_bottom_btn_cancelsms_onclick"/>
  208. </Layout>
  209. </Layouts>
  210. </Div>
  211. <Div id="grp_left_bottom" anchor="left top bottom" taborder="2" position="absolute 0 450 330 696">
  212. <Layouts>
  213. <Layout>
  214. <Static id="caption3" text="회진 스케쥴" class="tit_2" position="absolute 0 7 109 23" anchor="default"/>
  215. <Shape id="line5" class="line_10" position="absolute 0 23 330 29" anchor="left top right"/>
  216. <Button id="button1" taborder="2" text="삭제" class="btn2" position="absolute 225 3 267 23" anchor="top right" onclick="grp_left_bottom_button1_onclick"/>
  217. <Button id="button2" taborder="3" text="추가" class="btn2" position="absolute 182 3 224 23" anchor="top right" onclick="grp_left_bottom_button2_onclick"/>
  218. <Button id="btn_Save" taborder="5" text="저장" class="btn4" position="absolute 274 3 330 23" anchor="top right" onclick="grp_left_bottom_btn_Save_onclick"/>
  219. <Grid id="grd_schelist" taborder="6" binddataset="ds_dr_sche" useinputpanel="false" autofittype="col" position="absolute 0 28 330 243" anchor="left top bottom">
  220. <Formats>
  221. <Format id="default">
  222. <Columns>
  223. <Column size="20" band="left"/>
  224. <Column size="0"/>
  225. <Column size="60"/>
  226. <Column size="60"/>
  227. <Column size="20"/>
  228. <Column size="20"/>
  229. <Column size="20"/>
  230. <Column size="20"/>
  231. <Column size="20"/>
  232. <Column size="20"/>
  233. <Column size="20"/>
  234. <Column size="50"/>
  235. </Columns>
  236. <Rows>
  237. <Row size="24" band="head"/>
  238. <Row size="24"/>
  239. </Rows>
  240. <Band id="head">
  241. <Cell/>
  242. <Cell col="1" displaytype="normal" text="hardcdno"/>
  243. <Cell col="2" displaytype="normal" text="시작"/>
  244. <Cell col="3" displaytype="normal" text="종료"/>
  245. <Cell col="4" displaytype="normal" text="월"/>
  246. <Cell col="5" displaytype="normal" text="화"/>
  247. <Cell col="6" text="수"/>
  248. <Cell col="7" text="목"/>
  249. <Cell col="8" text="금"/>
  250. <Cell col="9" text="토"/>
  251. <Cell col="10" text="일"/>
  252. <Cell col="11" text="비고"/>
  253. </Band>
  254. <Band id="body">
  255. <Cell celltype="head"/>
  256. <Cell col="1" displaytype="normal" text="bind:hardcdno"/>
  257. <Cell col="2" displaytype="date" edittype="date" style="align:center;" text="bind:fromtm" mask="HH:mm"/>
  258. <Cell col="3" displaytype="date" edittype="date" style="align:center;" text="bind:totm" mask="HH:mm"/>
  259. <Cell col="4" displaytype="checkbox" edittype="checkbox" style="align:center middle;" text="bind:monyn" expr="(monyn == &quot;Y&quot; || monyn == 1) ? 1 : 0" editautoselect="true"/>
  260. <Cell col="5" displaytype="checkbox" edittype="checkbox" style="align:center middle;" text="bind:tueyn" expr="(tueyn == &quot;Y&quot; || tueyn == 1) ? 1 : 0"/>
  261. <Cell col="6" displaytype="checkbox" edittype="checkbox" style="align:center middle;" text="bind:wedyn" expr="(wedyn == &quot;Y&quot; || wedyn == 1) ? 1 : 0"/>
  262. <Cell col="7" displaytype="checkbox" edittype="checkbox" style="align:center middle;" text="bind:thuyn" expr="(thuyn == &quot;Y&quot; || thuyn == 1) ? 1 : 0"/>
  263. <Cell col="8" displaytype="checkbox" edittype="checkbox" style="align:center middle;" text="bind:friyn" expr="(friyn == &quot;Y&quot; || friyn == 1) ? 1 : 0"/>
  264. <Cell col="9" displaytype="checkbox" edittype="checkbox" style="align:center middle;" text="bind:satyn" expr="(satyn == &quot;Y&quot; || satyn == 1) ? 1 : 0"/>
  265. <Cell col="10" displaytype="checkbox" edittype="checkbox" style="align:center middle;" text="bind:sunyn" expr="(sunyn == &quot;Y&quot; || sunyn == 1) ? 1 : 0"/>
  266. <Cell col="11" edittype="text" text="bind:rmk"/>
  267. </Band>
  268. </Format>
  269. </Formats>
  270. </Grid>
  271. </Layout>
  272. </Layouts>
  273. </Div>
  274. <PopupMenu id="pmn_menu_staff" innerdataset="@ds_mouserght_staff" idcolumn="func" captioncolumn="label" levelcolumn="level" position="absolute 963 124 1056 168" onmenuclick="pmn_menu_staff_onmenuclick"/>
  275. <PopupMenu id="pmn_menu_pat" innerdataset="@ds_mouserght_pat" idcolumn="func" captioncolumn="label" levelcolumn="level" position="absolute 963 316 1056 360" onmenuclick="pmn_menu_pat_onmenuclick"/>
  276. <PopupMenu id="pmn_menu_drhist" innerdataset="@ds_mouserght_drhist" idcolumn="func" captioncolumn="label" levelcolumn="level" position="absolute 963 83 1056 109" onmenuclick="pmn_menu_drhist_onmenuclick"/>
  277. </Layout>
  278. </Layouts>
  279. <Objects>
  280. <Dataset id="ds_cond" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  281. <ColumnInfo>
  282. <Column id="deptcd" type="STRING" size="256"/>
  283. <Column id="drid" type="STRING" size="256"/>
  284. <Column id="fromdd" type="STRING" size="256"/>
  285. <Column id="todd" type="STRING" size="256"/>
  286. </ColumnInfo>
  287. <Rows>
  288. <Row/>
  289. </Rows>
  290. </Dataset>
  291. <Dataset id="ds_send" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false"/>
  292. <Dataset id="ds_orddept" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  293. <ColumnInfo>
  294. <Column id="deptcd" type="STRING" size="256"/>
  295. <Column id="depthngnm" type="STRING" size="256"/>
  296. </ColumnInfo>
  297. </Dataset>
  298. <Dataset id="ds_userlist" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  299. <ColumnInfo>
  300. <Column id="userid" type="STRING" size="256"/>
  301. <Column id="usernm" type="STRING" size="256"/>
  302. </ColumnInfo>
  303. </Dataset>
  304. <Dataset id="ds_M0779" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false"/>
  305. <Dataset id="ds_dr_hist" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  306. <ColumnInfo>
  307. <Column id="instcd" type="STRING" size="256"/>
  308. <Column id="drdd" type="STRING" size="256"/>
  309. <Column id="dispdrdd" type="STRING" size="256"/>
  310. <Column id="drno" type="STRING" size="256"/>
  311. <Column id="fromtm" type="STRING" size="256"/>
  312. <Column id="rmk" type="STRING" size="256"/>
  313. <Column id="rank" type="STRING" size="256"/>
  314. </ColumnInfo>
  315. </Dataset>
  316. <Dataset id="ds_dr_sche" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false" oncolumnchanged="ds_dr_sche_oncolumnchanged">
  317. <ColumnInfo>
  318. <Column id="instcd" type="STRING" size="256"/>
  319. <Column id="genrdd" type="STRING" size="256"/>
  320. <Column id="genrno" type="STRING" size="256"/>
  321. <Column id="deptcd" type="STRING" size="256"/>
  322. <Column id="drid" type="STRING" size="256"/>
  323. <Column id="fromtm" type="STRING" size="256"/>
  324. <Column id="totm" type="STRING" size="256"/>
  325. <Column id="monyn" type="STRING" size="256"/>
  326. <Column id="tueyn" type="STRING" size="256"/>
  327. <Column id="wedyn" type="STRING" size="256"/>
  328. <Column id="thuyn" type="STRING" size="256"/>
  329. <Column id="friyn" type="STRING" size="256"/>
  330. <Column id="satyn" type="STRING" size="256"/>
  331. <Column id="sunyn" type="STRING" size="256"/>
  332. <Column id="useyn" type="STRING" size="256"/>
  333. <Column id="rmk" type="STRING" size="256"/>
  334. </ColumnInfo>
  335. </Dataset>
  336. <Dataset id="ds_dr_info" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  337. <ColumnInfo>
  338. <Column id="status" type="STRING" size="256"/>
  339. <Column id="instcd" type="STRING" size="256"/>
  340. <Column id="drdd" type="STRING" size="256"/>
  341. <Column id="drno" type="STRING" size="256"/>
  342. <Column id="deptcd" type="STRING" size="256"/>
  343. <Column id="deptnm" type="STRING" size="256"/>
  344. <Column id="drid" type="STRING" size="256"/>
  345. <Column id="drnm" type="STRING" size="256"/>
  346. <Column id="fromtm" type="STRING" size="256"/>
  347. <Column id="totm" type="STRING" size="256"/>
  348. <Column id="wardpatyn" type="STRING" size="256"/>
  349. <Column id="cstpatyn" type="STRING" size="256"/>
  350. <Column id="erpatyn" type="STRING" size="256"/>
  351. <Column id="icupatyn" type="STRING" size="256"/>
  352. <Column id="useyn" type="STRING" size="256"/>
  353. <Column id="rmk" type="STRING" size="256"/>
  354. </ColumnInfo>
  355. </Dataset>
  356. <Dataset id="ds_dr_staff" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  357. <ColumnInfo>
  358. <Column id="chk" type="STRING" size="256"/>
  359. <Column id="drdd" type="STRING" size="256"/>
  360. <Column id="drno" type="STRING" size="256"/>
  361. <Column id="staffcls" type="STRING" size="256"/>
  362. <Column id="userid" type="STRING" size="256"/>
  363. <Column id="usernm" type="STRING" size="256"/>
  364. <Column id="mpphonno" type="STRING" size="256"/>
  365. <Column id="rmk" type="STRING" size="256"/>
  366. </ColumnInfo>
  367. </Dataset>
  368. <Dataset id="ds_dr_pat" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  369. <ColumnInfo>
  370. <Column id="chk" type="STRING" size="256"/>
  371. <Column id="instcd" type="STRING" size="256"/>
  372. <Column id="drdd" type="STRING" size="256"/>
  373. <Column id="drno" type="STRING" size="256"/>
  374. <Column id="pid" type="STRING" size="256"/>
  375. <Column id="orddd" type="STRING" size="256"/>
  376. <Column id="cretno" type="STRING" size="256"/>
  377. <Column id="hngnm" type="STRING" size="256"/>
  378. <Column id="sa" type="STRING" size="256"/>
  379. <Column id="mpphontel" type="STRING" size="256"/>
  380. <Column id="ad" type="STRING" size="256"/>
  381. <Column id="dschdd" type="STRING" size="256"/>
  382. <Column id="hd" type="STRING" size="256"/>
  383. <Column id="pod" type="STRING" size="256"/>
  384. <Column id="roomcd" type="STRING" size="256"/>
  385. <Column id="medispclid" type="STRING" size="256"/>
  386. <Column id="medispclnm" type="STRING" size="256"/>
  387. <Column id="atdoctid" type="STRING" size="256"/>
  388. <Column id="atdoctnm" type="STRING" size="256"/>
  389. <Column id="diagnm" type="STRING" size="256"/>
  390. <Column id="opnm" type="STRING" size="256"/>
  391. <Column id="dschnoti" type="STRING" size="256"/>
  392. <Column id="rmk" type="STRING" size="256"/>
  393. </ColumnInfo>
  394. </Dataset>
  395. <Dataset id="ds_hidden_smsdata" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  396. <ColumnInfo>
  397. <Column id="bizabbr" type="STRING" size="256"/>
  398. <Column id="msgcnts" type="STRING" size="256"/>
  399. <Column id="replytelno" type="STRING" size="256"/>
  400. <Column id="rsrvyn" type="STRING" size="256"/>
  401. <Column id="rsrvdate" type="STRING" size="256"/>
  402. <Column id="rsrvtime" type="STRING" size="256"/>
  403. <Column id="kakaocd" type="STRING" size="256"/>
  404. <Column id="lmstitle" type="STRING" size="256"/>
  405. </ColumnInfo>
  406. </Dataset>
  407. <Dataset id="ds_hidden_smsdata_recvr" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  408. <ColumnInfo>
  409. <Column id="chk" type="STRING" size="256"/>
  410. <Column id="recvrnm" type="STRING" size="256"/>
  411. <Column id="recvrtelno" type="STRING" size="256"/>
  412. <Column id="msgcnts" type="STRING" size="256"/>
  413. </ColumnInfo>
  414. </Dataset>
  415. <Dataset id="ds_hidden_smsdata_hist" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  416. <ColumnInfo>
  417. <Column id="rsrvyn" type="STRING" size="256"/>
  418. <Column id="fstrgstdt" type="STRING" size="256"/>
  419. <Column id="fstrgstdt_end" type="STRING" size="256"/>
  420. <Column id="deptnm" type="STRING" size="256"/>
  421. <Column id="recvrtelno" type="STRING" size="256"/>
  422. <Column id="system" type="STRING" size="256"/>
  423. </ColumnInfo>
  424. <Rows>
  425. <Row>
  426. <Col id="rsrvyn"/>
  427. <Col id="fstrgstdt"/>
  428. <Col id="fstrgstdt_end"/>
  429. <Col id="deptnm"/>
  430. <Col id="recvrtelno"/>
  431. <Col id="system"/>
  432. </Row>
  433. </Rows>
  434. </Dataset>
  435. <Dataset id="ds_mouserght_staff" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  436. <ColumnInfo>
  437. <Column id="label" type="STRING" size="256"/>
  438. <Column id="func" type="STRING" size="256"/>
  439. <Column id="level" type="STRING" size="256"/>
  440. </ColumnInfo>
  441. <Rows>
  442. <Row>
  443. <Col id="label">SMS전송</Col>
  444. <Col id="func">fSendSmsStaff</Col>
  445. <Col id="level">0</Col>
  446. </Row>
  447. <Row>
  448. <Col id="label">SMS이력조회</Col>
  449. <Col id="func">fSrchSmsStaff</Col>
  450. <Col id="level">0</Col>
  451. </Row>
  452. </Rows>
  453. </Dataset>
  454. <Dataset id="ds_mouserght_pat" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  455. <ColumnInfo>
  456. <Column id="label" type="STRING" size="256"/>
  457. <Column id="func" type="STRING" size="256"/>
  458. <Column id="level" type="STRING" size="256"/>
  459. </ColumnInfo>
  460. <Rows>
  461. <Row>
  462. <Col id="label">SMS전송</Col>
  463. <Col id="func">fSendSmsPat</Col>
  464. <Col id="level">0</Col>
  465. </Row>
  466. <Row>
  467. <Col id="label">SMS이력조회</Col>
  468. <Col id="func">fSrchSmsPat</Col>
  469. <Col id="level">0</Col>
  470. </Row>
  471. </Rows>
  472. </Dataset>
  473. <Dataset id="ds_dr_printsche" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  474. <ColumnInfo>
  475. <Column id="instcd" type="STRING" size="256"/>
  476. <Column id="genrdd" type="STRING" size="256"/>
  477. <Column id="genrno" type="STRING" size="256"/>
  478. <Column id="deptcd" type="STRING" size="256"/>
  479. <Column id="deptnm" type="STRING" size="256"/>
  480. <Column id="drid" type="STRING" size="256"/>
  481. <Column id="drnm" type="STRING" size="256"/>
  482. <Column id="fromtm" type="STRING" size="256"/>
  483. <Column id="totm" type="STRING" size="256"/>
  484. <Column id="monyn" type="STRING" size="256"/>
  485. <Column id="tueyn" type="STRING" size="256"/>
  486. <Column id="wedyn" type="STRING" size="256"/>
  487. <Column id="thuyn" type="STRING" size="256"/>
  488. <Column id="friyn" type="STRING" size="256"/>
  489. <Column id="satyn" type="STRING" size="256"/>
  490. <Column id="sunyn" type="STRING" size="256"/>
  491. <Column id="useyn" type="STRING" size="256"/>
  492. <Column id="rmk" type="STRING" size="256"/>
  493. </ColumnInfo>
  494. </Dataset>
  495. <Dataset id="ds_hidden_msgdata" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  496. <ColumnInfo>
  497. <Column id="msgcnts" type="STRING" size="256"/>
  498. </ColumnInfo>
  499. </Dataset>
  500. <Dataset id="ds_hidden_msgdata_recvr" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  501. <ColumnInfo>
  502. <Column id="usernm" type="STRING" size="256"/>
  503. <Column id="userid" type="STRING" size="256"/>
  504. <Column id="mpphonno" type="STRING" size="256"/>
  505. <Column id="pdano" type="STRING" size="256"/>
  506. <Column id="pid" type="STRING" size="256"/>
  507. <Column id="deptcd" type="STRING" size="256"/>
  508. </ColumnInfo>
  509. </Dataset>
  510. <Dataset id="ds_save_result" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  511. <ColumnInfo>
  512. <Column id="drdd" type="STRING" size="256"/>
  513. <Column id="drno" type="STRING" size="256"/>
  514. </ColumnInfo>
  515. </Dataset>
  516. <Dataset id="ds_mouserght_drhist" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  517. <ColumnInfo>
  518. <Column id="label" type="STRING" size="256"/>
  519. <Column id="func" type="STRING" size="256"/>
  520. <Column id="level" type="STRING" size="256"/>
  521. </ColumnInfo>
  522. <Rows>
  523. <Row>
  524. <Col id="label">삭제</Col>
  525. <Col id="func">fDeleteDrHist</Col>
  526. <Col id="level">0</Col>
  527. </Row>
  528. </Rows>
  529. </Dataset>
  530. </Objects>
  531. <Bind>
  532. <BindItem id="item9" compid="grp_right_top.chk_erpat" propid="value" datasetid="ds_dr_info" columnid="erpatyn"/>
  533. <BindItem id="item0" compid="grp_left.roundrect2.cmb_orddept" propid="value" datasetid="ds_cond" columnid="deptcd"/>
  534. <BindItem id="item1" compid="grp_left.roundrect2.cmb_drid" propid="value" datasetid="ds_cond" columnid="drid"/>
  535. <BindItem id="item5" compid="grp_right_top.txt_rmk" propid="value" datasetid="ds_dr_info" columnid="rmk"/>
  536. <BindItem id="item2" compid="grp_right_top.cal_drdd" propid="value" datasetid="ds_dr_info" columnid="drdd"/>
  537. <BindItem id="item6" compid="grp_left.roundrect2.ipt_fromdd" propid="value" datasetid="ds_cond" columnid="fromdd"/>
  538. <BindItem id="item7" compid="grp_left.roundrect2.ipt_todd" propid="value" datasetid="ds_cond" columnid="todd"/>
  539. <BindItem id="item8" compid="grp_right_top.ipt_fromtm" propid="value" datasetid="ds_dr_info" columnid="fromtm"/>
  540. <BindItem id="item3" compid="grp_right_top.ipt_totm" propid="value" datasetid="ds_dr_info" columnid="totm"/>
  541. <BindItem id="item4" compid="grp_right_top.chk_wardpat" propid="value" datasetid="ds_dr_info" columnid="wardpatyn"/>
  542. <BindItem id="item10" compid="grp_right_top.chk_icupat" propid="value" datasetid="ds_dr_info" columnid="icupatyn"/>
  543. <BindItem id="item11" compid="grp_right_top.chk_cstpat" propid="value" datasetid="ds_dr_info" columnid="cstpatyn"/>
  544. <BindItem id="item12" compid="SMMMB08400" propid="text" datasetid="ds_dr_info" columnid="cstpatyn"/>
  545. </Bind>
  546. <Script type="xscript4.0"><![CDATA[/***************************************************************************************
  547. * System Name :
  548. * Job Name :
  549. * Creator :
  550. * Make Date : 2014-12-10
  551. * Description :
  552. *---------------------------------------------------------------------------------------
  553. * Modify Date Modifier Modify Description
  554. *---------------------------------------------------------------------------------------
  555. * 2014-12-10 Live Converter TF->XP
  556. *
  557. *---------------------------------------------------------------------------------------
  558. ****************************************************************************************/
  559. include "com_commonxp::comm_main.xjs";
  560. include "emr_prcpmngtxp::MMO001.xjs";
  561. function SMMMI01000_oninit(obj:Form, e:InitEventInfo)
  562. {
  563. frmf_initForm(obj);
  564. grdf_initGrid(grp_right_middle.grd_drstafflist);
  565. grdf_initGrid(grp_right_bottom.grd_drpatlist);
  566. }
  567. function SMMMI01000_onload(obj:Form, e:LoadEventInfo)
  568. {
  569. grdf_setRowTypeIcon(grp_left_bottom.grd_schelist, 0);
  570. grdf_setToolTipBind(grp_left.grd_histtree);
  571. grdf_setToolTipBind(grp_left_bottom.grd_schelist);
  572. grdf_setToolTipBind(grp_right_middle.grd_drstafflist);
  573. grdf_setToolTipBind(grp_right_bottom.grd_drpatlist);
  574. // 저장버튼 비활성화
  575. grp_right_top.btn_Save.enable = false;
  576. grp_right_middle.btn_Save.enable = false;
  577. grp_right_bottom.btn_Save.enable = false;
  578. ds_cond.setColumn(0, "fromdd" , ((utlf_getCurrentDate().toDate()).getAddDate(-1,"M")).getDateFormat()); // 최근 7일
  579. ds_cond.setColumn(0, "todd" , utlf_getCurrentDate()); //종료일자는 현재일자
  580. appf_getCodeList([{dsNm: "ds_M0779", cdGrpId: "M0779"}], true);
  581. lf_mmbfGetDeptCodeComboList(ds_orddept, "D"); //부서코드 콤보
  582. var sDutPlceCd = sysf_getUserInfo("dutplcecd");
  583. if(!utlf_isNull(sDutPlceCd)) {
  584. grp_left.roundrect2.cmb_orddept.value = sDutPlceCd; //진료과
  585. lf_mmbfGetUserComboList(ds_userlist, sDutPlceCd, "0330", "", "M", "", "", "P");
  586. }
  587. frmf_addComboItem("grp_left.roundrect2.cmb_drid"); // 의사콤보 전체항목 추가
  588. var sDrId = sysf_getUserInfo("userid");
  589. var sCheckStr = ds_userlist.lookup("userid", sDrId, "userid");
  590. if (!utlf_isNull(sCheckStr)) {
  591. grp_left.roundrect2.cmb_drid.value = sDrId;
  592. fGetDrHistInfo();
  593. } else {
  594. grp_left.roundrect2.cmb_drid.value = "-";
  595. }
  596. }
  597. function grp_left_roundrect2_cmb_orddept_onitemchanged(obj:Combo, e:ItemChangeEventInfo)
  598. {
  599. var sDeptCd = ds_cond.getColumn(0, "deptcd");
  600. if(!utlf_isNull(sDeptCd)) {
  601. lf_mmbfGetUserComboList(ds_userlist, sDeptCd, "0330", "", "M", "", "", "P");
  602. frmf_addComboItem("grp_left.roundrect2.cmb_drid"); //의사콤보 전체항목 추가
  603. grp_left.roundrect2.cmb_drid.value = "-"; // 전문의
  604. }
  605. }
  606. function grp_left_roundrect2_cmb_drid_onitemchanged(obj:Combo, e:ItemChangeEventInfo)
  607. {
  608. var sDrId = ds_cond.getColumn(0, "drid");
  609. if(!utlf_isNull(sDrId) && sDrId != "-") {
  610. fGetDrHistInfo();
  611. }
  612. }
  613. function grp_left_btn_search_onclick(obj:Button, e:ClickEventInfo) {
  614. fGetDrHistInfo();
  615. }
  616. /**
  617. * @desc : 회진 이력 및 회진 스케쥴 조회
  618. * @
  619. * @param :
  620. * @return :
  621. * @author : 엄영만
  622. * @---------------------------------------------------
  623. */
  624. function fGetDrHistInfo(){
  625. var sDrId = ds_cond.getColumn(0, "drid");
  626. if(utlf_isNull(sDrId) || sDrId == "-") {
  627. sysf_messageBox("선택 된 의사가 없습니다.", "E");
  628. return;
  629. }
  630. ds_dr_hist.clearData();
  631. ds_dr_sche.clearData();
  632. ds_dr_info.clearData();
  633. ds_dr_info.addRow();
  634. ds_dr_staff.clearData();
  635. ds_dr_pat.clearData();
  636. var oParam = {};
  637. oParam.id = "TRMMI01001";
  638. oParam.service = "prcpinfoapp.PrcpInfoEtcMngt";
  639. oParam.method = "reqGetDrHistInfo";
  640. oParam.inds = "req=ds_cond";
  641. oParam.outds = "ds_dr_hist=hist ds_dr_sche=sche";
  642. oParam.async = false;
  643. oParam.callback = "cf_TRMMI01001";
  644. tranf_submit(oParam);
  645. grdf_expandDepth(grp_left.grd_histtree, 2);
  646. //input박스 비활성화
  647. grp_right_top.cal_drdd.enable = false;
  648. grp_right_top.ipt_fromtm.enable = false;
  649. grp_right_top.ipt_totm.enable = false;
  650. grp_right_top.txt_rmk.enable = false;
  651. grp_right_top.chk_wardpat.enable = false;
  652. grp_right_top.chk_cstpat.enable = false;
  653. grp_right_top.chk_erpat.enable = false;
  654. grp_right_top.chk_icupat.enable = false;
  655. // 저장버튼 비활성화
  656. grp_right_top.btn_Save.enable = false;
  657. grp_right_middle.btn_Save.enable = false;
  658. grp_right_bottom.btn_Save.enable = false;
  659. }
  660. function cf_TRMMI01001(sSvcId, nErrorCode, sErrorMsg) {
  661. if(nErrorCode < 0) return;
  662. }
  663. function grp_left_bottom_button2_onclick(obj:Button, e:ClickEventInfo)
  664. {
  665. var sDutPlceCd = sysf_getUserInfo("dutplcecd");
  666. var sDeptCd = ds_cond.getColumn(0, "deptcd");
  667. var sDrId = ds_cond.getColumn(0, "drid");
  668. if(sDeptCd != sDutPlceCd && !lf_ContainsHardCD("609", sDutPlceCd)) {
  669. sysf_messageBox("로그인 진료과의 회진 정보만 수정 가능 합니다.", "E");
  670. return;
  671. }
  672. if(utlf_isNull(sDrId) || sDrId == "-") {
  673. sysf_messageBox("선택 된 의사가 없습니다.", "E");
  674. return;
  675. }
  676. ds_dr_sche.addRow();
  677. grp_left_bottom.grd_schelist.showEditor(true);
  678. var nRow = ds_dr_sche.rowposition;
  679. ds_dr_sche.setColumn(nRow, "deptcd", sDeptCd);
  680. ds_dr_sche.setColumn(nRow, "drid", sDrId);
  681. ds_dr_sche.setColumn(nRow, "fromtm", "0000");
  682. ds_dr_sche.setColumn(nRow, "totm", "0000");
  683. ds_dr_sche.setColumn(nRow, "monyn", "N");
  684. ds_dr_sche.setColumn(nRow, "tueyn", "N");
  685. ds_dr_sche.setColumn(nRow, "wedyn", "N");
  686. ds_dr_sche.setColumn(nRow, "thuyn", "N");
  687. ds_dr_sche.setColumn(nRow, "friyn", "N");
  688. ds_dr_sche.setColumn(nRow, "satyn", "N");
  689. ds_dr_sche.setColumn(nRow, "sunyn", "N");
  690. ds_dr_sche.setColumn(nRow, "useyn", "Y");
  691. }
  692. function grp_left_bottom_button1_onclick(obj:Button, e:ClickEventInfo)
  693. {
  694. var cur_row = ds_dr_sche.rowposition;
  695. var iStatus = ds_dr_sche.getRowType(cur_row); //grd_dhrcdlist.rowstatus(cur_row);
  696. if(cur_row < 0) {
  697. alert("삭제할 조건행을 선택해주세요.");
  698. return;
  699. }
  700. var sDutPlceCd = sysf_getUserInfo("dutplcecd");
  701. var sDeptCd = ds_dr_sche.getColumn(cur_row, "deptcd");
  702. var sDrId = ds_dr_sche.getColumn(cur_row, "drid");
  703. if(sDeptCd != sDutPlceCd && !lf_ContainsHardCD("609", sDutPlceCd)) {
  704. sysf_messageBox("로그인 진료과의 회진 정보만 수정 가능 합니다.", "E");
  705. return;
  706. }
  707. if(utlf_isNull(sDrId) || sDrId == "-") {
  708. sysf_messageBox("선택 된 의사가 없습니다.", "E");
  709. return;
  710. }
  711. if (iStatus == 2) { // 새로 삽입된 행이면
  712. ds_dr_sche.deleteRow(cur_row);
  713. } else if ( iStatus == 8 ) { // 삭제로 변경된 상태
  714. grdf_setStatus(grp_left_bottom.grd_schelist, "", [cur_row])
  715. } else {
  716. grdf_setStatus(grp_left_bottom.grd_schelist, "D", [cur_row]);
  717. }
  718. }
  719. function ds_dr_sche_oncolumnchanged(obj:Dataset, e:DSColChangeEventInfo)
  720. {
  721. try {// 그리드안의 checkbox 값 변경 용도
  722. if(e.columnid == "monyn" || e.columnid == "tueyn" || e.columnid == "wedyn" || e.columnid == "thuyn" || e.columnid == "friyn" || e.columnid == "satyn" || e.columnid == "sunyn") {
  723. obj.setColumn(e.row, e.columnid, (e.newvalue == "Y" || e.newvalue == 1) ? "Y" : "N");
  724. }
  725. } catch(e) { sysf_catchTrace(e); }
  726. }
  727. /**
  728. * @desc : 회진 스케쥴 저장
  729. * @
  730. * @param :
  731. * @return :
  732. * @author : 엄영만
  733. * @---------------------------------------------------
  734. */
  735. function grp_left_bottom_btn_Save_onclick(obj:Button, e:ClickEventInfo)
  736. {
  737. if(ds_dr_sche.rowcount <= 0) {
  738. sysf_messageBox("저장 할 스케쥴정보가 없습니다.", "E999");
  739. return;
  740. }
  741. if( sysf_messageBox("회진 스케쥴정보를","Q002") == 6 ){
  742. var oParam = {};
  743. oParam.id = "TXMMI01001";
  744. oParam.service = "prcpinfoapp.PrcpInfoEtcMngt";
  745. oParam.method = "reqExeSaveDrSche";
  746. oParam.inds = "req=ds_dr_sche:U";
  747. oParam.outds = "ds_dr_sche=result";
  748. oParam.async = false;
  749. tranf_submit(oParam);
  750. }
  751. }
  752. function grp_left_grd_histtree_oncellclick(obj:Grid, e:GridClickEventInfo)
  753. {
  754. fSetDrInfo();
  755. }
  756. /**
  757. * @desc : 회진 이력 리스트 클릭시 기본정보 설정
  758. * @
  759. * @param :
  760. * @return :
  761. * @author : 엄영만
  762. * @---------------------------------------------------
  763. */
  764. function fSetDrInfo(){
  765. var nRow = ds_dr_hist.rowposition;
  766. var sDrDd = ds_dr_hist.getColumn(nRow, "drdd");
  767. var sDrNo = ds_dr_hist.getColumn(nRow, "drno");
  768. if(!utlf_isNull(sDrNo) && sDrNo != "0") {
  769. dsf_makeValue(ds_send, "drdd","string", sDrDd);
  770. dsf_makeValue(ds_send, "drno","string", sDrNo);
  771. var oParam = {};
  772. oParam.id = "TRMMI01002";
  773. oParam.service = "prcpinfoapp.PrcpInfoEtcMngt";
  774. oParam.method = "reqGetDrInfo";
  775. oParam.inds = "req=ds_send";
  776. oParam.outds = "ds_dr_info=drinfo ds_dr_staff=stafflist ds_dr_pat=patlist";
  777. oParam.async = false;
  778. oParam.callback = "cf_TRMMI01002";
  779. tranf_submit(oParam);
  780. grp_right_middle.grd_drstafflist.setCellProperty("head", 1, "text", 0);
  781. grp_right_bottom.grd_drpatlist.setCellProperty("head", 1, "text", 0);
  782. }
  783. }
  784. function cf_TRMMI01002(sSvcId, nErrorCode, sErrorMsg) {
  785. if(nErrorCode < 0) {
  786. return;
  787. } else {
  788. ds_dr_info.addColumn("status", "string");
  789. //input박스 비활성화
  790. grp_right_top.cal_drdd.enable = false;
  791. grp_right_top.ipt_fromtm.enable = false;
  792. grp_right_top.ipt_totm.enable = false;
  793. grp_right_top.txt_rmk.enable = false;
  794. grp_right_top.chk_wardpat.enable = false;
  795. grp_right_top.chk_cstpat.enable = false;
  796. grp_right_top.chk_erpat.enable = false;
  797. grp_right_top.chk_icupat.enable = false;
  798. var sDutPlceCd = sysf_getUserInfo("dutplcecd");
  799. var sDeptCd = ds_dr_info.getColumn(0, "deptcd");
  800. if(sDeptCd == sDutPlceCd || lf_ContainsHardCD("609", sDutPlceCd)) {
  801. grp_right_top.btn_Save.enable = true;
  802. grp_right_middle.btn_Save.enable = true;
  803. grp_right_bottom.btn_Save.enable = true;
  804. } else {
  805. grp_right_top.btn_Save.enable = false;
  806. grp_right_middle.btn_Save.enable = false;
  807. grp_right_bottom.btn_Save.enable = false;
  808. }
  809. }
  810. }
  811. function grp_right_top_button1_onclick(obj:Button, e:ClickEventInfo)
  812. {
  813. var sDrNo = ds_dr_info.getColumn(0, "drno");
  814. if(utlf_isNull(sDrNo)) {
  815. alert("선택 된 회진이 없습니다.");
  816. return;
  817. }
  818. var sStatus = ds_dr_info.getColumn(0, "status");
  819. if(sStatus == "u" || sStatus == "i" ) {
  820. alert("신규 또는 수정중인 코드는 삭제 할수 없습니다.");
  821. return;
  822. }
  823. var sDutPlceCd = sysf_getUserInfo("dutplcecd");
  824. var sDeptCd = ds_dr_info.getColumn(0, "deptcd");
  825. if(sDeptCd != sDutPlceCd && !lf_ContainsHardCD("609", sDutPlceCd)) {
  826. sysf_messageBox("로그인 진료과의 회진 정보만 삭제 가능 합니다.", "E");
  827. return;
  828. }
  829. ds_dr_info.setColumn(0, "status", "d"); // 입력 설정
  830. fSaveDrMasterInfo("Q001");
  831. }
  832. function grp_right_top_button2_onclick(obj:Button, e:ClickEventInfo)
  833. {
  834. var sStatus = ds_dr_info.getColumn(0, "status");
  835. if(sStatus == "u" || sStatus == "d" ) {
  836. alert("수정 또는 삭제 중인 코드는 신규입력 할수 없습니다.");
  837. return;
  838. }
  839. var sDutPlceCd = sysf_getUserInfo("dutplcecd");
  840. var sDeptCd = ds_cond.getColumn(0, "deptcd");
  841. var sDrId = ds_cond.getColumn(0, "drid");
  842. if(sDeptCd != sDutPlceCd && !lf_ContainsHardCD("609", sDutPlceCd)) {
  843. sysf_messageBox("로그인 진료과의 회진 정보만 등록 가능 합니다.", "E");
  844. return;
  845. }
  846. if(utlf_isNull(sDrId) || sDrId == "-") {
  847. sysf_messageBox("선택 된 의사가 없습니다.", "E");
  848. return;
  849. }
  850. ds_dr_info.clearData();
  851. ds_dr_staff.clearData();
  852. ds_dr_pat.clearData();
  853. // 회진 시작 종료시간 설정 스케쥴에서 현재 시간 이후 시간 설정함.
  854. var sFromTm = "0000";
  855. var sToTm = "0000";
  856. var sCurrentWeek = utlf_getCurrentWeek("K");
  857. var sCurrentTime = utlf_getCurrentTime().substring(0, 4);
  858. for ( var i=0; i < ds_dr_sche.rowcount; i++ ) {
  859. if( sCurrentWeek == "월") { if(ds_dr_sche.getColumn(i, "monyn") != "Y") continue; }
  860. else if(sCurrentWeek == "화") { if(ds_dr_sche.getColumn(i, "tueyn") != "Y") continue; }
  861. else if(sCurrentWeek == "수") { if(ds_dr_sche.getColumn(i, "wedyn") != "Y") continue; }
  862. else if(sCurrentWeek == "목") { if(ds_dr_sche.getColumn(i, "thuyn") != "Y") continue; }
  863. else if(sCurrentWeek == "금") { if(ds_dr_sche.getColumn(i, "friyn") != "Y") continue; }
  864. else if(sCurrentWeek == "토") { if(ds_dr_sche.getColumn(i, "satyn") != "Y") continue; }
  865. else if(sCurrentWeek == "일") { if(ds_dr_sche.getColumn(i, "sunyn") != "Y") continue; }
  866. // 현재 보다 큰 시간이 없으면 마지막 시간으로 적용되도록 하기 위해
  867. sFromTm = ds_dr_sche.getColumn(i, "fromtm");
  868. sToTm = ds_dr_sche.getColumn(i, "totm");
  869. if(ds_dr_sche.getColumn(i, "fromtm") >= sCurrentTime) {
  870. sFromTm = ds_dr_sche.getColumn(i, "fromtm");
  871. sToTm = ds_dr_sche.getColumn(i, "totm");
  872. break;
  873. }
  874. }
  875. if(sFromTm == "0000" && sToTm == "0000") { // 초기값은 설정
  876. sFromTm = "0800";
  877. sToTm = "0900";
  878. }
  879. ds_dr_info.addRow();
  880. ds_dr_info.setColumn(0, "status", "i"); // 입력 설정
  881. ds_dr_info.setColumn(0, "drdd", utlf_getCurrentDate());
  882. ds_dr_info.setColumn(0, "drno", "0");
  883. ds_dr_info.setColumn(0, "deptcd", sDeptCd);
  884. ds_dr_info.setColumn(0, "drid", sDrId);
  885. ds_dr_info.setColumn(0, "fromtm", sFromTm);
  886. ds_dr_info.setColumn(0, "totm", sToTm);
  887. ds_dr_info.setColumn(0, "wardpatyn","Y");
  888. ds_dr_info.setColumn(0, "cstpatyn", "N");
  889. ds_dr_info.setColumn(0, "erpatyn", "N");
  890. ds_dr_info.setColumn(0, "icupatyn", "N");
  891. ds_dr_info.setColumn(0, "useyn", "Y");
  892. grp_right_top.btn_Save.enable = true; // 저장버튼 활성화
  893. grp_right_top.cal_drdd.enable = true;
  894. grp_right_top.ipt_fromtm.enable = true;
  895. grp_right_top.ipt_totm.enable = true;
  896. grp_right_top.txt_rmk.enable = true;
  897. grp_right_top.chk_wardpat.enable= true;
  898. grp_right_top.chk_cstpat.enable = true;
  899. grp_right_top.chk_erpat.enable = true;
  900. grp_right_top.chk_icupat.enable = true;
  901. }
  902. function grp_right_top_button7_onclick(obj:Button, e:ClickEventInfo)
  903. {
  904. var sDrNo = ds_dr_info.getColumn(0, "drno");
  905. if(utlf_isNull(sDrNo)) {
  906. alert("선택 된 횐진정보가 없습니다.");
  907. return;
  908. }
  909. var sStatus = ds_dr_info.getColumn(0, "status");
  910. if(sStatus == "i" || sStatus == "d" ) {
  911. alert("신규 또는 삭제 중인 회진은 수정 할수 없습니다.");
  912. return;
  913. }
  914. var sDutPlceCd = sysf_getUserInfo("dutplcecd");
  915. var sDeptCd = ds_dr_info.getColumn(0, "deptcd");
  916. if(sDeptCd != sDutPlceCd && !lf_ContainsHardCD("609", sDutPlceCd)) {
  917. sysf_messageBox("로그인 진료과의 회진 정보만 수정 가능 합니다.", "E");
  918. return;
  919. }
  920. ds_dr_info.setColumn(0, "status", "u"); // 수정 설정
  921. grp_right_top.cal_drdd.enable = false;
  922. grp_right_top.ipt_fromtm.enable = true;
  923. grp_right_top.ipt_totm.enable = true;
  924. grp_right_top.txt_rmk.enable = true;
  925. grp_right_top.chk_wardpat.enable= false;
  926. grp_right_top.chk_cstpat.enable = false;
  927. grp_right_top.chk_erpat.enable = false;
  928. grp_right_top.chk_icupat.enable = false;
  929. }
  930. function grp_right_top_btn_Save_onclick(obj:Button, e:ClickEventInfo)
  931. {
  932. var sDrNo = ds_dr_info.getColumn(0, "drno");
  933. if(utlf_isNull(sDrNo)) {
  934. alert("선택 된 회진정보가 없습니다.");
  935. return;
  936. }
  937. var sDutPlceCd = sysf_getUserInfo("dutplcecd");
  938. var sDeptCd = ds_dr_info.getColumn(0, "deptcd");
  939. if(sDeptCd != sDutPlceCd && !lf_ContainsHardCD("609", sDutPlceCd)) {
  940. sysf_messageBox("로그인 진료과의 회진 정보만 저장 가능 합니다.", "E");
  941. return;
  942. }
  943. fSaveDrMasterInfo();
  944. }
  945. function grp_right_top_ipt_fromtm_onkillfocus(obj:MaskEdit, e:KillFocusEventInfo)
  946. {
  947. var sFromTm = ds_dr_info.getColumn(0, "fromtm");
  948. ds_dr_info.setColumn(0, "totm", sFromTm);
  949. }
  950. /**
  951. * @desc : 회진 마스터 정보 저장
  952. * @
  953. * @param :
  954. * @return :
  955. * @author : 엄영만
  956. * @---------------------------------------------------
  957. */
  958. function fSaveDrMasterInfo(sType){
  959. if(utlf_isNull(sType)){
  960. sType = "Q002"
  961. }
  962. if( sysf_messageBox("회진정보를", sType) == 6 ){
  963. var oParam = {};
  964. oParam.id = "TXMMI01002";
  965. oParam.service = "prcpinfoapp.PrcpInfoEtcMngt";
  966. oParam.method = "reqExeSaveDrMast";
  967. oParam.inds = "req=ds_dr_info";
  968. oParam.outds = "ds_save_result=result";
  969. oParam.async = false;
  970. var bRtn = tranf_submit(oParam);
  971. if(bRtn) {
  972. fGetDrHistInfo();
  973. //20190417 이돈희 : 회진정보 신규 입력시 회진정보, 스텝, 환자를 자동 조회하도록 수정
  974. var sDrDd = ds_save_result.getColumn(0, "drdd");
  975. var sDrNo = ds_save_result.getColumn(0, "drno");
  976. var nRow = ds_dr_hist.findRowExpr("drdd == '" + sDrDd + "' && drno == '" + sDrNo + "'")
  977. if(!utlf_isNull(sDrNo) && sDrNo != "0"){
  978. if(nRow >= 0){
  979. ds_dr_hist.selectRow(nRow);
  980. fSetDrInfo();
  981. }
  982. }
  983. }
  984. }
  985. }
  986. function grp_right_middle_btn_Save_onclick(obj:Button, e:ClickEventInfo)
  987. {
  988. var sDrNo = ds_dr_info.getColumn(0, "drno");
  989. if(utlf_isNull(sDrNo)) {
  990. alert("선택 된 회진정보가 없습니다.");
  991. return;
  992. }
  993. var sDutPlceCd = sysf_getUserInfo("dutplcecd");
  994. var sDeptCd = ds_dr_info.getColumn(0, "deptcd");
  995. if(sDeptCd != sDutPlceCd && !lf_ContainsHardCD("609", sDutPlceCd)) {
  996. sysf_messageBox("로그인 진료과의 회진 정보만 저장 가능 합니다.", "E");
  997. return;
  998. }
  999. nFindRow = ds_dr_staff.findRow("chk", "1"); // 검색된 항목이 없으면 -1리턴
  1000. if(nFindRow < 0) {
  1001. sysf_messageBox("저장 할 항목을 선택 하세요.", "E");
  1002. return;
  1003. }
  1004. if( sysf_messageBox("회진스텝 정보를","Q002") == 6 ){
  1005. var oParam = {};
  1006. oParam.id = "TXMMI01003";
  1007. oParam.service = "prcpinfoapp.PrcpInfoEtcMngt";
  1008. oParam.method = "reqExeSaveDrStaff";
  1009. oParam.inds = "req=ds_dr_staff";
  1010. oParam.outds = "";
  1011. oParam.async = false;
  1012. tranf_submit(oParam);
  1013. fSetDrInfo();
  1014. }
  1015. }
  1016. function grp_right_middle_button5_onclick(obj:Button, e:ClickEventInfo)
  1017. {
  1018. var sDrNo = ds_dr_info.getColumn(0, "drno");
  1019. if(utlf_isNull(sDrNo)) {
  1020. alert("선택 된 회진정보가 없습니다.");
  1021. return;
  1022. }
  1023. var sDutPlceCd = sysf_getUserInfo("dutplcecd");
  1024. var sDeptCd = ds_dr_info.getColumn(0, "deptcd");
  1025. if(sDeptCd != sDutPlceCd && !lf_ContainsHardCD("609", sDutPlceCd)) {
  1026. sysf_messageBox("로그인 진료과의 회진 정보만 저장 가능 합니다.", "E");
  1027. return;
  1028. }
  1029. nFindRow = ds_dr_staff.findRow("chk", "1"); // 검색된 항목이 없으면 -1리턴
  1030. if(nFindRow < 0) {
  1031. sysf_messageBox("삭제 할 항목을 선택 하세요.", "E");
  1032. return;
  1033. }
  1034. if( sysf_messageBox("회진스텝 정보를 삭제 하시겠습니까?","Q999") == 6 ){
  1035. var oParam = {};
  1036. oParam.id = "TXMMI01005";
  1037. oParam.service = "prcpinfoapp.PrcpInfoEtcMngt";
  1038. oParam.method = "reqExeDelDrStaff";
  1039. oParam.inds = "req=ds_dr_staff";
  1040. oParam.outds = "";
  1041. oParam.async = false;
  1042. tranf_submit(oParam);
  1043. fSetDrInfo();
  1044. }
  1045. }
  1046. function grp_right_middle_btn_smshist_onclick(obj:Button, e:ClickEventInfo)
  1047. {
  1048. fSrchSmsHist("");
  1049. }
  1050. function grp_right_middle_btn_sms_onclick(obj:Button, e:ClickEventInfo)
  1051. {
  1052. fSendSmsStaff("S");
  1053. }
  1054. function grp_right_middle_btn_cancelsms_onclick(obj:Button, e:ClickEventInfo)
  1055. {
  1056. fSendSmsStaff("C");
  1057. }
  1058. function fSendSmsStaff(sGubun)
  1059. {
  1060. var sDrNo = ds_dr_info.getColumn(0, "drno");
  1061. if(utlf_isNull(sDrNo)) {
  1062. alert("선택 된 회진정보가 없습니다.");
  1063. return;
  1064. }
  1065. var sDutPlceCd = sysf_getUserInfo("dutplcecd");
  1066. var sDeptCd = ds_dr_info.getColumn(0, "deptcd");
  1067. if(sDeptCd != sDutPlceCd && !lf_ContainsHardCD("609", sDutPlceCd)) {
  1068. sysf_messageBox("로그인 진료과의 회진 정보만 SMS 전송 가능 합니다.", "E");
  1069. return;
  1070. }
  1071. nFindRow = ds_dr_staff.findRow("chk", "1"); // 검색된 항목이 없으면 -1리턴
  1072. if(nFindRow < 0) {
  1073. sysf_messageBox("SMS 전송 할 스텝을 선택 하세요.", "E");
  1074. return;
  1075. }
  1076. ds_hidden_smsdata.clearData();
  1077. ds_hidden_smsdata.addRow();
  1078. ds_hidden_smsdata.setColumn(0,"bizabbr", "EMR");
  1079. ds_hidden_smsdata.setColumn(0,"msgcnts", "");
  1080. ds_hidden_smsdata.setColumn(0,"rsrvyn", "");
  1081. ds_hidden_smsdata.setColumn(0,"rsrvdate", "");
  1082. ds_hidden_smsdata.setColumn(0,"rsrvtime", "");
  1083. var dutplceinstcd = sysf_getUserInfo("dutplceinstcd");
  1084. if(dutplceinstcd == "031") {
  1085. ds_hidden_smsdata.setColumn(0,"replytelno", "0532005114");
  1086. } else if(dutplceinstcd == "032") {
  1087. ds_hidden_smsdata.setColumn(0,"replytelno", "0532002114");
  1088. } else {
  1089. ds_hidden_smsdata.setColumn(0,"replytelno", "");
  1090. }
  1091. if(sGubun == "C") {
  1092. ds_hidden_smsdata.setColumn(0, "kakaocd", "kkocom0005");
  1093. ds_hidden_smsdata.setColumn(0, "lmstitle", "회진취소(직원용)");
  1094. } else {
  1095. ds_hidden_smsdata.setColumn(0, "kakaocd", "kkocom0004");
  1096. ds_hidden_smsdata.setColumn(0, "lmstitle", "회진알림(직원용)");
  1097. }
  1098. ds_hidden_smsdata_recvr.clearData();
  1099. ds_hidden_smsdata_recvr.enableevent = false;
  1100. for (var i = 0; i < ds_dr_staff.rowcount; i++ ) {
  1101. if(ds_dr_staff.getColumn(i, "chk") == "1") {
  1102. var nRow = ds_hidden_smsdata_recvr.addRow();
  1103. ds_hidden_smsdata_recvr.setColumn(nRow, "chk", "1");
  1104. ds_hidden_smsdata_recvr.setColumn(nRow, "recvrnm", ds_dr_staff.getColumn(i, "usernm"));
  1105. ds_hidden_smsdata_recvr.setColumn(nRow, "recvrtelno", ds_dr_staff.getColumn(i, "mpphonno"));
  1106. var sSmsMsg = "";
  1107. var iSelRow = 0;
  1108. if(sGubun == "C") { // 취소문자
  1109. sSmsMsg = "응급상황이 발생하여 " + ds_dr_info.getColumn(0, "deptnm") + " " + ds_dr_info.getColumn(0, "drnm") + "교수 회진이 연기되었음을 알려드립니다."
  1110. } else {
  1111. sSmsMsg = "잠시 후 " + ds_dr_info.getColumn(0, "fromtm").substring(0, 2) + "시" + ds_dr_info.getColumn(0, "fromtm").substring(2, 4) + "분부터 "
  1112. + ds_dr_info.getColumn(0, "deptnm") + " " + ds_dr_info.getColumn(0, "drnm") + "교수 회진 예정입니다."
  1113. }
  1114. if(dutplceinstcd == "031") {
  1115. sSmsMsg = sSmsMsg + "\n- 경북대학교병원";
  1116. } else if(dutplceinstcd == "031") {
  1117. sSmsMsg = sSmsMsg + "\n- 칠곡경북대병원";
  1118. }
  1119. ds_hidden_smsdata_recvr.setColumn(nRow, "msgcnts", sSmsMsg);
  1120. }
  1121. }
  1122. ds_hidden_smsdata_recvr.enableevent = true;
  1123. var objArg = new Object();
  1124. objArg.arg_ds_main = ds_hidden_smsdata;
  1125. objArg.arg_ds_recvr = ds_hidden_smsdata_recvr;
  1126. frmf_open("SPZMS00100", "SPZMS00100", objArg, "","1", "700", "400", "", "", "", "", "","M");
  1127. }
  1128. function grp_right_middle_button11_onclick(obj:Button, e:ClickEventInfo)
  1129. {
  1130. var sUserId = "";
  1131. var sUserNm = "";
  1132. var sDrDd = ds_dr_info.getColumn(0, "drdd");
  1133. var sDrNo = ds_dr_info.getColumn(0, "drno");
  1134. if(utlf_isNull(sDrNo)) {
  1135. alert("선택 된 회진정보가 없습니다.");
  1136. return;
  1137. }
  1138. var iParam = frmf_modal("SPZSU10103", "SPZSU10103", null, null, 1, 200, 200, null, null, null, null, null, "M"); // 사용자 선택 팝업창
  1139. if(!utlf_isNull(iParam)){
  1140. dsf_createDs("ds_hidden_onuserselect");
  1141. ds_hidden_onuserselect.copyData(iParam);
  1142. for(var i = 0; i < ds_hidden_onuserselect.rowcount; i++) {
  1143. sUserId = ds_hidden_onuserselect.getColumn(i, "userid");
  1144. sUserNm = ds_hidden_onuserselect.getColumn(i, "usernm");
  1145. nFindRow = ds_dr_staff.findRow("userid", sUserId); // 검색된 항목이 없으면 -1리턴
  1146. if(nFindRow > 0) {
  1147. sysf_messageBox(sUserNm + "(" + sUserId + ") 은 이미 회진 스텝으로 등록 되어 있습니다.", "E");
  1148. continue;
  1149. }
  1150. ds_dr_staff.addRow();
  1151. grp_right_middle.grd_drstafflist.showEditor(true);
  1152. var nRow = ds_dr_staff.rowposition; //grd_ahrcdlist.row;
  1153. ds_dr_staff.setColumn(nRow, "chk", "1");
  1154. ds_dr_staff.setColumn(nRow, "drdd", sDrDd);
  1155. ds_dr_staff.setColumn(nRow, "drno", sDrNo);
  1156. ds_dr_staff.setColumn(nRow, "userid", sUserId);
  1157. ds_dr_staff.setColumn(nRow, "usernm", sUserNm);
  1158. ds_dr_staff.setColumn(nRow, "staffcls", "Z");
  1159. }
  1160. }
  1161. }
  1162. function grp_right_bottom_btn_sms_onclick(obj:Button, e:ClickEventInfo)
  1163. {
  1164. fSendSmsPat("S");
  1165. }
  1166. function grp_right_bottom_btn_cancelsms_onclick(obj:Button, e:ClickEventInfo)
  1167. {
  1168. fSendSmsPat("C");
  1169. }
  1170. function fSendSmsPat(sGubun)
  1171. {
  1172. var sDrNo = ds_dr_info.getColumn(0, "drno");
  1173. if(utlf_isNull(sDrNo)) {
  1174. alert("선택 된 회진정보가 없습니다.");
  1175. return;
  1176. }
  1177. var sDutPlceCd = sysf_getUserInfo("dutplcecd");
  1178. var sDeptCd = ds_dr_info.getColumn(0, "deptcd");
  1179. if(sDeptCd != sDutPlceCd && !lf_ContainsHardCD("609", sDutPlceCd)) {
  1180. sysf_messageBox("로그인 진료과의 회진 정보만 SMS 전송 가능 합니다.", "E");
  1181. return;
  1182. }
  1183. nFindRow = ds_dr_pat.findRow("chk", "1"); // 검색된 항목이 없으면 -1리턴
  1184. if(nFindRow < 0) {
  1185. sysf_messageBox("SMS 전송 할 환자을 선택 하세요.", "E");
  1186. return;
  1187. }
  1188. ds_hidden_smsdata.clearData();
  1189. ds_hidden_smsdata.addRow();
  1190. ds_hidden_smsdata.setColumn(0,"bizabbr", "EMR");
  1191. ds_hidden_smsdata.setColumn(0,"msgcnts", "");
  1192. ds_hidden_smsdata.setColumn(0,"rsrvyn", "");
  1193. ds_hidden_smsdata.setColumn(0,"rsrvdate", "");
  1194. ds_hidden_smsdata.setColumn(0,"rsrvtime", "");
  1195. var dutplceinstcd = sysf_getUserInfo("dutplceinstcd");
  1196. if(dutplceinstcd == "031") {
  1197. ds_hidden_smsdata.setColumn(0,"replytelno", "0532005114");
  1198. } else {
  1199. ds_hidden_smsdata.setColumn(0,"replytelno", "");
  1200. }
  1201. if(sGubun == "C") {
  1202. ds_hidden_smsdata.setColumn(0, "kakaocd", "kkocom0003");
  1203. ds_hidden_smsdata.setColumn(0, "lmstitle", "회진취소");
  1204. } else {
  1205. ds_hidden_smsdata.setColumn(0, "kakaocd", "kkocom0002");
  1206. ds_hidden_smsdata.setColumn(0, "lmstitle", "회진알림");
  1207. }
  1208. ds_hidden_smsdata_recvr.clearData();
  1209. ds_hidden_smsdata_recvr.enableevent = false;
  1210. for (var i = 0; i < ds_dr_pat.rowcount; i++ ) {
  1211. if(ds_dr_pat.getColumn(i, "chk") == "1") {
  1212. var nRow = ds_hidden_smsdata_recvr.addRow();
  1213. ds_hidden_smsdata_recvr.setColumn(nRow, "chk", "1");
  1214. ds_hidden_smsdata_recvr.setColumn(nRow, "recvrnm", ds_dr_pat.getColumn(i, "hngnm"));
  1215. ds_hidden_smsdata_recvr.setColumn(nRow, "recvrtelno", ds_dr_pat.getColumn(i, "mpphontel"));
  1216. var sSmsMsg = ds_dr_pat.getColumn(i, "hngnm") + "님(" + ds_dr_pat.getColumn(i, "pid") + ")\n";
  1217. if(sGubun == "C") { // 취소문자
  1218. sSmsMsg = sSmsMsg + "응급상황이 발생하여 부득이하게 " + ds_dr_info.getColumn(0, "deptnm") + " " + ds_dr_info.getColumn(0, "drnm") + "교수 회진이 연기되었음을 알려드립니다."
  1219. } else {
  1220. sSmsMsg = sSmsMsg + "잠시 후 " + ds_dr_info.getColumn(0, "deptnm") + " " + ds_dr_info.getColumn(0, "drnm") + "교수 회진이 시작될 예정이오니 병실에 계시기 바랍니다.\n"
  1221. + "회진은 병실별로 진행되므로 다소 시간이 지연될 수 있습니다.";
  1222. }
  1223. if(dutplceinstcd == "031") {
  1224. sSmsMsg = sSmsMsg + "\n- 경북대학교병원";
  1225. } else if(dutplceinstcd == "031") {
  1226. sSmsMsg = sSmsMsg + "\n- 칠곡경북대병원";
  1227. }
  1228. ds_hidden_smsdata_recvr.setColumn(nRow, "msgcnts", sSmsMsg);
  1229. }
  1230. }
  1231. ds_hidden_smsdata_recvr.enableevent = true;
  1232. var objArg = new Object();
  1233. objArg.arg_ds_main = ds_hidden_smsdata;
  1234. objArg.arg_ds_recvr = ds_hidden_smsdata_recvr;
  1235. frmf_open("SPZMS00100", "SPZMS00100", objArg, "","1", "700", "400", "", "", "", "", "","M");
  1236. }
  1237. function grp_right_bottom_btn_Save_onclick(obj:Button, e:ClickEventInfo)
  1238. {
  1239. var sDrNo = ds_dr_info.getColumn(0, "drno");
  1240. if(utlf_isNull(sDrNo)) {
  1241. alert("선택 된 회진정보가 없습니다.");
  1242. return;
  1243. }
  1244. var sDutPlceCd = sysf_getUserInfo("dutplcecd");
  1245. var sDeptCd = ds_dr_info.getColumn(0, "deptcd");
  1246. if(sDeptCd != sDutPlceCd && !lf_ContainsHardCD("609", sDutPlceCd)) {
  1247. sysf_messageBox("로그인 진료과의 회진 정보만 저장 가능 합니다.", "E");
  1248. return;
  1249. }
  1250. nFindRow = ds_dr_pat.findRow("chk", "1"); // 검색된 항목이 없으면 -1리턴
  1251. if(nFindRow < 0) {
  1252. sysf_messageBox("저장 할 환자을 선택 하세요.", "E");
  1253. return;
  1254. }
  1255. if( sysf_messageBox("회진환자 정보를","Q002") == 6 ){
  1256. var oParam = {};
  1257. oParam.id = "TXMMI01004";
  1258. oParam.service = "prcpinfoapp.PrcpInfoEtcMngt";
  1259. oParam.method = "reqExeSaveDrPat";
  1260. oParam.inds = "req=ds_dr_pat";
  1261. oParam.outds = "";
  1262. oParam.async = false;
  1263. tranf_submit(oParam);
  1264. fSetDrInfo();
  1265. }
  1266. }
  1267. function grp_right_bottom_button8_onclick(obj:Button, e:ClickEventInfo)
  1268. {
  1269. var sDrDd = ds_dr_info.getColumn(0, "drdd");
  1270. var sDrNo = ds_dr_info.getColumn(0, "drno");
  1271. if(utlf_isNull(sDrNo)) {
  1272. alert("선택 된 회진정보가 없습니다.");
  1273. return;
  1274. }
  1275. frmf_modal("SPPMC02500", "SPPMC02500", null, null, null, null, null, null, null, null, null, null, "M");
  1276. if(!utlf_isNull(this.objects["ds_patinfolist"])) {
  1277. var sPid = ds_patinfolist.getColumn(0, "pid");
  1278. var sHngnm = ds_patinfolist.getColumn(0, "hngnm");
  1279. nFindRow = ds_dr_pat.findRow("pid", sPid); // 검색된 항목이 없으면 -1리턴
  1280. if(nFindRow > 0) {
  1281. sysf_messageBox(sHngnm + "(" + sPid + ")님은 이미 회진 환자로 등록 되어 있습니다.", "E");
  1282. return;
  1283. }
  1284. ds_dr_pat.addRow();
  1285. grp_right_bottom.grd_drpatlist.showEditor(true);
  1286. var nRow = ds_dr_pat.rowposition; //grd_ahrcdlist.row;
  1287. ds_dr_pat.setColumn(nRow, "chk", "1");
  1288. ds_dr_pat.setColumn(nRow, "drdd", sDrDd);
  1289. ds_dr_pat.setColumn(nRow, "drno", sDrNo);
  1290. ds_dr_pat.setColumn(nRow, "pid", sPid);
  1291. ds_dr_pat.setColumn(nRow, "hngnm", sHngnm);
  1292. }
  1293. }
  1294. function grp_right_bottom_button9_onclick(obj:Button, e:ClickEventInfo)
  1295. {
  1296. var sDrNo = ds_dr_info.getColumn(0, "drno");
  1297. if(utlf_isNull(sDrNo)) {
  1298. alert("선택 된 회진정보가 없습니다.");
  1299. return;
  1300. }
  1301. var sDutPlceCd = sysf_getUserInfo("dutplcecd");
  1302. var sDeptCd = ds_dr_info.getColumn(0, "deptcd");
  1303. if(sDeptCd != sDutPlceCd && !lf_ContainsHardCD("609", sDutPlceCd)) {
  1304. sysf_messageBox("로그인 진료과의 회진 정보만 삭제 가능 합니다.", "E");
  1305. return;
  1306. }
  1307. nFindRow = ds_dr_pat.findRow("chk", "1"); // 검색된 항목이 없으면 -1리턴
  1308. if(nFindRow < 0) {
  1309. sysf_messageBox("삭제 할 환자을 선택 하세요.", "E");
  1310. return;
  1311. }
  1312. if( sysf_messageBox("회진환자 정보를 삭제 하시겠습니까?","Q999") == 6 ){
  1313. var oParam = {};
  1314. oParam.id = "TXMMI01004";
  1315. oParam.service = "prcpinfoapp.PrcpInfoEtcMngt";
  1316. oParam.method = "reqExeDelDrPat";
  1317. oParam.inds = "req=ds_dr_pat";
  1318. oParam.outds = "";
  1319. oParam.async = false;
  1320. tranf_submit(oParam);
  1321. fSetDrInfo();
  1322. }
  1323. }
  1324. function btn_excel_onclick(obj:Button, e:ClickEventInfo)
  1325. {
  1326. var sDrDd = ds_dr_info.getColumn(0, "drdd");
  1327. var sDrNo = ds_dr_info.getColumn(0, "drno");
  1328. if(utlf_isNull(sDrNo)) {
  1329. alert("선택 된 회진정보가 없습니다.");
  1330. return;
  1331. }
  1332. grdf_exportExcel(grp_right_bottom.grd_drpatlist, "회진환자" + sDrDd, sDrDd, false, null, "user", true);
  1333. }
  1334. function grp_right_middle_grd_drstafflist_onrbuttondown(obj:Grid, e:GridMouseEventInfo)
  1335. {
  1336. if(e.row < 0 || e.col < 0) return;
  1337. grdf_setSelectedCell(obj, e);
  1338. pmn_menu_staff.trackPopup(e.screenX,e.screenY);
  1339. }
  1340. function pmn_menu_staff_onmenuclick(obj:PopupMenu, e:MenuClickEventInfo)
  1341. {
  1342. eval(e.id + "()");
  1343. }
  1344. function pmn_menu_pat_onmenuclick(obj:PopupMenu, e:MenuClickEventInfo)
  1345. {
  1346. eval(e.id + "()");
  1347. }
  1348. function grp_right_bottom_grd_drpatlist_onrbuttondown(obj:Grid, e:GridMouseEventInfo)
  1349. {
  1350. if(e.row < 0 || e.col < 0) return;
  1351. //var ev = new ClickEventInfo;
  1352. //frmf_inputEnterKey("grp_right_bottom.button6", "onclick", ev );
  1353. grdf_setSelectedCell(obj, e);
  1354. pmn_menu_pat.trackPopup(e.screenX,e.screenY);
  1355. }
  1356. function fSrchSmsStaff() {
  1357. var cur_row = ds_dr_staff.rowposition;
  1358. var sTelNo = ds_dr_staff.getColumn(cur_row, "mpphonno");
  1359. fSrchSmsHist(sTelNo);
  1360. }
  1361. function fSrchSmsPat() {
  1362. var cur_row = ds_dr_pat.rowposition;
  1363. var sTelNo = ds_dr_pat.getColumn(cur_row, "mpphontel");
  1364. fSrchSmsHist(sTelNo);
  1365. }
  1366. function fSrchSmsHist(sTelNo)
  1367. {
  1368. var sDrDd = ds_dr_info.getColumn(0, "drdd");
  1369. var sDrNo = ds_dr_info.getColumn(0, "drno");
  1370. var sDeptNm = ds_dr_info.getColumn(0, "deptnm");
  1371. if(utlf_isNull(sDrNo)) {
  1372. alert("선택 된 회진정보가 없습니다.");
  1373. return;
  1374. }
  1375. ds_hidden_smsdata_hist.clearData();
  1376. ds_hidden_smsdata_hist.addRow();
  1377. ds_hidden_smsdata_hist.setColumn(0, "rsrvyn", "0");
  1378. ds_hidden_smsdata_hist.setColumn(0, "fstrgstdt", sDrDd);
  1379. ds_hidden_smsdata_hist.setColumn(0, "fstrgstdt_end", sDrDd);
  1380. ds_hidden_smsdata_hist.setColumn(0, "deptnm", sDeptNm);
  1381. ds_hidden_smsdata_hist.setColumn(0, "recvrtelno", sTelNo.replace("-", ""));
  1382. ds_hidden_smsdata_hist.setColumn(0, "system", "his");
  1383. var objArg = new Object();
  1384. objArg.arg_ds_send = ds_hidden_smsdata_hist;
  1385. frmf_open("SMZMS00300", "SMZMS00300", objArg, "","1", "700", "400", "", "", "", "", "","M");
  1386. }
  1387. function grp_right_bottom_btn_print_onclick(obj:Button, e:ClickEventInfo)
  1388. {
  1389. var objDOM = rptf_createDOM(); // DOM 객체 설정
  1390. rptf_setNodeListToDOM(objDOM, "/root/main/drinfo", ds_dr_info); // 데이터셋 1
  1391. rptf_setNodeListToDOM(objDOM, "/root/main/drpatlist", ds_dr_pat); // 데이터셋 2
  1392. // sysf_trace(objDOM.documentElement.source); // XML 내용출력
  1393. var objParam = new Object();
  1394. objParam.xml_data_XML1 = objDOM.documentElement.source; // 최상의노드 XML 스트링 추출
  1395. var option = "open=1;save=1;directprint=0;print=1;zoom=0;";
  1396. rptf_exeReportPreview30(["RPMMI01001"],[objParam], option);
  1397. }
  1398. function grp_left_roundrect2_btn_print_onclick(obj:Button, e:ClickEventInfo)
  1399. {
  1400. var oParam = {};
  1401. oParam.id = "TRMMI01003";
  1402. oParam.service = "prcpinfoapp.PrcpInfoEtcMngt";
  1403. oParam.method = "reqGetDrPrintSche";
  1404. oParam.inds = "req=ds_cond";
  1405. oParam.outds = "ds_dr_printsche=sche";
  1406. oParam.async = false;
  1407. tranf_submit(oParam);
  1408. var objDOM = rptf_createDOM(); // DOM 객체 설정
  1409. rptf_setNodeListToDOM(objDOM, "/root/main/printsche", ds_dr_printsche); // 데이터셋 1
  1410. sysf_trace(objDOM.documentElement.source); // XML 내용출력
  1411. var objParam = new Object();
  1412. objParam.xml_data_XML1 = objDOM.documentElement.source; // 최상의노드 XML 스트링 추출
  1413. var option = "open=1;save=1;directprint=0;print=1;zoom=0;";
  1414. rptf_exeReportPreview30(["RPMMI01002"],[objParam], option);
  1415. }
  1416. function grp_right_bottom_btn_sendward_onclick(obj:Button, e:ClickEventInfo)
  1417. {
  1418. var sDrNo = ds_dr_info.getColumn(0, "drno");
  1419. if(utlf_isNull(sDrNo)) {
  1420. alert("선택 된 회진정보가 없습니다.");
  1421. return;
  1422. }
  1423. var sDutPlceCd = sysf_getUserInfo("dutplcecd");
  1424. var sDeptCd = ds_dr_info.getColumn(0, "deptcd");
  1425. if(sDeptCd != sDutPlceCd && !lf_ContainsHardCD("609", sDutPlceCd)) {
  1426. sysf_messageBox("로그인 진료과의 회진 정보만 SMS 전송 가능 합니다.", "E");
  1427. return;
  1428. }
  1429. var sSmsMsg = "";
  1430. sSmsMsg = sSmsMsg + " ■ " + ds_dr_info.getColumn(0, "drnm") + " 교수 회진 ■"
  1431. sSmsMsg = sSmsMsg + "\n잠시 후 " + ds_dr_info.getColumn(0, "fromtm").substring(0, 2) + "시" + ds_dr_info.getColumn(0, "fromtm").substring(2, 4) +"분 부터 회진 예정입니다."
  1432. ds_hidden_msgdata.clearData();
  1433. ds_hidden_msgdata.addRow();
  1434. ds_hidden_msgdata.setColumn(0,"msgcnts", sSmsMsg);
  1435. ds_hidden_msgdata_recvr.clearData();
  1436. var oParam = {};
  1437. oParam.id = "TRMMI01004";
  1438. oParam.service = "prcpinfoapp.PrcpInfoEtcMngt";
  1439. oParam.method = "reqGetWardWorkUserList";
  1440. oParam.inds = "req=ds_dr_pat";
  1441. oParam.outds = "ds_hidden_msgdata_recvr=userlist";
  1442. oParam.async = false;
  1443. tranf_submit(oParam);
  1444. var objArg = new Object();
  1445. objArg.arg_ds_msgdata = ds_hidden_msgdata;
  1446. objArg.arg_ds_msgdata_recvr = ds_hidden_msgdata_recvr;
  1447. frmf_modalInternal("msgbox", "com_hismainxp::form_msgbox.xfdl", objArg, null, null, null, null, null, null, null, null, null, "P");
  1448. }
  1449. function grp_left_grd_histtree_onrbuttondown(obj:Grid, e:GridMouseEventInfo)
  1450. {
  1451. if(e.row < 0 || e.col < 0) return;
  1452. //20190417 이돈희 : 우클릭시에 회진 정보 조회 기능 수행
  1453. ds_dr_hist.selectRow(e.row);
  1454. fSetDrInfo();
  1455. grdf_setSelectedCell(obj, e);
  1456. pmn_menu_drhist.trackPopup(e.screenX,e.screenY);
  1457. }
  1458. //20190417 이돈희 : 회진이력에서 우클릭 메뉴로 삭제기능 수행
  1459. function fDeleteDrHist(){
  1460. var nRow = grp_left.grd_histtree.currentrow;
  1461. var sDrNo = ds_dr_hist.getColumn(nRow, "drno");
  1462. var sDrdd = ds_dr_hist.getColumn(nRow, "drdd");
  1463. if(utlf_isNull(sDrNo)) {
  1464. alert("선택 된 회진이 없습니다.");
  1465. return;
  1466. }
  1467. var sDutPlceCd = sysf_getUserInfo("dutplcecd");
  1468. var sDeptCd = ds_dr_info.getColumn(0, "deptcd");
  1469. if(sDeptCd != sDutPlceCd && !lf_ContainsHardCD("609", sDutPlceCd)) {
  1470. sysf_messageBox("로그인 진료과의 회진 정보만 삭제 가능 합니다.", "E");
  1471. return;
  1472. }
  1473. ds_dr_info.setColumn(0, "status", "d");
  1474. fSaveDrMasterInfo("Q001");
  1475. }
  1476. function pmn_menu_drhist_onmenuclick(obj:PopupMenu, e:MenuClickEventInfo)
  1477. {
  1478. eval(e.id + "()");
  1479. }
  1480. ]]></Script>
  1481. </Form>
  1482. </FDL>