Estrazione progetto ASL
3 partecipanti
Pagina 1 di 1
Estrazione progetto ASL
Mi servirebbe una query con le seguente caratteristiche di pazienti inseriti in un dato registro. L'ho creata da Milleutilità, suddividendola in tre parti, ma mi piacerebbe averla in un'unica soluzione da poter trasmettere anche agli altri Colleghi per partecipano al progetto.
DATI DA ESTRARRE PER IL DIABETE pazienti inseriti nel registro DIABETE (PERIODO 01/03/2011-31/05/2011)
1) numero dei pazienti arruolati che hanno fatto almeno una rilevazione di glicata nei mesi successivi alla data di avvio del modulo
2) numero dei pazienti arruolati che hanno fatto almeno una rilevazione di glicata nei mesi successivi alla data di avvio del modulo con valore <7
3) numero dei pazienti arruolati che hanno fatto almeno una rilevazione di glicata nei mesi successivi alla data di avvio del modulo con valore <7 e non in terapia
Grazie a quanti mi aiuteranno.
DATI DA ESTRARRE PER IL DIABETE pazienti inseriti nel registro DIABETE (PERIODO 01/03/2011-31/05/2011)
1) numero dei pazienti arruolati che hanno fatto almeno una rilevazione di glicata nei mesi successivi alla data di avvio del modulo
2) numero dei pazienti arruolati che hanno fatto almeno una rilevazione di glicata nei mesi successivi alla data di avvio del modulo con valore <7
3) numero dei pazienti arruolati che hanno fatto almeno una rilevazione di glicata nei mesi successivi alla data di avvio del modulo con valore <7 e non in terapia
Grazie a quanti mi aiuteranno.
Re: Estrazione progetto ASL
drtulino ha scritto:Mi servirebbe una query con le seguente caratteristiche di pazienti inseriti in un dato registro. L'ho creata da Milleutilità, suddividendola in tre parti, ma mi piacerebbe averla in un'unica soluzione da poter trasmettere anche agli altri Colleghi per partecipano al progetto.
DATI DA ESTRARRE PER IL DIABETE pazienti inseriti nel registro DIABETE (PERIODO 01/03/2011-31/05/2011)
1) numero dei pazienti arruolati che hanno fatto almeno una rilevazione di glicata nei mesi successivi alla data di avvio del modulo
2) numero dei pazienti arruolati che hanno fatto almeno una rilevazione di glicata nei mesi successivi alla data di avvio del modulo con valore <7
3) numero dei pazienti arruolati che hanno fatto almeno una rilevazione di glicata nei mesi successivi alla data di avvio del modulo con valore <7 e non in terapia
Grazie a quanti mi aiuteranno.
Dalla mancanza di risposte, deduco che non si possa fare un'unica query.
Re: Estrazione progetto ASL
drtulino ha scritto:drtulino ha scritto:Mi servirebbe una query con le seguente caratteristiche di pazienti inseriti in un dato registro. L'ho creata da Milleutilità, suddividendola in tre parti, ma mi piacerebbe averla in un'unica soluzione da poter trasmettere anche agli altri Colleghi per partecipano al progetto.
DATI DA ESTRARRE PER IL DIABETE pazienti inseriti nel registro DIABETE (PERIODO 01/03/2011-31/05/2011)
1) numero dei pazienti arruolati che hanno fatto almeno una rilevazione di glicata nei mesi successivi alla data di avvio del modulo
2) numero dei pazienti arruolati che hanno fatto almeno una rilevazione di glicata nei mesi successivi alla data di avvio del modulo con valore <7
3) numero dei pazienti arruolati che hanno fatto almeno una rilevazione di glicata nei mesi successivi alla data di avvio del modulo con valore <7 e non in terapia
Grazie a quanti mi aiuteranno.
Dalla mancanza di risposte, deduco che non si possa fare un'unica query.
Non demordere. E' un pò difficile ma... Aspetta un'oretta
Leonardo Draghini
draleo83- Membro Junior
- Messaggi : 225
Punti : 5309
Voti per importanza dei messaggi : 25
Data d'iscrizione : 21.02.11
Re: Estrazione progetto ASL
Ciao
ti rispondo solo ora perchè ho lavori vari in corso. Naturalmente si può fare, alla brutta con UNION ALL, o con subquery (ho fatto un tentativo ma mi vengono cose strane...) Se mi precisi cosa intendi per data avvio del modulo ti posso postare una bozza.
giampiero
ti rispondo solo ora perchè ho lavori vari in corso. Naturalmente si può fare, alla brutta con UNION ALL, o con subquery (ho fatto un tentativo ma mi vengono cose strane...) Se mi precisi cosa intendi per data avvio del modulo ti posso postare una bozza.
giampiero
GiampiMaz- Membro Junior
- Messaggi : 122
Punti : 5189
Voti per importanza dei messaggi : 33
Data d'iscrizione : 20.02.11
Re: Estrazione progetto ASL
drtulino ha scritto:Mi servirebbe una query con le seguente caratteristiche di pazienti inseriti in un dato registro. L'ho creata da Milleutilità, suddividendola in tre parti, ma mi piacerebbe averla in un'unica soluzione da poter trasmettere anche agli altri Colleghi per partecipano al progetto.
DATI DA ESTRARRE PER IL DIABETE pazienti inseriti nel registro DIABETE (PERIODO 01/03/2011-31/05/2011)
1) numero dei pazienti arruolati che hanno fatto almeno una rilevazione di glicata nei mesi successivi alla data di avvio del modulo
2) numero dei pazienti arruolati che hanno fatto almeno una rilevazione di glicata nei mesi successivi alla data di avvio del modulo con valore <7
3) numero dei pazienti arruolati che hanno fatto almeno una rilevazione di glicata nei mesi successivi alla data di avvio del modulo con valore <7 e non in terapia
Grazie a quanti mi aiuteranno.
ecco 2 query che dovrebbero fare quanto richiesto (se ho capito bene quello che vuoi)
Io non ho mai utilizzato i registri e, quindi, ne ho creato appositamente uno con 4-5 paz
per provare le query e ho utilizzato quello chiamato Diabete tipo 2 , che è codificato come REG0009
Se però tu metti i diabetici in un altro registro, allora nella query devi sostituire questo codice
con quello usato da te
La seguente conta quanti diabetici arruolati nel registro hanno HB1 <=7 oppure > 7 e quanti sono in terapia oppure no;
-------------------------------------------------------
SELECT
IF a. RisultN <=7 and a.codice IN
(select t.codice from V_terapie t Where t.atc like 'A10%' AND t.codice=a.codice AND Count(distinct datavisita ) > 0)
THEN '1: <= 7 in terapia '
ELSE IF a. RisultN <=7 and a.codice NOT IN
(SELECT t.codice from V_terapie t Where ATC like 'A10%'and t.codice=a.codice AND Count(distinct datavisita )> 0)
THEN '2: <= 7 senza terapia '
ELSE IF a. RisultN > 7 and a.codice IN
(select t.codice from V_terapie t Where t.atc like 'A10%' AND t.codice=a.codice AND Count(distinct datavisita ) > 0)
THEN '3: > 7 in terapia'
ELSE IF a. RisultN > 7 and a.codice NOT IN
(select t.codice from V_terapie t Where t.atc like 'A10%' AND t.codice=a.codice AND Count(distinct datavisita ) > 0)
THEN '4: > 7 senza terapia' ENDIF
ENDIF
ENDIF
ENDIF
as emog_glic,
count(a.codice) as num_paz
FROM V_accertamenti a
where a.accertamento = 'emoglobina glicata' and a. risultN is not null
and datavisita =(SELECT MAX(datavisita) FROM v_accertamenti a1
WHERE a1.accertamento = 'emoglobina glicata' AND
a1.codice =a.codice AND a1.risultN is not null ) and a.codice IN (select pip.codice from cart_concessioni_pip pip
where pip.Incent_Code like 'REG0009')
GROUP BY emog_glic
UNION
SELECT 'arruolati', count(codice)as num_paz
from cart_concessioni_pip pip
where pip.Incent_Code like 'REG0009'
order by 1
----------------------------------------------------------------------
La seconda serve per una controprova:estrae i nomi dei paz indicando il val dell'emoglobina glic e se sono in terapia
----------------------------------------------------------------------
SELECT DISTINCT a.cognome,a.nome,a. accertamento,
(SELECT MAX(datavisita) FROM v_accertamenti a1 WHERE a1.accertamento = 'emoglobina glicata' AND a1.codice =a.codice AND
a1.risultN is not null ) AS ult_data,
(SELECT risultS from v_accertamenti a1 WHERE accertamento = 'emoglobina glicata' AND
a1. risultN is not null AND
a1.datavisita = ult_data AND a1.codice =a.codice) AS ult_val,
(select if Count(distinct t.datavisita )>0 then 'SI' Else 'NO' ENDIF from V_terapie t Where t.atc like 'A10%' AND t.codice=a.codice)as terap
FROM V_accertamenti a
where a.accertamento = 'emoglobina glicata'
AND a.risultN is not null
and a.codice IN (select pip.codice
from cart_concessioni_pip pip
where pip.Incent_Code like 'REG0009')
order by 1,2
----------------------------------------------------------------
Io preferisco usare le viste (quando è possibile): sono più facili da realizzare, anche se più lente; però preferisco attendere un minuto in più al momento del lancio,piuttosto che ammattirmi per 2 ore nel trovare i nomi dei campi da utilizzare per gli archivi
Leonardo Draghini
PS: mi dite come si fa a formattare decentemente quello che scrivo? Le query andrebbero formattate decentemente (con i rientri giusti ecc)per facilitarne la comprensione e la lettura;cosa che quì non riesco a fare
draleo83- Membro Junior
- Messaggi : 225
Punti : 5309
Voti per importanza dei messaggi : 25
Data d'iscrizione : 21.02.11
Re: Estrazione progetto ASL
Mi sono dimenticato di dire che le query estraggono SOLO i diabetici (iscritti nel registro) che hanno ALMENO una misurazione dell'emoglobina glicata nel periodo prescelto
Quelli che non hanno tale misurazione non vengono estratti (visto che -mi è sembrato di capire- Renato vuole dividerli in base al valore dell'Hbglicata : se questo valore non è stato rilevato come fai a collocarli nella fascia giusta ?
Leonardo Draghini
Quelli che non hanno tale misurazione non vengono estratti (visto che -mi è sembrato di capire- Renato vuole dividerli in base al valore dell'Hbglicata : se questo valore non è stato rilevato come fai a collocarli nella fascia giusta ?
Leonardo Draghini
draleo83- Membro Junior
- Messaggi : 225
Punti : 5309
Voti per importanza dei messaggi : 25
Data d'iscrizione : 21.02.11
Re: Estrazione progetto ASL
GiampiMaz ha scritto:Ciao
ti rispondo solo ora perchè ho lavori vari in corso. Naturalmente si può fare, alla brutta con UNION ALL, o con subquery (ho fatto un tentativo ma mi vengono cose strane...) Se mi precisi cosa intendi per data avvio del modulo ti posso postare una bozza.
giampiero
la data in questo caso è dal 01/03/2011 al 31/05/2011, però mi viene permesso di selezionarla da "Centrale statistiche" insieme al registro.
Re: Estrazione progetto ASL
draleo83 ha scritto:La seconda serve per una controprova:estrae i nomi dei paz indicando il val dell'emoglobina glic e se sono in terapia
SELECT DISTINCT a.cognome,a.nome,a. accertamento,
(SELECT MAX(datavisita) FROM v_accertamenti a1 WHERE a1.accertamento = 'emoglobina glicata' AND a1.codice =a.codice AND
a1.risultN is not null ) AS ult_data,
(SELECT risultS from v_accertamenti a1 WHERE accertamento = 'emoglobina glicata' AND
a1. risultN is not null AND
a1.datavisita = ult_data AND a1.codice =a.codice) AS ult_val,
(select if Count(distinct t.datavisita )>0 then 'SI' Else 'NO' ENDIF from V_terapie t Where t.atc like 'A10%' AND t.codice=a.codice)as terap
FROM V_accertamenti a
where a.accertamento = 'emoglobina glicata'
AND a.risultN is not null
and a.codice IN (select pip.codice
from cart_concessioni_pip pip
where pip.Incent_Code like 'REG0009')
order by 1,2
Questa mi va benissimo ed il registro lo posso selezionare quando lancio la query da Centrale statistiche.
Grazie Leo, sei il solito GRANDE.
Re: Estrazione progetto ASL
Senza voler entrare in concorrenza col Grande Draghini, ti invio questa query che usa le tabelle e quindi purtroppo non risente dei settaggi di centrale statistiche, gli eventuali cambiamenti vanno fatti sulla query stessa.
Usa il registro Diabete mellito, se ti serve un altro occorre modificare la query.
Conta i pazienti iscritti al registro tra le date che hai indicate e quelli che hanno eseguito hb glicata sempre tra le date indicate ecc.
sostituire in ogni query XXXXX col codice per la medicina di gruppo o togliere la riga.
La tecnica molto brutale è di fare le singole query e poi unirle, cercherò di studiare quella di Draghini per imparare come fa ad incolonnare i risultati .
giampiero
SELECT CAST ('2011-03-01' AS DATE) AS inizio, CAST ('2011-05-31' AS DATE) AS fine, 'Totale' as nome, count (p.codice) as ris
FROM pazienti p, nos_002 n,cart_concessioni_pip pip
WHERE
p.codice=n.codice AND p.codice=pip.codice
AND pip.Incent_Code like 'REG0015'
AND data_autorizzazione between inizio and fine
AND n.pa_medi = 'XXXXXX'
UNION ALL
SELECT CAST ('2011-03-01' AS DATE) AS inizio, CAST ('2011-05-31' AS DATE) AS fine, 'Fatta Hb-gl' as nome, count (p.codice) as ris
FROM pazienti p, nos_002 n,cart_concessioni_pip pip,cart_accert a
WHERE
p.codice=n.codice AND p.codice=pip.codice and p.codice=a.codice
AND a.ac_code like ' 703'
AND a.data_open between inizio and fine
AND ( a.ac_val is not null OR a.ac_val <>'')
AND pip.Incent_Code like 'REG0015'
AND data_autorizzazione between inizio and fine
AND n.pa_medi = 'XXXXXX'
UNION ALL
SELECT CAST ('2011-03-01' AS DATE) AS inizio, CAST ('2011-05-31' AS DATE) AS fine, ' Hb-gl-min-7' as nome, count (p.codice) as ris
FROM pazienti p, nos_002 n,cart_concessioni_pip pip,cart_accert a
WHERE
p.codice=n.codice AND p.codice=pip.codice and p.codice=a.codice
AND a.ac_code like ' 703'
AND a.data_open between inizio and fine
AND a.ac_val <= 7
AND pip.Incent_Code like 'REG0015'
AND data_autorizzazione between inizio and fine
AND n.pa_medi = 'XXXXXX'
UNION ALL
SELECT CAST ('2011-03-01' AS DATE) AS inizio, CAST ('2011-05-31' AS DATE) AS fine, ' Hb-gl-min-7-non-ter' as nome, count (p.codice) as ris
FROM pazienti p, nos_002 n,cart_concessioni_pip pip,cart_accert a
WHERE
p.codice=n.codice AND p.codice=pip.codice and p.codice=a.codice
AND a.ac_code like ' 703'
AND a.data_open between inizio and fine
AND a.ac_val <= 7
AND p.codice NOT IN (select ca.codice from cart_terap ca where ca.co_atc like 'A10%')
AND pip.Incent_Code like 'REG0015'
AND data_autorizzazione between inizio and fine
AND n.pa_medi = 'XXXXX'
Usa il registro Diabete mellito, se ti serve un altro occorre modificare la query.
Conta i pazienti iscritti al registro tra le date che hai indicate e quelli che hanno eseguito hb glicata sempre tra le date indicate ecc.
sostituire in ogni query XXXXX col codice per la medicina di gruppo o togliere la riga.
La tecnica molto brutale è di fare le singole query e poi unirle, cercherò di studiare quella di Draghini per imparare come fa ad incolonnare i risultati .
giampiero
SELECT CAST ('2011-03-01' AS DATE) AS inizio, CAST ('2011-05-31' AS DATE) AS fine, 'Totale' as nome, count (p.codice) as ris
FROM pazienti p, nos_002 n,cart_concessioni_pip pip
WHERE
p.codice=n.codice AND p.codice=pip.codice
AND pip.Incent_Code like 'REG0015'
AND data_autorizzazione between inizio and fine
AND n.pa_medi = 'XXXXXX'
UNION ALL
SELECT CAST ('2011-03-01' AS DATE) AS inizio, CAST ('2011-05-31' AS DATE) AS fine, 'Fatta Hb-gl' as nome, count (p.codice) as ris
FROM pazienti p, nos_002 n,cart_concessioni_pip pip,cart_accert a
WHERE
p.codice=n.codice AND p.codice=pip.codice and p.codice=a.codice
AND a.ac_code like ' 703'
AND a.data_open between inizio and fine
AND ( a.ac_val is not null OR a.ac_val <>'')
AND pip.Incent_Code like 'REG0015'
AND data_autorizzazione between inizio and fine
AND n.pa_medi = 'XXXXXX'
UNION ALL
SELECT CAST ('2011-03-01' AS DATE) AS inizio, CAST ('2011-05-31' AS DATE) AS fine, ' Hb-gl-min-7' as nome, count (p.codice) as ris
FROM pazienti p, nos_002 n,cart_concessioni_pip pip,cart_accert a
WHERE
p.codice=n.codice AND p.codice=pip.codice and p.codice=a.codice
AND a.ac_code like ' 703'
AND a.data_open between inizio and fine
AND a.ac_val <= 7
AND pip.Incent_Code like 'REG0015'
AND data_autorizzazione between inizio and fine
AND n.pa_medi = 'XXXXXX'
UNION ALL
SELECT CAST ('2011-03-01' AS DATE) AS inizio, CAST ('2011-05-31' AS DATE) AS fine, ' Hb-gl-min-7-non-ter' as nome, count (p.codice) as ris
FROM pazienti p, nos_002 n,cart_concessioni_pip pip,cart_accert a
WHERE
p.codice=n.codice AND p.codice=pip.codice and p.codice=a.codice
AND a.ac_code like ' 703'
AND a.data_open between inizio and fine
AND a.ac_val <= 7
AND p.codice NOT IN (select ca.codice from cart_terap ca where ca.co_atc like 'A10%')
AND pip.Incent_Code like 'REG0015'
AND data_autorizzazione between inizio and fine
AND n.pa_medi = 'XXXXX'
GiampiMaz- Membro Junior
- Messaggi : 122
Punti : 5189
Voti per importanza dei messaggi : 33
Data d'iscrizione : 20.02.11
Re: Estrazione progetto ASL
Beh...una disattenzione (che può falsare il num degli arruolati) nella prima query l'ho commessa: non ho considerato che esistono le medicine di gruppo . Quindi l'ultima parte della prima query va sostituita con
UNION
SELECT 'arruolati', count(distinct codice)as num_paz
from cart_concessioni_pip pip
where pip.Incent_Code like 'REG0009'
AND pip. userid='XXXXXX'
Dove XXXXX è il proprio user id
nella versione precedente invece venivano contati gli arruolati del registro di tutti i medici.
Ripeto inoltre che io ho utilizzato per provare le query il registro :chiamato Diabete tipo 2 , che è codificato come REG0009
Invece se voi utilizzate il registro chiamato : Diabete Mellito (per interderci quello che è sotto il registro BPCO)
allora dovete sostituire in tutte le query il codice REG0009 con REG0015
Leonardo Draghini
UNION
SELECT 'arruolati', count(distinct codice)as num_paz
from cart_concessioni_pip pip
where pip.Incent_Code like 'REG0009'
AND pip. userid='XXXXXX'
Dove XXXXX è il proprio user id
nella versione precedente invece venivano contati gli arruolati del registro di tutti i medici.
Ripeto inoltre che io ho utilizzato per provare le query il registro :chiamato Diabete tipo 2 , che è codificato come REG0009
Invece se voi utilizzate il registro chiamato : Diabete Mellito (per interderci quello che è sotto il registro BPCO)
allora dovete sostituire in tutte le query il codice REG0009 con REG0015
Leonardo Draghini
draleo83- Membro Junior
- Messaggi : 225
Punti : 5309
Voti per importanza dei messaggi : 25
Data d'iscrizione : 21.02.11
Re: Estrazione progetto ASL
La fretta è cattiva consigliera, e rivedendo la mia query con calma vi ho trovati diversi errori. Spero di aver corretto i più grossi.
Ho rispettato le clausole che hai indicato, ma mi sembra riduttivo cercare i pazienti che hanno fatto l'Hb glicata NEL RISTRETTO LASSO DI TEMPO 1/3 - 31/5 (questo mi è sembrato tu abbia chiesto).
ciao
giampiero
SELECT CAST ('2011-03-01' AS DATE) AS inizio, CAST ('2011-05-31' AS DATE) AS fine, 'Totale' as nome, count (p.codice) as ris
FROM pazienti p, nos_002 n,cart_concessioni_pip pip
WHERE
p.codice=n.codice AND p.codice=pip.codice
AND pip.Incent_Code like 'REG0015'
AND data_autorizzazione between inizio and fine
AND n.pa_medi = 'XXXXX'
UNION ALL
SELECT CAST ('2011-03-01' AS DATE) AS inizio, CAST ('2011-05-31' AS DATE) AS fine, 'Fatta Hb-gl' as nome, count (distinct p.codice) as ris
FROM pazienti p, nos_002 n,cart_concessioni_pip pip,cart_accert a
WHERE
p.codice=n.codice AND p.codice=pip.codice and p.codice=a.codice
AND a.ac_code like ' 703'
AND a.data_open between inizio and fine
AND ( a.ac_val is not null OR a.ac_val <>'')
AND pip.Incent_Code like 'REG0015'
AND data_autorizzazione between inizio and fine
AND n.pa_medi = 'XXXXX'
UNION ALL
SELECT CAST ('2011-03-01' AS DATE) AS inizio, CAST ('2011-05-31' AS DATE) AS fine, ' Hb-gl-min=7' as nome, count (distinct p.codice) as ris
FROM pazienti p, nos_002 n,cart_concessioni_pip pip,cart_accert a
WHERE
p.codice=n.codice AND p.codice=pip.codice and p.codice=a.codice
AND a.ac_code like ' 703'
And a.ac_val Is Not Null And Not Exists (Select a1.codice From cart_accert a1 Where a1.codice = a.codice And a1.ac_code Like ' 703' And a1.data_open < fine And (a1.data_open > a.data_open Or (a1.data_open = a.data_open And a1.rowid > a.rowid)) And a1.ac_val Is Not Null) And a.data_open between inizio and fine
AND a.ac_val <= '7'
AND pip.Incent_Code like 'REG0015'
AND data_autorizzazione between inizio and fine
AND n.pa_medi = 'XXXXXX'
UNION ALL
SELECT CAST ('2011-03-01' AS DATE) AS inizio, CAST ('2011-05-31' AS DATE) AS fine, ' Hb-gl-min=7-non-ter' as nome, count (distinct p.codice) as ris
FROM pazienti p, nos_002 n,cart_concessioni_pip pip,cart_accert a
WHERE
p.codice=n.codice AND p.codice=pip.codice and p.codice=a.codice
AND a.ac_code like ' 703'
And a.ac_val Is Not Null And Not Exists (Select a1.codice From cart_accert a1 Where a1.codice = a.codice And a1.ac_code Like ' 703' And a1.data_open < fine And (a1.data_open > a.data_open Or (a1.data_open = a.data_open And a1.rowid > a.rowid)) And a1.ac_val Is Not Null) And a.data_open between inizio and fine
AND a.ac_val <='7'
AND p.codice NOT IN (select ca.codice from cart_terap ca where ca.co_atc like 'A10%')
AND pip.Incent_Code like 'REG0015'
AND data_autorizzazione between inizio and fine
AND n.pa_medi = 'XXXXX'
Ho rispettato le clausole che hai indicato, ma mi sembra riduttivo cercare i pazienti che hanno fatto l'Hb glicata NEL RISTRETTO LASSO DI TEMPO 1/3 - 31/5 (questo mi è sembrato tu abbia chiesto).
ciao
giampiero
SELECT CAST ('2011-03-01' AS DATE) AS inizio, CAST ('2011-05-31' AS DATE) AS fine, 'Totale' as nome, count (p.codice) as ris
FROM pazienti p, nos_002 n,cart_concessioni_pip pip
WHERE
p.codice=n.codice AND p.codice=pip.codice
AND pip.Incent_Code like 'REG0015'
AND data_autorizzazione between inizio and fine
AND n.pa_medi = 'XXXXX'
UNION ALL
SELECT CAST ('2011-03-01' AS DATE) AS inizio, CAST ('2011-05-31' AS DATE) AS fine, 'Fatta Hb-gl' as nome, count (distinct p.codice) as ris
FROM pazienti p, nos_002 n,cart_concessioni_pip pip,cart_accert a
WHERE
p.codice=n.codice AND p.codice=pip.codice and p.codice=a.codice
AND a.ac_code like ' 703'
AND a.data_open between inizio and fine
AND ( a.ac_val is not null OR a.ac_val <>'')
AND pip.Incent_Code like 'REG0015'
AND data_autorizzazione between inizio and fine
AND n.pa_medi = 'XXXXX'
UNION ALL
SELECT CAST ('2011-03-01' AS DATE) AS inizio, CAST ('2011-05-31' AS DATE) AS fine, ' Hb-gl-min=7' as nome, count (distinct p.codice) as ris
FROM pazienti p, nos_002 n,cart_concessioni_pip pip,cart_accert a
WHERE
p.codice=n.codice AND p.codice=pip.codice and p.codice=a.codice
AND a.ac_code like ' 703'
And a.ac_val Is Not Null And Not Exists (Select a1.codice From cart_accert a1 Where a1.codice = a.codice And a1.ac_code Like ' 703' And a1.data_open < fine And (a1.data_open > a.data_open Or (a1.data_open = a.data_open And a1.rowid > a.rowid)) And a1.ac_val Is Not Null) And a.data_open between inizio and fine
AND a.ac_val <= '7'
AND pip.Incent_Code like 'REG0015'
AND data_autorizzazione between inizio and fine
AND n.pa_medi = 'XXXXXX'
UNION ALL
SELECT CAST ('2011-03-01' AS DATE) AS inizio, CAST ('2011-05-31' AS DATE) AS fine, ' Hb-gl-min=7-non-ter' as nome, count (distinct p.codice) as ris
FROM pazienti p, nos_002 n,cart_concessioni_pip pip,cart_accert a
WHERE
p.codice=n.codice AND p.codice=pip.codice and p.codice=a.codice
AND a.ac_code like ' 703'
And a.ac_val Is Not Null And Not Exists (Select a1.codice From cart_accert a1 Where a1.codice = a.codice And a1.ac_code Like ' 703' And a1.data_open < fine And (a1.data_open > a.data_open Or (a1.data_open = a.data_open And a1.rowid > a.rowid)) And a1.ac_val Is Not Null) And a.data_open between inizio and fine
AND a.ac_val <='7'
AND p.codice NOT IN (select ca.codice from cart_terap ca where ca.co_atc like 'A10%')
AND pip.Incent_Code like 'REG0015'
AND data_autorizzazione between inizio and fine
AND n.pa_medi = 'XXXXX'
GiampiMaz- Membro Junior
- Messaggi : 122
Punti : 5189
Voti per importanza dei messaggi : 33
Data d'iscrizione : 20.02.11
Re: Estrazione progetto ASL
GiampiMaz ha scritto:La fretta è cattiva consigliera, e rivedendo la mia query con calma vi ho trovati diversi errori. Spero di aver corretto i più grossi.
Ho rispettato le clausole che hai indicato, ma mi sembra riduttivo cercare i pazienti che hanno fatto l'Hb glicata NEL RISTRETTO LASSO DI TEMPO 1/3 - 31/5 (questo mi è sembrato tu abbia chiesto).
ciao
giampiero
SELECT CAST ('2011-03-01' AS DATE) AS inizio, CAST ('2011-05-31' AS DATE) AS fine, 'Totale' as nome, count (p.codice) as ris
FROM pazienti p, nos_002 n,cart_concessioni_pip pip
WHERE
p.codice=n.codice AND p.codice=pip.codice
AND pip.Incent_Code like 'REG0015'
AND data_autorizzazione between inizio and fine
AND n.pa_medi = 'XXXXX'
UNION ALL
SELECT CAST ('2011-03-01' AS DATE) AS inizio, CAST ('2011-05-31' AS DATE) AS fine, 'Fatta Hb-gl' as nome, count (distinct p.codice) as ris
FROM pazienti p, nos_002 n,cart_concessioni_pip pip,cart_accert a
WHERE
p.codice=n.codice AND p.codice=pip.codice and p.codice=a.codice
AND a.ac_code like ' 703'
AND a.data_open between inizio and fine
AND ( a.ac_val is not null OR a.ac_val <>'')
AND pip.Incent_Code like 'REG0015'
AND data_autorizzazione between inizio and fine
AND n.pa_medi = 'XXXXX'
UNION ALL
SELECT CAST ('2011-03-01' AS DATE) AS inizio, CAST ('2011-05-31' AS DATE) AS fine, ' Hb-gl-min=7' as nome, count (distinct p.codice) as ris
FROM pazienti p, nos_002 n,cart_concessioni_pip pip,cart_accert a
WHERE
p.codice=n.codice AND p.codice=pip.codice and p.codice=a.codice
AND a.ac_code like ' 703'
And a.ac_val Is Not Null And Not Exists (Select a1.codice From cart_accert a1 Where a1.codice = a.codice And a1.ac_code Like ' 703' And a1.data_open < fine And (a1.data_open > a.data_open Or (a1.data_open = a.data_open And a1.rowid > a.rowid)) And a1.ac_val Is Not Null) And a.data_open between inizio and fine
AND a.ac_val <= '7'
AND pip.Incent_Code like 'REG0015'
AND data_autorizzazione between inizio and fine
AND n.pa_medi = 'XXXXXX'
UNION ALL
SELECT CAST ('2011-03-01' AS DATE) AS inizio, CAST ('2011-05-31' AS DATE) AS fine, ' Hb-gl-min=7-non-ter' as nome, count (distinct p.codice) as ris
FROM pazienti p, nos_002 n,cart_concessioni_pip pip,cart_accert a
WHERE
p.codice=n.codice AND p.codice=pip.codice and p.codice=a.codice
AND a.ac_code like ' 703'
And a.ac_val Is Not Null And Not Exists (Select a1.codice From cart_accert a1 Where a1.codice = a.codice And a1.ac_code Like ' 703' And a1.data_open < fine And (a1.data_open > a.data_open Or (a1.data_open = a.data_open And a1.rowid > a.rowid)) And a1.ac_val Is Not Null) And a.data_open between inizio and fine
AND a.ac_val <='7'
AND p.codice NOT IN (select ca.codice from cart_terap ca where ca.co_atc like 'A10%')
AND pip.Incent_Code like 'REG0015'
AND data_autorizzazione between inizio and fine
AND n.pa_medi = 'XXXXX'
L'estrazione mi dà zero risultati, mentre nell'archivio ne ho 18 pazienti nel range di tempo tra il 1/3/2011 ed il 31/3/2011.
Re: Estrazione progetto ASL
Ciao
in quale registro hai iscritto i pazienti?
hai sostituito a XXXX il tuo codice di medicina di gruppo?
controlla poi scrivi
giampiero
in quale registro hai iscritto i pazienti?
hai sostituito a XXXX il tuo codice di medicina di gruppo?
controlla poi scrivi
giampiero
GiampiMaz- Membro Junior
- Messaggi : 122
Punti : 5189
Voti per importanza dei messaggi : 33
Data d'iscrizione : 20.02.11
Re: Estrazione progetto ASL
GiampiMaz ha scritto:Ciao
in quale registro hai iscritto i pazienti?
hai sostituito a XXXX il tuo codice di medicina di gruppo?
controlla poi scrivi
giampiero
Ciao Giampiero, ho inserito il mio codice medico, ma non capisco da dove vedere il numero di registro?
Re: Estrazione progetto ASL
se non sei in medicina di gruppo puoi togliere le righe con XXXXX
in ogni modo il Codice per la medicina di gruppo lo trovi in Centrale di controllo / RRS locale / visualizza CodiceMG
giampiero
in ogni modo il Codice per la medicina di gruppo lo trovi in Centrale di controllo / RRS locale / visualizza CodiceMG
giampiero
GiampiMaz- Membro Junior
- Messaggi : 122
Punti : 5189
Voti per importanza dei messaggi : 33
Data d'iscrizione : 20.02.11
Re: Estrazione progetto ASL
il registro dammi il nome esatto o vedi questi sono i codici
REG0001 progetto MITT
REG0002 TAO (Terapia Anticoagulante Orale)
REG0003 Registro Personale N° 1
REG0004 Registro Personale N° 2
REG0005 Registro Personale N° 3
REG0006 Registro Personale N° 4
REG0007 progetto SIR
REG0008 Diabete tipo 1
REG0009 Diabete tipo 2
REG0010 Scompenso cardiaco
REG0011 Vaccinazione influenza
REG0012 Ipertensione
REG0013 BPCO
REG0014 Sindrome dismetabolica
REG0015 Diabete mellito
REG0016 Rischio cardiovascolare elevato
REG0017 Angioplastica coronarico o Bypass
REG0018 Protesi ginocchio
REG0019 Protesi anca
REG0020 Protesi valvole cardiache
REG0021 Pazienti fragili
REG0022 K prostata
REG0023 K mammella
REG0024 K
REG0025 Report da inviare ad ASL
REG0026 Anagrafiche non presenti nell'archivio ASL
REG0027 Diabetico in gestione integrata
REG0028 Nuove anagrafiche inserite dall'archivio ASL
REG0029 Anagrafiche variate dall'archivio ASL
REG0001 progetto MITT
REG0002 TAO (Terapia Anticoagulante Orale)
REG0003 Registro Personale N° 1
REG0004 Registro Personale N° 2
REG0005 Registro Personale N° 3
REG0006 Registro Personale N° 4
REG0007 progetto SIR
REG0008 Diabete tipo 1
REG0009 Diabete tipo 2
REG0010 Scompenso cardiaco
REG0011 Vaccinazione influenza
REG0012 Ipertensione
REG0013 BPCO
REG0014 Sindrome dismetabolica
REG0015 Diabete mellito
REG0016 Rischio cardiovascolare elevato
REG0017 Angioplastica coronarico o Bypass
REG0018 Protesi ginocchio
REG0019 Protesi anca
REG0020 Protesi valvole cardiache
REG0021 Pazienti fragili
REG0022 K prostata
REG0023 K mammella
REG0024 K
REG0025 Report da inviare ad ASL
REG0026 Anagrafiche non presenti nell'archivio ASL
REG0027 Diabetico in gestione integrata
REG0028 Nuove anagrafiche inserite dall'archivio ASL
REG0029 Anagrafiche variate dall'archivio ASL
GiampiMaz- Membro Junior
- Messaggi : 122
Punti : 5189
Voti per importanza dei messaggi : 33
Data d'iscrizione : 20.02.11
Re: Estrazione progetto ASL
GiampiMaz ha scritto:il registro dammi il nome esatto o vedi questi sono i codici
REG0001 progetto MITT
REG0002 TAO (Terapia Anticoagulante Orale)
REG0003 Registro Personale N° 1
REG0004 Registro Personale N° 2
REG0005 Registro Personale N° 3
REG0006 Registro Personale N° 4
REG0007 progetto SIR
REG0008 Diabete tipo 1
REG0009 Diabete tipo 2
REG0010 Scompenso cardiaco
REG0011 Vaccinazione influenza
REG0012 Ipertensione
REG0013 BPCO
REG0014 Sindrome dismetabolica
REG0015 Diabete mellito
REG0016 Rischio cardiovascolare elevato
REG0017 Angioplastica coronarico o Bypass
REG0018 Protesi ginocchio
REG0019 Protesi anca
REG0020 Protesi valvole cardiache
REG0021 Pazienti fragili
REG0022 K prostata
REG0023 K mammella
REG0024 K
REG0025 Report da inviare ad ASL
REG0026 Anagrafiche non presenti nell'archivio ASL
REG0027 Diabetico in gestione integrata
REG0028 Nuove anagrafiche inserite dall'archivio ASL
REG0029 Anagrafiche variate dall'archivio ASL
Il registro in questione è il REG0009 Diabete tipo 2, ma Ti premetto che avevo già sostituito questo numero (ricavato dalla query di Leonardo) e sostituito con quello della Tua query, ma il risultato che mi dà è sempre zero. Sicuramente sbaglio da qualche parte, ma non riesco a capire dove.
Grazie davvero per il tempo che mi stai dedicando.
Re: Estrazione progetto ASL
nessun problema.
andiamo per ordine, se NESSUNA delle singole query dà risultato diverso da 0 prova con la prima:
(quella che conta i pazienti nel registro)
TOGLI LA RIGA con XXXX (nel caso tu non abbia messo il codice giusto)
se non funziona controlla che il registro sia ESATTAMENTE AND pip.Incent_Code like 'REG0009'
(potresti aver scritto male il registro, magari uno zero in meno)
se non funziona allunga il lasso di tempo ('2000-03-01' AS DATE) AS inizio o ('2011-12-01' AS DATE) AS fine
poi dimmi
giampiero
andiamo per ordine, se NESSUNA delle singole query dà risultato diverso da 0 prova con la prima:
(quella che conta i pazienti nel registro)
TOGLI LA RIGA con XXXX (nel caso tu non abbia messo il codice giusto)
se non funziona controlla che il registro sia ESATTAMENTE AND pip.Incent_Code like 'REG0009'
(potresti aver scritto male il registro, magari uno zero in meno)
se non funziona allunga il lasso di tempo ('2000-03-01' AS DATE) AS inizio o ('2011-12-01' AS DATE) AS fine
poi dimmi
giampiero
GiampiMaz- Membro Junior
- Messaggi : 122
Punti : 5189
Voti per importanza dei messaggi : 33
Data d'iscrizione : 20.02.11
Re: Estrazione progetto ASL
GiampiMaz ha scritto:nessun problema.
andiamo per ordine, se NESSUNA delle singole query dà risultato diverso da 0 prova con la prima:
(quella che conta i pazienti nel registro)
TOGLI LA RIGA con XXXX (nel caso tu non abbia messo il codice giusto)
se non funziona controlla che il registro sia ESATTAMENTE AND pip.Incent_Code like 'REG0009'
(potresti aver scritto male il registro, magari uno zero in meno)
se non funziona allunga il lasso di tempo ('2000-03-01' AS DATE) AS inizio o ('2011-12-01' AS DATE) AS fine
poi dimmi
giampiero
Ho fatto un pò di prove, ma il risultato è sempre uguale. Se seleziono io il registro dalla "Centrale statistiche" mi trova i 52 iscritti a registro, ma poi il risultato è zero, come da allegato, nelle altre righe della query.
- File allegati
Re: Estrazione progetto ASL
A questo punto ti direi di usare quelle di Draghini (a proposito se ci leggi non è che potresti darci la tua opinione? )
Ma se vuoi continuare a provare io sono disponibile.
In questi casi in genere frammento la query aggiungendo un'istruzione alla volta, ma almeno bisogna partire da qualcosa di funzionante.
SELECT CAST ('2011-03-01' AS DATE) AS inizio, CAST ('2011-05-31' AS DATE) AS fine, 'Totale' as nome, count (p.codice) as ris
FROM pazienti p, nos_002 n, cart_concessioni_pip pip
WHERE
p.codice=n.codice AND p.codice=pip.codice
AND pip.Incent_Code like 'REG0009'
AND data_autorizzazione between inizio and fine
primo passo: funziona? NO
secondo passo:
SELECT count (p.codice) as ris
FROM pazienti p, nos_002 n, cart_concessioni_pip pip
WHERE
p.codice=n.codice AND p.codice=pip.codice
AND pip.Incent_Code like 'REG0009'
funziona? NO lasciamo perdere, forse il tuo millewin ha cambiato i nomi dei registri!
una di queste funziona? partiamo da lì...
giampiero
Ma se vuoi continuare a provare io sono disponibile.
In questi casi in genere frammento la query aggiungendo un'istruzione alla volta, ma almeno bisogna partire da qualcosa di funzionante.
SELECT CAST ('2011-03-01' AS DATE) AS inizio, CAST ('2011-05-31' AS DATE) AS fine, 'Totale' as nome, count (p.codice) as ris
FROM pazienti p, nos_002 n, cart_concessioni_pip pip
WHERE
p.codice=n.codice AND p.codice=pip.codice
AND pip.Incent_Code like 'REG0009'
AND data_autorizzazione between inizio and fine
primo passo: funziona? NO
secondo passo:
SELECT count (p.codice) as ris
FROM pazienti p, nos_002 n, cart_concessioni_pip pip
WHERE
p.codice=n.codice AND p.codice=pip.codice
AND pip.Incent_Code like 'REG0009'
funziona? NO lasciamo perdere, forse il tuo millewin ha cambiato i nomi dei registri!
una di queste funziona? partiamo da lì...
giampiero
GiampiMaz- Membro Junior
- Messaggi : 122
Punti : 5189
Voti per importanza dei messaggi : 33
Data d'iscrizione : 20.02.11
Argomenti simili
» Progetto Umbria.net
» Millewin - Unofficial utilities
» Progetto Q-CHANNEL
» Progetto Sperimentale sull'ADI
» suggerimenti x progetto informatico
» Millewin - Unofficial utilities
» Progetto Q-CHANNEL
» Progetto Sperimentale sull'ADI
» suggerimenti x progetto informatico
Pagina 1 di 1
Permessi in questa sezione del forum:
Non puoi rispondere agli argomenti in questo forum.