i pazienti del Lunedì
3 partecipanti
i pazienti del Lunedì
ricevo senza appuntamento. ho la sensazione che alcuni pazienti (impazienti) vengano abitualmente il Lunedì pomeriggio anche solo per ripetizione di ricette o controllo analisi. ovviamente il giorno postfestivo è più affollato. al dunque vorrei intervenire su questi abituè proponendo loro di procrastinare l'accesso ai giorni successiivi se non si tratta di visita per patologia.
a naso so chi sono MA le estrazioni che ci stanno a fare? a documentare , confermando o smentendo, delle intuizioni.
Al dunque , so di abusare e quindi di espormi a mancate risposte, ma come si può configurare una query che estragga per ogni paziente i giorni dei contatti. immagino un foglio excel con tante righe quanti sono i pazienti , una riga per ogni paziente e tante colonne , col giorno del contatto, per ogni riga.
a quel punto penso che con excel potrei individuare quali sono i pazienti che vengono più spesso di Lunedì.
non so neanche se ne valga la pena rispetto ad un intervento "a naso" fatto sul singolo che venuto di Lunedì senza nessuna urgenza si vede proporre una frequentazione più collaborativa dello studio .
in ogni caso ....
Luca Le Foche mMG Latina
a naso so chi sono MA le estrazioni che ci stanno a fare? a documentare , confermando o smentendo, delle intuizioni.
Al dunque , so di abusare e quindi di espormi a mancate risposte, ma come si può configurare una query che estragga per ogni paziente i giorni dei contatti. immagino un foglio excel con tante righe quanti sono i pazienti , una riga per ogni paziente e tante colonne , col giorno del contatto, per ogni riga.
a quel punto penso che con excel potrei individuare quali sono i pazienti che vengono più spesso di Lunedì.
non so neanche se ne valga la pena rispetto ad un intervento "a naso" fatto sul singolo che venuto di Lunedì senza nessuna urgenza si vede proporre una frequentazione più collaborativa dello studio .
in ogni caso ....
Luca Le Foche mMG Latina
LucaLeF- Membro Esperto
- Messaggi : 473
Punti : 5919
Voti per importanza dei messaggi : 11
Data d'iscrizione : 21.02.11
Re: i pazienti del Lunedì
Prova con ( verificare le varie clausole ) :LucaLeF ha scritto:ricevo senza appuntamento. ho la sensazione che alcuni pazienti (impazienti) vengano abitualmente il Lunedì pomeriggio anche solo per ripetizione di ricette o controllo analisi. ovviamente il giorno postfestivo è più affollato. al dunque vorrei intervenire su questi abituè proponendo loro di procrastinare l'accesso ai giorni successiivi se non si tratta di visita per patologia. a naso so chi sono MA le estrazioni che ci stanno a fare? a documentare , confermando o smentendo, delle intuizioni. Al dunque , so di abusare e quindi di espormi a mancate risposte, ma come si può configurare una query che estragga per ogni paziente i giorni dei contatti. immagino un foglio excel con tante righe quanti sono i pazienti , una riga per ogni paziente e tante colonne , col giorno del contatto, per ogni riga.
a quel punto penso che con excel potrei individuare quali sono i pazienti che vengono più spesso di Lunedì.
non so neanche se ne valga la pena rispetto ad un intervento "a naso" fatto sul singolo che venuto di Lunedì senza nessuna urgenza si vede proporre una frequentazione più collaborativa dello studio . in ogni caso ....
Luca Le Foche mMG Latina
WITH vis AS ( SELECT codice , DoW( data_open) AS week_d , data_open AS vis_d , tipo FROM cart_visite WHERE data_open> Today()-300 AND tipo = 'ad' GROUP BY codice , data_open , tipo ORDER BY codice , week_d )
SELECT p.cognome , p.nome , p.nascita , p.sesso , p.codice , Cast( CASE WHEN week_d = 1 THEN Count( week_d) END AS SmallInt ) AS mon , Cast( CASE WHEN week_d = 2 THEN Count( week_d) END AS SmallInt ) AS tues , Cast( CASE WHEN week_d = 3 THEN Count( week_d) END AS SmallInt ) AS wednes , Cast( CASE WHEN week_d = 4 THEN Count( week_d) END AS SmallInt ) AS thurs , Cast( CASE WHEN week_d = 5 THEN Count( week_d) END AS SmallInt ) AS fri , Cast( CASE WHEN week_d = 6 THEN Count( week_d) END AS SmallInt ) AS satur , Cast( CASE WHEN week_d = 0 THEN Count( week_d) END AS SmallInt ) AS sun , CASE week_d WHEN 1 THEN ' Lun' WHEN 2 THEN ' Mart' WHEN 3 THEN ' Merc' WHEN 4 THEN ' Giov' WHEN 5 THEN ' Ven' WHEN 6 THEN ' Sab' WHEN 0 THEN ' Dom' END
FROM pazienti p RIGHT JOIN vis v USING( codice) GROUP BY p.cognome , p.nome , p.nascita , p.sesso , week_d , p.codice ORDER BY p.cognome , p.nome , week_d
purtroppo con il vecchio schema classico SQL ( obsoleto ? ) , il set estratto non è altrettanto soddisfacente ( la funzione di aggregazione COUNT in pratica non risulta utile , probabilmente bisogna ottenere v.data_open tramite subquery ma … non sono un esperto ) :
SELECT p.cognome , p.nome , p.nascita , p.sesso , Cast( CASE WHEN DoW( v.data_open) = 1 THEN Count( DoW( v.data_open) ) ELSE 0 END AS SmallInt ) AS mon ,
Cast( CASE WHEN DoW( v.data_open) = 2 THEN Count( DoW( v.data_open) ) END AS SmallInt ) AS tues ,
Cast( CASE WHEN DoW( v.data_open) = 3 THEN Count( DoW( v.data_open) ) END AS SmallInt ) AS wednes ,
Cast( CASE WHEN DoW( v.data_open) = 4 THEN Count( DoW( v.data_open) ) END AS SmallInt ) AS thurs ,
Cast( CASE WHEN DoW( v.data_open) = 5 THEN Count( DoW( v.data_open) ) END AS SmallInt ) AS fri ,
Cast( CASE WHEN DoW( v.data_open) = 6 THEN Count( DoW( v.data_open) ) END AS SmallInt ) AS satur ,
Cast( CASE WHEN DoW( v.data_open) = 0 THEN Count( DoW( v.data_open) ) END AS SmallInt ) AS sun ,
CASE DoW( v.data_open) WHEN 1 THEN ' Lun' WHEN 2 THEN ' Mart' WHEN 3 THEN ' Merc' WHEN 4 THEN ' Giov' WHEN 5 THEN ' Ven' WHEN 6 THEN ' Sab' WHEN 0 THEN ' Dom' END AS week_d
FROM pazienti p RIGHT JOIN cart_visite v USING( codice)
WHERE v.data_open> Today()-365 AND tipo = 'ad'
GROUP BY p.cognome , p.nome , p.nascita , p.sesso , v.data_open , p.codice ORDER BY p.cognome , p.nome , week_d
Ti saluto , Sergio
Cervino- Membro Junior
- Messaggi : 245
Punti : 5281
Voti per importanza dei messaggi : 22
Data d'iscrizione : 03.03.11
Età : 70
Località : Orzivecchi (BS)
Re: i pazienti del Lunedì
Caro Sergio, sei come al solito molto gentile e disponibile
il primo gruppo di istruzioni mi dà zero righe estratte
il secondo gruppo il seguente messaggio di errore
ERRORE SQL:
SQLSTATE = 42P01
ERRORE: la relazione "vis" non esiste;
No query has been executed with that handle
SELECT p.cognome, p.nome, p.nascita , p.sesso , p.codice, Cast(
CASE WHEN week.d = 1 THEN Count( week.d) END AS Smalllnt
) AS mon , Cast( CASE WHEN we
ti confesso la mia ignoranza , non sono neanche consapevole di quello che ti sto comunicando, porta pazienza
ciao
Luca
fammi sapere se ti va ancora di proseguire
il primo gruppo di istruzioni mi dà zero righe estratte
il secondo gruppo il seguente messaggio di errore
ERRORE SQL:
SQLSTATE = 42P01
ERRORE: la relazione "vis" non esiste;
No query has been executed with that handle
SELECT p.cognome, p.nome, p.nascita , p.sesso , p.codice, Cast(
CASE WHEN week.d = 1 THEN Count( week.d) END AS Smalllnt
) AS mon , Cast( CASE WHEN we
ti confesso la mia ignoranza , non sono neanche consapevole di quello che ti sto comunicando, porta pazienza
ciao
Luca
fammi sapere se ti va ancora di proseguire
LucaLeF- Membro Esperto
- Messaggi : 473
Punti : 5919
Voti per importanza dei messaggi : 11
Data d'iscrizione : 21.02.11
Re: i pazienti del Lunedì
Come già piu' volte sottolineato , incredibilmente .. ma no troppo, nell' attuale versione di MW le WITH query ( in pratica le PreEstrazioni a cascata , Requisito fondamentale x semplificare e/o eseguire Interrogazioni complesse e sofisticate di un database ) non funzionano con MU v13.39 ( e oltre ? ) ;LucaLeF ha scritto:Caro Sergio, sei come al solito molto gentile e disponibile
il primo gruppo di istruzioni mi dà zero righe estratte
il secondo gruppo il seguente messaggio di errore ERRORE SQL: SQLSTATE = 42P01
ERRORE: la relazione "vis" non esiste;
No query has been executed with that handle
SELECT p.cognome, p.nome, p.nascita , p.sesso , p.codice, Cast(
CASE WHEN week.d = 1 THEN Count( week.d) END AS Smalllnt
) AS mon , Cast( CASE WHEN we
ti confesso la mia ignoranza , non sono neanche consapevole di quello che ti sto comunicando, porta pazienza
ciao Luca fammi sapere se ti va ancora di proseguire
di conseguenza bisogna, come gia piu' volte ribadito bisogna utilizzare PgAdmin III o 4 o web , una versione a piacere, comunque fornita di default quando è stato installato PostGres .
la Prima query funziona in modo ottimale con MU v 13.38 , la Seconda invece non raggruppa le righe x data ma è comunque utile x identificare visivamente i Frequent Visitors di un determinato giorno della settimana .
l' Errore SQL: SQLSTATE = 42P01 indica ovviamente che la query cerca una vista temporanea che ovviamente non esiste ( probabilmente hai rimosso la vista temporanea creata con la WITH query ) ; in MU utilizza la Seconda query .
Ti saluto , Sergio
Cervino- Membro Junior
- Messaggi : 245
Punti : 5281
Voti per importanza dei messaggi : 22
Data d'iscrizione : 03.03.11
Età : 70
Località : Orzivecchi (BS)
Re: i pazienti del Lunedì
Caro Sergio , mi accorgo di aver abusato della tua disponibilità e pazienza. Ti assicuro che "sottolineare o ribadire più volte" concetti che l'interlocutore dimostra di non comprendere non è proficuo in termini di comunicazione. Come ti sarai accorto nella pratica medica della relazione col paziente e come ti confermo io in questo scambio di messaggi. Io infatti non so proprio cosa sia PgAdmin, e come utilizzarlo. L'ho cercato tra i programmi istallati non trovandolo . Sono stato sul sito del software ma mi perdo tra le tante opzioni di download.
In conclusione penso che come medico che usa MilleWin con dovizia di inserimento dati possa cercare di soddisfare la mia curiosità nell'estrarre quello che mi serve, d'altra parte non mi sento in colpa per non avere adeguate conoscenze che mi permettano di formulare query in autonomia, oltre ad un uso basilare di MilleUtilità.
Ti ringrazio sinceramente e comunque, ancora una volta per il tempo che mi hai voluto altruisticamente dedicare
Luca
In conclusione penso che come medico che usa MilleWin con dovizia di inserimento dati possa cercare di soddisfare la mia curiosità nell'estrarre quello che mi serve, d'altra parte non mi sento in colpa per non avere adeguate conoscenze che mi permettano di formulare query in autonomia, oltre ad un uso basilare di MilleUtilità.
Ti ringrazio sinceramente e comunque, ancora una volta per il tempo che mi hai voluto altruisticamente dedicare
Luca
LucaLeF- Membro Esperto
- Messaggi : 473
Punti : 5919
Voti per importanza dei messaggi : 11
Data d'iscrizione : 21.02.11
Re: i pazienti del Lunedì
Ho visto il post per caso e ho ritrovato una vecchia query di una decina di anni fa. Per funzionare funziona ancora (almeno nel mio PC). Ma si ripropone il quesito : quali accessi considerare ? solo quelli dal medico? Anche quelli effettuati presso la segretaria ? Questa query li comprende tutti ; di conseguenza , se il paz fa un primo accesso dalla segretaria per prescrivere farmaci e mezz’ora dopo si presenta dal medico per un problema clinico, l’accesso viene contato 2 volte. Quindi la query ha una validità solo indicativa ; ma credo possa essere un buon punto di partenza, da migliorare
select p.cognome, p.nome,
(select count(*) from V_contatti v where p.codice = v.codice )as totali_acc,
(select count(*) from V_contatti v where p.codice = v.codice AND DOW(v.data_contatto)=2) as Lun,
(select count(*) from V_contatti v where p.codice = v.codice AND DOW(v.data_contatto)=3) as Mart,
(select count(*) from V_contatti v where p.codice = v.codice AND DOW(v.data_contatto)=4) as Merc,
(select count(*) from V_contatti v where p.codice = v.codice AND DOW(v.data_contatto)=5) as Giov,
(select count(*) from V_contatti v where p.codice = v.codice AND DOW(v.data_contatto)=6) as ven,
(select count(*) from V_contatti v where p.codice = v.codice AND DOW(v.data_contatto)=7) as sab,
(select count(*) from V_contatti v where p.codice = v.codice AND DOW(v.data_contatto)=1) as dom
From v_pazienti p , V_contatti v
where p.codice = v.codice
group by p.cognome,p.nome,p.codice
order by 4 desc
select p.cognome, p.nome,
(select count(*) from V_contatti v where p.codice = v.codice )as totali_acc,
(select count(*) from V_contatti v where p.codice = v.codice AND DOW(v.data_contatto)=2) as Lun,
(select count(*) from V_contatti v where p.codice = v.codice AND DOW(v.data_contatto)=3) as Mart,
(select count(*) from V_contatti v where p.codice = v.codice AND DOW(v.data_contatto)=4) as Merc,
(select count(*) from V_contatti v where p.codice = v.codice AND DOW(v.data_contatto)=5) as Giov,
(select count(*) from V_contatti v where p.codice = v.codice AND DOW(v.data_contatto)=6) as ven,
(select count(*) from V_contatti v where p.codice = v.codice AND DOW(v.data_contatto)=7) as sab,
(select count(*) from V_contatti v where p.codice = v.codice AND DOW(v.data_contatto)=1) as dom
From v_pazienti p , V_contatti v
where p.codice = v.codice
group by p.cognome,p.nome,p.codice
order by 4 desc
draleo83- Membro Junior
- Messaggi : 225
Punti : 5307
Voti per importanza dei messaggi : 25
Data d'iscrizione : 21.02.11
Re: i pazienti del Lunedì
Pardon; c'era un errore nell'identificazione del giorno della settimana. L'ho corretta
select p.cognome, p.nome,
(select count(*) from V_contatti v where p.codice = v.codice )as totali_acc,
(select count(*) from V_contatti v where p.codice = v.codice AND DOW(v.data_contatto)=1) as Lun,
(select count(*) from V_contatti v where p.codice = v.codice AND DOW(v.data_contatto)=2) as Mart,
(select count(*) from V_contatti v where p.codice = v.codice AND DOW(v.data_contatto)=3) as Merc,
(select count(*) from V_contatti v where p.codice = v.codice AND DOW(v.data_contatto)=4) as Giov,
(select count(*) from V_contatti v where p.codice = v.codice AND DOW(v.data_contatto)=5) as ven,
(select count(*) from V_contatti v where p.codice = v.codice AND DOW(v.data_contatto)=6) as sab,
(select count(*) from V_contatti v where p.codice = v.codice AND DOW(v.data_contatto)=7) as dom
From v_pazienti p , V_contatti v
where p.codice = v.codice
group by p.cognome,p.nome,p.codice
order by 4 desc
select p.cognome, p.nome,
(select count(*) from V_contatti v where p.codice = v.codice )as totali_acc,
(select count(*) from V_contatti v where p.codice = v.codice AND DOW(v.data_contatto)=1) as Lun,
(select count(*) from V_contatti v where p.codice = v.codice AND DOW(v.data_contatto)=2) as Mart,
(select count(*) from V_contatti v where p.codice = v.codice AND DOW(v.data_contatto)=3) as Merc,
(select count(*) from V_contatti v where p.codice = v.codice AND DOW(v.data_contatto)=4) as Giov,
(select count(*) from V_contatti v where p.codice = v.codice AND DOW(v.data_contatto)=5) as ven,
(select count(*) from V_contatti v where p.codice = v.codice AND DOW(v.data_contatto)=6) as sab,
(select count(*) from V_contatti v where p.codice = v.codice AND DOW(v.data_contatto)=7) as dom
From v_pazienti p , V_contatti v
where p.codice = v.codice
group by p.cognome,p.nome,p.codice
order by 4 desc
draleo83- Membro Junior
- Messaggi : 225
Punti : 5307
Voti per importanza dei messaggi : 25
Data d'iscrizione : 21.02.11
Re: i pazienti del Lunedì
Pardon; c'era un errore nell'identificazione del giorno della settimana. L'ho corretta
select p.cognome, p.nome,
(select count(*) from V_contatti v where p.codice = v.codice )as totali_acc,
(select count(*) from V_contatti v where p.codice = v.codice AND DOW(v.data_contatto)=1) as Lun,
(select count(*) from V_contatti v where p.codice = v.codice AND DOW(v.data_contatto)=2) as Mart,
(select count(*) from V_contatti v where p.codice = v.codice AND DOW(v.data_contatto)=3) as Merc,
(select count(*) from V_contatti v where p.codice = v.codice AND DOW(v.data_contatto)=4) as Giov,
(select count(*) from V_contatti v where p.codice = v.codice AND DOW(v.data_contatto)=5) as ven,
(select count(*) from V_contatti v where p.codice = v.codice AND DOW(v.data_contatto)=6) as sab,
(select count(*) from V_contatti v where p.codice = v.codice AND DOW(v.data_contatto)=7) as dom
From v_pazienti p , V_contatti v
where p.codice = v.codice
group by p.cognome,p.nome,p.codice
order by 4 desc
select p.cognome, p.nome,
(select count(*) from V_contatti v where p.codice = v.codice )as totali_acc,
(select count(*) from V_contatti v where p.codice = v.codice AND DOW(v.data_contatto)=1) as Lun,
(select count(*) from V_contatti v where p.codice = v.codice AND DOW(v.data_contatto)=2) as Mart,
(select count(*) from V_contatti v where p.codice = v.codice AND DOW(v.data_contatto)=3) as Merc,
(select count(*) from V_contatti v where p.codice = v.codice AND DOW(v.data_contatto)=4) as Giov,
(select count(*) from V_contatti v where p.codice = v.codice AND DOW(v.data_contatto)=5) as ven,
(select count(*) from V_contatti v where p.codice = v.codice AND DOW(v.data_contatto)=6) as sab,
(select count(*) from V_contatti v where p.codice = v.codice AND DOW(v.data_contatto)=7) as dom
From v_pazienti p , V_contatti v
where p.codice = v.codice
group by p.cognome,p.nome,p.codice
order by 4 desc
draleo83- Membro Junior
- Messaggi : 225
Punti : 5307
Voti per importanza dei messaggi : 25
Data d'iscrizione : 21.02.11
Re: i pazienti del Lunedì
grazie mille. certo che il forum contiene TANTISSIME interrogazioni. chissà se qualche collega del corso triennale di formazione volesse farci una tesi
LucaLeF- Membro Esperto
- Messaggi : 473
Punti : 5919
Voti per importanza dei messaggi : 11
Data d'iscrizione : 21.02.11
Argomenti simili
» Lunedì, Martedì... quando vengono i pazienti?
» PAZIENTI L.P.
» ESTRAZIONE PAZIENTI CON BMI >= 35
» PAZIENTI L.P.
» Elenco pazienti
» PAZIENTI L.P.
» ESTRAZIONE PAZIENTI CON BMI >= 35
» PAZIENTI L.P.
» Elenco pazienti
Permessi in questa sezione del forum:
Non puoi rispondere agli argomenti in questo forum.