FORUM PER UTENTI MILLEWIN
Attenzione !
Per intervenire sul forum è necessario essere registrati e connessi.

L'Amministratore

****************************************************
“Se tu hai una mela ed io ho una mela, e ce la scambiamo, alla fine tu ed io avremo sempre una mela ciascuno.
Ma se tu hai un’idea ed io ho un’idea, e ce la scambiamo, allora avremo entrambi due idee”.

George Bernard Shaw
****************************************************

Fibrillazione atriale

Andare in basso

Fibrillazione atriale

Messaggio  lucapuccetti il Sab 28 Dic 2013 - 14:31

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

lucapuccetti
Nuovo Membro
Nuovo Membro

Messaggi : 43
Punti : 2613
Voti per importanza dei messaggi : 10
Data d'iscrizione : 02.07.11

Visualizza il profilo dell'utente

Torna in alto Andare in basso

Re: Fibrillazione atriale

Messaggio  Cervino il Gio 2 Gen 2014 - 23:56

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
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  .

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
Membro Junior

Messaggi : 219
Punti : 2903
Voti per importanza dei messaggi : 16
Data d'iscrizione : 03.03.11
Età : 63
Località : Orzivecchi (BS)

Visualizza il profilo dell'utente

Torna in alto Andare in basso

Re: Fibrillazione atriale

Messaggio  lucapuccetti il Sab 4 Gen 2014 - 21:19

Cervino ha scritto:
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
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  .

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
Nuovo Membro

Messaggi : 43
Punti : 2613
Voti per importanza dei messaggi : 10
Data d'iscrizione : 02.07.11

Visualizza il profilo dell'utente

Torna in alto Andare in basso

Re: Fibrillazione atriale

Messaggio  Cervino il Sab 4 Gen 2014 - 23:27

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 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

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
Membro Junior

Messaggi : 219
Punti : 2903
Voti per importanza dei messaggi : 16
Data d'iscrizione : 03.03.11
Età : 63
Località : Orzivecchi (BS)

Visualizza il profilo dell'utente

Torna in alto Andare in basso

Re: Fibrillazione atriale

Messaggio  LucaLeF il Lun 6 Gen 2014 - 12:52

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

LucaLeF
Membro Esperto
Membro Esperto

Messaggi : 442
Punti : 3510
Voti per importanza dei messaggi : 11
Data d'iscrizione : 21.02.11

Visualizza il profilo dell'utente

Torna in alto Andare in basso

fibrillazione atriale

Messaggio  lucapuccetti il Lun 6 Gen 2014 - 22:52

Purtroppo non mi funziona neppure la terza , quella semplificata, mi rimane in caricamento all'infinito.

grazie saluti

Luca Puccetti Pisa

lucapuccetti
Nuovo Membro
Nuovo Membro

Messaggi : 43
Punti : 2613
Voti per importanza dei messaggi : 10
Data d'iscrizione : 02.07.11

Visualizza il profilo dell'utente

Torna in alto Andare in basso

Re: Fibrillazione atriale

Messaggio  Cervino il Mar 7 Gen 2014 - 1:35

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
Membro Junior

Messaggi : 219
Punti : 2903
Voti per importanza dei messaggi : 16
Data d'iscrizione : 03.03.11
Età : 63
Località : Orzivecchi (BS)

Visualizza il profilo dell'utente

Torna in alto Andare in basso

Re: Fibrillazione atriale

Messaggio  Cervino il Mar 7 Gen 2014 - 1:56

lucapuccetti ha scritto:Purtroppo non mi funziona neppure la terza , quella semplificata, mi rimane in caricamento all'infinito.

grazie saluti

Luca Puccetti Pisa
Evidentemente trattati di 2 database che richiedono in parte diversi linguaggi SQL , per cui non posso esserti di aiuto .    Prova per curiosità eventualmente con :

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
Membro Junior

Messaggi : 219
Punti : 2903
Voti per importanza dei messaggi : 16
Data d'iscrizione : 03.03.11
Età : 63
Località : Orzivecchi (BS)

Visualizza il profilo dell'utente

Torna in alto Andare in basso

Re: Fibrillazione atriale

Messaggio  mario shirt il Mer 8 Gen 2014 - 16:36

Cervino ha scritto:
lucapuccetti ha scritto:Purtroppo non mi funziona neppure la terza , quella semplificata, mi rimane in caricamento all'infinito.

grazie saluti

Luca Puccetti Pisa
Evidentemente trattati di 2 database che richiedono in parte diversi linguaggi SQL , per cui non posso esserti di aiuto .    Prova per curiosità eventualmente con :

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
avatar
mario shirt
Membro Junior
Membro Junior

Messaggi : 246
Punti : 3031
Voti per importanza dei messaggi : 4
Data d'iscrizione : 21.02.11
Età : 62

Visualizza il profilo dell'utente

Torna in alto Andare in basso

Re: Fibrillazione atriale

Messaggio  Admin il Mer 8 Gen 2014 - 20:09

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

_________________
L'Amministratore
Giuseppe Blasio
avatar
Admin
Admin
Admin

Messaggi : 521
Punti : 3326
Voti per importanza dei messaggi : 85
Data d'iscrizione : 20.02.11
Località : CASERTA

Visualizza il profilo dell'utente http://utentimillewin.forumattivo.it

Torna in alto Andare in basso

Re: Fibrillazione atriale

Messaggio  lucapuccetti il Sab 8 Mar 2014 - 14:31

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
Nuovo Membro

Messaggi : 43
Punti : 2613
Voti per importanza dei messaggi : 10
Data d'iscrizione : 02.07.11

Visualizza il profilo dell'utente

Torna in alto Andare in basso

Re: Fibrillazione atriale

Messaggio  Admin il Dom 9 Mar 2014 - 21:03

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
Non son in grado di dare una risposta riguardo alle viste con postgreSql.
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.co
dice=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.

_________________
L'Amministratore
Giuseppe Blasio
avatar
Admin
Admin
Admin

Messaggi : 521
Punti : 3326
Voti per importanza dei messaggi : 85
Data d'iscrizione : 20.02.11
Località : CASERTA

Visualizza il profilo dell'utente http://utentimillewin.forumattivo.it

Torna in alto Andare in basso

fibrillqzione atriale

Messaggio  lucapuccetti il Dom 9 Mar 2014 - 22:57

Admin ha scritto:
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
Non son in grado di dare una risposta riguardo alle viste con postgreSql.
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.co
dice=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
Nuovo Membro

Messaggi : 43
Punti : 2613
Voti per importanza dei messaggi : 10
Data d'iscrizione : 02.07.11

Visualizza il profilo dell'utente

Torna in alto Andare in basso

Re: Fibrillazione atriale

Messaggio  Contenuto sponsorizzato


Contenuto sponsorizzato


Torna in alto Andare in basso

Torna in alto

- Argomenti simili

 
Permessi di questa sezione del forum:
Non puoi rispondere agli argomenti in questo forum