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

help x estrazione cockroft

Pagina 1 di 2 1, 2  Seguente

Andare in basso

help x estrazione cockroft

Messaggio  mario shirt il Sab Giu 11, 2016 12:41 am

Help agli esperti... tra pochi giorni dobbiamo presentare per avere soldini elenco  (nome , cognome, sesso ,eta' nome del medico) pazienti ipertesi e diabetici > 60 anni con registrazione valore GFR attraverso la formula di Cockroft o MDRD nell'anno 2015.  opportuno utilizzare la formula che mi permette di avere il nome e cognome da poter variare con le sole iniziali variando la lunghezza delle lettere visualizzate  (Cast?)

Aspetto fiducioso per ringraziare chi ci aiuta..

Mario
avatar
mario shirt
Membro Junior
Membro Junior

Messaggi : 246
Punti : 3029
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: help x estrazione cockroft

Messaggio  mario shirt il Sab Giu 11, 2016 5:20 pm

SELECT p.cognome,  p.nome, (year(today())-year(p.datanasc)) eta, p.sesso


,
Come far venire iniziali nome e cognome'



risolto con

 Cast( p.cognome As Char(1)

Mario
avatar
mario shirt
Membro Junior
Membro Junior

Messaggi : 246
Punti : 3029
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: help x estrazione cockroft

Messaggio  mario shirt il Sab Giu 11, 2016 9:08 pm

mario shirt ha scritto:Help agli esperti... tra pochi giorni dobbiamo presentare per avere soldini elenco  (nome , cognome, sesso ,eta' nome del medico) pazienti ipertesi e diabetici > 60 anni con registrazione valore GFR attraverso la formula di Cockroft o MDRD nell'anno 2015.  opportuno utilizzare la formula che mi permette di avere il nome e cognome da poter variare con le sole iniziali variando la lunghezza delle lettere visualizzate  (Cast?)

Aspetto fiducioso per ringraziare chi ci aiuta..

Mario

Trovata questa query:

SELECT   p.cognome, p.nome, (year(today())-year(p.datanasc)) eta, p.sesso


, CASE WHEN (SELECT count(*) FROM  cart_pazpbl  pb WHERE pb.codice = p.codice AND  pb.cp_code  like  '401%' ) > 0  THEN 1 ELSE 0 END as ipertensione


, CASE WHEN (SELECT count(*) FROM  cart_pazpbl  pb WHERE pb.codice = p.codice AND  pb.cp_code  like  '250%' ) > 0  THEN 1 ELSE 0 END as diabete

, ( SELECT max(a.ac_val) FROM cart_accert a WHERE a.codice = p.codice AND (ac_code = '3952' OR ac_des = 'cock % (sg)') AND ac_val > ''


AND not exists (SELECT x.codice from cart_accert x WHERE x.codice = p.codice AND x.ac_code = a.ac_code and   x.ac_val > '' AND x.data_open > a.data_open  ) ) as Cockroft




,p.medico

FROM V_PAZIENTI p
where (SELECT count(*) FROM  cart_pazpbl  pb WHERE pb.codice = p.codice AND  pb.cp_code  like  '401%' ) > 0 AND  (year(today())-year(p.datanasc)) >60
order by p.cognome, p.nome


come fare a far venire anche i diabetici insieme agli ipertesi? mi da sempre errore.
Come impostare la ricerca solo per un anno?
come impostare solo iniziali trovato e messo nell'altro post

Mario
avatar
mario shirt
Membro Junior
Membro Junior

Messaggi : 246
Punti : 3029
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: help x estrazione cockroft

Messaggio  Cervino il Dom Giu 12, 2016 12:06 pm

mario shirt ha scritto:
mario shirt ha scritto:Help agli esperti... tra pochi giorni dobbiamo presentare per avere soldini elenco  (nome , cognome, sesso ,eta' nome del medico) pazienti ipertesi e diabetici > 60 anni con registrazione valore GFR attraverso la formula di Cockroft o MDRD nell'anno 2015. ...
Aspetto fiducioso per ringraziare chi ci aiuta..

Mario
Trovata questa query:

SELECT   p.cognome, p.nome, (year(today())-year(p.datanasc)) eta, p.sesso ,
CASE WHEN (SELECT count(*) FROM  cart_pazpbl  pb WHERE pb.codice = p.codice AND  pb.cp_code  like  '401%' ) > 0  THEN 1 ELSE 0 END
    as ipertensione ,
CASE WHEN (SELECT count(*) FROM  cart_pazpbl  pb WHERE pb.codice = p.codice AND  pb.cp_code  like  '250%' ) > 0  THEN 1 ELSE 0 END
    as diabete ,
( SELECT max(a.ac_val) FROM cart_accert a WHERE a.codice = p.codice AND (ac_code = '3952' OR ac_des = 'cock % (sg)') AND ac_val > ''
AND not exists (SELECT x.codice from cart_accert x WHERE x.codice = p.codice AND x.ac_code = a.ac_code and   x.ac_val > '' AND x.data_open > a.data_open  ) )
    as Cockroft ,
  p.medico
FROM V_PAZIENTI p
where ( SELECT count(*) FROM  cart_pazpbl  pb WHERE pb.codice = p.codice AND  pb.cp_code  like  '401%' ) > 0
  AND  (year(today())-year(p.datanasc)) >60
order by p.cognome, p.nome

come fare a far venire anche i diabetici insieme agli ipertesi? mi da sempre errore.
Come impostare la ricerca solo per un anno?   come impostare solo iniziali trovato e messo nell'altro post         
Mario
Prova con ( presuntiva, cancello regolarmente in Accertamenti tutte le righe con la suddetta formula ( preferisco avere CKD-EPI eGRF  ) :

SELECT  Left( p.cognome, 1) || Left( p.nome, 1) As paz ,  Cast( Days( p.nascita, Today()+1)*24/8766 As SmallInt )  As  eta ,  p.sesso ,
CASE WHEN (SELECT count(*) FROM cart_pazpbl b WHERE b.codice = p.codice AND b.cp_code  like  '401%' ) > 0  THEN 1 ELSE 0 END  _AHT_ ,
CASE WHEN (SELECT count(*) FROM cart_pazpbl b WHERE b.codice = p.codice AND b.cp_code  like  '250%' ) > 0  THEN 1 ELSE 0 END  _DM_ ,
( SELECT Round( To_Number( a.ac_val , '99999D999' ), 0)  FROM cart_accert a WHERE a.codice = p.codice AND ( a.ac_code = '3952' OR a.ac_des ILIKE '%Creat%Cock%' ) AND a.ac_val > ''  And  Not Exists ( Select a1.codice From cart_accert a1 Where a1.codice=a.codice

And ( a1.ac_code = '3952' OR a1.ac_des ILIKE '%Creat%Cock%' )  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 Year( a.data_open) = '2015' )
    _Cockroft_ ,
 p.medico
FROM  v_pazienti p
WHERE  Days( p.nascita, Today()+1)*24/8766 >60 AND

 (( SELECT count(*) FROM cart_pazpbl b WHERE b.codice = p.codice AND ( b.cp_code ILIKE '401%' )) > 0
 OR ( SELECT count(*) FROM cart_pazpbl b WHERE b.codice = p.codice AND b.cp_code  like  '250%' ) > 0 )
ORDER BY 2 , 3 , 4


Verifica e adatta alle Tue esigenze le condizioni di ricerca .  Ti saluto ,  Sergio Tomasini ,  Orzivecchi ( BS )

Cervino
Membro Junior
Membro Junior

Messaggi : 219
Punti : 2901
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: help x estrazione cockroft

Messaggio  mario shirt il Dom Giu 12, 2016 1:42 pm

Cervino ha scritto:
mario shirt ha scritto:
mario shirt ha scritto:Help agli esperti... tra pochi giorni dobbiamo presentare per avere soldini elenco  (nome , cognome, sesso ,eta' nome del medico) pazienti ipertesi e diabetici > 60 anni con registrazione valore GFR attraverso la formula di Cockroft o MDRD nell'anno 2015. ...
Aspetto fiducioso per ringraziare chi ci aiuta..

Mario
Trovata questa query:

SELECT   p.cognome, p.nome, (year(today())-year(p.datanasc)) eta, p.sesso ,
CASE WHEN (SELECT count(*) FROM  cart_pazpbl  pb WHERE pb.codice = p.codice AND  pb.cp_code  like  '401%' ) > 0  THEN 1 ELSE 0 END
    as ipertensione ,
CASE WHEN (SELECT count(*) FROM  cart_pazpbl  pb WHERE pb.codice = p.codice AND  pb.cp_code  like  '250%' ) > 0  THEN 1 ELSE 0 END
    as diabete ,
( SELECT max(a.ac_val) FROM cart_accert a WHERE a.codice = p.codice AND (ac_code = '3952' OR ac_des = 'cock % (sg)') AND ac_val > ''
AND not exists (SELECT x.codice from cart_accert x WHERE x.codice = p.codice AND x.ac_code = a.ac_code and   x.ac_val > '' AND x.data_open > a.data_open  ) )
    as Cockroft ,
  p.medico
FROM V_PAZIENTI p
where ( SELECT count(*) FROM  cart_pazpbl  pb WHERE pb.codice = p.codice AND  pb.cp_code  like  '401%' ) > 0
  AND  (year(today())-year(p.datanasc)) >60
order by p.cognome, p.nome

come fare a far venire anche i diabetici insieme agli ipertesi? mi da sempre errore.
Come impostare la ricerca solo per un anno?   come impostare solo iniziali trovato e messo nell'altro post         
Mario
Prova con ( presuntiva, cancello regolarmente in Accertamenti tutte le righe con la suddetta formula ( preferisco avere CKD-EPI eGRF  ) :

SELECT  Left( p.cognome, 1) || Left( p.nome, 1) As paz ,  Cast( Days( p.nascita, Today()+1)*24/8766 As SmallInt )  As  eta ,  p.sesso ,
CASE WHEN (SELECT count(*) FROM cart_pazpbl b WHERE b.codice = p.codice AND b.cp_code  like  '401%' ) > 0  THEN 1 ELSE 0 END  _AHT_ ,
CASE WHEN (SELECT count(*) FROM cart_pazpbl b WHERE b.codice = p.codice AND b.cp_code  like  '250%' ) > 0  THEN 1 ELSE 0 END  _DM_ ,
( SELECT Round( To_Number( a.ac_val , '99999D999' ), 0)  FROM cart_accert a WHERE a.codice = p.codice AND ( a.ac_code = '3952' OR a.ac_des ILIKE '%Creat%Cock%' ) AND a.ac_val > ''  And  Not Exists ( Select a1.codice From cart_accert a1 Where a1.codice=a.codice

And ( a1.ac_code = '3952' OR a1.ac_des ILIKE '%Creat%Cock%' )  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 Year( a.data_open) = '2015' )
    _Cockroft_ ,
 p.medico
FROM  v_pazienti p
WHERE  Days( p.nascita, Today()+1)*24/8766 >60 AND

 (( SELECT count(*) FROM cart_pazpbl b WHERE b.codice = p.codice AND ( b.cp_code ILIKE '401%' )) > 0
 OR ( SELECT count(*) FROM cart_pazpbl b WHERE b.codice = p.codice AND b.cp_code  like  '250%' ) > 0 )
ORDER BY 2 , 3 , 4


Verifica e adatta alle Tue esigenze le condizioni di ricerca .  Ti saluto ,  Sergio Tomasini ,  Orzivecchi ( BS )

Grazie mille a chi non e' andato a mare bounce bounce  e aiuta un collega anch'esso a casa Sad e alle prese con gli obiettivi di salute.
Mi da errore SQL la colonna p.nascita non esiste.. Cme rimediare?
Mario
avatar
mario shirt
Membro Junior
Membro Junior

Messaggi : 246
Punti : 3029
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: help x estrazione cockroft

Messaggio  mario shirt il Dom Giu 12, 2016 2:14 pm

mario shirt ha scritto:


Prova con ( presuntiva, cancello regolarmente in Accertamenti tutte le righe con la suddetta formula ( preferisco avere CKD-EPI eGRF  ) :

SELECT  Left( p.cognome, 1) || Left( p.nome, 1) As paz ,  Cast( Days( p.nascita, Today()+1)*24/8766 As SmallInt )  As  eta ,  p.sesso ,
CASE WHEN (SELECT count(*) FROM cart_pazpbl b WHERE b.codice = p.codice AND b.cp_code  like  '401%' ) > 0  THEN 1 ELSE 0 END  _AHT_ ,
CASE WHEN (SELECT count(*) FROM cart_pazpbl b WHERE b.codice = p.codice AND b.cp_code  like  '250%' ) > 0  THEN 1 ELSE 0 END  _DM_ ,
( SELECT Round( To_Number( a.ac_val , '99999D999' ), 0)  FROM cart_accert a WHERE a.codice = p.codice AND ( a.ac_code = '3952' OR a.ac_des ILIKE '%Creat%Cock%' ) AND a.ac_val > ''  And  Not Exists ( Select a1.codice From cart_accert a1 Where a1.codice=a.codice

And ( a1.ac_code = '3952' OR a1.ac_des ILIKE '%Creat%Cock%' )  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 Year( a.data_open) = '2015' )
    _Cockroft_ ,
 p.medico
FROM  v_pazienti p
WHERE  Days( p.nascita, Today()+1)*24/8766 >60 AND

 (( SELECT count(*) FROM cart_pazpbl b WHERE b.codice = p.codice AND ( b.cp_code ILIKE '401%' )) > 0
 OR ( SELECT count(*) FROM cart_pazpbl b WHERE b.codice = p.codice AND b.cp_code  like  '250%' ) > 0 )
ORDER BY 2 , 3 , 4


Verifica e adatta alle Tue esigenze le condizioni di ricerca .  Ti saluto ,  Sergio Tomasini ,  Orzivecchi ( BS )

Grazie mille a chi non e' andato a mare bounce bounce  e aiuta un collega anch'esso a casa Sad e alle prese con gli obiettivi di salute.
Mi da errore SQL la colonna p.nascita non esiste.. Cme rimediare?
Mario

Ho variato (con copia e incolla tra le due query !!) in questo modo mettendo in maniera diversa il limite di eta'

SELECT  Left( p.cognome, 15) || Left( p.nome, 1) As paz ,  p.sesso ,
CASE WHEN (SELECT count(*) FROM cart_pazpbl b WHERE b.codice = p.codice AND b.cp_code  like  '401%' ) > 0  THEN 1 ELSE 0 END  _AHT_ ,
CASE WHEN (SELECT count(*) FROM cart_pazpbl b WHERE b.codice = p.codice AND b.cp_code  like  '250%' ) > 0  THEN 1 ELSE 0 END  _DM_ ,
( SELECT Round( To_Number( a.ac_val , '99999D999' ), 0)  FROM cart_accert a WHERE a.codice = p.codice AND ( a.ac_code = '3952' OR a.ac_des ILIKE '%Creat%Cock%' ) AND a.ac_val > ''  And  Not Exists ( Select a1.codice From cart_accert a1 Where a1.codice=a.codice
And ( a1.ac_code = '3952' OR a1.ac_des ILIKE '%Creat%Cock%' )  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 Year( a.data_open) = '2015' )
    _Cockroft_ ,
 p.medico
FROM  v_pazienti p
WHERE     (year(today())-year(p.datanasc)) >60 AND
 (( SELECT count(*) FROM cart_pazpbl b WHERE b.codice = p.codice AND ( b.cp_code ILIKE '401%' )) > 0
 OR ( SELECT count(*) FROM cart_pazpbl b WHERE b.codice = p.codice AND b.cp_code  like  '250%' ) > 0 )
ORDER BY 2 , 3 , 4


come far venire la colonna eta'?  (scusa ma non mi viene..)  Altra piccola domanda come aggiungo uno spazio tra cognome e nome?

Mario
avatar
mario shirt
Membro Junior
Membro Junior

Messaggi : 246
Punti : 3029
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: help x estrazione cockroft

Messaggio  Lucio Mignone il Lun Giu 13, 2016 10:26 am

mario shirt ha scritto:SELECT p.cognome,  p.nome, (year(today())-year(p.datanasc)) eta, p.sesso


,
Come far venire iniziali nome e cognome'



risolto con

 Cast( p.cognome As Char(1)

Mario


Scusa Mario una domanda, ma se non invii nome e cognome del paziente ed il valore del VFG a che serve averli stadiati per l'insufficienza renale?


Ultima modifica di Lucio Mignone il Lun Giu 13, 2016 10:41 am, modificato 1 volta
avatar
Lucio Mignone
Membro Senior
Membro Senior

Messaggi : 626
Punti : 3464
Voti per importanza dei messaggi : 34
Data d'iscrizione : 20.02.11
Età : 54
Località : CAVRIGLIA (AR)

Visualizza il profilo dell'utente http://comeva.altervista.org/

Torna in alto Andare in basso

Re: help x estrazione cockroft

Messaggio  mario shirt il Lun Giu 13, 2016 10:37 am

Lucio Mignone ha scritto:
mario shirt ha scritto:SELECT p.cognome,  p.nome, (year(today())-year(p.datanasc)) eta, p.sesso


,
Come far venire iniziali nome e cognome'



risolto con

 Cast( p.cognome As Char(1)

Mario


Scusa Mario una domanda, ma se non invii nome e cognome del paziente a che serve averli stadiati per l'insufficienza renale?

Per problemi di privacy si e' deciso cosi, basta dimostrare che abbiamo i dati "noi" e non la ASL. Se abbisognano di controllare verranno in ambulatorio o sae vogliono i dati si contratteranno dal punto di vista sindacale. Avere il nome serve a me x controllare le persone alla asl basterebbe eta' e sesso e iniziali

Mario

Mario
avatar
mario shirt
Membro Junior
Membro Junior

Messaggi : 246
Punti : 3029
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: help x estrazione cockroft

Messaggio  Lucio Mignone il Lun Giu 13, 2016 10:43 am

mario shirt ha scritto:
Lucio Mignone ha scritto:
mario shirt ha scritto:SELECT p.cognome,  p.nome, (year(today())-year(p.datanasc)) eta, p.sesso


,
Come far venire iniziali nome e cognome'



risolto con

 Cast( p.cognome As Char(1)

Mario


Scusa Mario una domanda, ma se non invii nome e cognome del paziente a che serve averli stadiati per l'insufficienza renale?

Per problemi di privacy si e' deciso cosi, basta dimostrare che abbiamo i dati "noi" e non la ASL. Se abbisognano di controllare verranno in ambulatorio o sae vogliono i dati si contratteranno dal punto di vista sindacale. Avere il nome serve a me x controllare le persone alla asl basterebbe eta' e sesso e iniziali

Mario

Mario

L'età del pz la vuoi al momento dell'estrazione oppure al momendo della rilevazione?
avatar
Lucio Mignone
Membro Senior
Membro Senior

Messaggi : 626
Punti : 3464
Voti per importanza dei messaggi : 34
Data d'iscrizione : 20.02.11
Età : 54
Località : CAVRIGLIA (AR)

Visualizza il profilo dell'utente http://comeva.altervista.org/

Torna in alto Andare in basso

Re: help x estrazione cockroft

Messaggio  Lucio Mignone il Lun Giu 13, 2016 10:47 am

mario shirt ha scritto:
Come far venire iniziali nome e cognome'


Mario

Prova se ti va bene questa.
Occchio che questa (come la tua che hai postato) Calcola l'età del paziente al momento dell'estrazione ed anche la clausola età sopra 60 anni si basa sull'età del pz al momento dell'estrazione...


SELECT  Left( p.cognome, 1) || ' ' || Left( p.nome, 1) As paz ,  p.sesso , EXTRACT(YEAR FROM age(now(), P.datanasc)) as Eta_Oggi,
CASE WHEN (SELECT count(*) FROM cart_pazpbl b WHERE b.codice = p.codice AND b.cp_code  like  '401%' ) > 0  THEN 1 ELSE 0 END  _AHT_ ,
CASE WHEN (SELECT count(*) FROM cart_pazpbl b WHERE b.codice = p.codice AND b.cp_code  like  '250%' ) > 0  THEN 1 ELSE 0 END  _DM_ ,
( SELECT Round( To_Number( a.ac_val , '99999D999' ), 0)  FROM cart_accert a WHERE a.codice = p.codice AND ( a.ac_code = '3952' OR a.ac_des ILIKE '%Creat%Cock%' ) AND a.ac_val > ''  And  Not Exists ( Select a1.codice From cart_accert a1 Where a1.codice=a.codice
And ( a1.ac_code = '3952' OR a1.ac_des ILIKE '%Creat%Cock%' )  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 Year( a.data_open) = '2015' )
    _Cockroft_ ,
 p.medico
FROM  v_pazienti p
WHERE   EXTRACT(YEAR FROM age(now(), P.datanasc)) >60 AND
 (( SELECT count(*) FROM cart_pazpbl b WHERE b.codice = p.codice AND ( b.cp_code ILIKE '401%' )) > 0
 OR ( SELECT count(*) FROM cart_pazpbl b WHERE b.codice = p.codice AND b.cp_code  like  '250%' ) > 0 )
ORDER BY 2 , 3 , 4


Ultima modifica di Lucio Mignone il Lun Giu 13, 2016 11:31 am, modificato 2 volte
avatar
Lucio Mignone
Membro Senior
Membro Senior

Messaggi : 626
Punti : 3464
Voti per importanza dei messaggi : 34
Data d'iscrizione : 20.02.11
Età : 54
Località : CAVRIGLIA (AR)

Visualizza il profilo dell'utente http://comeva.altervista.org/

Torna in alto Andare in basso

Re: help x estrazione cockroft

Messaggio  mario shirt il Lun Giu 13, 2016 11:16 am

Lucio Mignone ha scritto:
mario shirt ha scritto:
Come far venire iniziali nome e cognome'


Mario

Prova se ti va bene questa.

SELECT  Left( p.cognome, 1) || ' ' || Left( p.nome, 1) As paz ,  p.sesso , EXTRACT(YEAR FROM age(now(), P.datanasc)) as Eta_Oggi,
CASE WHEN (SELECT count(*) FROM cart_pazpbl b WHERE b.codice = p.codice AND b.cp_code  like  '401%' ) > 0  THEN 1 ELSE 0 END  _AHT_ ,
CASE WHEN (SELECT count(*) FROM cart_pazpbl b WHERE b.codice = p.codice AND b.cp_code  like  '250%' ) > 0  THEN 1 ELSE 0 END  _DM_ ,
( SELECT Round( To_Number( a.ac_val , '99999D999' ), 0)  FROM cart_accert a WHERE a.codice = p.codice AND ( a.ac_code = '3952' OR a.ac_des ILIKE '%Creat%Cock%' ) AND a.ac_val > ''  And  Not Exists ( Select a1.codice From cart_accert a1 Where a1.codice=a.codice
And ( a1.ac_code = '3952' OR a1.ac_des ILIKE '%Creat%Cock%' )  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 Year( a.data_open) = '2015' )
    _Cockroft_ ,
 p.medico
FROM  v_pazienti p
WHERE   EXTRACT(YEAR FROM age(now(), P.datanasc)) >60 AND
 (( SELECT count(*) FROM cart_pazpbl b WHERE b.codice = p.codice AND ( b.cp_code ILIKE '401%' )) > 0
 OR ( SELECT count(*) FROM cart_pazpbl b WHERE b.codice = p.codice AND b.cp_code  like  '250%' ) > 0 )
ORDER BY 2 , 3 , 4


Ok grazie mille, ora intravedo come arrangiarmi nelle piccole variazioni, avevo fatto con copia e incolla la seguente che funziona

SELECT Cast( p.cognome As Char(15)), Cast( p.nome As Char(15)), (year(today())-year(p.datanasc)) eta, p.sesso,



CASE WHEN (SELECT count(*) FROM cart_pazpbl b WHERE b.codice = p.codice AND b.cp_code  like  '401%' ) > 0  THEN 1 ELSE 0 END  _AHT_ ,
CASE WHEN (SELECT count(*) FROM cart_pazpbl b WHERE b.codice = p.codice AND b.cp_code  like  '250%' ) > 0  THEN 1 ELSE 0 END  _DM_ ,
( SELECT Round( To_Number( a.ac_val , '99999D999' ), 0)  FROM cart_accert a WHERE a.codice = p.codice AND ( a.ac_code = '3952' OR a.ac_des ILIKE '%Creat%Cock%'  ) AND a.ac_val > ''  And  Not Exists ( Select a1.codice From cart_accert a1 Where a1.codice=a.codice
And ( a1.ac_code = '3952' OR a1.ac_des ILIKE '%Creat%Cock%' )  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 Year( a.data_open) = '2015' )
    _Cockroft_ ,
 p.medico
FROM  v_pazienti p
WHERE     (year(today())-year(p.datanasc)) >60 AND
 (( SELECT count(*) FROM cart_pazpbl b WHERE b.codice = p.codice AND ( b.cp_code ILIKE '401%' )) > 0
 OR ( SELECT count(*) FROM cart_pazpbl b WHERE b.codice = p.codice AND b.cp_code  like  '250%' ) > 0 )
ORDER BY 2 , 3 , 4

per concludere ti chiedo, visto che sei in linea, come inserire e dove anche la ricerca del GRF secondo MDRD  cod. 5401. Ho provato ad aggiungere un OR  dopo

a.ac_code = '3952' OR a.ac_des ILIKE '%Creat%Cock%'
ma mi da errore..
ultima cosa variare l'anno ok lo so ma mettere 2 o piu' anni o levarlo completamente cosa vario?

Mario
avatar
mario shirt
Membro Junior
Membro Junior

Messaggi : 246
Punti : 3029
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: help x estrazione cockroft

Messaggio  Lucio Mignone il Lun Giu 13, 2016 11:35 am

mario shirt ha scritto:
ultima cosa variare l'anno ok lo so ma mettere 2 o piu' anni o levarlo completamente cosa vario?

Mario

Non ho capito cosa vuoi dire e fare...
Ti risottolineo una cosa
Occhio che la query (come la tua che hai postato) Calcola l'età del paziente al momento dell'estrazione ed anche la clausola età sopra 60 anni si basa sull'età del pz al momento dell'estrazione e non al momento della rilevazione del dato...
avatar
Lucio Mignone
Membro Senior
Membro Senior

Messaggi : 626
Punti : 3464
Voti per importanza dei messaggi : 34
Data d'iscrizione : 20.02.11
Età : 54
Località : CAVRIGLIA (AR)

Visualizza il profilo dell'utente http://comeva.altervista.org/

Torna in alto Andare in basso

Re: help x estrazione cockroft

Messaggio  Lucio Mignone il Lun Giu 13, 2016 12:08 pm

mario shirt ha scritto:

per concludere ti chiedo, visto che sei in linea, come inserire e dove anche la ricerca del GRF secondo MDRD  cod. 5401. Ho provato ad aggiungere un OR  dopo

a.ac_code = '3952' OR a.ac_des ILIKE '%Creat%Cock%'
ma mi da errore..
ultima cosa variare l'anno ok lo so ma mettere 2 o piu' anni o levarlo completamente cosa vario?

Mario

Modificare una query di questo tipo scritta da altri comporta sempre la possibilità di generare nuovi e poco comprensibili errori
Comunque,
Per l'MDRD oppure altri accertamenti devi reinserire tutta la subquery modificando ad hoc i parametri, prova questa qui di seguito.
Per quanto riguarda l'anno ti riferirivi all'arco temporale della ricerca (2015 per intenderci)?



SELECT  Left( p.cognome, 1) || ' ' || Left( p.nome, 1) As paz ,  p.sesso , EXTRACT(YEAR FROM age(now(), P.datanasc)) as Eta_Oggi,
CASE WHEN (SELECT count(*) FROM cart_pazpbl b WHERE b.codice = p.codice AND b.cp_code  like  '401%' ) > 0  THEN 1 ELSE 0 END  _AHT_ ,
CASE WHEN (SELECT count(*) FROM cart_pazpbl b WHERE b.codice = p.codice AND b.cp_code  like  '250%' ) > 0  THEN 1 ELSE 0 END  _DM_ ,
( SELECT Round( To_Number( a.ac_val , '99999D999' ), 0)  FROM cart_accert a WHERE a.codice = p.codice AND ( a.ac_code = '3952' OR a.ac_des ILIKE '%Creat%Cock%' ) AND a.ac_val > ''  And  Not Exists ( Select a1.codice From cart_accert a1 Where a1.codice=a.codice
And ( a1.ac_code = '3952' OR a1.ac_des ILIKE '%Creat%Cock%' )  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 Year( a.data_open) = '2015' )
    _Cockroft_ ,
( SELECT Round( To_Number( a.ac_val , '99999D999' ), 0)  FROM cart_accert a WHERE a.codice = p.codice AND ( a.ac_code = '5401' OR a.ac_des ILIKE '%mdrd%' ) AND a.ac_val > ''  And  Not Exists ( Select a1.codice From cart_accert a1 Where a1.codice=a.codice
And ( a1.ac_code = '5401' OR a1.ac_des ILIKE '%mdrd%' )  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 Year( a.data_open) = '2015' )
    _MDRD_ ,
 p.medico
FROM  v_pazienti p
WHERE   EXTRACT(YEAR FROM age(now(), P.datanasc)) >60 AND
 (( SELECT count(*) FROM cart_pazpbl b WHERE b.codice = p.codice AND ( b.cp_code ILIKE '401%' )) > 0
 OR ( SELECT count(*) FROM cart_pazpbl b WHERE b.codice = p.codice AND b.cp_code  like  '250%' ) > 0 )
ORDER BY 2 , 3 , 4
avatar
Lucio Mignone
Membro Senior
Membro Senior

Messaggi : 626
Punti : 3464
Voti per importanza dei messaggi : 34
Data d'iscrizione : 20.02.11
Età : 54
Località : CAVRIGLIA (AR)

Visualizza il profilo dell'utente http://comeva.altervista.org/

Torna in alto Andare in basso

Re: help x estrazione cockroft

Messaggio  mario shirt il Lun Giu 13, 2016 1:10 pm

Lucio Mignone ha scritto:
mario shirt ha scritto:

per concludere ti chiedo, visto che sei in linea, come inserire e dove anche la ricerca del GRF secondo MDRD  cod. 5401. Ho provato ad aggiungere un OR  dopo

a.ac_code = '3952' OR a.ac_des ILIKE '%Creat%Cock%'
ma mi da errore..
ultima cosa variare l'anno ok lo so ma mettere 2 o piu' anni o levarlo completamente cosa vario?

Mario

Modificare una query di questo tipo scritta da altri comporta sempre la possibilità di generare nuovi e poco comprensibili errori
Comunque,
Per l'MDRD oppure altri accertamenti devi reinserire tutta la subquery modificando ad hoc i parametri, prova questa qui di seguito.
Per quanto riguarda l'anno ti riferirivi all'arco temporale della ricerca (2015 per intenderci)?



SELECT  Left( p.cognome, 1) || ' ' || Left( p.nome, 1) As paz ,  p.sesso , EXTRACT(YEAR FROM age(now(), P.datanasc)) as Eta_Oggi,
CASE WHEN (SELECT count(*) FROM cart_pazpbl b WHERE b.codice = p.codice AND b.cp_code  like  '401%' ) > 0  THEN 1 ELSE 0 END  _AHT_ ,
CASE WHEN (SELECT count(*) FROM cart_pazpbl b WHERE b.codice = p.codice AND b.cp_code  like  '250%' ) > 0  THEN 1 ELSE 0 END  _DM_ ,
( SELECT Round( To_Number( a.ac_val , '99999D999' ), 0)  FROM cart_accert a WHERE a.codice = p.codice AND ( a.ac_code = '3952' OR a.ac_des ILIKE '%Creat%Cock%' ) AND a.ac_val > ''  And  Not Exists ( Select a1.codice From cart_accert a1 Where a1.codice=a.codice
And ( a1.ac_code = '3952' OR a1.ac_des ILIKE '%Creat%Cock%' )  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 Year( a.data_open) = '2015' )
    _Cockroft_ ,
( SELECT Round( To_Number( a.ac_val , '99999D999' ), 0)  FROM cart_accert a WHERE a.codice = p.codice AND ( a.ac_code = '5401' OR a.ac_des ILIKE '%mdrd%' ) AND a.ac_val > ''  And  Not Exists ( Select a1.codice From cart_accert a1 Where a1.codice=a.codice
And ( a1.ac_code = '5401' OR a1.ac_des ILIKE '%mdrd%' )  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 Year( a.data_open) = '2015' )
    _MDRD_ ,
 p.medico
FROM  v_pazienti p
WHERE   EXTRACT(YEAR FROM age(now(), P.datanasc)) >60 AND
 (( SELECT count(*) FROM cart_pazpbl b WHERE b.codice = p.codice AND ( b.cp_code ILIKE '401%' )) > 0
 OR ( SELECT count(*) FROM cart_pazpbl b WHERE b.codice = p.codice AND b.cp_code  like  '250%' ) > 0 )
ORDER BY 2 , 3 , 4


perfetta.. grazie  ho capito dove sbagliavo...

Qual'e' il comando x l'eta' non attuale?

per l'anno mi riferivo all'arco temporale di ricerca : nullo o piu' anni.
Buona settimana e rigrazie

Mario
avatar
mario shirt
Membro Junior
Membro Junior

Messaggi : 246
Punti : 3029
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: help x estrazione cockroft

Messaggio  Cervino il Mar Giu 14, 2016 12:43 am

mario shirt ha scritto:

ultima cosa variare l'anno ok lo so ma mettere 2 o piu' anni o levarlo completamente cosa vario?

perfetta.. grazie  ho capito dove sbagliavo...

Qual'e' il comando x l'eta' non attuale?

per l'anno mi riferivo all'arco temporale di ricerca : nullo o piu' anni.
Buona settimana e rigrazie

Mario


Mario
Purtroppo nel mio MillePS non esiste la vista v_pazienti ( di conseguenza eseguo le prove utilizzando la classica tabella pazienti ; ringrazio Lucio x la tempestiva correzione )

Di solito è uso comune x la Tutela della Privacy, generare un codice paziente di lunghezza adeguata ( almeno 8 caratteri ma anche 16 o 20 ) :  random oppure con un semplice algoritmo ( combinando fra loro vari campi come ad es. CF, codice SSR, indirizzo, telefono ecc. ) per evitare quantomeno facili manipolazioni .

Per variare un periodo temporale di ricerca, varie sono le opzioni :   And Year( a.data_open) IN ( '2014' , '2015' ))     
  And  a.data_open  Between Today()-730 And Today() 
  And  a.data_open  Between '2014-01-01' And '2015-12-31'
      
per  levare la limitazione temporale :  cancellare la relativa condizione o neutralizzarla includendola fra /*  */ ad es. 
   /*  And Year( a.data_open) IN ( '2015' , '2014' )) */

Giusta anche l' osservazione di Lucio riguardo all' età di considerare l' età del Paziente al 31/12/ dell' anno di riferimento,  come nel caso della Vaccinazione AntiInfluenzale, utilizzando ad es.  :
  Year( '2015-12-31')-Year(p.datanasc)    oppure      Year( '2015-01-01')-Year(p.datanasc)  
  Extract( Year From Age( '2015-12-31', p.datanasc))  
( è possibile utilizzare  qualsiasi altri giorno dell' anno di interesse  )



Vi saluto ,  Sergio

Cervino
Membro Junior
Membro Junior

Messaggi : 219
Punti : 2901
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: help x estrazione cockroft

Messaggio  mario shirt il Mar Giu 14, 2016 12:56 am

Cervino ha scritto:
Per variare un periodo temporale di ricerca, varie sono le opzioni :   And Year( a.data_open) IN ( '2014' , '2015' ))     
  And  a.data_open  Between Today()-730 And Today() 
  And  a.data_open  Between '2014-01-01' And '2015-12-31'
      
per  levare la limitazione temporale :  cancellare la relativa condizione o neutralizzarla includendola fra /*  */ ad es. 
   /*  And Year( a.data_open) IN ( '2015' , '2014' )) */

Giusta anche l' osservazione di Lucio riguardo all' età di considerare l' età del Paziente al 31/12/ dell' anno di riferimento,  come nel caso della Vaccinazione AntiInfluenzale, utilizzando ad es.  :
  Year( '2015-12-31')-Year(p.datanasc)    oppure      Year( '2015-01-01')-Year(p.datanasc)  
  Extract( Year From Age( '2015-12-31', p.datanasc))  
( è possibile utilizzare  qualsiasi altri giorno dell' anno di interesse  )



Vi saluto ,  Sergio
Grazie delle ottime spiegazioni, Buona Notte Sergio

Mario
avatar
mario shirt
Membro Junior
Membro Junior

Messaggi : 246
Punti : 3029
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: help x estrazione cockroft

Messaggio  Lucio Mignone il Mar Giu 14, 2016 11:35 am

Cervino ha scritto:
Purtroppo nel mio MillePS non esiste la vista v_pazienti ( di conseguenza eseguo le prove utilizzando la classica tabella pazienti ; ringrazio Lucio x la tempestiva correzione )
....

Vi saluto ,  Sergio

Maestro Sergio non mi ero accorto che aveva scritto Lei la query altrimenti non mi sarei mai permesso di apportare una qualsivoglia modifica..
Smile

Grazie per le altre utili e preziose  indicazioni.


PS in effetti se si lavora con programmi esterni a Milleutilità si perde la possibilita di usare le viste tipo v_pazienti etc. etc.
avatar
Lucio Mignone
Membro Senior
Membro Senior

Messaggi : 626
Punti : 3464
Voti per importanza dei messaggi : 34
Data d'iscrizione : 20.02.11
Età : 54
Località : CAVRIGLIA (AR)

Visualizza il profilo dell'utente http://comeva.altervista.org/

Torna in alto Andare in basso

Re: help x estrazione cockroft

Messaggio  Cervino il Mer Giu 15, 2016 12:53 am

Lucio Mignone ha scritto:
Maestro Sergio non mi ero accorto che aveva scritto Lei la query altrimenti non mi sarei mai permesso di apportare una qualsivoglia modifica..  Smile
   Grazie per le altre utili e preziose  indicazioni.
PS in effetti se si lavora con programmi esterni a Milleutilità si perde la possibilita di usare le viste tipo v_pazienti etc. etc.
Nessuna offesa Lucio, anzi grazie x il Tuo contributo e per le Tue osservazioni ma forse certi attributi di stato sono eccessivi .. visto che l' errore è sempre in agguato e che le query sono sempre perfettibili .

Comunque x le Viste di Default presenti in MW / MU, nessun rimpianto ; con PgAdminIII posso creare , modificare , cancellare svariati tipi di Vista ( in modo analogo ai Registri dei Pazienti con vari tipi di Patologia presenti in MW ) che semplificano e facilitano la scrittura delle clausole e delle condizioni di ricerca nelle  query ( di solito l' istruzione viene eseguita anche piu' velocemente ) ;      ma non Mi sovviene certo l' idea di cambiare i nomi del campi delle Tabelle nelle Viste ( che cosi tanti problemi causa anche nel Forum ), anzi di solito attribuisco al campo un nome alternativo di comodo .

Vi saluto ,  Sergio

Cervino
Membro Junior
Membro Junior

Messaggi : 219
Punti : 2901
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: help x estrazione cockroft

Messaggio  mario shirt il Mer Giu 15, 2016 6:02 pm

mario shirt ha scritto:
Cervino ha scritto:
Per variare un periodo temporale di ricerca, varie sono le opzioni :   And Year( a.data_open) IN ( '2014' , '2015' ))     
  And  a.data_open  Between Today()-730 And Today() 
  And  a.data_open  Between '2014-01-01' And '2015-12-31'
      
per  levare la limitazione temporale :  cancellare la relativa condizione o neutralizzarla includendola fra /*  */ ad es. 
   /*  And Year( a.data_open) IN ( '2015' , '2014' )) */

Giusta anche l' osservazione di Lucio riguardo all' età di considerare l' età del Paziente al 31/12/ dell' anno di riferimento,  come nel caso della Vaccinazione AntiInfluenzale, utilizzando ad es.  :
  Year( '2015-12-31')-Year(p.datanasc)    oppure      Year( '2015-01-01')-Year(p.datanasc)  
  Extract( Year From Age( '2015-12-31', p.datanasc))  
( è possibile utilizzare  qualsiasi altri giorno dell' anno di interesse  )
Scusa Sergio mi puoi spiegare come mai se inserisco /*   */ per levare data mi da errore di sintassi , idem se aggiungo 2014 come da te scritto?
Altra cosa: in molti paziennti che hanno in cartella il valore del Cockroft o del GR non risultano i valori nell'estrazione ( verificata l'esistenza del valore anche daparte degli altri 4 colleghi del mio gruppo)

Saluti
Mario
avatar
mario shirt
Membro Junior
Membro Junior

Messaggi : 246
Punti : 3029
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: help x estrazione cockroft

Messaggio  Lucio Mignone il Mer Giu 15, 2016 7:43 pm

mario shirt ha scritto:
mario shirt ha scritto:
Cervino ha scritto:
Per variare un periodo temporale di ricerca, varie sono le opzioni :   And Year( a.data_open) IN ( '2014' , '2015' ))     
  And  a.data_open  Between Today()-730 And Today() 
  And  a.data_open  Between '2014-01-01' And '2015-12-31'
      
per  levare la limitazione temporale :  cancellare la relativa condizione o neutralizzarla includendola fra /*  */ ad es. 
   /*  And Year( a.data_open) IN ( '2015' , '2014' )) */

Giusta anche l' osservazione di Lucio riguardo all' età di considerare l' età del Paziente al 31/12/ dell' anno di riferimento,  come nel caso della Vaccinazione AntiInfluenzale, utilizzando ad es.  :
  Year( '2015-12-31')-Year(p.datanasc)    oppure      Year( '2015-01-01')-Year(p.datanasc)  
  Extract( Year From Age( '2015-12-31', p.datanasc))  
( è possibile utilizzare  qualsiasi altri giorno dell' anno di interesse  )
Scusa Sergio mi puoi spiegare come mai se inserisco /*   */ per levare data mi da errore di sintassi , idem se aggiungo 2014 come da te scritto?
Altra cosa: in molti paziennti che hanno in cartella il valore del Cockroft o del GR non risultano i valori nell'estrazione ( verificata l'esistenza del valore anche daparte degli altri 4 colleghi del mio gruppo)

Saluti
Mario



Posta la query con la modifica che ti da errore

se il problema è questa riga
   /*  And Year( a.data_open) IN ( '2015' , '2014' )) */
togli l'ultima parentesi che mi pare di troppo...
facendola diventare questa:

   /*  And Year( a.data_open) IN ( '2015' , '2014' ) */
avatar
Lucio Mignone
Membro Senior
Membro Senior

Messaggi : 626
Punti : 3464
Voti per importanza dei messaggi : 34
Data d'iscrizione : 20.02.11
Età : 54
Località : CAVRIGLIA (AR)

Visualizza il profilo dell'utente http://comeva.altervista.org/

Torna in alto Andare in basso

Re: help x estrazione cockroft

Messaggio  mario shirt il Mer Giu 15, 2016 10:06 pm

Lucio Mignone ha scritto:
mario shirt ha scritto:
Scusa Sergio mi puoi spiegare come mai se inserisco /*   */ per levare data mi da errore di sintassi , idem se aggiungo 2014 come da te scritto?
Altra cosa: in molti paziennti che hanno in cartella il valore del Cockroft o del GR non risultano i valori nell'estrazione ( verificata l'esistenza del valore anche daparte degli altri 4 colleghi del mio gruppo)

Saluti
Mario



Posta la query con la modifica che ti da errore

se il problema è questa riga
   /*  And Year( a.data_open) IN ( '2015' , '2014' )) */
togli l'ultima parentesi che mi pare di troppo...
facendola diventare questa:

   /*  And Year( a.data_open) IN ( '2015' , '2014' ) */


SELECT  Left( p.cognome, 1) || ' ' || Left( p.nome, 1) As paz ,  p.sesso , EXTRACT(YEAR FROM age(public.now(), P.datanasc)) as Eta_Oggi,
CASE WHEN (SELECT count(*) FROM cart_pazpbl b WHERE b.codice = p.codice AND b.cp_code  like  '401%' ) > 0  THEN 1 ELSE 0 END  _AHT_ ,
CASE WHEN (SELECT count(*) FROM cart_pazpbl b WHERE b.codice = p.codice AND b.cp_code  like  '250%' ) > 0  THEN 1 ELSE 0 END  _DM_ ,
( SELECT Round( To_Number( a.ac_val , '99999D999' ), 0)  FROM cart_accert a WHERE a.codice = p.codice AND ( a.ac_code = '3952' OR a.ac_des ILIKE '%Creat%Cock%' ) AND a.ac_val > ''  And  Not Exists ( Select a1.codice From cart_accert a1 Where a1.codice=a.codice
And ( a1.ac_code = '3952' OR a1.ac_des ILIKE '%Creat%Cock%' )  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 Year( a.data_open) = '2015' )
    _Cockroft_ ,
( SELECT Round( To_Number( a.ac_val , '99999D999' ), 0)  FROM cart_accert a WHERE a.codice = p.codice AND ( a.ac_code = '5401' OR a.ac_des ILIKE '%mdrd%' ) AND a.ac_val > ''  And  Not Exists ( Select a1.codice From cart_accert a1 Where a1.codice=a.codice
And ( a1.ac_code = '5401' OR a1.ac_des ILIKE '%mdrd%' )  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 Year( a.data_open) IN ( '2015' , '2014' ) 
    _MDRD_ ,
 p.medico
FROM  v_pazienti p
WHERE   EXTRACT(YEAR FROM age(public.now(), P.datanasc)) >60 AND
 (( SELECT count(*) FROM cart_pazpbl b WHERE b.codice = p.codice AND ( b.cp_code ILIKE '401%' )) > 0
 OR ( SELECT count(*) FROM cart_pazpbl b WHERE b.codice = p.codice AND b.cp_code  like  '250%' ) > 0 )
ORDER BY 2 , 3 , 4


questa query mi da errore anche se metto

/*  And Year( a.data_open) IN ( '2015' , '2014' ) */

Mario
avatar
mario shirt
Membro Junior
Membro Junior

Messaggi : 246
Punti : 3029
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: help x estrazione cockroft

Messaggio  Lucio Mignone il Gio Giu 16, 2016 12:07 am

Lucio Mignone ha scritto:
mario shirt ha scritto:
mario shirt ha scritto:
Cervino ha scritto:
Per variare un periodo temporale di ricerca, varie sono le opzioni :   And Year( a.data_open) IN ( '2014' , '2015' ))     
  And  a.data_open  Between Today()-730 And Today() 
  And  a.data_open  Between '2014-01-01' And '2015-12-31'
      
per  levare la limitazione temporale :  cancellare la relativa condizione o neutralizzarla includendola fra /*  */ ad es. 
   /*  And Year( a.data_open) IN ( '2015' , '2014' )) */

Giusta anche l' osservazione di Lucio riguardo all' età di considerare l' età del Paziente al 31/12/ dell' anno di riferimento,  come nel caso della Vaccinazione AntiInfluenzale, utilizzando ad es.  :
  Year( '2015-12-31')-Year(p.datanasc)    oppure      Year( '2015-01-01')-Year(p.datanasc)  
  Extract( Year From Age( '2015-12-31', p.datanasc))  
( è possibile utilizzare  qualsiasi altri giorno dell' anno di interesse  )
Scusa Sergio mi puoi spiegare come mai se inserisco /*   */ per levare data mi da errore di sintassi , idem se aggiungo 2014 come da te scritto?
Altra cosa: in molti paziennti che hanno in cartella il valore del Cockroft o del GR non risultano i valori nell'estrazione ( verificata l'esistenza del valore anche daparte degli altri 4 colleghi del mio gruppo)

Saluti
Mario



Posta la query con la modifica che ti da errore

se il problema è questa riga
   /*  And Year( a.data_open) IN ( '2015' , '2014' )) */
togli l'ultima parentesi che mi pare di troppo...
facendola diventare questa:

   /*  And Year( a.data_open) IN ( '2015' , '2014' ) */


mi correggo, la seconda parentesi ci vuole quando l'istruzione è inserita nella select...
avatar
Lucio Mignone
Membro Senior
Membro Senior

Messaggi : 626
Punti : 3464
Voti per importanza dei messaggi : 34
Data d'iscrizione : 20.02.11
Età : 54
Località : CAVRIGLIA (AR)

Visualizza il profilo dell'utente http://comeva.altervista.org/

Torna in alto Andare in basso

Re: help x estrazione cockroft

Messaggio  Lucio Mignone il Gio Giu 16, 2016 12:10 am

mario shirt ha scritto:
Lucio Mignone ha scritto:
mario shirt ha scritto:
Scusa Sergio mi puoi spiegare come mai se inserisco /*   */ per levare data mi da errore di sintassi , idem se aggiungo 2014 come da te scritto?
Altra cosa: in molti paziennti che hanno in cartella il valore del Cockroft o del GR non risultano i valori nell'estrazione ( verificata l'esistenza del valore anche daparte degli altri 4 colleghi del mio gruppo)

Saluti
Mario



Posta la query con la modifica che ti da errore

se il problema è questa riga
   /*  And Year( a.data_open) IN ( '2015' , '2014' )) */
togli l'ultima parentesi che mi pare di troppo...
facendola diventare questa:

   /*  And Year( a.data_open) IN ( '2015' , '2014' ) */


SELECT  Left( p.cognome, 1) || ' ' || Left( p.nome, 1) As paz ,  p.sesso , EXTRACT(YEAR FROM age(public.now(), P.datanasc)) as Eta_Oggi,
CASE WHEN (SELECT count(*) FROM cart_pazpbl b WHERE b.codice = p.codice AND b.cp_code  like  '401%' ) > 0  THEN 1 ELSE 0 END  _AHT_ ,
CASE WHEN (SELECT count(*) FROM cart_pazpbl b WHERE b.codice = p.codice AND b.cp_code  like  '250%' ) > 0  THEN 1 ELSE 0 END  _DM_ ,
( SELECT Round( To_Number( a.ac_val , '99999D999' ), 0)  FROM cart_accert a WHERE a.codice = p.codice AND ( a.ac_code = '3952' OR a.ac_des ILIKE '%Creat%Cock%' ) AND a.ac_val > ''  And  Not Exists ( Select a1.codice From cart_accert a1 Where a1.codice=a.codice
And ( a1.ac_code = '3952' OR a1.ac_des ILIKE '%Creat%Cock%' )  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 Year( a.data_open) = '2015' )
    _Cockroft_ ,
( SELECT Round( To_Number( a.ac_val , '99999D999' ), 0)  FROM cart_accert a WHERE a.codice = p.codice AND ( a.ac_code = '5401' OR a.ac_des ILIKE '%mdrd%' ) AND a.ac_val > ''  And  Not Exists ( Select a1.codice From cart_accert a1 Where a1.codice=a.codice
And ( a1.ac_code = '5401' OR a1.ac_des ILIKE '%mdrd%' )  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 Year( a.data_open) IN ( '2015' , '2014' ) 
    _MDRD_ ,
 p.medico
FROM  v_pazienti p
WHERE   EXTRACT(YEAR FROM age(public.now(), P.datanasc)) >60 AND
 (( SELECT count(*) FROM cart_pazpbl b WHERE b.codice = p.codice AND ( b.cp_code ILIKE '401%' )) > 0
 OR ( SELECT count(*) FROM cart_pazpbl b WHERE b.codice = p.codice AND b.cp_code  like  '250%' ) > 0 )
ORDER BY 2 , 3 , 4


questa query mi da errore anche se metto

/*  And Year( a.data_open) IN ( '2015' , '2014' ) */

Mario



 Quindi a me questa funziona...

SELECT  Left( p.cognome, 1) || ' ' || Left( p.nome, 1) As paz ,  p.sesso , EXTRACT(YEAR FROM age(now(), P.datanasc)) as Eta_Oggi,
CASE WHEN (SELECT count(*) FROM cart_pazpbl b WHERE b.codice = p.codice AND b.cp_code  like  '401%' ) > 0  THEN 1 ELSE 0 END  _AHT_ ,
CASE WHEN (SELECT count(*) FROM cart_pazpbl b WHERE b.codice = p.codice AND b.cp_code  like  '250%' ) > 0  THEN 1 ELSE 0 END  _DM_ ,
( SELECT Round( To_Number( a.ac_val , '99999D999' ), 0)  FROM cart_accert a WHERE a.codice = p.codice AND ( a.ac_code = '3952' OR a.ac_des ILIKE '%Creat%Cock%' ) AND a.ac_val > ''  And  Not Exists ( Select a1.codice From cart_accert a1 Where a1.codice=a.codice
And ( a1.ac_code = '3952' OR a1.ac_des ILIKE '%Creat%Cock%' )  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 Year( a.data_open) = '2015' )
    _Cockroft_ ,
( SELECT Round( To_Number( a.ac_val , '99999D999' ), 0)  FROM cart_accert a WHERE a.codice = p.codice AND ( a.ac_code = '5401' OR a.ac_des ILIKE '%mdrd%' ) AND a.ac_val > ''  And  Not Exists ( Select a1.codice From cart_accert a1 Where a1.codice=a.codice
And ( a1.ac_code = '5401' OR a1.ac_des ILIKE '%mdrd%' )  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 Year( a.data_open) IN ( '2015' , '2014' ))
    _MDRD_ ,
 p.medico
FROM  v_pazienti p
WHERE   EXTRACT(YEAR FROM age(now(), P.datanasc)) >60 AND
 (( SELECT count(*) FROM cart_pazpbl b WHERE b.codice = p.codice AND ( b.cp_code ILIKE '401%' )) > 0
 OR ( SELECT count(*) FROM cart_pazpbl b WHERE b.codice = p.codice AND b.cp_code  like  '250%' ) > 0 )
ORDER BY 2 , 3 , 4
avatar
Lucio Mignone
Membro Senior
Membro Senior

Messaggi : 626
Punti : 3464
Voti per importanza dei messaggi : 34
Data d'iscrizione : 20.02.11
Età : 54
Località : CAVRIGLIA (AR)

Visualizza il profilo dell'utente http://comeva.altervista.org/

Torna in alto Andare in basso

Re: help x estrazione cockroft

Messaggio  Cervino il Gio Giu 16, 2016 2:31 am

mario shirt ha scritto:
mario shirt ha scritto:
Scusa Sergio mi puoi spiegare come mai se inserisco /*   */ per levare data mi da errore di sintassi , idem se aggiungo 2014 come da te scritto?
Altra cosa: in molti pazienti che hanno in cartella il valore del Cockroft o del GR non risultano i valori nell'estrazione ( verificata l'esistenza del valore anche da parte degli altri 4 colleghi del mio gruppo)               Saluti   Mario

Evidentemente va verificata almeno una clausola di inclusione nelle condizioni di ricerca,
utilizzando una query piu' semplice , ad es. :

Select * From cart_accert a Where a.ac_des Ilike '%Creat%' And Year( a.data_open) = '2015'

e modifica di conseguenza le clausole di interesse, in base ai dati restituiti 
oppure prova con ( ho aggiunto la colonna data x verifica ) :


SELECT  Left( p.cognome, 1) || ' ' || Left( p.nome, 1) As paz ,  p.sesso ,
Year( '2015-12-31') - Year( p.datanasc) As eta ,
CASE WHEN (Select Count(*) FROM cart_pazpbl b WHERE b.codice = p.codice AND b.cp_code ILIKE  '401%' ) > 0  THEN 1 ELSE 0 END      _AHT_ ,
CASE WHEN (Select Count(*) FROM cart_pazpbl b WHERE b.codice = p.codice AND b.cp_code ILIKE  '250%' ) > 0  THEN 1 ELSE 0 END     _DM_ ,
( SELECT Round( To_Number( a.ac_val , '99999D999' ), 0)  FROM cart_accert a WHERE a.codice = p.codice AND ( a.ac_code = '3952' OR a.ac_des ILIKE '%Creat%Cock%' )
 AND Ascii( a.ac_val) BETWEEN 48 AND 57 And  Not Exists ( Select a1.codice From cart_accert a1 Where a1.codice=a.codice And ( a1.ac_code = '3952' OR a1.ac_des
 ILIKE '%Creat%Cock%' )  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 Year( a.data_open) IN ( '2015' , '2014' ) )
              _Cockroft_ ,
( SELECT a.data_open FROM cart_accert a WHERE a.codice = p.codice AND ( a.ac_code = '3952' OR a.ac_des ILIKE '%Creat%Cock%' ) AND Ascii( a.ac_val) BETWEEN 48 AND 57
 And  Not Exists ( Select a1.codice From cart_accert a1 Where a1.codice=a.codice And ( a1.ac_code = '3952' OR a1.ac_des  ILIKE '%Creat%Cock%' )  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 Year( a.data_open) IN ( '2015' , '2014' ) )
             _Cockroft_d_ ,
( SELECT Round( To_Number( a.ac_val , '99999D999' ), 0) FROM cart_accert a WHERE a.codice = p.codice AND ( a.ac_code = '5401' OR a.ac_des ILIKE '%MDRD%' )
 AND Ascii( a.ac_val) BETWEEN 48 AND 57 And  Not Exists ( Select a1.codice From cart_accert a1 Where a1.codice=a.codice  And ( a1.ac_code = '5401' OR a1.ac_des  ILIKE '%mdrd%' )  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 Year( a.data_open) IN ( '2015' , '2014' ) )           _MDRD_ ,                p.medico
FROM  v_pazienti  p
WHERE   Year( '2015-12-31') - Year( p.datanasc) >60          AND
 (( Select Count(*) FROM cart_pazpbl b WHERE b.codice = p.codice AND b.cp_code ILIKE  '401%' ) > 0
OR  (Select Count(*) FROM cart_pazpbl b WHERE b.codice = p.codice AND b.cp_code ILIKE  '250%' ) > 0 )
ORDER BY  3 , 4 , 5


Per disattivare una clausola usa      /*    */       ponendo attenzione alle parentesi, ad es. : 
/* And Year( a.data_open) IN ( '2015' , '2014' ) */ )
come suggerito da Lucio
Ti saluto ,  Sergio

Cervino
Membro Junior
Membro Junior

Messaggi : 219
Punti : 2901
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: help x estrazione cockroft

Messaggio  mario shirt il Gio Giu 16, 2016 6:37 pm

Cervino ha scritto:
mario shirt ha scritto:
mario shirt ha scritto:
Scusa Sergio mi puoi spiegare come mai se inserisco /*   */ per levare data mi da errore di sintassi , idem se aggiungo 2014 come da te scritto?
Altra cosa: in molti pazienti che hanno in cartella il valore del Cockroft o del GR non risultano i valori nell'estrazione ( verificata l'esistenza del valore anche da parte degli altri 4 colleghi del mio gruppo)               Saluti   Mario

Evidentemente va verificata almeno una clausola di inclusione nelle condizioni di ricerca,
utilizzando una query piu' semplice , ad es. :

Select * From cart_accert a Where a.ac_des Ilike '%Creat%' And Year( a.data_open) = '2015'

e modifica di conseguenza le clausole di interesse, in base ai dati restituiti 
oppure prova con ( ho aggiunto la colonna data x verifica ) :


SELECT  Left( p.cognome, 1) || ' ' || Left( p.nome, 1) As paz ,  p.sesso ,
Year( '2015-12-31') - Year( p.datanasc) As eta ,
CASE WHEN (Select Count(*) FROM cart_pazpbl b WHERE b.codice = p.codice AND b.cp_code ILIKE  '401%' ) > 0  THEN 1 ELSE 0 END      _AHT_ ,
CASE WHEN (Select Count(*) FROM cart_pazpbl b WHERE b.codice = p.codice AND b.cp_code ILIKE  '250%' ) > 0  THEN 1 ELSE 0 END     _DM_ ,
( SELECT Round( To_Number( a.ac_val , '99999D999' ), 0)  FROM cart_accert a WHERE a.codice = p.codice AND ( a.ac_code = '3952' OR a.ac_des ILIKE '%Creat%Cock%' )
 AND Ascii( a.ac_val) BETWEEN 48 AND 57 And  Not Exists ( Select a1.codice From cart_accert a1 Where a1.codice=a.codice And ( a1.ac_code = '3952' OR a1.ac_des
 ILIKE '%Creat%Cock%' )  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 Year( a.data_open) IN ( '2015' , '2014' ) )
              _Cockroft_ ,
( SELECT a.data_open FROM cart_accert a WHERE a.codice = p.codice AND ( a.ac_code = '3952' OR a.ac_des ILIKE '%Creat%Cock%' ) AND Ascii( a.ac_val) BETWEEN 48 AND 57
 And  Not Exists ( Select a1.codice From cart_accert a1 Where a1.codice=a.codice And ( a1.ac_code = '3952' OR a1.ac_des  ILIKE '%Creat%Cock%' )  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 Year( a.data_open) IN ( '2015' , '2014' ) )
             _Cockroft_d_ ,
( SELECT Round( To_Number( a.ac_val , '99999D999' ), 0) FROM cart_accert a WHERE a.codice = p.codice AND ( a.ac_code = '5401' OR a.ac_des ILIKE '%MDRD%' )
 AND Ascii( a.ac_val) BETWEEN 48 AND 57 And  Not Exists ( Select a1.codice From cart_accert a1 Where a1.codice=a.codice  And ( a1.ac_code = '5401' OR a1.ac_des  ILIKE '%mdrd%' )  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 Year( a.data_open) IN ( '2015' , '2014' ) )           _MDRD_ ,                p.medico
FROM  v_pazienti  p
WHERE   Year( '2015-12-31') - Year( p.datanasc) >60          AND
 (( Select Count(*) FROM cart_pazpbl b WHERE b.codice = p.codice AND b.cp_code ILIKE  '401%' ) > 0
OR  (Select Count(*) FROM cart_pazpbl b WHERE b.codice = p.codice AND b.cp_code ILIKE  '250%' ) > 0 )
ORDER BY  3 , 4 , 5


Per disattivare una clausola usa      /*    */       ponendo attenzione alle parentesi, ad es. : 
/* And Year( a.data_open) IN ( '2015' , '2014' ) */ )
come suggerito da Lucio
Ti saluto ,  Sergio
Grazie mille Sergio, sembra che funzioni alla perfezione, non mi sembra che ci siano assenze di risultati nell'estrazione.
Visto che ci siamo mi spieghi cosa vuol dire questa espressione SELECT Round( To_Number( a.ac_val , '99999D999' ) e soprattutto il valore 99999D999? e
AND Ascii( a.ac_val) BETWEEN 48 AND 57
Mario

P.S. io principiante (e copia incollista !!) sarei per capire le cose semplici
, avresti ridotto di molto la query utilizzando
Select * From cart_accert a Where a.ac_des Ilike '%Creat%' And Year( a.data_open) = '2015'
avatar
mario shirt
Membro Junior
Membro Junior

Messaggi : 246
Punti : 3029
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: help x estrazione cockroft

Messaggio  Contenuto sponsorizzato


Contenuto sponsorizzato


Torna in alto Andare in basso

Pagina 1 di 2 1, 2  Seguente

Torna in alto

- Argomenti simili

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