[[TOC(heading=Zorgdomein koppeling)]] [[TOC(heading=Moduleconfiguratie, sectionindex, compact, depth=3, allactive, Documentatie/Beheerder/Modules/)]] [[TOC(heading=Beheerder, sectionindex, compact, depth=2, allactive, indirect=Documentatie/Beheerder/TOC)]] [[TOC(heading=Documentatie, sectionindex, compact, depth=1, allactive, Documentatie/)]] = !ZorgDomein-koppeling = == Inleiding == Met de !ZorgDomein-koppeling is het vanaf versie 2.016 mogelijk om elektronische verwijzingen te verwerken in OpenAC. In onderstaande afbeelding zijn de onderdelen van deze koppeling schematisch weergegeven: [[Image(zorgdomein_diagram.png)]] De koppeling bestaat uit de volgende onderdelen: 1. **!ZorgDomein server** - de server van !ZorgDomein levert voor AC's bestemde verwijzingen aan bij de FENAC HL7-server (2). 2. **FENAC HL7-server** - de FENAC HL7-server ontvangt alle door !ZorgDomein aangeleverde verwijzingen en zet ze klaar in een wachtrij per AGB. 3. **OpenAC 3** - deze server staat bij het AC en haalt periodiek voor het AC bestemde verwijzingen op bij de FENAC HL7-server. 4. **OpenAC 2 clients** - medewerkers van het AC verwerken de binnengekomen verwijzingen in OpenAC. == FENAC HL7-server == De FENAC HL7-server is een virtuele Linux server in Microsoft Azure, beheerd door de FENAC en bekostigd door de deelnemende leden. De server luistert naar HL7-berichten van !ZorgDomein en publiceert een Web service API waarmee AC's voor hun bestemde verwijzingen kunnen ophalen. == OpenAC 3 == OpenAC 3 is een server-applicatie die draait op een server van het AC. Periodiek haalt OpenAC 3 verwijzingen op bij de FENAC HL7-server. De opgehaalde verwijzingen worden verwerkt in de OpenAC database. == Beveiliging van de communicatie == De !ZorgDomein server levert HL7-berichten aan bij de FENAC HL7-server middels een beveiligde VPN-verbinding. OpenAC 3 vraagt verwijzingen op bij de FENAC HL7-server middels een SSL-verbinding beveiligd met een door de FENAC uitgegeven certificaat. Elk AC kan alleen verwijzingen opvragen voor zijn eigen AGB-codes. Een koppeling tussen het certificaat en AGB-codes dwingt dit af. == Beveiliging tegen dataverlies == We hebben de volgende stappen genomen om er zeker van te zijn dat er geen verwijzingen kwijt kunnen raken: * De volledige HL7-communicatie, inclusief eventuele fouten, wordt gelogd; * Alle verwijzingen worden opgeslagen in de bijbehorende AGB-postbus; * Communicatie tussen OpenAC 3 en de FENAC HL7-server, inclusief eventuele fouten, wordt gelogd; * Verwijzingen blijven in de postbus staan totdat OpenAC 3 een ACK verstuurt dat de verwijzing in goede staat is ontvangen. Bij het ontvangen van een ACK wordt de verwijzing verplaatst naar een ACK-map, maar niet verwijderd. * Het bericht waarmee OpenAC 3 een verwijzing ophaalt bij de FENAC HL7-server is beveiligd met een checksum. Zo weet OpenAC 3 dat de verwijzing onderweg niet is gewijzigd. Pas als de checksum klopt stuurt OpenAC 3 een ACK. * Het ontvangen van een verwijzing en het verwerken van een verwijzing is uitgesplitst in twee processen. Als OpenAC 3 een verwijzing ontvangt dan controleert het de checksum. Als de checksum klopt dan wordt de verwijzing opgeslagen als JSON-bestand en verstuurt OpenAC 3 een ACK. Pas dan zal OpenAC 3 de verwijzing verwerken. Als hierbij iets fout gaat dan wordt dit gelogd. Omdat de verwijzing als JSON-bestand is opgeslagen kan deze als het probleem is verholpen opnieuw worden verwerkt. == Verwerken verwijzing door OpenAC 3 == Op basis van de geconfigureerde AGB-locatie vraagt de lokale servercomponent via de beschikbare API de FENAC-server of er verwijzingen zijn gerelateerd met de geconfigureerde AGB-locatie. Als er verwijzingen zijn dan worden ze naar de lokale servercomponent teruggekoppeld. Het verwerkingsproces zal verder zoals hieronder verlopen: - Er wordt eerst gecontroleerd of de verwijzing niet al eerder is geregistreerd. - Daarna wordt de patiënt opgezocht via de meegegeven BSN. - Als de patiënt niet is gevonden dan wordt de patiënt opgezocht op NAW-gegevens. - Als de patiënt niet is gevonden dan een nieuwe patiënt record aangemaakt. - Als de verwijzer niet op basis van zijn AGB-code kan worden gevonden, wordt die aangemaakt. - Als dat een bestaande patiënt betreft dan wordt gekeken of een open zorgtraject is anders wordt een nieuw zorgtraject aangemaakt. - De nieuwe verwijzing met het bijgevoegd document wordt toegevoegd aan het zorgtraject. - Er wordt een actie gemaakt met thema ‘!ZorgDomein verwijzing’. Die actie wordt gekoppeld aan een default gebruiker zodat de nieuwe verwijzingen in planlijst overzicht ‘Acties van medewerkers’ terecht komt en daarmee zichtbaar wordt. == Inrichting lokale servercomponent OpenAC == Om de !ZorgDomein koppeling in te richten moet eerst de lokale OpenAC-server geïnstalleerd worden. Zie [wiki:Documentatie/Beheerder/Modules/Agendаserver Installatie Server] voor de installatiehandleiding. De lokale servercomponent van OpenAC die als een Windows service is geïnstalleerd op het systeem van de AC haalt via de beschikbare API van de FENAC-server de verwijzingen binnen. De volgende instellingen van de locaties van het AC moeten via het `appsettings.json` bestand worden geconfigureerd: - AGB-code (8 cijfers), - AGB-locatienaam, - Locatieletter (de combinatie van letter en AGB-code moet geldig zijn ook in de OpenAC 2 Desktop installatie), - Bestandsmap (aanbevolen wordt om dit per AGB/locatie gescheiden te houden; dat is in het voorbeeld hieronder niet zo). Hieronder een voorbeeld van de AGB/locaties instellingen in `appsettings.json`: {{{ "Agb": { "AgbLocaties": [ { "Code": "12345678", "LocatieNaam": "Groningen", "LocatieLetter": "G", "Bestandsmap": "C:\\Users\\ugur\\Documents" }, { "Code": "87654321", "LocatieNaam": "Maastricht", "LocatieLetter": "M", "Bestandsmap": "C:\\Users\\ugur\\Documents" } ] } }}} Ook eigenschappen van de !ZorgDomein koppeling moeten via het `appsettings.json` bestand worden geconfigureerd: - !ZorgDomein actief (veld '!InGebruik'), - Interval van de controles of er nieuwe verwijzingen zijn, - Default medewerker waarmee de acties gekoppeld worden, - SSL instellingen (certificaat) Hieronder een voorbeeld van de !ZorgDomein instellingen in `appsettings.json`: {{{ "Zorgdomein": { "InGebruik": true, "Interval": 30, "Medewerker": "admin" } }}} De SSL instellingen zijn binnen de !ZorgDomein instellingen te regelen en gelden alleen voor de verbinding met de FENAC Server ten behoeve van de !ZorgDomein koppeling. De FENAC verstrekt client-certificaten, getekend door de FENAC-!ZorgDomein-Koppeling; deze certificaten zijn alleen te gebruiken voor de communicatie met de FENAC server voor deze koppeling. De procedure voor het verstrekken van de certificaten wordt elders beschreven. De instellingen voor SSL zijn: - Of SSL gebruikt wordt (voor test-doeleinden kan SSL worden uitgeschakeld; bij de AC's zal dat nooit het geval zijn), - Bestandsnaam van het certificaat, - Wachtwoord voor het certificaat. Omdat het wachtwoord voor het certificaat in "plain text" in het configuratiebestand staat, wordt sterk aangeraden om het goed afgeschermd op de server op te slaan (wat sowieso een goed idee is voor de configuratie van de OpenAC 3 Server). Zowel het certificaat als het wachtwoord hoeven maar op een plek -- bij de OpenAC 3 Server -- opgeslagen te worden; ze zijn niet bedoeld voor gebruik door de werkplek-machines. {{{ "Zorgdomein": { "SSL": { "Enabled": true, "CertificateFile": "C:\\Users\\Ugur\\certificaten\\ac_utrecht.pfx", "CertificatePassword": "geheim!" } } }}}