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

Unisciti al forum, è facile e veloce

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
****************************************************
FORUM PER UTENTI MILLEWIN
Vuoi reagire a questo messaggio? Crea un account in pochi click o accedi per continuare.

calcolo CHADS2-VASc

3 partecipanti

Andare in basso

calcolo CHADS2-VASc  Empty calcolo CHADS2-VASc

Messaggio  nanci giacinto 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%%'
nanci giacinto
nanci giacinto
Membro Junior
Membro Junior

Messaggi : 128
Punti : 5209
Voti per importanza dei messaggi : -1
Data d'iscrizione : 02.03.11

Torna in alto Andare in basso

calcolo CHADS2-VASc  Empty Re: calcolo CHADS2-VASc

Messaggio  Cervino 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 : 245
Punti : 5281
Voti per importanza dei messaggi : 22
Data d'iscrizione : 03.03.11
Età : 70
Località : Orzivecchi (BS)

Torna in alto Andare in basso

calcolo CHADS2-VASc  Empty calcolo CHADS2-VASc

Messaggio  nanci giacinto 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
nanci giacinto
nanci giacinto
Membro Junior
Membro Junior

Messaggi : 128
Punti : 5209
Voti per importanza dei messaggi : -1
Data d'iscrizione : 02.03.11

Torna in alto Andare in basso

calcolo CHADS2-VASc  Empty Re: calcolo CHADS2-VASc

Messaggio  Cervino 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 : 245
Punti : 5281
Voti per importanza dei messaggi : 22
Data d'iscrizione : 03.03.11
Età : 70
Località : Orzivecchi (BS)

Torna in alto Andare in basso

calcolo CHADS2-VASc  Empty calcolo CHADS2-VASc

Messaggio  nanci giacinto 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.
nanci giacinto
nanci giacinto
Membro Junior
Membro Junior

Messaggi : 128
Punti : 5209
Voti per importanza dei messaggi : -1
Data d'iscrizione : 02.03.11

Torna in alto Andare in basso

calcolo CHADS2-VASc  Empty calcolo CHADS2-VASc

Messaggio  nanci giacinto 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?
nanci giacinto
nanci giacinto
Membro Junior
Membro Junior

Messaggi : 128
Punti : 5209
Voti per importanza dei messaggi : -1
Data d'iscrizione : 02.03.11

Torna in alto Andare in basso

calcolo CHADS2-VASc  Empty Re: calcolo CHADS2-VASc

Messaggio  drtulino 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
drtulino
drtulino
Moderatore
Moderatore

Messaggi : 1856
Punti : 7248
Voti per importanza dei messaggi : 91
Data d'iscrizione : 20.02.11
Età : 60
Località : Monte Argentario (GR)

https://www.facebook.com/groups/utentimillewin/

Torna in alto Andare in basso

calcolo CHADS2-VASc  Empty calcolo CHADS2-VASc

Messaggio  nanci giacinto 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
nanci giacinto
nanci giacinto
Membro Junior
Membro Junior

Messaggi : 128
Punti : 5209
Voti per importanza dei messaggi : -1
Data d'iscrizione : 02.03.11

Torna in alto Andare in basso

calcolo CHADS2-VASc  Empty calcolo CHADS2-VASc

Messaggio  nanci giacinto 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
nanci giacinto
nanci giacinto
Membro Junior
Membro Junior

Messaggi : 128
Punti : 5209
Voti per importanza dei messaggi : -1
Data d'iscrizione : 02.03.11

Torna in alto Andare in basso

calcolo CHADS2-VASc  Empty Re: calcolo CHADS2-VASc

Messaggio  Cervino 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 : 245
Punti : 5281
Voti per importanza dei messaggi : 22
Data d'iscrizione : 03.03.11
Età : 70
Località : Orzivecchi (BS)

Torna in alto Andare in basso

calcolo CHADS2-VASc  Empty CALCOLO CHADVASC

Messaggio  nanci giacinto 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
nanci giacinto
nanci giacinto
Membro Junior
Membro Junior

Messaggi : 128
Punti : 5209
Voti per importanza dei messaggi : -1
Data d'iscrizione : 02.03.11

Torna in alto Andare in basso

calcolo CHADS2-VASc  Empty Re: calcolo CHADS2-VASc

Messaggio  Cervino 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 : 245
Punti : 5281
Voti per importanza dei messaggi : 22
Data d'iscrizione : 03.03.11
Età : 70
Località : Orzivecchi (BS)

Torna in alto Andare in basso

calcolo CHADS2-VASc  Empty Re: calcolo CHADS2-VASc

Messaggio  Contenuto sponsorizzato


Contenuto sponsorizzato


Torna in alto Andare in basso

Torna in alto

- Argomenti simili

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