SMMMO02900_처방진료대상자.xfdl 52 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <FDL version="1.5">
  3. <TypeDefinition url="..\..\..\default_typedef.xml"/>
  4. <Form id="SMMMO02900" position="absolute 0 0 382 635" titletext="처방진료대상자" oninit="SMMMO02900_oninit" onload="SMMMO02900_onload">
  5. <Layouts>
  6. <Layout>
  7. <Div id="Div00" taborder="1" text="Div00" position="absolute 0 0 382 80" class="div_SA2">
  8. <Layouts>
  9. <Layout>
  10. <Static id="caption1" text="진료일 :" class="search_name" position="absolute 10 7 70 27" anchor="default"/>
  11. <Static id="caption2" text="진료과 :" class="search_name" position="absolute 10 33 70 50" anchor="default"/>
  12. <Static id="caption4" text="환자구분 :" position="absolute 10 58 85 75" anchor="default" class="search_name"/>
  13. <Calendar id="ipt_orddd" taborder="0" position="absolute 84 7 176 27" anchor="default" dateformat="yyyy-MM-dd" value="null" autoselect="true" autoskip="true"/>
  14. <Radio id="cmb_ordtype" taborder="4" columncount="2" rowcount="0" codecolumn="codecolumn" datacolumn="datacolumn" position="absolute 340 56 382 76" anchor="default" onitemchanged="Div00_cmb_ordtype_onitemchanged" visible="false">
  15. <Dataset id="innerdataset">
  16. <ColumnInfo>
  17. <Column id="codecolumn"/>
  18. <Column id="datacolumn"/>
  19. </ColumnInfo>
  20. <Rows>
  21. <Row>
  22. <Col id="codecolumn">O</Col>
  23. <Col id="datacolumn">외래</Col>
  24. </Row>
  25. </Rows>
  26. </Dataset>
  27. </Radio>
  28. <Radio id="rdo_patflagstat" taborder="1" columncount="5" rowcount="0" codecolumn="codecolumn" datacolumn="datacolumn" position="absolute 90 56 358 76" anchor="default" onitemchanged="Div00_rdo_patflagstat_onitemchanged">
  29. <Dataset id="innerdataset">
  30. <ColumnInfo>
  31. <Column id="codecolumn"/>
  32. <Column id="datacolumn"/>
  33. </ColumnInfo>
  34. <Rows>
  35. <Row>
  36. <Col id="codecolumn">-</Col>
  37. <Col id="datacolumn">전체</Col>
  38. </Row>
  39. <Row>
  40. <Col id="codecolumn">D</Col>
  41. <Col id="datacolumn">퇴원</Col>
  42. </Row>
  43. <Row>
  44. <Col id="codecolumn">P</Col>
  45. <Col id="datacolumn">입원예정</Col>
  46. </Row>
  47. <Row>
  48. <Col id="codecolumn">F</Col>
  49. <Col id="datacolumn">입실완료</Col>
  50. </Row>
  51. </Rows>
  52. </Dataset>
  53. </Radio>
  54. <Radio id="rdo_patflag" taborder="3" columncount="5" rowcount="0" codecolumn="codecolumn" datacolumn="datacolumn" position="absolute 90 56 358 76" anchor="default" onitemchanged="Div00_rdo_patflag_onitemchanged">
  55. <Dataset id="innerdataset">
  56. <ColumnInfo>
  57. <Column id="codecolumn"/>
  58. <Column id="datacolumn"/>
  59. </ColumnInfo>
  60. <Rows>
  61. <Row>
  62. <Col id="codecolumn">-</Col>
  63. <Col id="datacolumn">전체</Col>
  64. </Row>
  65. <Row>
  66. <Col id="codecolumn">9</Col>
  67. <Col id="datacolumn">미접수</Col>
  68. </Row>
  69. <Row>
  70. <Col id="codecolumn">0</Col>
  71. <Col id="datacolumn">접수</Col>
  72. </Row>
  73. <Row>
  74. <Col id="codecolumn">1</Col>
  75. <Col id="datacolumn">대기</Col>
  76. </Row>
  77. <Row>
  78. <Col id="codecolumn">2</Col>
  79. <Col id="datacolumn">완료</Col>
  80. </Row>
  81. </Rows>
  82. </Dataset>
  83. </Radio>
  84. <Button id="btn_search" taborder="2" text="조회" class="btn1" position="absolute 316 7 372 27" anchor="default" onclick="Div00_btn_search_onclick"/>
  85. <Combo id="cmb_orddept" taborder="5" innerdataset="@ds_orddept" codecolumn="deptcd" datacolumn="depthngnm" position="absolute 84 33 209 53" anchor="default" onitemchanged="Div00_cmb_orddept_onitemchanged"/>
  86. <Static id="caption5" text="진료의 :" class="search_name" position="absolute 223 33 283 53" anchor="default"/>
  87. <Combo id="cmb_orddrid" taborder="6" innerdataset="@ds_userlist" codecolumn="userid" datacolumn="usernm" position="absolute 286 33 372 53" anchor="default" onitemchanged="Div00_cmb_orddrid_onitemchanged"/>
  88. <CheckBox id="chk_delay" taborder="7" text="분 지연표시" value="N" truevalue="Y" falsevalue="N" onclick="Div00_chk_delay_onclick" visible="false" position="absolute 193 7 304 27" style="textpadding:0 0 0 29;"/>
  89. <Edit id="edt_delaytime" taborder="8" inputfilter="dot,comma,sign,symbol,alpha,space" inputtype="number,digit" maxlength="2" autoselect="true" visible="false" position="absolute 213 7 238 27"/>
  90. </Layout>
  91. </Layouts>
  92. </Div>
  93. <Grid id="grd_inpatlist" taborder="3" binddataset="ds_main_inpatlist" position="absolute 0 83 382 635" visible="false" oncelldblclick="grd_inpatlist_oncelldblclick" anchor="all">
  94. <Formats>
  95. <Format id="default">
  96. <Columns>
  97. <Column size="76"/>
  98. <Column size="0"/>
  99. <Column size="0"/>
  100. <Column size="0"/>
  101. <Column size="77"/>
  102. <Column size="0"/>
  103. <Column size="49"/>
  104. <Column size="57"/>
  105. <Column size="57"/>
  106. <Column size="0"/>
  107. </Columns>
  108. <Rows>
  109. <Row size="24" band="head"/>
  110. <Row size="24"/>
  111. </Rows>
  112. <Band id="head">
  113. <Cell text="등록번호"/>
  114. <Cell col="1" text="cretno"/>
  115. <Cell col="2" text="indd"/>
  116. <Cell col="3" text="instcd"/>
  117. <Cell col="4" text="이름"/>
  118. <Cell col="5" text="color"/>
  119. <Cell col="6" text="SA"/>
  120. <Cell col="7" text="병실"/>
  121. <Cell col="8" text="익일정규"/>
  122. <Cell col="9" text="ioflag"/>
  123. </Band>
  124. <Band id="body">
  125. <Cell text="bind:pid"/>
  126. <Cell col="1" text="bind:cretno"/>
  127. <Cell col="2" text="bind:indd"/>
  128. <Cell col="3" text="bind:instcd"/>
  129. <Cell col="4" text="bind:hngnm"/>
  130. <Cell col="5" text="bind:color"/>
  131. <Cell col="6" text="bind:sa"/>
  132. <Cell col="7" text="bind:roomcd"/>
  133. <Cell col="8" text="bind:dayregular"/>
  134. <Cell col="9" text="bind:ioflag"/>
  135. </Band>
  136. </Format>
  137. </Formats>
  138. </Grid>
  139. <Grid id="grd_outpatlist" taborder="2" binddataset="ds_main_outpatlist" position="absolute 0 83 382 635" visible="false" oncelldblclick="grd_outpatlist_oncelldblclick" anchor="all">
  140. <Formats>
  141. <Format id="default">
  142. <Columns>
  143. <Column size="20"/>
  144. <Column size="0"/>
  145. <Column size="0"/>
  146. <Column size="0"/>
  147. <Column size="38"/>
  148. <Column size="60"/>
  149. <Column size="60"/>
  150. <Column size="40"/>
  151. <Column size="51"/>
  152. <Column size="62"/>
  153. <Column size="40"/>
  154. </Columns>
  155. <Rows>
  156. <Row size="24" band="head"/>
  157. <Row size="24"/>
  158. </Rows>
  159. <Band id="head">
  160. <Cell/>
  161. <Cell col="1" text="instcd"/>
  162. <Cell col="2" text="orddd"/>
  163. <Cell col="3" text="cretno"/>
  164. <Cell col="4" text="시간"/>
  165. <Cell col="5" text="등록번호"/>
  166. <Cell col="6" text="이름"/>
  167. <Cell col="7" text="SA"/>
  168. <Cell col="8" text="초재진"/>
  169. <Cell col="9" text="보험유형"/>
  170. <Cell col="10" text="심사"/>
  171. </Band>
  172. <Band id="body">
  173. <Cell celltype="head" text="expr:currow + 1"/>
  174. <Cell col="1" text="bind:instcd"/>
  175. <Cell col="2" text="bind:orddd"/>
  176. <Cell col="3" text="bind:cretno"/>
  177. <Cell col="4" style="background:EXPR(fChngGrdCellColor(color));background2:EXPR(fChngGrdCellColor(color));" text="bind:ordtm" mask="##:##"/>
  178. <Cell col="5" style="background:EXPR(fChngGrdCellColor(color));background2:EXPR(fChngGrdCellColor(color));" text="bind:pid"/>
  179. <Cell col="6" style="background:EXPR(fChngGrdCellColor(color));background2:EXPR(fChngGrdCellColor(color));" text="bind:hngnm"/>
  180. <Cell col="7" style="background:EXPR(fChngGrdCellColor(color));background2:EXPR(fChngGrdCellColor(color));" text="bind:sa"/>
  181. <Cell col="8" style="background:EXPR(fChngGrdCellColor(color));background2:EXPR(fChngGrdCellColor(color));" text="bind:fsexamflagnm"/>
  182. <Cell col="9" style="background:EXPR(fChngGrdCellColor(color));background2:EXPR(fChngGrdCellColor(color));" text="bind:insukindnm"/>
  183. <Cell col="10" style="background:EXPR(fChngGrdCellColor(color));background2:EXPR(fChngGrdCellColor(color));" text="bind:bfjudgvalue"/>
  184. </Band>
  185. </Format>
  186. </Formats>
  187. </Grid>
  188. </Layout>
  189. </Layouts>
  190. <Objects>
  191. <Dataset id="ds_main_outpatlist" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" reversesubsum="false">
  192. <ColumnInfo>
  193. <Column id="instcd" type="STRING" size="256" sumtext="instcd"/>
  194. <Column id="orddd" type="STRING" size="256" sumtext="내원일"/>
  195. <Column id="pid" type="STRING" size="256" sumtext="등록번호"/>
  196. <Column id="cretno" type="STRING" size="256" sumtext="생성번호"/>
  197. <Column id="ioflag" type="STRING" size="256" sumtext="ioflag"/>
  198. <Column id="hngnm" type="STRING" size="256" sumtext="이름"/>
  199. <Column id="sa" type="STRING" size="256" sumtext="성별/나이"/>
  200. <Column id="ordtm" type="STRING" size="256" sumtext="예약시간"/>
  201. <Column id="insukindnm" type="STRING" size="256" sumtext="보험유형"/>
  202. <Column id="fsexamflagnm" type="STRING" size="256" sumtext="초재진"/>
  203. <Column id="color" type="STRING" size="256" sumtext="내환자 적용 환자 컬러"/>
  204. <Column id="bfjudgvalue" type="STRING" size="256"/>
  205. </ColumnInfo>
  206. </Dataset>
  207. <Dataset id="ds_main_inpatlist" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" reversesubsum="false">
  208. <ColumnInfo>
  209. <Column id="roomcd" type="STRING" size="256" sumtext="병실"/>
  210. <Column id="pid" type="STRING" size="256" sumtext="등록번호"/>
  211. <Column id="ioflag" type="STRING" size="256" sumtext="ioflag"/>
  212. <Column id="hngnm" type="STRING" size="256" sumtext="이름"/>
  213. <Column id="sa" type="STRING" size="256" sumtext="성별/나이"/>
  214. <Column id="instcd" type="STRING" size="256" sumtext="instcd"/>
  215. <Column id="cretno" type="STRING" size="256" sumtext="생성번호"/>
  216. <Column id="indd" type="STRING" size="256" sumtext="입원일"/>
  217. <Column id="color" type="STRING" size="256" sumtext="내환자 적용 환자 컬러"/>
  218. <Column id="repltype" type="STRING" size="256" sumtext="회신유형"/>
  219. <Column id="dayregular" type="STRING" size="256" sumtext="익일정규"/>
  220. </ColumnInfo>
  221. </Dataset>
  222. <Dataset id="ds_orddept" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" reversesubsum="false">
  223. <ColumnInfo>
  224. <Column id="depthngnm" type="STRING"/>
  225. <Column id="deptcd" type="STRING"/>
  226. </ColumnInfo>
  227. </Dataset>
  228. <Dataset id="ds_userlist" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" reversesubsum="false">
  229. <ColumnInfo>
  230. <Column id="usernm" type="STRING"/>
  231. <Column id="userid" type="STRING"/>
  232. </ColumnInfo>
  233. </Dataset>
  234. <Dataset id="ds_main_cond" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  235. <ColumnInfo>
  236. <Column id="orddd" type="STRING" size="256"/>
  237. <Column id="ordtype" type="STRING" size="256"/>
  238. <Column id="elbulbodstat" type="STRING" size="256"/>
  239. <Column id="patflagstat" type="STRING" size="256"/>
  240. <Column id="userid" type="STRING" size="256"/>
  241. <Column id="orddeptcd" type="STRING" size="256"/>
  242. <Column id="orddrid" type="STRING" size="256"/>
  243. <Column id="delayflag" type="STRING" size="256"/>
  244. <Column id="delaytime" type="STRING" size="256"/>
  245. <Column id="delayexpt" type="STRING" size="256"/>
  246. </ColumnInfo>
  247. <Rows>
  248. <Row>
  249. <Col id="ordtype">O</Col>
  250. <Col id="elbulbodstat">1</Col>
  251. <Col id="patflagstat">-</Col>
  252. </Row>
  253. </Rows>
  254. </Dataset>
  255. <Dataset id="ds_send_reqdata" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false"/>
  256. <Dataset id="ds_root" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  257. <ColumnInfo>
  258. <Column id="cpflag" type="STRING" size="256"/>
  259. </ColumnInfo>
  260. <Rows>
  261. <Row/>
  262. </Rows>
  263. </Dataset>
  264. <Dataset id="ds_reqdata2" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  265. <ColumnInfo>
  266. <Column id="pid" type="STRING" size="256" sumtext="등록번호"/>
  267. <Column id="cretno" type="STRING" size="256" sumtext="원무생성번호"/>
  268. <Column id="orddd" type="STRING" size="256" sumtext="입원/진료일"/>
  269. <Column id="stnddd" type="STRING" size="256" sumtext="기준일자"/>
  270. </ColumnInfo>
  271. </Dataset>
  272. <Dataset id="ds_opprcpinfo" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  273. <ColumnInfo>
  274. <Column id="opprcpflag" type="STRING" size="256" sumtext="수술처방구분"/>
  275. <Column id="opcnfmdd" type="STRING" size="256" sumtext="수술확정일자"/>
  276. </ColumnInfo>
  277. </Dataset>
  278. <Dataset id="ds_TRMMO04303" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  279. <ColumnInfo>
  280. <Column id="pid" type="STRING" size="256" sumtext="등록번호"/>
  281. <Column id="orddd" type="STRING" size="256" sumtext="진료일자"/>
  282. <Column id="cretno" type="INT" size="256" sumtext="생성번호"/>
  283. <Column id="hngnm" type="STRING" size="256" sumtext="성명"/>
  284. <Column id="prcpgenrflag" type="STRING" size="256" sumtext="I/O/E flag"/>
  285. <Column id="srchtabflag" type="STRING" size="256" sumtext="조회하는 대상자리스트 탭(I/O/D/E)"/>
  286. </ColumnInfo>
  287. </Dataset>
  288. <Dataset id="ds_rsltgetdata" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  289. <ColumnInfo>
  290. <Column id="cpgno" type="STRING" size="256" sumtext="cpg번호"/>
  291. <Column id="cpghistseq" type="STRING" size="256" sumtext="cpg이력번호"/>
  292. <Column id="cpgappno" type="STRING" size="256" sumtext="적용번호"/>
  293. <Column id="histseq" type="STRING" size="256" sumtext="적용이력번호"/>
  294. <Column id="appdd" type="STRING" size="256" sumtext="적용일자"/>
  295. <Column id="pid" type="STRING" size="256" sumtext="등록번호"/>
  296. <Column id="cretno" type="STRING" size="256" sumtext="생성번호"/>
  297. <Column id="ioflag" type="STRING" size="256" sumtext="I/O/E flag"/>
  298. <Column id="orddd" type="STRING" size="256" sumtext="진료일자"/>
  299. <Column id="getformyn" type="STRING" size="256" sumtext="서식존재여부"/>
  300. <Column id="appyn" type="STRING" size="256" sumtext="적용여부"/>
  301. <Column id="appstat" type="STRING" size="256" sumtext="적용상태"/>
  302. <Column id="cpgnm" type="STRING" size="256" sumtext="cpg명"/>
  303. <Column id="prtlflagcd" type="STRING" size="256" sumtext="cp/cpg구분(01:CP/02:CPG)"/>
  304. <Column id="msgcnts" type="STRING" size="256" sumtext="출력Msg내용"/>
  305. <Column id="msgflag" type="STRING" size="256" sumtext="출력Msg구분"/>
  306. </ColumnInfo>
  307. </Dataset>
  308. <Dataset id="ds_reqdata3" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  309. <ColumnInfo>
  310. <Column id="pid" type="STRING" size="256"/>
  311. <Column id="ioflag" type="STRING" size="256"/>
  312. </ColumnInfo>
  313. </Dataset>
  314. <Dataset id="ds_patuncoinfo" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  315. <ColumnInfo>
  316. <Column id="outuncoamt" type="INT" size="256" sumtext="외래미수"/>
  317. <Column id="unconm" type="STRING" size="256" sumtext="미수코드명"/>
  318. <Column id="dschuncoamt" type="INT" size="256" sumtext="퇴원미수"/>
  319. <Column id="aiduncoamt" type="INT" size="256" sumtext="후원회미수"/>
  320. <Column id="bogjamt" type="INT" size="256" sumtext="선수금"/>
  321. <Column id="bogjvipamt" type="INT" size="256" sumtext="외래수납VIP선수금"/>
  322. </ColumnInfo>
  323. </Dataset>
  324. <Dataset id="ds_complaininfo" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  325. <ColumnInfo>
  326. <Column id="chk" type="STRING" size="256" sumtext="체크"/>
  327. </ColumnInfo>
  328. </Dataset>
  329. </Objects>
  330. <Bind>
  331. <BindItem id="item0" compid="Div00.ipt_orddd" propid="value" datasetid="ds_main_cond" columnid="orddd"/>
  332. <BindItem id="item1" compid="Div00.cmb_ordtype" propid="value" datasetid="ds_main_cond" columnid="ordtype"/>
  333. <BindItem id="item2" compid="Div00.cmb_orddept" propid="value" datasetid="ds_main_cond" columnid="orddeptcd"/>
  334. <BindItem id="item3" compid="Div00.cmb_orddrid" propid="value" datasetid="ds_main_cond" columnid="orddrid"/>
  335. <BindItem id="item4" compid="Div00.rdo_patflag" propid="value" datasetid="ds_main_cond" columnid="elbulbodstat"/>
  336. <BindItem id="item5" compid="Div00.rdo_patflagstat" propid="value" datasetid="ds_main_cond" columnid="patflagstat"/>
  337. <BindItem id="item9" compid="Div00.chk_delay" propid="value" datasetid="ds_cond" columnid="delayflag"/>
  338. <BindItem id="item10" compid="Div00.edt_delaytime" propid="value" datasetid="ds_cond" columnid="delaytime"/>
  339. </Bind>
  340. <Script type="xscript4.0"><![CDATA[/***************************************************************************************
  341. * System Name :
  342. * Job Name :
  343. * Creator :
  344. * Make Date : 2014-08-29
  345. * Description :
  346. *---------------------------------------------------------------------------------------
  347. * Modify Date Modifier Modify Description
  348. *---------------------------------------------------------------------------------------
  349. * 2014-08-29 Live Converter TF->XP
  350. *
  351. *---------------------------------------------------------------------------------------
  352. ****************************************************************************************/
  353. include "com_commonxp::comm_main.xjs";
  354. include "emr_prcpmngtxp::MMO001.xjs";
  355. include "emr_prcpmngtxp::SMMMO04100.xjs";
  356. var oOpener = this.getOwnerFrame().form;
  357. function SMMMO02900_oninit(obj:Form, e:InitEventInfo)
  358. {
  359. frmf_initForm(obj);
  360. grdf_initGrid(grd_outpatlist);
  361. grdf_initGrid(grd_inpatlist);
  362. }
  363. function SMMMO02900_onload(obj:Form, e:LoadEventInfo)
  364. {
  365. grdf_setToolTipBind(grd_outpatlist);
  366. grdf_setToolTipBind(grd_inpatlist);
  367. // cp 추가
  368. if(oOpener.name == "SMMMP00800") { // TF는 CP에 해당노드가 없으면 처방의 노드를 참조함 / XP는 CP에 해당 DS가 없으면 에러남
  369. oOpener = grp_biz.grp_prcp.imp_prcp;
  370. }
  371. fInitialize_SMMMO02900();
  372. }
  373. function refreshReqInterface() {
  374. fInitialize_SMMMO02900();
  375. }
  376. function Div00_cmb_ordtype_onitemchanged(obj:Radio, e:ItemChangeEventInfo)
  377. {
  378. fGrdInit();
  379. fChkGetData() ;
  380. }
  381. function Div00_btn_search_onclick(obj:Button, e:ClickEventInfo)
  382. {
  383. fChkGetData();
  384. }
  385. function Div00_cmb_orddept_onitemchanged(obj:Combo, e:ItemChangeEventInfo)
  386. {
  387. var sOrdDd = ds_main_cond.getColumn(0, "orddd");
  388. lf_mmbfGetUserComboList(ds_userlist, obj.value, "0330", "", "", sOrdDd);
  389. frmf_addComboItem("Div00.cmb_orddrid"); //의사콤보 전체항목 추가
  390. Div00.cmb_orddrid.index = 1;
  391. fChkGetData() ;
  392. }
  393. function Div00_cmb_orddrid_onitemchanged(obj:Combo, e:ItemChangeEventInfo)
  394. {
  395. fChkGetData() ;
  396. }
  397. function Div00_rdo_patflag_onitemchanged(obj:Radio, e:ItemChangeEventInfo)
  398. {
  399. fChkGetData() ;
  400. }
  401. function Div00_rdo_patflagstat_onitemchanged(obj:Radio, e:ItemChangeEventInfo)
  402. {
  403. fChkGetData() ;
  404. }
  405. function grd_outpatlist_oncelldblclick(obj:Grid, e:GridClickEventInfo)
  406. {
  407. if (e.row < 0 || e.col < 0) return;
  408. fMiniOutPat();
  409. }
  410. function grd_inpatlist_oncelldblclick(obj:Grid, e:GridClickEventInfo)
  411. {
  412. if (e.row < 0 || e.col < 0) return;
  413. fMiniInPat();
  414. }
  415. function Div00_chk_delay_onclick(obj:CheckBox, e:ClickEventInfo)
  416. {
  417. fChkGetData();
  418. }
  419. //===================================================================
  420. // 공통으로 사용하는 함수
  421. //===================================================================
  422. /**
  423. * @desc : 화면 초기화
  424. * @
  425. * @param :
  426. * @return :
  427. * @author : 엄영만
  428. * @---------------------------------------------------
  429. */
  430. function fInitialize_SMMMO02900(){
  431. var cur_day = utlf_getCurrentDate();
  432. var idate = new Date();
  433. var peveDate = idate.getAddDate(-1, "D");
  434. ds_main_cond.setColumn(0, "orddd", cur_day);
  435. ds_main_cond.setColumn(0, "userid", sysf_getUserId());
  436. fGrdInit() ;
  437. var mainObj = frmf_getMainViewer();
  438. var curCpObj = mainObj.frmf_findPopup("SMMMP00800"); //활성화된 CP Main 화면 object loading
  439. var curPrcpObj = mainObj.frmf_findPopup("SMMMO00100"); //활성화된 처방Main 화면 object loading
  440. lf_mmbfGetDeptCodeComboList(ds_orddept, "D");
  441. lf_mmbfGetUserComboList(ds_userlist, sysf_getUserInfo("dutplcecd"), "0330");
  442. frmf_addComboItem("Div00.cmb_orddrid"); //의사콤보 전체항목 추가
  443. if(oOpener.ds_prcppatlist.rowcount > 0) { // 최초 오픈이 아니면
  444. ds_main_cond.copyData(oOpener.ds_prcppatlist);
  445. } else { // 최초 오픈일때
  446. ds_main_cond.setColumn(0, "orddeptcd", sysf_getUserInfo("dutplcecd"));
  447. ds_main_cond.setColumn(0, "orddrid" , sysf_getUserInfo("userid"));
  448. var sUserEnv057 = lf_mmbfGetUserEnvQuestValue("057"); // 진료대상자 외래탭 지연환자 표시여부
  449. if(sUserEnv057 == "001") { // 지연환자 표시일경우
  450. var sUserEnv058 = lf_mmbfGetUserEnvQuestValue("058"); // 진료대상자 외래탭 지연환자 지연시간
  451. var sUserEnv059 = lf_mmbfGetUserEnvQuestValue("059"); // 진료대상자 외래탭 지연환자 지연 제외시간
  452. if(sUserEnv058 == "001") { ds_main_cond.setColumn(0, "delaytime", "10");
  453. } else if(sUserEnv058 == "002") { ds_main_cond.setColumn(0, "delaytime", "20");
  454. } else if(sUserEnv058 == "003") { ds_main_cond.setColumn(0, "delaytime", "30");
  455. } else if(sUserEnv058 == "004") { ds_main_cond.setColumn(0, "delaytime", "40");
  456. } else if(sUserEnv058 == "005") { ds_main_cond.setColumn(0, "delaytime", "50");
  457. } else if(sUserEnv058 == "006") { ds_main_cond.setColumn(0, "delaytime", "60");
  458. } else { ds_main_cond.setColumn(0, "delaytime", "30");
  459. }
  460. if(sUserEnv059 == "001") { ds_main_cond.setColumn(0, "delayexpt", "0");
  461. } else if(sUserEnv059 == "002") { ds_main_cond.setColumn(0, "delayexpt", "10");
  462. } else if(sUserEnv059 == "003") { ds_main_cond.setColumn(0, "delayexpt", "20");
  463. } else if(sUserEnv059 == "004") { ds_main_cond.setColumn(0, "delayexpt", "30");
  464. } else { ds_main_cond.setColumn(0, "delayexpt", "10");
  465. }
  466. ds_main_cond.setColumn(0, "delayflag" , "Y");
  467. } else {
  468. ds_main_cond.setColumn(0, "delayflag" , "N");
  469. }
  470. }
  471. fChkGetData() ;
  472. }
  473. /**
  474. * @desc : 처방화면, CP화면에 modal로 뜬 화면이 있는지 여부를 검사한다.
  475. * @ 수정 : 미니진료대상자에 맞게끔 내용 수정
  476. * @
  477. * @param :
  478. * @return :
  479. * @author : 오지훈
  480. * @---------------------------------------------------
  481. */
  482. function fChkScrnModal(){
  483. var cpflag = ds_root.getColumn(0, "cpflag"); //cpflag여부
  484. if(cpflag == "N"){
  485. var wndobj = frmf_findPopup("SMMMO00100");
  486. }else if(cpflag == "Y"){
  487. var wndobj = frmf_findPopup("SMMMP00800");
  488. }
  489. if(!utlf_isNull(wndobj)){
  490. var status = wndobj.frmf_getScreenDisabled();
  491. if(status == true){
  492. return false;
  493. }
  494. }
  495. }
  496. /**
  497. * @desc : 처방Main 화면 Open, CP환자인 경우 CP Main 화면 Open 또는 CP검색화면 Open (CP업무 추가 2007.09.27)
  498. * @
  499. * @param :
  500. * @return :
  501. * @---------------------------------------------------
  502. */
  503. function fOpenPrcpMainWnd(){
  504. var cpflag = ds_root.getColumn(0, "cpflag");
  505. var iRow = "";
  506. var pid = "";
  507. var ordtype = ds_main_cond.getColumn(0, "ordtype");
  508. if(ordtype == "O") {
  509. iRow = ds_main_outpatlist.rowposition;
  510. pid = ds_main_outpatlist.getColumn(iRow, "pid");
  511. } else {
  512. iRow = ds_main_inpatlist.rowposition;
  513. pid = ds_main_outpatlist.getColumn(iRow, "pid");
  514. }
  515. var mainObj = frmf_getMainViewer();
  516. //alert(monitorNumber);
  517. curEmrRecObj = frmf_findPopup("SMMRI00400"); //활성화된 진료기록 화면 object loading
  518. curExamRsltObj = frmf_findPopup("SMAER00800"); //활성화된 검사결과 화면 object loading
  519. curNurTprObj = frmf_findPopup("SMMNR00900"); //활성화된 간호 TPR 화면 object loading
  520. curNurBSEMRObj = frmf_findPopup("SMMNR02500"); //활성화된 간호 TPR 화면 object loading
  521. curGrphObj = frmf_findPopup("SPMRF05200"); //활성화된 그래프 서식 화면 object loading
  522. curCunsultObj = frmf_findPopup("SMMMR05000"); //활성화된 Consult 화면 object loading
  523. curExamRsltNewObj = frmf_findPopup("SMMMI00100"); //활성화된 검사결과 화면 object loading
  524. var wndobj = frmf_findPopup("SMMRI00400");
  525. if(!utlf_isNull(wndobj)){
  526. wndobj.fClose(); //진료기록 화면 close
  527. //wndobj.javascript.fInitalize(); // 초기화함수 호출
  528. //activateChild("SMMRI00400");
  529. }
  530. if(!utlf_isNull(curExamRsltObj)){ //검사결과 화면 refresh;
  531. curExamRsltObj.ds_singdata.setColumn(0, "srchpid", pid);
  532. curExamRsltObj.group3.grp_sea.btn_srch.click();
  533. } //검사결과 화면 refresh;
  534. if(!utlf_isNull(curNurTprObj)){ //간호 TPR 화면 refresh : 2008-11-28 : 김영학 ;
  535. curNurTprObj.fInitialize("init");
  536. curNurTprObj.fInitViewer();
  537. curNurTprObj.lf_emrSetTimer();
  538. } //간호 TPR 화면 refresh;
  539. if(!utlf_isNull(curNurBSEMRObj)){ //혈당간호기록 refresh : 2008-12-24 : 김영학 ;
  540. curNurBSEMRObj.fInitialize("init");
  541. } //혈당간호기록 refresh;
  542. if(!utlf_isNull(curGrphObj)){ //그래프 서식 refresh : 2009-01-02 : 박민규 SW 요청 : 김영학 ;
  543. curGrphObj.fInitialize();
  544. } //그래프 서식 refresh;
  545. // [요청번호:20180905021] 성장곡선(2017) 관련 요청드립니다.
  546. var curGrphNewObj = frmf_findPopup("SPMRF06100");
  547. if(!utlf_isNull(curGrphNewObj)){
  548. curGrphNewObj.fInitialize();
  549. }
  550. //if(!utlf_isNull(curCunsultObj) && consulyn !="T"){ // Consult refresh : 2009-02-17 : 이상현 D/L 요청 : 김영학 ;
  551. if(!utlf_isNull(curCunsultObj)) {
  552. curCunsultObj.fInitalize();
  553. } // Consult refresh
  554. if(!utlf_isNull(curExamRsltNewObj)){ //검사결과 화면 NEW refresh;
  555. curExamRsltNewObj.ds_singdata.setColumn(0, "srchpid", pid );
  556. curExamRsltNewObj.group3.grp_sea.btn_srch.click();
  557. }
  558. curCpObj = mainObj.frmf_findPopup("SMMMP00800"); //활성화된 CP Main 화면 object loading
  559. curPrcpObj = mainObj.frmf_findPopup("SMMMO00100"); //활성화된 처방Main 화면 object loading
  560. curCpSrchObj = mainObj.frmf_findPopup("SPMMP01200"); //활성화된 CP 검색 화면 object loading
  561. if(cpflag == "N"){ //처방 Main Open
  562. if(!utlf_isNull(curCpObj)){curCpObj.fCloseGPS();} //활성화된 CP Main화면이 있는 경우 close
  563. if(!utlf_isNull(curCpSrchObj)){curCpSrchObj.fCpSrchWndClose();} //활성화된 CP검색화면이 있는 경우 close
  564. if(utlf_isNull(curPrcpObj)){ //활성화된 처방화면이 없는 경우, 신규화면을 오픈
  565. mainObj.frmf_setParameter("SMMMO00100_ordrecflag", ds_main_cond.getColumn(0, "ordrecflag"));
  566. fChngMainEMRScrn();
  567. mainObj.frmf_open("SMMMO00100", "SMMMO00100", null, false, 2, null, null, 1195, 784, null, null, null, "M");
  568. }else{
  569. if(curPrcpObj.fPrcpSavePatList()){}
  570. // 2015.03.25 기록과 처방창을 동시에 열기 위해 순서변경함, 여기서부터 (기존의 전처방에서 기록 띄우던 로직 제거)
  571. curPrcpObj.ds_init.setColumn(0, "fstopenflag", "Y"); //처방최초 open여부를 재설정, 진료기록을 열기위해
  572. //curPrcpObj.javascript.fChngMainScrn();
  573. fChngMainEMRScrn();
  574. curPrcpObj.ds_init.setColumn(0, "bfprcpload" , "N"); //전처방을 초기화한다.
  575. //curPrcpObj.javascript.fInitializeConDone();
  576. //curPrcpObj.javascript.fInitializeReady();
  577. curPrcpObj.fXReReady();
  578. // curPrcpObj.ds_init.setColumn(0, "fstopenflag", "Y"); //처방최초 open여부를 재설정, 진료기록을 열기위해
  579. // //curPrcpObj.javascript.fChngMainScrn();
  580. // fChngMainEMRScrn();
  581. // 2015.03.25 기록과 처방창을 동시에 열기 위해 순서변경함, 여기까지 (기존의 전처방에서 기록 띄우던 로직 제거)
  582. mainObj.frmf_setFocus();
  583. }
  584. } else if(cpflag =="Y"){ //CP Main Open
  585. if(!utlf_isNull(curPrcpObj)){curPrcpObj.fPrcpWndClose();} //활성화된 처방Main화면이 있는 경우 close
  586. if(!utlf_isNull(curCpSrchObj)){curCpSrchObj.fCpSrchWndClose();} //활성화된 CP검색화면이 있는 경우 close
  587. if(utlf_isNull(curCpObj)){ //활성화된 CP화면이 없는 경우, 신규화면을 오픈
  588. mainObj.frmf_setParameter("SMMMO00100_ordrecflag", ds_main_cond.getColumn(0, "ordrecflag"));
  589. mainObj.frmf_open("SMMMP00800", "SMMMP00800", null, false, 2, null, null, 1228, 942, null, null, null, "M");
  590. //JJE- 삭제
  591. //fChngMainEMRScrn();
  592. } else{
  593. curCpObj.fReconstruct();
  594. }
  595. }else if(cpflag =="X"){ //CP 검색 Open
  596. if(!utlf_isNull(curCpObj)){curCpObj.fCloseGPS();} //활성화된 CP Main화면이 있는 경우 close
  597. if(!utlf_isNull(curPrcpObj)){curPrcpObj.fPrcpWndClose();} //활성화된 처방Main화면이 있는 경우 close
  598. if(utlf_isNull(curCpSrchObj)){
  599. var monitorNumber = sysf_getCurrentMonitorNumber();
  600. mainObj.frmf_open("SPMMP01200", "SPMMP01200", null, false, monitorNumber, null, null, 1195, 775, null, null, null, "M");
  601. }
  602. }
  603. }
  604. function fChngMainEMRScrn() {
  605. var mainobj = frmf_getMainViewer();
  606. var mainscrnid = mainobj.frmf_getScreenID(); //메인화면의 기록지 ID
  607. var cpflag = ds_root.getColumn(0, "cpflag");
  608. if (cpflag == "Y"){
  609. var curPrcpObj = frmf_findPopup("SMMMP00800");
  610. } else {
  611. var curPrcpObj = frmf_findPopup("SMMMO00100");
  612. }
  613. var fstopenflag;
  614. var bfprcpload;
  615. var cpflag;
  616. if (!utlf_isNull(curPrcpObj)) {
  617. fstopenflag = curPrcpObj.ds_init.getColumn(0, "fstopenflag"); //처방화면이 최초 생성 여부
  618. bfprcpload = curPrcpObj.ds_init.getColumn(0, "bfprcpload"); //전처방화면 최초 생성 여부
  619. cpflag = curPrcpObj.ds_root.getColumn(0, "cp"); //CP화면여부
  620. }
  621. var ordrecflag = ds_main_cond.getColumn(0, "ordrecflag"); //OCS 체크여부
  622. var chngflag = ds_main_cond.getColumn(0, "chngflag"); //OCS 체크여부
  623. if(!utlf_isNull(mainobj)){
  624. var dutplcecd = sysf_getUserInfo("dutplcecd"); //사용자부서
  625. var operation = sysf_getGlobalVariable("operation"); //수술정보
  626. var wndid = "SMMMR00100"; //진료기록화면이 default
  627. if(fstopenflag != "N" || chngflag == "Y"){ //처방화면이 최초로 열린 경우, 진료대상자의 ocs체크값이 변경된 경우에는 메인화면 변경
  628. if(bfprcpload != "Y"){ //전처방화면이 로딩된 여부,(단순히 tab변경인 경우에는 메인화면 변경 로직을 처리하지 않음
  629. /*
  630. if(cpflag == "Y"){ //CP화면인 경우, CP초기화 후, 메인화면 변경 수행
  631. var cpendflag = curPrcpObj.javascript.fReconstruct();
  632. if(cpendflag == "True"){
  633. }
  634. }
  635. */
  636. //if(cpendflag == "True"){ //CPMain의 fReconstruct()가 완료된 이후 진료기록 변경로직을 수행
  637. if(dutplcecd == "2090000000" || dutplcecd == "2090300000"){ //사용자부서가 마취통증의학과, 통증클리닉인 경우
  638. if(operation.length > 0){ //수술환자리스트에서 환자 선택된 경우, 메인화면은 '마취환자기록' loading
  639. wndid = "SMMMR03700";
  640. }else{
  641. if(ordrecflag == "Y"){
  642. wndid = "SMMMR00100";
  643. }
  644. }
  645. }else{
  646. if(ordrecflag == "Y"){
  647. wndid = "SMMMR00100";
  648. }
  649. }
  650. if (!utlf_isNull(curPrcpObj)) {
  651. curPrcpObj.ds_init.setColumn(0, "bfprcpload" , "Y");
  652. curPrcpObj.ds_init.setColumn(0, "fstopenflag", "N");
  653. }
  654. if(mainscrnid == wndid){
  655. if(wndid == "SMMMR03700"){
  656. mainobj.fFormInit();
  657. }else{
  658. mainobj.fInitRecPamInfo();
  659. }
  660. }else{
  661. //if(cpflag != "Y"){
  662. mainobj.frmf_openForm(wndid);
  663. //}
  664. }
  665. //}
  666. }else{ //전처방화면이 최초 생성된 경우, bfprcpload를 Y로 변경, 추후 tab변경시 메인화면 변경이 되지 않게함
  667. curPrcpObj.ds_init.setColumn(0, "bfprcpload", "Y");
  668. }
  669. }
  670. }
  671. }
  672. /**
  673. * @desc : 환자 선택 후, 환자 정보 조회 및 기록지 화면 연동
  674. * @ 수정 : 미니진료대상자에 맞게끔 내용 수정
  675. * @
  676. * @param :
  677. * @return :
  678. * @author : 김영학
  679. * @---------------------------------------------------
  680. */
  681. function fMiniInPat(){
  682. var ordrecflag = "Y";
  683. var currow = ds_main_inpatlist.rowposition;
  684. if(currow < 0){
  685. return;
  686. }
  687. //처방, CP화면에 modal 또는 modaless가 뜬 경우, 환자 선택 불가
  688. if(fChkScrnModal()==false){
  689. return;
  690. }
  691. var pid = ds_main_inpatlist.getColumn(currow, "pid");
  692. var hngnm = ds_main_inpatlist.getColumn(currow, "hngnm");
  693. var reqptype = ds_main_inpatlist.getColumn(currow, "reqptype");
  694. var stnddd = ds_main_cond.getColumn(0, "orddd");
  695. frmf_setParameter("SPMMO04200_openflag", "SPMMO04200");
  696. //환자수술 여부 및 수술처방 확인, 수술처방이 없는 경우 처방화면을 blocking
  697. if(fChkMiniPatOpPrcp(pid, stnddd)==false){
  698. var opcnfmdd = ds_opprcpinfo.getColumn(0, "opcnfmdd");
  699. opcnfmdd = opcnfmdd.substring(0, 4) + "-" + opcnfmdd.substring(4, 6) + "-" + opcnfmdd.substring(6, 8);
  700. sysf_messageBox("[" + hngnm + "]환자의 [" + opcnfmdd + "]일자 수술 처방을", "C001");
  701. }
  702. //CP환자 여부 확인
  703. if(fChkCPMiniPatValid(currow)==false){
  704. return;
  705. }
  706. //상단정보 설정 및 진료기록 처방화면 연동
  707. var mainObj = frmf_getMainViewer();
  708. /*
  709. if(fReqInPatPamInfo()==true){
  710. opener.javascript.setParameter("SMMMO04100_reqptype", reqptype);
  711. var cpflag = opener.model.getValue("/root/cpflag");
  712. var ordrecflag = opener.model.getValue("/root/main/cond/ordrecflag");
  713. var mainObj = getMainViewer();
  714. if(cpflag == "Y"){
  715. mainObj.window.javascript.openEmrScrn("SMMMP00800"); //CP처방 화면
  716. }else if(cpflag == "X"){
  717. mainObj.window.javascript.openEmrScrn("SPMMP01200"); //CP검색 화면
  718. }else{
  719. opener.javascript.setParameter("SMMMO04100_reqptype", reqptype);
  720. opener.javascript.fOpenPrcpMainWnd();
  721. }
  722. if(cpflag == "Y" || cpflag == "X"){
  723. if(ordrecflag == "Y"){
  724. mainObj.window.javascript.openEmrScrn("SMMMB08100"); //empty
  725. }else{
  726. mainObj.window.javascript.openEmrScrn("SMMMR00100"); //진료기록
  727. }
  728. }
  729. }
  730. */
  731. //상단정보 설정
  732. if(fReqMiniInPatPamInfo()==true){
  733. frmf_setParameter("SMMMO04100_reqptype", reqptype);
  734. fOpenPrcpMainWnd();
  735. }
  736. }
  737. /**
  738. * @desc : 입원환자 환자 기본정보설정
  739. * @ 수정 : 미니진료대상자에 맞게끔 내용 수정
  740. * @
  741. * @param :
  742. * @return :
  743. * @author : 오지훈
  744. * @---------------------------------------------------
  745. */
  746. function fReqMiniInPatPamInfo(){
  747. var iRow = ds_main_inpatlist.rowposition;
  748. var pid = ds_main_inpatlist.getColumn(iRow, "pid");
  749. var indd = ds_main_inpatlist.getColumn(iRow, "indd");
  750. var cretno = ds_main_inpatlist.getColumn(iRow, "cretno");
  751. var instcd = ds_main_inpatlist.getColumn(iRow, "instcd");
  752. var srchdd = ds_main_cond.getColumn(0, "indd"); //조회일자
  753. var param = "I" + "▦" + pid + "▦" + indd + "▦" + cretno + "▦" + instcd + "▦" + srchdd;
  754. return appf_initPatientInfo(param);
  755. }
  756. /**
  757. * @desc : CP환자 여부 검사
  758. * @
  759. * @param :
  760. * @return :
  761. * @author : 오지훈
  762. * @---------------------------------------------------
  763. */
  764. function fChkCPMiniPatValid(currow){
  765. var pid = ds_main_inpatlist.getColumn(currow, "pid");
  766. var orddd = ds_main_inpatlist.getColumn(currow, "indd");
  767. var cretno = ds_main_inpatlist.getColumn(currow, "cretno");
  768. var cpyn = ds_main_inpatlist.getColumn(currow, "cpyn");
  769. var hngnm = ds_main_inpatlist.getColumn(currow, "hngnm");
  770. //입원환자이나 외래CP가 진행중인 경우, 경고 메시지를 띄운다. (박유미요청)
  771. //2008. 07. 25 오지훈
  772. ds_TRMMO04303.clearData();
  773. ds_TRMMO04303.addRow();
  774. ds_TRMMO04303.setColumn(0, "pid" , pid);
  775. ds_TRMMO04303.setColumn(0, "orddd" , orddd);
  776. var oParam = {};
  777. oParam.id = "TRMMO04303";
  778. oParam.service = "prcpbaseapp.CpMngt";
  779. oParam.method = "reqGePattValidity";
  780. oParam.inds = "req=ds_TRMMO04303";
  781. oParam.outds = "ds_rsltgetdata=getdata";
  782. oParam.async = false;
  783. oParam.callback = "cf_TRMMO04303";
  784. tranf_submit(oParam);
  785. if(arErrorCode.pop("TRMMO04303") >= 0){
  786. dsf_setDefaultVal(ds_rsltgetdata, "appyn:Y");
  787. if(ds_rsltgetdata.rowcount > 0){
  788. sysf_messageBox("외래 cp적용중인 환자입니다. 외래 CP Drop을", "C003");
  789. ds_root.setColumn(0, "cpflag", "N");
  790. return false;
  791. }
  792. }
  793. ds_TRMMO04303.clearData();
  794. ds_TRMMO04303.addRow();
  795. ds_TRMMO04303.setColumn(0, "pid" , pid);
  796. ds_TRMMO04303.setColumn(0, "orddd" , orddd);
  797. ds_TRMMO04303.setColumn(0, "cretno" , cretno);
  798. ds_TRMMO04303.setColumn(0, "prcpgenrflag", "I");
  799. var oParam = {};
  800. oParam.id = "TRMMO04303";
  801. oParam.service = "prcpbaseapp.CpMngt";
  802. oParam.method = "reqGePattValidity";
  803. oParam.inds = "req=ds_TRMMO04303";
  804. oParam.outds = "ds_rsltgetdata=getdata";
  805. oParam.async = false;
  806. oParam.callback = "cf_TRMMO04303";
  807. tranf_submit(oParam);
  808. if(arErrorCode.pop("TRMMO04303") >= 0){
  809. if(ds_rsltgetdata.rowcount < 1){ //cp적용환자 tbl에 유효한 데이터가 없는 경우
  810. ds_root.setColumn(0, "cpflag", "N");
  811. return true;
  812. }else{ //CP적용환자 tbl에 유효한 데이터가 있는 경우
  813. var appstat = ds_rsltgetdata.getColumn(0, "appstat");
  814. var cpgnm = ds_rsltgetdata.getColumn(0, "cpgnm");
  815. if(appstat == 12){ //CP적용상태가 12인 경우, 무조건 CP(M-GPS)창을 띄운다
  816. ds_root.setColumn(0, "cpflag", "Y");
  817. return true;
  818. }else if(appstat == 52){
  819. var rtnval = sysf_messageBox("[" + hngnm + "]환자에게 CP를", "Q003");
  820. if(rtnval == 6){ //예, CP Main open, CP적용환자 tbl에 appstat 10 진행중
  821. ds_root.setColumn(0, "cpflag", "X");
  822. return true;
  823. }else{
  824. ds_root.setColumn(0, "cpflag", "N");
  825. return fUpdtCPPatAppStatVal(41); //41 : CP취소
  826. }
  827. }else{ //CP적용상태가 12가 아닌 경우, CP Main창 open
  828. ds_root.setColumn(0, "cpflag", "Y");
  829. return true;
  830. }
  831. }
  832. }
  833. }
  834. //===================================================================
  835. // 외래에서 사용하는 함수들
  836. //===================================================================
  837. /**
  838. * @desc : 환자 선택 후, 환자 정보 조회 및 기록지 화면 연동
  839. * @
  840. * @param :
  841. * @return :
  842. * @author : 오지훈
  843. * @---------------------------------------------------
  844. */
  845. function fMiniOutPat(){
  846. var ordrecflag = "Y";
  847. var currow = ds_main_outpatlist.rowposition;
  848. if(currow < 0){
  849. return;
  850. }
  851. //처방, CP화면에 modal 또는 modaless가 뜬 경우, 환자 선택 불가
  852. if(fChkScrnModal()==false){
  853. return;
  854. }
  855. var pid = ds_main_outpatlist.getColumn(currow, "pid");
  856. var stnddd = ds_main_outpatlist.getColumn(currow, "orddd");
  857. var hngnm = ds_main_outpatlist.getColumn(currow, "hngnm");
  858. var reqptype = lf_getDsValue(ds_main_outpatlist, currow, "reqptype");
  859. frmf_setParameter("SPMMO04200_openflag", "SPMMO04200");
  860. //환자수술 여부 및 수술처방 확인, 수술처방이 없는 경우 처방화면을 blocking
  861. if(fChkPatOpPrcp(pid, stnddd)==false){
  862. var opcnfmdd = ds_opprcpinfo.getColumn(0, "opcnfmdd");
  863. opcnfmdd = opcnfmdd.substring(0, 4) + "-" + opcnfmdd.substring(5, 6) + "-" + opcnfmdd.substring(7, 8);
  864. sysf_messageBox("[" + hngnm + "]환자의 [" + opcnfmdd + "]일자 수술 처방을", "C001");
  865. }
  866. //CP환자 여부 확인, update시 에러나면 변경 불가
  867. if(fChkCPMiniOutPatValid(currow)==false){
  868. return;
  869. }
  870. //2011.09.07 엄영만 환자 클릭시 환자정보 체크 SMMMO04100.js 파일 함수 호출 ioflag, pid 인자
  871. if(!fCheckSelectPatInfo("O", pid)){ return false; }
  872. // 진료기록에 수정된 사항이 있을 경우 저장할 것인지 묻는 함수 호출 : 2009. 07. 27 김영학
  873. var mainobj = frmf_getMainViewer();
  874. var mainscrnid = mainobj.frmf_getScreenID(); //메인화면의 기록지 ID
  875. if(mainscrnid == "SMMMR00100"){
  876. var prvIntRecPamInfRtn = mainobj.fPrevInitRecPamInfo();
  877. if(!prvIntRecPamInfRtn){ return false; } // 기록지에 필수 입력사항을 입력하지 않았을 때 그냥 넘어가 버리는 오류 수정 20100305 LYJ
  878. //mainobj.frmf_setParameter("SSMMR01100_recsavechk", "Y");
  879. }
  880. //상단정보 설정
  881. if(fReqMiniOutPatPamInfo()==true){
  882. frmf_setParameter("SMMMO04100_reqptype", reqptype);
  883. fOpenPrcpMainWnd();
  884. }
  885. }
  886. /**
  887. * @desc : CP환자 여부 검사
  888. * @
  889. * @param :
  890. * @return :
  891. * @author : 오지훈
  892. * @---------------------------------------------------
  893. */
  894. function fChkCPMiniOutPatValid(currow){
  895. var pid = ds_main_outpatlist.getColumn(currow, "pid");
  896. var orddd = ds_main_outpatlist.getColumn(currow, "orddd");
  897. var cretno = ds_main_outpatlist.getColumn(currow, "cretno");
  898. var cpyn = lf_getDsValue(ds_main_outpatlist, currow, "cpyn");
  899. var hngnm = ds_main_outpatlist.getColumn(currow, "hngnm");
  900. ds_TRMMO04303.clearData();
  901. ds_TRMMO04303.addRow();
  902. ds_TRMMO04303.setColumn(0, "pid" , pid);
  903. ds_TRMMO04303.setColumn(0, "orddd" , orddd);
  904. ds_TRMMO04303.setColumn(0, "cretno" , cretno);
  905. ds_TRMMO04303.setColumn(0, "prcpgenrflag", "O");
  906. var oParam = {};
  907. oParam.id = "TRMMO04303";
  908. oParam.service = "prcpbaseapp.CpMngt";
  909. oParam.method = "reqGePattValidity";
  910. oParam.inds = "req=ds_TRMMO04303";
  911. oParam.outds = "ds_rsltgetdata=getdata";
  912. oParam.async = false;
  913. oParam.callback = "cf_TRMMO04303";
  914. tranf_submit(oParam);
  915. if(arErrorCode.pop("TRMMO04303") >= 0){
  916. dsf_setDefaultVal(ds_rsltgetdata, "appyn:Y");
  917. if(ds_rsltgetdata.rowcount < 1){ //cp적용환자 tbl에 유효한 데이터가 없는 경우
  918. ds_root.setColumn(0, "cpflag", "N"); //처방open
  919. return true;
  920. }else{ //CP적용환자 tbl에 유효한 데이터가 있는 경우
  921. var appstat = ds_rsltgetdata.getColumn(0, "appstat");
  922. var cpgnm = ds_rsltgetdata.getColumn(0, "cpgnm");
  923. if(appstat == 11){ //CP적용상태가 11인 경우
  924. var rtnval = sysf_messageBox("[" + hngnm + "]환자의 [" + cpgnm + "] CP를", "Q003");
  925. if(rtnval == 6){ //예 선택, CP Main open, CP적용환자 tbl에 appstat 10 진행중
  926. ds_root.setColumn(0, "cpflag", "N");
  927. return fUpdtCPPatAppStatVal(51);
  928. }else{ //아니오 선택, 처방 Main open, CP적용환자 tbl에 appstat 51 drop out
  929. ds_root.setColumn(0, "cpflag", "Y");
  930. return fUpdtCPPatAppStatVal(10);
  931. }
  932. }else if(appstat == 53){
  933. ds_root.setColumn(0, "cpflag", "X");
  934. return true;
  935. }else{ //CP적용상태가 11가 아닌 경우, CP Main창 open
  936. ds_root.setColumn(0, "cpflag", "Y");
  937. return true;
  938. }
  939. }
  940. }
  941. }
  942. function cf_TRMMO04303(sSvcId, nErrorCode, sErrorMsg) {
  943. arErrorCode.push(sSvcId, nErrorCode);
  944. }
  945. /**
  946. * @desc : 외래환자 환자 기본정보설정
  947. * @ 수정 : 미니진료대상자에 맞게끔 내용 수정
  948. * @
  949. * @param :
  950. * @return :
  951. * @author : 오지훈
  952. * @---------------------------------------------------
  953. */
  954. function fReqMiniOutPatPamInfo(){
  955. var iRow = ds_main_outpatlist.rowposition;
  956. var pid = ds_main_outpatlist.getColumn(iRow, "pid");
  957. var orddd = ds_main_outpatlist.getColumn(iRow, "orddd");
  958. var cretno = ds_main_outpatlist.getColumn(iRow, "cretno");
  959. var instcd = ds_main_outpatlist.getColumn(iRow, "instcd");
  960. var param = "O" + "▦" + pid + "▦" + orddd + "▦" + cretno + "▦" + instcd;
  961. return appf_initPatientInfo(param);;
  962. }
  963. /*===============================================================================
  964. @desc : 검색구분에 대한 항목 선택시 각 화면 선택
  965. ===============================================================================*/
  966. function fGrdInit() {
  967. var sOrdType = ds_main_cond.getColumn(0, "ordtype");
  968. if (sOrdType == 'O'){
  969. Div00.rdo_patflag.visible = true;
  970. Div00.rdo_patflagstat.visible = false;
  971. Div00.caption4.visible = true;
  972. grd_outpatlist.visible = true;
  973. grd_inpatlist.visible = false;
  974. } else if (sOrdType =='I') {
  975. Div00.rdo_patflag.visible = false;
  976. Div00.rdo_patflagstat.visible = true;
  977. Div00.caption4.visible = false;
  978. grd_outpatlist.visible = false;
  979. grd_inpatlist.visible = true;
  980. }
  981. }
  982. /*===============================================================================
  983. @desc : 입원시 조회
  984. ===============================================================================*/
  985. function fInPatList() {
  986. ds_main_outpatlist.clearData(); // 입원일 때는 외래 데이터 삭제
  987. ds_send_reqdata.copyData(ds_main_cond);
  988. var oParam = {};
  989. oParam.id = "TRMMO04205";
  990. oParam.service = "prcpmngtapp.PrcpMngt";
  991. oParam.method = "reqGetOutPatList";
  992. oParam.inds = "req=ds_send_reqdata";
  993. oParam.outds = "ds_main_inpatlist=inpatlist";
  994. oParam.async = false;
  995. oParam.callback = "cf_TRMMO04205";
  996. tranf_submit(oParam);
  997. // window.modelesstopmost = true;
  998. }
  999. function cf_TRMMO04205(sSvcId, nErrorCode, sErrorMsg) {
  1000. if(nErrorCode < 0) return;
  1001. oOpener.ds_prcppatlist.copyData(ds_main_cond); // 현재 조회 조건을 처방화면에 인스턴스에 복사 한다. 대상자 화면 다시 열때 참조
  1002. }
  1003. /*===============================================================================
  1004. @desc : 외래시 조회
  1005. ===============================================================================*/
  1006. function fOutPatList() {
  1007. ds_main_inpatlist.clearData(); // 외래일 때는 입원 데이터 삭제
  1008. ds_send_reqdata.copyData(ds_main_cond);
  1009. var oParam = {};
  1010. oParam.id = "TRMMO02901";
  1011. oParam.service = "prcpmngtapp.PrcpMngt";
  1012. oParam.method = "reqGetPrcpPatList";
  1013. oParam.inds = "req=ds_send_reqdata";
  1014. oParam.outds = "ds_main_outpatlist=outpatlist";
  1015. oParam.async = false;
  1016. oParam.callback = "cf_TRMMO02901";
  1017. tranf_submit(oParam);
  1018. // window.modelesstopmost = true;
  1019. }
  1020. function cf_TRMMO02901(sSvcId, nErrorCode, sErrorMsg) {
  1021. if(nErrorCode < 0) return;
  1022. oOpener.ds_prcppatlist.copyData(ds_main_cond); // 현재 조회 조건을 처방화면에 인스턴스에 복사 한다. 대상자 화면 다시 열때 참조
  1023. }
  1024. function fChkGetData() {
  1025. var sOrdType = ds_main_cond.getColumn(0, "ordtype");
  1026. if(sOrdType =="O") {
  1027. fOutPatList();
  1028. } else if (sOrdType == "I") {
  1029. fInPatList() ;
  1030. }
  1031. }
  1032. /**
  1033. * @desc : 대기환자 색상 설정
  1034. * : 내환자적용 환자는 color instance에 ffffff이외의 값이 들어옴
  1035. * @param :
  1036. * @return :
  1037. * @author : 오지훈
  1038. * @---------------------------------------------------
  1039. */
  1040. function fChngGrdCellColor(color){
  1041. return utlf_isNull(color) ? "#ffffff" : "#" + color;
  1042. }
  1043. ]]></Script>
  1044. </Form>
  1045. </FDL>