CLIP.e-Form.Hospital.PatList.xml 28 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689
  1. <?xml version="1.0" encoding="utf-8" ?>
  2. <sqlMap namespace="CLIP.e-Form.Consent.Knuh" xmlns="http://ibatis.apache.org/mapping" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" >
  3. <statements>
  4. <statement id="getInPatList" parameterClass="System.Collections.Hashtable" resultMap="PatListMap">
  5. <isEqual property="patientState" compareValue="C">
  6. <![CDATA[
  7. with tmp as
  8. (SELECT /*+ leading(h m c) materialize */ m.instcd,m.pid ,m.cretno,m.orddd
  9. FROM ema.consent_mst c,
  10. emr.mrfmocrprnt m,
  11. emr.mrfhocrprnt h
  12. WHERE c.use_yn = 'Y'
  13. AND c.consent_state IN ('UNFINISHED', 'TEMP', 'ELECTR_CMP')
  14. AND m.instcd = c.hos_type
  15. AND m.ocrtag = c.ocr_number
  16. and m.instcd = h.instcd
  17. and m.ocrtag = h.ocrtag
  18. and m.updtdt = h.updtdt
  19. and h.statcd = 'P'
  20. and h.updtdt like #srchDd#||'%'
  21. and h.instcd = #instCd# )
  22. ]]>
  23. </isEqual>
  24. <![CDATA[
  25. SELECT ptbs.pid AS pid,
  26. inpt.indd AS inDd,
  27. inpt.cretno AS cretNo,
  28. inpt.instcd AS instCd,
  29. inpt.ordtype AS ordType,
  30. ptbs.hngnm AS hngNm,
  31. inpt.orddeptcd AS ordDeptCd,
  32. inpt.medispclid AS doctorId,
  33. ptbs.sex ||'/'||com.Fn_zz_getage('','',TO_CHAR(SYSDATE, 'yyyymmdd'),'B',brthdd) AS sa,
  34. com.fn_zs_getdeptnm(inpt.instcd,inpt.orddeptcd,inpt.dschdd) AS deptNm,
  35. com.fn_zs_getusernm(inpt.medispclid,inpt.dschdd) AS doctorNm,
  36. inpt.roomCd AS roomCd,
  37. '' AS opRoomNm,
  38. '' AS oprsRvNo
  39. FROM pam.pmihinpt inpt,
  40. pam.pmcmptbs ptbs
  41. ]]>
  42. <isEqual property="srchYN" compareValue="N">
  43. <isEqual property="myPatient" compareValue="Y">
  44. <![CDATA[
  45. , emr.mnwhsetp setp
  46. ]]>
  47. </isEqual>
  48. </isEqual>
  49. <![CDATA[
  50. WHERE inpt.instcd = #instCd#
  51. ]]>
  52. <isNotEmpty property="pid">
  53. <![CDATA[
  54. AND inpt.pid = #pid#
  55. ]]>
  56. </isNotEmpty>
  57. <isEqual property="patientState" compareValue="A">
  58. <!-- 재원 -->
  59. <![CDATA[
  60. and inpt.indschacptstat = 'A'
  61. ]]>
  62. </isEqual>
  63. <isEqual property="patientState" compareValue="0">
  64. <!-- 입원 -->
  65. <![CDATA[
  66. AND inpt.careinrmdd = #srchDd#
  67. ]]>
  68. </isEqual>
  69. <isEqual property="patientState" compareValue="1">
  70. <!-- 퇴원 -->
  71. <![CDATA[
  72. AND inpt.indschacptstat in ('T','D')
  73. AND inpt.dschdd = #srchDd#
  74. ]]>
  75. </isEqual>
  76. <isEqual property="patientState" compareValue="C">
  77. <![CDATA[
  78. AND EXISTS (SELECT 1
  79. FROM tmp a
  80. where a.instcd = inpt.instcd
  81. and a.pid = inpt.pid
  82. and a.orddd = inpt.indd
  83. and a.cretno = inpt.cretno )
  84. ]]>
  85. <!--![CDATA[
  86. AND EXISTS ( SELECT 1
  87. FROM ema.consent_mst c
  88. , emr.mrfmocrprnt m
  89. , emr.mrfhocrprnt h
  90. WHERE m.instcd = inpt.instcd
  91. AND m.pid = inpt.pid
  92. AND m.cretno = inpt.cretno
  93. AND m.orddd = inpt.indd
  94. AND c.use_yn = 'Y'
  95. AND c.consent_state IN ('UNFINISHED', 'TEMP')
  96. AND m.instcd = c.hos_type
  97. AND m.ocrtag = c.ocr_number
  98. AND h.instcd = m.instcd
  99. AND h.ocrtag = m.ocrtag
  100. AND h.updtdt = m.updtdt
  101. AND h.statcd = 'P'
  102. AND instr(H.UPDTDT, #srchDd#) > 0
  103. )
  104. ]] -->
  105. <!-- AND instr(H.UPDTDT, #srchDd#) > 0 -->
  106. </isEqual>
  107. <isNotEmpty property="patientState">
  108. <isNotEmpty property="wardCd">
  109. <![CDATA[
  110. AND inpt.wardcd = #wardCd#
  111. ]]>
  112. </isNotEmpty>
  113. <isEqual property="myPatient" compareValue="N">
  114. <isNotEmpty property="doctorId">
  115. <!-- 전공의(A), 담당교수(B), 그외 직종(C) 구분코드-->
  116. <![CDATA[
  117. AND CASE
  118. WHEN #drKind# = 'A'
  119. THEN inpt.atdoctid
  120. ELSE inpt.medispclid
  121. END = #doctorId#
  122. ]]>
  123. </isNotEmpty>
  124. </isEqual>
  125. <isNotEmpty property="ordDeptCd">
  126. <![CDATA[
  127. AND inpt.orddeptcd = #ordDeptCd#
  128. ]]>
  129. </isNotEmpty>
  130. </isNotEmpty>
  131. <!-- isEmpty property="patientState">
  132. <![CDATA[
  133. AND EXISTS ( SELECT 1
  134. FROM pam.pmihicdr icdr
  135. WHERE icdr.instcd = inpt.instcd
  136. AND icdr.pid = inpt.pid
  137. AND icdr.indd = inpt.indd
  138. AND icdr.cretno = inpt.cretno
  139. AND icdr.histstat = 'Y'
  140. AND #srchDd# between icdr.fromdd and icdr.todd
  141. ]]>
  142. <isNotEmpty property="wardCd">
  143. <![CDATA[
  144. AND icdr.wardCd = #wardCd#
  145. ]]>
  146. </isNotEmpty>
  147. <isNotEmpty property="doctorId">
  148. <![CDATA[
  149. AND CASE WHEN #drKind# = 'A' THEN icdr.atdoctid ELSE icdr.medispclid END = #doctorId#
  150. ]]>
  151. </isNotEmpty>
  152. <isNotEmpty property="ordDeptCd">
  153. <![CDATA[
  154. AND icdr.orddeptCd = #ordDeptCd#
  155. ]]>
  156. </isNotEmpty>
  157. <![CDATA[
  158. )
  159. ]]>
  160. </isEmpty -->
  161. <isEqual property="srchYN" compareValue="N">
  162. <isEqual property="myPatient" compareValue="Y">
  163. <![CDATA[
  164. AND setp.nursid = #userId#
  165. AND setp.pid = inpt.pid
  166. AND setp.fromdt < '99999999999999'
  167. AND setp.todt > SYSTIMESTAMP
  168. AND setp.instcd = #instCd#]]>
  169. </isEqual>
  170. </isEqual>
  171. <![CDATA[
  172. AND inpt.mskind = 'M'
  173. AND inpt.histstat = 'Y'
  174. AND inpt.ordtype in ('I','D')
  175. AND ptbs.instcd = inpt.instcd
  176. AND ptbs.pid = inpt.pid
  177. ORDER BY inpt.roomcd,
  178. ptbs.hngnm,
  179. inpt.indd
  180. ]]>
  181. </statement>
  182. <statement id="getOutPatList" parameterClass="System.Collections.Hashtable" resultMap="PatListMap">
  183. <isEqual property="patientState" compareValue="3">
  184. <![CDATA[
  185. with tmp as
  186. (SELECT /*+ leading(h m c) materialize */ m.instcd,m.pid ,m.cretno,m.orddd
  187. FROM ema.consent_mst c,
  188. emr.mrfmocrprnt m,
  189. emr.mrfhocrprnt h
  190. WHERE c.use_yn = 'Y'
  191. AND c.consent_state IN ('UNFINISHED', 'TEMP', 'ELECTR_CMP')
  192. AND m.instcd = c.hos_type
  193. AND m.ocrtag = c.ocr_number
  194. and m.instcd = h.instcd
  195. and m.ocrtag = h.ocrtag
  196. and m.updtdt = h.updtdt
  197. and h.statcd = 'P'
  198. and h.updtdt like #srchDd#||'%'
  199. and h.instcd = #instCd# )
  200. ]]>
  201. </isEqual>
  202. <![CDATA[
  203. SELECT ptbs.pid AS pid,
  204. otpt.orddd AS inDd,
  205. otpt.cretno AS cretNo,
  206. otpt.instcd AS instCd,
  207. otpt.ordtype AS ordType,
  208. ptbs.hngnm AS hngNm,
  209. otpt.orddeptcd AS ordDeptCd,
  210. otpt.orddrid AS doctorId,
  211. ptbs.sex ||'/'||com.Fn_zz_getage('','',orddd,'B',brthdd) AS sa,
  212. com.fn_zs_getdeptnm(otpt.instcd,otpt.orddeptcd,otpt.orddd) AS deptnm,
  213. com.fn_zs_getusernm(otpt.orddrid,otpt.orddd) AS doctorNm,
  214. '' AS roomCd,
  215. '' AS opRoomNm,
  216. '' AS oprsRvNo
  217. FROM pam.pmohotpt otpt,
  218. pam.pmcmptbs ptbs
  219. WHERE otpt.instcd = #instCd#
  220. AND otpt.mskind = 'M'
  221. AND otpt.histstat IN ('R', 'T')
  222. AND otpt.ordtype IN ('O','S')
  223. AND ptbs.instcd = otpt.instcd
  224. AND ptbs.pid = otpt.pid
  225. ]]>
  226. <isEqual property="srchYN" compareValue="N">
  227. <![CDATA[
  228. AND otpt.orddd = #srchDd#
  229. ]]>
  230. </isEqual>
  231. <isNotEmpty property="ordDeptCd">
  232. <![CDATA[
  233. AND otpt.orddeptcd = #ordDeptCd#
  234. ]]>
  235. </isNotEmpty>
  236. <isNotEmpty property="doctorId">
  237. <![CDATA[
  238. AND otpt.orddrid= #doctorId#
  239. ]]>
  240. </isNotEmpty>
  241. <isNotEqual property="patientState" compareValue="3">
  242. <isNotEmpty property="patientState">
  243. <isEqual property="srchYN" compareValue="N">
  244. <isNotEqual property="patientState" compareValue="A">
  245. <![CDATA[
  246. AND otpt.elbulbodstat = #patientState#
  247. ]]>
  248. </isNotEqual>
  249. </isEqual>
  250. </isNotEmpty>
  251. </isNotEqual>
  252. <isEqual property="patientState" compareValue="3">
  253. <![CDATA[
  254. AND EXISTS (SELECT 1
  255. FROM tmp a
  256. where a.instcd = otpt.instcd
  257. and a.pid = otpt.pid
  258. and a.orddd = otpt.orddd
  259. and a.cretno = otpt.cretno )
  260. ]]>
  261. <!-- ![CDATA[
  262. AND EXISTS ( SELECT 1
  263. FROM ema.consent_mst c
  264. , emr.mrfmocrprnt m
  265. , emr.mrfhocrprnt h
  266. WHERE c.hos_type = otpt.instcd
  267. AND c.pid = otpt.pid
  268. AND c.cretno = otpt.cretno
  269. AND c.visit_type = otpt.ordtype
  270. AND c.use_yn = 'Y'
  271. AND c.consent_state IN ('UNFINISHED', 'TEMP')
  272. AND m.instcd = c.hos_type
  273. AND m.ocrtag = c.ocr_number
  274. AND h.instcd = m.instcd
  275. AND h.ocrtag = m.ocrtag
  276. AND h.updtdt = m.updtdt
  277. AND h.statcd = 'P'
  278. AND instr(H.UPDTDT, #srchDd#) > 0
  279. )
  280. ]] -->
  281. </isEqual>
  282. <isNotEmpty property="pid">
  283. <![CDATA[
  284. AND otpt.pid = #pid#
  285. ]]>
  286. </isNotEmpty>
  287. <![CDATA[
  288. ORDER BY ptbs.hngnm, otpt.orddd DESC
  289. ]]>
  290. </statement>
  291. <statement id="getOpPatList" parameterClass="System.Collections.Hashtable" resultMap="PatListMap">
  292. <![CDATA[
  293. SELECT oprs.pid AS pid,
  294. to_char(to_date(inpt.indd,'yyyymmdd'),'yyyymmdd') AS inDd,
  295. inpt.cretno AS cretNo,
  296. inpt.instcd AS instcd,
  297. inpt.ordtype AS ordType,
  298. ptbs.hngnm AS hngNm,
  299. oprs.perfdeptcd AS ordDeptCd,
  300. oprs.perfdrid AS doctorId,
  301. ptbs.sex ||'/'||com.Fn_zz_getage('','',dschdd,'B',brthdd) AS sa,
  302. com.fn_zs_getdeptnm(oprs.instcd,oprs.perfdeptcd,oprs.opcnfmdd) AS deptNm,
  303. com.fn_zs_getusernm(oprs.perfdrid,oprs.opcnfmdd) AS doctorNm,
  304. inpt.roomcd AS roomCd,
  305. oproomcd AS opRoomNm,
  306. oprs.oprsrvno AS oprsRvNo
  307. FROM emr.mmohoprs oprs
  308. ,pam.pmcmptbs ptbs
  309. ,pam.pmihinpt inpt
  310. WHERE oprs.ophistcd = 'O'
  311. AND inpt.histstat = 'Y'
  312. AND inpt.mskind = 'M'
  313. AND ptbs.instcd = oprs.instcd
  314. AND ptbs.pid = oprs.pid
  315. AND inpt.instcd = oprs.instcd
  316. AND inpt.pid = oprs.pid
  317. AND oprs.opcnfmdd BETWEEN inpt.indd AND inpt.dschdd
  318. AND oprs.instcd = #instCd#
  319. AND oprs.opcnfmdd = #srchDd#
  320. ]]>
  321. <isNotEmpty property="ordDeptCd">
  322. <!-- 과 선택시 -->
  323. <![CDATA[
  324. AND oprs.perfdeptcd = #ordDeptCd#
  325. ]]>
  326. </isNotEmpty>
  327. <isNotEmpty property="doctorId">
  328. <!-- 의사 선택시 -->
  329. <![CDATA[
  330. AND oprs.perfdrid = #doctorId#
  331. ]]>
  332. </isNotEmpty>
  333. <isNotEmpty property="pid">
  334. <!-- 환자 등록번호 -->
  335. <![CDATA[
  336. AND oprs.pid = #pid#
  337. ]]>
  338. </isNotEmpty>
  339. <isEqual property="patientState" compareValue="0">
  340. <!-- 미착 -->
  341. <![CDATA[
  342. AND oprs.opstatcd IN ('10', '20')
  343. ]]>
  344. </isEqual>
  345. <isEqual property="patientState" compareValue="1">
  346. <!-- 준비 -->
  347. <![CDATA[
  348. AND oprs.opstatcd = '30'
  349. ]]>
  350. </isEqual>
  351. <isEqual property="patientState" compareValue="2">
  352. <!-- 진행 -->
  353. <![CDATA[
  354. AND oprs.opstatcd = '40'
  355. ]]>
  356. </isEqual>
  357. <isEqual property="patientState" compareValue="3">
  358. <!-- 완료 -->
  359. <![CDATA[
  360. AND oprs.opstatcd IN ('50', '60', '70')
  361. ]]>
  362. </isEqual>
  363. </statement>
  364. <statement id="getErPatList" parameterClass="System.Collections.Hashtable" resultMap="PatListMap">
  365. <isEqual property="patientState" compareValue="C">
  366. <![CDATA[
  367. with tmp as
  368. (SELECT /*+ leading(h m c) materialize */ m.instcd,m.pid ,m.cretno,m.orddd
  369. FROM ema.consent_mst c,
  370. emr.mrfmocrprnt m,
  371. emr.mrfhocrprnt h
  372. WHERE c.use_yn = 'Y'
  373. AND c.consent_state IN ('UNFINISHED', 'TEMP', 'ELECTR_CMP')
  374. AND m.instcd = c.hos_type
  375. AND m.ocrtag = c.ocr_number
  376. and m.instcd = h.instcd
  377. and m.ocrtag = h.ocrtag
  378. and m.updtdt = h.updtdt
  379. and h.statcd = 'P'
  380. and h.updtdt like #srchDd#||'%'
  381. and h.instcd = #instCd# )
  382. ]]>
  383. </isEqual>
  384. <![CDATA[
  385. SELECT ptbs.pid AS pid,
  386. inpt.indd AS indd,
  387. inpt.cretno AS cretNo,
  388. inpt.instCd AS instCD,
  389. inpt.ordtype AS ordType,
  390. ptbs.hngnm AS hngNm,
  391. inpt.orddeptcd AS ordDeptCd,
  392. inpt.medispclid AS doctorId,
  393. ptbs.sex ||'/'||com.Fn_zz_getage('','',TO_CHAR(SYSDATE, 'yyyymmdd'),'B',brthdd) AS sa,
  394. com.fn_zs_getdeptnm(inpt.instcd,inpt.orddeptcd,inpt.dschdd) AS deptNm,
  395. com.fn_zs_getusernm(inpt.medispclid,inpt.dschdd) AS doctorNm,
  396. inpt.roomcd AS roomCd,
  397. '' AS opRoomNm,
  398. '' AS oprsRvNo
  399. FROM pam.pmihinpt inpt,
  400. pam.pmcmptbs ptbs
  401. WHERE inpt.instcd = #instCd#
  402. AND inpt.mskind = 'M'
  403. AND inpt.histstat = 'Y'
  404. AND inpt.ordtype = 'E'
  405. AND ptbs.instcd = inpt.instcd
  406. AND ptbs.pid = inpt.pid
  407. ]]>
  408. <isEqual property="patientState" compareValue="A">
  409. <!-- 재원 -->
  410. <![CDATA[
  411. AND inpt.indschacptstat = 'A'
  412. AND inpt.eroutdt = '-'
  413. ]]>
  414. </isEqual>
  415. <isEqual property="patientState" compareValue="0">
  416. <!-- 퇴원 -->
  417. <![CDATA[
  418. AND inpt.indschacptstat in ('T','D')
  419. AND inpt.dschdd = #srchDd#
  420. ]]>
  421. </isEqual>
  422. <isEqual property="patientState" compareValue="1">
  423. <!-- 퇴실정리 -->
  424. <![CDATA[
  425. AND inpt.indschacptstat = 'A'
  426. AND inpt.eroutdt != '-'
  427. AND inpt.eroutdt != '99991231235959'
  428. AND inpt.dschdd = '99991231'
  429. ]]>
  430. </isEqual>
  431. <isEqual property="patientState" compareValue="C">
  432. <![CDATA[
  433. AND EXISTS (SELECT 1
  434. FROM tmp a
  435. where a.instcd = inpt.instcd
  436. and a.pid = inpt.pid
  437. and a.orddd = inpt.indd
  438. and a.cretno = inpt.cretno )
  439. ]]>
  440. <!-- ![CDATA[
  441. AND EXISTS ( SELECT 1
  442. FROM ema.consent_mst c
  443. , emr.mrfmocrprnt m
  444. , emr.mrfhocrprnt h
  445. WHERE m.instcd = inpt.instcd
  446. AND m.pid = inpt.pid
  447. AND m.cretno = inpt.cretno
  448. AND m.orddd = inpt.indd
  449. AND c.use_yn = 'Y'
  450. AND c.consent_state IN ('UNFINISHED', 'TEMP')
  451. AND m.instcd = c.hos_type
  452. AND m.ocrtag = c.ocr_number
  453. AND h.instcd = m.instcd
  454. AND h.ocrtag = m.ocrtag
  455. AND h.updtdt = m.updtdt
  456. AND h.statcd = 'P'
  457. AND instr(H.UPDTDT, #srchDd#) > 0
  458. )
  459. ]] -->
  460. </isEqual>
  461. <isNotEmpty property="pid">
  462. <![CDATA[
  463. AND inpt.pid = #pid#
  464. ]]>
  465. </isNotEmpty>
  466. <!-- 상태가 전체가 아니면 -->
  467. <isNotEmpty property="patientState">
  468. <isNotEmpty property="ordDeptCd">
  469. <![CDATA[
  470. AND inpt.orddeptcd = #ordDeptCd#
  471. ]]>
  472. </isNotEmpty>
  473. <isNotEmpty property="doctorId">
  474. <![CDATA[
  475. AND CASE WHEN #drKind# = 'A' THEN inpt.atdoctid ELSE inpt.medispclid END = #doctorId#
  476. ]]>
  477. </isNotEmpty>
  478. </isNotEmpty>
  479. <!-- 상태가 전체이면 -->
  480. <!-- isEmpty property="patientState">
  481. <![CDATA[
  482. AND EXISTS ( SELECT 1
  483. FROM pam.pmihicdr icdr
  484. WHERE icdr.instcd = inpt.instcd
  485. AND icdr.pid = inpt.pid
  486. AND icdr.indd = inpt.indd
  487. AND icdr.cretno = inpt.cretno
  488. AND icdr.histstat = 'Y'
  489. AND #srchDd# BETWEEN icdr.fromdd
  490. AND icdr.todd
  491. ]]>
  492. <isNotEmpty property="ordDeptCd">
  493. <![CDATA[
  494. AND icdr.orddeptcd = #ordDeptCd#
  495. ]]>
  496. </isNotEmpty>
  497. <isNotEmpty property="doctorId">
  498. <![CDATA[
  499. AND CASE
  500. WHEN #drKind# = 'A'
  501. THEN icdr.atdoctid
  502. ELSE icdr.medispclid
  503. END = #doctorId#
  504. ]]>
  505. </isNotEmpty>
  506. <![CDATA[
  507. )
  508. ]]>
  509. </isEmpty -->
  510. <![CDATA[
  511. ORDER BY ptbs.hngnm,inpt.indd,inpt.intm
  512. ]]>
  513. </statement>
  514. <statement id="getSrchPatInfo" parameterClass="System.Collections.Hashtable" resultMap="PatInfoListMap">
  515. <![CDATA[
  516. SELECT a.pid
  517. , a.hngnm AS hngnm
  518. , a.rrgstno1
  519. , substr(a.rrgstno2,1,1) || '******' as rrgstno2
  520. , COM.FN_ZZ_GETAGE(a.rrgstno1, a.rrgstno2, TO_CHAR(SYSDATE, 'YYYYMMDD'), 'A', a.brthdd) AS age
  521. , a.mpphontel
  522. , a.zipcdaddr as addr
  523. , a.detladdr
  524. , ( SELECT /*+ INDEX_DESC(b pk_pmohotpt) */
  525. orddd
  526. FROM pam.pmohotpt b
  527. WHERE b.instcd = #instcd#
  528. AND b.pid = a.pid
  529. AND histstat = 'R'
  530. AND dracptyn = 'Y'
  531. AND ROWNUM = 1
  532. ) AS lastorddd
  533. , ( SELECT /*+ INDEX_DESC(mohotpt pk_pmohotpt) */
  534. ( SELECT dept.depthngnm
  535. FROM com.zsdddept dept
  536. WHERE dept.instcd = mohotpt.instcd
  537. AND dept.deptcd = mohotpt.orddeptcd
  538. AND dept.valitodd = '99991231'
  539. )
  540. FROM pam.pmohotpt mohotpt
  541. WHERE mohotpt.instcd = #instcd#
  542. AND mohotpt.pid = a.pid
  543. AND mohotpt.histstat = 'R'
  544. AND mohotpt.dracptyn = 'Y'
  545. AND ROWNUM = 1
  546. ) AS lastorddept
  547. , ( SELECT /*+ INDEX_DESC(i pk_pmohotpt) */
  548. ( SELECT cdnm
  549. FROM com.zbcmcode
  550. WHERE cdgrupid = 'P0008'
  551. AND cdid = i.insukind
  552. AND valifromdd <= TO_CHAR(SYSDATE, 'YYYYMMDD')
  553. AND valitodd >= TO_CHAR(SYSDATE, 'YYYYMMDD')
  554. AND ROWNUM = 1
  555. )
  556. FROM pam.pmohotpt i
  557. WHERE i.instcd = #instcd#
  558. AND i.pid = a.pid
  559. AND i.histstat = 'R'
  560. AND i.dracptyn = 'Y'
  561. AND ROWNUM = 1
  562. ) AS lastinsukind
  563. FROM ( SELECT *
  564. FROM ema.vw_pam_pmcmptbs ptbs]]>
  565. <isEqual property="srchcond" compareValue="1">
  566. <![CDATA[
  567. WHERE ptbs.instcd = #instcd#
  568. AND ptbs.pid LIKE #pid# || '%' ]]>
  569. </isEqual>
  570. <isEqual property="srchcond" compareValue="2">
  571. <![CDATA[
  572. WHERE ptbs.instcd = #instcd#
  573. AND ptbs.hngnm LIKE REPLACE(#hngnm#, '★', '') || '%' ]]>
  574. </isEqual>
  575. <isEqual property="srchcond" compareValue="3">
  576. <![CDATA[
  577. WHERE ptbs.instcd = #instcd#
  578. AND ( ptbs.rrgstno1 LIKE #rrgstno1# || '%' AND ptbs.rrgstno2 LIKE #rrgstno2# || '%' )]]>
  579. </isEqual>
  580. <![CDATA[
  581. AND ROWNUM < 2000
  582. ) a
  583. ORDER BY hngnm, rrgstno1, rrgstno2]]>
  584. </statement>
  585. <statement id="getDeptList" parameterClass="System.Collections.Hashtable" resultMap="DeptListMap">
  586. <![CDATA[
  587. SELECT ' ' AS deptCd,
  588. '진료과(전체)' AS deptNm,
  589. 0 AS sort
  590. FROM dual
  591. UNION ALL
  592. SELECT deptcd AS deptCd,
  593. depthngnm AS deptNm,
  594. 1 AS sort
  595. FROM com.zsdddept
  596. WHERE instcd = #instCd#
  597. AND TO_CHAR(CURRENT_DATE,'YYYYMMDD') BETWEEN valifromdd AND valitodd
  598. ]]>
  599. <isEqual property="ordType" compareValue="OP">
  600. <![CDATA[
  601. AND orddeptflag = 'D'
  602. AND orduseyn = 'Y'
  603. ORDER BY sort, deptnm]]>
  604. </isEqual>
  605. <isNotEqual property="ordType" compareValue="OP">
  606. <![CDATA[
  607. AND rcptuseyn = 'Y'
  608. ORDER BY sort, deptnm]]>
  609. </isNotEqual>
  610. </statement>
  611. <statement id="getDocList" parameterClass="System.Collections.Hashtable" resultMap="DocListMap">
  612. <![CDATA[
  613. SELECT ' ' AS doctorId,
  614. '진료의(전체)' AS doctorNm,
  615. '일반의' AS doctorKind,
  616. ' ' AS drkind,
  617. 1 AS sort
  618. FROM DUAL
  619. UNION
  620. SELECT b.userid AS doctorId,
  621. b.usernm AS doctorNm,
  622. DECODE(a.jobposcd, '1800', '전공의'
  623. , '1799', '전공의'
  624. , '전문의') AS doctorKind,
  625. CASE
  626. WHEN jobkindcd like '03%' and jobposcd in ('1799','1800')
  627. THEN 'A'
  628. WHEN jobkindcd like '03%' then 'B' else 'C'
  629. END drKind,
  630. 2 AS sort
  631. FROM com.zsumusrd a
  632. , com.zsumusrb b
  633. WHERE a.dutplceinstcd = #instCd#
  634. AND a.psnworkyn = 'N'
  635. AND NVL(a.tempyn, '-') != 'C'
  636. AND a.jobkindcd LIKE '03%'
  637. ]]>
  638. <isNotEmpty property="ordDeptCd">
  639. <![CDATA[
  640. AND a.dutplcecd = #ordDeptCd#
  641. ]]>
  642. </isNotEmpty>
  643. <![CDATA[
  644. AND #srchDd# BETWEEN a.fromdd AND a.todd
  645. AND b.userid = a.userid
  646. AND #srchDd# BETWEEN b.userfromdd AND b.usertodd
  647. ORDER BY sort, doctorid
  648. ]]>
  649. </statement>
  650. <statement id="getWardList" parameterClass="System.Collections.Hashtable" resultMap="DeptListMap">
  651. <![CDATA[
  652. SELECT ' ' AS deptCd,
  653. '병동(전체)' AS deptNm,
  654. 1 AS sort
  655. FROM DUAL
  656. UNION ALL
  657. SELECT dept.deptcd AS deptcd,
  658. dept.depthngnm AS deptnm,
  659. 2 AS sort
  660. FROM com.zsdddept dept
  661. WHERE dept.instcd = #instCd#
  662. AND dept.orddeptflag = 'W'
  663. AND dept.orduseyn = 'Y'
  664. AND TO_CHAR(SYSDATE, 'YYYYMMDD') BETWEEN dept.valifromdd AND dept.valitodd
  665. ORDER BY sort, deptnm
  666. ]]>
  667. </statement>
  668. </statements>
  669. </sqlMap>