Patiëntengegevens in JSON File **
In deze opdracht ga je een JSON-file analyseren. JSON is een file formaat om data op te slaan. De data wordt gestructureerd opgeslagen en is leesbaar (als txt). Het formaat lijkt een beetje op een assiociative array en wordt veel gebruikt bij REST API's.
De opdracht
Van een onderzoeksbureau heb je twee JSON-bestanden gehad. Het bestand bevat gegevens van Corona patiënten. Omwille van de privacy van de patiënten worden geen namen gebruikt, maar anonieme patiëntnummers.
Aan elke patiënt wordt een codering toegekend. In het schema hieronder worden de coderingen toegelicht.
Codering | Betekenis |
0 | Vermoedelijk Covid-19 |
1 | Covid-19 vastgesteld - patiënt ligt op gewone afdeling |
2 | Covid-19 vastgesteld - patiënt ligt op de intensive care |
3 | Patiënt is genezen |
4 | Patiënt is overleden |
Je krijgt een functie waarmee je het JSON-bestand kan inlezen. De functie krijgt de file naam mee als parameter en de return value is een assiociative array. Het array ziet er bijvoorbeeld als volgt uit:
Key | Value | Betekenis |
p-nc-199134 | 3 | Patiënt p-nc-199134 is genezen |
p-nc-199114 | 2 | Patiënt p-nc-199114 ligt op IC |
p-nc-199126 | 0 | Patiënt p-nc-199126 heeft vermoedelijk Covid-19 |
Je krijgt twee bestanden:
p-nc-191.json | bestand van een dag |
p-nc-192.json | bestand van de volgende dag |
De bestanden staan op deze pagina - links.
Met de functie die hieronder staat kan je het JSON-bestand lezen en krijg je een assiociative array.
<?php
function getData($file) { // JSON bestand
if ( file_exists($file) ) {
return(json_decode(file_get_contents($file), true)); // return assiociative array
} else {
return(0);
}
}
Lees met behulp van de gegeven functie de bestanden in.
De vragen
De opdrachtgever heeft de volgende vragen.
Vraag 1, overzicht
Maak een overzicht van beide dagen waarbij van elke categorie wordt aangegeven hoeveel patiënten er zijn.
Bijvoorbeeld:
Er zijn 212 patiënten die vermoedelijk Covid-19 hebben.
Er zijn 376 patiënten waarbij Covid-19 is vastgesteld.
etc.
(het liefst heeft de opdrachtgever deze gegevens netjes in een tabel)
Vraag 2, fouten vinden
Het blijkt dat er bij een paar patiënten een fout is gemaakt bij de invoer van hun status. Hun status is dus niet gelijk aan 1,2,3 of 4. Laat zien om welke patiënten dit gaat en wat de foutief ingevoerde code is. Heb je misschien een idee wat de juiste code zou moeten zijn? Leg uit.
Vraag 3, fouten corrigeren
Met de volgende functie kun je een assiosiative array wegschrijven als JSON-file
file_put_contents("file_name",json_encode($array))
Kun je de fouten die je bij (2) hebt gevonden corrigeren en het bestand wegschrijven. Doe dit voor beide bestanden.
Vraag 4a, veranderingen
Er zijn op de tweede dag helaas drie patiënten overleden. Zoek op welke patiënten dit zijn (patiëntnummers).
Vraag 4b, veranderingen
Wat was de vorige status van de drie overleden patiënten, komen ze van de IC of wat was hun vorige status?
--