Domanda

Lavoro nella sanità, rivedendo i processi di gestione dei dati di vari studi osservazionali. Un problema che ho affrontato ripetutamente è i dati scarsamente codificati, specialmente quando mancano alcuni valori.


Sfondo, salta se vuoi

Attualmente sto esaminando uno studio che raccoglie dati su pazienti affetti da una malattia specifica. I pazienti di solito si uniscono allo studio una volta confermata la malattia (pochi mesi dopo l'epidemia). Uno dei parametri importanti è il risultato di un certo esame del sangue nella fase acuta della malattia, ovvero il più vicino possibile all'epidemia. A volte, tuttavia, quel test non è stato eseguito perché non vi era alcuna indicazione o il paziente ha dimenticato di portare una copia del risultato, ecc.

Un aspetto importante qui è che tutti i dati nel DB sono generati da file cartacei (tonnellate di non mobili) e spesso le persone non hanno il tempo di scremare tutto, quindi non entrano nel risultato degli esami del sangue solo perché sono non ci sono ancora arrivato.


Al fine di "in qualche modo" codificare le ragioni per un valore assente, ho visto vari schemi:

  1. Usa un campo di testo (3) per booleani e usa n/a esprimere che "i dati non sono davvero disponibili" (ad esempio perché il test del sangue non è stato eseguito) e NULL Per esprimere "forse i dati sono da qualche parte, non l'ho ancora cercato".

  2. Utilizzare un campo aggiuntivo nella stessa tabella, ad esempio un campo booleano "bloodtest_perf" in cui "perf" sta per "effettivamente eseguito".

Non mi piace il primo approccio perché ti consente di inserire "Sì", "Y", "Ja", "Sì", ecc. E finisci per passare la maggior parte del tempo a pulire invece di analizzare i dati. Il secondo approccio non è molto meglio, perché nella migliore delle ipotesi si finisce dati fittizi e incordati:

__ TBL_TEST1 __________________________________
| patID | test1_perf | test1_date | test1_res |
+---------------------------------------------+
| 12345 | no         | NULL       | NULL      |
| 12345 | yes        | 2011-05-13 | 20.0      |
+---------------------------------------------+

La migliore soluzione che potrei inventare è creare un TBL_TEST1_METADATA che contiene una voce Iff test1 Non è stato eseguito, il che quindi specifica il motivo per cui no, ma i medici (con la conoscenza rudimentale di accesso a MS) stanno lottando con questo approccio di normalizzazione.

Cos'è una soluzione pragmatica ma efficace per questo problema?

Nessuna soluzione corretta

Autorizzato sotto: CC-BY-SA insieme a attribuzione
scroll top