calcolo età nel giorno dell'intervento Risolto!
Moderatore: Moderatori
-
- Messaggi: 12
- Iscritto il: lunedì 26 dicembre 2016, 0:13
- Versione FileMaker: 16
- Sistema operativo: mac
calcolo età nel giorno dell'intervento
Ciao a tutti,
sono un medico e sto cercando di trasportare il nostro database degli interventi da diversi fogli di calcolo di excel (uno per tipo di patologia) in un vero database FM15.
Pensavo di creare una tabella che contiene solo le informazioni anagrafiche base del paziente (Cognome e Nome, data di nascita e un ID univoco fornito dal nostro sistema informatico RIS; per il momento la cartella si chiama prova) e diverse cartelle, una per tipo di patologia, collegate alla tabella anagrafica attraverso l'ID di cui sopra). (Lo stesso paziente può essere sottoposto a più interventi, per problemi diversi).
Purtroppo mi sto arenando sul calcolo dell'età nel giorno dell'intervento (che quindi viene calcolata nella tabella dell'intervento). Ho usato questo script:
RicavaComeTesto ( Anno ( DATA INTERVENTO ) - Anno ( prova::DATA DI NASCITA ) - If ( DATA INTERVENTO < Data ( Mese (prova::DATA DI NASCITA); Giorno (prova::DATA DI NASCITA); Anno (DATA INTERVENTO)) ; 1 ; 0) ) & " anni, " & RicavaComeTesto ( Modulo ( Mese ( DATA INTERVENTO ) - Mese ( prova::DATA DI NASCITA ) + 12 - If ( Giorno ( DATA INTERVENTO ) < Giorno ( prova::DATA DI NASCITA ); 1 ; 0 ); 12 ) ) & " mesi e " & RicavaComeTesto ( Giorno ( DATA INTERVENTO ) - Giorno ( prova::DATA DI NASCITA ) + If ( Giorno ( DATA INTERVENTO ) ≥ Giorno ( prova::DATA DI NASCITA ); 0 ; If ( Giorno ( DATA INTERVENTO ) - Giorno ( DATA INTERVENTO ) < Giorno ( prova::DATA DI NASCITA ); Giorno ( prova::DATA DI NASCITA ) ; Giorno ( DATA INTERVENTO ) - Giorno ( DATA INTERVENTO )))) & " giorni"
che penso di aver riadattato 'correttamente' dal calcolo suggerito sul sito di supporto di FM:
FullAge (calculation, text result) =
GetAsText ( Year ( Get ( CurrentDate ) ) - Year ( Birthdate ) - If ( Get ( CurrentDate ) < Date ( Month ( Birthdate ) ; Day ( Birthdate ) ; Year ( Get ( CurrentDate ) ) ) ; 1 ; 0 ) ) & " Years, " & GetAsText ( Mod ( Month ( Get ( CurrentDate ) ) - Month ( Birthdate ) + 12 - If ( Day ( Get ( CurrentDate ) ) < Day ( Birthdate ) ; 1 ; 0 ) ; 12 ) ) & " Months, " & GetAsText ( Day ( Get ( CurrentDate ) ) - Day ( Birthdate ) + If ( Day ( Get ( CurrentDate ) ) ≥ Day ( Birthdate ); 0 ; If ( Day ( Get ( CurrentDate ) - Day ( Get ( CurrentDate ) ) ) < Day ( Birthdate ) ; Day ( Birthdate ) ; Day ( Get ( CurrentDate ) - Day ( Get ( CurrentDate ) ) ) ) ) ) & " Days "
per esempio: inserendo come data di nascita 03/09/1996 e come data intervento 27/12/2016, il risultato è -1996 anni, 2 mesi e 0 giorni (appunto -1996!). il risultato viene calcolato ancora prima che inserisca la data dell'intervento.
Grazie a tutti
p.s.
La necessità di avere la data completa viene dal fatto che trattiamo anche neonati e bambinelli...
sono un medico e sto cercando di trasportare il nostro database degli interventi da diversi fogli di calcolo di excel (uno per tipo di patologia) in un vero database FM15.
Pensavo di creare una tabella che contiene solo le informazioni anagrafiche base del paziente (Cognome e Nome, data di nascita e un ID univoco fornito dal nostro sistema informatico RIS; per il momento la cartella si chiama prova) e diverse cartelle, una per tipo di patologia, collegate alla tabella anagrafica attraverso l'ID di cui sopra). (Lo stesso paziente può essere sottoposto a più interventi, per problemi diversi).
Purtroppo mi sto arenando sul calcolo dell'età nel giorno dell'intervento (che quindi viene calcolata nella tabella dell'intervento). Ho usato questo script:
RicavaComeTesto ( Anno ( DATA INTERVENTO ) - Anno ( prova::DATA DI NASCITA ) - If ( DATA INTERVENTO < Data ( Mese (prova::DATA DI NASCITA); Giorno (prova::DATA DI NASCITA); Anno (DATA INTERVENTO)) ; 1 ; 0) ) & " anni, " & RicavaComeTesto ( Modulo ( Mese ( DATA INTERVENTO ) - Mese ( prova::DATA DI NASCITA ) + 12 - If ( Giorno ( DATA INTERVENTO ) < Giorno ( prova::DATA DI NASCITA ); 1 ; 0 ); 12 ) ) & " mesi e " & RicavaComeTesto ( Giorno ( DATA INTERVENTO ) - Giorno ( prova::DATA DI NASCITA ) + If ( Giorno ( DATA INTERVENTO ) ≥ Giorno ( prova::DATA DI NASCITA ); 0 ; If ( Giorno ( DATA INTERVENTO ) - Giorno ( DATA INTERVENTO ) < Giorno ( prova::DATA DI NASCITA ); Giorno ( prova::DATA DI NASCITA ) ; Giorno ( DATA INTERVENTO ) - Giorno ( DATA INTERVENTO )))) & " giorni"
che penso di aver riadattato 'correttamente' dal calcolo suggerito sul sito di supporto di FM:
FullAge (calculation, text result) =
GetAsText ( Year ( Get ( CurrentDate ) ) - Year ( Birthdate ) - If ( Get ( CurrentDate ) < Date ( Month ( Birthdate ) ; Day ( Birthdate ) ; Year ( Get ( CurrentDate ) ) ) ; 1 ; 0 ) ) & " Years, " & GetAsText ( Mod ( Month ( Get ( CurrentDate ) ) - Month ( Birthdate ) + 12 - If ( Day ( Get ( CurrentDate ) ) < Day ( Birthdate ) ; 1 ; 0 ) ; 12 ) ) & " Months, " & GetAsText ( Day ( Get ( CurrentDate ) ) - Day ( Birthdate ) + If ( Day ( Get ( CurrentDate ) ) ≥ Day ( Birthdate ); 0 ; If ( Day ( Get ( CurrentDate ) - Day ( Get ( CurrentDate ) ) ) < Day ( Birthdate ) ; Day ( Birthdate ) ; Day ( Get ( CurrentDate ) - Day ( Get ( CurrentDate ) ) ) ) ) ) & " Days "
per esempio: inserendo come data di nascita 03/09/1996 e come data intervento 27/12/2016, il risultato è -1996 anni, 2 mesi e 0 giorni (appunto -1996!). il risultato viene calcolato ancora prima che inserisca la data dell'intervento.
Grazie a tutti
p.s.
La necessità di avere la data completa viene dal fatto che trattiamo anche neonati e bambinelli...
- PaoloMar189
- Messaggi: 77
- Iscritto il: sabato 4 ottobre 2014, 18:31
Re: calcolo età nel giorno dell'intervento
Ciao. Se vuoi semplificarti la vita, puoi usare questa funzione personalizzata di Brian Dunning, per il calcolo dell'età:
http://www.briandunning.com/cf/1198
http://www.briandunning.com/cf/1198
Paolo Marinelli
Moderatore FMPro.it
Sviluppatore OmniaGest 5 e FileMaker 14-15
Omnia Studio
-----------------------------------------
http://www.omniagest.it
Moderatore FMPro.it
Sviluppatore OmniaGest 5 e FileMaker 14-15
Omnia Studio
-----------------------------------------
http://www.omniagest.it
-
- Messaggi: 12
- Iscritto il: lunedì 26 dicembre 2016, 0:13
- Versione FileMaker: 16
- Sistema operativo: mac
Re: calcolo età nel giorno dell'intervento
Sempre stesso problema:
da un risultato negativo (-1997 anni per un paziente nato nel 1996) appena clicco sul campo "data intervento", prima dell'inserimento della data. E non si modifica quando ho inserito la data.
da un risultato negativo (-1997 anni per un paziente nato nel 1996) appena clicco sul campo "data intervento", prima dell'inserimento della data. E non si modifica quando ho inserito la data.
- PaoloMar189
- Messaggi: 77
- Iscritto il: sabato 4 ottobre 2014, 18:31
Re: calcolo età nel giorno dell'intervento
Per attribuire il risultato hai usato uno script? Se si, puoi incollarlo qui?
Se invece hai usato un campo calcolato, hai impostato l'opzione di "NON MEMORIZZARE RISULTATI DEI CALCOLI, RICALCOLA...."
Se è un campo con immissione automatica del valore calcolato, hai tolto il flag su "Non sostituire il valore esistente per il campo (se presente)"
?
Hai usato la funzione personalizzata che ti ho dato? dal tuo post non si capisce.
Se invece hai usato un campo calcolato, hai impostato l'opzione di "NON MEMORIZZARE RISULTATI DEI CALCOLI, RICALCOLA...."
Se è un campo con immissione automatica del valore calcolato, hai tolto il flag su "Non sostituire il valore esistente per il campo (se presente)"
?
Hai usato la funzione personalizzata che ti ho dato? dal tuo post non si capisce.
Paolo Marinelli
Moderatore FMPro.it
Sviluppatore OmniaGest 5 e FileMaker 14-15
Omnia Studio
-----------------------------------------
http://www.omniagest.it
Moderatore FMPro.it
Sviluppatore OmniaGest 5 e FileMaker 14-15
Omnia Studio
-----------------------------------------
http://www.omniagest.it
-
- Messaggi: 12
- Iscritto il: lunedì 26 dicembre 2016, 0:13
- Versione FileMaker: 16
- Sistema operativo: mac
Re: calcolo età nel giorno dell'intervento
scusa se non sono chiaro ma il mio livello è estremamente basico.
ho usato un'immissione automatica con con valore calcolato. lo script che ho ricavato dal link che hai mandato è il seguente:
( Anno ( DATA INTERVENTO ) - Anno ( prova::DATA DI NASCITA ) - ( (GiornodellAnno ( DATA INTERVENTO ) - Modulo ( Anno ( DATA INTERVENTO ) ; 4 ) ) < GiornodellAnno ( prova::DATA DI NASCITA ) ) ) & " anni, " & Modulo ( Mese ( DATA INTERVENTO ) - Mese ( prova::DATA DI NASCITA ) + 12 - ( Giorno ( DATA INTERVENTO ) < Giorno ( prova::DATA DI NASCITA ) ); 12 ) & " mesi e " & Assoluto ( DATA INTERVENTO - Data ( Mese ( DATA INTERVENTO ) - (Giorno ( DATA INTERVENTO ) < Giorno ( prova::DATA DI NASCITA )); Giorno ( prova::DATA DI NASCITA ) ; Anno ( DATA INTERVENTO ) ) ) & " giorni"
il risultato calcolato per date x è: -1998 anni, 10 mesi e ? giorni.
come vedi sembra funzionare solo la sezione di script per i mesi...
Non ho tolto il flag da "Non sostituire...." perché modificherebbe anche le età dei pazienti inseriti nei 10 anni precedenti e non vorrei che succedesse (capisco che per il momento è solo una versione di prova...)
scusami ancora per la mia ignoranza....
ho usato un'immissione automatica con con valore calcolato. lo script che ho ricavato dal link che hai mandato è il seguente:
( Anno ( DATA INTERVENTO ) - Anno ( prova::DATA DI NASCITA ) - ( (GiornodellAnno ( DATA INTERVENTO ) - Modulo ( Anno ( DATA INTERVENTO ) ; 4 ) ) < GiornodellAnno ( prova::DATA DI NASCITA ) ) ) & " anni, " & Modulo ( Mese ( DATA INTERVENTO ) - Mese ( prova::DATA DI NASCITA ) + 12 - ( Giorno ( DATA INTERVENTO ) < Giorno ( prova::DATA DI NASCITA ) ); 12 ) & " mesi e " & Assoluto ( DATA INTERVENTO - Data ( Mese ( DATA INTERVENTO ) - (Giorno ( DATA INTERVENTO ) < Giorno ( prova::DATA DI NASCITA )); Giorno ( prova::DATA DI NASCITA ) ; Anno ( DATA INTERVENTO ) ) ) & " giorni"
il risultato calcolato per date x è: -1998 anni, 10 mesi e ? giorni.
come vedi sembra funzionare solo la sezione di script per i mesi...
Non ho tolto il flag da "Non sostituire...." perché modificherebbe anche le età dei pazienti inseriti nei 10 anni precedenti e non vorrei che succedesse (capisco che per il momento è solo una versione di prova...)
scusami ancora per la mia ignoranza....
- PaoloMar189
- Messaggi: 77
- Iscritto il: sabato 4 ottobre 2014, 18:31
Re: calcolo età nel giorno dell'intervento Risolto!
Usa la funzione personalizzata di cui ti ho inviato il link.
Per quanto riguarda il risultato che non cambia, è praticamente ovvio che non cambi, se non togli il flag "Non sostituire...".
Per quanto riguarda il risultato che non cambia, è praticamente ovvio che non cambi, se non togli il flag "Non sostituire...".
Paolo Marinelli
Moderatore FMPro.it
Sviluppatore OmniaGest 5 e FileMaker 14-15
Omnia Studio
-----------------------------------------
http://www.omniagest.it
Moderatore FMPro.it
Sviluppatore OmniaGest 5 e FileMaker 14-15
Omnia Studio
-----------------------------------------
http://www.omniagest.it
-
- Messaggi: 12
- Iscritto il: lunedì 26 dicembre 2016, 0:13
- Versione FileMaker: 16
- Sistema operativo: mac
Re: calcolo età nel giorno dell'intervento
Funziona!
grazie mille
grazie mille