Laatste potten (Technisch)
De module Laatste potten binnen de Apotheek Jansen App beheert meldingen over geneesmiddelen die bijna uit voorraad zijn in de baxterproductie en automatiseert het proces van notificeren aan de bestellingenafdeling.
Technisch ontwerp
De module is ontworpen rond een event-driven notificatiesysteem. Bij het aanmaken van een nieuwe record (LaatstePot) worden direct acties getriggerd om relevante medewerkers te informeren via pushberichten. De module bevat tevens een automatische opschoningsfunctie die het overzicht actueel houdt.
Datamodel
De module maakt gebruik van het LaatstePot model in core/models.py.
- LaatstePot:
voorraad_item(ForeignKey): Koppeling naar de centrale baxtervoorraad (VoorraadItem).datum(DateField): Ingangsdatum van de melding.afhandeling(TextField): Tekstveld voor de status van de opvolging.created_at(DateTimeField): Gebruikt voor de retentieperiode (30 dagen).
Implementatiedetails
- Automatische Retentie: Bij elke aanroep van de
laatstepottenview worden records die ouder zijn dan 30 dagen (op basis vancreated_at) automatisch verwijderd. - Notificatie-engine: Bij het opslaan van een nieuwe melding worden de Celery-taken
send_laatste_pot_push_taskensend_laatste_pot_email_taskaangeroepen. - Asynchroniteit: De taken worden op de achtergrond verwerkt via Celery en Redis om een snelle reactietijd van de webinterface te garanderen.
Autorisatie en beveiliging
Toegang wordt beheerd via de volgende permissies:
- can_view_baxter_laatste_potten: Inzien van de lijst.
- can_edit_baxter_laatste_potten: Toevoegen, bewerken en handmatig verwijderen.
- can_perform_bestellingen: Verplicht om pushmeldingen en e-mails te ontvangen bij nieuwe invoer.
Relevante bestanden
core/models.py: ModeldefinitieLaatstePot.core/views/laatstepotten.py: Interface-logica en automatische retentie-logica.core/tasks/: Celery-taken voor pushmeldingen en e-mails.core/forms.py: Validatie van het invoerformulier.