1+
2+ /* SELECT
3+ CLA.CODE,
4+ CLA.NAME
5+ FROM(*/
6+ SELECT
7+ CLA .PERSONID ,
8+ CLA .CODE ,
9+ CLA .NAME ,
10+ CLA .CLASSIFICATIONPATHID ,
11+ CLA .CLASSIFICATIONASSIGNMENTID AS EPISODEID,
12+ CLA .STARTDATE ::DATE AS PRIMARY_CODE_STARTDATE,
13+ CLA .ENDDATE ::DATE AS PRIMARY_CODE_ENDDATE,
14+ CLA .ENDREASON
15+
16+ FROM CLASSIFICATIONPERSONVIEW CLA
17+ WHERE CLA .STATUS NOT IN (' DELETED' )
18+ AND CLA .CLASSIFICATIONPATHID = 23
19+ -- AND CLA.CODE IN ('CIN_PLAN','CF','FHP')
20+ AND PERSONID = 101284
21+ ORDER BY CLA .PERSONID
22+ /* ) CLA
23+ GROUP BY CLA.CODE,
24+ CLA.NAME */
25+ -- --////////////////////////////////////////////////////////////
26+
27+
28+ WITH CIN_EPISODE AS ( -- --------CIN Episodes
29+ SELECT
30+ CINE_PERSON_ID,
31+ CINE_REFERRAL_DATE,
32+ MIN (CINE_CIN_PRIMARY_NEED_RANK) AS CINE_CIN_PRIMARY_NEED_RANK,
33+ CINE_CLOSE_DATE,
34+ MAX (CINE_CLOSE_REASON) AS CINE_CLOSE_REASON,
35+ MIN (CINE_REFERRAL_ID) AS CINE_REFERRAL_ID
36+ FROM (
37+ SELECT
38+ CLA .PERSONID AS CINE_PERSON_ID,
39+ MIN (CLA .PRIMARY_CODE_STARTDATE ) AS CINE_REFERRAL_DATE,
40+ MIN (CINE_CIN_PRIMARY_NEED_RANK) AS CINE_CIN_PRIMARY_NEED_RANK,
41+ CASE
42+ WHEN BOOL_AND(PRIMARY_CODE_ENDDATE IS NOT NULL ) IS FALSE
43+ THEN NULL
44+ ELSE MAX (PRIMARY_CODE_ENDDATE)
45+ END AS CINE_CLOSE_DATE,
46+ MAX (ENDREASON) AS CINE_CLOSE_REASON,
47+ MAX (EPISODE_ID) AS CINE_REFERRAL_ID
48+
49+
50+
51+ WITH PRIMARY_CODE_ALL AS (
52+ SELECT
53+ * ,
54+ SUM (NEXT_START_FLAG) OVER (PARTITION BY PERSONID ORDER BY PERSONID, PRIMARY_CODE_STARTDATE) AS EPISODE
55+ -- CASE WHEN NEXT_START_FLAG = 1
56+ -- THEN EPISODEID
57+ -- END AS EPISODE_ID
58+ FROM (
59+ SELECT
60+ CLA .PERSONID ,
61+ CLA .CLASSIFICATIONASSIGNMENTID AS EPISODEID,
62+ CASE WHEN CLA .NAME = ' Abuse or neglect' THEN ' N1'
63+ WHEN CLA .NAME = ' Child' ' s disability' THEN ' N2'
64+ WHEN CLA .NAME = ' Parental illness/disability' THEN ' N3'
65+ WHEN CLA .NAME = ' Family in acute stress' THEN ' N4'
66+ WHEN CLA .NAME = ' Family dysfunction' THEN ' N5'
67+ WHEN CLA .NAME = ' Socially unacceptable behaviour' THEN ' N6'
68+ WHEN CLA .NAME = ' Low income' THEN ' N7'
69+ WHEN CLA .NAME = ' Absent parenting' THEN ' N8'
70+ WHEN CLA .NAME = ' Cases other than child in need' THEN ' N9'
71+ WHEN CLA .NAME = ' Not stated' THEN ' N0'
72+ END AS PRIMARY_NEED,
73+ CLA .STARTDATE ::DATE AS PRIMARY_CODE_STARTDATE,
74+ CLA .ENDDATE ::DATE AS PRIMARY_CODE_ENDDATE,
75+ CLA .ENDREASON ,
76+ CASE WHEN CLA .STARTDATE >= LAG(CLA .STARTDATE ) OVER (PARTITION BY CLA .PERSONID ORDER BY CLA .STARTDATE , CLA .ENDDATE NULLS LAST)
77+ AND CLA .STARTDATE <= COALESCE(LAG(CLA .ENDDATE ) OVER (PARTITION BY CLA .PERSONID ORDER BY CLA .STARTDATE , CLA .ENDDATE NULLS LAST), CURRENT_DATE )+ INTERVAL ' 1 day'
78+ THEN 0
79+ ELSE 1
80+ END AS NEXT_START_FLAG
81+ FROM CLASSIFICATIONPERSONVIEW CLA
82+ WHERE CLA .STATUS NOT IN (' DELETED' )
83+ AND CLA .CLASSIFICATIONPATHID = 23
84+ AND PERSONID = 101284
85+ ORDER BY CLA .PERSONID ,
86+ CLA .ENDDATE :: DATE DESC NULLS FIRST,
87+ CLA .STARTDATE :: DATE DESC
88+ ) CLA
89+
90+ )
91+
92+ , PRIMARY_CODE_GROUP AS (
93+ SELECT
94+ CLA.* ,
95+ PC_FIRST .PRIMARY_NEED AS FIRST_PRIMARY_NEED,
96+
97+ PC_FIRST .EPISODEID AS FIRST_EPISODEID,
98+ PC_LAST .EPISODEID AS LAST_EPISODEID,
99+ PC_LAST .ENDREASON AS LAST_ENDREASON
100+ FROM PRIMARY_CODE_ALL CLA
101+
102+ LEFT JOIN LATERAL (
103+ SELECT *
104+ FROM PRIMARY_CODE_ALL PC_FIRST
105+ WHERE CLA .PERSONID = PC_FIRST .PERSONID
106+ AND CLA .EPISODE = PC_FIRST .EPISODE
107+ ORDER BY PC_FIRST .PRIMARY_CODE_STARTDATE
108+ FETCH FIRST 1 ROW ONLY
109+ ) PC_FIRST ON TRUE
110+ LEFT JOIN LATERAL (
111+ SELECT *
112+ FROM PRIMARY_CODE_ALL PC_LAST
113+ WHERE CLA .PERSONID = PC_LAST .PERSONID
114+ AND CLA .EPISODE = PC_LAST .EPISODE
115+ ORDER BY PC_LAST .PRIMARY_CODE_STARTDATE DESC
116+ FETCH FIRST 1 ROW ONLY
117+ ) PC_LAST ON TRUE
118+ -- GROUP BY CLA.PERSONID, CLA.EPISODE
119+
120+ )
121+
122+ , PRIMARYNEED_CODE_EPISODES AS (
123+
124+ SELECT
125+ PERSONID AS PERSONID,
126+ MIN (PRIMARY_CODE_STARTDATE) AS PRIMARY_CODE_STARTDATE,
127+ LAST_ENDREASON AS PRIMARY_CODE_ENDREASON ,
128+ FIRST_PRIMARY_NEED AS PRIMARY_NEED,
129+ CASE
130+ WHEN BOOL_AND(PRIMARY_CODE_ENDDATE IS NOT NULL ) IS FALSE
131+ THEN NULL
132+ ELSE MAX (PRIMARY_CODE_ENDDATE)
133+ END AS PRIMARY_CODE_CLOSE_DATE,
134+ FIRST_EPISODEID AS PRIMARY_CODE_REFERRAL_ID
135+ FROM PRIMARY_CODE_GROUP CLA
136+
137+
138+ -- WHERE PERSONID = 69
139+ GROUP BY PERSONID, EPISODE,LAST_ENDREASON, FIRST_EPISODEID,FIRST_PRIMARY_NEED
140+
141+
142+ )
143+
144+
145+ ,
146+
0 commit comments