acaland / SmartMe

0 stars 0 forks source link

Esportazione dati per gruppi diagnostici #30

Closed Astrovic closed 9 months ago

Astrovic commented 1 year ago

È richiesta una funzione che permetta ad un operatore con permessi di Amministratore di produrre per un certo gruppo diagnostico un'esportazione dei dati in Excel. L'esportazione prevede che per ogni compito siano rappresentati:

Per rendere l’esportazione compatibile anche con altri applicativi (da sviluppare in futuro), suggerisco di considerare l'utilizzo del formato CSV (Comma Separated Values), che è compatibile con Excel ed utilizzato comunemente per questo scopo. Questo formato è costituito da dati tabulati separati da un carattere specifico (come virgola o punto e virgola) e organizzati in righe. La prima riga contiene le intestazioni delle colonne e le righe successive contengono i dati. Ad esempio il contenuto di un file CSV del Task 1 potrebbe essere il seguente:

idPatient, diagnosis, age, gender, educationYears, AccDay, ReactTimeDay
1a2b3c, ADMCI, 75, uomo, 4, 88.65, 234.89
4d5e6f, ADMCI, 63, donna, 2, 95.45, 213.54

Questo tipo di file CSV può essere facilmente aperto in Excel, dove i dati saranno automaticamente trasformati in una tabella organizzata:

Screenshot 2023-09-01 alle 13 03 52

Tuttavia, poiché desideriamo anche rappresentare i valori medi di accuratezza e tempo di reazione raggruppati in intervalli di tempo specifici (come settimane o mesi), potremmo considerare l'aggiunta di una nuova colonna/intestazione, ad esempio “intervalDays", che indichi il numero di giorni inclusi in ciascun valore. Riprendendo l’esempio precedente, esportando i valori medi settimanali del Task1, otterrei la seguente tabella:

idPatient, diagnosis, age, gender, educationYears, intervalDays, AccDay1, ReactTimeDay1, AccDay2, ReactTimeDay2, AccDay3, ReactTimeDay3
1a2b3c, ADMCI,75, uomo,4, 7, 88.65, 234.89, 89.45, 232.75, 89.95, 231.57
4d5e6f, ADMCI,63, donna,2, 7, 95.45, 213.54, 95.87, 212.45, 95.97, 211.91
Screenshot 2023-09-01 alle 15 12 58

Il valore intervalDays=7 indica che sto visualizzando i dati raggruppati per settimane (7 giorni). In questo modo AccDay1 e ReactTimeDay1 rappresentano i valori medi dei primi 7 giorni, AccDay2 e ReactTimeDay2 quelli della seconda settimana, ecc.. Questo metodo ha inoltre il vantaggio di utilizzare un unico modello per rappresentare i valori medi per qualunque intervallo di tempo: settimanale, mensile o N giorni.

La caratteristica dei file CSV è che i dati sono salvati tutti in un unico foglio, dunque bisognerebbe creare un file CSV per ogni Task. Se vogliamo avere un unico file che contenga i dati di tutti i compiti, possiamo creare un file XML, sempre compatibile con Excel, che ci consente di creare fogli separati come il seguente:

Screenshot 2023-09-01 alle 15 42 24

Excel consente di fare l'esportazione in CSV di ogni singolo foglio all’interno di un file XML, nel caso in cui fosse necessario esportare i dati per usarli altrove. Questa dunque potrebbe essere la soluzione migliore.

Per quanto riguarda l'integrazione della funzione di esportazione nell'app, propongo di posizionarla nella pagina Admin Settings, accessibile nella Home sessione solo agli operatori con privilegi di amministratore. Da questa pagina, gli amministratori potranno selezionare i gruppi diagnostici desiderati da un menu a tendina e definire l'intervallo temporale. Potremmo decidere se offrire intervalli predefiniti (settimane, mesi, ecc.) o consentire agli amministratori di specificare direttamente il numero di giorni.

Astrovic commented 1 year ago

Ad oggi quando un operatore crea un nuovo paziente può inserire in un campo testuale la diagnosi, usando notazioni diverse per la stessa diagnosi. Questo non ci consente di riunire i soggetti in un unico gruppo. Si è reso dunque necessario definire un elenco di diagnosi predefinite, che l'utente può selezionare da un menu a tendina sia nella finestra di creazione di un nuovo paziente che in quella per l'esportazione dei dati per gruppi diagnostici. Le diagnosi sono le seguenti:

Per poter esportare anche i dati dei pazienti salvati prima di questa modifica, nella funzione di esportazione per gruppi diagnostici ho aggiunto all'elenco delle diagnosi anche la voce "Tutte le diagnosi", che consente l'esportazione di tutti i dati.

Considerato che la struttura del database locale è differente da quella cloud, bisogna sviluppare due soluzioni differenti per l'esportazione dei dati locali e per quelli cloud, proprio come abbiamo dovuto fare per lo sviluppo della funzioni Archivio e Archivio Cloud. Nella pagina di esportazione sarà possibile selezionare da un menu a tendina l'origine dei dati, device o cloud. Attualmente è sviluppata solo l'esportazione dei dati su device.

Di seguito gli screenshots che illustrano la funzione di esportazione posizionata nella finestra Admin Settings, accessibile solo agli amministratori dalla Home sessione

Screenshot_20230926-154847

Screenshot_20230926-154900

Screenshot_20230926-154912

Screenshot_20230926-154958

--

Modifiche: commit1

Astrovic commented 11 months ago

È stata implementata l'esportazione dei dati per gruppo diagnostico con origine dei dati cloud, usando l'apposito pop-up, come mostrato nello screenshot seguente:

diagnostic group data origin

Modifica implementata nella release 1.0.18 https://github.com/acaland/SmartMe/releases/tag/v1.0.18

Questo è il link diretto per il download della versione Android: https://github.com/acaland/SmartMe/releases/download/v1.0.18/SmartMe.apk

Build iOS su TestFlight: https://testflight.apple.com/v1/app/1535177677?build=128398977


commit

Astrovic commented 11 months ago

È stato richiesto di aggiungere un campo Unità di ricerca / Ospedale nella scheda del paziente. Questo dato è riportato nella colonna researchUnit del file Excel generato dall'esportazione dati per gruppi diagnostici.

In allegato due screenshots, uno di un file Excel di esportazione per gruppi diagnostici, l'altro della nuova text field nella scheda paziente.

Modifica implementata nella release 1.0.20 https://github.com/acaland/SmartMe/releases/tag/v1.0.20

Questo è il link diretto per il download della versione Android: https://github.com/acaland/SmartMe/releases/download/v1.0.20/SmartMe.apk

Build iOS su TestFlight: https://testflight.apple.com/v1/app/1535177677?build=129251697

diagnosticGroup-researchUnit

researchUnit


commit