SQL-eksempel 11
|
<< Click to Display Table of Contents >> SQL-eksempel 11 |
![]() ![]()
|
Børn med IVH grad 1
For baggrund - se NeoBase opgørelser - definitioner og konventioner.
==================================================================================
/* Viser antal børn med IVH Gr.1 udskrevet indenfor valgte årgang baseret på
udskrivelsesdato og fordelt på GA grupper. N.B. Grupperer børn efter deres max.
registrerede grad af IVH inkl. for indl. i tilstødende år! N.K.mar.2005. */
SELECT
CASE
WHEN np."GA hele uger" < 28 THEN '0: GA < 28'
WHEN np."GA hele uger" >= 28 AND np."GA hele uger" < 32 THEN '1: GA 28-31'
WHEN np."GA hele uger" >= 32 AND np."GA hele uger" < 37 THEN '2: GA 32-36'
WHEN np."GA hele uger" >= 37 AND np."GA hele uger" < 99 THEN '3: GA >= 37'
WHEN np."GA hele uger" = 99 THEN '4: GA ukendt'
END AS "GA gruppe",
np.PersonId
INTO MEMORY Temp
FROM NeoPers np;
--------------------------------------------------------------------------
SELECT DISTINCT mt2."GA gruppe", [Børn med IVH gr.1 udskr. 2004]
FROM MEMORY Temp mt2
LEFT JOIN
(SELECT mt."GA gruppe",
COUNT(n2.PersonId) AS "Børn med IVH gr.1 udskr. 2004"
FROM
(SELECT DISTINCT mt."GA gruppe", n2.PersonId
FROM MEMORY Temp mt JOIN NeoBase2 n2 ON (n2.PersonId = mt.PersonId)
WHERE EXTRACT(YEAR FROM n2.Udskrivelsesdato) = '2004'
AND (n2.PersonId IN
(SELECT n22.PersonId
FROM NeoBase2 n22
WHERE n22."IVH grad 0-4" < '9'
GROUP BY n22.PersonId
HAVING MAX(CAST(n22."IVH grad 0-4" AS INTEGER)) = 1)))
GROUP BY
[GA gruppe])
ON (mt2."GA gruppe" = mt."GA gruppe")
UNION
SELECT [GA gruppe], COUNT(n2.PersonId)
FROM
(SELECT DISTINCT 'Z: Sum' AS "GA gruppe", n2.PersonId FROM Neobase2 n2
WHERE EXTRACT(YEAR FROM n2.Udskrivelsesdato) = '2004'
AND (n2.PersonId IN
(SELECT n22.PersonId
FROM NeoBase2 n22
WHERE n22."IVH grad 0-4" < '9'
GROUP BY n22.PersonId
HAVING MAX(CAST(n22."IVH grad 0-4" AS INTEGER)) = 1)))
GROUP BY
[GA gruppe]
ORDER BY
[GA gruppe];
==================================================================================
SQL-eksemplet
Specifikke målsætning: opgørelse af antal børn med IVH grad 1 og som har været udskrevet i valgte år.
Dette noget komplekse SQL-udtryk er konstrueret udfra følgende betragtninger:
Da IVH overvejende er en perinatalt indtræffende tilstand, er opgørelsen fokuseret på børn snarere end på udskrivelser (indlæggelser), idet repetitive registreringer for samme tilstand ved flere successive indlæggelser anses som udtryk for registreringer af samme hændelse eller uadskillelige hændelser. Samtidigt anses registrering af IVH først i den efterfølgende indlæggelse med udskrivelse efter årsskiftet til den efterfølgende årgang blot som udtryk for sen konstatering af en tidligere perinatal hændelse. Da børn ved successive udskrivelser evt. kan være registreret for forskellige grader af IVH, betragtes den højeste registreringskode (eksklusiv udeladelses-kode 9) som udtryk for den mest detaljerede og mest signifikante diagnose, hvorfor børnene kun inkluderes for deres max. registrerede IVH-kode.
Samme pincipper er anvendt ved SQL-udtræk for PVL og ROP.
_____________________________
27-10-2017 - © 2003-2017 Niels Knabe