PERSONVERNINNSTILLINGER

Sist oppdatert 15.06.2020

Innholdsfortegnelse

Sjekk personverninnstilling

Oppdater personverninnstilling

Mottak av status for personverninnstilling (replikeringsmelding fra PVK)

Beskrivelse

Endring av personverninnstilling og sjekk av status på denne kan gjøres både fra server-side og fra klient-side. Ved kall fra server-side kan man benytte seg av et API utviklet av Hemit og distribuert som NuGet pakke for å forenkle oppkoblingen. Alle URL’ene som er oppgitt i dette dokumentet går mot integrasjonsmiljøet for ePROM

NB! ApiKey skal sendes som en Authorization parameter og er en del av HTTP header: headers: {"Authorization": "Basic " + apiKey}

Sjekk personverninnstilling

Klient-side

Eksempelkode (javascript)

function sjekkPersonverninnstilling() {
    var url = 'https://proms2.hemit.org/PromsWebApi/api/getpersonverninnstilling'; // Demo server
    var apiKey = ""; // ApiKey of the end user system performing the requeset
    var nationalId = "26073941651"; The national id of the citizen.
    var type = 0; // Reservasjon

    $.ajax({
        url: url,
        type: "POST",
        contentType: "application/json;charset=utf-8",
        headers: {
            "Authorization": "Basic " + apiKey
        },
        data: JSON.stringify({
            nationalId,
            type
        }),
        success: function(data) {
            alert("nationalId: " + data.nationalId + "\ntype: " + data.type + "\nnid: " + data.id + "\nnname: " + data.name + "\nstatus: " + data.status);
        },
        error: function() {
            alert("Error!");
        }
    });
}

URL for Web API kall

[https://proms2.hemit.org/PromsWebApi/api/getpersonverninnstilling]

Parametere - Inn

Parametere – Ut

Metode

POST

Swagger

https://proms2.hemit.org/PromsWebApi/swagger/ui/index#!/PersonvernInnstilling/PersonvernInnstilling_GetPersonvernInnstillingAsync

Server-side

API

Tilgjenglig som NuGet pakke

NuGet repository: https://hemit.pkgs.visualstudio.com/a7f87e1f-3406-4ac2-a2d4-18e789c37706/_packaging/Hemit_public_packages%40Local/nuget/v3/index.json

Navn: Hemit.Proms.Integration

Eksempelkode (C#)

private async Task GetReservasjon(PatientInRegistryDataContract patient)
{
    var response = await Hemit.Proms.Integration.Api
        .GetPersonvernInnstillingAsync(
            ConfigurationManager.AppSettings["PromsApiBaseUrl"], 
            ConfigurationManager.AppSettings["PromsApiKey"], 
            patient.DecryptedPID,
            PersonvernInnstillingType.Reservasjon);

    if (!response.HasErrors)
    {
        var status = response.Status == PersonvernInnstillingStatus.Aktiv
            ? ReservationStatus.Reservert
            : ReservationStatus.IkkeReserervert;
    }
}

Parametere - Inn

PromsApiBaseUrl skal være https://proms2.hemit.org/PromsWebApi

Parametere – Ut

Feilsituasjoner

Respons

Ok (200) - Alt OK.
Bad Request (400) - Feil i forespørsel. Skjer…

Unauthorized (401) - Feil i ApiKey.
Internal Server Error (500) - Alle feil som ikke fanges opp på annen måte.
Bad Gateway (502) - Hvis noe feiler mot PVK. Feilmelding fra PVK returneres som JSON: { statusCode, status, message}

Oppdater personverninnstilling

Klient-side

Eksempelkode (javascript)

function oppdaterPersonverninnstilling() {
    var url = 'https://proms2.hemit.org/PromsWebApi/api/setpersonverninnstilling'; // Demo server
    var apiKey = ""; // ApiKey of the end user system performing the requeset
    var nationalId = "26073941651"; The national id of the person to update the status of PersonvernInnstilling for.
    var type = 0; // Reservasjon
    var status = 1; // Aktiv

    $.ajax({
        url: url,
        type: "POST",
        contentType: "application/json;charset=utf-8",
        headers: {
            "Authorization": "Basic " + apiKey
        },
        data: JSON.stringify({
            nationalId,
            type,
            status
        }),
        success: function(data) {
            alert("instansEndret: " + data.instansEndret);
        },
        error: function() {
            alert("Error!");
        }
    });
}

URL for Web API kall

[https://proms2.hemit.org/PromsWebApi/api/setpersonverninnstilling]

Parametere - Inn

Parametere – Ut

Metode

POST

Swagger

[https://proms2.hemit.org/PromsWebApi/swagger/ui/index#!/PersonvernInnstilling/PersonvernInnstilling_SetPersonvernInnstillingAsync] (https://proms2.hemit.org/PromsWebApi/swagger/ui/index#!/PersonvernInnstilling/PersonvernInnstilling_SetPersonvernInnstillingAsync)

Server-side

API

Tilgjenglig som NuGet pakke

NuGet repository: https://hemit.pkgs.visualstudio.com/a7f87e1f-3406-4ac2-a2d4-18e789c37706/_packaging/Hemit_public_packages%40Local/nuget/v3/index.json

Navn: Hemit.Proms.Integration

Eksempelkode (C#)

private async Task UpdateReservasjon(PatientInRegistryDataContract patient, PersonvernInnstillingStatus personvernInnstillingStatus)
{
    var response = await Hemit.Proms.Integration.Api
        .SetPersonvernInnstillingAsync(
            ConfigurationManager.AppSettings["PromsApiBaseUrl"], 
            ConfigurationManager.AppSettings["PromsApiKey"], 
            patient.DecryptedPID,
            PersonvernInnstillingType.Reservasjon,
            personvernInnstillingStatus);

    if (!response.HasErrors)
    {
        var newStatus = personvernInnstillingStatus == PersonvernInnstillingStatus.Aktiv
            ? ReservationStatus.Reservert
            : ReservationStatus.IkkeReserervert;
    }
}

Parametere - Inn

PromsApiBaseUrl skal være https://proms2.hemit.org/PromsWebApi

Parametere – Ut

Feilsituasjoner

Respons

Ok (200) - Alt OK.
Bad Request (400) - Feil i forespørsel. Skjer…

Unauthorized (401) - Feil i ApiKey.
Internal Server Error (500) - Alle feil som ikke fanges opp på annen måte.
Bad Gateway (502) - Hvis noe feiler mot PVK. Feilmelding fra PVK returneres som JSON: { statusCode, status, message}

Mottak av status for personverninnstilling (replikeringsmelding fra PVK)

Når innbygger gjør en endring av en personverninnstilling i PVK, sender PVK ut en replikeringsmelding til systemer den er integrert med, deriblandt ePROM, for å informere om endringen. ePROM gjøre ved mottak av en slik replikeringsmelding et kall videre mot angitte Bestillersystem med den nye statusen for personverninnstillingen. Bestillersystemet må implementere en service som mottar dette kallet.

URL for Web API kall

ApiBaseUrl for web API registreres i ePROM Selvbetjeningsmodul under Bestillersystem: https://proms2.hemit.org/PromsAdministration/

Web API må være tilgjenglig på URL: https:// <ApiBaseUrl> /api/PersonvernInnstilling

F.eks: https://mrsdev.helsemn.no/PromsTestregisterServices/api/PromsFormOrder/

Parametere - Inn

Parametere - Ut

For parameter inn og ut kan NuGet pakken Hemit.Proms.Integration benyttes. Bruk da Hemit.Proms.Integration.Pvk.SetPersonvernInnstillingInEusRequest for parameter inn og Hemit.Proms.Integration.Pvk.SetPersonvernInnstillingInEusResponse for parameter ut

Metode

PUT

Autentisering

ApiKey sendes med i header og skal brukes av Bestillersystem for å sikre at det er riktig mottaker

Eksempel request fra Proms (JSON)

{
    "nationalId" : "26073941651",
    "id" : "b3cda307-154c-4af4-87d3-30567c931924",
    "name" : "Reservasjon mot registrering",
    "status" : "RES"
}