Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Table of Contents

Bakgrunn

Dette er et alternativ til meldingsbasert replikering av informasjon når innbyggere setter eller endrer en personverninnstilling. Samme informasjonen som i dag utveksles  med XML-meldinger og bruk av AMQP, "Postes" til et API hos ekstern aktør.

Det benyttes i dette grensesnittet JSON- struktur på dataene som replikeres. Dette er de samme objekter som benyttes i API’ene mot PVK., Se: https://helsenorge.atlassian.net/wiki/spaces/HUHELSENORGE/pages/18741985292328952849/V2Hente+informasjon+-fra+InformasjonPVK+om+innbyggers+personverninnstillinger#Felles-objekter-benyttet-i-respons-fra-tjenestene

En vellykket respons på POST av dataene til den eksterne parten medfører implisitt en kvittering for at dataene er forstått og lagret hos motpart (dvs. samme logiske funksjonalitet som APPREC).

Alle slike kall inneholder et JWT system token utstedt av Helsenorge STS. Se her: Helsenorge eller PVK som system- på vegne av innbygger

Tjenesteoversikt

Ekstern part må ha et API som implementerer dette endepunktet.

TjenesteNavn

HttpVerb

Beskrivelse

LagreInnbyggersPersonvernInnstilling

POST

Ekstern part må lagre/endre innbyggers personverninnstilling

LagreInnbyggersPersonvernInnstilling

Input parametere

Navn

Type

Lovlige verdier

Kommentar

innbyggerFnr

string

fødselsnummer (11 siffer)

Dette er fødselsnummer til innbygger hvis personverninnstilling skal registreres eller endres

definisjonGuid

string

GUID

GUID for den personverninnstilling definisjon det gjelder

definisjonNavn

string

Navn på innstillingen

Beskrivende kortnavn på personverninnstilling definisjonen.

partKode

string

Eier (datansvarlig)

Kode (kortnavn) for den aktør som "eier" den aktuelle personverninnstilling. 

typePi

string

Type personverninnstilling

Kan ha en av følgende verdier:

  • samtykke

  • reservasjon

  • tilgangsbegrensning

status

string

Status

Kan ha en av følgende kodeverdier (hentet fra Volven kodeverk 7609):

Mulige verdier dersom typePI = reservasjon

  • RES: Reservasjon satt

  • IRES: Tidligere satt reservasjon opphevet

Mulige verdier dersom typePI = samtykke

  • SAM: Samtykke gitt

  • ISAM: Tidligere satt samtykke er trukket

  • ASAM: Innbyggere har trukket tidligere satt samtykke og ber om bekreftelse når data er slettet eller biomateriale er destruert

Mulige verdier dersom typePI = tilgangsbegrensning (sperring eller blokkering)

  • TBO: Tilgangsbegrensning (sperring) er opprettet.

  • TBF: Tidligere satt tilgangsbegrensning er slettet.

sekvensnummer

int

Hvilket sekvensnummer dette er for innbygger instans av denne personverninnstillingdefinisjonen.

Løpenummer som begynner på 1 for den aktuelle definsjon for den aktuelle innbygger.

MERK! Mottagende system bør lagre siste mottatte sekvensnummer. Dersom det mottas en replikering med et sekvensnummer som er mindre (eller lik) et tidligere mottatt sekvensnummer, skal replikeringen overses. Dette kan skje dersom det er temporær nedetid i mottagende system, og Helsnorge/PVK retry-mekanisme gjør at replikeringensmeldingen blir “forsinket”, og innbygger i mellomtiden har satt ny innstilling.

opprettetTidspunkt

time

Tidspunkt for når første instans av innbyggers personverninnstilling ble opprettet.

Tidspunkt for når sekvensnummer 1 ble opprettet,

Merk! Man kan alternativt benytte tidspunktene i stedet for sekvensnummer, for å luke ut “gamle” replikeringer.

sistEndretTidspunkt

time

Tidspunkt for nå innbygger satt personverninnstillingen som denne endringen representerer.

Tidspunkt for denne endringen.

Merk! Man kan alternativt benytte tidspunktene i stedet for sekvensnummer, for å luke ut “gamle” replikeringer.

Avhengig av typePi:

  • SaMetadata

  • ReMetadata

  • TbMetadata

JSON

Se: https://helsenorge.atlassian.net/wiki/spaces/HU/pages/1874198529/V2+-+Informasjon+om+innbyggers+personverninnstillinger#Felles-objekter-benyttet-i-respons-fra-tjenestene

Eksempel - samtykke uten metadata på definisjonen

Innbygger har gitt et nytt samtykke (uten metadata på definisjonen):

...

{
  "innbyggerFnr":"12048645510",
  "definisjonGuid":"3FE2A80A-4200-42E2-817B-DA8A6236708A",
  "definisjonNavn":"Samtykke til oppbevaring av biomateriale",
  "partKode":"NFR",
  "typePi":"samtykke",
  "status":"ISAM",
  "sekvensnummer":2,
  "opprettetTidspunkt":"2020-01-16T11:09:38.4871148+01:00",
  "sistEndretTidspunkt":"2020-03-12T11:09:38.4870056+01:00"
}

Eksempel - samtykke med metadata på definisjonen

Innbygger har gitt et nytt samtykke med metadata på definisjonen:

...

Code Block
{
  "innbyggerFnr":"12048645510",
  "definisjonGuid":"0394a91f-89e7-4df3-b738-a07f0ee5e8d6",
  "definisjonNavn":"Samtykke til å delta i Helseundersøkelsen i nord Trøndelag",
  "partKode":"HUNT",
  "typePi":"samtykke",
  "status":"ISAM",
  "sekvensnummer":2,
  "opprettetTidspunkt":"2020-01-16T11:09:38.4871148+01:00",
  "sistEndretTidspunkt":"2020-03-12T10:06:31.3871148+01:00",
  "SaMetadata":
  {
      "SaFasteMetadata":
      {
          "tidsbegrensning":
          {
              "tidsbegrensetFra": "2022-01-01",
              "tidsbegrensetTil": "2023-12-31"
          },
          "omfangElementer": [
             {
               "omfang": "OF"
             },
             {
               "omfang": "IO",
               "logiskOmfang": "Angitte",
               "presisering": "Blodprøver"
            }          
         ]
      }
   }
}

Eksempel - Blokkere helsepersonellstilgang

Sette ny tilgangsbegrensning. Enten registrerer ny instans eller oppdatere/overskrive eksisterende instans med flere/færre helsepersonell:

...

Code Block
{
  "innbyggerFnr":"12048645510",
  "definisjonGuid":"3F7457B8-821C-45A8-AE04-D3E4A0DAC0F0",
  "definisjonNavn":"Blokkere helsepersonells tilgang til legemiddelliste",
  "partKode":"RF",
  "typePi":"tilgangsbegresning",
  "status":"TBF",
  "sekvensnummer":2,
  "opprettetTidspunkt":"2020-01-16T11:09:38.4871148+01:00",
  "sistEndretTidspunkt":"2020-03-18T11:09:38.4871100+01:00"
  "TbMetadata":
   {
       "TbFasteMetadata":
       {
          "omfangElementer": [
             {
                "omfang": "BL",
                "logiskOmfang": "Angitte",
                "typeAngivelse": "Helsepersonell"
             }
          ]
       }
  }
}

Blokker for aalt Helsepersonell untatt fastlegen

Code Block
{
   "innbyggerFnr":"13116900216",
   "definisjonGuid":"fb922810-01f1-4b20-9999-bb25b47d1b44",
   "definisjonNavn":"Blokkere tilgang for alt helsepersonell (unntatt din fastlege)",
   "partKode":"RF",
   "typePi":"tilgangsbegrensning",
   "status":"TBO",
   "sekvensnummer":5,
   "opprettetTidspunkt":"2024-02-05T09:55:35.82",
   "sistEndretTidspunkt":"2024-05-28T11:54:15.1866667",
   "tilgangsbegrensningMetadata":
   {
      "tbFasteMetadata":
      {
         "omfangElementer":[
            {
               "omfangKode":"BL",
               "logiskOmfang":"Ovrige",
               "typeAngivelse":"RolleTilPasient"
            }
         ],
         "detaljertAngivelse":
         {
            "rolleTilPasient":[
               "Fastlege"
            ]
         }
      }
   }
}

Responsparametre (som ekstern part skal sette):

OK, replikering mottatt:

  • HTTP responskode: 200

og

  • Body: “returkode”: “ok”

Replikering ikke ok

Enten:

  • HTTP responskode 200

...

  • HTTP responskode: Annet enn 200

Body:

Navn

Type

Lovlige verdier

Kommentar

returKode

string

ok

ikkeOk

Dersom returKode er "ikkeOk" skal også m HTTP status være 200

feilKode

string

Utelates hvis returKode er "ok"

Verdi                                     Forklaring

ukjentInnbygger                    Innbyggers fødselsnummer er ikke kjent. 

ukjentDefinisjonsGuid           DefinisjonsGuid som ble angitt er ikke kjent hos aktør.

                      


Eks (ukjent fødselsnummer):

...