Skip to content

Commit 69a9018

Browse files
committed
Eclipse full update from NC for review
1 parent fe71510 commit 69a9018

File tree

63 files changed

+12596
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

63 files changed

+12596
-0
lines changed
Binary file not shown.

deployment_extracts/eclipse/live/cmsname_dbtype_ssd_template_v1.2.2_1_20240926.sql

Lines changed: 5826 additions & 0 deletions
Large diffs are not rendered by default.
Lines changed: 146 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,146 @@
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+
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
2+
WITH EXCLUSIONS AS (
3+
SELECT
4+
PV.PERSONID
5+
FROM PERSONVIEW PV
6+
WHERE PV.PERSONID IN (
7+
1,2,3,4,5,6,99046,100824,100825,100826,100827,100828,100829,100830,100832,100856,100857,100861,100864,9999040,102790,
8+
100831,100833,100834,100838,100839,100859,100860,99524,99543,99555,99559,99613,99661,99662,99993,100276,100290,100372,109032,100924,
9+
100941,35698,43088,68635,74902,77731,97447,9999000,9999010,9999025,9999026,9999029,9999050,72306,109032,117746,
10+
97951 --not flagged as duplicate
11+
)
12+
OR COALESCE(PV.DUPLICATED,'?') IN ('DUPLICATE')
13+
OR UPPER(PV.FORENAME) LIKE '%DUPLICATE%'
14+
OR UPPER(PV.SURNAME) LIKE '%DUPLICATE%'
15+
)
16+
17+
SELECT
18+
PERSADDRESS.ADDRESSID AS "addr_table_id", --metadata={"item_ref:"ADDR007A"}
19+
JSON_BUILD_OBJECT(
20+
'ROOM' , COALESCE(PERSADDRESS.ROOMDESCRIPTION, ''),
21+
'FLOOR' , COALESCE(PERSADDRESS.FLOORDESCRIPTION, ''),
22+
'FLAT' , '',
23+
'BUILDING', COALESCE(PERSADDRESS.BUILDINGNAMEORNUMBER, ''),
24+
'HOUSE' , COALESCE(PERSADDRESS.BUILDINGNAMEORNUMBER, ''),
25+
'STREET' , COALESCE(PERSADDRESS.STREETNAME, ''),
26+
'TOWN' , COALESCE(PERSADDRESS.TOWNORCITY, ''),
27+
'UPRN' , COALESCE(PERSADDRESS.UPRN, NULL),
28+
'EASTING' , '',
29+
'NORTHING', ''
30+
) AS "addr_address_json", --metadata={"item_ref:"ADDR001A"}
31+
PERSADDRESS.PERSONID AS "addr_person_id", --metadata={"item_ref:"ADDR002A"}
32+
PERSADDRESS.TYPE AS "addr_address_type", --metadata={"item_ref:"ADDR003A"}
33+
PERSADDRESS.STARTDATE AS "addr_address_start_date", --metadata={"item_ref:"ADDR004A"}
34+
PERSADDRESS.ENDDATE AS "addr_address_end_date", --metadata={"item_ref:"ADDR005A"}
35+
REPLACE(PERSADDRESS.POSTCODE, ' ', '') AS "addr_postcode" --metadata={"item_ref:"ADDR006A"}
36+
FROM ADDRESSPERSONVIEW PERSADDRESS
37+
WHERE PERSADDRESS.PERSONID NOT IN (SELECT E.PERSONID FROM EXCLUSIONS E)

0 commit comments

Comments
 (0)