CLIP.e-Form.Hospital.Dfh.PatList.xml 37 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882
  1. <?xml version="1.0" encoding="utf-8" ?>
  2. <sqlMap namespace="CLIP.e-Form.Consent.Dfh" 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. <![CDATA[
  6. SELECT distinct ptbs.pid AS pid,
  7. substr(inpt.indd,1,4) || '/' || substr(inpt.indd,5,2) || '/' || substr(inpt.indd,7,2) AS indd,
  8. inpt.indd AS orddd,
  9. inpt.cretno AS cretno,
  10. inpt.seqno AS seqno,
  11. inpt.instcd AS instcd,
  12. ptbs.hngnm AS hngnm,
  13. (select code.cdnm
  14. from com.zbcmcode code
  15. where code.cdgrupid = 'P0021'
  16. and code.valifromdd <= inpt.indd
  17. and code.valitodd >= inpt.indd
  18. and code.cdid = inpt.fsexamflag) AS fsexamflag,
  19. /*+ index_desc(icdr IX_PMIHICDR_03) */ icdr.orddeptcd AS orddeptcd,
  20. icdr.medispclid AS doctorid,
  21. TO_DATE('$srchdd$') - TO_DATE(inpt.indd) AS hd,
  22. TRIM(ptbs.sex || '/' || LPAD(FLOOR(COM.FN_ZZ_GETAGE_EMR2('000000','0000000','$srchdd$', 'B', ptbs.brthdd) / 12), 2, 0) || 'y' || LPAD(MOD(COM.FN_ZZ_GETAGE_EMR2('000000','0000000','$srchdd$', 'B', ptbs.brthdd), 12), 2, 0) || 'm') AS sa,
  23. dept.depthngnm AS deptnm,
  24. dept.DEPTENGABBR AS deptengabbr,
  25. NVL((SELECT usernm
  26. FROM com.zsumusrb
  27. WHERE userid = icdr.medispclid
  28. AND userfromdd <= #srchdd#
  29. AND usertodd >= #srchdd#), '-') AS doctornm,
  30. (SELECT term.termengnm
  31. FROM emr.mmohdiag diag,
  32. emr.mrtmterm term
  33. WHERE diag.diagcd = term.termcd
  34. AND diag.instcd = term.instcd
  35. AND diag.diagdd >= term.termfromdd
  36. AND diag.diagdd <= term.termtodd
  37. AND diag.pid = inpt.pid
  38. AND diag.orddd = inpt.indd
  39. AND diag.cretno = inpt.cretno
  40. AND diag.orddeptcd = icdr.orddeptcd
  41. AND diag.instcd = inpt.instcd
  42. AND diag.diaghistcd = 'O'
  43. AND diag.diagtypecd = 'D'
  44. AND diag.diagkindcdflag = 'M'
  45. AND ROWNUM = 1) AS diagnm,
  46. CASE inpt.indschacptstat WHEN 'D'
  47. THEN '퇴원'
  48. WHEN 'T'
  49. THEN '가퇴원'
  50. ELSE (CASE inpt.dschnotiyn
  51. WHEN 'Y'
  52. THEN '퇴원통보'
  53. ELSE (CASE inpt.dschdclrtyn
  54. WHEN 'Y'
  55. THEN '퇴원예고'
  56. ELSE '-'
  57. END)
  58. END)
  59. END AS dschnoti,
  60. icdr.roomcd AS roomcd,
  61. CASE WHEN (SELECT COUNT(instcd)
  62. FROM emr.mmrhcnstinfo
  63. WHERE pid = inpt.pid
  64. AND orddd = inpt.indd
  65. AND cretno = inpt.cretno
  66. AND reqdd = #srchdd#
  67. AND chosflag IN ('I','E')
  68. AND cnstflag IN ('1','2')
  69. AND ROWNUM = 1) > 0
  70. THEN 'Y'
  71. ELSE 'N' END AS cnst,
  72. icdr.ordtype AS ordtype,
  73. (SELECT z.cdnm
  74. FROM com.zbcmcode z
  75. WHERE inpt.insukind = z.cdid
  76. AND z.cdgrupid = 'P0008'
  77. AND inpt.indd BETWEEN z.valifromdd AND z.valitodd) AS bostyle,
  78. 'N' AS elbulbodstat,
  79. 'N' AS ordtm
  80. FROM pam.pmihinpt inpt, pam.pmihicdr icdr, com.zsdddept dept, pam.pmcmptbs ptbs
  81. ]]>
  82. <isNotEmpty property="patstat">
  83. <isEqual property="patstat" compareValue="C">
  84. , cmr.consent_mst mst
  85. <isEqual property="nursyn" compareValue="Y">
  86. , (select doc.*
  87. from cmr.eform_document doc
  88. where doc.CATEGORY_RID in
  89. (select cate.category_rid
  90. from cmr.eform_category cate
  91. where cate.p_category_rid = '147')) docu
  92. </isEqual>
  93. <isEqual property="nursyn" compareValue="N">
  94. , (select doc.*
  95. from cmr.eform_document doc
  96. where doc.CATEGORY_RID in
  97. (select cate.category_rid
  98. from cmr.eform_category cate
  99. where cate.p_category_rid != '147')) docu
  100. </isEqual>
  101. </isEqual>
  102. </isNotEmpty>
  103. <![CDATA[
  104. WHERE inpt.histstat = 'Y'
  105. AND inpt.mskind = 'M'
  106. AND icdr.ordtype IN ('I', 'D')
  107. AND inpt.instcd = #instcd#
  108. AND inpt.pid = icdr.pid
  109. AND inpt.pid = icdr.pid
  110. AND inpt.indd = icdr.indd
  111. AND inpt.cretno = icdr.cretno
  112. AND inpt.instcd = icdr.instcd
  113. AND inpt.histstat = icdr.histstat
  114. AND icdr.fromdd <= #srchdd#
  115. AND icdr.todd >= #srchdd#
  116. AND icdr.pid = ptbs.pid
  117. AND icdr.instcd = ptbs.instcd
  118. AND icdr.instcd = dept.instcd
  119. AND icdr.orddeptcd = dept.deptcd
  120. AND dept.orddeptflag = 'D'
  121. AND dept.orduseyn = 'Y'
  122. AND dept.valifromdd <= #srchdd#
  123. AND dept.valitodd >= #srchdd#
  124. ]]>
  125. <isNotEmpty property="pid">
  126. AND icdr.pid = #pid#
  127. </isNotEmpty>
  128. <isNotEmpty property="doctorid">
  129. AND icdr.medispclid = #doctorid#
  130. </isNotEmpty>
  131. <isNotEmpty property="wardcd">
  132. AND icdr.wardcd = #wardcd#
  133. </isNotEmpty>
  134. <isNotEmpty property="orddeptcd">
  135. AND inpt.orddeptcd = #orddeptcd#
  136. </isNotEmpty>
  137. <isNotEmpty property="patstat">
  138. <isEqual property="patstat" compareValue="D">
  139. AND icdr.indschacptstat IN ('D', 'T')
  140. </isEqual>
  141. <isEqual property="patstat" compareValue="P">
  142. AND inpt.indd = #srchdd#
  143. </isEqual>
  144. <isEqual property="patstat" compareValue="F">
  145. AND inpt.careinrmtm != '-'
  146. </isEqual>
  147. <isEqual property="patstat" compareValue="C">
  148. and inpt.instcd = mst.hos_type
  149. and inpt.pid = mst.pid
  150. and inpt.cretno = mst.cretno
  151. and inpt.ordtype = mst.visit_type
  152. and mst.use_yn = 'Y'
  153. and mst.consent_state = 'UNFINISHED'
  154. and docu.FORM_RID = mst.form_rid
  155. </isEqual>
  156. </isNotEmpty>
  157. <isEmpty property="patstat">
  158. AND icdr.indschacptstat IN ('A', 'D', 'T')
  159. </isEmpty>
  160. order by roomcd,
  161. hngnm
  162. </statement>
  163. <statement id="getOutPatList" parameterClass="System.Collections.Hashtable" resultMap="PatListMap">
  164. <![CDATA[
  165. SELECT otpt.pid AS pid,
  166. substr(otpt.orddd,1,4) || '/' || substr(otpt.orddd,5,2) || '/' || substr(otpt.orddd,7,2) AS indd,
  167. otpt.cretno AS cretno,
  168. otpt.acptseqno AS seqno,
  169. otpt.instcd AS instcd,
  170. ptbs.hngnm AS hngnm,
  171. (select code.cdnm
  172. from com.zbcmcode code
  173. where code.cdgrupid = 'P0021'
  174. and code.valifromdd <= otpt.orddd
  175. and code.valitodd >= otpt.orddd
  176. and code.cdid = otpt.fsexamflag) AS fsexamflag,
  177. otpt.orddeptcd AS orddeptcd,
  178. otpt.orddrid AS doctorid,
  179. 1 AS hd,
  180. TRIM(ptbs.sex || '/' || LPAD(FLOOR(COM.FN_ZZ_GETAGE_EMR2('000000','0000000',otpt.orddd, 'B', ptbs.brthdd) / 12), 2, 0) || 'y' || LPAD(MOD(COM.FN_ZZ_GETAGE_EMR2('000000','0000000',otpt.orddd, 'B', ptbs.brthdd), 12), 2, 0) || 'm') AS sa,
  181. dept.depthngnm AS deptnm,
  182. dept.deptengabbr AS deptengabbr,
  183. usrb.usernm AS doctornm,
  184. (SELECT term.termengnm diagengnm
  185. FROM emr.mmohdiag diag,
  186. emr.mrtmterm term
  187. WHERE diag.pid = otpt.pid
  188. AND diag.orddd = otpt.orddd
  189. AND diag.cretno = otpt.cretno
  190. AND diag.orddeptcd = otpt.orddeptcd
  191. AND diag.instcd = otpt.instcd
  192. AND diag.diagcd = term.termcd
  193. AND diag.diagdd >= term.termfromdd
  194. AND diag.diagdd <= term.termtodd
  195. AND diag.instcd = term.instcd
  196. AND diag.diaghistcd = 'O'
  197. AND diag.diagtypecd = 'D'
  198. AND diag.diagkindcdflag = 'M'
  199. AND ROWNUM = 1) AS diagnm,
  200. 'N' AS dschnoti,
  201. 'N' AS roomcd,
  202. 'N' AS cnst,
  203. otpt.ordtype AS ordtype,
  204. (SELECT z.cdnm
  205. FROM com.zbcmcode z
  206. WHERE otpt.insukind = z.cdid
  207. AND z.cdgrupid = 'P0008'
  208. AND otpt.orddd BETWEEN z.valifromdd AND z.valitodd) AS bostyle,
  209. case when otpt.elbulbodstat='0' then '접수'
  210. when otpt.elbulbodstat = '1' then '대기'
  211. when otpt.elbulbodstat = '2' then '완료'
  212. when otpt.elbulbodstat = '3' then '보류'
  213. end AS elbulbodstat,
  214. substr(otpt.ordtm,1,2) || ':' || substr(otpt.ordtm,3,2) AS ordtm,
  215. otpt.centcd as centcd,
  216. cent.depthngnm as centnm,
  217. cent.deptengabbr as centengabbr,
  218. otpt.orddd
  219. FROM pam.pmohotpt otpt
  220. , pam.pmcmptbs ptbs
  221. , com.zsdddept dept
  222. , com.zsumusrb usrb
  223. , com.zsdddept cent
  224. WHERE otpt.histstat IN ('R', 'T')
  225. AND otpt.ordtype IN ('O', 'S')
  226. AND otpt.pid = ptbs.pid
  227. AND otpt.instcd = ptbs.instcd
  228. AND otpt.instcd = dept.instcd
  229. AND otpt.orddeptcd = dept.deptcd
  230. AND otpt.orddd >= dept.valifromdd
  231. AND otpt.orddd <= dept.valitodd
  232. AND otpt.orddrid = usrb.userid
  233. AND otpt.orddd >= usrb.userfromdd
  234. AND otpt.orddd <= usrb.usertodd
  235. AND otpt.instcd = cent.instcd(+)
  236. AND otpt.centcd = cent.deptcd(+)
  237. AND otpt.orddd >= cent.valifromdd(+)
  238. AND otpt.orddd <= cent.valitodd(+)
  239. ]]>
  240. AND otpt.orddd = #srchdd#
  241. AND otpt.instcd = #instcd#
  242. <isNotEmpty property="pid">
  243. AND otpt.pid = #pid#
  244. </isNotEmpty>
  245. <isNotEmpty property="patstat">
  246. <isEqual property="patstat" compareValue="C">
  247. and exists (select 1
  248. from cmr.consent_mst mst
  249. where mst.hos_type = otpt.instcd
  250. and mst.visit_type = otpt.ordtype
  251. and mst.pid = otpt.pid
  252. and mst.cln_date = otpt.orddd
  253. and mst.cretno = otpt.cretno
  254. and mst.consent_state in ('UNFINISHED')
  255. and mst.use_yn = 'Y')
  256. </isEqual>
  257. <isNotEqual property="patstat" compareValue="C">
  258. AND otpt.elbulbodstat = #patstat#
  259. </isNotEqual>
  260. </isNotEmpty>
  261. <isNotEmpty property="orddeptcd">
  262. <isEqual property="orddeptcd" compareValue="2040000000">
  263. AND otpt.orddeptcd in ('2040000000', '2040400000')
  264. </isEqual>
  265. <isEqual property="orddeptcd" compareValue="2040400000">
  266. AND otpt.orddeptcd in ('2040000000', '2040400000')
  267. </isEqual>
  268. <isNotEqual property="orddeptcd" compareValue="2040400000">
  269. <isNotEqual property="orddeptcd" compareValue="2040000000">
  270. AND otpt.orddeptcd = #orddeptcd#
  271. </isNotEqual>
  272. </isNotEqual>
  273. </isNotEmpty>
  274. <isNotEmpty property="orddrid">
  275. AND otpt.orddrid = #orddrid#
  276. </isNotEmpty>
  277. AND nvl(otpt.etcordflag,'-') NOT IN ('M','J') --2020.12.16 일자로 쿼리수정
  278. ORDER BY dept.deptengabbr, ptbs.hngnm, usrb.usernm, otpt.ordtm
  279. </statement>
  280. <statement id="getOpPatList" parameterClass="System.Collections.Hashtable" resultMap="OpPatListMap">
  281. <![CDATA[
  282. SELECT oprs.pid as pid,
  283. substr(inpt.indd,1,4) || '/' || substr(inpt.indd,5,2) || '/' || substr(inpt.indd,7,2) as indd,
  284. inpt.cretno as cretno,
  285. 0 as seqno,
  286. inpt.instcd as instcd,
  287. ptbs.hngnm as hngnm,
  288. 'N' as fsexamflag,
  289. case when oprs.oppatflagcd = 'E' then '2280000000' else oprs.perfdeptcd end as orddeptcd,
  290. oprs.perfdrid as doctorid,
  291. 0 as hd,
  292. TRIM(ptbs.sex || '/' || LPAD(FLOOR(COM.FN_ZZ_GETAGE_EMR2('000000',
  293. '0000000',
  294. #srchdd#,
  295. 'B',
  296. ptbs.brthdd) / 12),
  297. 2,
  298. 0) || 'y' ||
  299. LPAD(MOD(COM.FN_ZZ_GETAGE_EMR2('000000',
  300. '0000000',
  301. #srchdd#,
  302. 'B',
  303. ptbs.brthdd),
  304. 12),
  305. 2,
  306. 0) || 'm') AS sa,
  307. dept.indepthngnm as deptnm,
  308. 'N' as deptengabbr,
  309. usrb.usernm as doctornm,
  310. 'N' as diagnm,
  311. 'N' as dschnoti,
  312. COALESCE((SELECT roomcd
  313. FROM pam.pmihinpt inpt,
  314. pam.pmihiphs iphs
  315. WHERE inpt.pid = oprs.pid
  316. AND inpt.indd <= oprs.opcnfmdd
  317. AND inpt.instcd = oprs.instcd
  318. AND inpt.histstat = 'Y'
  319. AND inpt.pid = iphs.pid
  320. AND inpt.indd = iphs.indd
  321. AND inpt.cretno = iphs.cretno
  322. AND inpt.instcd = iphs.instcd
  323. AND oprs.opcnfmdd >= iphs.fromdd
  324. AND oprs.opcnfmdd <= iphs.todd
  325. AND iphs.histstat = 'Y'
  326. AND ROWNUM = 1),
  327. '없음') as roomcd,
  328. 'N' as cnst,
  329. (SELECT z.cdnm
  330. FROM com.zbcmcode z
  331. WHERE inpt.insukind = z.cdid
  332. AND z.cdgrupid = 'P0008'
  333. AND inpt.indd BETWEEN z.valifromdd AND z.valitodd) AS bostyle,
  334. 'N' as elbulbodstat,
  335. oprs.oppatflagcd as ordtype,
  336. case
  337. when oprs.oproomcd = '0000' then
  338. '방없음'
  339. when oprs.oproomcd = '0014' then
  340. 'Angio'
  341. when oprs.oproomcd = '0015' then
  342. 'ER'
  343. else
  344. substr(oprs.oproomcd, 3, 2)
  345. end as oproomnm,
  346. (select code.cdnm
  347. from com.zbcmcode code
  348. where code.cdgrupid = 'M0017'
  349. and code.cdid = oprs.anstmthdcd
  350. and code.valifromdd <= inpt.indd
  351. and code.valitodd >= inpt.indd) as anstreqflag
  352. ,
  353. (SELECT MAX(CASE opcnfmno
  354. WHEN 1 THEN
  355. RTRIM(usernm)
  356. ELSE
  357. ''
  358. END) || MAX(CASE opcnfmno
  359. WHEN 2 THEN
  360. concat(', ', RTRIM(usernm))
  361. ELSE
  362. ''
  363. END) || MAX(CASE opcnfmno
  364. WHEN 3 THEN
  365. concat(', ', RTRIM(usernm))
  366. ELSE
  367. ''
  368. END)
  369. FROM emr.mmodocad mmod,
  370. com.zsumusrb usrb
  371. WHERE mmod.anstdrid = usrb.userid
  372. AND oprs.rgstdd >= usrb.userfromdd
  373. AND oprs.rgstdd <= usrb.usertodd
  374. AND mmod.oprsrvno = oprs.oprsrvno
  375. AND mmod.instcd = oprs.instcd) as anstdrnm
  376. , oprs.opcnfmdd
  377. FROM emr.mmohoprs oprs
  378. LEFT OUTER JOIN com.zsumusrb usrb
  379. ON usrb.userid = oprs.perfdrid
  380. AND usrb.userfromdd <= oprs.opcnfmdd
  381. AND usrb.usertodd >= oprs.opcnfmdd
  382. LEFT OUTER JOIN com.zsdddept dept
  383. ON dept.deptcd = oprs.perfdeptcd
  384. AND dept.orddeptflag = 'D'
  385. AND dept.orduseyn = 'Y'
  386. AND dept.instcd = oprs.instcd
  387. AND dept.valifromdd <= oprs.opcnfmdd
  388. AND dept.valitodd >= oprs.opcnfmdd, pam.pmcmptbs ptbs,
  389. pam.pmihinpt inpt
  390. WHERE oprs.pid = ptbs.pid
  391. AND oprs.instcd = ptbs.instcd
  392. AND oprs.instcd = inpt.instcd
  393. AND oprs.pid = inpt.pid
  394. AND oprs.opcnfmdd between inpt.indd and inpt.dschdd
  395. AND inpt.histstat = 'Y'
  396. AND inpt.mskind = 'M'
  397. AND oprs.opcnfmdd = #srchdd#
  398. AND oprs.instcd = #instcd#
  399. AND oprs.ophistcd = 'O'
  400. ]]>
  401. <isNotEmpty property="orddeptcd">
  402. <isEqual property="orddeptcd" compareValue="2040000000">
  403. AND oprs.perfdeptcd in ('2040000000', '2040400000')
  404. </isEqual>
  405. <isEqual property="orddeptcd" compareValue="2040400000">
  406. AND oprs.perfdeptcd in ('2040000000', '2040400000')
  407. </isEqual>
  408. <isNotEqual property="orddeptcd" compareValue="2040400000">
  409. <isNotEqual property="orddeptcd" compareValue="2040000000">
  410. AND oprs.perfdeptcd = #orddeptcd#
  411. </isNotEqual>
  412. </isNotEqual>
  413. </isNotEmpty>
  414. <isNotEmpty property="orddrid">
  415. AND oprs.perfdrid = #orddrid#
  416. </isNotEmpty>
  417. <isNotEmpty property="pid">
  418. AND oprs.pid = #pid#
  419. </isNotEmpty>
  420. <isEqual property="opstatcd" compareValue="A">
  421. AND oprs.opstatcd IN ('10','20','30','40','50','60','70')
  422. </isEqual>
  423. <isEqual property="opstatcd" compareValue="M">
  424. AND oprs.opstatcd IN ('10','20')
  425. </isEqual>
  426. <isEqual property="opstatcd" compareValue="R">
  427. AND oprs.opstatcd = '30'
  428. </isEqual>
  429. <isEqual property="opstatcd" compareValue="I">
  430. AND oprs.opstatcd = '40'
  431. </isEqual>
  432. <isEqual property="opstatcd" compareValue="F">
  433. AND oprs.opstatcd IN ('50', '60', '70')
  434. </isEqual>
  435. ORDER BY oproomnm, oprs.opendtmcd
  436. </statement>
  437. <statement id="getErPatList" parameterClass="System.Collections.Hashtable" resultMap="ErPatListMap">
  438. <![CDATA[
  439. SELECT distinct inpt.pid as pid,
  440. substr(inpt.indd, 1, 4) || '/' || substr(inpt.indd, 5, 2) || '/' ||
  441. substr(inpt.indd, 7, 2) as indd,
  442. inpt.intm,
  443. inpt.cretno as cretno,
  444. inpt.seqno as seqno,
  445. inpt.instcd as instcd,
  446. ptbs.hngnm as hngnm,
  447. inpt.fsexamflag as fsexamflag,
  448. inpt.orddeptcd as orddeptcd,
  449. inpt.medispclid as doctorid,
  450. 0 as hd,
  451. TRIM(ptbs.sex || '/' || LPAD(FLOOR(COM.FN_ZZ_GETAGE_EMR2('000000',
  452. '0000000',
  453. #srchdd#,
  454. 'B',
  455. ptbs.brthdd) / 12),
  456. 2,
  457. 0) || 'y' ||
  458. LPAD(MOD(COM.FN_ZZ_GETAGE_EMR2('000000',
  459. '0000000',
  460. #srchdd#,
  461. 'B',
  462. ptbs.brthdd),
  463. 12),
  464. 2,
  465. 0) || 'm') AS sa,
  466. dept.depthngnm as deptnm,
  467. dept.deptengabbr as deptengabbr,
  468. usrb.usernm AS doctornm,
  469. dept1.depthngnm as erorddeptnm,
  470. usrb1.usernm AS ermedispclnm,
  471. inpt.erorddeptcd as erorddeptcd,
  472. inpt.ermedispclid as ermedispclid,
  473. 'N' as diagnm,
  474. 'N' as dschnoti,
  475. inpt.roomcd as roomcd,
  476. 'N' as cnst,
  477. inpt.ordtype as ordtype,
  478. (SELECT z.cdnm
  479. FROM com.zbcmcode z
  480. WHERE inpt.insukind = z.cdid
  481. AND z.cdgrupid = 'P0008'
  482. AND inpt.indd BETWEEN z.valifromdd AND z.valitodd) AS bostyle,
  483. inpt.badcd as badcd
  484. FROM pam.pmihinpt inpt
  485. LEFT OUTER JOIN com.zsumusrb usrb
  486. ON inpt.medispclid = usrb.userid
  487. AND #srchdd# >= usrb.userfromdd
  488. AND #srchdd# <= usrb.usertodd
  489. LEFT OUTER JOIN com.zsdddept dept
  490. ON inpt.orddeptcd = dept.deptcd
  491. AND #srchdd# >= dept.valifromdd
  492. AND #srchdd# <= dept.valitodd
  493. AND inpt.instcd = dept.instcd
  494. LEFT OUTER JOIN com.zsumusrb usrb1
  495. ON inpt.ermedispclid = usrb1.userid
  496. AND #srchdd# >= usrb1.userfromdd
  497. AND #srchdd# <= usrb1.usertodd
  498. LEFT OUTER JOIN com.zsdddept dept1
  499. ON inpt.erorddeptcd = dept1.deptcd
  500. AND #srchdd# >= dept1.valifromdd
  501. AND #srchdd# <= dept1.valitodd
  502. AND inpt.instcd = dept1.instcd, pam.pmihicdr icdr,
  503. pam.pmcmptbs ptbs
  504. ]]>
  505. <isNotEmpty property="patstat">
  506. <isEqual property="patstat" compareValue="C">
  507. , cmr.consent_mst mst
  508. <isEqual property="nursyn" compareValue="Y">
  509. , (select doc.*
  510. from cmr.eform_document doc
  511. where doc.CATEGORY_RID in
  512. (select cate.category_rid
  513. from cmr.eform_category cate
  514. where cate.p_category_rid = '147')) docu
  515. </isEqual>
  516. <isEqual property="nursyn" compareValue="N">
  517. , (select doc.*
  518. from cmr.eform_document doc
  519. where doc.CATEGORY_RID in
  520. (select cate.category_rid
  521. from cmr.eform_category cate
  522. where cate.p_category_rid != '147')) docu
  523. </isEqual>
  524. </isEqual>
  525. </isNotEmpty>
  526. <![CDATA[
  527. WHERE inpt.histstat = 'Y'
  528. AND inpt.mskind = 'M'
  529. AND inpt.indd <= #srchdd#
  530. AND inpt.instcd = '111'
  531. AND icdr.ordtype = 'E'
  532. AND inpt.pid = icdr.pid
  533. AND inpt.indd = icdr.indd
  534. AND inpt.cretno = icdr.cretno
  535. AND inpt.instcd = icdr.instcd
  536. AND inpt.histstat = icdr.histstat
  537. AND #srchdd# >= icdr.fromdd
  538. AND #srchdd# <= icdr.todd
  539. AND inpt.pid = ptbs.pid
  540. AND inpt.instcd = ptbs.instcd
  541. ]]>
  542. <isNotEmpty property="orddrid">
  543. AND inpt.ermedispclid = #orddrid#
  544. </isNotEmpty>
  545. <isNotEmpty property="orddeptcd">
  546. AND inpt.erorddeptcd = #orddeptcd#
  547. </isNotEmpty>
  548. <isNotEmpty property="patstat">
  549. <isEqual property="patstat" compareValue="1">
  550. <![CDATA[
  551. AND icdr.indschacptstat = 'A'
  552. AND (inpt.eroutdt = '-'
  553. OR inpt.eroutdt = '99991231235959')
  554. AND (inpt.dschdd = '99991231'
  555. OR inpt.dschdd >= #srchdd#)
  556. ]]>
  557. </isEqual>
  558. <isEqual property="patstat" compareValue="2">
  559. AND icdr.indschacptstat = 'A'
  560. AND inpt.eroutdt != '-'
  561. AND inpt.eroutdt != '99991231235959'
  562. AND inpt.dschdd = '99991231'
  563. </isEqual>
  564. <isEqual property="patstat" compareValue="3">
  565. AND icdr.indschacptstat IN ('A', 'D', 'T')
  566. AND inpt.dschdd = #srchdd#
  567. </isEqual>
  568. <isEqual property="patstat" compareValue="C">
  569. and inpt.instcd = mst.hos_type
  570. and inpt.pid = mst.pid
  571. and inpt.cretno = mst.cretno
  572. and inpt.ordtype = mst.visit_type
  573. and mst.use_yn = 'Y'
  574. and mst.consent_state = 'UNFINISHED'
  575. and inpt.indd = mst.cln_date
  576. and docu.FORM_RID = mst.form_rid
  577. </isEqual>
  578. </isNotEmpty>
  579. <isNotEmpty property="pid">
  580. AND inpt.pid = #pid#
  581. </isNotEmpty>
  582. order by indd desc,
  583. intm desc,
  584. hngnm asc
  585. </statement>
  586. <statement id="getSrchPatInfo" parameterClass="System.Collections.Hashtable" resultMap="PatInfoListMap">
  587. <![CDATA[
  588. SELECT a.pid,
  589. a.hngnm AS hngnm,
  590. a.rrgstno1,
  591. substr(a.rrgstno2,1,1) || '******' as rrgstno2,
  592. '55' AS age,
  593. a.mpphontel,
  594. a.zipcdaddr as addr,
  595. a.detladdr,
  596. ( select /*+ index_desc ( b PK_PMOHOTPT ) */ orddd
  597. from pam.pmohotpt b
  598. WHERE b. pid = a.pid
  599. AND instcd = '111'
  600. AND histstat = 'R'
  601. AND dracptyn = 'Y'
  602. AND rownum = 1
  603. ) lastorddd,
  604. ( SELECT /*+ index_desc ( mohotpt PK_PMOHOTPT ) */ (select dept.depthngnm
  605. from com.zsdddept dept
  606. where dept.instcd = mohotpt.instcd
  607. and dept.deptcd = mohotpt.orddeptcd
  608. and dept.valitodd = '99991231')
  609. FROM pam.pmohotpt mohotpt
  610. WHERE mohotpt.pid = a.pid
  611. AND mohotpt.instcd = '111'
  612. AND mohotpt.histstat = 'R'
  613. AND mohotpt.dracptyn = 'Y'
  614. AND rownum = 1
  615. ) lastorddept ,
  616. ( SELECT /*+ index_desc ( i PK_PMOHOTPT ) */
  617. (SELECT cdnm FROM com.zbcmcode
  618. where cdgrupid = 'P0008'
  619. AND cdid = i.insukind
  620. AND valifromdd <= TO_CHAR(SYSDATE, 'YYYYMMDD')
  621. AND valitodd >= TO_CHAR(SYSDATE, 'YYYYMMDD')
  622. AND ROWNUM = 1)
  623. FROM pam.pmohotpt i
  624. WHERE i.pid = a.pid
  625. AND i.instcd = '111'
  626. AND i.histstat = 'R'
  627. AND i.dracptyn = 'Y'
  628. AND rownum = 1
  629. ) lastinsukind
  630. FROM ( SELECT
  631. *
  632. FROM PAM.PMCMPTBS ptbs ]]>
  633. <isEqual property="srchcond" compareValue="1">
  634. <![CDATA[
  635. WHERE ptbs.pid like #pid# || '%'
  636. AND ptbs.instcd = #instcd#
  637. ]]>
  638. </isEqual>
  639. <isEqual property="srchcond" compareValue="2">
  640. <![CDATA[
  641. WHERE ptbs.hngnm like REPLACE(#hngnm#, '★', '') || '%'
  642. AND ptbs.instcd = #instcd#
  643. ]]>
  644. </isEqual>
  645. <isEqual property="srchcond" compareValue="3">
  646. <![CDATA[
  647. WHERE ( ptbs.rrgstno1 like #rrgstno1# || '%' AND ptbs.rrgstno2 like #rrgstno2# || '%' )
  648. AND ptbs.instcd = #instcd#
  649. ]]>
  650. </isEqual>
  651. <![CDATA[
  652. AND rownum < 2000
  653. ) a
  654. ORDER BY hngnm, rrgstno1, rrgstno2
  655. ]]>
  656. </statement>
  657. <!--
  658. <statement id="getSrchPatInfo" parameterClass="System.Collections.Hashtable" resultMap="PatInfoListMap">
  659. <![CDATA[
  660. SELECT a.pid,
  661. a.hngnm || CASE WHEN (
  662. SELECT COUNT(*)
  663. FROM PAM.PMCMVIPM
  664. WHERE instcd = a.instcd
  665. AND rrgstno1 = a.rrgstno1
  666. AND rrgstno2 = a.rrgstno2
  667. AND histstat = 'Y'
  668. AND vipaprvyn = 'Y'
  669. AND dispyn = 'Y'
  670. AND to_char(sysdate, 'YYYYMMDD') between fromdd and todd ) > 0 THEN '★'
  671. ELSE '' END AS hngnm,
  672. a.rrgstno1,
  673. substr(a.rrgstno2,1,1) || '******' as rrgstno2,
  674. COM.FN_ZZ_GETAGE('000000','0000000',TO_CHAR(SYSDATE, 'YYYYMMDD'),'B', a.brthdd) AS age,
  675. a.mpphontel,
  676. a.zipcdaddr as addr,
  677. a.detladdr,
  678. ( select /*+ index_desc ( b PK_PMOHOTPT ) */ orddd
  679. from pam.pmohotpt b
  680. WHERE b. pid = a.pid
  681. AND instcd = #instcd#
  682. AND histstat = 'R'
  683. AND dracptyn = 'Y'
  684. AND rownum = 1
  685. ) lastorddd,
  686. ( SELECT /*+ index_desc ( mohotpt PK_PMOHOTPT ) */ (select dept.depthngnm
  687. from com.zsdddept dept
  688. where dept.instcd = mohotpt.instcd
  689. and dept.deptcd = mohotpt.orddeptcd
  690. and dept.valitodd = '99991231')
  691. FROM pam.pmohotpt mohotpt
  692. WHERE mohotpt.pid = a.pid
  693. AND mohotpt.instcd = #instcd#
  694. AND mohotpt.histstat = 'R'
  695. AND mohotpt.dracptyn = 'Y'
  696. AND rownum = 1
  697. ) lastorddept ,
  698. ( SELECT /*+ index_desc ( i PK_PMOHOTPT ) */
  699. (SELECT cdnm FROM com.zbcmcode
  700. where cdgrupid = 'P0008'
  701. AND cdid = i.insukind
  702. AND valifromdd <= TO_CHAR(SYSDATE, 'YYYYMMDD')
  703. AND valitodd >= TO_CHAR(SYSDATE, 'YYYYMMDD')
  704. AND ROWNUM = 1)
  705. FROM pam.pmohotpt i
  706. WHERE i.pid = a.pid
  707. AND i.instcd = #instcd#
  708. AND i.histstat = 'R'
  709. AND i.dracptyn = 'Y'
  710. AND rownum = 1
  711. ) lastinsukind
  712. FROM ( SELECT ]]>
  713. <isEqual property="srchcond" compareValue="4">
  714. <isNotEmpty property="rrgstno1">
  715. <![CDATA[
  716. /*+ INDEX( ptbs IX_PMCMPTBS_02)*/ ]]>
  717. </isNotEmpty>
  718. </isEqual><![CDATA[
  719. *
  720. FROM PAM.PMCMPTBS ptbs ]]>
  721. <isEqual property="srchcond" compareValue="1">
  722. <![CDATA[
  723. WHERE ptbs.pid = #pid#
  724. AND ptbs.instcd = #instcd#
  725. ]]>
  726. </isEqual>
  727. <isEqual property="srchcond" compareValue="2">
  728. <![CDATA[
  729. WHERE ptbs.hngnm like REPLACE(#hngnm#, '★', '') || '%'
  730. AND ptbs.instcd = #instcd#
  731. ]]>
  732. </isEqual>
  733. <isEqual property="srchcond" compareValue="3">
  734. <![CDATA[
  735. WHERE ( ptbs.rrgstno1 like #rrgstno1# || '%' AND ptbs.rrgstno2 like #rrgstno2# || '%' )
  736. AND ptbs.instcd = #instcd#
  737. ]]>
  738. </isEqual>
  739. <isEqual property="srchcond" compareValue="4">
  740. <![CDATA[
  741. WHERE ptbs.hngnm like REPLACE(#hngnm#, '★', '') || '%'
  742. AND ptbs.instcd = #instcd#
  743. ]]>
  744. <isNotEmpty property="rrgstno1">
  745. <![CDATA[
  746. AND ptbs.rrgstno1 like #rrgstno1# || '%'
  747. ]]>
  748. </isNotEmpty>
  749. <isNotEmpty property="rrgstno2">
  750. <![CDATA[
  751. AND ptbs.rrgstno2 like #rrgstno2# || '%'
  752. ]]>
  753. </isNotEmpty>
  754. </isEqual>
  755. <![CDATA[
  756. AND rownum < 2000
  757. ) a
  758. ORDER BY hngnm, rrgstno1, rrgstno2
  759. ]]>
  760. </statement>
  761. -->
  762. <statement id="getDeptList" parameterClass="System.Collections.Hashtable" resultMap="DeptListMap">
  763. <![CDATA[
  764. SELECT ' ' as deptcd,
  765. '진료과' as deptnm,
  766. 0 as clincdeptdispseq,
  767. 0 as sort
  768. from dual
  769. ]]>
  770. <isNotEqual property="ordtype" compareValue="OP">
  771. UNION ALL
  772. SELECT '4120300000' as deptcd,
  773. '일반건강증진' as deptnm,
  774. 0 as clincdeptdispseq,
  775. 1 as sort
  776. from dual
  777. </isNotEqual>
  778. <![CDATA[
  779. UNION ALL
  780. SELECT deptcd,
  781. depthngnm as deptnm,
  782. clincdeptdispseq,
  783. 1 as sort
  784. FROM com.zsdddept
  785. WHERE instcd = #instcd#
  786. AND TO_CHAR(CURRENT_DATE,'YYYYMMDD')>=valifromdd AND TO_CHAR(CURRENT_DATE,'YYYYMMDD')<=valitodd
  787. ]]>
  788. <isEqual property="ordtype" compareValue="OP">
  789. AND orddeptflag = 'D'
  790. AND orduseyn = 'Y'
  791. ORDER BY sort, deptnm
  792. </isEqual>
  793. <isNotEqual property="ordtype" compareValue="OP">
  794. AND rcptuseyn = 'Y'
  795. ORDER BY clincdeptdispseq ASC
  796. </isNotEqual>
  797. </statement>
  798. <statement id="getDocList" parameterClass="System.Collections.Hashtable" resultMap="DocListMap">
  799. SELECT ' ' as doctorid,
  800. '진료의' as doctornm,
  801. 1 as sort
  802. from dual
  803. UNION ALL
  804. SELECT b.userid AS doctorid,
  805. b.usernm AS doctornm,
  806. 2 as sort
  807. FROM com.zsumusrd a
  808. INNER JOIN com.zsumusrb b ON a.userid = b.userid
  809. WHERE a.psnworkyn = 'N'
  810. AND a.dutplceinstcd = #instcd#
  811. AND a.jobkindcd LIKE '03%'
  812. <isNotEmpty property="orddeptcd">
  813. <isEqual property="orddeptcd" compareValue="2040000000">
  814. AND a.dutplcecd in ('2040000000', '2040400000')
  815. </isEqual>
  816. <isEqual property="orddeptcd" compareValue="2040400000">
  817. AND a.dutplcecd in ('2040000000', '2040400000')
  818. </isEqual>
  819. <isNotEqual property="orddeptcd" compareValue="2040400000">
  820. <isNotEqual property="orddeptcd" compareValue="2040000000">
  821. <isNotEqual property="orddeptcd" compareValue="4120300000">
  822. AND a.dutplcecd = #orddeptcd#
  823. </isNotEqual>
  824. <isEqual property="orddeptcd" compareValue="4120300000">
  825. and a.userid = '103043'
  826. </isEqual>
  827. </isNotEqual>
  828. </isNotEqual>
  829. </isNotEmpty>
  830. AND #srchdd# BETWEEN a.fromdd AND a.todd
  831. AND #srchdd# BETWEEN b.userfromdd AND b.usertodd
  832. ORDER BY sort, doctorid
  833. </statement>
  834. <statement id="getWardList" parameterClass="System.Collections.Hashtable" resultMap="DeptListMap">
  835. <![CDATA[
  836. SELECT ' ' as deptcd,
  837. '전체' as deptnm,
  838. 1 as sort
  839. from dual
  840. UNION ALL
  841. select dept.deptcd as deptcd,
  842. dept.depthngnm as deptnm,
  843. 2 as sort
  844. from com.zsdddept dept
  845. where dept.instcd = '111'
  846. and dept.orddeptflag = 'W'
  847. and dept.orduseyn = 'Y'
  848. and dept.valifromdd <= to_char(sysdate,'yyyymmdd')
  849. and dept.valitodd >= to_char(sysdate,'yyyymmdd')
  850. order by sort, deptnm asc
  851. ]]>
  852. </statement>
  853. </statements>
  854. </sqlMap>