statistiche influenza
4 partecipanti
statistiche influenza
E' possibile con POSTGRES ricercare chi si è vaccinato nel 2015 ma non si è vaccinato nel 2016?
filippo- Membro Junior
- Messaggi : 284
Punti : 5431
Voti per importanza dei messaggi : 3
Data d'iscrizione : 25.02.11
Re: statistiche influenza
filippo ha scritto:E' possibile con POSTGRES ricercare chi si è vaccinato nel 2015 ma non si è vaccinato nel 2016?
Io utilizzo la seguente query per la verifica ( MW 13.38 ) , adattata dallo scorso anno :
SELECT Distinct Cast( p.cognome As Char(20)) , p.nome , Cast( DateFormat( Max( p.nascita), 'yyyy/mm/dd' ) As Char(16)) As Nascita , p.sesso ,
Cast( Extract( YEAR From AGE( p.nascita ))||'y'||Extract( MONTH From AGE( p.nascita ))||'m'||Extract( Day From AGE( p.nascita ))||'d' As Char(12)) As eta , Cast( p.codice_fiscale As Char(16)) As codfisc_paz ,
Cast( DateFormat( Max( v.va_data), 'yyyy/mm/dd' ) As Char(16)) As Influ_d ,
(Select v.va_data From cart_vaccini v Where v.codice = p.codice And v.va_tipo ILike '%Influ%' And v.va_data Between '2016-10-01' And '2016-12-31' And Not Exists (Select v1.codice From cart_vaccini v1 Where v1.codice = v.codice And v1.va_tipo ILike '%Influ%' And ( v1.va_data > v.va_data Or (v1.va_data = v.va_data And v1.rowid > v.rowid )))) _Influ_d1_ ,
Max( v.va_tipo) As vaccino , Max( v.ora) As cat_code ,
( CASE Coalesce( Left( Max( v.ora) , 1 ),'') WHEN 'V' THEN ( CASE Max( v.ora)
WHEN 'VA1' THEN 'Personale sanitario e socio-sanitario'
WHEN 'VA2' THEN 'Personale delle forze di pubblica sicurezza e della protezione civile'
WHEN 'VA3' THEN 'Personale del corpo dei Vigili del fuoco Ministero Interno'
WHEN 'VA4' THEN 'Personale delle forze armate'
WHEN 'VA5' THEN 'Personale che assicura i servizi pubblici essenziali'
WHEN 'VA6' THEN 'Donatori di sangue periodici'
WHEN 'VB1' THEN 'Donne al secondo o al terzo trimestre di gravidanza'
WHEN 'VB2' THEN 'Donne che hanno partorito da meno di sei mesi o persona che assiste il bambino'
WHEN 'VC1' THEN 'Portatori di almeno una delle condizioni di rischio di età compresa tra 6 mesi e 65 anni'
WHEN 'VD1' THEN 'Bambini di età superiore a sei mesi che frequentano l''asilo nido (non incluse nei precedenti punti)'
WHEN 'VD2' THEN 'Minori che vivono in comunità o istituzionalizzati (non incluse nei precedenti punti)'
WHEN 'VD3' THEN 'Soggetti con meno di 24 mesi nati gravemente pretermine'
WHEN 'VE1' THEN 'Persone di età compresa tra 6 mesi e 17 anni (non incluse nei precedenti punti)'
WHEN 'VF1' THEN 'Persone di età compresa tra 18 e 27 anni (non incluse nei precedenti punti)'
ELSE Max( v.ora) || ' - Altra categoria' END)
WHEN 'B' THEN ( CASE Max( v.ora)
WHEN 'B9 ' THEN 'Anziani over 65'
WHEN 'B33' THEN 'Bambini mal. neurologiche o neuromuscolari'
WHEN 'B32' THEN 'Mal. con immunodepressione'
WHEN 'B31' THEN 'Patologie con programmati interventi chirurgici'
WHEN 'B30' THEN 'Sindrome da malassorbimento intestinale'
WHEN 'B29' THEN 'Mal.organi emopoietici ed emoglobinopatie'
WHEN 'B28' THEN 'Mal. renali con Insuff. Renale'
WHEN 'B27' THEN 'Mal. Tumorali'
WHEN 'B26' THEN 'Diabete mellito e mal. Metaboliche'
WHEN 'B25' THEN 'Mal. apparato cardiocircolatorio'
WHEN 'B24' THEN 'Mal. croniche app. respiratorio'
WHEN 'B23' THEN 'a pagamento'
WHEN 'B22' THEN 'Allevatori, Veterinari, ecc.'
WHEN 'B21' THEN 'Addetti a servizi pubblici di primario interesse collettivo'
WHEN 'B20' THEN 'Contatti familiari di soggetti ad alto rischio'
WHEN 'B19' THEN 'Medici e personale sanitario'
WHEN 'B18' THEN 'Ricoverati presso strutture di lungodegenza'
WHEN 'B17' THEN 'Donne in gravidanza'
WHEN 'B16' THEN 'Bambini pretermine'
WHEN 'B15' THEN 'Bambini e adolescenti in trattamento cronico con ASA'
WHEN 'B14' THEN 'Altre malattie'
WHEN 'B13' THEN 'HIV'
WHEN 'B12' THEN 'Broncopneumopatici'
WHEN 'B11' THEN 'Cardiopatici'
WHEN 'B10' THEN 'Diabetici'
ELSE Max( v.ora) || ' - Altra categoria' END)
WHEN 'H' THEN ( CASE Max( v.ora)
WHEN 'HNF' THEN 'f) Persone tra i 18 e 27 anni, non incluse nei precedenti punti'
WHEN 'HNE' THEN 'e) Persone di età compresa tra piu'' di 6 mesi e 17 anni, non incluse nei precedenti punti, sulla base degli aggiornamenti della scheda tecnica autorizzativa EMEA.'
WHEN 'HND' THEN 'd) Bambini di età superiore a 6 mesi che frequentano asilo nido; minori che vivono in comunità o istituzionalizzati.'
WHEN 'HNC' THEN 'c) Portatori di almeno una delle condizioni di rischio, di cui al comma 2 art. 1 Ord 11-09-2009, nonchÈ i soggetti fino a 24 mesi nati gravemente pretermine'
WHEN 'HNB' THEN 'b) Donne al secondo o al terzo trimestre di gravidanza: donne che hanno partorito da meno di 6 mesi o, in loro assenza, la persona che assiste il bambino in maniera continuativa'
WHEN 'HNA' THEN 'a) Pers. san. e socio-san.: PS e PC,: VVFF del Min. interno; FFAA; servizi pubbl. essenz. L. 12/6/90 n. 8146. e succ. mod. piani di continuità datori di lavoro, donatori di sangue ecc.'
ELSE Max( v.ora) || ' - Altra categoria' END)
WHEN 'A' THEN (CASE Max( v.ora)
WHEN 'A29' THEN 'Affetti da: Pat. ass. ad un aumentato rischio di aspirazione delle secrezioni respiratorie (es. m. neuromuscolari)'
WHEN 'A28' THEN 'Affetti da: Pat. per le quali sono programmati interventi chirurgici'
WHEN 'A27' THEN 'Affetti da: M. infiammatorie croniche e s. di malassorbimento intestinali'
WHEN 'A26' THEN 'Affetti da: M. cong. o acquisite che comportino carenze prod. anticorpi, immunosoppressione da farmaci o da HIV'
WHEN 'A25' THEN 'Affetti da: Tumori'
WHEN 'A24' THEN 'Affetti da: M. degli organi emopoietici ed emoglobinopatie'
WHEN 'A23' THEN 'Affetti da: M. renali con influenza renale'
WHEN 'A22' THEN 'Affetti da: Diabete mellito ed altre malattie metaboliche'
WHEN 'A21' THEN 'Affetti da: M. apparato cardio-circolatorio, comprese cardiopatie cong. e acquisite'
WHEN 'A20' THEN 'Affetti da: M. croniche apparato respiratorio (incl. Asma, displasia bronc., fibrosi cistica e BPCO)'
WHEN 'A13' THEN 'Categoria non nota'
WHEN 'A12' THEN 'Soggetti ad alto rischio'
WHEN 'A11' THEN 'Donne che saranno nel secondo e terzo trimestre di gravidanza a inizio stagione epidemica'
WHEN 'A10' THEN 'Personale che, per motivi di lavoro, è a contatto con animali che potrebbero costituire fonte di infezione da virus influenzali non umani'
WHEN 'A09' THEN 'Familiari e contatti di soggetti ad alto rischio'
WHEN 'A08' THEN 'Bambini affetti da patologie neurologiche e neuromuscolari'
WHEN 'A07' THEN 'Bambini ed adolescenti in trattamento a lungo termine con Acido Acetilsalicilico, a rischio di sindrome di Reye in caso di infezione influenzale'
WHEN 'A06' THEN 'Bambini di età superiore ai 6 mesi con condizioni morbose predisponenti alle complicanze'
WHEN 'A05' THEN 'Soggetti addetti a servizi pubblici di primario interesse collettivo e categorie di lavoratori'
WHEN 'A04' THEN 'Individui di qualunque età ricoverati presso strutture per lungodegenti'
WHEN 'A03' THEN 'Medici e personale sanitario di assistenza'
WHEN 'A02' THEN 'Adulti affetti da patologie croniche'
WHEN 'A01' THEN 'Soggetti di età pari o superiore a 65 anni'
ELSE Max( v.ora) || ' - Altra categoria' END ) ELSE NULL END ) As categoria_rischio ,
Case WHEN Trim( Left( Max( v.va_note), Position( 'I ' in ' I T2DM' ))) = 'I' THEN 'INFLUVAC'
WHEN Trim( Left( Max( v.va_note), Position( 'I ' in ' I T2DM' ))) = 'F' THEN 'FLUAD' ELSE NULL END As tipo_vaccino , Max( v.va_note) As Patologia ,
Case Max( fatto_io) WHEN 'D' THEN ' in Office' WHEN 'E' THEN ' Domicilio' WHEN 'F' THEN ' in RSA' WHEN 'A' THEN ' Priv in Office' WHEN 'B' THEN ' Priv Domicilio' WHEN 'C' THEN ' Priv in RSA' ELSE Max( fatto_io) END As sede ,
Trim( Left( v.lotto , Position( ' ' in v.lotto)-1 )) As lotto , Left( '20', 2) || SubString( v.lotto From Length( v.lotto )-5 For 2 ) || '-' || SubString( v.lotto From Length( v.lotto )-3 For 2 ) ||'-' || Right( lotto, 2 ) As scadenza_lotto /* Trim( Right( lotto , Position( ' ' in v.lotto)-1 )) As scadenza_lotto */ ,
(Select Cast( Count( e.motese) As SmallInt) From cart_paz_ese e Where e.codice = p.codice )
_esenzioni_n1_ ,
(Select Cast( Count( e.motese) As SmallInt) From cart_paz_ese e Where e.codice = p.codice And ( dscdese Is Null Or dscdese > '2015-12-31' ) And ( e.motese Not ILike '%Reddito%' AND e.motese Not ILike '%lavor%' AND e.motese Not ILike '%Inval%'))
_esenzioni_n_ ,
Array_To_String( Array( Select e.motese From cart_paz_ese e Where e.codice = p.codice And (( dscdese Is Null Or dscdese > '2015-12-31' ) And ( e.motese Not ILike '%Reddito%' AND e.motese Not ILike '%lavor%' AND e.motese Not ILike '%Inval%'))) , ' ,') _esenzioni_tipo_ , u.codice_fiscale As cod_fisc_mmg
FROM (( pazienti p LEFT Outer JOIN nos_002 n ON p.codice = n.codice )
LEFT Outer JOIN v_utenti u ON u.userid = n.pa_medi )
LEFT Outer JOIN cart_vaccini v ON v.codice = p.codice
WHERE u.nome ILike '%' AND u.codice_regionale ILIKE '%'
AND p.pa_convenzione = 'S' AND sesso ILIKE '%'
AND Days( p.nascita, '2017/01/01')*24/8766 < 105 AND v.va_tipo ILIKE '%Influ%'
AND ( v.va_data BETWEEN '2015-10-01' AND '2015-12-31' /* AND v.ora NOT ILIKE 'A13' */
And Not Exists (Select v1.codice From cart_vaccini v1 Where v1.codice = v.codice And v1.va_tipo ILike '%Influ%' And ( v1.va_data > v.va_data Or (v1.va_data = v.va_data And v1.rowid > v.rowid ))))
AND p.codice NOT IN
(Select v.codice From cart_vaccini v Where v.codice = p.codice And v.va_tipo ILike '%Influ%' And v.va_data Between '2016-10-01' And '2016-12-31' And Not Exists (Select v1.codice From cart_vaccini v1 Where v1.codice = v.codice And v1.va_tipo ILike '%Influ%' And ( v1.va_data > v.va_data Or (v1.va_data = v.va_data And v1.rowid > v.rowid ))))
GROUP BY u.codice_fiscale , p.codice_fiscale , p.cognome , p.nome , p.nascita , p.sesso , p.codice , v.lotto
ORDER BY 1 , 2 , 7 desc , 3 , 4
Disattivare le colonne superflue e/o obsolete inglobandole in /* */
Saluti , Sergio
Cervino- Membro Junior
- Messaggi : 245
Punti : 5282
Voti per importanza dei messaggi : 22
Data d'iscrizione : 03.03.11
Età : 70
Località : Orzivecchi (BS)
Re: statistiche influenza
Cervino ha scritto:filippo ha scritto:E' possibile con POSTGRES ricercare chi si è vaccinato nel 2015 ma non si è vaccinato nel 2016?
Io utilizzo la seguente query per la verifica ( MW 13.38 ) , adattata dallo scorso anno :
SELECT Distinct Cast( p.cognome As Char(20)) , p.nome , Cast( DateFormat( Max( p.nascita), 'yyyy/mm/dd' ) As Char(16)) As Nascita , p.sesso ,
Cast( Extract( YEAR From AGE( p.nascita ))||'y'||Extract( MONTH From AGE( p.nascita ))||'m'||Extract( Day From AGE( p.nascita ))||'d' As Char(12)) As eta , Cast( p.codice_fiscale As Char(16)) As codfisc_paz ,
Cast( DateFormat( Max( v.va_data), 'yyyy/mm/dd' ) As Char(16)) As Influ_d ,
(Select v.va_data From cart_vaccini v Where v.codice = p.codice And v.va_tipo ILike '%Influ%' And v.va_data Between '2016-10-01' And '2016-12-31' And Not Exists (Select v1.codice From cart_vaccini v1 Where v1.codice = v.codice And v1.va_tipo ILike '%Influ%' And ( v1.va_data > v.va_data Or (v1.va_data = v.va_data And v1.rowid > v.rowid )))) _Influ_d1_ ,
Max( v.va_tipo) As vaccino , Max( v.ora) As cat_code ,
( CASE Coalesce( Left( Max( v.ora) , 1 ),'') WHEN 'V' THEN ( CASE Max( v.ora)
WHEN 'VA1' THEN 'Personale sanitario e socio-sanitario'
WHEN 'VA2' THEN 'Personale delle forze di pubblica sicurezza e della protezione civile'
WHEN 'VA3' THEN 'Personale del corpo dei Vigili del fuoco Ministero Interno'
WHEN 'VA4' THEN 'Personale delle forze armate'
WHEN 'VA5' THEN 'Personale che assicura i servizi pubblici essenziali'
WHEN 'VA6' THEN 'Donatori di sangue periodici'
WHEN 'VB1' THEN 'Donne al secondo o al terzo trimestre di gravidanza'
WHEN 'VB2' THEN 'Donne che hanno partorito da meno di sei mesi o persona che assiste il bambino'
WHEN 'VC1' THEN 'Portatori di almeno una delle condizioni di rischio di età compresa tra 6 mesi e 65 anni'
WHEN 'VD1' THEN 'Bambini di età superiore a sei mesi che frequentano l''asilo nido (non incluse nei precedenti punti)'
WHEN 'VD2' THEN 'Minori che vivono in comunità o istituzionalizzati (non incluse nei precedenti punti)'
WHEN 'VD3' THEN 'Soggetti con meno di 24 mesi nati gravemente pretermine'
WHEN 'VE1' THEN 'Persone di età compresa tra 6 mesi e 17 anni (non incluse nei precedenti punti)'
WHEN 'VF1' THEN 'Persone di età compresa tra 18 e 27 anni (non incluse nei precedenti punti)'
ELSE Max( v.ora) || ' - Altra categoria' END)
WHEN 'B' THEN ( CASE Max( v.ora)
WHEN 'B9 ' THEN 'Anziani over 65'
WHEN 'B33' THEN 'Bambini mal. neurologiche o neuromuscolari'
WHEN 'B32' THEN 'Mal. con immunodepressione'
WHEN 'B31' THEN 'Patologie con programmati interventi chirurgici'
WHEN 'B30' THEN 'Sindrome da malassorbimento intestinale'
WHEN 'B29' THEN 'Mal.organi emopoietici ed emoglobinopatie'
WHEN 'B28' THEN 'Mal. renali con Insuff. Renale'
WHEN 'B27' THEN 'Mal. Tumorali'
WHEN 'B26' THEN 'Diabete mellito e mal. Metaboliche'
WHEN 'B25' THEN 'Mal. apparato cardiocircolatorio'
WHEN 'B24' THEN 'Mal. croniche app. respiratorio'
WHEN 'B23' THEN 'a pagamento'
WHEN 'B22' THEN 'Allevatori, Veterinari, ecc.'
WHEN 'B21' THEN 'Addetti a servizi pubblici di primario interesse collettivo'
WHEN 'B20' THEN 'Contatti familiari di soggetti ad alto rischio'
WHEN 'B19' THEN 'Medici e personale sanitario'
WHEN 'B18' THEN 'Ricoverati presso strutture di lungodegenza'
WHEN 'B17' THEN 'Donne in gravidanza'
WHEN 'B16' THEN 'Bambini pretermine'
WHEN 'B15' THEN 'Bambini e adolescenti in trattamento cronico con ASA'
WHEN 'B14' THEN 'Altre malattie'
WHEN 'B13' THEN 'HIV'
WHEN 'B12' THEN 'Broncopneumopatici'
WHEN 'B11' THEN 'Cardiopatici'
WHEN 'B10' THEN 'Diabetici'
ELSE Max( v.ora) || ' - Altra categoria' END)
WHEN 'H' THEN ( CASE Max( v.ora)
WHEN 'HNF' THEN 'f) Persone tra i 18 e 27 anni, non incluse nei precedenti punti'
WHEN 'HNE' THEN 'e) Persone di età compresa tra piu'' di 6 mesi e 17 anni, non incluse nei precedenti punti, sulla base degli aggiornamenti della scheda tecnica autorizzativa EMEA.'
WHEN 'HND' THEN 'd) Bambini di età superiore a 6 mesi che frequentano asilo nido; minori che vivono in comunità o istituzionalizzati.'
WHEN 'HNC' THEN 'c) Portatori di almeno una delle condizioni di rischio, di cui al comma 2 art. 1 Ord 11-09-2009, nonchÈ i soggetti fino a 24 mesi nati gravemente pretermine'
WHEN 'HNB' THEN 'b) Donne al secondo o al terzo trimestre di gravidanza: donne che hanno partorito da meno di 6 mesi o, in loro assenza, la persona che assiste il bambino in maniera continuativa'
WHEN 'HNA' THEN 'a) Pers. san. e socio-san.: PS e PC,: VVFF del Min. interno; FFAA; servizi pubbl. essenz. L. 12/6/90 n. 8146. e succ. mod. piani di continuità datori di lavoro, donatori di sangue ecc.'
ELSE Max( v.ora) || ' - Altra categoria' END)
WHEN 'A' THEN (CASE Max( v.ora)
WHEN 'A29' THEN 'Affetti da: Pat. ass. ad un aumentato rischio di aspirazione delle secrezioni respiratorie (es. m. neuromuscolari)'
WHEN 'A28' THEN 'Affetti da: Pat. per le quali sono programmati interventi chirurgici'
WHEN 'A27' THEN 'Affetti da: M. infiammatorie croniche e s. di malassorbimento intestinali'
WHEN 'A26' THEN 'Affetti da: M. cong. o acquisite che comportino carenze prod. anticorpi, immunosoppressione da farmaci o da HIV'
WHEN 'A25' THEN 'Affetti da: Tumori'
WHEN 'A24' THEN 'Affetti da: M. degli organi emopoietici ed emoglobinopatie'
WHEN 'A23' THEN 'Affetti da: M. renali con influenza renale'
WHEN 'A22' THEN 'Affetti da: Diabete mellito ed altre malattie metaboliche'
WHEN 'A21' THEN 'Affetti da: M. apparato cardio-circolatorio, comprese cardiopatie cong. e acquisite'
WHEN 'A20' THEN 'Affetti da: M. croniche apparato respiratorio (incl. Asma, displasia bronc., fibrosi cistica e BPCO)'
WHEN 'A13' THEN 'Categoria non nota'
WHEN 'A12' THEN 'Soggetti ad alto rischio'
WHEN 'A11' THEN 'Donne che saranno nel secondo e terzo trimestre di gravidanza a inizio stagione epidemica'
WHEN 'A10' THEN 'Personale che, per motivi di lavoro, è a contatto con animali che potrebbero costituire fonte di infezione da virus influenzali non umani'
WHEN 'A09' THEN 'Familiari e contatti di soggetti ad alto rischio'
WHEN 'A08' THEN 'Bambini affetti da patologie neurologiche e neuromuscolari'
WHEN 'A07' THEN 'Bambini ed adolescenti in trattamento a lungo termine con Acido Acetilsalicilico, a rischio di sindrome di Reye in caso di infezione influenzale'
WHEN 'A06' THEN 'Bambini di età superiore ai 6 mesi con condizioni morbose predisponenti alle complicanze'
WHEN 'A05' THEN 'Soggetti addetti a servizi pubblici di primario interesse collettivo e categorie di lavoratori'
WHEN 'A04' THEN 'Individui di qualunque età ricoverati presso strutture per lungodegenti'
WHEN 'A03' THEN 'Medici e personale sanitario di assistenza'
WHEN 'A02' THEN 'Adulti affetti da patologie croniche'
WHEN 'A01' THEN 'Soggetti di età pari o superiore a 65 anni'
ELSE Max( v.ora) || ' - Altra categoria' END ) ELSE NULL END ) As categoria_rischio ,
Case WHEN Trim( Left( Max( v.va_note), Position( 'I ' in ' I T2DM' ))) = 'I' THEN 'INFLUVAC'
WHEN Trim( Left( Max( v.va_note), Position( 'I ' in ' I T2DM' ))) = 'F' THEN 'FLUAD' ELSE NULL END As tipo_vaccino , Max( v.va_note) As Patologia ,
Case Max( fatto_io) WHEN 'D' THEN ' in Office' WHEN 'E' THEN ' Domicilio' WHEN 'F' THEN ' in RSA' WHEN 'A' THEN ' Priv in Office' WHEN 'B' THEN ' Priv Domicilio' WHEN 'C' THEN ' Priv in RSA' ELSE Max( fatto_io) END As sede ,
Trim( Left( v.lotto , Position( ' ' in v.lotto)-1 )) As lotto , Left( '20', 2) || SubString( v.lotto From Length( v.lotto )-5 For 2 ) || '-' || SubString( v.lotto From Length( v.lotto )-3 For 2 ) ||'-' || Right( lotto, 2 ) As scadenza_lotto /* Trim( Right( lotto , Position( ' ' in v.lotto)-1 )) As scadenza_lotto */ ,
(Select Cast( Count( e.motese) As SmallInt) From cart_paz_ese e Where e.codice = p.codice )
_esenzioni_n1_ ,
(Select Cast( Count( e.motese) As SmallInt) From cart_paz_ese e Where e.codice = p.codice And ( dscdese Is Null Or dscdese > '2015-12-31' ) And ( e.motese Not ILike '%Reddito%' AND e.motese Not ILike '%lavor%' AND e.motese Not ILike '%Inval%'))
_esenzioni_n_ ,
Array_To_String( Array( Select e.motese From cart_paz_ese e Where e.codice = p.codice And (( dscdese Is Null Or dscdese > '2015-12-31' ) And ( e.motese Not ILike '%Reddito%' AND e.motese Not ILike '%lavor%' AND e.motese Not ILike '%Inval%'))) , ' ,') _esenzioni_tipo_ , u.codice_fiscale As cod_fisc_mmg
FROM (( pazienti p LEFT Outer JOIN nos_002 n ON p.codice = n.codice )
LEFT Outer JOIN v_utenti u ON u.userid = n.pa_medi )
LEFT Outer JOIN cart_vaccini v ON v.codice = p.codice
WHERE u.nome ILike '%' AND u.codice_regionale ILIKE '%'
AND p.pa_convenzione = 'S' AND sesso ILIKE '%'
AND Days( p.nascita, '2017/01/01')*24/8766 < 105 AND v.va_tipo ILIKE '%Influ%'
AND ( v.va_data BETWEEN '2015-10-01' AND '2015-12-31' /* AND v.ora NOT ILIKE 'A13' */
And Not Exists (Select v1.codice From cart_vaccini v1 Where v1.codice = v.codice And v1.va_tipo ILike '%Influ%' And ( v1.va_data > v.va_data Or (v1.va_data = v.va_data And v1.rowid > v.rowid ))))
AND p.codice NOT IN
(Select v.codice From cart_vaccini v Where v.codice = p.codice And v.va_tipo ILike '%Influ%' And v.va_data Between '2016-10-01' And '2016-12-31' And Not Exists (Select v1.codice From cart_vaccini v1 Where v1.codice = v.codice And v1.va_tipo ILike '%Influ%' And ( v1.va_data > v.va_data Or (v1.va_data = v.va_data And v1.rowid > v.rowid ))))
GROUP BY u.codice_fiscale , p.codice_fiscale , p.cognome , p.nome , p.nascita , p.sesso , p.codice , v.lotto
ORDER BY 1 , 2 , 7 desc , 3 , 4
Disattivare le colonne superflue e/o obsolete inglobandole in /* */
Saluti , Sergio
Perfetta, estrae anche i deceduti e i pazienti non piu' in carico ma non è un problema!
Grazie
filippo- Membro Junior
- Messaggi : 284
Punti : 5431
Voti per importanza dei messaggi : 3
Data d'iscrizione : 25.02.11
Re: statistiche influenza
filippo ha scritto:Cervino ha scritto:filippo ha scritto:E' possibile con POSTGRES ricercare chi si è vaccinato nel 2015 ma non si è vaccinato nel 2016?
Io utilizzo la seguente query per la verifica ( MW 13.38 ) , adattata dallo scorso anno :
SELECT Distinct Cast( p.cognome As Char(20)) , p.nome , Cast( DateFormat( Max( p.nascita), 'yyyy/mm/dd' ) As Char(16)) As Nascita , p.sesso ,
Cast( Extract( YEAR From AGE( p.nascita ))||'y'||Extract( MONTH From AGE( p.nascita ))||'m'||Extract( Day From AGE( p.nascita ))||'d' As Char(12)) As eta , Cast( p.codice_fiscale As Char(16)) As codfisc_paz ,
Cast( DateFormat( Max( v.va_data), 'yyyy/mm/dd' ) As Char(16)) As Influ_d ,
(Select v.va_data From cart_vaccini v Where v.codice = p.codice And v.va_tipo ILike '%Influ%' And v.va_data Between '2016-10-01' And '2016-12-31' And Not Exists (Select v1.codice From cart_vaccini v1 Where v1.codice = v.codice And v1.va_tipo ILike '%Influ%' And ( v1.va_data > v.va_data Or (v1.va_data = v.va_data And v1.rowid > v.rowid )))) _Influ_d1_ ,
Max( v.va_tipo) As vaccino , Max( v.ora) As cat_code ,
( CASE Coalesce( Left( Max( v.ora) , 1 ),'') WHEN 'V' THEN ( CASE Max( v.ora)
WHEN 'VA1' THEN 'Personale sanitario e socio-sanitario'
WHEN 'VA2' THEN 'Personale delle forze di pubblica sicurezza e della protezione civile'
WHEN 'VA3' THEN 'Personale del corpo dei Vigili del fuoco Ministero Interno'
WHEN 'VA4' THEN 'Personale delle forze armate'
WHEN 'VA5' THEN 'Personale che assicura i servizi pubblici essenziali'
WHEN 'VA6' THEN 'Donatori di sangue periodici'
WHEN 'VB1' THEN 'Donne al secondo o al terzo trimestre di gravidanza'
WHEN 'VB2' THEN 'Donne che hanno partorito da meno di sei mesi o persona che assiste il bambino'
WHEN 'VC1' THEN 'Portatori di almeno una delle condizioni di rischio di età compresa tra 6 mesi e 65 anni'
WHEN 'VD1' THEN 'Bambini di età superiore a sei mesi che frequentano l''asilo nido (non incluse nei precedenti punti)'
WHEN 'VD2' THEN 'Minori che vivono in comunità o istituzionalizzati (non incluse nei precedenti punti)'
WHEN 'VD3' THEN 'Soggetti con meno di 24 mesi nati gravemente pretermine'
WHEN 'VE1' THEN 'Persone di età compresa tra 6 mesi e 17 anni (non incluse nei precedenti punti)'
WHEN 'VF1' THEN 'Persone di età compresa tra 18 e 27 anni (non incluse nei precedenti punti)'
ELSE Max( v.ora) || ' - Altra categoria' END)
WHEN 'B' THEN ( CASE Max( v.ora)
WHEN 'B9 ' THEN 'Anziani over 65'
WHEN 'B33' THEN 'Bambini mal. neurologiche o neuromuscolari'
WHEN 'B32' THEN 'Mal. con immunodepressione'
WHEN 'B31' THEN 'Patologie con programmati interventi chirurgici'
WHEN 'B30' THEN 'Sindrome da malassorbimento intestinale'
WHEN 'B29' THEN 'Mal.organi emopoietici ed emoglobinopatie'
WHEN 'B28' THEN 'Mal. renali con Insuff. Renale'
WHEN 'B27' THEN 'Mal. Tumorali'
WHEN 'B26' THEN 'Diabete mellito e mal. Metaboliche'
WHEN 'B25' THEN 'Mal. apparato cardiocircolatorio'
WHEN 'B24' THEN 'Mal. croniche app. respiratorio'
WHEN 'B23' THEN 'a pagamento'
WHEN 'B22' THEN 'Allevatori, Veterinari, ecc.'
WHEN 'B21' THEN 'Addetti a servizi pubblici di primario interesse collettivo'
WHEN 'B20' THEN 'Contatti familiari di soggetti ad alto rischio'
WHEN 'B19' THEN 'Medici e personale sanitario'
WHEN 'B18' THEN 'Ricoverati presso strutture di lungodegenza'
WHEN 'B17' THEN 'Donne in gravidanza'
WHEN 'B16' THEN 'Bambini pretermine'
WHEN 'B15' THEN 'Bambini e adolescenti in trattamento cronico con ASA'
WHEN 'B14' THEN 'Altre malattie'
WHEN 'B13' THEN 'HIV'
WHEN 'B12' THEN 'Broncopneumopatici'
WHEN 'B11' THEN 'Cardiopatici'
WHEN 'B10' THEN 'Diabetici'
ELSE Max( v.ora) || ' - Altra categoria' END)
WHEN 'H' THEN ( CASE Max( v.ora)
WHEN 'HNF' THEN 'f) Persone tra i 18 e 27 anni, non incluse nei precedenti punti'
WHEN 'HNE' THEN 'e) Persone di età compresa tra piu'' di 6 mesi e 17 anni, non incluse nei precedenti punti, sulla base degli aggiornamenti della scheda tecnica autorizzativa EMEA.'
WHEN 'HND' THEN 'd) Bambini di età superiore a 6 mesi che frequentano asilo nido; minori che vivono in comunità o istituzionalizzati.'
WHEN 'HNC' THEN 'c) Portatori di almeno una delle condizioni di rischio, di cui al comma 2 art. 1 Ord 11-09-2009, nonchÈ i soggetti fino a 24 mesi nati gravemente pretermine'
WHEN 'HNB' THEN 'b) Donne al secondo o al terzo trimestre di gravidanza: donne che hanno partorito da meno di 6 mesi o, in loro assenza, la persona che assiste il bambino in maniera continuativa'
WHEN 'HNA' THEN 'a) Pers. san. e socio-san.: PS e PC,: VVFF del Min. interno; FFAA; servizi pubbl. essenz. L. 12/6/90 n. 8146. e succ. mod. piani di continuità datori di lavoro, donatori di sangue ecc.'
ELSE Max( v.ora) || ' - Altra categoria' END)
WHEN 'A' THEN (CASE Max( v.ora)
WHEN 'A29' THEN 'Affetti da: Pat. ass. ad un aumentato rischio di aspirazione delle secrezioni respiratorie (es. m. neuromuscolari)'
WHEN 'A28' THEN 'Affetti da: Pat. per le quali sono programmati interventi chirurgici'
WHEN 'A27' THEN 'Affetti da: M. infiammatorie croniche e s. di malassorbimento intestinali'
WHEN 'A26' THEN 'Affetti da: M. cong. o acquisite che comportino carenze prod. anticorpi, immunosoppressione da farmaci o da HIV'
WHEN 'A25' THEN 'Affetti da: Tumori'
WHEN 'A24' THEN 'Affetti da: M. degli organi emopoietici ed emoglobinopatie'
WHEN 'A23' THEN 'Affetti da: M. renali con influenza renale'
WHEN 'A22' THEN 'Affetti da: Diabete mellito ed altre malattie metaboliche'
WHEN 'A21' THEN 'Affetti da: M. apparato cardio-circolatorio, comprese cardiopatie cong. e acquisite'
WHEN 'A20' THEN 'Affetti da: M. croniche apparato respiratorio (incl. Asma, displasia bronc., fibrosi cistica e BPCO)'
WHEN 'A13' THEN 'Categoria non nota'
WHEN 'A12' THEN 'Soggetti ad alto rischio'
WHEN 'A11' THEN 'Donne che saranno nel secondo e terzo trimestre di gravidanza a inizio stagione epidemica'
WHEN 'A10' THEN 'Personale che, per motivi di lavoro, è a contatto con animali che potrebbero costituire fonte di infezione da virus influenzali non umani'
WHEN 'A09' THEN 'Familiari e contatti di soggetti ad alto rischio'
WHEN 'A08' THEN 'Bambini affetti da patologie neurologiche e neuromuscolari'
WHEN 'A07' THEN 'Bambini ed adolescenti in trattamento a lungo termine con Acido Acetilsalicilico, a rischio di sindrome di Reye in caso di infezione influenzale'
WHEN 'A06' THEN 'Bambini di età superiore ai 6 mesi con condizioni morbose predisponenti alle complicanze'
WHEN 'A05' THEN 'Soggetti addetti a servizi pubblici di primario interesse collettivo e categorie di lavoratori'
WHEN 'A04' THEN 'Individui di qualunque età ricoverati presso strutture per lungodegenti'
WHEN 'A03' THEN 'Medici e personale sanitario di assistenza'
WHEN 'A02' THEN 'Adulti affetti da patologie croniche'
WHEN 'A01' THEN 'Soggetti di età pari o superiore a 65 anni'
ELSE Max( v.ora) || ' - Altra categoria' END ) ELSE NULL END ) As categoria_rischio ,
Case WHEN Trim( Left( Max( v.va_note), Position( 'I ' in ' I T2DM' ))) = 'I' THEN 'INFLUVAC'
WHEN Trim( Left( Max( v.va_note), Position( 'I ' in ' I T2DM' ))) = 'F' THEN 'FLUAD' ELSE NULL END As tipo_vaccino , Max( v.va_note) As Patologia ,
Case Max( fatto_io) WHEN 'D' THEN ' in Office' WHEN 'E' THEN ' Domicilio' WHEN 'F' THEN ' in RSA' WHEN 'A' THEN ' Priv in Office' WHEN 'B' THEN ' Priv Domicilio' WHEN 'C' THEN ' Priv in RSA' ELSE Max( fatto_io) END As sede ,
Trim( Left( v.lotto , Position( ' ' in v.lotto)-1 )) As lotto , Left( '20', 2) || SubString( v.lotto From Length( v.lotto )-5 For 2 ) || '-' || SubString( v.lotto From Length( v.lotto )-3 For 2 ) ||'-' || Right( lotto, 2 ) As scadenza_lotto /* Trim( Right( lotto , Position( ' ' in v.lotto)-1 )) As scadenza_lotto */ ,
(Select Cast( Count( e.motese) As SmallInt) From cart_paz_ese e Where e.codice = p.codice )
_esenzioni_n1_ ,
(Select Cast( Count( e.motese) As SmallInt) From cart_paz_ese e Where e.codice = p.codice And ( dscdese Is Null Or dscdese > '2015-12-31' ) And ( e.motese Not ILike '%Reddito%' AND e.motese Not ILike '%lavor%' AND e.motese Not ILike '%Inval%'))
_esenzioni_n_ ,
Array_To_String( Array( Select e.motese From cart_paz_ese e Where e.codice = p.codice And (( dscdese Is Null Or dscdese > '2015-12-31' ) And ( e.motese Not ILike '%Reddito%' AND e.motese Not ILike '%lavor%' AND e.motese Not ILike '%Inval%'))) , ' ,') _esenzioni_tipo_ , u.codice_fiscale As cod_fisc_mmg
FROM (( pazienti p LEFT Outer JOIN nos_002 n ON p.codice = n.codice )
LEFT Outer JOIN v_utenti u ON u.userid = n.pa_medi )
LEFT Outer JOIN cart_vaccini v ON v.codice = p.codice
WHERE u.nome ILike '%' AND u.codice_regionale ILIKE '%'
AND p.pa_convenzione = 'S' AND sesso ILIKE '%'
AND Days( p.nascita, '2017/01/01')*24/8766 < 105 AND v.va_tipo ILIKE '%Influ%'
AND ( v.va_data BETWEEN '2015-10-01' AND '2015-12-31' /* AND v.ora NOT ILIKE 'A13' */
And Not Exists (Select v1.codice From cart_vaccini v1 Where v1.codice = v.codice And v1.va_tipo ILike '%Influ%' And ( v1.va_data > v.va_data Or (v1.va_data = v.va_data And v1.rowid > v.rowid ))))
AND p.codice NOT IN
(Select v.codice From cart_vaccini v Where v.codice = p.codice And v.va_tipo ILike '%Influ%' And v.va_data Between '2016-10-01' And '2016-12-31' And Not Exists (Select v1.codice From cart_vaccini v1 Where v1.codice = v.codice And v1.va_tipo ILike '%Influ%' And ( v1.va_data > v.va_data Or (v1.va_data = v.va_data And v1.rowid > v.rowid ))))
GROUP BY u.codice_fiscale , p.codice_fiscale , p.cognome , p.nome , p.nascita , p.sesso , p.codice , v.lotto
ORDER BY 1 , 2 , 7 desc , 3 , 4
Disattivare le colonne superflue e/o obsolete inglobandole in /* */
Saluti , Sergio
Perfetta, estrae anche i deceduti e i pazienti non piu' in carico ma non è un problema!
Grazie
Prego , basta aggiungere la relativa clausola di esclusione dopo AND sesso ILIKE '% e prima di AND v.va_tipo ILIKE '%Influ%' :
AND Year( p.nascita) Between 1910 And 2016
AND ( n.pa_drevoca Is Null Or n.pa_drevoca > Today() Or ( n.pa_drevoca Between
Date( Today())-365 And Today() And motivo_revoca = 'S')) And p.decesso Is Null
Sergio
Cervino- Membro Junior
- Messaggi : 245
Punti : 5282
Voti per importanza dei messaggi : 22
Data d'iscrizione : 03.03.11
Età : 70
Località : Orzivecchi (BS)
Re: statistiche influenza
A me dà il seguente errore: "non è consentita una stringa con lunghezza negativa" SELECT Distinct Cast( p.cognome As Char(20)) , p.nome , Cast( DateFormat( Max( p.nascita), 'yyyy/mm/dd' ) As Char(16)) As Nascita , p.sesso ,Cervino ha scritto:Io utilizzo la seguente query per la verifica ( MW 13.38 ) , adattata dallo scorso anno :
SELECT Distinct Cast( p.cognome As Char(20)) , p.nome , Cast( DateFormat( Max( p.nascita), 'yyyy/mm/dd' ) As Char(16)) As Nascita , p.sesso ,
Cast( Extract( YEAR From AGE( p.nascita ))||'y'||Extract( MONTH From AGE( p.nascita ))||'m'||Extract( Day From AGE( p.nascita ))||'d' As Char(12)) As eta , Cast( p.codice_fiscale As Char(16)) As codfisc_paz ,
Cast( DateFormat( Max( v.va_data), 'yyyy/mm/dd' ) As Char(16)) As Influ_d ,
(Select v.va_data From cart_vaccini v Where v.codice = p.codice And v.va_tipo ILike '%Influ%' And v.va_data Between '2016-10-01' And '2016-12-31' And Not Exists (Select v1.codice From cart_vaccini v1 Where v1.codice = v.codice And v1.va_tipo ILike '%Influ%' And ( v1.va_data > v.va_data Or (v1.va_data = v.va_data And v1.rowid > v.rowid )))) _Influ_d1_ ,
Max( v.va_tipo) As vaccino , Max( v.ora) As cat_code ,
( CASE Coalesce( Left( Max( v.ora) , 1 ),'') WHEN 'V' THEN ( CASE Max( v.ora)
WHEN 'VA1' THEN 'Personale sanitario e socio-sanitario'
WHEN 'VA2' THEN 'Personale delle forze di pubblica sicurezza e della protezione civile'
WHEN 'VA3' THEN 'Personale del corpo dei Vigili del fuoco Ministero Interno'
WHEN 'VA4' THEN 'Personale delle forze armate'
WHEN 'VA5' THEN 'Personale che assicura i servizi pubblici essenziali'
WHEN 'VA6' THEN 'Donatori di sangue periodici'
WHEN 'VB1' THEN 'Donne al secondo o al terzo trimestre di gravidanza'
WHEN 'VB2' THEN 'Donne che hanno partorito da meno di sei mesi o persona che assiste il bambino'
WHEN 'VC1' THEN 'Portatori di almeno una delle condizioni di rischio di età compresa tra 6 mesi e 65 anni'
WHEN 'VD1' THEN 'Bambini di età superiore a sei mesi che frequentano l''asilo nido (non incluse nei precedenti punti)'
WHEN 'VD2' THEN 'Minori che vivono in comunità o istituzionalizzati (non incluse nei precedenti punti)'
WHEN 'VD3' THEN 'Soggetti con meno di 24 mesi nati gravemente pretermine'
WHEN 'VE1' THEN 'Persone di età compresa tra 6 mesi e 17 anni (non incluse nei precedenti punti)'
WHEN 'VF1' THEN 'Persone di età compresa tra 18 e 27 anni (non incluse nei precedenti punti)'
ELSE Max( v.ora) || ' - Altra categoria' END)
WHEN 'B' THEN ( CASE Max( v.ora)
WHEN 'B9 ' THEN 'Anziani over 65'
WHEN 'B33' THEN 'Bambini mal. neurologiche o neuromuscolari'
WHEN 'B32' THEN 'Mal. con immunodepressione'
WHEN 'B31' THEN 'Patologie con programmati interventi chirurgici'
WHEN 'B30' THEN 'Sindrome da malassorbimento intestinale'
WHEN 'B29' THEN 'Mal.organi emopoietici ed emoglobinopatie'
WHEN 'B28' THEN 'Mal. renali con Insuff. Renale'
WHEN 'B27' THEN 'Mal. Tumorali'
WHEN 'B26' THEN 'Diabete mellito e mal. Metaboliche'
WHEN 'B25' THEN 'Mal. apparato cardiocircolatorio'
WHEN 'B24' THEN 'Mal. croniche app. respiratorio'
WHEN 'B23' THEN 'a pagamento'
WHEN 'B22' THEN 'Allevatori, Veterinari, ecc.'
WHEN 'B21' THEN 'Addetti a servizi pubblici di primario interesse collettivo'
WHEN 'B20' THEN 'Contatti familiari di soggetti ad alto rischio'
WHEN 'B19' THEN 'Medici e personale sanitario'
WHEN 'B18' THEN 'Ricoverati presso strutture di lungodegenza'
WHEN 'B17' THEN 'Donne in gravidanza'
WHEN 'B16' THEN 'Bambini pretermine'
WHEN 'B15' THEN 'Bambini e adolescenti in trattamento cronico con ASA'
WHEN 'B14' THEN 'Altre malattie'
WHEN 'B13' THEN 'HIV'
WHEN 'B12' THEN 'Broncopneumopatici'
WHEN 'B11' THEN 'Cardiopatici'
WHEN 'B10' THEN 'Diabetici'
ELSE Max( v.ora) || ' - Altra categoria' END)
WHEN 'H' THEN ( CASE Max( v.ora)
WHEN 'HNF' THEN 'f) Persone tra i 18 e 27 anni, non incluse nei precedenti punti'
WHEN 'HNE' THEN 'e) Persone di età compresa tra piu'' di 6 mesi e 17 anni, non incluse nei precedenti punti, sulla base degli aggiornamenti della scheda tecnica autorizzativa EMEA.'
WHEN 'HND' THEN 'd) Bambini di età superiore a 6 mesi che frequentano asilo nido; minori che vivono in comunità o istituzionalizzati.'
WHEN 'HNC' THEN 'c) Portatori di almeno una delle condizioni di rischio, di cui al comma 2 art. 1 Ord 11-09-2009, nonchÈ i soggetti fino a 24 mesi nati gravemente pretermine'
WHEN 'HNB' THEN 'b) Donne al secondo o al terzo trimestre di gravidanza: donne che hanno partorito da meno di 6 mesi o, in loro assenza, la persona che assiste il bambino in maniera continuativa'
WHEN 'HNA' THEN 'a) Pers. san. e socio-san.: PS e PC,: VVFF del Min. interno; FFAA; servizi pubbl. essenz. L. 12/6/90 n. 8146. e succ. mod. piani di continuità datori di lavoro, donatori di sangue ecc.'
ELSE Max( v.ora) || ' - Altra categoria' END)
WHEN 'A' THEN (CASE Max( v.ora)
WHEN 'A29' THEN 'Affetti da: Pat. ass. ad un aumentato rischio di aspirazione delle secrezioni respiratorie (es. m. neuromuscolari)'
WHEN 'A28' THEN 'Affetti da: Pat. per le quali sono programmati interventi chirurgici'
WHEN 'A27' THEN 'Affetti da: M. infiammatorie croniche e s. di malassorbimento intestinali'
WHEN 'A26' THEN 'Affetti da: M. cong. o acquisite che comportino carenze prod. anticorpi, immunosoppressione da farmaci o da HIV'
WHEN 'A25' THEN 'Affetti da: Tumori'
WHEN 'A24' THEN 'Affetti da: M. degli organi emopoietici ed emoglobinopatie'
WHEN 'A23' THEN 'Affetti da: M. renali con influenza renale'
WHEN 'A22' THEN 'Affetti da: Diabete mellito ed altre malattie metaboliche'
WHEN 'A21' THEN 'Affetti da: M. apparato cardio-circolatorio, comprese cardiopatie cong. e acquisite'
WHEN 'A20' THEN 'Affetti da: M. croniche apparato respiratorio (incl. Asma, displasia bronc., fibrosi cistica e BPCO)'
WHEN 'A13' THEN 'Categoria non nota'
WHEN 'A12' THEN 'Soggetti ad alto rischio'
WHEN 'A11' THEN 'Donne che saranno nel secondo e terzo trimestre di gravidanza a inizio stagione epidemica'
WHEN 'A10' THEN 'Personale che, per motivi di lavoro, è a contatto con animali che potrebbero costituire fonte di infezione da virus influenzali non umani'
WHEN 'A09' THEN 'Familiari e contatti di soggetti ad alto rischio'
WHEN 'A08' THEN 'Bambini affetti da patologie neurologiche e neuromuscolari'
WHEN 'A07' THEN 'Bambini ed adolescenti in trattamento a lungo termine con Acido Acetilsalicilico, a rischio di sindrome di Reye in caso di infezione influenzale'
WHEN 'A06' THEN 'Bambini di età superiore ai 6 mesi con condizioni morbose predisponenti alle complicanze'
WHEN 'A05' THEN 'Soggetti addetti a servizi pubblici di primario interesse collettivo e categorie di lavoratori'
WHEN 'A04' THEN 'Individui di qualunque età ricoverati presso strutture per lungodegenti'
WHEN 'A03' THEN 'Medici e personale sanitario di assistenza'
WHEN 'A02' THEN 'Adulti affetti da patologie croniche'
WHEN 'A01' THEN 'Soggetti di età pari o superiore a 65 anni'
ELSE Max( v.ora) || ' - Altra categoria' END ) ELSE NULL END ) As categoria_rischio ,
Case WHEN Trim( Left( Max( v.va_note), Position( 'I ' in ' I T2DM' ))) = 'I' THEN 'INFLUVAC'
WHEN Trim( Left( Max( v.va_note), Position( 'I ' in ' I T2DM' ))) = 'F' THEN 'FLUAD' ELSE NULL END As tipo_vaccino , Max( v.va_note) As Patologia ,
Case Max( fatto_io) WHEN 'D' THEN ' in Office' WHEN 'E' THEN ' Domicilio' WHEN 'F' THEN ' in RSA' WHEN 'A' THEN ' Priv in Office' WHEN 'B' THEN ' Priv Domicilio' WHEN 'C' THEN ' Priv in RSA' ELSE Max( fatto_io) END As sede ,
Trim( Left( v.lotto , Position( ' ' in v.lotto)-1 )) As lotto , Left( '20', 2) || SubString( v.lotto From Length( v.lotto )-5 For 2 ) || '-' || SubString( v.lotto From Length( v.lotto )-3 For 2 ) ||'-' || Right( lotto, 2 ) As scadenza_lotto /* Trim( Right( lotto , Position( ' ' in v.lotto)-1 )) As scadenza_lotto */ ,
(Select Cast( Count( e.motese) As SmallInt) From cart_paz_ese e Where e.codice = p.codice )
_esenzioni_n1_ ,
(Select Cast( Count( e.motese) As SmallInt) From cart_paz_ese e Where e.codice = p.codice And ( dscdese Is Null Or dscdese > '2015-12-31' ) And ( e.motese Not ILike '%Reddito%' AND e.motese Not ILike '%lavor%' AND e.motese Not ILike '%Inval%'))
_esenzioni_n_ ,
Array_To_String( Array( Select e.motese From cart_paz_ese e Where e.codice = p.codice And (( dscdese Is Null Or dscdese > '2015-12-31' ) And ( e.motese Not ILike '%Reddito%' AND e.motese Not ILike '%lavor%' AND e.motese Not ILike '%Inval%'))) , ' ,') _esenzioni_tipo_ , u.codice_fiscale As cod_fisc_mmg
FROM (( pazienti p LEFT Outer JOIN nos_002 n ON p.codice = n.codice )
LEFT Outer JOIN v_utenti u ON u.userid = n.pa_medi )
LEFT Outer JOIN cart_vaccini v ON v.codice = p.codice
WHERE u.nome ILike '%' AND u.codice_regionale ILIKE '%'
AND p.pa_convenzione = 'S' AND sesso ILIKE '%'
AND Days( p.nascita, '2017/01/01')*24/8766 < 105 AND v.va_tipo ILIKE '%Influ%'
AND ( v.va_data BETWEEN '2015-10-01' AND '2015-12-31' /* AND v.ora NOT ILIKE 'A13' */
And Not Exists (Select v1.codice From cart_vaccini v1 Where v1.codice = v.codice And v1.va_tipo ILike '%Influ%' And ( v1.va_data > v.va_data Or (v1.va_data = v.va_data And v1.rowid > v.rowid ))))
AND p.codice NOT IN
(Select v.codice From cart_vaccini v Where v.codice = p.codice And v.va_tipo ILike '%Influ%' And v.va_data Between '2016-10-01' And '2016-12-31' And Not Exists (Select v1.codice From cart_vaccini v1 Where v1.codice = v.codice And v1.va_tipo ILike '%Influ%' And ( v1.va_data > v.va_data Or (v1.va_data = v.va_data And v1.rowid > v.rowid ))))
GROUP BY u.codice_fiscale , p.codice_fiscale , p.cognome , p.nome , p.nascita , p.sesso , p.codice , v.lotto
ORDER BY 1 , 2 , 7 desc , 3 , 4
Disattivare le colonne superflue e/o obsolete inglobandole in /* */
Saluti , Sergio
Re: statistiche influenza
Difficile capire il perchè dell' errore : evidentemente almeno una subquery crea problemi ( usando PgAdmin sarebbe piu' semplice correggere la query ) .drtulino ha scritto:A me dà il seguente errore: "non è consentita una stringa con lunghezza negativa" SELECT Distinct Cast( p.cognome As Char(20)) , p.nome , Cast( DateFormat( Max( p.nascita), 'yyyy/mm/dd' ) As Char(16)) As Nascita , p.sesso ,Cervino ha scritto:Io utilizzo la seguente query per la verifica ( MW 13.38 ) , adattata dallo scorso anno :
SELECT Distinct Cast( p.cognome As Char(20)) , p.nome , Cast( DateFormat( Max( p.nascita), 'yyyy/mm/dd' ) As Char(16)) As Nascita , p.sesso ,
...
ORDER BY 1 , 2 , 7 desc , 3 , 4
Comunque quando una query non funziona , basta togliere progressivamente colonne
e/o subquery e/o eliminare le funzioni non essenziali ( Cast ad es. ) . Proverei con una versione semplificata :
SELECT Distinct Cast( p.cognome As Char(20)) , p.nome , p.nascita, p.sesso ,
Days( p.nascita , '2017-01-01' )*24/8766 As eta , Max( v.va_data As Influ_d ,
(Select v.va_data From cart_vaccini v Where v.codice = p.codice And v.va_tipo ILike '%Influ%' And v.va_data Between '2016-10-01' And '2016-12-31'
And Not Exists (Select v1.codice From cart_vaccini v1 Where v1.codice = v.codice And v1.va_tipo ILike '%Influ%' And ( v1.va_data > v.va_data
Or (v1.va_data = v.va_data And v1.rowid > v.rowid ))))
_Influ_d1_ ,
Max( v.va_tipo) As vaccino , Max( v.ora) As cat_code ,
u.codice_fiscale As cod_fisc_mmg
FROM (( pazienti p LEFT Outer JOIN nos_002 n ON p.codice = n.codice )
LEFT Outer JOIN v_utenti u ON u.userid = n.pa_medi )
LEFT Outer JOIN cart_vaccini v ON v.codice = p.codice
WHERE u.nome ILike '%' AND u.codice_regionale ILIKE '%'
AND p.pa_convenzione = 'S' AND p.sesso ILIKE '%'
AND Year( nascita) Between 1910 And 2016
AND ( n.pa_drevoca Is Null Or n.pa_drevoca > Today() Or ( n.pa_drevoca Between
Date( Today())-365 And Today() And motivo_revoca = 'S')) AND p.decesso Is Null
AND ( v.va_tipo ILIKE '%Influ%' AND v.va_data BETWEEN '2015-10-01' AND '2015-12-31' /* AND v.ora NOT ILIKE 'A13' */
And Not Exists (Select v1.codice From cart_vaccini v1 Where v1.codice = v.codice And v1.va_tipo ILike '%Influ%' And ( v1.va_data > v.va_data
Or (v1.va_data = v.va_data And v1.rowid > v.rowid ))))
AND p.codice NOT IN
(Select v.codice From cart_vaccini v Where v.codice = p.codice And v.va_tipo ILike '%Influ%' And v.va_data Between '2016-10-01' And '2016-12-31'
And Not Exists (Select v1.codice From cart_vaccini v1 Where v1.codice = v.codice And v1.va_tipo ILike '%Influ%' And ( v1.va_data > v.va_data
Or (v1.va_data = v.va_data And v1.rowid > v.rowid ))))
GROUP BY u.codice_fiscale , p.codice_fiscale , p.cognome , p.nome , p.nascita , p.sesso , p.codice
ORDER BY 1 , 2
Saluti , Sergio
Cervino- Membro Junior
- Messaggi : 245
Punti : 5282
Voti per importanza dei messaggi : 22
Data d'iscrizione : 03.03.11
Età : 70
Località : Orzivecchi (BS)
Re: statistiche influenza
Mi dà errore di sintassi a o presso "As"Cervino ha scritto:Difficile capire il perchè dell' errore : evidentemente almeno una subquery crea problemi ( usando PgAdmin sarebbe piu' semplice correggere la query ) .
Comunque quando una query non funziona , basta togliere progressivamente colonne
e/o subquery e/o eliminare le funzioni non essenziali ( Cast ad es. ) . Proverei con una versione semplificata :
SELECT Distinct Cast( p.cognome As Char(20)) , p.nome , p.nascita, p.sesso ,
Days( p.nascita , '2017-01-01' )*24/8766 As eta , Max( v.va_data As Influ_d ,
(Select v.va_data From cart_vaccini v Where v.codice = p.codice And v.va_tipo ILike '%Influ%' And v.va_data Between '2016-10-01' And '2016-12-31'
And Not Exists (Select v1.codice From cart_vaccini v1 Where v1.codice = v.codice And v1.va_tipo ILike '%Influ%' And ( v1.va_data > v.va_data
Or (v1.va_data = v.va_data And v1.rowid > v.rowid ))))
_Influ_d1_ ,
Max( v.va_tipo) As vaccino , Max( v.ora) As cat_code ,
u.codice_fiscale As cod_fisc_mmg
FROM (( pazienti p LEFT Outer JOIN nos_002 n ON p.codice = n.codice )
LEFT Outer JOIN v_utenti u ON u.userid = n.pa_medi )
LEFT Outer JOIN cart_vaccini v ON v.codice = p.codice
WHERE u.nome ILike '%' AND u.codice_regionale ILIKE '%'
AND p.pa_convenzione = 'S' AND p.sesso ILIKE '%'
AND Year( nascita) Between 1910 And 2016
AND ( n.pa_drevoca Is Null Or n.pa_drevoca > Today() Or ( n.pa_drevoca Between
Date( Today())-365 And Today() And motivo_revoca = 'S')) AND p.decesso Is Null
AND ( v.va_tipo ILIKE '%Influ%' AND v.va_data BETWEEN '2015-10-01' AND '2015-12-31' /* AND v.ora NOT ILIKE 'A13' */
And Not Exists (Select v1.codice From cart_vaccini v1 Where v1.codice = v.codice And v1.va_tipo ILike '%Influ%' And ( v1.va_data > v.va_data
Or (v1.va_data = v.va_data And v1.rowid > v.rowid ))))
AND p.codice NOT IN
(Select v.codice From cart_vaccini v Where v.codice = p.codice And v.va_tipo ILike '%Influ%' And v.va_data Between '2016-10-01' And '2016-12-31'
And Not Exists (Select v1.codice From cart_vaccini v1 Where v1.codice = v.codice And v1.va_tipo ILike '%Influ%' And ( v1.va_data > v.va_data
Or (v1.va_data = v.va_data And v1.rowid > v.rowid ))))
GROUP BY u.codice_fiscale , p.codice_fiscale , p.cognome , p.nome , p.nascita , p.sesso , p.codice
ORDER BY 1 , 2
Saluti , Sergio
Re: statistiche influenza
manca una parentesi nella query ( ho problemi di formattazione nello scrivere il post e/o copiare le query ) :
SELECT Distinct Cast( p.cognome As Char(20)) , p.nome , p.nascita, p.sesso ,
Days( p.nascita , '2017-01-01' )*24/8766 As eta , Max( v.va_data) As Influ_d ,
(Select v.va_data From cart_vaccini v Where v.codice = p.codice And v.va_tipo ILike '%Influ%' And v.va_data Between '2016-10-01' And '2016-12-31'
And Not Exists (Select v1.codice From cart_vaccini v1 Where v1.codice = v.codice And v1.va_tipo ILike '%Influ%' And ( v1.va_data > v.va_data
Or (v1.va_data = v.va_data And v1.rowid > v.rowid ))))
_Influ_d1_ ,
Max( v.va_tipo) As vaccino , Max( v.ora) As cat_code ,
u.codice_fiscale As cod_fisc_mmg
FROM (( pazienti p LEFT Outer JOIN nos_002 n ON p.codice = n.codice )
LEFT Outer JOIN v_utenti u ON u.userid = n.pa_medi )
LEFT Outer JOIN cart_vaccini v ON v.codice = p.codice
WHERE u.nome ILike '%' AND u.codice_regionale ILIKE '%'
AND p.pa_convenzione = 'S' AND p.sesso ILIKE '%'
AND Year( nascita) Between 1910 And 2016
AND ( n.pa_drevoca Is Null Or n.pa_drevoca > Today() Or ( n.pa_drevoca Between
Date( Today())-365 And Today() And motivo_revoca = 'S')) AND p.decesso Is Null
AND ( v.va_tipo ILIKE '%Influ%' AND v.va_data BETWEEN '2015-10-01' AND '2015-12-31' /* AND v.ora NOT ILIKE 'A13' */
And Not Exists (Select v1.codice From cart_vaccini v1 Where v1.codice = v.codice And v1.va_tipo ILike '%Influ%' And ( v1.va_data > v.va_data
Or (v1.va_data = v.va_data And v1.rowid > v.rowid ))))
AND p.codice NOT IN
(Select v.codice From cart_vaccini v Where v.codice = p.codice And v.va_tipo ILike '%Influ%' And v.va_data Between '2016-10-01' And '2016-12-31'
And Not Exists (Select v1.codice From cart_vaccini v1 Where v1.codice = v.codice And v1.va_tipo ILike '%Influ%' And ( v1.va_data > v.va_data
Or (v1.va_data = v.va_data And v1.rowid > v.rowid ))))
GROUP BY u.codice_fiscale , p.codice_fiscale , p.cognome , p.nome , p.nascita , p.sesso , p.codice
ORDER BY 1 , 2
spero nel buon esito , Sergio
SELECT Distinct Cast( p.cognome As Char(20)) , p.nome , p.nascita, p.sesso ,
Days( p.nascita , '2017-01-01' )*24/8766 As eta , Max( v.va_data) As Influ_d ,
(Select v.va_data From cart_vaccini v Where v.codice = p.codice And v.va_tipo ILike '%Influ%' And v.va_data Between '2016-10-01' And '2016-12-31'
And Not Exists (Select v1.codice From cart_vaccini v1 Where v1.codice = v.codice And v1.va_tipo ILike '%Influ%' And ( v1.va_data > v.va_data
Or (v1.va_data = v.va_data And v1.rowid > v.rowid ))))
_Influ_d1_ ,
Max( v.va_tipo) As vaccino , Max( v.ora) As cat_code ,
u.codice_fiscale As cod_fisc_mmg
FROM (( pazienti p LEFT Outer JOIN nos_002 n ON p.codice = n.codice )
LEFT Outer JOIN v_utenti u ON u.userid = n.pa_medi )
LEFT Outer JOIN cart_vaccini v ON v.codice = p.codice
WHERE u.nome ILike '%' AND u.codice_regionale ILIKE '%'
AND p.pa_convenzione = 'S' AND p.sesso ILIKE '%'
AND Year( nascita) Between 1910 And 2016
AND ( n.pa_drevoca Is Null Or n.pa_drevoca > Today() Or ( n.pa_drevoca Between
Date( Today())-365 And Today() And motivo_revoca = 'S')) AND p.decesso Is Null
AND ( v.va_tipo ILIKE '%Influ%' AND v.va_data BETWEEN '2015-10-01' AND '2015-12-31' /* AND v.ora NOT ILIKE 'A13' */
And Not Exists (Select v1.codice From cart_vaccini v1 Where v1.codice = v.codice And v1.va_tipo ILike '%Influ%' And ( v1.va_data > v.va_data
Or (v1.va_data = v.va_data And v1.rowid > v.rowid ))))
AND p.codice NOT IN
(Select v.codice From cart_vaccini v Where v.codice = p.codice And v.va_tipo ILike '%Influ%' And v.va_data Between '2016-10-01' And '2016-12-31'
And Not Exists (Select v1.codice From cart_vaccini v1 Where v1.codice = v.codice And v1.va_tipo ILike '%Influ%' And ( v1.va_data > v.va_data
Or (v1.va_data = v.va_data And v1.rowid > v.rowid ))))
GROUP BY u.codice_fiscale , p.codice_fiscale , p.cognome , p.nome , p.nascita , p.sesso , p.codice
ORDER BY 1 , 2
spero nel buon esito , Sergio
Cervino- Membro Junior
- Messaggi : 245
Punti : 5282
Voti per importanza dei messaggi : 22
Data d'iscrizione : 03.03.11
Età : 70
Località : Orzivecchi (BS)
Re: statistiche influenza
Questa funziona. Grazie.Cervino ha scritto:manca una parentesi nella query ( ho problemi di formattazione nello scrivere il post e/o copiare le query ) :
SELECT Distinct Cast( p.cognome As Char(20)) , p.nome , p.nascita, p.sesso ,
Days( p.nascita , '2017-01-01' )*24/8766 As eta , Max( v.va_data) As Influ_d ,
(Select v.va_data From cart_vaccini v Where v.codice = p.codice And v.va_tipo ILike '%Influ%' And v.va_data Between '2016-10-01' And '2016-12-31'
And Not Exists (Select v1.codice From cart_vaccini v1 Where v1.codice = v.codice And v1.va_tipo ILike '%Influ%' And ( v1.va_data > v.va_data
Or (v1.va_data = v.va_data And v1.rowid > v.rowid ))))
_Influ_d1_ ,
Max( v.va_tipo) As vaccino , Max( v.ora) As cat_code ,
u.codice_fiscale As cod_fisc_mmg
FROM (( pazienti p LEFT Outer JOIN nos_002 n ON p.codice = n.codice )
LEFT Outer JOIN v_utenti u ON u.userid = n.pa_medi )
LEFT Outer JOIN cart_vaccini v ON v.codice = p.codice
WHERE u.nome ILike '%' AND u.codice_regionale ILIKE '%'
AND p.pa_convenzione = 'S' AND p.sesso ILIKE '%'
AND Year( nascita) Between 1910 And 2016
AND ( n.pa_drevoca Is Null Or n.pa_drevoca > Today() Or ( n.pa_drevoca Between
Date( Today())-365 And Today() And motivo_revoca = 'S')) AND p.decesso Is Null
AND ( v.va_tipo ILIKE '%Influ%' AND v.va_data BETWEEN '2015-10-01' AND '2015-12-31' /* AND v.ora NOT ILIKE 'A13' */
And Not Exists (Select v1.codice From cart_vaccini v1 Where v1.codice = v.codice And v1.va_tipo ILike '%Influ%' And ( v1.va_data > v.va_data
Or (v1.va_data = v.va_data And v1.rowid > v.rowid ))))
AND p.codice NOT IN
(Select v.codice From cart_vaccini v Where v.codice = p.codice And v.va_tipo ILike '%Influ%' And v.va_data Between '2016-10-01' And '2016-12-31'
And Not Exists (Select v1.codice From cart_vaccini v1 Where v1.codice = v.codice And v1.va_tipo ILike '%Influ%' And ( v1.va_data > v.va_data
Or (v1.va_data = v.va_data And v1.rowid > v.rowid ))))
GROUP BY u.codice_fiscale , p.codice_fiscale , p.cognome , p.nome , p.nascita , p.sesso , p.codice
ORDER BY 1 , 2
spero nel buon esito , Sergio
Re: statistiche influenza
La query funziona molto bene per l'anno 2015, è possibile ricercare chi si è vaccinato nell'anno in corso?
Inoltre è possibile avere una query che ricerca i soggetti vaccinati con il vaccino antipneumococco "Prevenar 13",
neglianni precedenti compreso l'anno in corso?
Grazie.
Inoltre è possibile avere una query che ricerca i soggetti vaccinati con il vaccino antipneumococco "Prevenar 13",
neglianni precedenti compreso l'anno in corso?
Grazie.
aditroia- Membro Junior
- Messaggi : 191
Punti : 5286
Voti per importanza dei messaggi : 4
Data d'iscrizione : 24.02.11
Re: statistiche influenza
aditroia ha scritto:La query funziona molto bene per l'anno 2015, è possibile ricercare chi si è vaccinato nell'anno in corso?
Inoltre è possibile avere una query che ricerca i soggetti vaccinati con il vaccino antipneumococco "Prevenar 13",
neglianni precedenti compreso l'anno in corso?
Grazie.
Se scarichi dal sito l'apposita app che non è solo per la Regione toscana ti potrebbe essere utile. Questo il link: http://www.millewin.it/index.php/aggiornamenti/progetti/cse-regione-toscana/campagna-vaccinale/
In questi giorni ci dovrebbe essere un aggiornamento che migliora alcune piccole cose.
Re: statistiche influenza
Renato, il link da te suggerito da un errore di caricamento pagina....
aditroia- Membro Junior
- Messaggi : 191
Punti : 5286
Voti per importanza dei messaggi : 4
Data d'iscrizione : 24.02.11
Re: statistiche influenza
Sono riuscito ad aprire il link partendo dal sito www.millewin.it e nella pagina
relativa alla campagna vaccinale andrebbe scaricato il file "MilleSetupVaccini.exe".
Proverò ad installarlo sperando non mi vada a modificare nulla.....
relativa alla campagna vaccinale andrebbe scaricato il file "MilleSetupVaccini.exe".
Proverò ad installarlo sperando non mi vada a modificare nulla.....
aditroia- Membro Junior
- Messaggi : 191
Punti : 5286
Voti per importanza dei messaggi : 4
Data d'iscrizione : 24.02.11
Re: statistiche influenza
..... installato.... tutto ok, grazie!
aditroia- Membro Junior
- Messaggi : 191
Punti : 5286
Voti per importanza dei messaggi : 4
Data d'iscrizione : 24.02.11
Re: statistiche influenza
Essendo di una Regione diversa della Toscana, meglio ancora se lo scarichi dalla sessione "Nazionale" raggiungibile (forse) da questo link: http://www.millewin.it/index.php/aggiornamenti/progetti/nazionale/vaccini-2015-16/ (se fai copia/incolla del link funziona)aditroia ha scritto:..... installato.... tutto ok, grazie!
Oppure dal sito www.millein.it - Aggiornamento - Aggiornamento Millewin e Add-on di progetto - Nazionale - Campagna Vaccinale
Ultima modifica di drtulino il Gio 22 Dic 2016 - 16:23 - modificato 1 volta.
Re: statistiche influenza
Semplice basta disattivare la relativa condizione di esclusione , inglobandola in /* * / od eliminandola :aditroia ha scritto:La query funziona molto bene per l'anno 2015, è possibile ricercare chi si è vaccinato nell'anno in corso?
Inoltre è possibile avere una query che ricerca i soggetti vaccinati con il vaccino antipneumococco "Prevenar 13",
neglianni precedenti compreso l'anno in corso ?
Grazie.
AND p.codice NOT IN (Select v.codice From cart_vaccini v Where v.codice = p.codice And v.va_tipo ILike '%Influ%' And v.va_data Between '2016-10-01' And '2016-12-31' And Not Exists (Select v1.codice From cart_vaccini v1 Where v1.codice = v.codice And v1.va_tipo ILike '%Influ%' And ( v1.va_data > v.va_data Or (v1.va_data = v.va_data And v1.rowid > v.rowid ))))
ed ovviamente correggere la data nella riga precedente :
AND ( v.va_tipo ILIKE '%Influ%' AND v.va_data BETWEEN '2016-10-01' AND '2016-12-31' )
per estrarre con il vaccino AntiPneumococco , basta modificare la clausola relativa :
AND ( v.va_tipo ILIKE '%Preve%' AND v.va_data BETWEEN '2016-10-01' AND '2016-12-31' )
oppure ad es. ( basta fare delle semplici prove ) :
AND ( v.va_tipo ILIKE '%Pneumoc%' AND v.va_data BETWEEN '2016-10-01' AND '2016-12-31' )
lo scorso anno ho utilizzzato una query del tipo ( purtroppo in W10 la query perde la formattazione ottimale ) :
SELECT Distinct Cast( p.cognome As Char(20)) , p.nome , Cast( DateFormat( Max( p.nascita), 'yyyy/mm/dd' ) As Char(16)) As Nascita , p.sesso , Cast( Extract( YEAR From AGE( p.nascita ))||'y'||Extract( MONTH From AGE( p.nascita ))||'m'||Extract( Day From AGE( p.nascita ))||'d' As Char(12)) As eta , Cast( p.codice_fiscale As Char(16)) As codfisc_paz ,
Cast( DateFormat( Max( v.va_data), 'yyyy/mm/dd' ) As Char(16)) As Influ_d ,
(Select v.va_data From cart_vaccini v Where v.codice = p.codice And v.va_tipo ILike '%Influ%' And v.va_data Between '2016-10-01' And '2016-12-31' And Not Exists (Select v1.codice From cart_vaccini v1 Where v1.codice = v.codice And v1.va_tipo ILike '%Influ%' And ( v1.va_data > v.va_data Or (v1.va_data = v.va_data And v1.rowid > v.rowid )))) _Influ_d1_ ,
Max( v.va_tipo) As vaccino , Max( v.ora) As cat_code ,
( CASE Coalesce( Left( Max( v.ora) , 1 ),'') WHEN 'V' THEN ( CASE Max( v.ora)
WHEN 'VA1' THEN 'Personale sanitario e socio-sanitario'
WHEN 'VA2' THEN 'Personale delle forze di pubblica sicurezza e della protezione civile'
WHEN 'VA3' THEN 'Personale del corpo dei Vigili del fuoco Ministero Interno'
WHEN 'VA4' THEN 'Personale delle forze armate'
WHEN 'VA5' THEN 'Personale che assicura i servizi pubblici essenziali'
WHEN 'VA6' THEN 'Donatori di sangue periodici'
WHEN 'VB1' THEN 'Donne al secondo o al terzo trimestre di gravidanza'
WHEN 'VB2' THEN 'Donne che hanno partorito da meno di sei mesi o persona che assiste il bambino'
WHEN 'VC1' THEN 'Portatori di almeno una delle condizioni di rischio di età compresa tra 6 mesi e 65 anni'
WHEN 'VD1' THEN 'Bambini di età superiore a sei mesi che frequentano l''asilo nido (non incluse nei precedenti punti)'
WHEN 'VD2' THEN 'Minori che vivono in comunità o istituzionalizzati (non incluse nei precedenti punti)'
WHEN 'VD3' THEN 'Soggetti con meno di 24 mesi nati gravemente pretermine'
WHEN 'VE1' THEN 'Persone di età compresa tra 6 mesi e 17 anni (non incluse nei precedenti punti)'
WHEN 'VF1' THEN 'Persone di età compresa tra 18 e 27 anni (non incluse nei precedenti punti)'
ELSE Max( v.ora) || ' - Altra categoria' END)
WHEN 'B' THEN ( CASE Max( v.ora)
WHEN 'B9 ' THEN 'Anziani over 65'
WHEN 'B33' THEN 'Bambini mal. neurologiche o neuromuscolari'
WHEN 'B32' THEN 'Mal. con immunodepressione'
WHEN 'B31' THEN 'Patologie con programmati interventi chirurgici'
WHEN 'B30' THEN 'Sindrome da malassorbimento intestinale'
WHEN 'B29' THEN 'Mal.organi emopoietici ed emoglobinopatie'
WHEN 'B28' THEN 'Mal. renali con Insuff. Renale'
WHEN 'B27' THEN 'Mal. Tumorali'
WHEN 'B26' THEN 'Diabete mellito e mal. Metaboliche'
WHEN 'B25' THEN 'Mal. apparato cardiocircolatorio'
WHEN 'B24' THEN 'Mal. croniche app. respiratorio'
WHEN 'B23' THEN 'a pagamento'
WHEN 'B22' THEN 'Allevatori, Veterinari, ecc.'
WHEN 'B21' THEN 'Addetti a servizi pubblici di primario interesse collettivo'
WHEN 'B20' THEN 'Contatti familiari di soggetti ad alto rischio'
WHEN 'B19' THEN 'Medici e personale sanitario'
WHEN 'B18' THEN 'Ricoverati presso strutture di lungodegenza'
WHEN 'B17' THEN 'Donne in gravidanza'
WHEN 'B16' THEN 'Bambini pretermine'
WHEN 'B15' THEN 'Bambini e adolescenti in trattamento cronico con ASA'
WHEN 'B14' THEN 'Altre malattie'
WHEN 'B13' THEN 'HIV'
WHEN 'B12' THEN 'Broncopneumopatici'
WHEN 'B11' THEN 'Cardiopatici'
WHEN 'B10' THEN 'Diabetici'
ELSE Max( v.ora) || ' - Altra categoria' END)
WHEN 'H' THEN ( CASE Max( v.ora)
WHEN 'HNF' THEN 'f) Persone tra i 18 e 27 anni, non incluse nei precedenti punti'
WHEN 'HNE' THEN 'e) Persone di età compresa tra piu'' di 6 mesi e 17 anni, non incluse nei precedenti punti, sulla base degli aggiornamenti della scheda tecnica autorizzativa EMEA.'
WHEN 'HND' THEN 'd) Bambini di età superiore a 6 mesi che frequentano asilo nido; minori che vivono in comunità o istituzionalizzati.'
WHEN 'HNC' THEN 'c) Portatori di almeno una delle condizioni di rischio, di cui al comma 2 art. 1 Ord 11-09-2009, nonchÈ i soggetti fino a 24 mesi nati gravemente pretermine'
WHEN 'HNB' THEN 'b) Donne al secondo o al terzo trimestre di gravidanza: donne che hanno partorito da meno di 6 mesi o, in loro assenza, la persona che assiste il bambino in maniera continuativa'
WHEN 'HNA' THEN 'a) Pers. san. e socio-san.: PS e PC,: VVFF del Min. interno; FFAA; servizi pubbl. essenz. L. 12/6/90 n. 8146. e succ. mod. piani di continuità datori di lavoro, donatori di sangue ecc.'
ELSE Max( v.ora) || ' - Altra categoria' END)
WHEN 'A' THEN (CASE Max( v.ora)
WHEN 'A29' THEN 'Affetti da: Pat. ass. ad un aumentato rischio di aspirazione delle secrezioni respiratorie (es. m. neuromuscolari)'
WHEN 'A28' THEN 'Affetti da: Pat. per le quali sono programmati interventi chirurgici'
WHEN 'A27' THEN 'Affetti da: M. infiammatorie croniche e s. di malassorbimento intestinali'
WHEN 'A26' THEN 'Affetti da: M. cong. o acquisite che comportino carenze prod. anticorpi, immunosoppressione da farmaci o da HIV'
WHEN 'A25' THEN 'Affetti da: Tumori'
WHEN 'A24' THEN 'Affetti da: M. degli organi emopoietici ed emoglobinopatie'
WHEN 'A23' THEN 'Affetti da: M. renali con influenza renale'
WHEN 'A22' THEN 'Affetti da: Diabete mellito ed altre malattie metaboliche'
WHEN 'A21' THEN 'Affetti da: M. apparato cardio-circolatorio, comprese cardiopatie cong. e acquisite'
WHEN 'A20' THEN 'Affetti da: M. croniche apparato respiratorio (incl. Asma, displasia bronc., fibrosi cistica e BPCO)'
WHEN 'A13' THEN 'Categoria non nota'
WHEN 'A12' THEN 'Soggetti ad alto rischio'
WHEN 'A11' THEN 'Donne che saranno nel secondo e terzo trimestre di gravidanza a inizio stagione epidemica'
WHEN 'A10' THEN 'Personale che, per motivi di lavoro, è a contatto con animali che potrebbero costituire fonte di infezione da virus influenzali non umani'
WHEN 'A09' THEN 'Familiari e contatti di soggetti ad alto rischio'
WHEN 'A08' THEN 'Bambini affetti da patologie neurologiche e neuromuscolari'
WHEN 'A07' THEN 'Bambini ed adolescenti in trattamento a lungo termine con Acido Acetilsalicilico, a rischio di sindrome di Reye in caso di infezione influenzale'
WHEN 'A06' THEN 'Bambini di età superiore ai 6 mesi con condizioni morbose predisponenti alle complicanze'
WHEN 'A05' THEN 'Soggetti addetti a servizi pubblici di primario interesse collettivo e categorie di lavoratori'
WHEN 'A04' THEN 'Individui di qualunque età ricoverati presso strutture per lungodegenti'
WHEN 'A03' THEN 'Medici e personale sanitario di assistenza'
WHEN 'A02' THEN 'Adulti affetti da patologie croniche'
WHEN 'A01' THEN 'Soggetti di età pari o superiore a 65 anni'
ELSE Max( v.ora) || ' - Altra categoria' END ) ELSE NULL END ) As categoria_rischio ,
Case WHEN Trim( Left( Max( v.va_note), Position( 'I ' in ' I T2DM' ))) = 'I' THEN 'INFLUVAC'
WHEN Trim( Left( Max( v.va_note), Position( 'I ' in ' I T2DM' ))) = 'F' THEN 'FLUAD' ELSE NULL END As tipo_vaccino , Max( v.va_note)
As Patologia ,
Case Max( fatto_io) WHEN 'D' THEN ' in Office' WHEN 'E' THEN ' Domicilio' WHEN 'F' THEN ' in RSA' WHEN 'A' THEN ' Priv in Office' WHEN 'B' THEN ' Priv Domicilio' WHEN 'C' THEN ' Priv in RSA' ELSE Max( fatto_io) END As sede ,
Trim( Left( v.lotto , Position( ' ' in v.lotto)-1 )) As lotto , Left( '20', 2) || SubString( v.lotto From Length( v.lotto )-5 For 2 ) || '-' || SubString( v.lotto From Length( v.lotto )-3 For 2 ) ||'-' || Right( lotto, 2 ) As scadenza_lotto /* Trim( Right( lotto , Position( ' ' in v.lotto)-1 )) As scadenza_lotto */ ,
(Select Cast( Count( e.motese) As SmallInt) From cart_paz_ese e Where e.codice = p.codice )
_esenzioni_n1_ ,
(Select Cast( Count( e.motese) As SmallInt) From cart_paz_ese e Where e.codice = p.codice And ( dscdese Is Null Or dscdese > '2015-12-31' ) And ( e.motese Not ILike '%Reddito%' AND e.motese Not ILike '%lavor%' AND e.motese Not ILike '%Inval%'))
_esenzioni_n_ ,
Array_To_String( Array( Select e.motese From cart_paz_ese e Where e.codice = p.codice And (( dscdese Is Null Or dscdese > '2015-12-31' ) And ( e.motese Not ILike '%Reddito%' AND e.motese Not ILike '%lavor%' AND e.motese Not ILike '%Inval%'))) , ' ,') _esenzioni_tipo_ , u.codice_fiscale As cod_fisc_mmg
FROM (( pazienti p LEFT Outer JOIN nos_002 n ON p.codice = n.codice )
LEFT Outer JOIN v_utenti u ON u.userid = n.pa_medi )
LEFT Outer JOIN cart_vaccini v ON v.codice = p.codice
WHERE u.nome ILike '%' AND u.codice_regionale ILIKE '%'
AND p.pa_convenzione = 'S' AND sesso ILIKE '%'
AND Days( p.nascita, '2017/01/01')*24/8766 < 105 AND v.va_tipo ILIKE '%Influ%'
AND ( v.va_data BETWEEN '2016-10-01' AND '2016-12-31' /* AND v.ora NOT ILIKE 'A13' */
And Not Exists (Select v1.codice From cart_vaccini v1 Where v1.codice = v.codice And v1.va_tipo ILike '%Influ%' And ( v1.va_data > v.va_data Or (v1.va_data = v.va_data And v1.rowid > v.rowid ))))
GROUP BY u.codice_fiscale , p.codice_fiscale , p.cognome , p.nome , p.nascita , p.sesso , p.codice , v.lotto
ORDER BY 1 , 2 , 7 desc , 3 , 4
Saluti , Sergio , Orzivecchi , BS
Cervino- Membro Junior
- Messaggi : 245
Punti : 5282
Voti per importanza dei messaggi : 22
Data d'iscrizione : 03.03.11
Età : 70
Località : Orzivecchi (BS)
Re: statistiche influenza
Grazie a Sergio e Renato, problema risolto!
aditroia- Membro Junior
- Messaggi : 191
Punti : 5286
Voti per importanza dei messaggi : 4
Data d'iscrizione : 24.02.11
Argomenti simili
» vaccinazioni influenza con rifiuti
» vaccinazione influenza
» A proposito di influenza
» Statistiche pryvaci
» influenza e vaccinati
» vaccinazione influenza
» A proposito di influenza
» Statistiche pryvaci
» influenza e vaccinati
Permessi in questa sezione del forum:
Non puoi rispondere agli argomenti in questo forum.