Review planner (Technisch)
Technisch ontwerp
De Review planner module is opgebouwd rondom het ReviewPlanner model. De interface maakt gebruik van een interactieve tabel met autosave-functionaliteit en een modal-venster voor invoer. Voor de export naar Excel wordt de openpyxl bibliotheek gebruikt.
Datamodel
De module maakt gebruik van de volgende modellen in core/models.py:
ReviewPlanner: Bevat de veldendatum,afdeling(FK naarMedicatieReviewAfdeling),status,arts,tijd,bijzonderheden,voorbereid_door(FK naarUser),uitgevoerd_door(FK naarUser),created_by,updated_byen tijdstempels.MedicatieReviewAfdeling: Wordt gebruikt als referentie voor de afdelingen waarvoor reviews gepland worden.
Implementatiedetails
- Weergave en bewerking: De
reviewplannerview incore/views/reviewplanner.pyhandelt zowel de weergave (GET) als de verwerking van wijzigingen (POST) af. - Validatie: Bij het opslaan (zowel via modal als autosave) wordt gevalideerd of de datum niet verder dan 4 weken in het verleden ligt.
- Autosave: De frontend verstuurt wijzigingen in bulk (
action="autosave") naar de server, waar de records atomair worden bijgewerkt. - Export: De functie
reviewplanner_export_overviewgenereert een Excel-bestand met alle opgeslagen reviews, inclusief details van afdeling en organisatie.
Autorisatie en beveiliging
De volgende permissies zijn van toepassing:
can_view_reviewplanner: Vereist om de module te kunnen inzien.can_edit_reviewplanner: Vereist om reviews toe te voegen, te wijzigen of te exporteren.can_perform_medicatiebeoordeling: Alleen gebruikers met deze permissie kunnen worden geselecteerd alsvoorbereid_doorofuitgevoerd_door.
Relevante bestanden
core/models.py: Definitie van hetReviewPlannermodel.core/views/reviewplanner.py: Logica voor weergave, opslaan en export.core/forms.py:ReviewPlannerFormvoor validatie en modal-invoer.core/templates/reviewplanner/index.html: Frontend template voor de interactieve interface.