введите описание изображения здесь следующий код принимает купание пациента. в конце есть выражение case, которое называется PATIENT_TYPE.
Пациент может быть определен как тип по 1 из 3 вещей. Если они находятся в отделении интенсивной терапии, они являются CHG. Если у них есть определенный тип центральной линии, они являются CHG или STANDARD.
Если они не в icu и не имеют центральной линии, они определяются как STANDARD.
Пациент может иметь 2 разные центральные линии одновременно. 1 строка может быть стандартной, 1 строка может быть chg. Пациент может купаться несколько раз в течение дня. Пациент может показывать несколько строк данных из-за того, сколько раз они купались в этот день.
Тип пациента должен быть постоянным во время пребывания пациента, чтобы он мог правильно купаться.
Пациент а отобразит 2 типа пациентов, если строки - это две разные строки. Так что на 3/1 у Джо был кл, так диспл кл с типом пациента chg. У 3/2 Джо был удален cl, но он был там часть дня, так что все еще показываю тип пациента chg. на 3/3 Джо все еще в подразделении, но нет центральной линии. Тип его комнаты стандартный, поэтому его тип пациента теперь стандартный, потому что он не в icu или имеет центральную линию.
Мне нужно отобразить правильный тип пациента. линии должны отображаться в течение определенного времени.
CL-- PULL ALL CL PATIENTS IN TIME FRAME OF REPORT
AS
(
select DISTINCT
to_char(a.effective_time,'MM/DD/YYYY') AS EFFECT_DATE,
a.effective_time,
L.PAT_ID,
l.PAT_ENC_CSN_ID,
CASE WHEN TRUNC(L.PLACEMENT_INSTANT) <= TRUNC(a.effective_time) AND
TRUNC(L.REMOVAL_INSTANT)>= TRUNC(a.effective_time) THEN 'CL'
WHEN L.PLACEMENT_INSTANT IS NULL AND TRUNC(L.REMOVAL_INSTANT)>= TRUNC(a.effective_time) THEN 'CL' END AS CL,
CASE WHEN TRUNC(L.PLACEMENT_INSTANT) <= TRUNC(a.effective_time) AND
TRUNC(L.REMOVAL_INSTANT)>= TRUNC(a.effective_time) THEN 1
WHEN L.PLACEMENT_INSTANT IS NULL AND TRUNC(L.REMOVAL_INSTANT)>= TRUNC(a.effective_time) THEN 1
ELSE NULL END AS CL_FLAG,
CASE WHEN TRUNC(L.PLACEMENT_INSTANT) <= TRUNC(a.effective_time) AND
TRUNC(L.REMOVAL_INSTANT)>= TRUNC(a.effective_time) THEN L.FLO_MEAS_ID
WHEN L.PLACEMENT_INSTANT IS NULL AND TRUNC(L.REMOVAL_INSTANT)>= TRUNC(a.effective_time) THEN L.FLO_MEAS_ID
ELSE NULL END AS FLO_MEAS_ID,
CASE WHEN TRUNC(L.PLACEMENT_INSTANT) <= TRUNC(a.effective_time) AND
TRUNC(L.REMOVAL_INSTANT)>= TRUNC(a.effective_time)THEN L.DESCRIPTION
WHEN L.PLACEMENT_INSTANT IS NULL AND TRUNC(L.REMOVAL_INSTANT)>= TRUNC(a.effective_time) THEN L.DESCRIPTION
ELSE NULL END AS DISP_NAME,
CASE WHEN TRUNC(L.PLACEMENT_INSTANT) <= TRUNC(a.effective_time) AND
TRUNC(L.REMOVAL_INSTANT)>= TRUNC(a.effective_time)THEN L.IP_LDA_ID
WHEN L.PLACEMENT_INSTANT IS NULL AND TRUNC(L.REMOVAL_INSTANT)>= TRUNC(a.effective_time) THEN L.IP_LDA_ID
ELSE NULL END AS IP_LDA_ID,
CASE WHEN TRUNC(L.PLACEMENT_INSTANT) <= TRUNC(a.effective_time) AND
TRUNC(L.REMOVAL_INSTANT)>= TRUNC(a.effective_time)THEN L.PLACEMENT_INSTANT
WHEN L.PLACEMENT_INSTANT IS NULL AND TRUNC(L.REMOVAL_INSTANT)>= TRUNC(a.effective_time) THEN L.PLACEMENT_INSTANT
ELSE NULL END AS PLACEMENT_INSTANT,
CASE WHEN TRUNC(L.PLACEMENT_INSTANT) <= TRUNC(a.effective_time) AND
TRUNC(L.REMOVAL_INSTANT)>= TRUNC(a.effective_time)THEN L.REMOVAL_INSTANT
WHEN L.PLACEMENT_INSTANT IS NULL AND TRUNC(L.REMOVAL_INSTANT)>= TRUNC(a.effective_time) THEN L.REMOVAL_INSTANT
ELSE NULL END AS REMOVAL_INSTANT,
CASE WHEN TRUNC(L.PLACEMENT_INSTANT) <= TRUNC(a.effective_time) AND
TRUNC(L.REMOVAL_INSTANT)>= TRUNC(a.effective_time)THEN TO_CHAR(L.PLACEMENT_INSTANT,'MM/DD/YYYY')
WHEN L.PLACEMENT_INSTANT IS NULL AND TRUNC(L.REMOVAL_INSTANT)>= TRUNC(a.effective_time) THEN TO_CHAR(L.PLACEMENT_INSTANT,'MM/DD/YYYY')
ELSE NULL END AS PLACEMENT_INSTANT_DATE,
CASE WHEN TRUNC(L.PLACEMENT_INSTANT) <= TRUNC(a.effective_time) AND
TRUNC(L.REMOVAL_INSTANT)>= TRUNC(a.effective_time)THEN TO_CHAR(L.REMOVAL_INSTANT,'MM/DD/YYYY')
WHEN L.PLACEMENT_INSTANT IS NULL AND TRUNC(L.REMOVAL_INSTANT)>= TRUNC(a.effective_time) THEN TO_CHAR(L.REMOVAL_INSTANT,'MM/DD/YYYY')
ELSE NULL END AS REMOVAL_INSTANT_DATE,
CASE
WHEN TRUNC(L.PLACEMENT_INSTANT) <= TRUNC(a.effective_time) AND TRUNC(L.REMOVAL_INSTANT)>= TRUNC(a.effective_time)
AND L.FLO_MEAS_ID =8887095120 AND L.DESCRIPTION LIKE '%Arteriovenous Fistula%' THEN 'STANDARD'
WHEN L.PLACEMENT_INSTANT IS NULL AND TRUNC(L.REMOVAL_INSTANT)>= TRUNC(a.effective_time)AND L.FLO_MEAS_ID =8887095120
AND L.DESCRIPTION LIKE '%Arteriovenous Fistula%' THEN 'STANDARD'
WHEN TRUNC(L.PLACEMENT_INSTANT) <= TRUNC(a.effective_time) AND TRUNC(L.REMOVAL_INSTANT)>= TRUNC(a.effective_time)
AND L.FLO_MEAS_ID =8887095120 AND L.DESCRIPTION LIKE '%Arteriovenous Graft%' THEN 'STANDARD'
WHEN L.PLACEMENT_INSTANT IS NULL AND TRUNC(L.REMOVAL_INSTANT)>= TRUNC(a.effective_time)AND L.FLO_MEAS_ID =8887095120
AND L.DESCRIPTION LIKE '%Arteriovenous Graft%' THEN 'STANDARD'
WHEN TRUNC(L.PLACEMENT_INSTANT) <= TRUNC(a.effective_time) AND TRUNC(L.REMOVAL_INSTANT)>= TRUNC(a.effective_time)
AND L.FLO_MEAS_ID =8887095120 AND L.DESCRIPTION LIKE '%Arteriovenous Graft%' THEN 'STANDARD'
WHEN L.PLACEMENT_INSTANT IS NULL AND TRUNC(L.REMOVAL_INSTANT)>= TRUNC(a.effective_time)AND L.FLO_MEAS_ID =8887095120
AND L.DESCRIPTION LIKE '%Arteriovenous Graft%' THEN 'STANDARD'
WHEN TRUNC(L.PLACEMENT_INSTANT) <= TRUNC(a.effective_time) AND TRUNC(L.REMOVAL_INSTANT)>= TRUNC(a.effective_time)
AND L.FLO_MEAS_ID =8887095120 AND L.DESCRIPTION LIKE '%Tenckhoff Catheter%' THEN 'STANDARD'
WHEN L.PLACEMENT_INSTANT IS NULL AND TRUNC(L.REMOVAL_INSTANT)>= TRUNC(a.effective_time)AND L.FLO_MEAS_ID =8887095120
AND L.DESCRIPTION LIKE '%Tenckhoff Catheter%' THEN 'STANDARD'
WHEN TRUNC(L.PLACEMENT_INSTANT) <= TRUNC(a.effective_time) AND TRUNC(L.REMOVAL_INSTANT)>= TRUNC(a.effective_time)
AND L.FLO_MEAS_ID =8887095120 AND L.DESCRIPTION LIKE '%Hero Graft%' THEN 'STANDARD'
WHEN L.PLACEMENT_INSTANT IS NULL AND TRUNC(L.REMOVAL_INSTANT)>= TRUNC(a.effective_time)AND L.FLO_MEAS_ID =8887095120
AND L.DESCRIPTION LIKE '%Hero Graft%' THEN 'STANDARD'
WHEN TRUNC(L.PLACEMENT_INSTANT) <= TRUNC(a.effective_time) AND TRUNC(L.REMOVAL_INSTANT)>= TRUNC(a.effective_time)
AND L.FLO_MEAS_ID =888300450 AND L.DESCRIPTION LIKE '%Arterial Line%' THEN 'STANDARD'
WHEN L.PLACEMENT_INSTANT IS NULL AND TRUNC(L.REMOVAL_INSTANT)>= TRUNC(a.effective_time)AND L.FLO_MEAS_ID =888300450
AND L.DESCRIPTION LIKE '%Arterial Line%' THEN 'STANDARD'
WHEN TRUNC(L.PLACEMENT_INSTANT) <= TRUNC(a.effective_time) AND TRUNC(L.REMOVAL_INSTANT)>= TRUNC(a.effective_time)
AND L.FLO_MEAS_ID =8887095100 AND L.DESCRIPTION LIKE '%Tenckhoff Catheter%' THEN 'STANDARD'
WHEN L.PLACEMENT_INSTANT IS NULL AND TRUNC(L.REMOVAL_INSTANT)>= TRUNC(a.effective_time)AND L.FLO_MEAS_ID =8887095100
AND L.DESCRIPTION LIKE '%Tenckhoff Catheter%' THEN 'STANDARD'
WHEN TRUNC(L.PLACEMENT_INSTANT) <= TRUNC(a.effective_time) AND TRUNC(L.REMOVAL_INSTANT)>= TRUNC(a.effective_time)
AND L.FLO_MEAS_ID =8887095100 AND L.DESCRIPTION LIKE '%Hero Graft%' THEN 'STANDARD'
WHEN L.PLACEMENT_INSTANT IS NULL AND TRUNC(L.REMOVAL_INSTANT)>= TRUNC(a.effective_time)AND L.FLO_MEAS_ID =8887095100
AND L.DESCRIPTION LIKE '%Hero Graft%' THEN 'STANDARD'
WHEN TRUNC(L.PLACEMENT_INSTANT) <= TRUNC(a.effective_time) AND TRUNC(L.REMOVAL_INSTANT)>= TRUNC(a.effective_time)
AND L.FLO_MEAS_ID =8887095100 AND L.DESCRIPTION LIKE '%Arteriovenous Fistula%' THEN 'STANDARD'
WHEN L.PLACEMENT_INSTANT IS NULL AND TRUNC(L.REMOVAL_INSTANT)>= TRUNC(a.effective_time)AND L.FLO_MEAS_ID =8887095100
AND L.DESCRIPTION LIKE '%Arteriovenous Fistula%' THEN 'STANDARD'
WHEN TRUNC(L.PLACEMENT_INSTANT) <= TRUNC(a.effective_time) AND TRUNC(L.REMOVAL_INSTANT)>= TRUNC(a.effective_time)
AND L.FLO_MEAS_ID =8887095100 AND L.DESCRIPTION LIKE '%Arteriovenous Graft%' THEN 'STANDARD'
WHEN L.PLACEMENT_INSTANT IS NULL AND TRUNC(L.REMOVAL_INSTANT)>= TRUNC(a.effective_time)AND L.FLO_MEAS_ID =8887095100
AND L.DESCRIPTION LIKE '%Arteriovenous Graft%' THEN 'STANDARD'
WHEN TRUNC(L.PLACEMENT_INSTANT) <= TRUNC(a.effective_time) AND TRUNC(L.REMOVAL_INSTANT)>= TRUNC(a.effective_time)
AND L.FLO_MEAS_ID =8887095100 AND L.DESCRIPTION LIKE '%Arteriovenous Graft%' THEN 'STANDARD'
WHEN L.PLACEMENT_INSTANT IS NULL AND TRUNC(L.REMOVAL_INSTANT)>= TRUNC(a.effective_time)AND L.FLO_MEAS_ID =8887095100
AND L.DESCRIPTION LIKE '%Arteriovenous Graft%' THEN 'STANDARD'
WHEN TRUNC(L.PLACEMENT_INSTANT) <= TRUNC(a.effective_time) AND TRUNC(L.REMOVAL_INSTANT)>= TRUNC(a.effective_time)
AND L.FLO_MEAS_ID IN (26739,26747,26751,26751,26751,26755,26768,8882819,8882826,888304620,888304630,888304640,888304650,888304660,888304670,
3042000201, 3042000202, 3042673901, 8887095100,8887095120,8887095120,8887095120,8883040100580,8883040100583,8883040100584) THEN 'CHG'
WHEN L.PLACEMENT_INSTANT IS NULL AND TRUNC(L.REMOVAL_INSTANT)>= TRUNC(a.effective_time)
AND L.FLO_MEAS_ID IN (26739,26747,26751,26751,26751,26755,26768,8882819,8882826,888304620,888304630,888304640,888304650,888304660,888304670,
3042000201, 3042000202, 3042673901, 8887095100,8887095120,8887095120,8887095120,8883040100580,8883040100583,8883040100584)THEN 'CHG'
WHEN TRUNC(L.PLACEMENT_INSTANT) <= TRUNC(a.effective_time) AND TRUNC(L.REMOVAL_INSTANT)>= TRUNC(a.effective_time)
AND L.FLO_MEAS_ID =8887095120 AND L.DESCRIPTION NOT LIKE '%Arteriovenous Fistula%' THEN 'CHG'
WHEN L.PLACEMENT_INSTANT IS NULL AND TRUNC(L.REMOVAL_INSTANT)>= TRUNC(a.effective_time)AND L.FLO_MEAS_ID =8887095120
AND L.DESCRIPTION NOT LIKE '%Arteriovenous Fistula%' THEN 'STANDARD'
WHEN TRUNC(L.PLACEMENT_INSTANT) <= TRUNC(a.effective_time) AND TRUNC(L.REMOVAL_INSTANT)>= TRUNC(a.effective_time)
AND L.FLO_MEAS_ID =8887095120 AND L.DESCRIPTION NOT LIKE '%Arteriovenous Graft%' THEN 'CHG'
WHEN L.PLACEMENT_INSTANT IS NULL AND TRUNC(L.REMOVAL_INSTANT)>= TRUNC(a.effective_time)AND L.FLO_MEAS_ID =8887095120
AND L.DESCRIPTION NOT LIKE '%Arteriovenous Graft%' THEN 'CHG'
WHEN TRUNC(L.PLACEMENT_INSTANT) <= TRUNC(a.effective_time) AND TRUNC(L.REMOVAL_INSTANT)>= TRUNC(a.effective_time)
AND L.FLO_MEAS_ID =8887095120 AND L.DESCRIPTION NOT LIKE '%Arteriovenous Graft%' THEN 'CHG'
WHEN L.PLACEMENT_INSTANT IS NULL AND TRUNC(L.REMOVAL_INSTANT)>= TRUNC(a.effective_time)AND L.FLO_MEAS_ID =8887095120
AND L.DESCRIPTION NOT LIKE '%Arteriovenous Graft%' THEN 'CHG'
WHEN TRUNC(L.PLACEMENT_INSTANT) <= TRUNC(a.effective_time) AND TRUNC(L.REMOVAL_INSTANT)>= TRUNC(a.effective_time)
AND L.FLO_MEAS_ID =8887095120 AND L.DESCRIPTION NOT LIKE '%Tenckhoff Catheter%' THEN 'CHG'
WHEN L.PLACEMENT_INSTANT IS NULL AND TRUNC(L.REMOVAL_INSTANT)>= TRUNC(a.effective_time)AND L.FLO_MEAS_ID =8887095120
AND L.DESCRIPTION NOT LIKE '%Tenckhoff Catheter%' THEN 'CHG'
WHEN TRUNC(L.PLACEMENT_INSTANT) <= TRUNC(a.effective_time) AND TRUNC(L.REMOVAL_INSTANT)>= TRUNC(a.effective_time)
AND L.FLO_MEAS_ID =8887095120 AND L.DESCRIPTION NOT LIKE '%Hero Graft%' THEN 'CHG'
WHEN L.PLACEMENT_INSTANT IS NULL AND TRUNC(L.REMOVAL_INSTANT)>= TRUNC(a.effective_time)AND L.FLO_MEAS_ID =8887095120
AND L.DESCRIPTION NOT LIKE '%Hero Graft%' THEN 'CHG'
WHEN TRUNC(L.PLACEMENT_INSTANT) <= TRUNC(a.effective_time) AND TRUNC(L.REMOVAL_INSTANT)>= TRUNC(a.effective_time)
AND L.FLO_MEAS_ID =888300450 AND L.DESCRIPTION NOT LIKE '%Arterial Line%' THEN 'CHG'
WHEN L.PLACEMENT_INSTANT IS NULL AND TRUNC(L.REMOVAL_INSTANT)>= TRUNC(a.effective_time)AND L.FLO_MEAS_ID =888300450
AND L.DESCRIPTION NOT LIKE '%Arterial Line%' THEN 'CHG'
WHEN TRUNC(L.PLACEMENT_INSTANT) <= TRUNC(a.effective_time) AND TRUNC(L.REMOVAL_INSTANT)>= TRUNC(a.effective_time)
AND L.FLO_MEAS_ID =8887095100 AND L.DESCRIPTION NOT LIKE '%Tenckhoff Catheter%' THEN 'CHG'
WHEN L.PLACEMENT_INSTANT IS NULL AND TRUNC(L.REMOVAL_INSTANT)>= TRUNC(a.effective_time)AND L.FLO_MEAS_ID =8887095100
AND L.DESCRIPTION NOT LIKE '%Tenckhoff Catheter%' THEN 'CHG'
WHEN TRUNC(L.PLACEMENT_INSTANT) <= TRUNC(a.effective_time) AND TRUNC(L.REMOVAL_INSTANT)>= TRUNC(a.effective_time)
AND L.FLO_MEAS_ID =8887095100 AND L.DESCRIPTION NOT LIKE '%Hero Graft%' THEN 'CHG'
WHEN L.PLACEMENT_INSTANT IS NULL AND TRUNC(L.REMOVAL_INSTANT)>= TRUNC(a.effective_time)AND L.FLO_MEAS_ID =8887095100
AND L.DESCRIPTION NOT LIKE '%Hero Graft%' THEN 'CHG'
WHEN TRUNC(L.PLACEMENT_INSTANT) <= TRUNC(a.effective_time) AND TRUNC(L.REMOVAL_INSTANT)>= TRUNC(a.effective_time)
AND L.FLO_MEAS_ID =8887095100 AND L.DESCRIPTION NOT LIKE '%Arteriovenous Fistula%' THEN 'CHG'
WHEN L.PLACEMENT_INSTANT IS NULL AND TRUNC(L.REMOVAL_INSTANT)>= TRUNC(a.effective_time)AND L.FLO_MEAS_ID =8887095100
AND L.DESCRIPTION NOT LIKE '%Arteriovenous Fistula%' THEN 'CHG'
WHEN TRUNC(L.PLACEMENT_INSTANT) <= TRUNC(a.effective_time) AND TRUNC(L.REMOVAL_INSTANT)>= TRUNC(a.effective_time)
AND L.FLO_MEAS_ID =8887095100 AND L.DESCRIPTION NOT LIKE '%Arteriovenous Graft%' THEN 'CHG'
WHEN L.PLACEMENT_INSTANT IS NULL AND TRUNC(L.REMOVAL_INSTANT)>= TRUNC(a.effective_time)AND L.FLO_MEAS_ID =8887095100
AND L.DESCRIPTION NOT LIKE '%Arteriovenous Graft%' THEN 'CHG'
WHEN TRUNC(L.PLACEMENT_INSTANT) <= TRUNC(a.effective_time) AND TRUNC(L.REMOVAL_INSTANT)>= TRUNC(a.effective_time)
AND L.FLO_MEAS_ID =8887095100 AND L.DESCRIPTION NOT LIKE '%Arteriovenous Graft%' THEN 'CHG'
WHEN L.PLACEMENT_INSTANT IS NULL AND TRUNC(L.REMOVAL_INSTANT)>= TRUNC(a.effective_time)AND L.FLO_MEAS_ID =8887095100
AND L.DESCRIPTION NOT LIKE '%Arteriovenous Graft%' THEN 'CHG'
ELSE NULL END AS CL_PATIENT_TYPE-- PICKING PATIENT TYPE DEFINED BY LINE TYPES
From IP_LDA_NOADDSINGLE L
JOIN CLARITY_ADT A
ON L.PAT_ENC_CSN_ID = A.PAT_ENC_CSN_ID
where L.FLO_MEAS_ID IN (
26739, -- Temporary Central Line
26747, -- Permanent (tunneled) Catheter
)AND
(a.effective_time between (select start_date from dd) AND (select end_date from dd)+1)
)
,
CL2
AS
(
select DISTINCT
L.EFFECT_DATE,
L.effective_time,
L.PAT_ID,
L.IP_LDA_ID,
l.PAT_ENC_CSN_ID,
L.CL_FLAG,
L.FLO_MEAS_ID,
L.DISP_NAME,
L.PLACEMENT_INSTANT,
L.REMOVAL_INSTANT,
L.PLACEMENT_INSTANT_DATE,
L.REMOVAL_INSTANT_DATE,
L.CL_PATIENT_TYPE,-- PICKING PATIENT TYPE DEFINED BY LINE TYPES FROM CL L
MIN(L.CL_PATIENT_TYPE) OVER (PARTITION BY L.PAT_ID,L.EFFECT_DATE) AS MIN_CLPAT,
MAX(L.CL_PATIENT_TYPE) OVER (PARTITION BY L.PAT_ID,L.EFFECT_DATE) AS MAX_CLPAT,
L.CL
FROM CL L
WHERE L.CL_FLAG=1
)
,
PTS -- PATIENTS
AS
(select distinct
DEP.REV_LOC_ID AS HOSPITAL,
adt.DEPARTMENT_ID,
dep.department_name,
to_char(adt.effective_time,'MM/DD/YYYY') AS EFFECT_DATE,
ADT.EFFECTIVE_TIME,
ADT.PAT_ID,
PEH.Y_MRN,
PEH.PAT_ENC_CSN_ID,
peh.inpatient_data_id,
peh.hosp_admsn_time,
CASE WHEN ADT.DEPARTMENT_ID NOT IN
(2133009,4313023,4313015,4313016,4314007,4314009,4314027,5119219,5119221,5115578,73,5115579,5119222,5123216,5133207,5119223,5101202,5133026,5119220,5120202,5119218,5119235 ) THEN 'STANDARD'WHEN ADT.DEPARTMENT_ID IN (2133009,4313023,4313015,4313016,4314007,4314009,4314027,5119219,5119221,5115578,73,5115579,5119222,5123216,5133207,5119223,5101202,5133026,5119220,5120202,5119218,5119235 ) THEN 'CHG'END AS RM_PATIENT_TYPE--PICKING UP PATIENT TYPE DEFINED BY ROOM
from
clarity_adt adt
left outer join
pat_enc_hsp peh on
adt.PAT_ENC_CSN_ID = peh.PAT_ENC_CSN_ID
LEFT OUTER join
clarity_dep dep
on adt.DEPARTMENT_ID = dep.DEPARTMENT_ID
where
((adt.effective_time between (select start_date from dd) AND (select end_date from dd)+1)
and trunc (adt.effective_time) <> trunc (peh.hosp_admsn_time)
) and adt.event_type_c in (6)
and PEH.ADT_PAT_CLASS_C = '1'
AND adt.event_subtype_c <> 2
)
,
FMEAS -- BATHING FLOW MEASURE
AS
(
select distinct
adt.DEPARTMENT_ID,
dep.department_name,
ADT.PAT_ID,
PEH.Y_MRN,
PEH.PAT_ENC_CSN_ID AS FMEAS_PAT_ENC_CSN_ID,
NULL AS y_inpatient_dat,
to_char(ADT.EFFECTIVE_TIME,'MM/DD/YYYY') AS EFFECT_DATE,
NULL AS RECORDED_TIME,
TO_CHAR(ADT.EFFECTIVE_TIME,'MM/DD/YYYY') AS RECORDED_DATE,
NULL AS meas_value,
NULL AS Standard_Bath,
NULL AS CHG
from
clarity_adt adt
LEFT OUTER join
pat_enc_hsp peh
on
adt.PAT_ENC_CSN_ID = peh.PAT_ENC_CSN_ID
LEFT OUTER JOIN
clarity_dep dep
on
adt.DEPARTMENT_ID = dep.DEPARTMENT_ID
where
DEP.REV_LOC_ID IN (2133)--, 4313,4314,5133)
AND
(adt.effective_time between (select start_date from dd) AND (select end_date from dd)+1) and adt.event_type_c in (6)
and PEH.ADT_PAT_CLASS_C = '1'
AND adt.event_subtype_c <> 2
UNION
select distinct
adt.DEPARTMENT_ID,
dep.department_name,
ADT.PAT_ID,
PEH.Y_MRN,
PEH.PAT_ENC_CSN_ID AS FMEAS_PAT_ENC_CSN_ID,
fmeas.y_inpatient_dat,
to_char(ADT.EFFECTIVE_TIME,'MM/DD/YYYY') AS EFFECT_DATE,
Fmeas.Recorded_Time AS RECORDED_TIME,
TO_CHAR(fMEAS.RECORDED_TIME,'MM/DD/YYYY') AS RECORDED_DATE,
fmeas.meas_value,
CASE WHEN Fmeas.MEAS_VALUE LIKE 'Standard%' THEN 'Standard bathing wipes'
WHEN Fmeas.MEAS_VALUE LIKE '%Standard bathing wipes%' THEN 'Standard bathing wipes'
WHEN Fmeas.MEAS_VALUE LIKE '%Indep%' THEN 'Independent Shower' END AS Standard_Bath,
CASE WHEN Fmeas.MEAS_VALUE LIKE '%CHG (Chlorhexidine) bathing wipes%' THEN 'CHG (Chlorhexidine) bathing wipes'
WHEN Fmeas.MEAS_VALUE LIKE '%Independent Shower%' THEN 'Independent Shower'
WHEN Fmeas.MEAS_VALUE LIKE '%Incontience Care%'then 'Incontience Care'
WHEN Fmeas.MEAS_VALUE LIKE '%Bath not given - Patient refused CHG %'then 'Bath not given - Patient refused CHG'
WHEN Fmeas.MEAS_VALUE LIKE '%Bath not given - CHG contraindicated%'then 'Bath not given - CHG contraindicated'
WHEN Fmeas.MEAS_VALUE LIKE 'Bath not given - Other Comment%'then 'Bath not given - Other Comment' END AS CHG
from
clarity_adt adt
LEFT OUTER join
pat_enc_hsp peh
on
adt.PAT_ENC_CSN_ID = peh.PAT_ENC_CSN_ID
LEFT OUTER join
Ip_Flwsht_Meas fmeas
on
fmeas.y_inpatient_dat=peh.inpatient_data_id
LEFT OUTER JOIN
clarity_dep dep
on
adt.DEPARTMENT_ID = dep.DEPARTMENT_ID
where
(fmeas.RECORDED_TIME between (select start_date from dd) AND (select end_date from dd)+1)
and
(adt.effective_time between (select start_date from dd) AND (select end_date from dd)+1)
and
fmeas.flo_meas_id='888305660'
and adt.event_type_c in (6)
and
PEH.ADT_PAT_CLASS_C = '1'
AND
adt.event_subtype_c <> 2
)
,
PT2-- JOIN FLOWMEAS TO PATS
AS
(
SELECT DISTINCT
P.HOSPITAL,
P.DEPARTMENT_ID,
P.department_name,
P.EFFECT_DATE,
P.effective_time,
P.PAT_ID,
P.Y_MRN,
P.hosp_admsn_time,
P.PAT_ENC_CSN_ID,
P.RM_PATIENT_TYPE,
F.RECORDED_TIME,
F.RECORDED_DATE,
F.meas_value,
F.Standard_Bath,
F.CHG,
CASE
WHEN F.MEAS_VALUE IS NULL THEN 'NOT DOCUMENTED'
WHEN F.MEAS_VALUE ='Standard bathing wipes' THEN 'WASHED / GIVEN'
WHEN F.MEAS_VALUE LIKE '%Indep%' THEN 'WASHED / GIVEN'
WHEN F.MEAS_VALUE LIKE 'Indep%' THEN 'WASHED / GIVEN'
WHEN F.MEAS_VALUE LIKE '%CHG (Chlorhexidine) bathing wipes%' THEN 'WASHED / GIVEN'
WHEN F.MEAS_VALUE LIKE 'CHG (Chlorhexidine) bathing wipes%' THEN 'WASHED / GIVEN'
WHEN F.MEAS_VALUE LIKE 'Incontinence care%'then 'WASHED / GIVEN'
WHEN F.MEAS_VALUE LIKE '%Incontinence care%'then 'WASHED / GIVEN'
WHEN F.MEAS_VALUE LIKE '%Bath not given – Other (comment)%' THEN 'NOT GIVEN'
WHEN F.MEAS_VALUE LIKE '%refused%' then 'Refused'
WHEN F.MEAS_VALUE LIKE '%CHG contraindicated%' then 'Contraindicated'
WHEN F.MEAS_VALUE = 'Bath not given – CHG contraindicated' then 'Contraindicated'
END AS BATH_STATUS
FROM
PTS P
LEFT OUTER JOIN
FMEAS F
ON
P.PAT_ENC_CSN_ID = F.FMEAS_PAT_ENC_CSN_ID
WHERE
P.EFFECT_DATE = F.RECORDED_DATE
ORDER BY
P.HOSPITAL,
P.DEPARTMENT_ID,
P.EFFECT_DATE,
P.Y_MRN,
F.RECORDED_DATE)
,
FIN
AS
(
SELECT DISTINCT
P.HOSPITAL,
P.DEPARTMENT_ID,
P.department_name,
P.EFFECT_DATE,
P.effective_time,
C.IP_LDA_ID,
CASE WHEN TRUNC(C.PLACEMENT_INSTANT) <= TRUNC(P.effective_time) AND
TRUNC(C.REMOVAL_INSTANT)>= TRUNC(P.effective_time)THEN C.IP_LDA_ID
WHEN C.PLACEMENT_INSTANT IS NULL AND TRUNC(C.REMOVAL_INSTANT)>= TRUNC(P.effective_time) THEN C.IP_LDA_ID
ELSE NULL END AS IP_LDA_ID_A,
C.DISP_NAME,
CASE WHEN TRUNC(C.PLACEMENT_INSTANT) <= TRUNC(P.effective_time) AND
TRUNC(C.REMOVAL_INSTANT)>= TRUNC(P.effective_time)THEN C.DISP_NAME
WHEN C.PLACEMENT_INSTANT IS NULL AND TRUNC(C.REMOVAL_INSTANT)>= TRUNC(P.effective_time) THEN C.DISP_NAME
ELSE NULL END AS DISP_NAME_A,
C.PLACEMENT_INSTANT,
CASE WHEN TRUNC(C.PLACEMENT_INSTANT) <= TRUNC(P.effective_time) AND
TRUNC(C.REMOVAL_INSTANT)>= TRUNC(P.effective_time)THEN C.PLACEMENT_INSTANT
WHEN C.PLACEMENT_INSTANT IS NULL AND TRUNC(C.REMOVAL_INSTANT)>= TRUNC(P.effective_time) THEN TO_DATE('01/01/1900','MM/DD/YYYY')
ELSE NULL END AS PLACEMENT_INSTANT_A,
C.REMOVAL_INSTANT,
CASE WHEN TRUNC(C.PLACEMENT_INSTANT) <= TRUNC(P.effective_time) AND
TRUNC(C.REMOVAL_INSTANT)>= TRUNC(P.effective_time)THEN C.REMOVAL_INSTANT
WHEN C.PLACEMENT_INSTANT IS NULL AND TRUNC(C.REMOVAL_INSTANT)>= TRUNC(P.effective_time) THEN C.REMOVAL_INSTANT
ELSE NULL END AS REMOVAL_INSTANT_A,
C.PLACEMENT_INSTANT_DATE,
CASE WHEN TRUNC(C.PLACEMENT_INSTANT) <= TRUNC(P.effective_time) AND
TRUNC(C.REMOVAL_INSTANT)>= TRUNC(P.effective_time)THEN C.PLACEMENT_INSTANT_DATE
WHEN C.PLACEMENT_INSTANT IS NULL AND TRUNC(C.REMOVAL_INSTANT)>= TRUNC(P.effective_time) THEN C.PLACEMENT_INSTANT_DATE
ELSE NULL END AS PLACEMENT_INSTANT_DATE_A,
C.REMOVAL_INSTANT_DATE,
CASE WHEN TRUNC(C.PLACEMENT_INSTANT) <= TRUNC(P.effective_time) AND
TRUNC(C.REMOVAL_INSTANT)>= TRUNC(P.effective_time)THEN C.REMOVAL_INSTANT_DATE
WHEN C.PLACEMENT_INSTANT IS NULL AND TRUNC(C.REMOVAL_INSTANT)>= TRUNC(P.effective_time) THEN C.REMOVAL_INSTANT_DATE
ELSE NULL END AS REMOVAL_INSTANT_DATE_A,
C.CL,
CASE WHEN TRUNC(C.PLACEMENT_INSTANT) <= TRUNC(P.effective_time) AND
TRUNC(C.REMOVAL_INSTANT)>= TRUNC(P.effective_time)THEN C.CL
WHEN C.PLACEMENT_INSTANT IS NULL AND TRUNC(C.REMOVAL_INSTANT)>= TRUNC(P.effective_time) THEN C.CL
ELSE NULL END AS CL_A,
C.CL_PATIENT_TYPE,
CASE WHEN TRUNC(C.PLACEMENT_INSTANT) <= TRUNC(P.effective_time) AND
TRUNC(C.REMOVAL_INSTANT)>= TRUNC(P.effective_time)THEN C.CL_PATIENT_TYPE
WHEN C.PLACEMENT_INSTANT IS NULL AND TRUNC(C.REMOVAL_INSTANT)>= TRUNC(P.effective_time) THEN C.CL_PATIENT_TYPE
ELSE NULL END AS CL_PATIENT_TYPE_A,
P.RM_PATIENT_TYPE,
P.PAT_ID,
P.Y_MRN,
P.hosp_admsn_time,
P.PAT_ENC_CSN_ID,
P.RECORDED_TIME,
P.RECORDED_DATE,
P.meas_value,
P.Standard_Bath,
P.CHG,
P.BATH_STATUS
FROM
PT2 P
LEFT OUTER JOIN
CL C
ON
P.PAT_ENC_CSN_ID =C.PAT_ENC_CSN_ID
WHERE
(P.effective_time between (select start_date from dd) AND (select end_date from dd)+1)
)
SELECT DISTINCT
P.EFFECT_DATE,
P.Y_MRN,
**CASE WHEN P.DEPARTMENT_ID IN (2133009,4313023,4313015,4313016,4314007,4314009,4314027,5119219,5119221,5115578,73,5115579,5119222,5123216,
5133207,5119223,5101202,5133026,5119220,5120202,5119218,5119235) THEN 'CHG'
WHEN P.IP_LDA_ID_A IS NOT NULL AND P.DEPARTMENT_ID NOT IN (2133009,4313023,4313015,4313016,4314007,4314009,4314027,5119219,5119221,5115578,73,5115579,5119222,5123216,
5133207,5119223,5101202,5133026,5119220,5120202,5119218,5119235)THEN MIN(P.CL_PATIENT_TYPE_A) OVER (PARTITION BY P.PAT_ID,P.EFFECT_DATE)
WHEN P.IP_LDA_ID_A IS NULL AND P.DEPARTMENT_ID NOT IN (2133009,4313023,4313015,4313016,4314007,4314009,4314027,5119219,5119221,5115578,73,5115579,5119222,5123216,
5133207,5119223,5101202,5133026,5119220,5120202,5119218,5119235)THEN P.RM_PATIENT_TYPE END AS PATIENT_TYPE,**
FROM
FIN P