Fibrillazione atriale
5 partecipanti
Pagina 1 di 1
Fibrillazione atriale
Per scopo ricerca:
servirebbe una query per estrarre in modo sensibile i pazieti con Fibrillazione atriale (sia attuale che pregressa )
con questi criteri
ricerca su problema codificato fibrillazione
OPPURE
parole che contengono fibrillazione tra i problemi
OPPURE
prescrizione di warfarin o di sintrom
OPPURE
prescrizione INR
grazie
saluti
Luca Puccetti Pisa
servirebbe una query per estrarre in modo sensibile i pazieti con Fibrillazione atriale (sia attuale che pregressa )
con questi criteri
ricerca su problema codificato fibrillazione
OPPURE
parole che contengono fibrillazione tra i problemi
OPPURE
prescrizione di warfarin o di sintrom
OPPURE
prescrizione INR
grazie
saluti
Luca Puccetti Pisa
lucapuccetti- Nuovo Membro
- Messaggi : 44
Punti : 4960
Voti per importanza dei messaggi : 10
Data d'iscrizione : 02.07.11
Re: Fibrillazione atriale
La richiesta è articolata e non semplice da interpretare , in quanto il problema FA è complesso da monitorare , dato che puo' essere aperto e chiuso varie volte ; inoltre la registrazie degli eventi dipende anche da variabili soggettive .lucapuccetti ha scritto:Per scopo ricerca: servirebbe una query per estrarre in modo sensibile i pazieti con Fibrillazione atriale (sia attuale che pregressa ) con questi criteri :
ricerca su problema codificato fibrillazione OPPURE
parole che contengono fibrillazione tra i problemi OPPURE
prescrizione di warfarin o di sintrom OPPURE
prescrizione INR
grazie saluti Luca Puccetti Pisa
Per iniziare, proverei con una query del tipo ( dovrebbe funzionare sia sul Mille.db che sul MillePS.db ) :
Select Distinct p.cognome || ' ' || p.nome As paziente , Cast( DateFormat( p.nascita, 'yyyy-mm-dd' ) As Char(14)) As nascita , p.sesso , p.provincia_nascita As prov_nasc ,
Cast( DateFormat( l.data_open, 'yyyy-mm-dd' ) As Char(14)) As Inizio_FA ,
l.addenda As Pbl , b.data_close ,
Case b.pb_status || b. modalita When 'AA' Then ' 2 Attivo ' When 'AC' Then ' 1 Rilevante '
When 'IC' Then ' 3 Continuativo ' When 'IA' Then ' 4 Chiuso ' End As pbl_status ,
(Select Cast( DateFormat( Max( t.data_open) , 'yyyy-mm-dd' ) As Char(14)) From cart_terap t
Where t.codice=p.codice And t.co_atc Like 'B01AA%'
And t.data_open Between Today()-180 And Today() )
_TAO_,
(Select Cast( DateFormat( Max( t.data_open) , 'yyyy-mm-dd' ) As Char(14)) From cart_terap t
Where t.codice=p.codice And t.co_atc Like 'B01AC%'
And t.data_open Between Today()-180 And Today() )
_AntiAggreganti_,
( Select Cast( DateFormat( a.data_open , 'yyyy-mm-dd' ) As Char(14)) From cart_accert a
Where a.codice=p.codice And ( a.ac_des Like 'Tempo%Protrombina%' 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_des Like 'Tempo%Protrombina%' 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 Today()-180 And Today() )
_PT_Inr_d_
FROM ((( pazienti p Left Outer Join nos_002 n On p.codice = n.codice )
Left Outer Join v_utenti u On n.pa_medi = u.userid )
Left Outer Join cart_problemi l On p.codice = l.codice )
Right Outer Join cart_pazpbl b On b.codice = l.codice
Where u.codice_regionale Like '%' And u.nome Like '%' And p.pa_convenzione = 'S'
And Year( nascita) Between 1910 And 2014
And (( l.cp_code Like '427.3%' Or l.addenda Like '%Fibr%Atr%' Or l.addenda Like '% FA %'
Or l.addenda Like '% FAP %' Or l.addenda Like '%Flutt%Atr%' ) And b.pb_code = l.pb_code
And b.certezza <> 'S' )
And ( n.pa_drevoca Is Null Or n.pa_drevoca > Today()
Or ( n.pa_drevoca Between Today()-365 And Today() And motivo_revoca = 'S' ))
And p.decesso Is Null And Not Exists
( Select l1.codice From cart_problemi l1 , cart_pazpbl b1 Where l1.codice = p.codice And
( ( l1.cp_code Like '427.3%' Or l1.addenda Like '%Fibr%Atr%' Or l1.addenda Like '% FA %'
Or l1.addenda Like '% FAP %' Or l1.addenda Like '%Flutt%Atr%' ) And b1.pb_code = l1.pb_code And b1.certezza <> 'S' ) And ( l1.data_open > l.data_open Or ( l1.data_open = l.data_open
And l1.rowid > l.rowid )) )
Group By p.cognome , p.nome , p.codice , p.nascita , p.sesso , p.provincia_nascita , l.data_open , l.addenda , b.data_close , b.pb_status , b. modalita
Order By 8 , 1
Per estrarre i Pazienti in TAO o con Prescrizione di PT-INR e relativo Problema serve invece un' altra query .
Un saluto da Sergio , Orzivecchi , BS
PS : il campo b.data_close resta un mistero ( che significato puo' avere ? ) ; il problema era già statao sollevato nel vecchio Forum .
Cervino- Membro Junior
- Messaggi : 245
Punti : 5281
Voti per importanza dei messaggi : 22
Data d'iscrizione : 03.03.11
Età : 70
Località : Orzivecchi (BS)
Re: Fibrillazione atriale
Cervino ha scritto:La richiesta è articolata e non semplice da interpretare , in quanto il problema FA è complesso da monitorare , dato che puo' essere aperto e chiuso varie volte ; inoltre la registrazie degli eventi dipende anche da variabili soggettive .lucapuccetti ha scritto:Per scopo ricerca: servirebbe una query per estrarre in modo sensibile i pazieti con Fibrillazione atriale (sia attuale che pregressa ) con questi criteri :
ricerca su problema codificato fibrillazione OPPURE
parole che contengono fibrillazione tra i problemi OPPURE
prescrizione di warfarin o di sintrom OPPURE
prescrizione INR
grazie saluti Luca Puccetti Pisa
Per iniziare, proverei con una query del tipo ( dovrebbe funzionare sia sul Mille.db che sul MillePS.db ) :
Select Distinct p.cognome || ' ' || p.nome As paziente , Cast( DateFormat( p.nascita, 'yyyy-mm-dd' ) As Char(14)) As nascita , p.sesso , p.provincia_nascita As prov_nasc ,
Cast( DateFormat( l.data_open, 'yyyy-mm-dd' ) As Char(14)) As Inizio_FA ,
l.addenda As Pbl , b.data_close ,
Case b.pb_status || b. modalita When 'AA' Then ' 2 Attivo ' When 'AC' Then ' 1 Rilevante '
When 'IC' Then ' 3 Continuativo ' When 'IA' Then ' 4 Chiuso ' End As pbl_status ,
(Select Cast( DateFormat( Max( t.data_open) , 'yyyy-mm-dd' ) As Char(14)) From cart_terap t
Where t.codice=p.codice And t.co_atc Like 'B01AA%'
And t.data_open Between Today()-180 And Today() )
_TAO_,
(Select Cast( DateFormat( Max( t.data_open) , 'yyyy-mm-dd' ) As Char(14)) From cart_terap t
Where t.codice=p.codice And t.co_atc Like 'B01AC%'
And t.data_open Between Today()-180 And Today() )
_AntiAggreganti_,
( Select Cast( DateFormat( a.data_open , 'yyyy-mm-dd' ) As Char(14)) From cart_accert a
Where a.codice=p.codice And ( a.ac_des Like 'Tempo%Protrombina%' 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_des Like 'Tempo%Protrombina%' 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 Today()-180 And Today() )
_PT_Inr_d_
FROM ((( pazienti p Left Outer Join nos_002 n On p.codice = n.codice )
Left Outer Join v_utenti u On n.pa_medi = u.userid )
Left Outer Join cart_problemi l On p.codice = l.codice )
Right Outer Join cart_pazpbl b On b.codice = l.codice
Where u.codice_regionale Like '%' And u.nome Like '%' And p.pa_convenzione = 'S'
And Year( nascita) Between 1910 And 2014
And (( l.cp_code Like '427.3%' Or l.addenda Like '%Fibr%Atr%' Or l.addenda Like '% FA %'
Or l.addenda Like '% FAP %' Or l.addenda Like '%Flutt%Atr%' ) And b.pb_code = l.pb_code
And b.certezza <> 'S' )
And ( n.pa_drevoca Is Null Or n.pa_drevoca > Today()
Or ( n.pa_drevoca Between Today()-365 And Today() And motivo_revoca = 'S' ))
And p.decesso Is Null And Not Exists
( Select l1.codice From cart_problemi l1 , cart_pazpbl b1 Where l1.codice = p.codice And
( ( l1.cp_code Like '427.3%' Or l1.addenda Like '%Fibr%Atr%' Or l1.addenda Like '% FA %'
Or l1.addenda Like '% FAP %' Or l1.addenda Like '%Flutt%Atr%' ) And b1.pb_code = l1.pb_code And b1.certezza <> 'S' ) And ( l1.data_open > l.data_open Or ( l1.data_open = l.data_open
And l1.rowid > l.rowid )) )
Group By p.cognome , p.nome , p.codice , p.nascita , p.sesso , p.provincia_nascita , l.data_open , l.addenda , b.data_close , b.pb_status , b. modalita
Order By 8 , 1
Per estrarre i Pazienti in TAO o con Prescrizione di PT-INR e relativo Problema serve invece un' altra query .
Un saluto da Sergio , Orzivecchi , BS
PS : il campo b.data_close resta un mistero ( che significato puo' avere ? ) ; il problema era già statao sollevato nel vecchio Forum .
Salve, innanzi tutto un sentito ringraziamento
purtroppo nel mio db mille.db versione 13.38.178 la query non avanza rimane in pere nne caricamento
ovviaente questa e' solo parziale
- Codice:
SELECT Distinct number(*) as Num_progr,V_pazienti. cognome ,V_pazienti. nome, V_problemi.problema, V_problemi.dataopen,
(days(v_pazienti.datanasc,V_problemi.dataopen )/365)as eta_inizio,
(days(v_pazienti.datanasc, today())/365)as eta_attuale,
V_problemi.stato_pb
FROM V_pazienti, V_PROBLEMI
where V_pazienti.codusl=V_problemi.codusl
AND
(( V_problemi.icd9 like '427.3%')
OR V_problemi.problema like '%fibrillazione atriale%'
OR V_problemi.problema like '%Fibr%Atr%'
OR V_problemi.problema like '%flutter%')
ORDER BY V_pazienti. cognome
e questa va bene, ma sarebbe da associare almeno con la ricerca anche sulle terapie con coumadin o sintrom
lanciandola da sola questa funziona
- Codice:
SELECT DISTINCT cognome, nome, datanasc, sesso, codusl FROM V_TERAPIE
WHERE ATC like 'B01AA%'
order BY cognome
ma andrebbe legata alla precedente
grazie
saluti
Luca Puccetti Pisa
lucapuccetti- Nuovo Membro
- Messaggi : 44
Punti : 4960
Voti per importanza dei messaggi : 10
Data d'iscrizione : 02.07.11
Re: Fibrillazione atriale
lucapuccetti ha scritto:....
Salve, innanzi tutto un sentito ringraziamento
purtroppo nel mio db mille.db versione 13.38.178 la query non avanza rimane in perenne caricamento
ovviamente questa e' solo parziale
- Codice:
SELECT Distinct number(*) as Num_progr,V_pazienti. cognome ,V_pazienti. nome, V_problemi.problema, V_problemi.dataopen,
(days(v_pazienti.datanasc,V_problemi.dataopen )/365)as eta_inizio,
(days(v_pazienti.datanasc, today())/365)as eta_attuale,
V_problemi.stato_pb
FROM V_pazienti, V_PROBLEMI
where V_pazienti.codusl=V_problemi.codusl
AND
(( V_problemi.icd9 like '427.3%')
OR V_problemi.problema like '%fibrillazione atriale%'
OR V_problemi.problema like '%Fibr%Atr%'
OR V_problemi.problema like '%flutter%')
ORDER BY V_pazienti. cognome
e questa va bene, ma sarebbe da associare almeno con la ricerca anche sulle terapie con coumadin o sintrom
lanciandola da sola questa funzionama andrebbe legata alla precedente
- Codice:
SELECT DISTINCT cognome, nome, datanasc, sesso, codusl FROM V_TERAPIE
WHERE ATC like 'B01AA%'
order BY cognome
grazie saluti
Luca Puccetti Pisa
Purtroppo sul mio Mille.db ( sincronizzato tuttavia con il MillePS.db ) la tua query :
Select Distinct p. cognome , p. nome , b.problema , b.dataopen ,
Days( p.datanasc , b.dataopen )*24/8766 As eta_inizio,
Days( p.datanasc , Today() )*24/8766 As eta_attuale,
b.stato_pb
FROM v_pazienti p , v_problemi b
Where p.codice = b.codice
And ( b.icd9 Like '427.3%' Or b.problema Like '%Fibr%Atr%' Or b.problema Like '%Flutter%' )
Order By 1 , 2
ritorna 0 righe ; funziona invece l' estrazione dalla Vista v_problemi_attivi :
Select Distinct p. cognome , p. nome , b.problema , b.dataopen ,
Days( p.datanasc , b.dataopen )*24/8766 As eta_inizio,
Days( p.datanasc , Today() )*24/8766 As eta_attuale
FROM v_pazienti p Left Outer Join v_problemi_attivi b On p.codice = b.codice
Where ( b.icd9 Like '427.3%' Or b.problema Like '%Fibr%Atr%' Or b.problema Like '%Flutter%' )
Order By 1 , 2
purtroppo ritorna solo 1/3 dei Pazienti cercati ; Non ho dimestichezza con le Tabelle delle Viste ( forse sono un limite per analizzare un problema complesso come la FA ) .
Comunque quando una query non funziona , bisogna innanzitutto semplificarla , Togliendo le formule di Formattazione :
Select Distinct p.cognome , p.nome , p.nascita , p.sesso ,
p.provincia_nascita As prov_nasc ,
l.data_open As Inizio_FA ,
l.addenda As Pbl , b.data_close ,
Case b.pb_status || b. modalita When 'AA' Then ' 2 Attivo ' When 'AC' Then ' 1 Rilevante '
When 'IC' Then ' 3 Continuativo ' When 'IA' Then ' 4 Chiuso '
Else ' 5 ' || b.pb_status || b. modalita End As pbl_status ,
(Select Max( t.data_open) From cart_terap t Where t.codice=p.codice And t.co_atc Like 'B01AA%' And Not Exists ( Select t1.codice From cart_terap t1 Where t1.codice = t.codice And t1.co_atc Like 'B01AA%' And ( t1.data_open > t.data_open Or ( t1.data_open = t.data_open And t1.rowid > t.rowid)) ) And t.data_open Between Today()-180 And Today() )
_TAO_,
(Select Max( t.data_open) From cart_terap t Where t.codice=p.codice And t.co_atc Like 'B01AC%' And Not Exists ( Select t1.codice From cart_terap t1 Where t1.codice = t.codice And t1.co_atc Like 'B01AC%' And ( t1.data_open > t.data_open Or ( t1.data_open = t.data_open And t1.rowid > t.rowid)) ) And t.data_open Between Today()-180 And Today() )
_AntiAggreganti_,
(Select Max( a.data_open) From cart_accert a Where a.codice=p.codice And ( a.ac_des Like 'Tempo%Protrombina%' 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_des Like 'Tempo%Protrombina%' 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 Today()-180 And Today() )
_PT_Inr_d_
FROM ((( pazienti p Left Outer Join nos_002 n On p.codice = n.codice )
Left Outer Join v_utenti u On n.pa_medi = u.userid )
Left Outer Join cart_problemi l On p.codice = l.codice )
Right Outer Join cart_pazpbl b On b.codice = l.codice
Where u.codice_regionale Like '%' And u.nome Like '%' And p.pa_convenzione = 'S'
And Year( nascita) Between 1910 And 2014
And (( l.cp_code Like '427.3%' Or l.addenda Like '%Fibr%Atr%' Or l.addenda Like '% FA %'
Or l.addenda Like '% FAP %' Or l.addenda Like '%Flutt%Atr%' ) And b.pb_code = l.pb_code
And b.certezza <> 'S' )
And ( n.pa_drevoca Is Null Or n.pa_drevoca > Today()
Or ( n.pa_drevoca Between Today()-365 And Today() And motivo_revoca = 'S' ))
And p.decesso Is Null And Not Exists
( Select l1.codice From cart_problemi l1 , cart_pazpbl b1 Where l1.codice = p.codice And
( ( l1.cp_code Like '427.3%' Or l1.addenda Like '%Fibr%Atr%' Or l1.addenda Like '% FA %'
Or l1.addenda Like '% FAP %' Or l1.addenda Like '%Flutt%Atr%' ) And b1.pb_code = l1.pb_code And b1.certezza <> 'S' ) And ( l1.data_open > l.data_open Or ( l1.data_open = l.data_open
And l1.rowid > l.rowid )) )
Group By p.cognome , p.nome , p.codice , p.nascita , p.sesso , p.provincia_nascita , l.data_open , l.addenda , b.data_close , b.pb_status , b. modalita
Order By 9 , 1 , 2
ed in caso di esito negativo , continuare ad eliminare campi ( Togliendo le subquery ad es. ) :
Select Distinct p.cognome , p.nome , p.nascita , p.sesso ,
p.provincia_nascita As prov_nasc ,
l.data_open As Inizio_FA ,
l.addenda As Pbl , b.data_close ,
Case b.pb_status || b. modalita When 'AA' Then ' 2 Attivo ' When 'AC' Then ' 1 Rilevante '
When 'IC' Then ' 3 Continuativo ' When 'IA' Then ' 4 Chiuso ' Else ' 5 ' || b.pb_status || b. modalita End As pbl_status
FROM ((( pazienti p Left Outer Join nos_002 n On p.codice = n.codice )
Left Outer Join v_utenti u On n.pa_medi = u.userid )
Left Outer Join cart_problemi l On p.codice = l.codice )
Right Outer Join cart_pazpbl b On b.codice = l.codice
Where u.codice_regionale Like '%' And u.nome Like '%' And p.pa_convenzione = 'S'
And Year( nascita) Between 1910 And 2014
And (( l.cp_code Like '427.3%' Or l.addenda Like '%Fibr%Atr%' Or l.addenda Like '% FA %'
Or l.addenda Like '% FAP %' Or l.addenda Like '%Flutt%Atr%' ) And b.pb_code = l.pb_code
And b.certezza <> 'S' )
And ( n.pa_drevoca Is Null Or n.pa_drevoca > Today()
Or ( n.pa_drevoca Between Today()-365 And Today() And motivo_revoca = 'S' ))
And p.decesso Is Null And Not Exists
( Select l1.codice From cart_problemi l1 , cart_pazpbl b1 Where l1.codice = p.codice And
( ( l1.cp_code Like '427.3%' Or l1.addenda Like '%Fibr%Atr%' Or l1.addenda Like '% FA %'
Or l1.addenda Like '% FAP %' Or l1.addenda Like '%Flutt%Atr%' ) And b1.pb_code = l1.pb_code And b1.certezza <> 'S' ) And ( l1.data_open > l.data_open Or ( l1.data_open = l.data_open
And l1.rowid > l.rowid )) )
Group By p.cognome , p.nome , p.codice , p.nascita , p.sesso , p.provincia_nascita , l.data_open , l.addenda , b.data_close , b.pb_status , b. modalita
Order By 9 , 1 , 2
Se anche cosi la query non dovesse funzionare , bisogna impostare diversamente la query ( estraendo i campi desiderati delle Tabelle Problemi tramite subquery , soluzione ottimale sul Mille.db ma non sul MillePS.db )
Ti saluto , Sergio
Cervino- Membro Junior
- Messaggi : 245
Punti : 5281
Voti per importanza dei messaggi : 22
Data d'iscrizione : 03.03.11
Età : 70
Località : Orzivecchi (BS)
Re: Fibrillazione atriale
Intervengo, non dal punto di vista informatico, ma concettuale.
Un problema può essere
a-attivo
b-inattivo (es per me una FA risolta , ma da tener presente, perchè comunque può e deve condizionare la consultazione)
c-risolto (è inutile che vada ad allungare la schermata iniziale)
fra clessidre ed evidenziatori e altri simboli non ho mai avuto modo di sistematizzare la questione
chiedo il vostro parere al riguardo sperando di capire meglio anche come quanto sopra condizioni l'estrazione, relativamente alla sola ricerca del termine "fibrillazione" nei problemi tabellati o non .
Per quello che chiedeva Luca SE il medico non inserisce la fibrillazione tra i problemi ( e nel caso di una FA cronica mi pare difficile, più probabile per una FA che si risolve ) , e il paziente FArisolta non facesse TAO nè INR questo sfuggirebbe
ciao
Luca Le Foche
Un problema può essere
a-attivo
b-inattivo (es per me una FA risolta , ma da tener presente, perchè comunque può e deve condizionare la consultazione)
c-risolto (è inutile che vada ad allungare la schermata iniziale)
fra clessidre ed evidenziatori e altri simboli non ho mai avuto modo di sistematizzare la questione
chiedo il vostro parere al riguardo sperando di capire meglio anche come quanto sopra condizioni l'estrazione, relativamente alla sola ricerca del termine "fibrillazione" nei problemi tabellati o non .
Per quello che chiedeva Luca SE il medico non inserisce la fibrillazione tra i problemi ( e nel caso di una FA cronica mi pare difficile, più probabile per una FA che si risolve ) , e il paziente FArisolta non facesse TAO nè INR questo sfuggirebbe
ciao
Luca Le Foche
LucaLeF- Membro Esperto
- Messaggi : 473
Punti : 5919
Voti per importanza dei messaggi : 11
Data d'iscrizione : 21.02.11
fibrillazione atriale
Purtroppo non mi funziona neppure la terza , quella semplificata, mi rimane in caricamento all'infinito.
grazie saluti
Luca Puccetti Pisa
grazie saluti
Luca Puccetti Pisa
lucapuccetti- Nuovo Membro
- Messaggi : 44
Punti : 4960
Voti per importanza dei messaggi : 10
Data d'iscrizione : 02.07.11
Re: Fibrillazione atriale
LucaLeF ha scritto:Intervengo, non dal punto di vista informatico, ma concettuale.
Un problema può essere
a-attivo
b-inattivo (es per me una FA risolta , ma da tener presente, perchè comunque può e deve condizionare la consultazione)
c-risolto (è inutile che vada ad allungare la schermata iniziale)
fra clessidre ed evidenziatori e altri simboli non ho mai avuto modo di sistematizzare la questione
chiedo il vostro parere al riguardo sperando di capire meglio anche come quanto sopra condizioni l'estrazione, relativamente alla sola ricerca del termine "fibrillazione" nei problemi tabellati o non .
Per quello che chiedeva Luca SE il medico non inserisce la fibrillazione tra i problemi ( e nel caso di una FA cronica mi pare difficile, più probabile per una FA che si risolve ) , e il paziente FArisolta non facesse TAO nè INR questo sfuggirebbe
ciao
Luca Le Foche
Se non erro in MW , per ogni Problema Attivo , 4 sono le possibili classificazioni o etichettature :
1 - Acuto o Attivo ( Breve ? visto che è l' opzione default ) 2 - Attivo - Continuativo ( Rilevante)
3 - Continuativo - 4 - Chiuso
( basta cliccare sulla relativa icona x cambiarne lo Status ) .
Se il problema FA non è mai stato inserito nella relativa Tabella , diventa difficile ricavare l' informazione utilizzando altri parametri statistici ( la TAO è prescritta nel 40 % x altri motivi , inoltre trattasi di farmaci a basso costo , prescritti a volte con Ricetta bianca ripetibile ; il PT-INR è un EEC di routine in PS ed alcuni Pazienti sono seguiti dai centri TAO )
Ti saluto , Sergio
Cervino- Membro Junior
- Messaggi : 245
Punti : 5281
Voti per importanza dei messaggi : 22
Data d'iscrizione : 03.03.11
Età : 70
Località : Orzivecchi (BS)
Re: Fibrillazione atriale
Evidentemente trattati di 2 database che richiedono in parte diversi linguaggi SQL , per cui non posso esserti di aiuto . Prova per curiosità eventualmente con :lucapuccetti ha scritto:Purtroppo non mi funziona neppure la terza , quella semplificata, mi rimane in caricamento all'infinito.
grazie saluti
Luca Puccetti Pisa
Select Distinct p.cognome , p.nome , p.nascita , p.sesso , p.provincia_nascita As prov_nasc ,
(Select l.data_open From cart_problemi l , cart_pazpbl b Where l.codice = p.codice
And (( l.cp_code Like '427.3%' Or l.addenda Like '%Fibr%Atr%' Or l.addenda Like '% FA %'
Or l.addenda Like '% FAP %' Or l.addenda Like '%Flutt%Atr%' ) And b.pb_code = l.pb_code
And b.certezza <> 'S' ) And Not Exists ( Select l1.codice From cart_problemi l1 , cart_pazpbl b1 Where l1.codice = p.codice And ( ( l1.cp_code Like '427.3%' Or l1.addenda Like '%Fibr%Atr%'
Or l1.addenda Like '% FA %' Or l1.addenda Like '% FAP %' Or l1.addenda Like '%Flutt%Atr%' ) And b1.pb_code = l1.pb_code And b1.certezza <> 'S' ) And ( l1.data_open > l.data_open Or ( l1.data_open = l.data_open And l1.rowid > l.rowid )) ) )
_FA_onset_ ,
(Select l.addenda From cart_problemi l , cart_pazpbl b Where l.codice = p.codice
And (( l.cp_code Like '427.3%' Or l.addenda Like '%Fibr%Atr%' Or l.addenda Like '% FA %'
Or l.addenda Like '% FAP %' Or l.addenda Like '%Flutt%Atr%' ) And b.pb_code = l.pb_code
And b.certezza <> 'S' ) And Not Exists ( Select l1.codice From cart_problemi l1 , cart_pazpbl b1 Where l1.codice = p.codice And ( ( l1.cp_code Like '427.3%' Or l1.addenda Like '%Fibr%Atr%'
Or l1.addenda Like '% FA %' Or l1.addenda Like '% FAP %' Or l1.addenda Like '%Flutt%Atr%' ) And b1.pb_code = l1.pb_code And b1.certezza <> 'S' ) And ( l1.data_open > l.data_open Or ( l1.data_open = l.data_open And l1.rowid > l.rowid )) ) )
_Pbl_ ,
(Select Max( t.data_open) From cart_terap t Where t.codice=p.codice And t.co_atc Like 'B01AA%' And Not Exists ( Select t1.codice From cart_terap t1 Where t1.codice = t.codice And t1.co_atc Like 'B01AA%' And ( t1.data_open > t.data_open Or ( t1.data_open = t.data_open And t1.rowid > t.rowid)) ) And t.data_open Between Today()-180 And Today() )
_TAO_,
(Select Max( t.data_open) From cart_terap t Where t.codice=p.codice And t.co_atc Like 'B01AC%' And Not Exists ( Select t1.codice From cart_terap t1 Where t1.codice = t.codice And t1.co_atc Like 'B01AC%' And ( t1.data_open > t.data_open Or ( t1.data_open = t.data_open And t1.rowid > t.rowid)) ) And t.data_open Between Today()-180 And Today() )
_AntiAggreganti_,
(Select Max( a.data_open) From cart_accert a Where a.codice=p.codice And ( a.ac_des Like 'Tempo%Protrombina%' 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_des Like 'Tempo%Protrombina%' 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 Today()-180 And Today() )
_PT_Inr_d_
FROM ( pazienti p Left Outer Join nos_002 n On p.codice = n.codice )
Left Outer Join v_utenti u On n.pa_medi = u.userid
Where u.codice_regionale Like '%' And u.nome Like '%' And p.pa_convenzione = 'S'
And Year( nascita) Between 1910 And 2014
And ( n.pa_drevoca Is Null Or n.pa_drevoca > Today() Or ( n.pa_drevoca Between Today()-365 And Today() And motivo_revoca = 'S' )) And p.decesso Is Null
And p.codice IN (Select l.codice From cart_problemi l , cart_pazpbl b Where l.codice = p.codice And (( l.cp_code Like '427.3%' Or l.addenda Like '%Fibr%Atr%' Or l.addenda Like '% FA %' Or l.addenda Like '% FAP %' Or l.addenda Like '%Flutt%Atr%' ) And b.pb_code = l.pb_code And b.certezza <> 'S' ) And Not Exists ( Select l1.codice From cart_problemi l1 , cart_pazpbl b1 Where l1.codice = p.codice And ( ( l1.cp_code Like '427.3%' Or l1.addenda Like '%Fibr%Atr%' Or l1.addenda Like '% FA %' Or l1.addenda Like '% FAP %' Or l1.addenda Like '%Flutt%Atr%' ) And b1.pb_code = l1.pb_code And b1.certezza <> 'S' ) And ( l1.data_open > l.data_open Or ( l1.data_open = l.data_open And l1.rowid > l.rowid )) ) )
Group By p.cognome , p.nome , p.codice , p.nascita , p.sesso , p.provincia_nascita
Order By 9 , 1 , 2
Se per caso dovesse funzionare ( si potrebbe anche semplificare in MySQL ) , andrebbe aggiunta la subquery :
(Select b.pb_status || b. modalita From cart_problemi l , cart_pazpbl b Where l.codice = p.codice And (( l.cp_code Like '427.3%' Or l.addenda Like '%Fibr%Atr%' Or l.addenda Like '% FA %' Or l.addenda Like '% FAP %' Or l.addenda Like '%Flutt%Atr%' ) And b.pb_code = l.pb_code And b.certezza <> 'S' ) And Not Exists ( Select l1.codice From cart_problemi l1 , cart_pazpbl b1 Where l1.codice = p.codice And ( ( l1.cp_code Like '427.3%' Or l1.addenda Like '%Fibr%Atr%' Or l1.addenda Like '% FA %' Or l1.addenda Like '% FAP %' Or l1.addenda Like '%Flutt%Atr%' ) And b1.pb_code = l1.pb_code And b1.certezza <> 'S' ) And ( l1.data_open > l.data_open Or ( l1.data_open = l.data_open And l1.rowid > l.rowid )) ) )
_Pbl_status_,
in PostgreSql funziona ma in MySql probabilmente va sdoppiata , se non ricordo male :
(Select b.pb_status From cart_problemi l , cart_pazpbl b Where l.codice = p.codice And
(( l.cp_code Like '427.3%' Or l.addenda Like '%Fibr%Atr%' Or l.addenda Like '% FA %' Or l.addenda Like '% FAP %' Or l.addenda Like '%Flutt%Atr%' ) And b.pb_code = l.pb_code And b.certezza <> 'S' ) And Not Exists ( Select l1.codice From cart_problemi l1 , cart_pazpbl b1 Where l1.codice = p.codice And ( ( l1.cp_code Like '427.3%' Or l1.addenda Like '%Fibr%Atr%' Or l1.addenda Like '% FA %' Or l1.addenda Like '% FAP %' Or l1.addenda Like '%Flutt%Atr%' ) And b1.pb_code = l1.pb_code And b1.certezza <> 'S' ) And ( l1.data_open > l.data_open Or ( l1.data_open = l.data_open And l1.rowid > l.rowid )) ) )
_Pbl_st_,
(Select b.modalita From cart_problemi l , cart_pazpbl b Where l.codice = p.codice And
(( l.cp_code Like '427.3%' Or l.addenda Like '%Fibr%Atr%' Or l.addenda Like '% FA %' Or l.addenda Like '% FAP %' Or l.addenda Like '%Flutt%Atr%' ) And b.pb_code = l.pb_code And b.certezza <> 'S' ) And Not Exists ( Select l1.codice From cart_problemi l1 , cart_pazpbl b1 Where l1.codice = p.codice And ( ( l1.cp_code Like '427.3%' Or l1.addenda Like '%Fibr%Atr%' Or l1.addenda Like '% FA %' Or l1.addenda Like '% FAP %' Or l1.addenda Like '%Flutt%Atr%' ) And b1.pb_code = l1.pb_code And b1.certezza <> 'S' ) And ( l1.data_open > l.data_open Or ( l1.data_open = l.data_open And l1.rowid > l.rowid )) ) )
_Pbl_mod_,
Case _pb_st || _pbl_mod_ When 'AA' Then ' 2 Attivo ' When 'AC' Then ' 1 Rilevante '
When 'IC' Then ' 3 Continuativo ' When 'IA' Then ' 4 Chiuso ' Else ' 5 ' || b.pb_status || b. modalita End As pbl_status ,
Ma non ne sono sicuro , non potendo testare l' ultima subquery .
Ti saluto , Sergio
Cervino- Membro Junior
- Messaggi : 245
Punti : 5281
Voti per importanza dei messaggi : 22
Data d'iscrizione : 03.03.11
Età : 70
Località : Orzivecchi (BS)
Re: Fibrillazione atriale
Cervino ha scritto:Evidentemente trattati di 2 database che richiedono in parte diversi linguaggi SQL , per cui non posso esserti di aiuto . Prova per curiosità eventualmente con :lucapuccetti ha scritto:Purtroppo non mi funziona neppure la terza , quella semplificata, mi rimane in caricamento all'infinito.
grazie saluti
Luca Puccetti Pisa
Select Distinct p.cognome , p.nome , p.nascita , p.sesso , p.provincia_nascita As prov_nasc ,
(Select l.data_open From cart_problemi l , cart_pazpbl b Where l.codice = p.codice
And (( l.cp_code Like '427.3%' Or l.addenda Like '%Fibr%Atr%' Or l.addenda Like '% FA %'
Or l.addenda Like '% FAP %' Or l.addenda Like '%Flutt%Atr%' ) And b.pb_code = l.pb_code
And b.certezza <> 'S' ) And Not Exists ( Select l1.codice From cart_problemi l1 , cart_pazpbl b1 Where l1.codice = p.codice And ( ( l1.cp_code Like '427.3%' Or l1.addenda Like '%Fibr%Atr%'
Or l1.addenda Like '% FA %' Or l1.addenda Like '% FAP %' Or l1.addenda Like '%Flutt%Atr%' ) And b1.pb_code = l1.pb_code And b1.certezza <> 'S' ) And ( l1.data_open > l.data_open Or ( l1.data_open = l.data_open And l1.rowid > l.rowid )) ) )
_FA_onset_ ,
(Select l.addenda From cart_problemi l , cart_pazpbl b Where l.codice = p.codice
And (( l.cp_code Like '427.3%' Or l.addenda Like '%Fibr%Atr%' Or l.addenda Like '% FA %'
Or l.addenda Like '% FAP %' Or l.addenda Like '%Flutt%Atr%' ) And b.pb_code = l.pb_code
And b.certezza <> 'S' ) And Not Exists ( Select l1.codice From cart_problemi l1 , cart_pazpbl b1 Where l1.codice = p.codice And ( ( l1.cp_code Like '427.3%' Or l1.addenda Like '%Fibr%Atr%'
Or l1.addenda Like '% FA %' Or l1.addenda Like '% FAP %' Or l1.addenda Like '%Flutt%Atr%' ) And b1.pb_code = l1.pb_code And b1.certezza <> 'S' ) And ( l1.data_open > l.data_open Or ( l1.data_open = l.data_open And l1.rowid > l.rowid )) ) )
_Pbl_ ,
(Select Max( t.data_open) From cart_terap t Where t.codice=p.codice And t.co_atc Like 'B01AA%' And Not Exists ( Select t1.codice From cart_terap t1 Where t1.codice = t.codice And t1.co_atc Like 'B01AA%' And ( t1.data_open > t.data_open Or ( t1.data_open = t.data_open And t1.rowid > t.rowid)) ) And t.data_open Between Today()-180 And Today() )
_TAO_,
(Select Max( t.data_open) From cart_terap t Where t.codice=p.codice And t.co_atc Like 'B01AC%' And Not Exists ( Select t1.codice From cart_terap t1 Where t1.codice = t.codice And t1.co_atc Like 'B01AC%' And ( t1.data_open > t.data_open Or ( t1.data_open = t.data_open And t1.rowid > t.rowid)) ) And t.data_open Between Today()-180 And Today() )
_AntiAggreganti_,
(Select Max( a.data_open) From cart_accert a Where a.codice=p.codice And ( a.ac_des Like 'Tempo%Protrombina%' 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_des Like 'Tempo%Protrombina%' 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 Today()-180 And Today() )
_PT_Inr_d_
FROM ( pazienti p Left Outer Join nos_002 n On p.codice = n.codice )
Left Outer Join v_utenti u On n.pa_medi = u.userid
Where u.codice_regionale Like '%' And u.nome Like '%' And p.pa_convenzione = 'S'
And Year( nascita) Between 1910 And 2014
And ( n.pa_drevoca Is Null Or n.pa_drevoca > Today() Or ( n.pa_drevoca Between Today()-365 And Today() And motivo_revoca = 'S' )) And p.decesso Is Null
And p.codice IN (Select l.codice From cart_problemi l , cart_pazpbl b Where l.codice = p.codice And (( l.cp_code Like '427.3%' Or l.addenda Like '%Fibr%Atr%' Or l.addenda Like '% FA %' Or l.addenda Like '% FAP %' Or l.addenda Like '%Flutt%Atr%' ) And b.pb_code = l.pb_code And b.certezza <> 'S' ) And Not Exists ( Select l1.codice From cart_problemi l1 , cart_pazpbl b1 Where l1.codice = p.codice And ( ( l1.cp_code Like '427.3%' Or l1.addenda Like '%Fibr%Atr%' Or l1.addenda Like '% FA %' Or l1.addenda Like '% FAP %' Or l1.addenda Like '%Flutt%Atr%' ) And b1.pb_code = l1.pb_code And b1.certezza <> 'S' ) And ( l1.data_open > l.data_open Or ( l1.data_open = l.data_open And l1.rowid > l.rowid )) ) )
Group By p.cognome , p.nome , p.codice , p.nascita , p.sesso , p.provincia_nascita
Order By 9 , 1 , 2
Se per caso dovesse funzionare ( si potrebbe anche semplificare in MySQL ) , andrebbe aggiunta la subquery :
(Select b.pb_status || b. modalita From cart_problemi l , cart_pazpbl b Where l.codice = p.codice And (( l.cp_code Like '427.3%' Or l.addenda Like '%Fibr%Atr%' Or l.addenda Like '% FA %' Or l.addenda Like '% FAP %' Or l.addenda Like '%Flutt%Atr%' ) And b.pb_code = l.pb_code And b.certezza <> 'S' ) And Not Exists ( Select l1.codice From cart_problemi l1 , cart_pazpbl b1 Where l1.codice = p.codice And ( ( l1.cp_code Like '427.3%' Or l1.addenda Like '%Fibr%Atr%' Or l1.addenda Like '% FA %' Or l1.addenda Like '% FAP %' Or l1.addenda Like '%Flutt%Atr%' ) And b1.pb_code = l1.pb_code And b1.certezza <> 'S' ) And ( l1.data_open > l.data_open Or ( l1.data_open = l.data_open And l1.rowid > l.rowid )) ) )
_Pbl_status_,
in PostgreSql funziona ma in MySql probabilmente va sdoppiata , se non ricordo male :
(Select b.pb_status From cart_problemi l , cart_pazpbl b Where l.codice = p.codice And
(( l.cp_code Like '427.3%' Or l.addenda Like '%Fibr%Atr%' Or l.addenda Like '% FA %' Or l.addenda Like '% FAP %' Or l.addenda Like '%Flutt%Atr%' ) And b.pb_code = l.pb_code And b.certezza <> 'S' ) And Not Exists ( Select l1.codice From cart_problemi l1 , cart_pazpbl b1 Where l1.codice = p.codice And ( ( l1.cp_code Like '427.3%' Or l1.addenda Like '%Fibr%Atr%' Or l1.addenda Like '% FA %' Or l1.addenda Like '% FAP %' Or l1.addenda Like '%Flutt%Atr%' ) And b1.pb_code = l1.pb_code And b1.certezza <> 'S' ) And ( l1.data_open > l.data_open Or ( l1.data_open = l.data_open And l1.rowid > l.rowid )) ) )
_Pbl_st_,
(Select b.modalita From cart_problemi l , cart_pazpbl b Where l.codice = p.codice And
(( l.cp_code Like '427.3%' Or l.addenda Like '%Fibr%Atr%' Or l.addenda Like '% FA %' Or l.addenda Like '% FAP %' Or l.addenda Like '%Flutt%Atr%' ) And b.pb_code = l.pb_code And b.certezza <> 'S' ) And Not Exists ( Select l1.codice From cart_problemi l1 , cart_pazpbl b1 Where l1.codice = p.codice And ( ( l1.cp_code Like '427.3%' Or l1.addenda Like '%Fibr%Atr%' Or l1.addenda Like '% FA %' Or l1.addenda Like '% FAP %' Or l1.addenda Like '%Flutt%Atr%' ) And b1.pb_code = l1.pb_code And b1.certezza <> 'S' ) And ( l1.data_open > l.data_open Or ( l1.data_open = l.data_open And l1.rowid > l.rowid )) ) )
_Pbl_mod_,
Case _pb_st || _pbl_mod_ When 'AA' Then ' 2 Attivo ' When 'AC' Then ' 1 Rilevante '
When 'IC' Then ' 3 Continuativo ' When 'IA' Then ' 4 Chiuso ' Else ' 5 ' || b.pb_status || b. modalita End As pbl_status ,
Ma non ne sono sicuro , non potendo testare l' ultima subquery .
Ti saluto , Sergio
La prima parte va, aggiunte le subquery da errore
Saluti Mario
mario shirt- Membro Junior
- Messaggi : 254
Punti : 5389
Voti per importanza dei messaggi : 4
Data d'iscrizione : 21.02.11
Età : 69
Re: Fibrillazione atriale
Credo che la query di Cervino funzioni egregiamente anche in Sql:
Select Distinct p.cognome , p.nome , p.nascita , p.sesso , p.provincia_nascita As prov_nasc ,
(Select l.data_open From cart_problemi l , cart_pazpbl b Where l.codice = p.codice
And (( l.cp_code Like '427.3%' Or l.addenda Like '%Fibr%Atr%' Or l.addenda Like '% FA %'
Or l.addenda Like '% FAP %' Or l.addenda Like '%Flutt%Atr%' ) And b.pb_code = l.pb_code
And b.certezza <> 'S' ) And Not Exists ( Select l1.codice From cart_problemi l1 , cart_pazpbl b1 Where l1.codice = p.codice And ( ( l1.cp_code Like '427.3%' Or l1.addenda Like '%Fibr%Atr%'
Or l1.addenda Like '% FA %' Or l1.addenda Like '% FAP %' Or l1.addenda Like '%Flutt%Atr%' ) And b1.pb_code = l1.pb_code And b1.certezza <> 'S' ) And ( l1.data_open > l.data_open Or ( l1.data_open = l.data_open And l1.rowid > l.rowid )) ) )
_FA_onset_ ,
(Select l.addenda From cart_problemi l , cart_pazpbl b Where l.codice = p.codice
And (( l.cp_code Like '427.3%' Or l.addenda Like '%Fibr%Atr%' Or l.addenda Like '% FA %'
Or l.addenda Like '% FAP %' Or l.addenda Like '%Flutt%Atr%' ) And b.pb_code = l.pb_code
And b.certezza <> 'S' ) And Not Exists ( Select l1.codice From cart_problemi l1 , cart_pazpbl b1 Where l1.codice = p.codice And ( ( l1.cp_code Like '427.3%' Or l1.addenda Like '%Fibr%Atr%'
Or l1.addenda Like '% FA %' Or l1.addenda Like '% FAP %' Or l1.addenda Like '%Flutt%Atr%' ) And b1.pb_code = l1.pb_code And b1.certezza <> 'S' ) And ( l1.data_open > l.data_open Or ( l1.data_open = l.data_open And l1.rowid > l.rowid )) ) )
_Pbl_ ,
(Select Max( t.data_open) From cart_terap t Where t.codice=p.codice And t.co_atc Like 'B01AA%' And Not Exists ( Select t1.codice From cart_terap t1 Where t1.codice = t.codice And t1.co_atc Like 'B01AA%' And ( t1.data_open > t.data_open Or ( t1.data_open = t.data_open And t1.rowid > t.rowid)) ) And t.data_open Between Today()-180 And Today() )
_TAO_,
(Select Max( t.data_open) From cart_terap t Where t.codice=p.codice And t.co_atc Like 'B01AC%' And Not Exists ( Select t1.codice From cart_terap t1 Where t1.codice = t.codice And t1.co_atc Like 'B01AC%' And ( t1.data_open > t.data_open Or ( t1.data_open = t.data_open And t1.rowid > t.rowid)) ) And t.data_open Between Today()-180 And Today() )
_AntiAggreganti_ ,
(Select Max( a.data_open) From cart_accert a Where a.codice=p.codice And ( a.ac_NT_code Like '90.75.4' ) And Not Exists ( Select a1.codice From cart_accert a1 Where a1.codice = a.codice And a1.ac_des Like 'Tempo%Protrombina%' 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 Today()-180 And Today() )
_PT_Inr_d_ ,
(Select b.pb_status || b. modalita From cart_problemi l , cart_pazpbl b Where l.codice = p.codice And (( l.cp_code Like '427.3%' Or l.addenda Like '%Fibr%Atr%' Or l.addenda Like '% FA %' Or l.addenda Like '% FAP %' Or l.addenda Like '%Flutt%Atr%' ) And b.pb_code = l.pb_code And b.certezza <> 'S' ) And Not Exists ( Select l1.codice From cart_problemi l1 , cart_pazpbl b1 Where l1.codice = p.codice And ( ( l1.cp_code Like '427.3%' Or l1.addenda Like '%Fibr%Atr%' Or l1.addenda Like '% FA %' Or l1.addenda Like '% FAP %' Or l1.addenda Like '%Flutt%Atr%' ) And b1.pb_code = l1.pb_code And b1.certezza <> 'S' ) And ( l1.data_open > l.data_open Or ( l1.data_open = l.data_open And l1.rowid > l.rowid )) ) )
_Pbl_status_
FROM ( pazienti p Left Outer Join nos_002 n On p.codice = n.codice )
Left Outer Join v_utenti u On n.pa_medi = u.userid
Where u.codice_regionale Like '%' And u.nome Like '%' And p.pa_convenzione = 'S'
And Year( nascita) Between 1910 And 2014
And ( n.pa_drevoca Is Null Or n.pa_drevoca > Today() Or ( n.pa_drevoca Between Today()-365 And Today() And motivo_revoca = 'S' )) And p.decesso Is Null
And p.codice IN (Select l.codice From cart_problemi l , cart_pazpbl b Where l.codice = p.codice And (( l.cp_code Like '427.3%' Or l.addenda Like '%Fibr%Atr%' Or l.addenda Like '% FA %' Or l.addenda Like '% FAP %' Or l.addenda Like '%Flutt%Atr%' ) And b.pb_code = l.pb_code And b.certezza <> 'S' ) And Not Exists ( Select l1.codice From cart_problemi l1 , cart_pazpbl b1 Where l1.codice = p.codice And ( ( l1.cp_code Like '427.3%' Or l1.addenda Like '%Fibr%Atr%' Or l1.addenda Like '% FA %' Or l1.addenda Like '% FAP %' Or l1.addenda Like '%Flutt%Atr%' ) And b1.pb_code = l1.pb_code And b1.certezza <> 'S' ) And ( l1.data_open > l.data_open Or ( l1.data_open = l.data_open And l1.rowid > l.rowid )) ) )
Group By p.cognome , p.nome , p.codice , p.nascita , p.sesso , p.provincia_nascita
Order By 1 , 2 , 3
Select Distinct p.cognome , p.nome , p.nascita , p.sesso , p.provincia_nascita As prov_nasc ,
(Select l.data_open From cart_problemi l , cart_pazpbl b Where l.codice = p.codice
And (( l.cp_code Like '427.3%' Or l.addenda Like '%Fibr%Atr%' Or l.addenda Like '% FA %'
Or l.addenda Like '% FAP %' Or l.addenda Like '%Flutt%Atr%' ) And b.pb_code = l.pb_code
And b.certezza <> 'S' ) And Not Exists ( Select l1.codice From cart_problemi l1 , cart_pazpbl b1 Where l1.codice = p.codice And ( ( l1.cp_code Like '427.3%' Or l1.addenda Like '%Fibr%Atr%'
Or l1.addenda Like '% FA %' Or l1.addenda Like '% FAP %' Or l1.addenda Like '%Flutt%Atr%' ) And b1.pb_code = l1.pb_code And b1.certezza <> 'S' ) And ( l1.data_open > l.data_open Or ( l1.data_open = l.data_open And l1.rowid > l.rowid )) ) )
_FA_onset_ ,
(Select l.addenda From cart_problemi l , cart_pazpbl b Where l.codice = p.codice
And (( l.cp_code Like '427.3%' Or l.addenda Like '%Fibr%Atr%' Or l.addenda Like '% FA %'
Or l.addenda Like '% FAP %' Or l.addenda Like '%Flutt%Atr%' ) And b.pb_code = l.pb_code
And b.certezza <> 'S' ) And Not Exists ( Select l1.codice From cart_problemi l1 , cart_pazpbl b1 Where l1.codice = p.codice And ( ( l1.cp_code Like '427.3%' Or l1.addenda Like '%Fibr%Atr%'
Or l1.addenda Like '% FA %' Or l1.addenda Like '% FAP %' Or l1.addenda Like '%Flutt%Atr%' ) And b1.pb_code = l1.pb_code And b1.certezza <> 'S' ) And ( l1.data_open > l.data_open Or ( l1.data_open = l.data_open And l1.rowid > l.rowid )) ) )
_Pbl_ ,
(Select Max( t.data_open) From cart_terap t Where t.codice=p.codice And t.co_atc Like 'B01AA%' And Not Exists ( Select t1.codice From cart_terap t1 Where t1.codice = t.codice And t1.co_atc Like 'B01AA%' And ( t1.data_open > t.data_open Or ( t1.data_open = t.data_open And t1.rowid > t.rowid)) ) And t.data_open Between Today()-180 And Today() )
_TAO_,
(Select Max( t.data_open) From cart_terap t Where t.codice=p.codice And t.co_atc Like 'B01AC%' And Not Exists ( Select t1.codice From cart_terap t1 Where t1.codice = t.codice And t1.co_atc Like 'B01AC%' And ( t1.data_open > t.data_open Or ( t1.data_open = t.data_open And t1.rowid > t.rowid)) ) And t.data_open Between Today()-180 And Today() )
_AntiAggreganti_ ,
(Select Max( a.data_open) From cart_accert a Where a.codice=p.codice And ( a.ac_NT_code Like '90.75.4' ) And Not Exists ( Select a1.codice From cart_accert a1 Where a1.codice = a.codice And a1.ac_des Like 'Tempo%Protrombina%' 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 Today()-180 And Today() )
_PT_Inr_d_ ,
(Select b.pb_status || b. modalita From cart_problemi l , cart_pazpbl b Where l.codice = p.codice And (( l.cp_code Like '427.3%' Or l.addenda Like '%Fibr%Atr%' Or l.addenda Like '% FA %' Or l.addenda Like '% FAP %' Or l.addenda Like '%Flutt%Atr%' ) And b.pb_code = l.pb_code And b.certezza <> 'S' ) And Not Exists ( Select l1.codice From cart_problemi l1 , cart_pazpbl b1 Where l1.codice = p.codice And ( ( l1.cp_code Like '427.3%' Or l1.addenda Like '%Fibr%Atr%' Or l1.addenda Like '% FA %' Or l1.addenda Like '% FAP %' Or l1.addenda Like '%Flutt%Atr%' ) And b1.pb_code = l1.pb_code And b1.certezza <> 'S' ) And ( l1.data_open > l.data_open Or ( l1.data_open = l.data_open And l1.rowid > l.rowid )) ) )
_Pbl_status_
FROM ( pazienti p Left Outer Join nos_002 n On p.codice = n.codice )
Left Outer Join v_utenti u On n.pa_medi = u.userid
Where u.codice_regionale Like '%' And u.nome Like '%' And p.pa_convenzione = 'S'
And Year( nascita) Between 1910 And 2014
And ( n.pa_drevoca Is Null Or n.pa_drevoca > Today() Or ( n.pa_drevoca Between Today()-365 And Today() And motivo_revoca = 'S' )) And p.decesso Is Null
And p.codice IN (Select l.codice From cart_problemi l , cart_pazpbl b Where l.codice = p.codice And (( l.cp_code Like '427.3%' Or l.addenda Like '%Fibr%Atr%' Or l.addenda Like '% FA %' Or l.addenda Like '% FAP %' Or l.addenda Like '%Flutt%Atr%' ) And b.pb_code = l.pb_code And b.certezza <> 'S' ) And Not Exists ( Select l1.codice From cart_problemi l1 , cart_pazpbl b1 Where l1.codice = p.codice And ( ( l1.cp_code Like '427.3%' Or l1.addenda Like '%Fibr%Atr%' Or l1.addenda Like '% FA %' Or l1.addenda Like '% FAP %' Or l1.addenda Like '%Flutt%Atr%' ) And b1.pb_code = l1.pb_code And b1.certezza <> 'S' ) And ( l1.data_open > l.data_open Or ( l1.data_open = l.data_open And l1.rowid > l.rowid )) ) )
Group By p.cognome , p.nome , p.codice , p.nascita , p.sesso , p.provincia_nascita
Order By 1 , 2 , 3
Re: Fibrillazione atriale
Queste due queries vanno bene sul mio millewin e mi tirano fuori le fibreillazioni e chi fa coumadin/sintrom rispettivamente a non girano su chi ha postgres e m dicono non vanno in chi è in medicina di gruppo perchè mancerebbe il codice utente ???
Sono per un importante progetto formativo pertanto chiedo, gentilmente, ai colleghi esperti di modificare le queries in modo che vadano bene anche con postgres e in con chi è in medicina di gruppo
grazie
saluti
Luca Puccetti Pisa
prima
SELECT number(*) as Num_progr,V_pazienti. cognome ,V_pazienti. nome, V_problemi.problema, V_problemi.dataopen, (days(v_pazienti.datanasc,V_problemi.dataopen )/365)as eta_inizio, (days(v_pazienti.datanasc, today())/365)as eta_attuale, V_problemi.stato_pb FROM V_pazienti, V_PROBLEMI where V_pazienti.codusl=V_problemi.codusl AND (( V_problemi. icd9 >=427.0 and V_problemi.icd9 <=427.3) OR V_problemi. problema like '%fibril%' OR V_problemi.problema like 'flutter') ORDER BY V_pazienti. cognome
seconda
SELECT datanasc, cognome, nome, terapia, sum( quantita )pezzi, sum(prezzo*quantita) spesa FROM V_TERAPIE WHERE ATC like 'B01AA%' GROUP BY datanasc, cognome, nome, terapia ORDER BY cognome
lucapuccetti- Nuovo Membro
- Messaggi : 44
Punti : 4960
Voti per importanza dei messaggi : 10
Data d'iscrizione : 02.07.11
Re: Fibrillazione atriale
Non son in grado di dare una risposta riguardo alle viste con postgreSql.lucapuccetti ha scritto:Queste due queries vanno bene sul mio millewin e mi tirano fuori le fibreillazioni e chi fa coumadin/sintrom rispettivamente a non girano su chi ha postgres e m dicono non vanno in chi è in medicina di gruppo perchè mancerebbe il codice utente ???
Sono per un importante progetto formativo pertanto chiedo, gentilmente, ai colleghi esperti di modificare le queries in modo che vadano bene anche con postgres e in con chi è in medicina di gruppo
grazie
saluti
Luca Puccetti Pisa
prima
SELECT number(*) as Num_progr,V_pazienti. cognome ,V_pazienti. nome, V_problemi.problema, V_problemi.dataopen, (days(v_pazienti.datanasc,V_problemi.dataopen )/365)as eta_inizio, (days(v_pazienti.datanasc, today())/365)as eta_attuale, V_problemi.stato_pb FROM V_pazienti, V_PROBLEMI where V_pazienti.codusl=V_problemi.codusl AND (( V_problemi. icd9 >=427.0 and V_problemi.icd9 <=427.3) OR V_problemi. problema like '%fibril%' OR V_problemi.problema like 'flutter') ORDER BY V_pazienti. cognome
seconda
SELECT datanasc, cognome, nome, terapia, sum( quantita )pezzi, sum(prezzo*quantita) spesa FROM V_TERAPIE WHERE ATC like 'B01AA%' GROUP BY datanasc, cognome, nome, terapia ORDER BY cognome
Riguardo alle due estrazioni, trattandosi di uso di viste non occorre nessun codice utente in quanto funzionano sui pazienti del medico che effettua l'accesso a mille utilità. L'unica cosa da fare è impostare il periodo da esaminare.
La seconda query dovrebbe funzionare regolarmente, non vedo errori.
La prima invece presenta delle criticità nella parte:
where V_pazienti.codusl=V_problemi.codusl AND (( V_problemi. icd9 >=427.0 and V_problemi.icd9 <=427.3) OR V_problemi. problema like '%fibril%' OR V_problemi.problema like 'flutter')
Infatti sono forme corrette:
where V_pazienti.codice=V_problemi.codice AND (V_problemi. icd9 > '427.0' and V_problemi.icd9 < '427.4')
oppure meglio
where V_pazienti.codice=V_problemi.codice (V_problemi. icd9 BETWEEN '427.0' and '427.4')
Cioè come campo che collega le due viste si deve usare codice e non codusl, inoltre il segno = non viene preso in considerazione e poi occorre usare gli apici quando si confrontano numeri.
Infine la parte:
V_problemi.problema like 'flutter'
va corretta in:
V_problemi.problema like '%flutter%
per indicare che occorre considerare tutte le definizioni con qualche parola che precede flutter o che segue.
Quindi una forma più corretta e snella può essere:
SELECT number(*) as Num_progr, p.cognome , p.nome, b.problema, b.dataopen as Data, (days(p.datanasc,b.dataopen )/365)as eta_inizio, (days(p.datanasc, today())/365)as eta_attuale, b.stato_pb
FROM V_pazienti p, V_PROBLEMI b
WHERE p.codice=b.codice AND (b.icd9 BETWEEN '427.0' and '427.4' OR b.problema like '%fibril%' OR b.problema like '%flutter%')
ORDER BY 2,3
Naturalmente bisogna decidere precisamente i problemi da considerare ad es. la tachicardia parossistica, il flutter ventricolare, la fibrillazione ventricolare, ecc. e variare eventualmente l'ICD9 o la descrizione del problema.
fibrillqzione atriale
Admin ha scritto:Non son in grado di dare una risposta riguardo alle viste con postgreSql.lucapuccetti ha scritto:Queste due queries vanno bene sul mio millewin e mi tirano fuori le fibreillazioni e chi fa coumadin/sintrom rispettivamente a non girano su chi ha postgres e m dicono non vanno in chi è in medicina di gruppo perchè mancerebbe il codice utente ???
Sono per un importante progetto formativo pertanto chiedo, gentilmente, ai colleghi esperti di modificare le queries in modo che vadano bene anche con postgres e in con chi è in medicina di gruppo
grazie
saluti
Luca Puccetti Pisa
prima
SELECT number(*) as Num_progr,V_pazienti. cognome ,V_pazienti. nome, V_problemi.problema, V_problemi.dataopen, (days(v_pazienti.datanasc,V_problemi.dataopen )/365)as eta_inizio, (days(v_pazienti.datanasc, today())/365)as eta_attuale, V_problemi.stato_pb FROM V_pazienti, V_PROBLEMI where V_pazienti.codusl=V_problemi.codusl AND (( V_problemi. icd9 >=427.0 and V_problemi.icd9 <=427.3) OR V_problemi. problema like '%fibril%' OR V_problemi.problema like 'flutter') ORDER BY V_pazienti. cognome
seconda
SELECT datanasc, cognome, nome, terapia, sum( quantita )pezzi, sum(prezzo*quantita) spesa FROM V_TERAPIE WHERE ATC like 'B01AA%' GROUP BY datanasc, cognome, nome, terapia ORDER BY cognome
Riguardo alle due estrazioni, trattandosi di uso di viste non occorre nessun codice utente in quanto funzionano sui pazienti del medico che effettua l'accesso a mille utilità. L'unica cosa da fare è impostare il periodo da esaminare.
La seconda query dovrebbe funzionare regolarmente, non vedo errori.
La prima invece presenta delle criticità nella parte:
where V_pazienti.codusl=V_problemi.codusl AND (( V_problemi. icd9 >=427.0 and V_problemi.icd9 <=427.3) OR V_problemi. problema like '%fibril%' OR V_problemi.problema like 'flutter')
Infatti sono forme corrette:
where V_pazienti.codice=V_problemi.codice AND (V_problemi. icd9 > '427.0' and V_problemi.icd9 < '427.4')
oppure meglio
where V_pazienti.codice=V_problemi.codice (V_problemi. icd9 BETWEEN '427.0' and '427.4')
Cioè come campo che collega le due viste si deve usare codice e non codusl, inoltre il segno = non viene preso in considerazione e poi occorre usare gli apici quando si confrontano numeri.
Infine la parte:
V_problemi.problema like 'flutter'
va corretta in:
V_problemi.problema like '%flutter%
per indicare che occorre considerare tutte le definizioni con qualche parola che precede flutter o che segue.
Quindi una forma più corretta e snella può essere:
SELECT number(*) as Num_progr, p.cognome , p.nome, b.problema, b.dataopen as Data, (days(p.datanasc,b.dataopen )/365)as eta_inizio, (days(p.datanasc, today())/365)as eta_attuale, b.stato_pb
FROM V_pazienti p, V_PROBLEMI b
WHERE p.codice=b.codice AND (b.icd9 BETWEEN '427.0' and '427.4' OR b.problema like '%fibril%' OR b.problema like '%flutter%')
ORDER BY 2,3
Naturalmente bisogna decidere precisamente i problemi da considerare ad es. la tachicardia parossistica, il flutter ventricolare, la fibrillazione ventricolare, ecc. e variare eventualmente l'ICD9 o la descrizione del problema.
Grazie! sempre preziossimo.
saluti
Luca Puccetti
lucapuccetti- Nuovo Membro
- Messaggi : 44
Punti : 4960
Voti per importanza dei messaggi : 10
Data d'iscrizione : 02.07.11
Pagina 1 di 1
Permessi in questa sezione del forum:
Non puoi rispondere agli argomenti in questo forum.