Uitgewerkte usecases
Functionele use cases
In dit hoofdstuk beschrijven we de functionele use cases voor de functie Workflow.
Het onderstaande Use Case diagram toont de interactie tussen verschillende systemen en actoren binnen het MedMij Afsprakenstelsel voor de nieuwe functie Workflow. Het doel is om de workflow voor het beheren van taken en het verwerken van notificaties te structureren en verduidelijken, terwijl het beveiligingsaspect via een logcomponent wordt gewaarborgd. Dit systeem biedt een helder overzicht van de verantwoordelijkheden en informatie-uitwisseling tussen personen, dienstverleners en beheerders.
Afbeelding: Use case diagram
We beschrijven functionele use cases door in te gaan op het doel, de pre- en postcondities en beschrijven eventuele alternatieve en exceptie scenario’s. Er zijn voor elke use case 3 standaard exceptie scenario's die buiten de beschreven exceptie scenario's bestaan. Deze exceptie scenario’s kunnen voorkomen bij elke vorm van berichtenverkeer tussen systemen. Elk bericht moet voldoen aan de RFC 2616 standaard, zoals die beschreven staan in hoofdstuk 6.1.1 van het RFC 2616 protocol. De volgende 3 exceptie scenario’s kunnen generiek voorkomen in elke use case en tonen we niet bij de individuele use cases:
Verbinding tussen systemen kan niet tot stand worden gebracht. Dit houdt in dat systemen niet kunnen uitwisselen en er geen berichtenverkeer plaatsvindt.
De opbouw van het bericht is niet naar verwachting. Elk bericht bevat velden die op een bepaalde manier gevuld moeten worden. Wanneer er velden ontbreken kan het bericht niet correct verwerkt worden.
De inhoud van het bericht is niet naar verwachting. In dit exceptie scenario zijn de velden in het bericht wel naar verwachting ingericht, maar zijn ze leeg of incorrect.
Daarnaast visualiseren we in een activiteiten diagram de interacties tussen de betrokken rollen. De beschrijving van de rollen en de bijbehorende verantwoordelijkheden is te vinden in de twee hoofdstukken “Rollen, Functies, verantwoordelijkheden”. Hierin staat ook beschreven welke rol verantwoordelijk is voor welke status wijziging van een taak (het ‘state’-model).
Abonneer
1. Persoon neemt een abonnement (pre-conditie)
Doel
Persoon neemt een abonnement voor het ontvangen van notificaties van een specifieke Aanbieder.
Precondities
DVA is geaccepteerd voor de functie Workflow.
DVA is geaccepteerd voor extensie abonneren.
Postcondities
Persoon is geautoriseerd.
Abonnement is aangemaakt.
De DVP legt het Abonnement vast in het dossier van de Persoon.
De gebeurtenissen zijn gelogd volgens de Logging bij workflow gebruik pagina.
Exceptie scenario’s
Wanneer de Persoon zijn Zorgaanbieder niet kan vinden bij het selecteren van zijn Aanbieder in de PGO, wordt de flow gestopt.
Wanneer de autorisatie niet succesvol kan worden uitgevoerd, wordt de flow gestopt.
Alternatieve scenario’s
Wanneer de Persoon reeds geautoriseerd is, zijn er alternatieve scenario’s waarin de abonnementsaanvraag direct wordt verwerkt.
Activity Diagram
Stappen:
Persoon selecteert de Zorgaanbieder in de PGO.
Persoon neemt een abonnement op een Aanbieder.
De DVA autoriseert de Persoon.
De DVP verwerkt de abonnement aanvraag.
De DVA maakt het abonnement aan.
2. Persoon annuleert een abonnement
Doel: Persoon annuleert het abonnement op het ontvangen van notificaties van een specifieke Zorgaanbieder.
Precondities
DVA is geaccepteerd voor de functie Workflow.
DVA is geaccepteerd voor de extensie Abonneren.
Persoon heeft een abonnement.
Postcondities
De Persoon is geautoriseerd.
De gebeurtenissen zijn gelogd volgens de Logging bij workflow gebruik pagina.
Het abonnement is verwijderd.
Exceptie scenario’s
Wanneer de Persoon zijn Zorgaanbieder niet kan vinden in zijn PGO, stopt de flow.
Wanneer de autorisatie niet succesvol kan worden uitgevoerd, stopt de flow.
Alternatieve scenario’s
Wanneer de Persoon reeds geautoriseerd is, vindt er een alternatief scenario plaats waarin de abonnementsaanvraag direct wordt verwerkt na het nemen van het abonnement.
Activity Diagram
Stappen:
De Persoon selecteert de Zorgaanbieder in de PGO.
De Persoon dient een annuleringsverzoek in.
De DVA autoriseert de Persoon.
De DVP verwerkt het annuleringsverzoek.
De DVA stopt het abonnement.
Taken en notificeren
3. Zorgaanbieder maakt een taak aan
Deze use case is niet gepubliceerd. Het aanmaken van een taak door een zorgaanbieder valt buiten het afsprakenstelsel.
4. Zorgaanbieder wijzigt of annuleert een taak
Deze use case is niet gepubliceerd. Het wijzigen of annuleren van een taak door een zorgaanbieder valt buiten het afsprakenstelsel.
5. Persoon haalt taken op
Doel: Persoon haalt de aan hem toegewezen taken op in zijn PGO.
Precondities
DVA is geaccepteerd voor de functie Workflow.
Persoon is geautoriseerd.
Postcondities
Indien de taak opgeslagen is in het dossier, wordt de taak opgehaald uit het dossier.
Taken worden getoond in de PGO.
De gebeurtenissen zijn gelogd volgens de Logging bij workflow gebruik pagina.
Exceptie scenario’s
Wanneer er geen taken beschikbaar zijn voor de Persoon, stopt de flow.
Alternatieve scenario’s
Indien de taak niet is opgeslagen in het dossier, wordt de taak rechtstreeks opgehaald bij de DVA.
Activity Diagram
Stappen:
De Persoon geeft aan dat de taken getoond moeten worden, door in de PGO de optie “toon taken” te selecteren.
De DVP haalt de aan de Persoon toegewezen taken op uit het Dossier.
Alternatief scenario: taken worden direct opgehaald uit de Workflow Server bij de DVA.
De DVA stuurt de taken op.
De Persoon bekijkt de taken in de PGO.
6. Persoon wijzigt een taak
Doel: Persoon wijzigt een taak door de status te veranderen en/of er een notitie aan toe te voegen.
Precondities
Persoon is geautoriseerd.
DVA is geaccepteerd voor de functie Workflow.
DVA is geaccepteerd voor de extensie Abonneren.
DVA is geaccepteerd voor de extensie Notificeren.
Toegewezen taken zijn opgehaald.
De taakstatus heeft een status conform het state model, zoals beschreven op de Rollen, Functies en Verantwoordelijkheden pagina.
Postcondities
De DVA heeft de gewijzigde taak opgeslagen.
De geabonneerden zijn genotificeerd.
De gebeurtenissen zijn gelogd volgens de Logging bij workflow gebruik pagina.
De taakstatus heeft een status conform het state model, zoals beschreven op de Rollen, Functies en Verantwoordelijkheden pagina.
Exceptie scenario’s
Wanneer er na de statuscheck blijkt dat de taakstatus niet overeenkomt met de bovengenoemde statussen, stopt de flow.
Wanneer er na de abonnementscheck blijkt dat er geen abonnementen zijn, wordt de flow gestopt.
Wanneer er na de abonnementscheck blijkt dat er niet aan de abonnementscriteria wordt voldaan, stopt de flow.
Alternatieve scenario’s
-
Activity Diagram
Stappen:
De Persoon opent de taak in de PGO.
De DVP haalt de taak details op van de geopende taak.
De DVA geeft de taak details weer.
De Persoon wijzigt de taak door de status ervan te veranderen en/of door notities er aan toe te voegen.
De Persoon bevestigt de wijziging.
De DVP voert de wijzigingen door.
De DVA slaat de taak op.
De DVA controleert of er abonnementen zijn.
De DVA notificeert de geabonneerden, wanneer er aan de abonnementscriteria wordt voldaan.
7. Persoon voltooit een taak
Doel: De Persoon voltooit een taak.
Precondities
Persoon is geautoriseerd.
DVA is geaccepteerd voor de functie Workflow.
DVA is geaccepteerd voor de extensie Abonneren.
DVA is geaccepteerd voor de extensie Notificeren.
Toegewezen taken zijn opgehaald.
De taakstatus heeft een status conform het state model, zoals beschreven op de Rollen, Functies en Verantwoordelijkheden pagina.
Postcondities
De DVA heeft de gewijzigde taak opgeslagen.
De geabonneerden zijn genotificeerd.
De gebeurtenissen zijn gelogd volgens de Logging bij workflow gebruik pagina.
De taakstatus heeft een status conform het state model, zoals beschreven op de Rollen, Functies en Verantwoordelijkheden pagina.
Exceptie scenario’s
Wanneer er na de abonnementscheck blijkt dat er geen abonnementen zijn, wordt de flow gestopt.
Wanneer er na de abonnementscheck blijkt dat er niet aan de abonnementscriteria wordt voldaan, stopt de flow.
Activity Diagram
De onderstaande workflow gaat er van uit dat Persoon de taak kan voltooien en daarvoor de task-status ‘completed’ mag gebruiken. De Zorgaanbieder gaat de resultaten beoordelen en kan een nieuwe taak voorschrijven indien de Zorgaanbieder het resultaat van de taak niet als voltooid beoordeeld.
Stappen:
De Persoon selecteert en opent een taak in de PGO.
De DVP haalt de taak details op van de geopende taak.
De DVA geeft de taak details weer.
De Persoon wijzigt de taak door de status ervan te veranderen en/of door er notities aan toe te voegen.
De Persoon bevestigt de wijziging.
De DVP voert alle wijzigingen door.
De DVA slaat de taak op. (intern, omdat zorgaanbieder niet in het stelsel zit)
De DVA controleert of er abonnementen zijn.
De DVA notificeert de geabonneerden, wanneer er aan de abonnementscriteria wordt voldaan.
Notificeren
8. Persoon ontvangt notificatie
Doel: De geabonneerden worden genotificeerd.
Precondities
Persoon is geautoriseerd.
DVA is geaccepteerd voor de functie Workflow.
DVA is geaccepteerd voor de extensie Abonneren.
DVA is geaccepteerd voor de extensie Notificeren.
Persoon is geabonneerd.
Postcondities
De geabonneerden zijn genotificeerd indien het abonnement voldoet aan de gestelde criteria.
De gebeurtenissen zijn gelogd volgens de Logging bij workflow gebruik pagina.
Exceptie scenario’s
Wanneer er na de abonnementscheck blijkt dat er geen abonnementen zijn, wordt de flow gestopt.
Wanneer er na de criteriacheck blijkt dat er niet aan is voldaan, wordt de flow gestopt.
Activity diagram
Stappen:
De DVA heeft detecteert een gewijzigde FHIR resource.
De DVA controleert of er abonnementen zijn.
De DVA notificeert de geabonneerden, wanneer er aan de abonnementscriteria wordt voldaan.
De DVP verwerkt de notificatie.
Optioneel: de DVP slaat de notificatie op in het Dossier.
De DVP stuurt de notificatie naar de PGO.
De DVP toont de notificatie in de PGO aan de Persoon.
Loggen
9. Log interacties
Doel: het vastleggen van gebeurtenissen. Details van deze use case staan beschreven in Logging bij workflow gebruik pagina.
Precondities
Iedere functionele use case heeft logging ingeregeld.
Postcondities
De logserver heeft de benodigde en afgesproken events ontvangen.
Exceptie scenario’s
-
Alternatieve scenario’s
-
Activity Diagram
Stappen:
De actor maakt contact met de loggingscomponent.
De actor autoriseert en authentiseert zichzelf bij het logcomponent om loggegevens te mogen aanbieden.
De actor biedt loggegevens aan aan de loggingscomponent.
De loggingscomponent verwerkt de aangeboden loggingsgegevens.
Lijsten
In versie 0.5 van Workflow(Taken) is het ophalen van endpoints nog niet beschreven. Dit zal worden beschreven in de 0.8 versie.