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

estrazioni facili

Andare in basso

estrazioni facili

Messaggio  mario shirt il Gio 11 Apr 2013 - 17:37

Ai guru quesito breve e facile: ho gia' visto nei precedenti argomenti quello che potrebbe fare al mio caso pero' vorrei diventare "autonomo"... devo estrarre Na K creatinina negli scompensati e Emoglobina glicata nei diabetici.

Mio ragionamento: Ho estratto gli scompensati e li ho messi nel registro, idem per i diabetici. Si imposta una query senza date che estrae na K e creatinina nel registro scompensati (nel senso la posso utilizzare quando voglio mettendo il periodo da esaminare prima di lanciare la query.. Giusto?)

Lo stesso x l'emoglobina glicata nei diabetici (c'e' il problema che invece del valore mi viene una ---> )

possibile avere 2 query semplici da poter cambiare al bisogno?

Grazie

Mario
mario shirt
mario shirt
Membro Junior
Membro Junior

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

Visualizza il profilo

Torna in alto Andare in basso

Re: estrazioni facili

Messaggio  Admin il Ven 12 Apr 2013 - 18:38

Due estrazioni elementari.

Per l'emoglobina glicata nei diabetici:

SELECT cognome, nome, datanasc, codfiscale, sesso, datavisita, accertamento, risults, icd9, problema, codmedico
FROM V_ACCERTAMENTI
WHERE accertamento like '%glicata%'
AND icd9 like '250%' /*Se si utilizza la estrazione su pazienti già selezionati come diabetici eliminare il rigo*/
ORDER BY 1,2,3


Per gli scompensati (forse è opportuno definire meglio il problema "scompenso"):

SELECT cognome, nome, datanasc, codfiscale, sesso, datavisita, accertamento, risults, icd9, problema, codmedico
FROM V_ACCERTAMENTI
WHERE (accertamento like '%sodio%' OR accertamento like '%potassio%' OR accertamento like '%creatinina%')
AND problema like '%scompens%' /*Se si utilizza la estrazione su pazienti già selezionati come scompensati eliminare il rigo */


ORDER BY 1,2,3

_________________
L'Amministratore
Giuseppe Blasio
Admin
Admin
Admin
Admin

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

Visualizza il profilo http://utentimillewin.forumattivo.it

Torna in alto Andare in basso

Re: estrazioni facili

Messaggio  mario shirt il Ven 12 Apr 2013 - 23:07

Admin ha scritto:Due estrazioni elementari.

Per l'emoglobina glicata nei diabetici:

SELECT cognome, nome, datanasc, codfiscale, sesso, datavisita, accertamento, risults, icd9, problema, codmedico
FROM V_ACCERTAMENTI
WHERE accertamento like '%glicata%'
AND icd9 like '250%' /*Se si utilizza la estrazione su pazienti già selezionati come diabetici eliminare il rigo*/
ORDER BY 1,2,3


Per gli scompensati (forse è opportuno definire meglio il problema "scompenso"):

SELECT cognome, nome, datanasc, codfiscale, sesso, datavisita, accertamento, risults, icd9, problema, codmedico
FROM V_ACCERTAMENTI
WHERE (accertamento like '%sodio%' OR accertamento like '%potassio%' OR accertamento like '%creatinina%')
AND problema like '%scompens%' /*Se si utilizza la estrazione su pazienti già selezionati come scompensati eliminare il rigo */


ORDER BY 1,2,3

Grazie mille, semplice anche per poterla variare semplicemente, pero' volevo che rispondesse meglio alle mie (dell'asl !!) esigenze. Ti spiego serve elenco completo dei diabetici (che ho estratto e messo in un registro) e valore e data dell'ultima emoglobina glicata effettuata nell'anno per poter dimostrare di averla richiesta su una percentuale superiore al 70%. La tua stringa prende tutt i paz con tutte le Emoglobine glicate del periodo che seleziono (non mi da il valore ma rimanda ad un allegato con il simbolo ---> ) ma non mostra i pazienti che non l'hanno effettuata.

Per lo scompenso solito discorso mi da solo quelli che hanno effettuato le analisi (mi sembra che ne salti tanti..). E' possibile sistemare sulla solita riga i 3 accertamenti invece che su righe diverse?

di nuovo grazie e buon fine settimana (dice ci sara' il sole sunny finalmente cheers )
Mario
mario shirt
mario shirt
Membro Junior
Membro Junior

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

Visualizza il profilo

Torna in alto Andare in basso

Re: estrazioni facili

Messaggio  Admin il Dom 14 Apr 2013 - 18:24

Per i pazienti scompensati, all'elenco del registro applicare la seguente query:

SELECT p.cognome+' '+ p.nome Nome, p.Nascita, CAST( years(p.nascita, today()) as char (3)) eta,

(SELECT max(a.data_open) FROM cart_accert a WHERE a.codice = p.codice AND a.Ac_Nt_code= '90.16.3'
AND not exists (SELECT x.codice from cart_accert x WHERE x.codice = p.codice AND x.Ac_Nt_code = a.Ac_Nt_code AND x.data_open>a.data_open) ) D_cre,


(SELECT max(ac_val) FROM cart_accert a WHERE a.codice = p.codice AND a.Ac_Nt_code= '90.16.3' AND a.ac_val is not null AND a.data_open = D_cre) Creatinina,

(SELECT max(a.data_open) FROM cart_accert a WHERE a.codice = p.codice AND a.Ac_Nt_code= '90.40.4'
AND not exists (SELECT x.codice from cart_accert x WHERE x.codice = p.codice AND x.Ac_Nt_code = a.Ac_Nt_code AND x.data_open>a.data_open) ) D_Na,


(SELECT max(ac_val) FROM cart_accert a WHERE a.codice = p.codice AND a.Ac_Nt_code= '90.40.4' AND a.ac_val is not null AND a.data_open = D_Na) Sodio,

(SELECT max(a.data_open) FROM cart_accert a WHERE a.codice = p.codice AND a.Ac_Nt_code= '90.37.4'
AND not exists (SELECT x.codice from cart_accert x WHERE x.codice = p.codice AND x.Ac_Nt_code = a.Ac_Nt_code AND x.data_open>a.data_open) ) D_K,


(SELECT max(ac_val) FROM cart_accert a WHERE a.codice = p.codice AND a.Ac_Nt_code= '90.37.4' AND a.ac_val is not null AND a.data_open = D_K) Potassio

FROM pazienti p, nos_002 n
WHERE p.codice=n.codice
AND p.decesso is null
AND (n.pa_drevoca is null OR n.pa_drevoca>Today())
Order by 1,2


Vengono estratte le ultime creatinine, sodio e potassio. Quando manca la data significa che l'accertamento non è stato mai richiesto, se compare la data ma non il valore significa che questo non è stato ancora registrato.

Per le emoglobine glicate, all'elenco del registro dei diabetici applicare la seguente query:

SELECT p.cognome+' '+ p.nome Nome, p.Nascita, CAST( years(p.nascita, today()) as char (3)) eta,

(SELECT max(a.data_open) FROM cart_accert a WHERE a.codice = p.codice AND a.Ac_Nt_code= '90.28.1'
AND not exists (SELECT x.codice from cart_accert x WHERE x.codice = p.codice AND x.Ac_Nt_code = a.Ac_Nt_code AND x.data_open>a.data_open) ) Data,


(SELECT max(ac_val) FROM cart_accert a WHERE a.codice = p.codice AND a.Ac_Nt_code= '90.28.1' AND a.ac_val is not null AND a.data_open = Data) glicata

FROM pazienti p, nos_002 n
WHERE p.codice=n.codice
AND p.decesso is null
AND (n.pa_drevoca is null OR n.pa_drevoca>Today())
Order by 1,2


Anche per questa vale lo stesso discorso della precedente. Il fatto che non compaiono i valori delle glicate ma --> che fa riferimento ad un allegato non me lo spiego. Ma i valori sono registrati normalmente al posto giusto in forma numerica?

_________________
L'Amministratore
Giuseppe Blasio
Admin
Admin
Admin
Admin

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

Visualizza il profilo http://utentimillewin.forumattivo.it

Torna in alto Andare in basso

Re: estrazioni facili

Messaggio  mario shirt il Dom 14 Apr 2013 - 22:10

Admin ha scritto:Per i pazienti scompensati, all'elenco del registro applicare la seguente query:

SELECT p.cognome+' '+ p.nome Nome, p.Nascita, CAST( years(p.nascita, today()) as char (3)) eta,

(SELECT max(a.data_open) FROM cart_accert a WHERE a.codice = p.codice AND a.Ac_Nt_code= '90.16.3'
AND not exists (SELECT x.codice from cart_accert x WHERE x.codice = p.codice AND x.Ac_Nt_code = a.Ac_Nt_code AND x.data_open>a.data_open) ) D_cre,


(SELECT max(ac_val) FROM cart_accert a WHERE a.codice = p.codice AND a.Ac_Nt_code= '90.16.3' AND a.ac_val is not null AND a.data_open = D_cre) Creatinina,

(SELECT max(a.data_open) FROM cart_accert a WHERE a.codice = p.codice AND a.Ac_Nt_code= '90.40.4'
AND not exists (SELECT x.codice from cart_accert x WHERE x.codice = p.codice AND x.Ac_Nt_code = a.Ac_Nt_code AND x.data_open>a.data_open) ) D_Na,


(SELECT max(ac_val) FROM cart_accert a WHERE a.codice = p.codice AND a.Ac_Nt_code= '90.40.4' AND a.ac_val is not null AND a.data_open = D_Na) Sodio,

(SELECT max(a.data_open) FROM cart_accert a WHERE a.codice = p.codice AND a.Ac_Nt_code= '90.37.4'
AND not exists (SELECT x.codice from cart_accert x WHERE x.codice = p.codice AND x.Ac_Nt_code = a.Ac_Nt_code AND x.data_open>a.data_open) ) D_K,


(SELECT max(ac_val) FROM cart_accert a WHERE a.codice = p.codice AND a.Ac_Nt_code= '90.37.4' AND a.ac_val is not null AND a.data_open = D_K) Potassio

FROM pazienti p, nos_002 n
WHERE p.codice=n.codice
AND p.decesso is null
AND (n.pa_drevoca is null OR n.pa_drevoca>Today())
Order by 1,2


Vengono estratte le ultime creatinine, sodio e potassio. Quando manca la data significa che l'accertamento non è stato mai richiesto, se compare la data ma non il valore significa che questo non è stato ancora registrato.

Per le emoglobine glicate, all'elenco del registro dei diabetici applicare la seguente query:

SELECT p.cognome+' '+ p.nome Nome, p.Nascita, CAST( years(p.nascita, today()) as char (3)) eta,

(SELECT max(a.data_open) FROM cart_accert a WHERE a.codice = p.codice AND a.Ac_Nt_code= '90.28.1'
AND not exists (SELECT x.codice from cart_accert x WHERE x.codice = p.codice AND x.Ac_Nt_code = a.Ac_Nt_code AND x.data_open>a.data_open) ) Data,


(SELECT max(ac_val) FROM cart_accert a WHERE a.codice = p.codice AND a.Ac_Nt_code= '90.28.1' AND a.ac_val is not null AND a.data_open = Data) glicata

FROM pazienti p, nos_002 n
WHERE p.codice=n.codice
AND p.decesso is null
AND (n.pa_drevoca is null OR n.pa_drevoca>Today())
Order by 1,2


Anche per questa vale lo stesso discorso della precedente. Il fatto che non compaiono i valori delle glicate ma --> che fa riferimento ad un allegato non me lo spiego. Ma i valori sono registrati normalmente al posto giusto in forma numerica?

Grazie mille boss, ho imparato molto.. Devo chiederti perche' anche se seleziono il registro le due query lavorano su tutto l'archivio.?
io per fare ricerche anche sui deceduti e revocati del periodo imposto di lavorare su pazienti in carico dal .... al .... senza escludere i deceduti e richiamo il registro (scompensati... diabetici,,) imposto il periodo di ricerca e lancio la query o il riepilogo...

Nella mia asl ricevo gli esami collegandomi al server: l'emoglobina glicata da 1 anno va in allegato perche da i valori nei due modi: percentuale e millimoli. il codice di millewin e' (703) 90.28.1. Puoi provare ad impostare il valore dell'allegato? ho provato ad aggiungere (703) alla tua stringa ma non mi ha dato nessun valore (nemmeno quelli vecchi!!)

Mario
mario shirt
mario shirt
Membro Junior
Membro Junior

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

Visualizza il profilo

Torna in alto Andare in basso

Re: estrazioni facili

Messaggio  Admin il Lun 15 Apr 2013 - 18:11

mario shirt ha scritto:......
Grazie mille boss, ho imparato molto.. Devo chiederti perche' anche se seleziono il registro le due query lavorano su tutto l'archivio.?
io per fare ricerche anche sui deceduti e revocati del periodo imposto di lavorare su pazienti in carico dal .... al .... senza escludere i deceduti e richiamo il registro (scompensati... diabetici,,) imposto il periodo di ricerca e lancio la query o il riepilogo...

Nella mia asl ricevo gli esami collegandomi al server: l'emoglobina glicata da 1 anno va in allegato perche da i valori nei due modi: percentuale e millimoli. il codice di millewin e' (703) 90.28.1. Puoi provare ad impostare il valore dell'allegato? ho provato ad aggiungere (703) alla tua stringa ma non mi ha dato nessun valore (nemmeno quelli vecchi!!)

Mario

Non so perché ma effettivamente l'estrazione esamina l'intero archivio senza tener conto dei pazienti in registro Sad Comunque per ovviare a questo basta lasciar perdere il registro ed aggiungere nella query, prima di order by

AND Exists (Select b.codice From cart_pazpbl b Where b.codice = p.codice And b.cp_code Like '250%')

Questo per considerare solo i diabetici, per gli scompensati al posto di '250%' inserire il codice Icd9 corrispondente.

Per quanto riguarda i valori delle emoglobine glicate, purtroppo non è possibile estrarre i valori contenuti negli allegati.

_________________
L'Amministratore
Giuseppe Blasio
Admin
Admin
Admin
Admin

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

Visualizza il profilo http://utentimillewin.forumattivo.it

Torna in alto Andare in basso

Re: estrazioni facili

Messaggio  mario shirt il Mar 16 Apr 2013 - 0:10

Admin ha scritto:
mario shirt ha scritto:......
Grazie mille boss, ho imparato molto.. Devo chiederti perche' anche se seleziono il registro le due query lavorano su tutto l'archivio.?
io per fare ricerche anche sui deceduti e revocati del periodo imposto di lavorare su pazienti in carico dal .... al .... senza escludere i deceduti e richiamo il registro (scompensati... diabetici,,) imposto il periodo di ricerca e lancio la query o il riepilogo...

Nella mia asl ricevo gli esami collegandomi al server: l'emoglobina glicata da 1 anno va in allegato perche da i valori nei due modi: percentuale e millimoli. il codice di millewin e' (703) 90.28.1. Puoi provare ad impostare il valore dell'allegato? ho provato ad aggiungere (703) alla tua stringa ma non mi ha dato nessun valore (nemmeno quelli vecchi!!)

Mario

Non so perché ma effettivamente l'estrazione esamina l'intero archivio senza tener conto dei pazienti in registro Sad Comunque per ovviare a questo basta lasciar perdere il registro ed aggiungere nella query, prima di order by

AND Exists (Select b.codice From cart_pazpbl b Where b.codice = p.codice And b.cp_code Like '250%')

Questo per considerare solo i diabetici, per gli scompensati al posto di '250%' inserire il codice Icd9 corrispondente.

Per quanto riguarda i valori delle emoglobine glicate, purtroppo non è possibile estrarre i valori contenuti negli allegati.

e se si inserissse AND pip.Incent_Code like 'REG0015' per forzare nel registro specificato (andrebbe trovato il numero giusto del registro usato)
Mario
mario shirt
mario shirt
Membro Junior
Membro Junior

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

Visualizza il profilo

Torna in alto Andare in basso

Re: estrazioni facili

Messaggio  Admin il Mar 16 Apr 2013 - 10:49

Non ho capito pip.Incent_Code campo di quale tabella sia, ma la vedo comunque una ulteriore complicazione.

_________________
L'Amministratore
Giuseppe Blasio
Admin
Admin
Admin
Admin

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

Visualizza il profilo http://utentimillewin.forumattivo.it

Torna in alto Andare in basso

Re: estrazioni facili

Messaggio  mario shirt il Mer 17 Apr 2013 - 18:07

Admin ha scritto:Non ho capito pip.Incent_Code campo di quale tabella sia, ma la vedo comunque una ulteriore complicazione.

ho usato la tua query gentilmente postata integrata dalla riga "carpita" da http://utentimillewin.forumattivo.it/t298p15-estrazione-progetto-asl#2264

[COMMENTO]

[SQL]

SELECT DISTINCT a.cognome,a.nome,a. accertamento,
(SELECT MAX(datavisita) FROM v_accertamenti a1 WHERE a1.accertamento = 'emoglobina glicata' AND a1.codice =a.codice AND
a1.risultN is not null ) AS ult_data,
(SELECT risultS from v_accertamenti a1 WHERE accertamento = 'emoglobina glicata' AND
a1. risultN is not null AND
a1.datavisita = ult_data AND a1.codice =a.codice) AS ult_val,
(select if Count(distinct t.datavisita )>0 then 'SI' Else 'NO' ENDIF from V_terapie t Where t.atc like 'A10%' AND t.codice=a.codice)as terap
FROM V_accertamenti a
where a.accertamento = 'emoglobina glicata'
AND a.risultN is not null


and a.codice IN (select pip.codice
from cart_concessioni_pip pip
where pip.Incent_Code like 'REG0005')


order by 1,2


solo che estrae emoglobina glicata nel mio registro diabetici, mi da solo le eg scritte in numero e non quelle in allegato come
vengono dalla asl !!
e non i paz. senza glicata fatta
Question Question
Dov'e' l'inghippo???
Mario

mario shirt
mario shirt
Membro Junior
Membro Junior

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

Visualizza il profilo

Torna in alto Andare in basso

Re: estrazioni facili

Messaggio  Admin il Mer 17 Apr 2013 - 21:09

mario shirt ha scritto:
Admin ha scritto:Non ho capito pip.Incent_Code campo di quale tabella sia, ma la vedo comunque una ulteriore complicazione.

ho usato la tua query gentilmente postata integrata dalla riga "carpita" da http://utentimillewin.forumattivo.it/t298p15-estrazione-progetto-asl#2264

[COMMENTO]

[SQL]

SELECT DISTINCT a.cognome,a.nome,a. accertamento,
(SELECT MAX(datavisita) FROM v_accertamenti a1 WHERE a1.accertamento = 'emoglobina glicata' AND a1.codice =a.codice AND a1.risultN is not null ) AS ult_data,
(SELECT risultS from v_accertamenti a1 WHERE accertamento = 'emoglobina glicata' AND a1. risultN is not null AND a1.datavisita = ult_data AND a1.codice =a.codice) AS ult_val,
(select if Count(distinct t.datavisita )>0 then 'SI' Else 'NO' ENDIF from V_terapie t Where t.atc like 'A10%' AND t.codice=a.codice)as terap
FROM V_accertamenti a
where a.accertamento = 'emoglobina glicata'
AND a.risultN is not null


and a.codice IN (select pip.codice from cart_concessioni_pip pip where pip.Incent_Code like 'REG0005')

order by 1,2


solo che estrae emoglobina glicata nel mio registro diabetici, mi da solo le eg scritte in numero e non quelle in allegato come vengono dalla asl !! e non i paz. senza glicata fatta
Question Question
Dov'e' l'inghippo???
Mario

E' logico che estrae solo i valori numerici e non quelli presenti come allegato (non c'è modo di fare ciò). E' normale che non estrae i pazienti senza glicata perché c'è la clausola "AND a.risultN is not null " che esclude i pazienti con risultati non registrati. Inoltre credo che il registro giusto sia 'REG0015' , almeno nel mio caso è così.

Comunque per estrarre tutti i pazienti, compresi quelli a cui non è mai stata segnata una glicata e quelli senza l'ultimo valore registrato, ti consiglio di usare le tabelle e non le viste, ad es:

SELECT p.cognome+' '+ p.nome Nome, p.Nascita, CAST( years(p.nascita, today()) as char (3)) eta,

(SELECT max(a.data_open) FROM cart_accert a WHERE a.codice = p.codice AND a.Ac_Nt_code= '90.28.1'
AND not exists (SELECT x.codice from cart_accert x WHERE x.codice = p.codice AND x.Ac_Nt_code = a.Ac_Nt_code AND x.data_open>a.data_open) ) Data,


(SELECT max(ac_val) FROM cart_accert a WHERE a.codice = p.codice AND a.Ac_Nt_code= '90.28.1' AND a.ac_val is not null AND a.data_open = Data) glicata,

(select if Count(distinct t.data_open )>0 then 'SI' Else 'NO' ENDIF from cart_terap t Where t.co_atc like 'A10%' AND t.codice=p.codice) as terapia

FROM pazienti p, nos_002 n
WHERE p.codice=n.codice
AND p.codice IN (select pip.codice from cart_concessioni_pip pip where pip.Incent_Code like 'REG0015')

Order by 1,2

_________________
L'Amministratore
Giuseppe Blasio
Admin
Admin
Admin
Admin

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

Visualizza il profilo http://utentimillewin.forumattivo.it

Torna in alto Andare in basso

Re: estrazioni facili

Messaggio  Contenuto sponsorizzato


Contenuto sponsorizzato


Torna in alto Andare in basso

Torna in alto


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