SPMMO04200_미니진료대상자.xfdl 71 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <FDL version="1.5">
  3. <TypeDefinition url="..\..\..\default_typedef.xml"/>
  4. <Form id="SPMMO04200" position="absolute 0 0 326 645" titletext="미니진료대상자" oninit="SPMMO04200_oninit" onload="SPMMO04200_onload">
  5. <Layouts>
  6. <Layout>
  7. <Button position="absolute 222 625 326 645" id="button27" class="btn3" text="관심슬립관리" onclick="button27_onclick"/>
  8. <Tab position="absolute 0 79 326 619" id="switch2">
  9. <Tabpages>
  10. <Tabpage text="" id="case1">
  11. <Layouts>
  12. <Layout>
  13. <Grid position="absolute 0 0 326 513" id="grd_outpatlist" binddataset="ds_main_outpatlist" oncelldblclick="switch2_case1_grd_outpatlist_oncelldblclick" autofittype="col">
  14. <Formats>
  15. <Format id="default">
  16. <Columns>
  17. <Column size="82"/>
  18. <Column size="0"/>
  19. <Column size="0"/>
  20. <Column size="0"/>
  21. <Column size="88"/>
  22. <Column size="70"/>
  23. <Column size="70"/>
  24. </Columns>
  25. <Rows>
  26. <Row size="24" band="head"/>
  27. <Row size="24"/>
  28. </Rows>
  29. <Band id="head">
  30. <Cell text="등록번호"/>
  31. <Cell col="1" text="cretno"/>
  32. <Cell col="2" text="orddd"/>
  33. <Cell col="3" text="instcd"/>
  34. <Cell col="4" text="이름"/>
  35. <Cell col="5" text="SA"/>
  36. <Cell col="6" text="구분"/>
  37. </Band>
  38. <Band id="body">
  39. <Cell text="bind:pid"/>
  40. <Cell col="1" text="bind:cretno"/>
  41. <Cell col="2" text="bind:orddd"/>
  42. <Cell col="3" text="bind:instcd"/>
  43. <Cell col="4" text="bind:hngnm"/>
  44. <Cell col="5" text="bind:sa"/>
  45. <Cell col="6" text="bind:roomcd"/>
  46. </Band>
  47. </Format>
  48. </Formats>
  49. </Grid>
  50. </Layout>
  51. </Layouts>
  52. </Tabpage>
  53. <Tabpage text="" id="case2">
  54. <Layouts>
  55. <Layout>
  56. <Grid position="absolute 0 0 326 513" id="grd_inpatlist" binddataset="ds_main_inpatlist" oncelldblclick="switch2_case2_grd_inpatlist_oncelldblclick">
  57. <Formats>
  58. <Format id="default">
  59. <Columns>
  60. <Column size="76"/>
  61. <Column size="0"/>
  62. <Column size="0"/>
  63. <Column size="0"/>
  64. <Column size="77"/>
  65. <Column size="0"/>
  66. <Column size="49"/>
  67. <Column size="57"/>
  68. <Column size="57"/>
  69. <Column size="0"/>
  70. </Columns>
  71. <Rows>
  72. <Row size="24" band="head"/>
  73. <Row size="24"/>
  74. </Rows>
  75. <Band id="head">
  76. <Cell text="등록번호"/>
  77. <Cell col="1" text="cretno"/>
  78. <Cell col="2" text="indd"/>
  79. <Cell col="3" text="instcd"/>
  80. <Cell col="4" text="이름"/>
  81. <Cell col="5" text="color"/>
  82. <Cell col="6" text="SA"/>
  83. <Cell col="7" text="병실"/>
  84. <Cell col="8" text="익일정규"/>
  85. <Cell col="9" text="ioflag"/>
  86. </Band>
  87. <Band id="body">
  88. <Cell style="background:EXPR(fMyPatChngColor(color));background2:EXPR(fMyPatChngColor(color));" text="bind:pid"/>
  89. <Cell col="1" style="background:EXPR(fMyPatChngColor(color));background2:EXPR(fMyPatChngColor(color));" text="bind:cretno"/>
  90. <Cell col="2" style="background:EXPR(fMyPatChngColor(color));background2:EXPR(fMyPatChngColor(color));" text="bind:indd"/>
  91. <Cell col="3" style="background:EXPR(fMyPatChngColor(color));background2:EXPR(fMyPatChngColor(color));" text="bind:instcd"/>
  92. <Cell col="4" style="background:EXPR(fMyPatChngColor(color));background2:EXPR(fMyPatChngColor(color));" text="bind:hngnm"/>
  93. <Cell col="5" style="background:EXPR(fMyPatChngColor(color));background2:EXPR(fMyPatChngColor(color));" text="bind:color"/>
  94. <Cell col="6" style="background:EXPR(fMyPatChngColor(color));background2:EXPR(fMyPatChngColor(color));" text="bind:sa"/>
  95. <Cell col="7" style="background:EXPR(fMyPatChngColor(color));background2:EXPR(fMyPatChngColor(color));" text="bind:roomcd"/>
  96. <Cell col="8" style="background:EXPR(fMyPatChngColor(color));background2:EXPR(fMyPatChngColor(color));" text="bind:dayregular"/>
  97. <Cell col="9" text="bind:ioflag"/>
  98. </Band>
  99. </Format>
  100. </Formats>
  101. </Grid>
  102. </Layout>
  103. </Layouts>
  104. </Tabpage>
  105. <Tabpage text="" id="case3">
  106. <Layouts>
  107. <Layout>
  108. <Grid position="absolute 0 0 326 513" id="grd_bfprcplist" binddataset="ds_main_concslippatlist">
  109. <Formats>
  110. <Format id="default">
  111. <Columns>
  112. <Column size="56"/>
  113. <Column size="88"/>
  114. <Column size="99"/>
  115. <Column size="69"/>
  116. </Columns>
  117. <Rows>
  118. <Row size="24" band="head"/>
  119. <Row size="24"/>
  120. </Rows>
  121. <Band id="head">
  122. <Cell/>
  123. <Cell col="1" text="등록번호"/>
  124. <Cell col="2" text="이름"/>
  125. <Cell col="3" text="S/A"/>
  126. </Band>
  127. <Band id="body">
  128. <Cell style="align:left middle;" text="bind:orddept"/>
  129. <Cell col="1" text="bind:pid"/>
  130. <Cell col="2" style="align:left middle;" text="bind:hngnm"/>
  131. <Cell col="3" text="bind:sa"/>
  132. </Band>
  133. </Format>
  134. </Formats>
  135. </Grid>
  136. </Layout>
  137. </Layouts>
  138. </Tabpage>
  139. <Tabpage text="" id="case4">
  140. <Layouts>
  141. <Layout>
  142. <Grid position="absolute 0 0 326 513" id="grd_oppatlist" binddataset="ds_main_oppatlist" oncelldblclick="switch2_case4_grd_oppatlist_oncelldblclick">
  143. <Formats>
  144. <Format id="default">
  145. <Columns>
  146. <Column size="56"/>
  147. <Column size="88"/>
  148. <Column size="99"/>
  149. <Column size="69"/>
  150. </Columns>
  151. <Rows>
  152. <Row size="24" band="head"/>
  153. <Row size="24"/>
  154. </Rows>
  155. <Band id="head">
  156. <Cell text="상태"/>
  157. <Cell col="1" text="등록번호"/>
  158. <Cell col="2" text="이름"/>
  159. <Cell col="3" text="S/A"/>
  160. </Band>
  161. <Band id="body">
  162. <Cell displaytype="combo" edittype="none" text="bind:opstatcd" combodataset="ds_M0015" combocodecol="cdid" combodatacol="cdnm"/>
  163. <Cell col="1" text="bind:pid"/>
  164. <Cell col="2" style="align:left middle;" text="bind:hngnm"/>
  165. <Cell col="3" text="bind:sa"/>
  166. </Band>
  167. </Format>
  168. </Formats>
  169. </Grid>
  170. </Layout>
  171. </Layouts>
  172. </Tabpage>
  173. </Tabpages>
  174. </Tab>
  175. <Div id="Div00" taborder="1" position="absolute 0 0 326 103" class="div_SA2">
  176. <Layouts>
  177. <Layout>
  178. <Static id="caption1" text="조회기간 :" class="search_name" position="absolute 7 6 79 26" anchor="default"/>
  179. <Static id="caption2" text="분류구분 :" class="search_name" position="absolute 7 30 79 50" anchor="default"/>
  180. <Static id="caption3" text="검색구분 :" class="search_name" position="absolute 7 54 79 74" anchor="default"/>
  181. <Static id="caption4" text="환자구분 :" class="search_name" visible="false" position="absolute 7 78 79 98" anchor="default"/>
  182. <Calendar id="ipt_fromdd" taborder="1" class="input_essential" position="absolute 83 5 175 25" anchor="default" dateformat="yyyy-MM-dd" value="null" style="padding:0 0 0 5;" autoselect="true"/>
  183. <Static id="caption19" text="~" visible="false" position="absolute 178 5 188 25" anchor="default"/>
  184. <Calendar id="ipt_todd" taborder="2" class="input_essential" visible="false" position="absolute 191 5 283 25" anchor="default" style="padding:0 0 0 5;" dateformat="yyyy-MM-dd" value="null" autoselect="true"/>
  185. <Combo id="cmb_orddept" taborder="11" innerdataset="@ds_orddept" codecolumn="deptcd" datacolumn="depthngnm" visible="false" position="absolute 83 29 250 49" anchor="default" onitemchanged="Div00_cmb_orddept_onitemchanged"/>
  186. <Radio id="rdo_clsflag" taborder="3" columncount="2" rowcount="0" codecolumn="codecolumn" datacolumn="datacolumn" class="radio_search" position="absolute 83 29 208 49" anchor="default" onitemchanged="Div00_rdo_clsflag_onitemchanged">
  187. <Dataset id="innerdataset">
  188. <ColumnInfo>
  189. <Column id="codecolumn"/>
  190. <Column id="datacolumn"/>
  191. </ColumnInfo>
  192. <Rows>
  193. <Row>
  194. <Col id="codecolumn">P</Col>
  195. <Col id="datacolumn">개인</Col>
  196. </Row>
  197. <Row>
  198. <Col id="codecolumn">G</Col>
  199. <Col id="datacolumn">과</Col>
  200. </Row>
  201. </Rows>
  202. </Dataset>
  203. </Radio>
  204. <Combo id="cmb_searflag" taborder="4" innerdataset="@ds_init_searflag" codecolumn="value" datacolumn="label" position="absolute 83 53 163 73" anchor="default" onitemchanged="Div00_cmb_searflag_onitemchanged"/>
  205. <Combo id="cmb_concslip" taborder="5" innerdataset="@ds_init_concsliplist" codecolumn="slipno" datacolumn="slipnm" position="absolute 171 53 253 73" anchor="default" onitemchanged="Div00_cmb_concslip_onitemchanged"/>
  206. <Radio id="rdo_patflag" taborder="6" columncount="5" rowcount="0" codecolumn="codecolumn" datacolumn="datacolumn" class="radio_search" position="absolute 83 77 326 97" anchor="default" onitemchanged="Div00_rdo_patflag_onitemchanged">
  207. <Dataset id="innerdataset">
  208. <ColumnInfo>
  209. <Column id="codecolumn"/>
  210. <Column id="datacolumn"/>
  211. </ColumnInfo>
  212. <Rows>
  213. <Row>
  214. <Col id="codecolumn">-</Col>
  215. <Col id="datacolumn">전체</Col>
  216. </Row>
  217. <Row>
  218. <Col id="codecolumn">0</Col>
  219. <Col id="datacolumn">접수</Col>
  220. </Row>
  221. <Row>
  222. <Col id="codecolumn">1</Col>
  223. <Col id="datacolumn">대기</Col>
  224. </Row>
  225. <Row>
  226. <Col id="codecolumn">2</Col>
  227. <Col id="datacolumn">완료</Col>
  228. </Row>
  229. <Row>
  230. <Col id="codecolumn">3</Col>
  231. <Col id="datacolumn">보류</Col>
  232. </Row>
  233. </Rows>
  234. </Dataset>
  235. </Radio>
  236. <Radio id="rdo_patflagstat" taborder="7" columncount="5" rowcount="0" codecolumn="codecolumn" datacolumn="datacolumn" class="radio_search" position="absolute 83 74 278 99" anchor="default" onitemchanged="Div00_rdo_patflagstat_onitemchanged">
  237. <Dataset id="innerdataset">
  238. <ColumnInfo>
  239. <Column id="codecolumn"/>
  240. <Column id="datacolumn"/>
  241. </ColumnInfo>
  242. <Rows>
  243. <Row>
  244. <Col id="codecolumn">-</Col>
  245. <Col id="datacolumn">전체</Col>
  246. </Row>
  247. <Row>
  248. <Col id="codecolumn">D</Col>
  249. <Col id="datacolumn">퇴원</Col>
  250. </Row>
  251. <Row>
  252. <Col id="codecolumn">P</Col>
  253. <Col id="datacolumn">입원예정</Col>
  254. </Row>
  255. <Row>
  256. <Col id="codecolumn">F</Col>
  257. <Col id="datacolumn">입실완료</Col>
  258. </Row>
  259. </Rows>
  260. </Dataset>
  261. </Radio>
  262. <Button id="btn_search" taborder="8" text="조회" class="btn1" position="absolute 261 53 317 73" anchor="default" onclick="Div00_btn_search_onclick"/>
  263. <CheckBox id="chk_myPat" taborder="9" visible="false" position="absolute 199 29 291 49" text="내환자 포함" onclick="Div00_chk_myPat_onclick" falsevalue="N" truevalue="Y"/>
  264. <Radio id="rdo_opstatcd" taborder="10" columncount="5" rowcount="0" codecolumn="codecolumn" datacolumn="datacolumn" position="absolute 83 77 326 97" anchor="default" onitemchanged="Div00_rdo_opstatcd_onitemchanged">
  265. <Dataset id="innerdataset">
  266. <ColumnInfo>
  267. <Column id="codecolumn"/>
  268. <Column id="datacolumn"/>
  269. </ColumnInfo>
  270. <Rows>
  271. <Row>
  272. <Col id="codecolumn">A</Col>
  273. <Col id="datacolumn">전체</Col>
  274. </Row>
  275. <Row>
  276. <Col id="codecolumn">M</Col>
  277. <Col id="datacolumn">미착</Col>
  278. </Row>
  279. <Row>
  280. <Col id="codecolumn">R</Col>
  281. <Col id="datacolumn">준비</Col>
  282. </Row>
  283. <Row>
  284. <Col id="codecolumn">I</Col>
  285. <Col id="datacolumn">진행</Col>
  286. </Row>
  287. <Row>
  288. <Col id="codecolumn">F</Col>
  289. <Col id="datacolumn">완료</Col>
  290. </Row>
  291. </Rows>
  292. </Dataset>
  293. </Radio>
  294. <CheckBox id="bool1" taborder="12" position="absolute 187 53 236 73" anchor="default" text="OCS" falsevalue="N" truevalue="Y"/>
  295. </Layout>
  296. </Layouts>
  297. </Div>
  298. </Layout>
  299. </Layouts>
  300. <Objects>
  301. <Dataset id="ds_main_cond" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  302. <ColumnInfo>
  303. <Column id="fromdd" type="STRING" size="256"/>
  304. <Column id="todd" type="STRING" size="256"/>
  305. <Column id="clsflag" type="STRING" size="256"/>
  306. <Column id="searflag" type="STRING" size="256"/>
  307. <Column id="elbulbodstat" type="STRING" size="256"/>
  308. <Column id="patflagstat" type="STRING" size="256"/>
  309. <Column id="userid" type="STRING" size="256"/>
  310. <Column id="concsliplist" type="STRING" size="256"/>
  311. <Column id="deptflag" type="STRING" size="256"/>
  312. <Column id="mypatflag" type="STRING" size="256"/>
  313. <Column id="opstatcd" type="STRING" size="256"/>
  314. <Column id="perfdeptlist" type="STRING" size="256"/>
  315. <Column id="ordrecflag" type="STRING" size="256"/>
  316. <Column id="ocsflag" type="STRING" size="256"/>
  317. </ColumnInfo>
  318. <Rows>
  319. <Row>
  320. <Col id="fromdd"/>
  321. <Col id="todd"/>
  322. <Col id="clsflag">P</Col>
  323. <Col id="searflag">O</Col>
  324. <Col id="elbulbodstat">-</Col>
  325. <Col id="patflagstat">-</Col>
  326. <Col id="userid"/>
  327. <Col id="deptflag">0</Col>
  328. <Col id="mypatflag"/>
  329. <Col id="opstatcd">A</Col>
  330. <Col id="ordrecflag">Y</Col>
  331. <Col id="ocsflag">N</Col>
  332. </Row>
  333. </Rows>
  334. </Dataset>
  335. <Dataset id="ds_init_searflag" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  336. <ColumnInfo>
  337. <Column id="value" type="STRING" size="256"/>
  338. <Column id="label" type="STRING" size="256"/>
  339. <Column id="flag" type="STRING" size="256"/>
  340. </ColumnInfo>
  341. <Rows>
  342. <Row>
  343. <Col id="value">O</Col>
  344. <Col id="label">외래</Col>
  345. <Col id="flag">Y</Col>
  346. </Row>
  347. <Row>
  348. <Col id="value">I</Col>
  349. <Col id="label">입원</Col>
  350. <Col id="flag">Y</Col>
  351. </Row>
  352. <Row>
  353. <Col id="value">P</Col>
  354. <Col id="label">관심슬립</Col>
  355. <Col id="flag">Y</Col>
  356. </Row>
  357. <Row>
  358. <Col id="value">A</Col>
  359. <Col id="label">수술</Col>
  360. <Col id="flag">N</Col>
  361. </Row>
  362. </Rows>
  363. </Dataset>
  364. <Dataset id="ds_orddept" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false"/>
  365. <Dataset id="ds_init_concsliplist" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  366. <ColumnInfo>
  367. <Column id="slipno" type="STRING" size="256" sumtext="슬립번호"/>
  368. <Column id="slipnm" type="STRING" size="256" sumtext="슬립명"/>
  369. <Column id="useyn" type="STRING" size="256" sumtext="사용여부"/>
  370. </ColumnInfo>
  371. </Dataset>
  372. <Dataset id="ds_main_concslippatlist" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  373. <ColumnInfo>
  374. <Column id="pid" type="STRING" size="256" sumtext=" 환자번호"/>
  375. <Column id="hngnm" type="STRING" size="256" sumtext="환자명"/>
  376. <Column id="sa" type="STRING" size="256" sumtext="성별/나이"/>
  377. </ColumnInfo>
  378. </Dataset>
  379. <Dataset id="ds_main_inpatlist" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  380. <ColumnInfo>
  381. <Column id="roomcd" type="STRING" size="256" sumtext="병실"/>
  382. <Column id="pid" type="STRING" size="256" sumtext="등록번호"/>
  383. <Column id="ioflag" type="STRING" size="256" sumtext="ioflag"/>
  384. <Column id="hngnm" type="STRING" size="256" sumtext="이름"/>
  385. <Column id="sa" type="STRING" size="256" sumtext="성별/나이"/>
  386. <Column id="instcd" type="STRING" size="256" sumtext="instcd"/>
  387. <Column id="cretno" type="STRING" size="256" sumtext="생성번호"/>
  388. <Column id="indd" type="STRING" size="256" sumtext="입원일"/>
  389. <Column id="color" type="STRING" size="256" sumtext="내환자 적용 환자 컬러"/>
  390. <Column id="repltype" type="STRING" size="256" sumtext="회신유형"/>
  391. <Column id="dayregular" type="STRING" size="256" sumtext="익일정규"/>
  392. </ColumnInfo>
  393. </Dataset>
  394. <Dataset id="ds_main_outpatlist" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  395. <ColumnInfo>
  396. <Column id="roomcd" type="STRING" size="256" sumtext="병실"/>
  397. <Column id="pid" type="STRING" size="256" sumtext="등록번호"/>
  398. <Column id="ioflag" type="STRING" size="256" sumtext="ioflag"/>
  399. <Column id="hngnm" type="STRING" size="256" sumtext="이름"/>
  400. <Column id="sa" type="STRING" size="256" sumtext="성별/나이"/>
  401. <Column id="instcd" type="STRING" size="256" sumtext="instcd"/>
  402. <Column id="cretno" type="STRING" size="256" sumtext="생성번호"/>
  403. <Column id="orddd" type="STRING" size="256" sumtext="내원일"/>
  404. <Column id="color" type="STRING" size="256" sumtext="내환자 적용 환자 컬러"/>
  405. <Column id="repltype" type="STRING" size="256" sumtext="회신유형"/>
  406. </ColumnInfo>
  407. </Dataset>
  408. <Dataset id="ds_main_oppatlist" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  409. <ColumnInfo>
  410. <Column id="opstatcd" type="STRING" size="256" sumtext="환자상태"/>
  411. <Column id="hngnm" type="STRING" size="256" sumtext="이름"/>
  412. <Column id="sa" type="STRING" size="256" sumtext="성별/나이"/>
  413. <Column id="ioflag" type="STRING" size="256" sumtext="ioflag"/>
  414. <Column id="oproomnm" type="STRING" size="256" sumtext="수술방"/>
  415. <Column id="orddeptcd" type="STRING" size="256" sumtext="진료과"/>
  416. <Column id="pid" type="STRING" size="256" sumtext="등록번호"/>
  417. <Column id="opnm" type="STRING" size="256" sumtext="수술명"/>
  418. <Column id="diagnm" type="STRING" size="256" sumtext="진단명"/>
  419. <Column id="roomcd" type="STRING" size="256" sumtext="병실"/>
  420. <Column id="anstreqflag" type="STRING" size="256" sumtext="마취상태"/>
  421. <Column id="anstdrnm" type="STRING" size="256" sumtext="마취의"/>
  422. <Column id="perfdrnm" type="STRING" size="256" sumtext="집도의"/>
  423. <Column id="oprsrvno" type="STRING" size="256" sumtext="수술예약번호"/>
  424. <Column id="ophistno" type="STRING" size="256" sumtext="수술이력번호"/>
  425. <Column id="opcnfmdd" type="STRING" size="256" sumtext="수술확정일자"/>
  426. <Column id="perfdeptcd" type="STRING" size="256" sumtext="집도과코드"/>
  427. <Column id="perfdrid" type="STRING" size="256" sumtext="집도의ID"/>
  428. <Column id="instcd" type="STRING" size="256" sumtext="기관코드"/>
  429. </ColumnInfo>
  430. </Dataset>
  431. <Dataset id="ds_root" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  432. <ColumnInfo>
  433. <Column id="cpflag" type="STRING" size="256"/>
  434. </ColumnInfo>
  435. <Rows>
  436. <Row/>
  437. </Rows>
  438. </Dataset>
  439. <Dataset id="ds_opprcpinfo" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  440. <ColumnInfo>
  441. <Column id="opprcpflag" type="STRING" size="256" sumtext="수술처방구분"/>
  442. <Column id="opcnfmdd" type="STRING" size="256" sumtext="수술확정일자"/>
  443. </ColumnInfo>
  444. </Dataset>
  445. <Dataset id="ds_rsltgetdata" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  446. <ColumnInfo>
  447. <Column id="cpgno" type="STRING" size="256" sumtext="cpg번호"/>
  448. <Column id="cpghistseq" type="STRING" size="256" sumtext="cpg이력번호"/>
  449. <Column id="cpgappno" type="STRING" size="256" sumtext="적용번호"/>
  450. <Column id="histseq" type="STRING" size="256" sumtext="적용이력번호"/>
  451. <Column id="appdd" type="STRING" size="256" sumtext="적용일자"/>
  452. <Column id="pid" type="STRING" size="256" sumtext="등록번호"/>
  453. <Column id="cretno" type="STRING" size="256" sumtext="생성번호"/>
  454. <Column id="ioflag" type="STRING" size="256" sumtext="I/O/E flag"/>
  455. <Column id="orddd" type="STRING" size="256" sumtext="진료일자"/>
  456. <Column id="getformyn" type="STRING" size="256" sumtext="서식존재여부"/>
  457. <Column id="appyn" type="STRING" size="256" sumtext="적용여부"/>
  458. <Column id="appstat" type="STRING" size="256" sumtext="적용상태"/>
  459. <Column id="cpgnm" type="STRING" size="256" sumtext="cpg명"/>
  460. <Column id="prtlflagcd" type="STRING" size="256" sumtext="cp/cpg구분(01:CP/02:CPG)"/>
  461. <Column id="msgcnts" type="STRING" size="256" sumtext="출력Msg내용"/>
  462. <Column id="msgflag" type="STRING" size="256" sumtext="출력Msg구분"/>
  463. </ColumnInfo>
  464. </Dataset>
  465. <Dataset id="ds_init_pamkeyinfo" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  466. <ColumnInfo>
  467. <Column id="pid" type="STRING" size="256" sumtext="등록번호"/>
  468. <Column id="orddd" type="STRING" size="256" sumtext="수술일자"/>
  469. <Column id="cretno" type="STRING" size="256" sumtext="생성번호"/>
  470. <Column id="instcd" type="STRING" size="256" sumtext="기관코드"/>
  471. <Column id="ioflag" type="STRING" size="256" sumtext="외래입원구분"/>
  472. <Column id="hngnm" type="STRING" size="256" sumtext="성명"/>
  473. <Column id="intm" type="STRING" size="256" sumtext="입원시간"/>
  474. </ColumnInfo>
  475. </Dataset>
  476. </Objects>
  477. <Bind>
  478. <BindItem id="item0" compid="Div00.ipt_fromdd" propid="value" datasetid="ds_main_cond" columnid="fromdd"/>
  479. <BindItem id="item1" compid="Div00.ipt_todd" propid="value" datasetid="ds_main_cond" columnid="todd"/>
  480. <BindItem id="item2" compid="Div00.cmb_orddept" propid="value" datasetid="ds_main_cond" columnid="perfdeptlist"/>
  481. <BindItem id="item3" compid="Div00.rdo_clsflag" propid="value" datasetid="ds_main_cond" columnid="clsflag"/>
  482. <BindItem id="item4" compid="Div00.chk_myPat" propid="value" datasetid="ds_main_cond" columnid="mypatflag"/>
  483. <BindItem id="item5" compid="Div00.cmb_searflag" propid="value" datasetid="ds_main_cond" columnid="searflag"/>
  484. <BindItem id="item6" compid="Div00.cmb_concslip" propid="value" datasetid="ds_main_cond" columnid="concsliplist"/>
  485. <BindItem id="item7" compid="Div00.bool1" propid="value" datasetid="ds_main_cond" columnid="ocsflag"/>
  486. <BindItem id="item8" compid="Div00.rdo_opstatcd" propid="value" datasetid="ds_main_cond" columnid="opstatcd"/>
  487. <BindItem id="item9" compid="Div00.rdo_patflagstat" propid="value" datasetid="ds_main_cond" columnid="patflagstat"/>
  488. <BindItem id="item10" compid="Div00.rdo_patflag" propid="value" datasetid="ds_main_cond" columnid="elbulbodstat"/>
  489. </Bind>
  490. <Script type="xscript4.0"><![CDATA[/***************************************************************************************
  491. * System Name :
  492. * Job Name :
  493. * Creator :
  494. * Make Date : 2014-12-10
  495. * Description :
  496. *---------------------------------------------------------------------------------------
  497. * Modify Date Modifier Modify Description
  498. *---------------------------------------------------------------------------------------
  499. * 2014-12-10 Live Converter TF->XP
  500. *
  501. *---------------------------------------------------------------------------------------
  502. ****************************************************************************************/
  503. include "com_commonxp::comm_main.xjs";
  504. include "emr_prcpmngtxp::MMO001.xjs";
  505. include "emr_prcpmngtxp::SMMMO04100.xjs";
  506. var arErrorCode = new HashArray();
  507. function SPMMO04200_oninit(obj:Form, e:InitEventInfo)
  508. {
  509. frmf_initForm(obj);
  510. grdf_initGrid(switch2.case1.grd_outpatlist);
  511. grdf_initGrid(switch2.case2.grd_inpatlist);
  512. }
  513. function SPMMO04200_onload(obj:Form, e:LoadEventInfo)
  514. {
  515. var cur_day = utlf_getCurrentDate();
  516. var idate = new Date();
  517. var peveDate = idate.getAddDate(-1, "D");
  518. appf_getCodeList([{dsNm: "ds_M0015", cdGrpId: "M0015"}], true);
  519. ds_main_cond.setColumn(0, "fromdd", cur_day);
  520. ds_main_cond.setColumn(0, "todd" , cur_day );
  521. ds_main_cond.setColumn(0, "userid", sysf_getUserId());
  522. if(sysf_getUserInfo("dutplcecd") != "2090000000"){
  523. var findRow = ds_init_searflag.findRow("flag", 'N');
  524. if(findRow != -1) {
  525. ds_init_searflag.deleteRow(findRow);
  526. ds_init_searflag.applyChange();
  527. }
  528. }
  529. fGrdInit();
  530. mainObj = frmf_getMainViewer();
  531. curCpObj = mainObj.frmf_findPopup("SMMMP00800"); //활성화된 CP Main 화면 object loading
  532. curPrcpObj = mainObj.frmf_findPopup("SMMMO00100"); //활성화된 처방Main 화면 object loading
  533. var instcd = sysf_getUserInfo("dutplceinstcd");
  534. var standard_yn = "orduseyn";
  535. var ord_deptflag = 'D';
  536. var rslt_ref = "ds_orddept";
  537. var sort_method = "depthngnm";
  538. appf_getDeptCodeList(instcd, standard_yn, ord_deptflag, sort_method, "", "", "", "", rslt_ref);
  539. frmf_addComboItem("Div00.cmb_orddept", "- 전 체 -", "", "above");
  540. Div00.cmb_orddept.index = 0;
  541. fChkGetData() ;
  542. }
  543. function Div00_cmb_orddept_onitemchanged(obj:Combo, e:ItemChangeEventInfo)
  544. {
  545. fChkGetData();
  546. }
  547. function Div00_rdo_clsflag_onitemchanged(obj:Radio, e:ItemChangeEventInfo)
  548. {
  549. fChkGetData() ;
  550. }
  551. function Div00_cmb_searflag_onitemchanged(obj:Combo, e:ItemChangeEventInfo)
  552. {
  553. fGrdInit();
  554. fChkGetData();
  555. }
  556. function Div00_chk_myPat_onclick(obj:CheckBox, e:ClickEventInfo)
  557. {
  558. fChkGetData();
  559. }
  560. function Div00_cmb_concslip_onitemchanged(obj:Combo, e:ItemChangeEventInfo)
  561. {
  562. fChkGetData();
  563. }
  564. function Div00_rdo_patflag_onitemchanged(obj:Radio, e:ItemChangeEventInfo)
  565. {
  566. fChkGetData();
  567. }
  568. function Div00_rdo_patflagstat_onitemchanged(obj:Radio, e:ItemChangeEventInfo)
  569. {
  570. fChkGetData() ;
  571. }
  572. function Div00_rdo_opstatcd_onitemchanged(obj:Radio, e:ItemChangeEventInfo)
  573. {
  574. fGetOpPatList();
  575. }
  576. function Div00_btn_search_onclick(obj:Button, e:ClickEventInfo)
  577. {
  578. fChkGetData();
  579. }
  580. function button27_onclick(obj:Button, e:ClickEventInfo)
  581. {
  582. var mon = sysf_getCurrentMonitorNumber();
  583. var xpt = this.getOwnerFrame().position.x + 15;
  584. var ypt = this.getOwnerFrame().position.y + 33;
  585. frmf_modal("SPMMO08600", "SPMMO08600", null, null, mon, xpt, ypt, null, null, null, null, null, "M");
  586. }
  587. //===================================================================
  588. // 공통으로 사용하는 함수
  589. //===================================================================
  590. /**
  591. * @desc : 환자 수술여부 및 수술처방 확인
  592. * @ 수정 : 미니진료대상자에 맞게끔 내용 수정
  593. * @
  594. * @param :
  595. * @return :
  596. * @author : 오지훈
  597. * @---------------------------------------------------
  598. */
  599. function fChkMiniPatOpPrcp(pid, stnddd){
  600. dsf_createDsRow("ds_TRMMO04109", [{col:"pid", type:"string", size:256, val:pid}
  601. ,{col:"stnddd", type:"string", size:256, val:stnddd}]);
  602. var oParam = {};
  603. oParam.id = "TRMMO04109";
  604. oParam.service = "prcpmngtapp.EtcPrcpMngt";
  605. oParam.method = "reqGetPatOpPrcpInfo";
  606. oParam.inds = "req=" + "ds_TRMMO04109";
  607. oParam.outds = "ds_opprcpinfo" + "=opprcpinfo";
  608. oParam.async = false;
  609. oParam.callback = "cf_TRMMO04109";
  610. tranf_submit(oParam);
  611. if(arErrorCode.pop("TRMMO04109") >= 0){
  612. var opprcpflag = ds_opprcpinfo.getColumn(0, "opprcpflag");
  613. if(opprcpflag == "N"){
  614. return false;
  615. }
  616. }
  617. return true;
  618. }
  619. /**
  620. * @desc : 처방화면, CP화면에 modal로 뜬 화면이 있는지 여부를 검사한다.
  621. * @ 수정 : 미니진료대상자에 맞게끔 내용 수정
  622. * @
  623. * @param :
  624. * @return :
  625. * @author : 오지훈
  626. * @---------------------------------------------------
  627. */
  628. function fChkScrnModal(){
  629. var cpflag = ds_root.getColumn(0, "cpflag"); //cpflag여부
  630. if(cpflag == "N"){
  631. var wndobj = frmf_findPopup("SMMMO00100");
  632. }else if(cpflag == "Y"){
  633. var wndobj = frmf_findPopup("SMMMP00800");
  634. }
  635. if(!utlf_isNull(wndobj)){
  636. var status = wndobj.frmf_getScreenDisabled();
  637. if(status == true){
  638. return false;
  639. }
  640. }
  641. }
  642. /**
  643. * @desc : 처방Main 화면 Open, CP환자인 경우 CP Main 화면 Open 또는 CP검색화면 Open (CP업무 추가 2007.09.27)
  644. * @
  645. * @param :
  646. * @return :
  647. * @---------------------------------------------------
  648. */
  649. function fOpenPrcpMainWnd(){
  650. var cpflag = ds_root.getColumn(0, "cpflag");
  651. var mainObj = frmf_getMainViewer();
  652. // var monitorNumber = app.monitorNumber;
  653. // var monitorResolutions = app.monitorResolution;
  654. // var monitorResolutionsArr = monitorResolutions.split('|');
  655. //
  656. // var resolution = monitorResolutionsArr[monitorNumber-1];
  657. // var resolution_width = resolution.split(',')[0];
  658. // var resolution_height = resolution.split(',')[1];
  659. //alert(monitorNumber);
  660. curEmrRecObj = frmf_findPopup("SMMRI00400"); //활성화된 진료기록 화면 object loading
  661. curExamRsltObj = frmf_findPopup("SMAER00800"); //활성화된 검사결과 화면 object loading
  662. if(!utlf_isNull(curEmrRecObj)){curEmrRecObj.fClose();} //진료기록 화면 close
  663. if(!utlf_isNull(curExamRsltObj)){curExamRsltObj.fClose();} //검사결과 화면 close
  664. curCpObj = mainObj.frmf_findPopup("SMMMP00800"); //활성화된 CP Main 화면 object loading
  665. curPrcpObj = mainObj.frmf_findPopup("SMMMO00100"); //활성화된 처방Main 화면 object loading
  666. curCpSrchObj = mainObj.frmf_findPopup("SPMMP01200"); //활성화된 CP 검색 화면 object loading
  667. if(cpflag == "N"){ //처방 Main Open
  668. if(!utlf_isNull(curCpObj)){curCpObj.fCloseGPS();} //활성화된 CP Main화면이 있는 경우 close
  669. if(!utlf_isNull(curCpSrchObj)){curCpSrchObj.fCpSrchWndClose();} //활성화된 CP검색화면이 있는 경우 close
  670. if(utlf_isNull(curPrcpObj)){ //활성화된 처방화면이 없는 경우, 신규화면을 오픈
  671. mainObj.frmf_setParameter("SMMMO00100_ordrecflag", ds_main_cond.getColumn(0, "ordrecflag"));
  672. fChngMainEMRScrn();
  673. var sysMessageobj = frmf_getViewer("sysMessage");
  674. sysMessageobj.frmf_open("SMMMO00100", "SMMMO00100", null, false, 2, null, null, 1195, 784, null, null, null, "M");
  675. mainObj.frmf_setFocus();
  676. }else{
  677. if(curPrcpObj.fPrcpSavePatList()){}
  678. // 2015.03.25 기록과 처방창을 동시에 열기 위해 순서변경함, 여기서부터 (기존의 전처방에서 기록 띄우던 로직 제거)
  679. curPrcpObj.ds_init.setColumn(0, "fstopenflag", "Y"); //처방최초 open여부를 재설정, 진료기록을 열기위해
  680. //curPrcpObj.javascript.fChngMainScrn();
  681. fChngMainEMRScrn();
  682. curPrcpObj.ds_init.setColumn(0, "bfprcpload" , "N"); //전처방을 초기화한다.
  683. //curPrcpObj.javascript.fInitializeConDone();
  684. //curPrcpObj.javascript.fInitializeReady();
  685. curPrcpObj.fXReReady();
  686. // curPrcpObj.ds_init.setColumn(0, "fstopenflag", "Y"); //처방최초 open여부를 재설정, 진료기록을 열기위해
  687. // //curPrcpObj.javascript.fChngMainScrn();
  688. // fChngMainEMRScrn();
  689. // 2015.03.25 기록과 처방창을 동시에 열기 위해 순서변경함, 여기까지 (기존의 전처방에서 기록 띄우던 로직 제거)
  690. mainObj.frmf_setFocus();
  691. }
  692. } else if(cpflag =="Y"){ //CP Main Open
  693. if(!utlf_isNull(curPrcpObj)){curPrcpObj.fPrcpWndClose();} //활성화된 처방Main화면이 있는 경우 close
  694. if(!utlf_isNull(curCpSrchObj)){curCpSrchObj.fCpSrchWndClose();} //활성화된 CP검색화면이 있는 경우 close
  695. if(utlf_isNull(curCpObj)){ //활성화된 CP화면이 없는 경우, 신규화면을 오픈
  696. mainObj.frmf_setParameter("SMMMO00100_ordrecflag", ds_main_cond.getColumn(0, "ordrecflag"));
  697. mainObj.frmf_open("SMMMP00800", "SMMMP00800", null, false, 2, 0, 0, 1228, 942, null, null, null, "M");
  698. //JJE- 삭제
  699. //fChngMainEMRScrn();
  700. } else {
  701. curCpObj.fReconstruct();
  702. }
  703. } else if(cpflag =="X"){ //CP 검색 Open
  704. if(!utlf_isNull(curCpObj)){curCpObj.fCloseGPS();} //활성화된 CP Main화면이 있는 경우 close
  705. if(!utlf_isNull(curPrcpObj)){curPrcpObj.fPrcpWndClose();} //활성화된 처방Main화면이 있는 경우 close
  706. if(utlf_isNull(curCpSrchObj)){
  707. var monitorNumber = sysf_getCurrentMonitorNumber();
  708. mainObj.frmf_open("SPMMP01200", "SPMMP01200", null, false, monitorNumber, null, null, 1195, 775, null, null, null, "M");
  709. }
  710. }
  711. }
  712. function fChngMainEMRScrn() {
  713. var mainobj = frmf_getMainViewer();
  714. var mainscrnid = mainobj.frmf_getScreenID(); //메인화면의 기록지 ID
  715. var cpflag = ds_root.getColumn(0, "cpflag");
  716. if (cpflag == "Y"){
  717. var curPrcpObj= frmf_findPopup("SMMMP00800");
  718. } else {
  719. var curPrcpObj= frmf_findPopup("SMMMO00100");
  720. }
  721. var fstopenflag;
  722. var bfprcpload;
  723. var cpflag;
  724. if (!utlf_isNull(curPrcpObj)) {
  725. fstopenflag = curPrcpObj.ds_init.getColumn(0, "fstopenflag"); //처방화면이 최초 생성 여부
  726. bfprcpload = curPrcpObj.ds_init.getColumn(0, "bfprcpload"); //전처방화면 최초 생성 여부
  727. cpflag = curPrcpObj.ds_root.getColumn(0, "cp"); //CP화면여부
  728. }
  729. var ordrecflag = ds_main_cond.getColumn(0, "ordrecflag"); //OCS 체크여부
  730. var chngflag = ds_main_cond.getColumn(0, "chngflag"); //OCS 체크여부
  731. if(!utlf_isNull(mainobj)){
  732. var dutplcecd = sysf_getUserInfo("dutplcecd"); //사용자부서
  733. var operation = sysf_getGlobalVariable("operation"); //수술정보
  734. var wndid = "SMMMR00100"; //진료기록화면이 default
  735. if(fstopenflag != "N" || chngflag == "Y"){ //처방화면이 최초로 열린 경우, 진료대상자의 ocs체크값이 변경된 경우에는 메인화면 변경
  736. if(bfprcpload != "Y"){ //전처방화면이 로딩된 여부,(단순히 tab변경인 경우에는 메인화면 변경 로직을 처리하지 않음
  737. /*
  738. if(cpflag == "Y"){ //CP화면인 경우, CP초기화 후, 메인화면 변경 수행
  739. var cpendflag = curPrcpObj.javascript.fReconstruct();
  740. if(cpendflag == "True"){
  741. }
  742. }
  743. */
  744. //if(cpendflag == "True"){ //CPMain의 fReconstruct()가 완료된 이후 진료기록 변경로직을 수행
  745. if(dutplcecd == "2090000000" || dutplcecd == "2090300000"){ //사용자부서가 마취통증의학과, 통증클리닉인 경우
  746. if(operation.length > 0){ //수술환자리스트에서 환자 선택된 경우, 메인화면은 '마취환자기록' loading
  747. wndid = "SMMMR03700";
  748. }else{
  749. if(ordrecflag == "Y"){
  750. wndid = "SMMMR00100";
  751. }
  752. }
  753. }else{
  754. if(ordrecflag == "Y"){
  755. wndid = "SMMMR00100";
  756. }
  757. }
  758. if (!utlf_isNull(curPrcpObj)) {
  759. curPrcpObj.ds_init.setColumn(0, "bfprcpload" , "Y");
  760. curPrcpObj.ds_init.setColumn(0, "fstopenflag", "N");
  761. }
  762. if(mainscrnid == wndid){
  763. if(wndid == "SMMMR03700"){
  764. mainobj.fFormInit();
  765. }else{
  766. mainobj.fInitRecPamInfo();
  767. }
  768. }else{
  769. //if(cpflag != "Y"){
  770. mainobj.frmf_openForm(wndid);
  771. //}
  772. }
  773. //}
  774. }else{ //전처방화면이 최초 생성된 경우, bfprcpload를 Y로 변경, 추후 tab변경시 메인화면 변경이 되지 않게함
  775. curPrcpObj.ds_init.setColumn(0, "bfprcpload", "Y");
  776. }
  777. }
  778. }
  779. }
  780. //===================================================================
  781. // 입원에서 사용하는 함수들
  782. //===================================================================
  783. /**
  784. * @desc : 환자 선택 후, 환자 정보 조회 및 기록지 화면 연동
  785. * @ 수정 : 미니진료대상자에 맞게끔 내용 수정
  786. * @
  787. * @param :
  788. * @return :
  789. * @author : 김영학
  790. * @---------------------------------------------------
  791. */
  792. function fMiniInPat(){
  793. var ordrecflag = ds_main_cond.getColumn(0, "ordrecflag");
  794. var currow = ds_main_inpatlist.rowposition;
  795. if(currow < 0){
  796. return;
  797. }
  798. //처방, CP화면에 modal 또는 modaless가 뜬 경우, 환자 선택 불가
  799. if(fChkScrnModal()==false){
  800. return;
  801. }
  802. var pid = ds_main_inpatlist.getColumn(currow, "pid");
  803. var hngnm = ds_main_inpatlist.getColumn(currow, "hngnm");
  804. var reqptype = lf_getDsValue(ds_main_inpatlist, currow, "reqptype");
  805. var stnddd = ds_main_cond.getColumn(0, "fromdd");
  806. frmf_setParameter("SPMMO04200_openflag", "SPMMO04200");
  807. //환자수술 여부 및 수술처방 확인, 수술처방이 없는 경우 처방화면을 blocking
  808. if(fChkMiniPatOpPrcp(pid, stnddd)==false){
  809. var opcnfmdd = ds_opprcpinfo.getColumn(0, "opcnfmdd");
  810. opcnfmdd = opcnfmdd.substring(0, 4) + "-" + opcnfmdd.substring(4, 6) + "-" + opcnfmdd.substring(6, 8);
  811. sysf_messageBox("[" + hngnm + "]환자의 [" + opcnfmdd + "]일자 수술 처방을", "C001");
  812. }
  813. //CP환자 여부 확인
  814. if(fChkCPMiniPatValid(currow)==false){
  815. return;
  816. }
  817. //상단정보 설정 및 진료기록 처방화면 연동
  818. var mainObj = frmf_getMainViewer();
  819. /*
  820. if(fReqInPatPamInfo()==true){
  821. opener.javascript.setParameter("SMMMO04100_reqptype", reqptype);
  822. var cpflag = opener.model.getValue("/root/cpflag");
  823. var ordrecflag = opener.model.getValue("/root/main/cond/ordrecflag");
  824. var mainObj = getMainViewer();
  825. if(cpflag == "Y"){
  826. mainObj.window.javascript.openEmrScrn("SMMMP00800"); //CP처방 화면
  827. }else if(cpflag == "X"){
  828. mainObj.window.javascript.openEmrScrn("SPMMP01200"); //CP검색 화면
  829. }else{
  830. opener.javascript.setParameter("SMMMO04100_reqptype", reqptype);
  831. opener.javascript.fOpenPrcpMainWnd();
  832. }
  833. if(cpflag == "Y" || cpflag == "X"){
  834. if(ordrecflag == "Y"){
  835. mainObj.window.javascript.openEmrScrn("SMMMB08100"); //empty
  836. }else{
  837. mainObj.window.javascript.openEmrScrn("SMMMR00100"); //진료기록
  838. }
  839. }
  840. }
  841. */
  842. //상단정보 설정
  843. if(fReqMiniInPatPamInfo()==true){
  844. frmf_setParameter("SMMMO04100_reqptype", reqptype);
  845. fOpenPrcpMainWnd();
  846. }
  847. }
  848. /**
  849. * @desc : 입원환자 환자 기본정보설정
  850. * @ 수정 : 미니진료대상자에 맞게끔 내용 수정
  851. * @
  852. * @param :
  853. * @return :
  854. * @author : 오지훈
  855. * @---------------------------------------------------
  856. */
  857. function fReqMiniInPatPamInfo(){
  858. var iRow = ds_main_inpatlist.rowposition;
  859. var pid = ds_main_inpatlist.getColumn(iRow, "pid");
  860. var indd = ds_main_inpatlist.getColumn(iRow, "indd");
  861. var cretno = ds_main_inpatlist.getColumn(iRow, "cretno");
  862. var instcd = ds_main_inpatlist.getColumn(iRow, "instcd");
  863. var srchdd = ds_main_cond.getColumn(0, "fromdd"); //조회일자
  864. var param;
  865. param = "I" + "▦" + pid + "▦" + indd + "▦" + cretno + "▦" + instcd + "▦" + srchdd;
  866. return appf_initPatientInfo(param);
  867. }
  868. /**
  869. * @desc : CP환자 여부 검사
  870. * @
  871. * @param :
  872. * @return :
  873. * @author : 오지훈
  874. * @---------------------------------------------------
  875. */
  876. function fChkCPMiniPatValid(currow){
  877. var pid = ds_main_inpatlist.getColumn(currow, "pid");
  878. var orddd = ds_main_inpatlist.getColumn(currow, "indd");
  879. var cretno = ds_main_inpatlist.getColumn(currow, "cretno");
  880. var cpyn = lf_getDsValue(ds_main_inpatlist, currow, "cpyn");
  881. var hngnm = ds_main_inpatlist.getColumn(currow, "hngnm");
  882. //입원환자이나 외래CP가 진행중인 경우, 경고 메시지를 띄운다. (박유미요청)
  883. //2008. 07. 25 오지훈
  884. dsf_createDsRow("ds_TRMMO04303", [{col:"pid", type:"string", size:256, val:pid}
  885. ,{col:"orddd", type:"string", size:256, val:orddd}]);
  886. var oParam = {};
  887. oParam.id = "TRMMO04303";
  888. oParam.service = "prcpbaseapp.CpMngt";
  889. oParam.method = "reqGePattValidity";
  890. oParam.inds = "req=ds_TRMMO04303";
  891. oParam.outds = "ds_rsltgetdata=getdata";
  892. oParam.async = false;
  893. oParam.callback = "cf_TRMMO04303";
  894. tranf_submit(oParam);
  895. if(arErrorCode.pop("TRMMO04303") > -1) {
  896. dsf_setDefaultVal(ds_rsltgetdata,"appyn:Y");
  897. var outcppatnode = ds_rsltgetdata.rowcount;
  898. if(outcppatnode > 0){
  899. sysf_messageBox("외래 cp적용중인 환자입니다. 외래 CP Drop을", "C003");
  900. ds_root.setColumn(0, "cpflag", "N");
  901. return false;
  902. }
  903. }
  904. dsf_createDsRow("ds_TRMMO04303", [{col:"pid", type:"string", size:256, val:pid}
  905. ,{col:"orddd", type:"string", size:256, val:orddd}
  906. ,{col:"cretno", type:"string", size:256, val:cretno}
  907. ,{col:"prcpgenrflag", type:"string", size:256, val:"I"}]);
  908. var oParam = {};
  909. oParam.id = "TRMMO04303";
  910. oParam.service = "prcpbaseapp.CpMngt";
  911. oParam.method = "reqGePattValidity";
  912. oParam.inds = "req=ds_TRMMO04303";
  913. oParam.outds = "ds_rsltgetdata=getdata";
  914. oParam.async = false;
  915. oParam.callback = "cf_TRMMO04303";
  916. tranf_submit(oParam);
  917. if(arErrorCode.pop("TRMMO04303") > -1) {
  918. dsf_setDefaultVal(ds_rsltgetdata,"appyn:Y");
  919. var cppatnode = ds_rsltgetdata.rowcount;
  920. if(cppatnode < 1){ //cp적용환자 tbl에 유효한 데이터가 없는 경우
  921. ds_root.setColumn(0, "cpflag", "N");
  922. return true;
  923. }else{ //CP적용환자 tbl에 유효한 데이터가 있는 경우
  924. var appstat = ds_rsltgetdata.getColumn(0, "appstat");
  925. var cpgnm = ds_rsltgetdata.getColumn(0, "cpgnm");
  926. if(appstat == 12){ //CP적용상태가 12인 경우, 무조건 CP(M-GPS)창을 띄운다
  927. ds_root.setColumn(0, "cpflag", "Y");
  928. return true;
  929. }else if(appstat == 52){
  930. var rtnval = sysf_messageBox("[" + hngnm + "]환자에게 CP를", "Q003");
  931. if(rtnval == 6){ //예, CP Main open, CP적용환자 tbl에 appstat 10 진행중
  932. ds_root.setColumn(0, "cpflag", "X");
  933. return true;
  934. }else{
  935. ds_root.setColumn(0, "cpflag", "N");
  936. return fUpdtCPPatAppStatVal(41); //41 : CP취소
  937. }
  938. }else{ //CP적용상태가 12가 아닌 경우, CP Main창 open
  939. ds_root.setColumn(0, "cpflag", "Y");
  940. return true;
  941. }
  942. }
  943. }
  944. }
  945. //===================================================================
  946. // 외래에서 사용하는 함수들
  947. //===================================================================
  948. /**
  949. * @desc : 환자 선택 후, 환자 정보 조회 및 기록지 화면 연동
  950. * @
  951. * @param :
  952. * @return :
  953. * @author : 오지훈
  954. * @---------------------------------------------------
  955. */
  956. function fMiniOutPat(){
  957. var ordrecflag = ds_main_cond.getColumn(0, "ordrecflag");
  958. var currow = ds_main_outpatlist.rowposition;
  959. if(currow < 0){
  960. return;
  961. }
  962. //처방, CP화면에 modal 또는 modaless가 뜬 경우, 환자 선택 불가
  963. if(fChkScrnModal()==false){
  964. return;
  965. }
  966. var pid = ds_main_outpatlist.getColumn(currow, "pid");
  967. var stnddd = ds_main_outpatlist.getColumn(currow, "orddd");
  968. var hngnm = ds_main_outpatlist.getColumn(currow, "hngnm");
  969. var reqptype = lf_getDsValue(ds_main_outpatlist, currow, "reqptype");
  970. frmf_setParameter("SPMMO04200_openflag", "SPMMO04200");
  971. //환자수술 여부 및 수술처방 확인, 수술처방이 없는 경우 처방화면을 blocking
  972. if(fChkPatOpPrcp(pid, stnddd)==false){
  973. var opcnfmdd = ds_opprcpinfo.getColumn(0, "opcnfmdd");
  974. opcnfmdd = opcnfmdd.substring(0, 4) + "-" + opcnfmdd.substring(5, 6) + "-" + opcnfmdd.substring(7, 8);
  975. sysf_messageBox("[" + hngnm + "]환자의 [" + opcnfmdd + "]일자 수술 처방을", "C001");
  976. }
  977. //CP환자 여부 확인, update시 에러나면 변경 불가
  978. if(fChkCPMiniOutPatValid(currow)==false){
  979. return;
  980. }
  981. //상단정보 설정 및 진료기록, 처방화면 연동
  982. // var mainObj = frmf_getMainViewer();
  983. /*
  984. if(fReqMiniOutPatPamInfo()==true){
  985. opener.javascript.setParameter("SMMMO04100_reqptype", reqptype);
  986. var cpflag = opener.model.getValue("/root/cpflag");
  987. var ordrecflag = opener.model.getValue("/root/main/cond/ordrecflag");
  988. var mainObj = getMainViewer();
  989. if(cpflag == "Y"){
  990. mainObj.window.javascript.openEmrScrn("SMMMP00800"); //CP화면 open
  991. }else if(cpflag == "X"){
  992. mainObj.window.javascript.openEmrScrn("SPMMP01200"); //CP검색화면 open
  993. }else{
  994. opener.javascript.setParameter("SMMMO04100_reqptype", reqptype);
  995. opener.javascript.fOpenPrcpMainWnd();
  996. }
  997. if(cpflag == "Y" || cpflag == "X"){
  998. if(ordrecflag == "Y"){
  999. mainObj.window.javascript.openEmrScrn("SMMMB08100"); //empty
  1000. }else{
  1001. mainObj.window.javascript.openEmrScrn("SMMMR00100"); //진료기록
  1002. }
  1003. }
  1004. }
  1005. */
  1006. //상단정보 설정
  1007. if(fReqMiniOutPatPamInfo()==true){
  1008. frmf_setParameter("SMMMO04100_reqptype", reqptype);
  1009. fOpenPrcpMainWnd();
  1010. }
  1011. }
  1012. /**
  1013. * @desc : CP환자 여부 검사
  1014. * @
  1015. * @param :
  1016. * @return :
  1017. * @author : 오지훈
  1018. * @---------------------------------------------------
  1019. */
  1020. function fChkCPMiniOutPatValid(currow){
  1021. var pid = ds_main_outpatlist.getColumn(currow, "pid");
  1022. var orddd = ds_main_outpatlist.getColumn(currow, "orddd");
  1023. var cretno = ds_main_outpatlist.getColumn(currow, "cretno");
  1024. var cpyn = lf_getDsValue(ds_main_outpatlist, currow, "cpyn");
  1025. var hngnm = ds_main_outpatlist.getColumn(currow, "hngnm");
  1026. dsf_createDsRow("ds_TRMMO04303", [{col:"pid", type:"string", size:256, val:pid}
  1027. ,{col:"orddd", type:"string", size:256, val:orddd}
  1028. ,{col:"cretno", type:"string", size:256, val:cretno}
  1029. ,{col:"prcpgenrflag", type:"string", size:256, val:"O"}]);
  1030. var oParam = {};
  1031. oParam.id = "TRMMO04303";
  1032. oParam.service = "prcpbaseapp.CpMngt";
  1033. oParam.method = "reqGePattValidity";
  1034. oParam.inds = "req=ds_TRMMO04303";
  1035. oParam.outds = "ds_rsltgetdata=getdata";
  1036. oParam.async = false;
  1037. oParam.callback = "cf_TRMMO04303";
  1038. tranf_submit(oParam);
  1039. if(arErrorCode.pop("TRMMO04303") > -1) {
  1040. dsf_setDefaultVal(ds_rsltgetdata,"appyn:Y");
  1041. var cppatnode = ds_rsltgetdata.rowcount;
  1042. if(cppatnode < 1){ //cp적용환자 tbl에 유효한 데이터가 없는 경우
  1043. ds_root.setColumn(0, "cpflag", "N"); //처방open
  1044. return true;
  1045. }else{ //CP적용환자 tbl에 유효한 데이터가 있는 경우
  1046. var appstat = ds_rsltgetdata.getColumn(0, "appstat");
  1047. var cpgnm = ds_rsltgetdata.getColumn(0, "cpgnm");
  1048. if(appstat == 11){ //CP적용상태가 11인 경우
  1049. var rtnval = sysf_messageBox("[" + hngnm + "]환자의 [" + cpgnm + "] CP를", "Q003");
  1050. if(rtnval == 6){ //예 선택, CP Main open, CP적용환자 tbl에 appstat 10 진행중
  1051. ds_root.setColumn(0, "cpflag", "N");
  1052. return fUpdtCPPatAppStatVal(51);
  1053. }else{ //아니오 선택, 처방 Main open, CP적용환자 tbl에 appstat 51 drop out
  1054. ds_root.setColumn(0, "cpflag", "Y");
  1055. return fUpdtCPPatAppStatVal(10);
  1056. }
  1057. }else if(appstat == 53){
  1058. ds_root.setColumn(0, "cpflag", "X");
  1059. return true;
  1060. }else{ //CP적용상태가 11가 아닌 경우, CP Main창 open
  1061. ds_root.setColumn(0, "cpflag", "Y");
  1062. return true;
  1063. }
  1064. }
  1065. }
  1066. }
  1067. function cf_TRMMO04303(sSvcId, nErrorCode, sErrorMsg) {
  1068. arErrorCode.push(sSvcId, nErrorCode);
  1069. }
  1070. /**
  1071. * @desc : 외래환자 환자 기본정보설정
  1072. * @ 수정 : 미니진료대상자에 맞게끔 내용 수정
  1073. * @
  1074. * @param :
  1075. * @return :
  1076. * @author : 오지훈
  1077. * @---------------------------------------------------
  1078. */
  1079. function fReqMiniOutPatPamInfo(){
  1080. var iRow = ds_main_outpatlist.rowposition;
  1081. var pid = ds_main_outpatlist.getColumn(iRow, "pid");
  1082. var orddd = ds_main_outpatlist.getColumn(iRow, "orddd");
  1083. var cretno = ds_main_outpatlist.getColumn(iRow, "cretno");
  1084. var instcd = ds_main_outpatlist.getColumn(iRow, "instcd");
  1085. var param = "O" + "▦" + pid + "▦" + orddd + "▦" + cretno + "▦" + instcd;
  1086. return appf_initPatientInfo(param);
  1087. }
  1088. /*===============================================================================
  1089. @desc : 검색구분에 대한 항목 선택시 각 화면 선택
  1090. ===============================================================================*/
  1091. function fGrdInit() {
  1092. var searflag = ds_main_cond.getColumn(0, "searflag");
  1093. if (searflag == 'O'){
  1094. ds_main_cond.setColumn(0, "fromdd", utlf_getCurrentDate());
  1095. Div00.rdo_patflag.visible = true;
  1096. Div00.rdo_patflagstat.visible = false;
  1097. Div00.ipt_todd.visible = false;
  1098. Div00.caption19.visible = false;
  1099. Div00.cmb_concslip.visible = false;
  1100. Div00.caption4.visible = true;
  1101. Div00.chk_myPat.visible = false;
  1102. Div00.rdo_opstatcd.visible = false;
  1103. Div00.caption1.text = "조회기간 :";
  1104. Div00.rdo_clsflag.visible = true;
  1105. Div00.caption2.text= "분류구분 :";
  1106. Div00.cmb_orddept.visible = false;
  1107. Div00.bool1.visible = false;
  1108. switch2.tabindex = 0;
  1109. } else if (searflag == 'I') {
  1110. ds_main_cond.setColumn(0, "fromdd", utlf_getCurrentDate());
  1111. Div00.rdo_patflag.visible = false;
  1112. Div00.rdo_patflagstat.visible = true;
  1113. Div00.ipt_todd.visible = false;
  1114. Div00.caption19.visible = false;
  1115. Div00.cmb_concslip.visible = false;
  1116. Div00.caption4.visible = true;
  1117. Div00.chk_myPat.visible = true;
  1118. Div00.chk_myPat.value = 'Y'
  1119. Div00.rdo_opstatcd.visible = false;
  1120. Div00.caption1.text = "조회기간 :";
  1121. Div00.rdo_clsflag.visible = true;
  1122. Div00.caption2.text= "분류구분 :";
  1123. Div00.cmb_orddept.visible = false;
  1124. Div00.bool1.visible = false;
  1125. switch2.tabindex = 1;
  1126. } else if (searflag == 'P'){
  1127. fInitialize();
  1128. var cur_day = utlf_getCurrentDate();
  1129. var idate = new Date();
  1130. var peveDate = idate.getAddDate(-2, "D");
  1131. ds_main_cond.setColumn(0, "fromdd", peveDate.getDateFormat());
  1132. ds_main_cond.setColumn(0, "todd" , cur_day);
  1133. Div00.rdo_patflag.visible = false;
  1134. Div00.rdo_patflagstat.visible = false;
  1135. Div00.ipt_todd.visible = true;
  1136. Div00.caption19.visible = true;
  1137. Div00.cmb_concslip.visible = true;
  1138. Div00.caption4.visible = false;
  1139. Div00.chk_myPat.visible = false;
  1140. Div00.rdo_opstatcd.visible = false;
  1141. Div00.caption1.text = "조회기간 :";
  1142. Div00.rdo_clsflag.visible = true;
  1143. Div00.caption2.text= "분류구분 :";
  1144. Div00.cmb_orddept.visible = false;
  1145. Div00.bool1.visible = false;
  1146. switch2.tabindex = 2;
  1147. } else if (searflag == 'A'){
  1148. fInitialize();
  1149. var cur_day = utlf_getCurrentDate();
  1150. var idate = new Date();
  1151. var peveDate = idate.getAddDate(-2, "D");
  1152. ds_main_cond.setColumn(0, "fromdd", cur_day);
  1153. ds_main_cond.setColumn(0, "todd" , cur_day);
  1154. Div00.rdo_patflag.visible = false;
  1155. Div00.rdo_patflagstat.visible = false;
  1156. Div00.ipt_todd.visible = false;
  1157. Div00.caption19.visible = false;
  1158. Div00.cmb_concslip.visible = false;
  1159. Div00.caption4.visible = true;
  1160. Div00.chk_myPat.visible = false;
  1161. Div00.rdo_opstatcd.visible = true;
  1162. Div00.caption1.text = "수술일자 :";
  1163. Div00.rdo_clsflag.visible = false;
  1164. Div00.caption2.text= "집도과 :";
  1165. Div00.cmb_orddept.visible = true;
  1166. Div00.bool1.visible = true;
  1167. switch2.tabindex = 3;
  1168. }
  1169. }
  1170. /*===============================================================================
  1171. @desc : 입원시 조회
  1172. ===============================================================================*/
  1173. function fInPatList() {
  1174. fInitDataset();
  1175. var oParam = {};
  1176. oParam.id = "TRMMO04205";
  1177. oParam.service = "prcpmngtapp.PrcpMngt";
  1178. oParam.method = "reqGetOutPatList";
  1179. oParam.inds = "req=ds_main_cond";
  1180. oParam.outds = "ds_main_inpatlist=inpatlist";
  1181. oParam.async = true;
  1182. oParam.callback = "cf_TRMMO04205";
  1183. tranf_submit(oParam);
  1184. }
  1185. function cf_TRMMO04205(sSvcId, nErrorCode, sErrorMsg) {
  1186. frmf_setFocus(true);
  1187. }
  1188. /*===============================================================================
  1189. @desc : 외래시 조회
  1190. ===============================================================================*/
  1191. function fOutPatList() {
  1192. fInitDataset();
  1193. var oParam = {};
  1194. oParam.id = "TRMMO04207";
  1195. oParam.service = "prcpmngtapp.PrcpMngt";
  1196. oParam.method = "reqGetOutPatList";
  1197. oParam.inds = "req=ds_main_cond";
  1198. oParam.outds = "ds_main_outpatlist=outpatlist";
  1199. oParam.async = true;
  1200. oParam.callback = "cf_TRMMO04207";
  1201. tranf_submit(oParam);
  1202. }
  1203. function cf_TRMMO04207(sSvcId, nErrorCode, sErrorMsg) {
  1204. frmf_setFocus(true);
  1205. }
  1206. /*===============================================================================
  1207. @desc : 조회일자가 2일이 넘지 않도록 설정
  1208. ===============================================================================*/
  1209. function fChkDate() {
  1210. var todd = model.getValue("/root/main/cond/todd");
  1211. fromdd2 = Number(todd-2)
  1212. var fromdd = model.getValue("/root/main/cond/fromdd");
  1213. Number(fromdd);
  1214. if (fromdd < fromdd2 || fromdd > todd) {
  1215. var cur_day = getCurrentDate();
  1216. model.setValue("/root/main/cond/fromdd" , todd );
  1217. ipt_fromdd.refresh();
  1218. messageBox("시작일은 2일 이전일 또는 종료일보다 클 수 ","E001");
  1219. } else {
  1220. fChkGetData() ;
  1221. }
  1222. }
  1223. function fInitialize() {
  1224. //관심슬립콤보 아이템추가
  1225. if (ds_main_cond.getColumn(0, "clsflag") == "P" ){
  1226. ds_main_cond.setColumn(0, "userid", sysf_getUserInfo("userid"));
  1227. } else if ( ds_main_cond.getColumn(0, "clsflag") == "G" ) {
  1228. ds_main_cond.setColumn(0, "userid", sysf_getUserInfo("dutplcecd"));
  1229. }
  1230. var oParam = {};
  1231. oParam.id = "TRMMB00101";
  1232. oParam.service = "prcpbaseapp.EnvInfoMngt";
  1233. oParam.method = "reqGetConcSlipList";
  1234. oParam.inds = "req=ds_main_cond";
  1235. oParam.outds = "ds_init_concsliplist=concsliplist";
  1236. oParam.async = false;
  1237. tranf_submit(oParam);
  1238. frmf_addComboItem("Div00.cmb_concslip", "- 전 체 -", "", "above");
  1239. Div00.cmb_concslip.index = 0;
  1240. }
  1241. function fChkGetData() {
  1242. var searflag = ds_main_cond.getColumn(0, "searflag");
  1243. if (searflag == "P") {
  1244. fInitialize();
  1245. fGetConcSlipPatList();
  1246. } else if(searflag == "A") {
  1247. fGetOpPatList();
  1248. } else if(searflag == "O") {
  1249. fOutPatList() ;
  1250. } else if (searflag == "I") {
  1251. fInPatList() ;
  1252. fMyPatChngColor();
  1253. }
  1254. }
  1255. /*===============================================================================
  1256. @desc : 관심슬립대상자 조회
  1257. ===============================================================================*/
  1258. function fGetConcSlipPatList(){
  1259. if ( ds_main_cond.getColumn(0, "clsflag") == "P" ){
  1260. ds_main_cond.setColumn(0, "userid", sysf_getUserInfo("userid"));
  1261. } else if ( ds_main_cond.getColumn(0, "clsflag") == "G" ) {
  1262. ds_main_cond.setColumn(0, "userid", sysf_getUserInfo("dutplcecd"));
  1263. }
  1264. var oParam = {};
  1265. oParam.id = "TRMMB00102";
  1266. oParam.service = "prcpbaseapp.EnvInfoMngt";
  1267. oParam.method = "reqGetConcSlipPatList";
  1268. oParam.inds = "reqdata=ds_main_cond";
  1269. oParam.outds = "ds_main_concslippatlist=concslippatlist";
  1270. oParam.async = true;
  1271. oParam.callback = "cf_TRMMB00102";
  1272. tranf_submit(oParam);
  1273. }
  1274. function cf_TRMMB00102(sSvcId, nErrorCode, sErrorMsg) {
  1275. frmf_setFocus(true);
  1276. }
  1277. /*===============================================================================
  1278. @desc : 수술마취대상자조회
  1279. ===============================================================================*/
  1280. function fGetOpPatList(){
  1281. fInitDataset();
  1282. // if (model.getValue ("/root/main/cond/clsflag") == "P" ){
  1283. // model.setValue("/root/main/cond/userid", getUserInfo("userid"));
  1284. // } else if ( model.getValue ("/root/main/cond/clsflag") == "G" ) {
  1285. // model.setValue("/root/main/cond/userid", getUserInfo("dutplcecd"));
  1286. // }
  1287. var oParam = {};
  1288. oParam.id = "TRMMO04206";
  1289. oParam.service = "prcpbaseapp.EnvInfoMngt";
  1290. oParam.method = "reqGetOpPatList";
  1291. oParam.inds = "req=ds_main_cond";
  1292. oParam.outds = "ds_main_oppatlist=oppatlist";
  1293. oParam.async = true;
  1294. oParam.callback = "cf_TRMMO04206";
  1295. tranf_submit(oParam);
  1296. }
  1297. function cf_TRMMO04206(sSvcId, nErrorCode, sErrorMsg) {
  1298. frmf_setFocus(true);
  1299. }
  1300. function fChkGetData() {
  1301. var searflag = ds_main_cond.getColumn(0, "searflag");
  1302. if (searflag =="P") {
  1303. fInitialize();
  1304. fGetConcSlipPatList();
  1305. } else if(searflag =="A") {
  1306. fGetOpPatList();
  1307. } else if(searflag =="O") {
  1308. fOutPatList() ;
  1309. } else if (searflag == "I") {
  1310. fInPatList() ;
  1311. fMyPatChngColor();
  1312. }
  1313. }
  1314. function fMyPatChngColor(color){
  1315. return (utlf_isNull(color) ? "#ffffff" : "#" + color);
  1316. }
  1317. //===================================================================
  1318. // 수술에서 사용하는 함수들
  1319. //===================================================================
  1320. /**
  1321. * @desc : 환자 선택 후, 환자 정보 조회 및 기록지 화면 연동
  1322. * @
  1323. * @param :
  1324. * @return :
  1325. * @author : 오지훈
  1326. * @---------------------------------------------------
  1327. */
  1328. /**
  1329. * @desc : 수술환자 선택
  1330. * @
  1331. * @param :
  1332. * @return :
  1333. * @author : 오지훈
  1334. * @---------------------------------------------------
  1335. */
  1336. function fMiniOpPat(){
  1337. var ordrecflag = ds_main_cond.getColumn(0, "ordrecflag");
  1338. var currow = ds_main_oppatlist.rowposition;
  1339. if(currow < 0){
  1340. return;
  1341. }
  1342. var opstatcd = ds_main_oppatlist.getColumn(currow, "opstatcd");
  1343. if(opstatcd == "00" || opstatcd == "10"){
  1344. sysf_messageBox("선택된 환자는 수술확정이 되지", "E007");
  1345. return;
  1346. }
  1347. //처방, CP화면에 modal 또는 modaless가 뜬 경우, 환자 선택 불가
  1348. if(fChkScrnModal()==false){
  1349. return;
  1350. }
  1351. //CP환자 여부 확인
  1352. if(fChkCPMiniOpPatValid(currow)==false){
  1353. return;
  1354. }
  1355. //상단정보 설정
  1356. //model.setValue(opener.root.cpflag, "N"); //처방open
  1357. if(fReqMiniOpPatPamInfo(currow)==true){
  1358. fOpenPrcpMainWnd();
  1359. }
  1360. var mainobj = frmf_getMainViewer();
  1361. var mainscrnid = mainobj.frmf_getScreenID(); //메인화면의 기록지 ID
  1362. if(sysf_getUserInfo("dutplcecd") == "2090000000"){ //로그인한 의사가 마취통증의학과인 경우
  1363. if(mainscrnid == "SMMMR03700"){
  1364. mainobj.fFormInit();
  1365. }else{
  1366. mainobj.frmf_openForm("SMMMR03700");
  1367. }
  1368. }
  1369. }
  1370. /**
  1371. * @desc : 수술환자 환자 기본정보설정
  1372. * @ 수정 : 미니진료대상자에 맞게끔 내용 수정
  1373. * @
  1374. * @param :
  1375. * @return :
  1376. * @author : 오지훈
  1377. * @---------------------------------------------------
  1378. */
  1379. function fReqMiniOpPatPamInfo(iRow){
  1380. var ioflag = "T" // 수술일 경우 ioflag:T
  1381. var pid = ds_main_oppatlist.getColumn(iRow, "pid");
  1382. var opcnfmdd = ds_main_oppatlist.getColumn(iRow, "opcnfmdd");
  1383. var cretno = "";
  1384. var instcd = ds_main_oppatlist.getColumn(iRow, "instcd");
  1385. var perfdeptcd = ds_main_oppatlist.getColumn(iRow, "perfdeptcd");
  1386. var perfdrid = ds_main_oppatlist.getColumn(iRow, "perfdrid");
  1387. var patflag = ds_main_oppatlist.getColumn(iRow, "ioflag");
  1388. var procflag = "F"; // 최초조회:F , 재조회:R
  1389. var oprsrvno = ds_main_oppatlist.getColumn(iRow, "oprsrvno");
  1390. var ophistno = ds_main_oppatlist.getColumn(iRow, "ophistno");
  1391. var srchdd = ds_main_cond.getColumn(0, "fromdd"); //조회일자
  1392. var param = ioflag + "▦" +
  1393. pid + "▦" +
  1394. opcnfmdd + "▦" +
  1395. cretno + "▦" +
  1396. instcd + "▦" +
  1397. perfdeptcd + "▦" +
  1398. perfdrid + "▦" +
  1399. patflag + "▦" +
  1400. procflag + "▦" +
  1401. oprsrvno + "▦" +
  1402. ophistno + "▦" +
  1403. srchdd;
  1404. return appf_initPatientInfo(param);
  1405. }
  1406. /**
  1407. * @desc : 수술환자 CP적용여부 확인
  1408. * @
  1409. * @param :
  1410. * @return :
  1411. * @author : 오지훈
  1412. * @---------------------------------------------------
  1413. */
  1414. function fChkCPMiniOpPatValid(currow){
  1415. var pid = ds_main_oppatlist.getColumn(currow, "pid");
  1416. var opcnfmdd = ds_main_oppatlist.getColumn(currow, "opcnfmdd");
  1417. var perfdeptcd = ds_main_oppatlist.getColumn(currow, "perfdeptcd");
  1418. var perfdrid = ds_main_oppatlist.getColumn(currow, "perfdrid");
  1419. var ioflag = ds_main_oppatlist.getColumn(currow, "ioflag");
  1420. var instcd = ds_main_oppatlist.getColumn(currow, "instcd");
  1421. var srchdd = ds_main_cond.getColumn(0, "opcnfmdd");
  1422. dsf_createDsRow("ds_TRMMO04503", [{col:"ioflag", type:"string", size:256, val:"I"} //수술환자 ioflag는 T로 설정, 실제로 T는 없으나, 로직처리를 위해 임시로, 실제 ioflag는 patflag
  1423. ,{col:"pid", type:"string", size:256, val:pid}
  1424. ,{col:"orddd", type:"string", size:256, val:opcnfmdd}
  1425. ,{col:"orddeptcd", type:"string", size:256, val:perfdeptcd}
  1426. ,{col:"orddrid", type:"string", size:256, val:perfdrid}
  1427. ,{col:"patflag", type:"string", size:256, val:ioflag} //실제 ioflag는 patflag로 설정
  1428. ,{col:"instcd", type:"string", size:256, val:instcd} //기관코드
  1429. ,{col:"srchdd", type:"string", size:256, val:srchdd}]); //기준일자
  1430. var oParam = {};
  1431. oParam.id = "TRMMO04503";
  1432. oParam.service = "prcpmngtapp.EtcPrcpMngt";
  1433. oParam.method = "reqGetPamKeyInfo";
  1434. oParam.inds = "req=ds_TRMMO04503";
  1435. oParam.outds = "ds_init_pamkeyinfo=pamkeyinfo";
  1436. oParam.async = false;
  1437. oParam.callback = "cf_TRMMO04503";
  1438. tranf_submit(oParam);
  1439. if(arErrorCode.pop("TRMMO04503") > -1){ //수술환자의 원무키 조회
  1440. var pid = ds_init_pamkeyinfo.getColumn(0, "pid");
  1441. var orddd = ds_init_pamkeyinfo.getColumn(0, "orddd");
  1442. var cretno= ds_init_pamkeyinfo.getColumn(0, "cretno");
  1443. var instcd= ds_init_pamkeyinfo.getColumn(0, "instcd");
  1444. var ioflag= ds_init_pamkeyinfo.getColumn(0, "ioflag");
  1445. var ocsflag = ds_main_cond.getColumn(0, "ocsflag");
  1446. if(ocsflag == "Y"){
  1447. dsf_createDsRow("ds_TRMMO04303", [{col:"pid", type:"string", size:256, val:pid}
  1448. ,{col:"orddd", type:"string", size:256, val:orddd}
  1449. ,{col:"cretno", type:"string", size:256, val:cretno}
  1450. ,{col:"prcpgenrflag", type:"string", size:256, val:ioflag}]);
  1451. var oParam = {};
  1452. oParam.id = "TRMMO04303";
  1453. oParam.service = "prcpbaseapp.CpMngt";
  1454. oParam.method = "reqGePattValidity";
  1455. oParam.inds = "req=ds_TRMMO04303";
  1456. oParam.outds = "ds_rsltgetdata=getdata";
  1457. oParam.async = false;
  1458. oParam.callback = "cf_TRMMO04303";
  1459. tranf_submit(oParam);
  1460. if(arErrorCode.pop("TRMMO04303") > -1) { //수술환자의 CP적용 여부 확인
  1461. var cppatnode = ds_rsltgetdata.rowcount;
  1462. if(cppatnode < 1){ //cp적용환자 tbl에 유효한 데이터가 없는 경우
  1463. ds_root.setColumn(0, "cpflag", "N"); //처방open
  1464. return true;
  1465. }else{ //CP적용환자 tbl에 유효한 데이터가 있는 경우
  1466. var appstat = ds_rsltgetdata.getColumn(0, "appstat");
  1467. var cpgnm = ds_rsltgetdata.getColumn(0, "cpgnm");
  1468. if(appstat == 12){ //CP적용상태가 12인 경우
  1469. ds_root.setColumn(0, "cpflag", "Y");
  1470. return true;
  1471. /*
  1472. var rtnval = messageBox("[" + hngnm + "]환자의 [" + cpgnm + "] CP를", "Q003");
  1473. if(rtnval == 6){ //예 선택, CP Main open, CP적용환자 tbl에 appstat 10 진행중
  1474. model.setValue(opener.root.cpflag, "N");
  1475. return fUpdtCPPatAppStatVal(52);
  1476. }else{ //아니오 선택, 처방 Main open, CP적용환자 tbl에 appstat 51 drop out
  1477. model.setValue(opener.root.cpflag, "Y");
  1478. return fUpdtCPPatAppStatVal(10);
  1479. }*/
  1480. }else if(appstat == 52){
  1481. var rtnval = sysf_messageBox("[" + hngnm + "]환자에게 CP를", "Q003");
  1482. if(rtnval == 6){ //예, CP Main open, CP적용환자 tbl에 appstat 10 진행중
  1483. ds_root.setColumn(0, "cpflag", "X");
  1484. return true;
  1485. }else{
  1486. ds_root.setColumn(0, "cpflag", "N");
  1487. return fUpdtCPPatAppStatVal(41); //41 : CP취소
  1488. }
  1489. }else{ //CP적용상태가 11가 아닌 경우, CP Main창 open
  1490. ds_root.setColumn(0, "cpflag", "Y");
  1491. return true;
  1492. }
  1493. }
  1494. }
  1495. }
  1496. }
  1497. }
  1498. function cf_TRMMO04503(sSvcId, nErrorCode, sErrorMsg) {
  1499. arErrorCode.push(sSvcId, nErrorCode);
  1500. }
  1501. function fInitDataset() {
  1502. ds_main_inpatlist.clearData();
  1503. ds_main_outpatlist.clearData();
  1504. ds_main_concslippatlist.clearData();
  1505. ds_main_oppatlist.clearData();
  1506. }
  1507. function switch2_case1_grd_outpatlist_oncelldblclick(obj:Grid, e:GridClickEventInfo)
  1508. {
  1509. if(e.row < 0 || e.col < 0) return;
  1510. fMiniOutPat();
  1511. }
  1512. function switch2_case2_grd_inpatlist_oncelldblclick(obj:Grid, e:GridClickEventInfo)
  1513. {
  1514. if(e.row < 0 || e.col < 0) return;
  1515. fMiniInPat();
  1516. }
  1517. function switch2_case4_grd_oppatlist_oncelldblclick(obj:Grid, e:GridClickEventInfo)
  1518. {
  1519. if(e.row < 0 || e.col < 0) return;
  1520. fMiniOpPat();
  1521. }]]></Script>
  1522. </Form>
  1523. </FDL>