calcolo età nel giorno dell'intervento  Risolto!

Come utilizzare gli script. Automatizzare gli archivi. Utilizzo dei pulsanti

Moderatore: Moderatori

Bloccato
gullo
Messaggi: 12
Iscritto il: lunedì 26 dicembre 2016, 0:13
Versione FileMaker: 16
Sistema operativo: mac

calcolo età nel giorno dell'intervento

Messaggio da gullo » martedì 27 dicembre 2016, 23:46

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

Avatar utente
PaoloMar189
Messaggi: 77
Iscritto il: sabato 4 ottobre 2014, 18:31

Re: calcolo età nel giorno dell'intervento

Messaggio da PaoloMar189 » mercoledì 28 dicembre 2016, 9:32

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
Paolo Marinelli
Moderatore FMPro.it
Sviluppatore OmniaGest 5 e FileMaker 14-15

Omnia Studio

-----------------------------------------
http://www.omniagest.it

gullo
Messaggi: 12
Iscritto il: lunedì 26 dicembre 2016, 0:13
Versione FileMaker: 16
Sistema operativo: mac

Re: calcolo età nel giorno dell'intervento

Messaggio da gullo » mercoledì 28 dicembre 2016, 13:27

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.

Avatar utente
PaoloMar189
Messaggi: 77
Iscritto il: sabato 4 ottobre 2014, 18:31

Re: calcolo età nel giorno dell'intervento

Messaggio da PaoloMar189 » mercoledì 28 dicembre 2016, 14:32

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.
Paolo Marinelli
Moderatore FMPro.it
Sviluppatore OmniaGest 5 e FileMaker 14-15

Omnia Studio

-----------------------------------------
http://www.omniagest.it

gullo
Messaggi: 12
Iscritto il: lunedì 26 dicembre 2016, 0:13
Versione FileMaker: 16
Sistema operativo: mac

Re: calcolo età nel giorno dell'intervento

Messaggio da gullo » giovedì 29 dicembre 2016, 1:25

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

Avatar utente
PaoloMar189
Messaggi: 77
Iscritto il: sabato 4 ottobre 2014, 18:31

Re: calcolo età nel giorno dell'intervento  Risolto!

Messaggio da PaoloMar189 » giovedì 29 dicembre 2016, 10:43

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...".
Paolo Marinelli
Moderatore FMPro.it
Sviluppatore OmniaGest 5 e FileMaker 14-15

Omnia Studio

-----------------------------------------
http://www.omniagest.it

gullo
Messaggi: 12
Iscritto il: lunedì 26 dicembre 2016, 0:13
Versione FileMaker: 16
Sistema operativo: mac

Re: calcolo età nel giorno dell'intervento

Messaggio da gullo » giovedì 29 dicembre 2016, 20:59

Funziona!
grazie mille

Bloccato