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

Ricerca farmaci prescritti in base al problema codificato

Andare in basso

Ricerca farmaci prescritti in base al problema codificato

Messaggio  massimo.meacci il Gio 8 Mar 2018 - 23:45

Buonasera colleghi, vorrei fare una estrazione SQL estraendo quali antibiotico viene usato in relazione ad problema codificato. Per esempio se tonsillite quale antibiotico è stato usato. Se bronchite idem. ecc..
Qualcuno ha una stringa per fare questo tipo di estrazione o qualcosa di simile da poter modificare icd9 se relativa a problemi diversi?
Grazie in anticipo

massimo.meacci
Nuovo Membro
Nuovo Membro

Messaggi : 3
Punti : 2727
Voti per importanza dei messaggi : 0
Data d'iscrizione : 08.03.11

Visualizza il profilo

Torna in alto Andare in basso

Re: Ricerca farmaci prescritti in base al problema codificato

Messaggio  Cervino il Dom 11 Mar 2018 - 11:55

massimo.meacci ha scritto:Buonasera colleghi, vorrei fare una estrazione SQL estraendo quali antibiotico viene usato in relazione ad problema codificato. Per esempio se tonsillite quale antibiotico è stato usato. Se bronchite idem. ecc..
Qualcuno ha una stringa per fare questo tipo di estrazione o qualcosa di simile da poter modificare icd9 se relativa a problemi diversi?
Grazie in anticipo
Forse puo' esserTi utile una query del tipo :

SELECT Distinct  p.cognome ,  p.nome ,  Cast( Days( p.nascita , Today()+1)*24/8766 As SmallInt )  As  eta , p.sesso , t.data_open ,  t.co_des ,  t.co_atc ,  b.nome_pbl ,  b.cp_code ,  Today()  As  query_d
FROM  ( pazienti  p  LEFT  JOIN  cart_terap t  ON   p.codice = t.codice )   LEFT  JOIN   cart_pazpbl b  ON   t.codice = b.codice
WHERE  ( t.co_atc ILIKE 'J01%'  AND  t.data_open > Today()-365 )  AND  t.pb_code = b.pb_code
ORDER BY  1 ,  2 , 6


in Postgres una query di tal genere andrebbe tuttavia modificata utilizzando un sistema a cascata :

WITH  atb  AS ( SELECT codice , data_open AS ter_d , co_des AS terap , co_atc AS atc , pb_code FROM  cart_terap t  WHERE t.co_atc ILIKE 'J01%' AND  t.data_open > Today()-365 ) ,
  pbl AS  ( SELECT nome_pbl AS pbl , cp_code AS icd , pb_code FROM cart_pazpbl WHERE codice IN ( SELECT codice FROM atb) AND pb_code IN ( SELECT pb_code FROM atb))
SELECT  DISTINCT  p.cognome ,  p.nome ,  Cast( Days( p.nascita , Today()+1)*24/8766 As SmallInt )  As  eta , p.sesso ,
 ter_d , terap , atc , pbl , icd   FROM ( atb   LEFT JOIN   pbl   USING( pb_code ))  LEFT JOIN   pazienti p  USING( codice)
ORDER BY  1 ,  2 , 5 , 6


che purtroppo non credo funzioni con l' attuale versione di MW-MU  .   Saluti  Sergio

Cervino
Membro Junior
Membro Junior

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

Visualizza il profilo

Torna in alto Andare in basso

Ricerca farmaci prescritti in base al problema codificato

Messaggio  massimo.meacci il Dom 11 Mar 2018 - 13:14

Cervino ha scritto:
massimo.meacci ha scritto:Buonasera colleghi, vorrei fare una estrazione SQL estraendo quali antibiotico viene usato in relazione ad problema codificato. Per esempio se tonsillite quale antibiotico è stato usato. Se bronchite idem. ecc..
Qualcuno ha una stringa per fare questo tipo di estrazione o qualcosa di simile da poter modificare icd9 se relativa a problemi diversi?
Grazie in anticipo
Forse puo' esserTi utile una query del tipo :

SELECT Distinct  p.cognome ,  p.nome ,  Cast( Days( p.nascita , Today()+1)*24/8766 As SmallInt )  As  eta , p.sesso , t.data_open ,  t.co_des ,  t.co_atc ,  b.nome_pbl ,  b.cp_code ,  Today()  As  query_d
FROM  ( pazienti  p  LEFT  JOIN  cart_terap t  ON   p.codice = t.codice )   LEFT  JOIN   cart_pazpbl b  ON   t.codice = b.codice
WHERE  ( t.co_atc ILIKE 'J01%'  AND  t.data_open > Today()-365 )  AND  t.pb_code = b.pb_code
ORDER BY  1 ,  2 , 6


in Postgres una query di tal genere andrebbe tuttavia modificata utilizzando un sistema a cascata :

WITH  atb  AS ( SELECT codice , data_open AS ter_d , co_des AS terap , co_atc AS atc , pb_code FROM  cart_terap t  WHERE t.co_atc ILIKE 'J01%' AND  t.data_open > Today()-365 ) ,
  pbl AS  ( SELECT nome_pbl AS pbl , cp_code AS icd , pb_code FROM cart_pazpbl WHERE codice IN ( SELECT codice FROM atb) AND pb_code IN ( SELECT pb_code FROM atb))
SELECT  DISTINCT  p.cognome ,  p.nome ,  Cast( Days( p.nascita , Today()+1)*24/8766 As SmallInt )  As  eta , p.sesso ,
 ter_d , terap , atc , pbl , icd   FROM ( atb   LEFT JOIN   pbl   USING( pb_code ))  LEFT JOIN   pazienti p  USING( codice)
ORDER BY  1 ,  2 , 5 , 6


che purtroppo non credo funzioni con l' attuale versione di MW-MU  .   Saluti  Sergio

Grazie delle query. Ho provato la prima e estrae bene tutte le terapie antibiotiche con tutti i problemi. (mi sarà molto utile). 
La seconda mi rende 0 righe.

Nel frattempo cercando nel gruppo ho trovato una query fatta per il diabete che ho modificato come segue:

Select Distinct p.cognome, p.nome, p.nascita, p.sesso, b.pr_descr Problema, b.data_open Inizio_Problema, t.co_Des Farmaco, t.te_Npezzi N_Pezzi, t.data_open Data_prescr, t.co_Atc ATC
FROM pazienti p , nos_002 n, cart_problemi b, cart_terap t
Where p.codice = n.codice And b.codice = p.codice AND p.codice=t.codice
AND(b.cp_code like '46%' OR b.cp_code like '47%' OR b.cp_code like '48%' OR b.cp_code like '49%' OR b.cp_code like '50%' OR b.cp_code like '51%')
AND b.data_open > (Today() - 5840)
And (n.pa_drevoca Is Null Or n.pa_drevoca > Today()) 
AND (t.co_ATC LIKE 'J01%')
AND t.data_open BETWEEN '2017/01/01' AND '2017/12/31'
ORDER BY t.co_Atc

Mi fa una giusta estrazione, ora però sto cercando di fare i conti di spesa per ogni tipo di antibiotico.
Se hai suggerimenti ti ringrazio.
Massimo

massimo.meacci
Nuovo Membro
Nuovo Membro

Messaggi : 3
Punti : 2727
Voti per importanza dei messaggi : 0
Data d'iscrizione : 08.03.11

Visualizza il profilo

Torna in alto Andare in basso

Re: Ricerca farmaci prescritti in base al problema codificato

Messaggio  Cervino il Dom 11 Mar 2018 - 21:02

massimo.meacci ha scritto:Grazie delle query. Ho provato la prima e estrae bene tutte le terapie antibiotiche con tutti i problemi. (mi sarà molto utile). 
La seconda mi rende 0 righe.
Nel frattempo cercando nel gruppo ho trovato una query fatta per il diabete che ho modificato come segue:
Select Distinct p.cognome, p.nome, p.nascita, p.sesso, b.pr_descr Problema, b.data_open Inizio_Problema, t.co_Des Farmaco, t.te_Npezzi N_Pezzi, t.data_open Data_prescr, t.co_Atc ATC
FROM pazienti p , nos_002 n, cart_problemi b, cart_terap t
Where p.codice = n.codice And b.codice = p.codice AND p.codice=t.codice
AND(b.cp_code like '46%' OR b.cp_code like '47%' OR b.cp_code like '48%' OR b.cp_code like '49%' OR b.cp_code like '50%' OR b.cp_code like '51%')
AND b.data_open > (Today() - 5840)
And (n.pa_drevoca Is Null Or n.pa_drevoca > Today()) 
AND (t.co_ATC LIKE 'J01%')
AND t.data_open BETWEEN '2017/01/01' AND '2017/12/31'
ORDER BY t.co_Atc
Mi fa una giusta estrazione, ora però sto cercando di fare i conti di spesa per ogni tipo di antibiotico.
Se hai suggerimenti ti ringrazio.   Massimo
Come immaginato, la seconda query restituisce 0 righe, in quanto purtroppo nell' attuale versione di MW-MU l' istruzione WITH non è incredibilmente implementata : ma bisognerebbe partire da una query di tal genere per la ricerca da Te proposta ,
in quanto le query classiche rischiano di restituire vare incongruenze nelle estrazioni . 
Ho provato a modificare la query implementandola con le clausole selettive da Te richieste ; ecco alcune possibili soluzioni :


SELECT DISTINCT  p.cognome , p.nome , p.nascita , p.sesso ,
 (SELECT Max( b.pr_descr) AS problema FROM cart_problemi b WHERE b. codice = t. codice AND ((b.cp_code ILIKE '46%' OR b.cp_code ILIKE '47%' OR b.cp_code ILIKE '48%' OR b.cp_code ILIKE '49%' OR b.cp_code ILIKE '50%' OR b.cp_code ILIKE '51%')
   /* AND b.data_open > (Today() - 5840)) */ AND  t.pb_code = b.pb_code ))  _problema_ ,
t.co_Des AS Farmaco, t.te_npezzi AS n_pezzi, t.data_open AS data_prescr, t.co_atc AS atc
FROM ((  cart_terap t  LEFT JOIN  cart_pazpbl b  USING( codice)) LEFT JOIN  pazienti p   USING( codice))  LEFT JOIN  nos_002 n USING( codice)
WHERE (t.co_atc ILIKE 'J01%' AND t.data_open BETWEEN '2017/01/01' AND '2017/12/31')
AND ((b.cp_code ILIKE '46%' OR b.cp_code ILIKE '47%' OR b.cp_code ILIKE '48%' OR b.cp_code ILIKE '49%' OR b.cp_code ILIKE '50%' OR b.cp_code ILIKE '51%') /* AND b.data_open > (Today() - 5840)*/ )
AND (n.pa_drevoca Is Null OR n.pa_drevoca > Today())
ORDER BY  _problema_ , t.co_atc , p.cognome, p.nome , t.data_open
                                                         oppure
SELECT DISTINCT  p.cognome , p.nome , p.nascita , p.sesso ,
 (SELECT b.nome_pbl AS problema FROM cart_pazpbl b WHERE b. codice = t. codice AND ((b.cp_code ILIKE '46%' OR b.cp_code ILIKE '47%' OR b.cp_code ILIKE '48%' OR b.cp_code ILIKE '49%' OR b.cp_code ILIKE '50%' OR b.cp_code ILIKE '51%')
  /* AND b.data_open > (Today() - 5840))  */ AND  t.pb_code = b.pb_code ))  _problema_ ,
t.co_Des AS Farmaco, t.te_Npezzi AS n_pezzi, t.data_open AS data_prescr, t.co_atc AS atc
FROM ((  cart_terap t  lEFT JOIN  cart_pazpbl b  USING( codice)) LEFT JOIN  pazienti p   USING( codice))  LEFT JOIN  nos_002 n USING( codice)
WHERE (t.co_atc ILIKE 'J01%' AND t.data_open BETWEEN '2017/01/01' AND '2017/12/31')
AND ((b.cp_code ILIKE '46%' OR b.cp_code ILIKE '47%' OR b.cp_code ILIKE '48%' OR b.cp_code ILIKE '49%' OR b.cp_code ILIKE '50%' OR b.cp_code ILIKE '51%')  /* AND b.data_open > (Today() - 5840)*/ )
AND (n.pa_drevoca Is Null OR n.pa_drevoca > Today())
ORDER BY _problema_ , t.co_atc , p.cognome, p.nome , t.data_open

                                              senza correlazione  fra  Problema  e  Terapia :
SELECT DISTINCT p.cognome, p.nome, p.nascita, p.sesso, b.nome_pbl AS problema, b.data_open AS Inizio_Problema, t.co_Des AS Farmaco, t.te_Npezzi AS n_pezzi, t.data_open AS data_prescr, t.co_atc AS atc
FROM ((  cart_terap t  LEFT JOIN  cart_pazpbl b  USING( codice)) LEFT JOIN  pazienti p   USING( codice))  LEFT JOIN  nos_002 n USING( codice)
WHERE (t.co_atc ILIKE 'J01%' AND t.data_open BETWEEN '2017/01/01' AND '2017/12/31')
AND ((b.cp_code ILIKE '46%' OR b.cp_code ILIKE '47%' OR b.cp_code ILIKE '48%' OR b.cp_code ILIKE '49%' OR b.cp_code ILIKE '50%' OR b.cp_code ILIKE '51%')  AND b.data_open > (Today() - 5840))
AND (n.pa_drevoca Is Null OR n.pa_drevoca > Today())
ORDER BY t.co_atc , p.cognome, p.nome , t.data_open


ma l' attendibilità dei vari set estratti  ( in teoria almeno il 1° e/o il 2° ),  va verificare con lunghe e laboriose analisi/verifiche; per query relativamente non semplici come queste, l' utilizzo di uno schema classico ( senza WITH )
si rivela quantomeno problematico .      Ti saluto ,  Sergio

PS : ... ora però sto cercando di fare i conti di spesa per ogni tipo di antibiotico ... sarebbe opportuno precisare meglio le condizioni di ricerca

Cervino
Membro Junior
Membro Junior

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

Visualizza il profilo

Torna in alto Andare in basso

Re: Ricerca farmaci prescritti in base al problema codificato

Messaggio  massimo.meacci il Lun 12 Mar 2018 - 11:03

Cervino ha scritto:
massimo.meacci ha scritto:Grazie delle query. Ho provato la prima e estrae bene tutte le terapie antibiotiche con tutti i problemi. (mi sarà molto utile). 
La seconda mi rende 0 righe.
Nel frattempo cercando nel gruppo ho trovato una query fatta per il diabete che ho modificato come segue:
Select Distinct p.cognome, p.nome, p.nascita, p.sesso, b.pr_descr Problema, b.data_open Inizio_Problema, t.co_Des Farmaco, t.te_Npezzi N_Pezzi, t.data_open Data_prescr, t.co_Atc ATC
FROM pazienti p , nos_002 n, cart_problemi b, cart_terap t
Where p.codice = n.codice And b.codice = p.codice AND p.codice=t.codice
AND(b.cp_code like '46%' OR b.cp_code like '47%' OR b.cp_code like '48%' OR b.cp_code like '49%' OR b.cp_code like '50%' OR b.cp_code like '51%')
AND b.data_open > (Today() - 5840)
And (n.pa_drevoca Is Null Or n.pa_drevoca > Today()) 
AND (t.co_ATC LIKE 'J01%')
AND t.data_open BETWEEN '2017/01/01' AND '2017/12/31'
ORDER BY t.co_Atc
Mi fa una giusta estrazione, ora però sto cercando di fare i conti di spesa per ogni tipo di antibiotico.
Se hai suggerimenti ti ringrazio.   Massimo
Come immaginato, la seconda query restituisce 0 righe, in quanto purtroppo nell' attuale versione di MW-MU l' istruzione WITH non è incredibilmente implementata : ma bisognerebbe partire da una query di tal genere per la ricerca da Te proposta ,
in quanto le query classiche rischiano di restituire vare incongruenze nelle estrazioni . 
Ho provato a modificare la query implementandola con le clausole selettive da Te richieste ; ecco alcune possibili soluzioni :


SELECT DISTINCT  p.cognome , p.nome , p.nascita , p.sesso ,
 (SELECT Max( b.pr_descr) AS problema FROM cart_problemi b WHERE b. codice = t. codice AND ((b.cp_code ILIKE '46%' OR b.cp_code ILIKE '47%' OR b.cp_code ILIKE '48%' OR b.cp_code ILIKE '49%' OR b.cp_code ILIKE '50%' OR b.cp_code ILIKE '51%')
   /* AND b.data_open > (Today() - 5840)) */ AND  t.pb_code = b.pb_code ))  _problema_ ,
t.co_Des AS Farmaco, t.te_npezzi AS n_pezzi, t.data_open AS data_prescr, t.co_atc AS atc
FROM ((  cart_terap t  LEFT JOIN  cart_pazpbl b  USING( codice)) LEFT JOIN  pazienti p   USING( codice))  LEFT JOIN  nos_002 n USING( codice)
WHERE (t.co_atc ILIKE 'J01%' AND t.data_open BETWEEN '2017/01/01' AND '2017/12/31')
AND ((b.cp_code ILIKE '46%' OR b.cp_code ILIKE '47%' OR b.cp_code ILIKE '48%' OR b.cp_code ILIKE '49%' OR b.cp_code ILIKE '50%' OR b.cp_code ILIKE '51%') /* AND b.data_open > (Today() - 5840)*/ )
AND (n.pa_drevoca Is Null OR n.pa_drevoca > Today())
ORDER BY  _problema_ , t.co_atc , p.cognome, p.nome , t.data_open
                                                         oppure
SELECT DISTINCT  p.cognome , p.nome , p.nascita , p.sesso ,
 (SELECT b.nome_pbl AS problema FROM cart_pazpbl b WHERE b. codice = t. codice AND ((b.cp_code ILIKE '46%' OR b.cp_code ILIKE '47%' OR b.cp_code ILIKE '48%' OR b.cp_code ILIKE '49%' OR b.cp_code ILIKE '50%' OR b.cp_code ILIKE '51%')
  /* AND b.data_open > (Today() - 5840))  */ AND  t.pb_code = b.pb_code ))  _problema_ ,
t.co_Des AS Farmaco, t.te_Npezzi AS n_pezzi, t.data_open AS data_prescr, t.co_atc AS atc
FROM ((  cart_terap t  lEFT JOIN  cart_pazpbl b  USING( codice)) LEFT JOIN  pazienti p   USING( codice))  LEFT JOIN  nos_002 n USING( codice)
WHERE (t.co_atc ILIKE 'J01%' AND t.data_open BETWEEN '2017/01/01' AND '2017/12/31')
AND ((b.cp_code ILIKE '46%' OR b.cp_code ILIKE '47%' OR b.cp_code ILIKE '48%' OR b.cp_code ILIKE '49%' OR b.cp_code ILIKE '50%' OR b.cp_code ILIKE '51%')  /* AND b.data_open > (Today() - 5840)*/ )
AND (n.pa_drevoca Is Null OR n.pa_drevoca > Today())
ORDER BY _problema_ , t.co_atc , p.cognome, p.nome , t.data_open

                                              senza correlazione  fra  Problema  e  Terapia :
SELECT DISTINCT p.cognome, p.nome, p.nascita, p.sesso, b.nome_pbl AS problema, b.data_open AS Inizio_Problema, t.co_Des AS Farmaco, t.te_Npezzi AS n_pezzi, t.data_open AS data_prescr, t.co_atc AS atc
FROM ((  cart_terap t  LEFT JOIN  cart_pazpbl b  USING( codice)) LEFT JOIN  pazienti p   USING( codice))  LEFT JOIN  nos_002 n USING( codice)
WHERE (t.co_atc ILIKE 'J01%' AND t.data_open BETWEEN '2017/01/01' AND '2017/12/31')
AND ((b.cp_code ILIKE '46%' OR b.cp_code ILIKE '47%' OR b.cp_code ILIKE '48%' OR b.cp_code ILIKE '49%' OR b.cp_code ILIKE '50%' OR b.cp_code ILIKE '51%')  AND b.data_open > (Today() - 5840))
AND (n.pa_drevoca Is Null OR n.pa_drevoca > Today())
ORDER BY t.co_atc , p.cognome, p.nome , t.data_open


ma l' attendibilità dei vari set estratti  ( in teoria almeno il 1° e/o il 2° ),  va verificare con lunghe e laboriose analisi/verifiche; per query relativamente non semplici come queste, l' utilizzo di uno schema classico ( senza WITH )
si rivela quantomeno problematico .      Ti saluto ,  Sergio

PS : ... ora però sto cercando di fare i conti di spesa per ogni tipo di antibiotico ... sarebbe opportuno precisare meglio le condizioni di ricerca

Buongiorno, ho riprovato le estrazioni, sia la mia che le tue e estraggono tutte le terapie antibiotiche, ma non sembrano legate al problema perché estrae tutta la fosfomicina che ho controllato è legata a cistite icd9 595.0. 
Alcune righe non hanno il problema e controllando ho visto essere prescritte su altri problemi o senza problema dalla segretaria.

Per quanto riguarda la spesa volevo fare dei confronti di spesa fra le varie molecole per analizzarli nella AFT. es: amoxicillina verso amoxicillina/ac. clavulanico. 

Ti saluto
Massimo

massimo.meacci
Nuovo Membro
Nuovo Membro

Messaggi : 3
Punti : 2727
Voti per importanza dei messaggi : 0
Data d'iscrizione : 08.03.11

Visualizza il profilo

Torna in alto Andare in basso

Re: Ricerca farmaci prescritti in base al problema codificato

Messaggio  Cervino il Lun 12 Mar 2018 - 23:44

massimo.meacci           1 ha scritto:
SELECT DISTINCT  p.cognome , p.nome , p.nascita , p.sesso ,
 (SELECT Max( b.pr_descr) AS problema FROM cart_problemi b WHERE b. codice = t. codice AND ((b.cp_code ILIKE '46%' OR b.cp_code ILIKE '47%' OR b.cp_code ILIKE '48%' OR b.cp_code ILIKE '49%' OR b.cp_code ILIKE '50%' OR b.cp_code ILIKE '51%')
   /* AND b.data_open > (Today() - 5840)) */ AND  t.pb_code = b.pb_code ))  _problema_ ,
t.co_Des AS Farmaco, t.te_npezzi AS n_pezzi, t.data_open AS data_prescr, t.co_atc AS atc
FROM ((  cart_terap t  LEFT JOIN  cart_pazpbl b  USING( codice)) LEFT JOIN  pazienti p   USING( codice))  LEFT JOIN  nos_002 n USING( codice)
WHERE (t.co_atc ILIKE 'J01%' AND t.data_open BETWEEN '2017/01/01' AND '2017/12/31')
AND ((b.cp_code ILIKE '46%' OR b.cp_code ILIKE '47%' OR b.cp_code ILIKE '48%' OR b.cp_code ILIKE '49%' OR b.cp_code ILIKE '50%' OR b.cp_code ILIKE '51%') /* AND b.data_open > (Today() - 5840)*/ )
AND (n.pa_drevoca Is Null OR n.pa_drevoca > Today())
ORDER BY  _problema_ , t.co_atc , p.cognome, p.nome , t.data_open
                                                         oppure     2
SELECT DISTINCT  p.cognome , p.nome , p.nascita , p.sesso ,
 (SELECT b.nome_pbl AS problema FROM cart_pazpbl b WHERE b. codice = t. codice AND ((b.cp_code ILIKE '46%' OR b.cp_code ILIKE '47%' OR b.cp_code ILIKE '48%' OR b.cp_code ILIKE '49%' OR b.cp_code ILIKE '50%' OR b.cp_code ILIKE '51%')
  /* AND b.data_open > (Today() - 5840))  */ AND  t.pb_code = b.pb_code ))  _problema_ ,
t.co_Des AS Farmaco, t.te_Npezzi AS n_pezzi, t.data_open AS data_prescr, t.co_atc AS atc
FROM ((  cart_terap t  lEFT JOIN  cart_pazpbl b  USING( codice)) LEFT JOIN  pazienti p   USING( codice))  LEFT JOIN  nos_002 n USING( codice)
WHERE (t.co_atc ILIKE 'J01%' AND t.data_open BETWEEN '2017/01/01' AND '2017/12/31')
AND ((b.cp_code ILIKE '46%' OR b.cp_code ILIKE '47%' OR b.cp_code ILIKE '48%' OR b.cp_code ILIKE '49%' OR b.cp_code ILIKE '50%' OR b.cp_code ILIKE '51%')  /* AND b.data_open > (Today() - 5840)*/ )
AND (n.pa_drevoca Is Null OR n.pa_drevoca > Today())
ORDER BY _problema_ , t.co_atc , p.cognome, p.nome , t.data_open

                                              senza correlazione  fra  Problema  e  Terapia :   3
SELECT DISTINCT p.cognome, p.nome, p.nascita, p.sesso, b.nome_pbl AS problema, b.data_open AS Inizio_Problema, t.co_Des AS Farmaco, t.te_Npezzi AS n_pezzi, t.data_open AS data_prescr, t.co_atc AS atc
FROM ((  cart_terap t  LEFT JOIN  cart_pazpbl b  USING( codice)) LEFT JOIN  pazienti p   USING( codice))  LEFT JOIN  nos_002 n USING( codice)
WHERE (t.co_atc ILIKE 'J01%' AND t.data_open BETWEEN '2017/01/01' AND '2017/12/31')
AND ((b.cp_code ILIKE '46%' OR b.cp_code ILIKE '47%' OR b.cp_code ILIKE '48%' OR b.cp_code ILIKE '49%' OR b.cp_code ILIKE '50%' OR b.cp_code ILIKE '51%')  AND b.data_open > (Today() - 5840))
AND (n.pa_drevoca Is Null OR n.pa_drevoca > Today())
ORDER BY t.co_atc , p.cognome, p.nome , t.data_open


Buongiorno, ho riprovato le estrazioni, sia la mia che le tue e estraggono tutte le terapie antibiotiche, ma non sembrano legate al problema perché estrae tutta la fosfomicina che ho controllato è legata a cistite icd9 595.0. Alcune righe non hanno il problema e controllando ho visto essere prescritte su altri problemi o senza problema dalla segretaria.Per quanto riguarda la spesa volevo fare dei confronti di spesa fra le varie molecole per analizzarli nella AFT. es: amoxicillina verso amoxicillina/ac. clavulanico.   Ti saluto  Massimo
Il risultato è tuttavia quello previsto in base alle condizioni di ricerca : le query 1 e 2 estraggono ( con marginali differenze ) l' antibiotico e l' eventuale problema collegato , se ricade nel range considerato   ((b.cp_code ILIKE '46%' OR b.cp_code ILIKE '47%' OR b.cp_code ILIKE '48%' OR b.cp_code ILIKE '49%' OR b.cp_code ILIKE '50%' OR b.cp_code ILIKE '51%')  e le righe con il problema desiderato , vengono ordinate per prime ( ovviamente se l ' antibiotico è stato prescritto x un altro problema , il relativo campo rimane vuoto ) .
Per ricerche mirate di tal genere , sarebbe meglio utilizzare il metodo selettivo a cascata  ( tramite l' istruzione WITH )
Invece nella 3° query manca la correlazione  fra  Problema  e  Terapia ( è a titolo di esempio ma probabilmente di scarsa utilità )
Ti saluto ,  Sergio

Cervino
Membro Junior
Membro Junior

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

Visualizza il profilo

Torna in alto Andare in basso

Re: Ricerca farmaci prescritti in base al problema codificato

Messaggio  Contenuto sponsorizzato


Contenuto sponsorizzato


Torna in alto Andare in basso

Torna in alto

- Argomenti simili

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