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

calcolo CHADS2-VASc

Andare in basso

calcolo CHADS2-VASc

Messaggio  nanci giacinto il Dom 3 Lug 2016 - 23:45

SALVE DOVREI ELABORARE UNA QUERY PER IL CALCOLO  DEL punteggio  CHA2DS2 –VASc  ai fini di uno studio di prevenzione primaria verso l’ ICTUS .


DOVE SCOMPENSO CARDIACO PUNTI 1, IPERTENSIONE ARTERIOSA PUNTI 1, ETA > 75 ANNI PUNTI 2, DIABETE MELLITO PUNTI 1, STROKE(PREGRESSO ICTUS, TIA O EMBOLIA PERIFERICA) PUNTI 2, MALATTIE VASCOLARI PUNTI 1, ETA TRA 65 E 75 ANNI PUNTI 1 SOLO SESSO FEMMINILE, SESSO FEMMINILE PUNTI 1.
SIGLAPATOLOGIAPUNTEGGIO
CScompenso cardiaco1
HIpertensione arteriosa1
AEtà maggiore 75 anni2
DDiabete mellito1
SStroke(pregresso ictus, tia o embolia periferica2
VMalattie vascolari1
AEtà tra 65 e 75 anni1 solo per sesso femminile
ScSesso femminile1
   
   
 
 
Ho elaborato questa query con le viste ma le viste non permettono di fare la somma del punteggio  ed inoltre con il commando dataopen la query estrae tutte le patologie e non solo quelle previste per il CHADS2-VASc e la data di apertura del problema è importante ai fini del calcolo della probabilità  di avere un ictus in rapporto al punteggio raggiunto. Grazie a chi puo’ darmi una mano.
P.S. siamo otto medici che lavoriamo in postgres con rrserver
SELECT cognome, nome, sesso, datanasc,  (days (datanasc, today())/365) as eta, dataopen, icd9
FROM v_problemi
WHERE  icd9 like '401.9%' or icd9 like '250.0%%' or icd9 like '436%%' or icd9 like '443.9%%' or icd9 like '428.9%%' or icd9 like '435.9%%' or icd9 like '444.22%%'
avatar
nanci giacinto
Membro Junior
Membro Junior

Messaggi : 126
Punti : 2801
Voti per importanza dei messaggi : -1
Data d'iscrizione : 02.03.11

Visualizza il profilo dell'utente

Tornare in alto Andare in basso

Re: calcolo CHADS2-VASc

Messaggio  Cervino il Gio 7 Lug 2016 - 1:08

nanci giacinto ha scritto:SALVE DOVREI ELABORARE UNA QUERY PER IL CALCOLO  DEL punteggio  CHA2DS2 –VASc  ai fini di uno studio di prevenzione primaria verso l’ ICTUS .


DOVE SCOMPENSO CARDIACO PUNTI 1, IPERTENSIONE ARTERIOSA PUNTI 1, ETA > 75 ANNI PUNTI 2, DIABETE MELLITO PUNTI 1, STROKE(PREGRESSO ICTUS, TIA O EMBOLIA PERIFERICA) PUNTI 2, MALATTIE VASCOLARI PUNTI 1, ETA TRA 65 E 75 ANNI PUNTI 1 SOLO SESSO FEMMINILE, SESSO FEMMINILE PUNTI 1.
SIGLAPATOLOGIAPUNTEGGIO
CScompenso cardiaco1
HIpertensione arteriosa1
AEtà maggiore 75 anni2
DDiabete mellito1
SStroke(pregresso ictus, tia o embolia periferica2
VMalattie vascolari1
AEtà tra 65 e 75 anni1 solo per sesso femminile
ScSesso femminile1
   
   
 
 
Ho elaborato questa query con le viste ma le viste non permettono di fare la somma del punteggio  ed inoltre con il commando dataopen la query estrae tutte le patologie e non solo quelle previste per il CHADS2-VASc e la data di apertura del problema è importante ai fini del calcolo della probabilità  di avere un ictus in rapporto al punteggio raggiunto. Grazie a chi puo’ darmi una mano.
P.S. siamo otto medici che lavoriamo in postgres con rrserver
SELECT cognome, nome, sesso, datanasc,  (days (datanasc, today())/365) as eta, dataopen, icd9
FROM v_problemi
WHERE  icd9 like '401.9%' or icd9 like '250.0%%' or icd9 like '436%%' or icd9 like '443.9%%' or icd9 like '428.9%%' or icd9 like '435.9%%' or icd9 like '444.22%%'
Varie sono le opzioni possibili ed assai problematico inserire almeno i principali codici ICD9 ;  comunque come riferimento di partenza, ho utilizzato il link  :    http://chadsvasc.org/   .  

Per iniziare proverei con : 

Select Distinct  p.cognome ,  p.nome ,    Days( p.nascita, Today()+1)*24/8766  As  eta ,
( Select Min( b.data_open) From cart_pazpbl b Where b.codice = p.codice And b.cp_code ILike '427.3%' And Not ( b.pb_status = 'I' And b.modalita ='A' ))
         _NVAF_  ,
( Select Min( b.data_open) From cart_pazpbl b Where b.codice = p.codice And b.cp_code IN ( '514' , '518.4' , '428' , '428.0' , '428.1' , '428.9' , '429.4' ) And Not ( b.pb_status = 'I' And b.modalita ='A' ))
         _CHF_  ,
( Select Min( b.data_open) From cart_pazpbl b Where b.codice = p.codice And b.cp_code ILike '401.9%' And Not ( b.pb_status = 'I' And b.modalita ='A' ))
         _AHT_  ,
( Select Min( b.data_open) From cart_pazpbl b Where b.codice = p.codice And ( b.cp_code ILike '444%' Or b.cp_code ILike '436%' Or b.cp_code ILike '435%' ) And Not ( b.pb_status = 'I' And b.modalita ='A' ))
         _Ictus_TIA_Embolia_  ,
( Select Min( b.data_open) From cart_pazpbl b Where b.codice = p.codice And b.cp_code ILike '250%' And Not ( b.pb_status = 'I' And b.modalita ='A' ))
         _DM_  ,
( Select Min( b.data_open) From cart_pazpbl b Where b.codice = p.codice And ( b.cp_code ILike '443.9%' Or  b.cp_code ILike '428.9%' Or  b.cp_code ILike '435.9%' Or b.cp_code ILike 'V45.8%' Or b.cp_code ILike '444.22%' ) And Not ( b.pb_status = 'I' And b.modalita ='A' ))
         _CVD_  ,
Case  When  Days( p.nascita, Today()+1)*24/8766 > 74.99 Then  2   When  Days( p.nascita, Today()+1)*24/8766 Between 65 And 74.9 Then  1  Else  0   End  _Age_ ,
Case  When  p.sesso  ILike 'F'  Then  1  Else  0   End  _Sex_ ,


Case  When  ( Select Distinct 1 From cart_pazpbl b Where b.codice = p.codice And b.cp_code IN ( '514' , '518.4' , '428' , '428.0' , '428.1' , '428.9' , '429.4' )  And Not ( b.pb_status = 'I' And b.modalita ='A' )) > 0  Then  1  Else  0   End  + 
Case  When  ( Select Distinct 1 From cart_pazpbl b Where b.codice = p.codice And b.cp_code ILike '401.9%' And Not ( b.pb_status = 'I' And b.modalita ='A' )) > 0  Then  1  Else  0   End   +
Case  When  ( Select Distinct 1 From cart_pazpbl b Where b.codice = p.codice And ( b.cp_code ILike '444%' Or b.cp_code ILike '436%' Or b.cp_code ILike '435%' ) And Not ( b.pb_status = 'I' And b.modalita ='A' )) > 0  Then  1  Else  0   End   +
Case  When  ( Select Distinct 1 From cart_pazpbl b Where b.codice = p.codice And b.cp_code ILike '250%' And Not ( b.pb_status = 'I' And b.modalita ='A' )) > 0   Then  1  Else  0   End   +
Case  When  ( Select Distinct 1 From cart_pazpbl b Where b.codice = p.codice And (  b.cp_code ILike '443.9%' Or  b.cp_code ILike '428.9%' Or  b.cp_code ILike '435.9%' Or  b.cp_code ILike 'V45.8%'
Or b.cp_code ILike '444.22%' ) And Not ( b.pb_status = 'I' And b.modalita ='A' )) > 0  Then  1  Else  0   End    + 
Case  When  Days( p.nascita, Today()+1)*24/8766 > 74.99 Then  2   When  Days( p.nascita, Today()+1)*24/8766 Between 65 And 74.99 Then  1   Else  0  End        +
Case  When  p.sesso  ILike 'F'  Then  1  Else  0   End  
                  _CHA2DS2_VASc_


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  1920  And  1960
AND ( n.pa_drevoca Is Null  Or  n.pa_drevoca >  Today()  Or  ( n.pa_drevoca Between
Date( Today())-365  And Today() And motivo_revoca = 'S'))  And p.decesso Is Null
AND    p.codice  IN ( Select b.codice From cart_pazpbl b Where b.codice = p.codice And b.cp_code ILike '427.3%' And Not ( b.pb_status = 'I' And b.modalita ='A' ))
AND    p.codice  NOT  IN ( Select b.codice From cart_pazpbl b Where b.codice = p.codice And b.cp_code ILike '394%' And Not ( b.pb_status = 'I' And b.modalita ='A' ))
/*  AND  Case  When  ( Select Distinct 1 From cart_pazpbl b Where b.codice = p.codice And b.cp_code IN ( '514' , '518.4' , '428' , '428.0' , '428.1' , '428.9' , '429.4' )  And Not ( b.pb_status = 'I' And b.modalita ='A' )) > 0  Then  1  Else  0   End + 
Case  When  ( Select Distinct 1 From cart_pazpbl b Where b.codice = p.codice And b.cp_code ILike '401.9%' And Not ( b.pb_status = 'I' And b.modalita ='A' )) > 0  Then  1  Else  0   End   +
Case  When  ( Select Distinct 1 From cart_pazpbl b Where b.codice = p.codice And ( b.cp_code ILike '431%' Or b.cp_code ILike '436%' ) And Not ( b.pb_status = 'I' And b.modalita ='A' )) > 0  Then  1  Else  0   End  +
Case  When  ( Select Distinct 1 From cart_pazpbl b Where b.codice = p.codice And b.cp_code ILike '250%' And Not ( b.pb_status = 'I' And b.modalita ='A' )) > 0   Then  1  Else  0   End   +
Case  When  ( Select Distinct 1 From cart_pazpbl b Where b.codice = p.codice And ( b.cp_code ILike '443.9%' Or b.cp_code ILike '428.9%' Or b.cp_code ILike '435.9%' Or b.cp_code ILike '444.22%' ) And Not ( b.pb_status = 'I' And b.modalita ='A' )) > 0  Then  1  Else  0   End + 
Case  When  Days( p.nascita, Today()+1)*24/8766 > 75 Then  1  Else  0  End        +
Case  When  p.sesso  ILike 'F'  AND  Days( p.nascita, Today()+1)*24/8766 Between 65 And 75 Then  1  Else  0   End   +
Case  When  p.sesso  ILike 'F'  Then  1  Else  0   End   > 0   */
ORDER BY  12 desc , 1 ,2


Verificare attentamente le varie clausole, condizioni di ricerca ed i codici ICD9 , specie nelle subquery ;  per escludere parti della query e/o subquery, utilizzare   /*   */  ;  le date sono estratte ... per quale scopo ?
Ti saluto ,    Sergio  Tomasini ,  Orzivecchi  ,  BS

Cervino
Membro Junior
Membro Junior

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

Visualizza il profilo dell'utente

Tornare in alto Andare in basso

calcolo CHADS2-VASc

Messaggio  nanci giacinto il Gio 7 Lug 2016 - 17:31

BUON POMERIGGIO. La  query funziona perfettamente ottimo lavoro. Le date dovrebbero servire per valutare il tempo intercorso tra l'evento ictus e l'insorgenza dei fattori di rischio  e pensare ad uno studio di prevenzione primaria dell'ictus che sembra attualmente non esistere ancora. Ultima richiesta, ma è possibile che non esiste un manuale (non quello delle viste) per poter pensare di imparare a comporre una query (quasi una poesia) come questa che hai fatto? grazie
avatar
nanci giacinto
Membro Junior
Membro Junior

Messaggi : 126
Punti : 2801
Voti per importanza dei messaggi : -1
Data d'iscrizione : 02.03.11

Visualizza il profilo dell'utente

Tornare in alto Andare in basso

Re: calcolo CHADS2-VASc

Messaggio  Cervino il Ven 8 Lug 2016 - 0:10

nanci giacinto ha scritto:BUON POMERIGGIO. La  query funziona perfettamente ottimo lavoro. Le date dovrebbero servire per valutare il tempo intercorso tra l'evento ictus e l'insorgenza dei fattori di rischio  e pensare ad uno studio di prevenzione primaria dell'ictus che sembra attualmente non esistere ancora. Ultima richiesta, ma è possibile che non esiste un manuale (non quello delle viste) per poter pensare di imparare a comporre una query (quasi una poesia) come questa che hai fatto? grazie
Nella query precedente non veniva attribuito correttamente il punteggio a : Stroke/TIA/Trombo-Embolia ( 1 anzichè 2 ) :

Select Distinct  p.cognome ,  p.nome ,    Days( p.nascita, Today()+1)*24/8766  As  eta ,  ' ' As s ,
( Select Min( b.data_open) From cart_pazpbl b Where b.codice = p.codice And b.cp_code ILike '427.3%' And Not ( b.pb_status = 'I' And b.modalita ='A' ))
         _NVAF_  ,
( Select Min( b.data_open) From cart_pazpbl b Where b.codice = p.codice And b.cp_code IN ( '514' , '518.4' , '428' , '428.0' , '428.1' , '428.9' , '429.4' ) And Not ( b.pb_status = 'I' And b.modalita ='A' ))
         _CHF_  ,
( Select Min( b.data_open) From cart_pazpbl b Where b.codice = p.codice And b.cp_code ILike '401.9%' And Not ( b.pb_status = 'I' And b.modalita ='A' ))
         _AHT_  ,
( Select Min( b.data_open) From cart_pazpbl b Where b.codice = p.codice And ( b.cp_code ILike '444%' Or b.cp_code ILike '436%' Or b.cp_code ILike '435%' ) And Not ( b.pb_status = 'I' And b.modalita ='A' ))
         _Ictus_TIA_Embolia_  ,
( Select Min( b.data_open) From cart_pazpbl b Where b.codice = p.codice And b.cp_code ILike '250%' And Not ( b.pb_status = 'I' And b.modalita ='A' ))
         _DM_  ,
( Select Min( b.data_open) From cart_pazpbl b Where b.codice = p.codice And ( b.cp_code ILike '443.9%' Or  b.cp_code ILike '428.9%' Or  b.cp_code ILike '435.9%' Or b.cp_code ILike 'V45.8%' Or b.cp_code ILike '444.22%' ) And Not ( b.pb_status = 'I' And b.modalita ='A' ))
         _CVD_  ,              /*
Case  When  Days( p.nascita, Today()+1)*24/8766 > 74.99 Then  2   When  Days( p.nascita, Today()+1)*24/8766 Between 65 And 74.9 Then  1  Else  0   End  _Age_ ,
Case  When  p.sesso  ILike 'F'  Then  1  Else  0   End  _Sex_ ,     */
Case  When  ( Select Distinct 1 From cart_pazpbl b Where b.codice = p.codice And b.cp_code IN ( '514' , '518.4' , '428' , '428.0' , '428.1' , '428.9' , '429.4' )  And Not ( b.pb_status = 'I' And b.modalita ='A' ))  > 0  Then  1  Else  0   End  + 
Case  When  ( Select Distinct 1 From cart_pazpbl b Where b.codice = p.codice And b.cp_code ILike '401.9%' And Not ( b.pb_status = 'I' And b.modalita ='A' )) > 0  Then  1  Else  0   End   +
Case  When  ( Select Distinct 1 From cart_pazpbl b Where b.codice = p.codice And ( b.cp_code ILike '444%' Or b.cp_code ILike '436%' Or b.cp_code ILike '435%' ) And Not ( b.pb_status = 'I' And b.modalita ='A' )) > 0  Then  2  Else  0   End   +
Case  When  ( Select Distinct 1 From cart_pazpbl b Where b.codice = p.codice And b.cp_code ILike '250%' And Not ( b.pb_status = 'I' And b.modalita ='A' )) > 0   Then  1  Else  0   End   +
Case  When  ( Select Distinct 1 From cart_pazpbl b Where b.codice = p.codice And (  b.cp_code ILike '443.9%' Or  b.cp_code ILike '428.9%' Or  b.cp_code ILike '435.9%' Or b.cp_code ILike 'V45.8%' Or b.cp_code ILike '444.22%' ) And Not ( b.pb_status = 'I' And b.modalita ='A' )) > 0  Then  1  Else  0   End    + 
Case  When  Days( p.nascita, Today()+1)*24/8766 > 74.99 Then  2   When  Days( p.nascita, Today()+1)*24/8766 Between 65 And 74.99 Then  1   Else  0  End        +
Case  When  p.sesso  ILike 'F'  Then  1  Else  0   End  
               _CHA2DS2_VASc_


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  1915  And  1970
AND ( n.pa_drevoca Is Null  Or  n.pa_drevoca >  Today()  Or  ( n.pa_drevoca Between
Date( Today())-365  And Today() And motivo_revoca = 'S'))  And p.decesso Is Null   
AND    p.codice  IN ( Select b.codice From cart_pazpbl b Where b.codice = p.codice And b.cp_code ILike '427.3%' And Not ( b.pb_status = 'I' And b.modalita ='A' ))
AND    p.codice  NOT  IN ( Select b.codice From cart_pazpbl b Where b.codice = p.codice And b.cp_code ILike '394%' And Not ( b.pb_status = 'I' And b.modalita ='A' ))    /*
AND  ( Case  When  ( Select Distinct 1 From cart_pazpbl b Where b.codice = p.codice And b.cp_code IN ( '514' , '518.4' , '428' , '428.0' , '428.1' , '428.9' , '429.4' )  And Not ( b.pb_status = 'I' And b.modalita ='A' )) > 0  Then  1  Else  0  End   
+ Case  When  ( Select Distinct 1 From cart_pazpbl b Where b.codice = p.codice And b.cp_code ILike '401.9%' And Not ( b.pb_status = 'I' And b.modalita ='A' )) > 0  Then  1  Else  0   End   +
Case  When  ( Select Distinct 1 From cart_pazpbl b Where b.codice = p.codice And ( b.cp_code ILike '444%' Or b.cp_code ILike '436%' Or b.cp_code ILike '435%' ) And Not ( b.pb_status = 'I' And b.modalita ='A' )) > 0  Then  2  Else  0   End   +
Case  When  ( Select Distinct 1 From cart_pazpbl b Where b.codice = p.codice And b.cp_code ILike '250%' And Not ( b.pb_status = 'I' And b.modalita ='A' )) > 0   Then  1  Else  0   End   +
Case  When  ( Select Distinct 1 From cart_pazpbl b Where b.codice = p.codice And (  b.cp_code ILike '443.9%' Or  b.cp_code ILike '428.9%' Or  b.cp_code ILike '435.9%' Or b.cp_code ILike 'V45.8%' Or b.cp_code ILike '444.22%' ) And Not ( b.pb_status = 'I' And b.modalita ='A' )) > 0  Then  1  Else  0   End    + 
Case  When  Days( p.nascita, Today()+1)*24/8766 > 74.99 Then  2   When  Days( p.nascita, Today()+1)*24/8766 Between 65 And 74.99 Then  1   Else  0  End        +
Case  When  p.sesso  ILike 'F'  Then  1  Else  0   End ) > 0    */
ORDER BY  13 desc , 1 , 2


La Documentazione è facilmente reperibile sulla Rete : innanzitutto consultanto il manuale ufficiale al link :   https://www.postgresql.org/docs/9.5/static/index.html      a Noi interessano principalmente i Capitoli I e II
oppure inserendo un quesito specifico ( preferibilmente in inglese ) in un Motore di Ricerca  ma alla fine con un po' di buona volontà e molta pazienza, partendo dalle query già presenti su questo forum, si puo' abbastanza facilmente arrivare ad elaborare una query di tal genere, in fondo relativamente semplice .
  Ti  saluto ,  Sergio

Cervino
Membro Junior
Membro Junior

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

Visualizza il profilo dell'utente

Tornare in alto Andare in basso

calcolo CHADS2-VASc

Messaggio  nanci giacinto il Sab 9 Lug 2016 - 23:27

Grazie funziona benissimo bisogna solo sostituire il numero 11 invece di 13 dopo "ORDER BY". Grazie anche per l'indicazione del manuale.
avatar
nanci giacinto
Membro Junior
Membro Junior

Messaggi : 126
Punti : 2801
Voti per importanza dei messaggi : -1
Data d'iscrizione : 02.03.11

Visualizza il profilo dell'utente

Tornare in alto Andare in basso

calcolo CHADS2-VASc

Messaggio  nanci giacinto il Sab 9 Lug 2016 - 23:51

BUONA SERA UN PICCOLO PROBLEMA C'E'. DOPO AVER SALVATO IL FILE DELLA ESTRAZIONE LA COLONNA DENOMINATA S DEL FOGLIO EXCELL NON DA NESSUNA ESTRAZIONE E LE DIMENSIONI DELLA CELLA-EXCELL E' SPROPORZIONATA RISPETTO ALLE ALTRE. CON LA QUERY PRECEDENTE CIO' NON AVVENIVA. NON MI PARE CHE LA COLONNA S CORRISPONDA AD UNA SUBQUERY. COSA E' SUCCESSO?
avatar
nanci giacinto
Membro Junior
Membro Junior

Messaggi : 126
Punti : 2801
Voti per importanza dei messaggi : -1
Data d'iscrizione : 02.03.11

Visualizza il profilo dell'utente

Tornare in alto Andare in basso

Re: calcolo CHADS2-VASc

Messaggio  drtulino il Dom 10 Lug 2016 - 9:42

nanci giacinto ha scritto:BUONA SERA UN PICCOLO PROBLEMA C'E'. DOPO AVER SALVATO IL FILE DELLA ESTRAZIONE LA COLONNA DENOMINATA S DEL FOGLIO EXCELL NON DA NESSUNA ESTRAZIONE E LE DIMENSIONI DELLA CELLA-EXCELL E' SPROPORZIONATA RISPETTO ALLE ALTRE. CON LA QUERY PRECEDENTE CIO' NON AVVENIVA. NON MI PARE CHE LA COLONNA S CORRISPONDA AD UNA SUBQUERY. COSA E' SUCCESSO?
Non so se va bene questa con piccole variazioni rispetto a quanto fatto da Sergio:



Select Distinct  p.cognome ,  p.nome ,    Days( p.nascita, Today()+1)*24/8766  As  eta ,
( Select Min( b.data_open) From cart_pazpbl b Where b.codice = p.codice And b.cp_code ILike '427.3%' And Not ( b.pb_status = 'I' And b.modalita ='A' ))
         _NVAF_  ,
( Select Min( b.data_open) From cart_pazpbl b Where b.codice = p.codice And b.cp_code IN ( '514' , '518.4' , '428' , '428.0' , '428.1' , '428.9' , '429.4' ) And Not ( b.pb_status = 'I' And b.modalita ='A' ))
         _CHF_  ,
( Select Min( b.data_open) From cart_pazpbl b Where b.codice = p.codice And b.cp_code ILike '401.9%' And Not ( b.pb_status = 'I' And b.modalita ='A' ))
         _AHT_  ,
( Select Min( b.data_open) From cart_pazpbl b Where b.codice = p.codice And ( b.cp_code ILike '444%' Or b.cp_code ILike '436%' Or b.cp_code ILike '435%' ) And Not ( b.pb_status = 'I' And b.modalita ='A' ))
         _Ictus_TIA_Embolia_  ,
( Select Min( b.data_open) From cart_pazpbl b Where b.codice = p.codice And b.cp_code ILike '250%' And Not ( b.pb_status = 'I' And b.modalita ='A' ))
         _DM_  ,
( Select Min( b.data_open) From cart_pazpbl b Where b.codice = p.codice And ( b.cp_code ILike '443.9%' Or  b.cp_code ILike '428.9%' Or  b.cp_code ILike '435.9%' Or b.cp_code ILike 'V45.8%' Or b.cp_code ILike '444.22%' ) And Not ( b.pb_status = 'I' And b.modalita ='A' ))
         _CVD_  ,              /*
Case  When  Days( p.nascita, Today()+1)*24/8766 > 74.99 Then  2   When  Days( p.nascita, Today()+1)*24/8766 Between 65 And 74.9 Then  1  Else  0   End  _Age_ ,
Case  When  p.sesso  ILike 'F'  Then  1  Else  0   End  _Sex_ ,     */
Case  When  ( Select Distinct 1 From cart_pazpbl b Where b.codice = p.codice And b.cp_code IN ( '514' , '518.4' , '428' , '428.0' , '428.1' , '428.9' , '429.4' )  And Not ( b.pb_status = 'I' And b.modalita ='A' ))  > 0  Then  1  Else  0   End  + 
Case  When  ( Select Distinct 1 From cart_pazpbl b Where b.codice = p.codice And b.cp_code ILike '401.9%' And Not ( b.pb_status = 'I' And b.modalita ='A' )) > 0  Then  1  Else  0   End   +
Case  When  ( Select Distinct 1 From cart_pazpbl b Where b.codice = p.codice And ( b.cp_code ILike '444%' Or b.cp_code ILike '436%' Or b.cp_code ILike '435%' ) And Not ( b.pb_status = 'I' And b.modalita ='A' )) > 0  Then  2  Else  0   End   +
Case  When  ( Select Distinct 1 From cart_pazpbl b Where b.codice = p.codice And b.cp_code ILike '250%' And Not ( b.pb_status = 'I' And b.modalita ='A' )) > 0   Then  1  Else  0   End   +
Case  When  ( Select Distinct 1 From cart_pazpbl b Where b.codice = p.codice And (  b.cp_code ILike '443.9%' Or  b.cp_code ILike '428.9%' Or  b.cp_code ILike '435.9%' Or b.cp_code ILike 'V45.8%' Or b.cp_code ILike '444.22%' ) And Not ( b.pb_status = 'I' And b.modalita ='A' )) > 0  Then  1  Else  0   End    + 
Case  When  Days( p.nascita, Today()+1)*24/8766 > 74.99 Then  2   When  Days( p.nascita, Today()+1)*24/8766 Between 65 And 74.99 Then  1   Else  0  End        +
Case  When  p.sesso  ILike 'F'  Then  1  Else  0   End  
               _CHA2DS2_VASc_
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  '436931'    AND    u.nome  Like  '%'
AND  p.pa_convenzione = 'S'               AND    Year( nascita)  Between  1915  And  1970
AND ( n.pa_drevoca Is Null  Or  n.pa_drevoca >  Today()  Or  ( n.pa_drevoca Between
Date( Today())-365  And Today() And motivo_revoca = 'S'))  And p.decesso Is Null   
AND    p.codice  IN ( Select b.codice From cart_pazpbl b Where b.codice = p.codice And b.cp_code ILike '427.3%' And Not ( b.pb_status = 'I' And b.modalita ='A' ))
AND    p.codice  NOT  IN ( Select b.codice From cart_pazpbl b Where b.codice = p.codice And b.cp_code ILike '394%' And Not ( b.pb_status = 'I' And b.modalita ='A' ))    /*
AND  ( Case  When  ( Select Distinct 1 From cart_pazpbl b Where b.codice = p.codice And b.cp_code IN ( '514' , '518.4' , '428' , '428.0' , '428.1' , '428.9' , '429.4' )  And Not ( b.pb_status = 'I' And b.modalita ='A' )) > 0  Then  1  Else  0  End   
+ Case  When  ( Select Distinct 1 From cart_pazpbl b Where b.codice = p.codice And b.cp_code ILike '401.9%' And Not ( b.pb_status = 'I' And b.modalita ='A' )) > 0  Then  1  Else  0   End   +
Case  When  ( Select Distinct 1 From cart_pazpbl b Where b.codice = p.codice And ( b.cp_code ILike '444%' Or b.cp_code ILike '436%' Or b.cp_code ILike '435%' ) And Not ( b.pb_status = 'I' And b.modalita ='A' )) > 0  Then  2  Else  0   End   +
Case  When  ( Select Distinct 1 From cart_pazpbl b Where b.codice = p.codice And b.cp_code ILike '250%' And Not ( b.pb_status = 'I' And b.modalita ='A' )) > 0   Then  1  Else  0   End   +
Case  When  ( Select Distinct 1 From cart_pazpbl b Where b.codice = p.codice And (  b.cp_code ILike '443.9%' Or  b.cp_code ILike '428.9%' Or  b.cp_code ILike '435.9%' Or b.cp_code ILike 'V45.8%' Or b.cp_code ILike '444.22%' ) And Not ( b.pb_status = 'I' And b.modalita ='A' )) > 0  Then  1  Else  0   End    + 
Case  When  Days( p.nascita, Today()+1)*24/8766 > 74.99 Then  2   When  Days( p.nascita, Today()+1)*24/8766 Between 65 And 74.99 Then  1   Else  0  End        +
Case  When  p.sesso  ILike 'F'  Then  1  Else  0   End ) > 0    */
ORDER BY  10 desc , 1 , 2

_________________
Renato Tulino
MMG Monte Argentario (GR)
Facebook Millewin: http://www.facebook.com/groups/utentimillewin/
Twitter: @RenatoTulino
avatar
drtulino
Moderatore
Moderatore

Messaggi : 1779
Punti : 4753
Voti per importanza dei messaggi : 91
Data d'iscrizione : 20.02.11
Età : 54
Località : Monte Argentario (GR)

Visualizza il profilo dell'utente http://www.facebook.com/groups/utentimillewin/

Tornare in alto Andare in basso

calcolo CHADS2-VASc

Messaggio  nanci giacinto il Dom 10 Lug 2016 - 22:44

BUONA SERA GRAZIE PER IL TU AIUTO MA LA QUERY MI DA INESORABILMENTE ZERO COME RISULTATO. ALTRA INFORMAZIONE GLI ASSISTITI ESTRATTI NON DEVONO ESSERE OBBLIGATORIAMENTE ULTRASESSANTACINQUENNI. GRAZIE ANCORA PER L'AIUTO
avatar
nanci giacinto
Membro Junior
Membro Junior

Messaggi : 126
Punti : 2801
Voti per importanza dei messaggi : -1
Data d'iscrizione : 02.03.11

Visualizza il profilo dell'utente

Tornare in alto Andare in basso

calcolo CHADS2-VASc

Messaggio  nanci giacinto il Dom 10 Lug 2016 - 23:12

BUONA SERA HO TROVATO DOVEVO CAMBIARE IL CODICE REGIONALE. RIMANE IL SECONDO QUESITO IL CALCOLO VA FATTO PER TUTTI GLI ASISTITI CHE HANNO FATTORI DI RISCHIO E NON PER GLI ULTRASESSANTACINQUENNI
avatar
nanci giacinto
Membro Junior
Membro Junior

Messaggi : 126
Punti : 2801
Voti per importanza dei messaggi : -1
Data d'iscrizione : 02.03.11

Visualizza il profilo dell'utente

Tornare in alto Andare in basso

Re: calcolo CHADS2-VASc

Messaggio  Cervino il Mer 13 Lug 2016 - 0:22

nanci giacinto ha scritto:BUONA SERA HO TROVATO DOVEVO CAMBIARE IL CODICE REGIONALE. RIMANE IL SECONDO QUESITO IL CALCOLO VA FATTO PER TUTTI GLI ASISTITI CHE HANNO FATTORI DI RISCHIO E NON PER GLI ULTRASESSANTACINQUENNI
Una query complessa va testata piu' volte e quindi vengono introdotte varie condizioni di ricerca restrittive x velocizzare le varie prove come ad es. :  AND  Year( nascita)  Between  1910  And  1970 , come pure spazi fra le colonne reali (    ' ' As s ,    ' ' As s1 , ) al fine di valutare meglio e piu' rapidamente i risultati ottenuti ;
quindi alla fine delle varie prove e/o test , bisogna verificare  le condizioni di ricerca, adattarle alle proprie esigenze ed eliminare il superfluo oppure disattivarlo inserendo :   /*    */ 
Una query di tal genere richiede una non semplice impostazione / verifica dei codici ICD9 .
Forse è meglio ricercare la presenza delle patologie in modo piu' esteso , in quanto non infrequentemente in MW e nella realtà, un problema evolve in un altro e quindi nella precedente formulazione poteva non essere rilevato :
sicuramente la query è diventata piu' pesante per il motore di ricerca ... piu' esaustiva   ... forse    :


Select Distinct  p.cognome ,  p.nome ,    Days( p.nascita, Today()+1)*24/8766  As  eta ,  /* ' ' As s ,  */
( Select Cast( DateFormat( Max( b.data_open) , 'yyyy-mm-dd' ) As Date ) From cart_problemi l , cart_pazpbl b Where l.codice = p.codice And ( l.cp_code ILike '427.3%' And l.cp_code NOT ILike '394%' )
And l.pb_code = b.pb_code And Not ( b.pb_status = 'I' And  b.modalita = 'A' And b.certezza <> 'S' ))
                  _NVAF_  ,                                                                                /*     ' ' As s1 ,  */
( Select Cast( DateFormat( Max( b.data_open) , 'yyyy-mm-dd' ) As Date ) From cart_problemi l , cart_pazpbl b Where l.codice = p.codice And l.cp_code IN ( '514' , '518.4' , '428' , '428.0' , '428.1' , '428.9' , '429.4' ) And l.pb_code = b.pb_code And Not ( b.pb_status = 'I' And  modalita = 'A'  And b.certezza <> 'S' ))
                  _CHF_  ,
( Select Cast( DateFormat( Max( b.data_open) , 'yyyy-mm-dd' ) As Date ) From cart_problemi l , cart_pazpbl b Where l.codice = p.codice And l.cp_code ILike '401.9%' And l.pb_code = b.pb_code And Not ( b.pb_status = 'I' And  modalita = 'A'  And b.certezza <> 'S' ))
                   _AHT_  ,
( Select Cast( DateFormat( Max( b.data_open) , 'yyyy-mm-dd' ) As Date ) From cart_problemi l , cart_pazpbl b Where l.codice = p.codice And ( l.cp_code ILike '444%' Or l.cp_code ILike '436%' Or l.cp_code ILike '435%' ) And l.pb_code = b.pb_code And Not ( b.pb_status = 'I' And  modalita = 'A'  And b.certezza <> 'S' ))
              _Ictus_TIA_Embolia_  ,
( Select Cast( DateFormat( Max( b.data_open) , 'yyyy-mm-dd' ) As Date ) From cart_problemi l , cart_pazpbl b Where l.codice = p.codice And l.cp_code ILike '250%' And l.pb_code = b.pb_code And Not ( b.pb_status = 'I' And  modalita = 'A'  And b.certezza <> 'S' ))
                   _DM_  ,
( Select Cast( DateFormat( Max( b.data_open) ,'yyyy-mm-dd' ) As Date ) From cart_problemi l , cart_pazpbl b Where l.codice = p.codice And ( l.cp_code ILike '443.9%' Or l.cp_code ILike '428.9%' Or l.cp_code ILike '435.9%' Or l.cp_code ILike 'V45.8%' Or l.cp_code ILike '444.22%' ) And l.pb_code = b.pb_code And Not ( b.pb_status = 'I' And  modalita = 'A'  And b.certezza <> 'S' ))
                  _CVD_  ,             
Case  When  Days( p.nascita, Today()+1)*24/8766 > 74.99 Then  2   When  Days( p.nascita, Today()+1)*24/8766 Between 65 And 74.9 Then  1  Else  0   End  +      Case  When  p.sesso  ILike 'F'  Then  1  Else  0   End                                               _Age_Sex_ ,  
Case  When ( Select Distinct 1 From cart_problemi l , cart_pazpbl b Where l.codice = p.codice And l.cp_code IN ( '514' , '518.4' , '428' , '428.0' , '428.1' , '428.9' , '429.4' ) And l.pb_code = b.pb_code And Not ( b.pb_status = 'I' And  modalita = 'A'  And b.certezza <> 'S' ))  > 0  Then  1  Else  0   End  +
Case  When ( Select Distinct 1 From cart_problemi l , cart_pazpbl b Where l.codice = p.codice And l.cp_code ILike '401.9%' And l.pb_code = b.pb_code And Not ( b.pb_status = 'I' And  modalita = 'A'  And b.certezza <> 'S' ))  > 0  Then  1  Else  0   End  +
Case  When ( Select Distinct 1 From cart_problemi l , cart_pazpbl b Where l.codice = p.codice And ( l.cp_code ILike '444%' Or l.cp_code ILike '436%' Or l.cp_code ILike '435%' ) And l.pb_code = b.pb_code And Not ( b.pb_status = 'I' And  modalita = 'A'  And b.certezza <> 'S' ))  > 0  Then  2  Else  0   End  +
Case  When ( Select Distinct 1 From cart_problemi l , cart_pazpbl b Where l.codice = p.codice And l.cp_code ILike '250%' And l.pb_code = b.pb_code And Not ( b.pb_status = 'I' And  modalita = 'A'  And b.certezza <> 'S' ))  > 0  Then  1  Else  0   End  +
Case  When ( Select Distinct 1 From cart_problemi l , cart_pazpbl b Where l.codice = p.codice And ( l.cp_code ILike '443.9%' Or l.cp_code ILike '428.9%' Or l.cp_code ILike '435.9%' Or l.cp_code ILike 'V45.8%' Or l.cp_code ILike '444.22%' ) And l.pb_code = b.pb_code And Not ( b.pb_status = 'I' And  modalita = 'A'  And b.certezza <> 'S' ))  > 0  Then  1  Else  0   End  +
Case  When  Days( p.nascita, Today()+1)*24/8766 > 74.99 Then  2   When  Days( p.nascita, Today()+1)*24/8766 Between 65 And 74.99 Then  1   Else  0  End        +   Case  When  p.sesso  ILike 'F'  Then  1  Else  0   End  
               _CHA2DS2_VASc_
        

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  2016
AND ( n.pa_drevoca Is Null  Or  n.pa_drevoca >  Today()  Or  ( n.pa_drevoca Between
Date( Today())-365  And Today() And motivo_revoca = 'S'))  And p.decesso Is Null    /*
AND    p.codice  IN ( Select b.codice From cart_pazpbl b Where b.codice = p.codice And b.cp_code ILike '427.3%' And Not ( b.pb_status = 'I' And b.modalita ='A' ))
AND    p.codice  NOT  IN ( Select b.codice From cart_pazpbl b Where b.codice = p.codice And b.cp_code ILike '394%' And Not ( b.pb_status = 'I' And b.modalita ='A' ))    */
AND  ( Case  When ( Select Distinct 1 From cart_problemi l , cart_pazpbl b Where l.codice = p.codice And l.cp_code IN ( '514' , '518.4' , '428' , '428.0' , '428.1' , '428.9' , '429.4' ) And l.pb_code = b.pb_code And Not ( b.pb_status = 'I' And  modalita = 'A'  And b.certezza <> 'S' ))  > 0  Then  1  Else  0   End  +
Case  When ( Select Distinct 1 From cart_problemi l , cart_pazpbl b Where l.codice = p.codice And l.cp_code ILike '401.9%' And l.pb_code = b.pb_code And Not ( b.pb_status = 'I' And  modalita = 'A'  And b.certezza <> 'S' ))  > 0  Then  1  Else  0   End  +
Case  When ( Select Distinct 1 From cart_problemi l , cart_pazpbl b Where l.codice = p.codice And ( l.cp_code ILike '444%' Or l.cp_code ILike '436%' Or l.cp_code ILike '435%' ) And l.pb_code = b.pb_code And Not ( b.pb_status = 'I' And  modalita = 'A'  And b.certezza <> 'S' ))  > 0  Then  2  Else  0   End  +
Case  When ( Select Distinct 1 From cart_problemi l , cart_pazpbl b Where l.codice = p.codice And l.cp_code ILike '250%' And l.pb_code = b.pb_code And Not ( b.pb_status = 'I' And  modalita = 'A'  And b.certezza <> 'S' ))  > 0  Then  1  Else  0   End  +
Case  When ( Select Distinct 1 From cart_problemi l , cart_pazpbl b Where l.codice = p.codice And ( l.cp_code ILike '443.9%' Or l.cp_code ILike '428.9%' Or l.cp_code ILike '435.9%' Or l.cp_code ILike 'V45.8%' Or l.cp_code ILike '444.22%' ) And l.pb_code = b.pb_code And Not ( b.pb_status = 'I' And  modalita = 'A'  And b.certezza <> 'S' ))  > 0  Then  1  Else  0   End  +
Case  When  Days( p.nascita, Today()+1)*24/8766 > 74.99 Then  2   When  Days( p.nascita, Today()+1)*24/8766 Between 65 And 74.99 Then  1   Else  0  End        +    Case  When  p.sesso  ILike 'F'  Then  1  Else  0   End )     > 0  
ORDER BY    _CHA2DS2_VASc_  desc , p.cognome ,  p.nome


La query dovrebbe estrarre tutti i Pazienti con punteggio  _CHA2DS2_VASc_ > 0 ( quindi tutte le donne da 0 a 110 anni )

Saluti , Sergio

Cervino
Membro Junior
Membro Junior

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

Visualizza il profilo dell'utente

Tornare in alto Andare in basso

CALCOLO CHADVASC

Messaggio  nanci giacinto il Mer 13 Lug 2016 - 15:11

BUON GIORNO GRAZIE SERGIO FUNZIONA PERFETTAMENTE. SI POTREBBE AGGIUNGERE IL CODICE FISCALE IN CASO DI RARISSIMA PROBABILITA' DI OMONIMIA. GRAZIE ANCORA
avatar
nanci giacinto
Membro Junior
Membro Junior

Messaggi : 126
Punti : 2801
Voti per importanza dei messaggi : -1
Data d'iscrizione : 02.03.11

Visualizza il profilo dell'utente

Tornare in alto Andare in basso

Re: calcolo CHADS2-VASc

Messaggio  Cervino il Gio 14 Lug 2016 - 23:53

nanci giacinto ha scritto:BUON GIORNO GRAZIE SERGIO FUNZIONA PERFETTAMENTE. SI POTREBBE AGGIUNGERE IL CODICE FISCALE IN CASO DI RARISSIMA PROBABILITA' DI OMONIMIA. GRAZIE ANCORA
Prego , ho introdotto una piccola modifica nell' estrazione della data di esordio delle patologie, dato non semplice da ottenere per alcune Patologie : la FA spesso esordisce come Parossistica o sporadica od episodica, poi diventa stabile o cronica, poi a volte viene convertita in RS con Cardioversione infine recidiva ...  ; Alterata Glicemia a Digiuno  che  evolve in Diabete .  in MW viene sempre indicata la data di esordio di un problema, anche se evolve nel tempo, talora la discrepanza fra la data di esordio ed il problema evidenziato è francamente disturbante ed inappropriata :   

Select Distinct  p.cognome ,  p.nome ,    Days( p.nascita, Today()+1)*24/8766  As  eta ,  p.codice_fiscale ,   /* ' ' As s ,  */
( Select Cast( DateFormat( Min( l.data_open) , 'yyyy-mm-dd' ) As Date ) From cart_problemi l , cart_pazpbl b Where l.codice = p.codice And ( l.cp_code ILike '427.3%' And l.cp_code NOT ILike '394%' )
And l.pb_code = b.pb_code And Not ( b.pb_status = 'I' And  b.modalita = 'A' And b.certezza <> 'S' ))
                  _NVAF_  , 
( Select Cast( DateFormat( Min( l.data_open) , 'yyyy-mm-dd' ) As Date ) From cart_problemi l , cart_pazpbl b Where l.codice = p.codice And l.cp_code IN ( '514' , '518.4' , '428' , '428.0' , '428.1' , '428.9' , '429.4' ) And l.pb_code = b.pb_code And Not ( b.pb_status = 'I' And  modalita = 'A'  And b.certezza <> 'S' ))
                  _CHF_  ,
( Select Cast( DateFormat( Min( l.data_open) , 'yyyy-mm-dd' ) As Date ) From cart_problemi l , cart_pazpbl b Where l.codice = p.codice And l.cp_code ILike '401.9%' And l.pb_code = b.pb_code And Not ( b.pb_status = 'I' And  modalita = 'A'  And b.certezza <> 'S' ))
                   _AHT_  ,
( Select Cast( DateFormat( Min( l.data_open) , 'yyyy-mm-dd' ) As Date ) From cart_problemi l , cart_pazpbl b Where l.codice = p.codice And ( l.cp_code ILike '444%' Or l.cp_code ILike '436%' Or l.cp_code ILike '435%' ) And l.pb_code = b.pb_code And Not ( b.pb_status = 'I' And  modalita = 'A'  And b.certezza <> 'S' ))
              _Ictus_TIA_Embolia_  ,
( Select Cast( DateFormat( Min( l.data_open) , 'yyyy-mm-dd' ) As Date ) From cart_problemi l , cart_pazpbl b Where l.codice = p.codice And l.cp_code ILike '250%' And l.pb_code = b.pb_code And Not ( b.pb_status = 'I' And  modalita = 'A'  And b.certezza <> 'S' ))
                   _DM_  ,
( Select Cast( DateFormat( Min( l.data_open) ,'yyyy-mm-dd' ) As Date ) From cart_problemi l , cart_pazpbl b Where l.codice = p.codice And ( l.cp_code ILike '443.9%' Or l.cp_code ILike '428.9%' Or l.cp_code ILike '435.9%' Or l.cp_code ILike 'V45.8%' Or l.cp_code ILike '444.22%' ) And l.pb_code = b.pb_code And Not ( b.pb_status = 'I' And  modalita = 'A'  And b.certezza <> 'S' ))
                  _CVD_  ,             
Case  When  Days( p.nascita, Today()+1)*24/8766 > 74.99 Then  2   When  Days( p.nascita, Today()+1)*24/8766 Between 65 And 74.9 Then  1  Else  0   End  +      Case  When  p.sesso  ILike 'F'  Then  1  Else  0   End                                               _Age_Sex_ ,  
Case  When ( Select Distinct 1 From cart_problemi l , cart_pazpbl b Where l.codice = p.codice And l.cp_code IN ( '514' , '518.4' , '428' , '428.0' , '428.1' , '428.9' , '429.4' ) And l.pb_code = b.pb_code And Not ( b.pb_status = 'I' And  modalita = 'A'  And b.certezza <> 'S' ))  > 0  Then  1  Else  0   End  +
Case  When ( Select Distinct 1 From cart_problemi l , cart_pazpbl b Where l.codice = p.codice And l.cp_code ILike '401.9%' And l.pb_code = b.pb_code And Not ( b.pb_status = 'I' And  modalita = 'A'  And b.certezza <> 'S' ))  > 0  Then  1  Else  0   End  +
Case  When ( Select Distinct 1 From cart_problemi l , cart_pazpbl b Where l.codice = p.codice And ( l.cp_code ILike '444%' Or l.cp_code ILike '436%' Or l.cp_code ILike '435%' ) And l.pb_code = b.pb_code And Not ( b.pb_status = 'I' And  modalita = 'A'  And b.certezza <> 'S' ))  > 0  Then  2  Else  0   End  +
Case  When ( Select Distinct 1 From cart_problemi l , cart_pazpbl b Where l.codice = p.codice And l.cp_code ILike '250%' And l.pb_code = b.pb_code And Not ( b.pb_status = 'I' And  modalita = 'A'  And b.certezza <> 'S' ))  > 0  Then  1  Else  0   End  +
Case  When ( Select Distinct 1 From cart_problemi l , cart_pazpbl b Where l.codice = p.codice And ( l.cp_code ILike '443.9%' Or l.cp_code ILike '428.9%' Or l.cp_code ILike '435.9%' Or l.cp_code ILike 'V45.8%' Or l.cp_code ILike '444.22%' ) And l.pb_code = b.pb_code And Not ( b.pb_status = 'I' And  modalita = 'A'  And b.certezza <> 'S' ))  > 0  Then  1  Else  0   End  +
Case  When  Days( p.nascita, Today()+1)*24/8766 > 74.99 Then  2   When  Days( p.nascita, Today()+1)*24/8766 Between 65 And 74.99 Then  1   Else  0  End        +   Case  When  p.sesso  ILike 'F'  Then  1  Else  0   End  
               _CHA2DS2_VASc_    
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  2016
AND ( n.pa_drevoca Is Null  Or  n.pa_drevoca >  Today()  Or  ( n.pa_drevoca Between
Date( Today())-365  And Today() And motivo_revoca = 'S'))  And p.decesso Is Null    /*
AND    p.codice  IN ( Select b.codice From cart_pazpbl b Where b.codice = p.codice And b.cp_code ILike '427.3%' And Not ( b.pb_status = 'I' And b.modalita ='A' ))
AND    p.codice  NOT  IN ( Select b.codice From cart_pazpbl b Where b.codice = p.codice And b.cp_code ILike '394%' And Not ( b.pb_status = 'I' And b.modalita ='A' ))    */
AND  ( Case  When ( Select Distinct 1 From cart_problemi l , cart_pazpbl b Where l.codice = p.codice And l.cp_code IN ( '514' , '518.4' , '428' , '428.0' , '428.1' , '428.9' , '429.4' ) And l.pb_code = b.pb_code And Not ( b.pb_status = 'I' And  modalita = 'A'  And b.certezza <> 'S' ))  > 0  Then  1  Else  0   End  +
Case  When ( Select Distinct 1 From cart_problemi l , cart_pazpbl b Where l.codice = p.codice And l.cp_code ILike '401.9%' And l.pb_code = b.pb_code And Not ( b.pb_status = 'I' And  modalita = 'A'  And b.certezza <> 'S' ))  > 0  Then  1  Else  0   End  +
Case  When ( Select Distinct 1 From cart_problemi l , cart_pazpbl b Where l.codice = p.codice And ( l.cp_code ILike '444%' Or l.cp_code ILike '436%' Or l.cp_code ILike '435%' ) And l.pb_code = b.pb_code And Not ( b.pb_status = 'I' And  modalita = 'A'  And b.certezza <> 'S' ))  > 0  Then  2  Else  0   End  +
Case  When ( Select Distinct 1 From cart_problemi l , cart_pazpbl b Where l.codice = p.codice And l.cp_code ILike '250%' And l.pb_code = b.pb_code And Not ( b.pb_status = 'I' And  modalita = 'A'  And b.certezza <> 'S' ))  > 0  Then  1  Else  0   End  +
Case  When ( Select Distinct 1 From cart_problemi l , cart_pazpbl b Where l.codice = p.codice And ( l.cp_code ILike '443.9%' Or l.cp_code ILike '428.9%' Or l.cp_code ILike '435.9%' Or l.cp_code ILike 'V45.8%' Or l.cp_code ILike '444.22%' ) And l.pb_code = b.pb_code And Not ( b.pb_status = 'I' And  modalita = 'A'  And b.certezza <> 'S' ))  > 0  Then  1  Else  0   End  +
Case  When  Days( p.nascita, Today()+1)*24/8766 > 74.99 Then  2   When  Days( p.nascita, Today()+1)*24/8766 Between 65 And 74.99 Then  1   Else  0  End        +    Case  When  p.sesso  ILike 'F'  Then  1  Else  0   End )     > 0  
ORDER BY    5 , 6 , _CHA2DS2_VASc_  desc , p.cognome ,  p.nome   

Ti  saluto ,   Sergio

Cervino
Membro Junior
Membro Junior

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

Visualizza il profilo dell'utente

Tornare in alto Andare in basso

Re: calcolo CHADS2-VASc

Messaggio  Contenuto sponsorizzato


Contenuto sponsorizzato


Tornare in alto Andare in basso

Tornare in alto

- Argomenti simili

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