Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.


Changelog

...

Dato

...

Version

...

Ændring

...

Include Page

Dynamisk Testdata Generator

...

Indhold

Table of Contents
maxLevel3

1. Indledning

Dynamisk Testdata Generator kan anvendes på to forskellige måder. Først og fremmest er der en web-klient, hvor en anvender kan logge ind og oprette personer samt tilknytte autorisationer og ydere hertil. Ud over dette er det muligt for en anvender selv at kalde den HTTP POST baserede web-snitflade, som klienten gør brug af, for på den måde at arbejde med testdata direkte i egne systemer og scripts.

1.1. Registre

Når man opretter en person eller et andet event gennem enten klienten eller web-snitfladen, så oprettes data ikke direkte i Stamdata Registrene på NSP. Dette skyldes at Stamdata på NSP kommer ind via et antal importere som asynkront modtager data fra forskellige kilder. DTG er udviklet til at simulere denne opførsel for at sikre bedst mulig datakvalitet og sammenlignlighed med produktionsregistre. Derfor kan der gå op til 24 timer inden f.eks. en autorisation bliver tilgængelig i de tilsvarende Stamdata Registre på NSP.

2. Klient

Web klienten er udviklet med fokus på et brugervenligt og selvforklarende design. Klienten understøttes derfor af flere forskellige browsere, og samtidig er der foretaget flere heuristiske usability tests, der sikrer en klient, der er let forståelig og brugervenlig.

Klienten kan tilgåes via nspop.dk hvor den offentlige adresse også kan findes. Klienten er generelt set lavet således at en bruger ikke er tvunget til at angive nogle af de mulige input, hvis et felt er tomt så finder DTG selv på noget realistisk data at anvende. Gennem klienten er det muligt at foretage sig følgende handlinger:

  • Liste de personer brugeren selv har oprettet.
  • Søge efter fornavn, efternavn cpr-nummer mv.
  • Se detaljer for en valgt person, herunder autorisationer.
  • Oprette en ny person hvor man f.eks. kan angive navn, fødselsdag, egen læge mv.
  • Tildele en person en autorisationskode således at vedkommende f.eks. senere kan få et id-kort på NSP (kræver et medarbejdercertifikat fra Nets).
  • Tilknytte en autoriseret person til en yder således at vedkommende fremgår af Yderregisteret.
  • Fraskrive sig ejerskab af personer man ikke længere ønsker skal fremgå af ens liste.

2.1. Oversigt

Klienten starter på oversigtssiden hvor det er muligt at se alle de personer som tilhører den aktuelle bruger. Herfra kan man oprette nye personer, filtrere i ens data samt vælge en enkelt person (klikke på rækken) for at se detaljer omkring denne.

2.2. Ny person

På denne side kan man vælge at angive nogle af de værdier en person skal have, hvis et felt ikke udfyldes så vælger DTG selv nogle realistiske data.

Da CPR nummer, fødselsdato og køn skal hænge sammen gælder følgende regler:

  1. Hvis CPR nummer angives så bruges dette til at udregne personens fødselsdato og køn.
  2. Hvis CPR nummer ikke er angivet men personens fødselsdag og køn er angivet, bruges dette til at generere et valid CPR nummer.
  3. Hvis CPR nummer og køn ikke er angivet men personens fødsesldato er angivet, vælges der et tilfældigt køn og et valid CPR nummer genereres.
  4. Hvis hverken CPR nummer eller fødselsdato er angivet ignoreres kønet og der genereres et nyt valid CPR nummer.

Det ydernummer der angives ved oprettelse af en ny person angiver personens alment praktiserende læge ifm. sygesikring. Hvis der ikke angives et nummer vælges der et tilfældigt.

Den nye persons far og mor vælges tilfældigt blandt den aktive brugers eksisterende data. Hvis der ikke kan findes en passende person til rollen angives der i stedet et tilfældigt navn og fødselsdato.

2.3. Vis person

På denne side kan man se yderligere detaljer omkring den valgte person samt tilføje nye events for personen. I bunden af siden kan man se en oversigt over de events som tidligere er blevet tilføjet.

Hvis der trykkes på "Fraskriv ejerskab" flyttes personen væk fra den aktive bruger og over i en pulje af baggrundsdata. Dvs. personen findes stadig på NSP, men den tilhører ikke længere den aktive bruger og man kan ikke længere se eller opdatere data for den.

I denne version kan man ikke se forældre/barn relationer, men dette forventes i en kommende version.

2.4. Tildel Autorisation

På denne side kan man tildele en autorisation og tilknytte den autoriserede person til en yder.

Hvis man ikke udfylder autorisationskode eller uddannelseskode så vælge DTG tilfældige værdier i stedet.

Hvis man ikke angiver et ydernummer så laves der ingen tilknytning til en yder. Hvis man vælger et ydernummer som ikke findes i forvejen så oprettes der en yder med det angivne nummer i yderregisteret.

3. Script

De endpoints som klienten bruger til at oprette personer og events med er ligeledes tilgængelige for anvendere således at de f.eks. kan udvikle egne integrationer eller blot simple scripts til oprettelse af ny testdata. NSP offentliggør kildekode for DTG projektet og her kan man under "dtg/modules/webservice/src/main/resources" finde Swagger filen swagger.yml som beskriver input og output til de forskellige endpoints.

3.1. Eksempler

Følgende er et eksempel på hvordan man får oprettet en enkelt person, tildelt en autorisation og listet sine data.

3.1.1. Opret

Antag at filen opret.json indeholder følgende:

{
    "person" : {}
}

Hvis vi så udfører følgende kommando:

curl -v --user brugernavn:kodeord --header "Content-Type: application/json" \
        --data-binary @opret.json https://stamdata.nspop.dk/dtg-webservice/service/persons/create

Får vi følgende tilbage:


   "entity_id":"1907813173",
   "person":{ 
      "gaeldendeCpr":"1907813173",
      "koen":"M",
      "foedselsdato":"1981-07-19",
      "stilling":"Journalist",
      "navnTilAdressering":"Søren Møller",
      "coNavn":"",
      "lokalitet":"",
      "vejnavnTilAdressering":"Strandvejen",
      "bynavn":"",
      "postnummer":1758,
      "postDistrikt":"København V",
      "kommuneKode":161,
      "vejKode":6214,
      "husnummer":"36",
      "etage":"",
      "sideDoerNummer":"",
      "bygningsnummer":"",
      "vejnavn":"Strandvejen",
      "fornavn":"Søren",
      "mellemnavn":"",
      "efternavn":"Møller",
      "foedselsregistreringsstedKode":"7223",
      "foedselsregistreringsstedTekst":"Sæby Sogn",
      "folkekirkeForhold":"U",
      "folkekirkeStartDato":"1981-07-19T16:40:29.284+02:00",
      "kommunaleForholdType":"4",
      "kommunaleForholdKode":"740",
      "kommunaleForholdStartDato":"1981-07-19T16:40:29.284+02:00",
      "valgKode":1,
      "valgretDato":"1999-07-19T16:40:29.284+02:00",
      "valgOplysningerStartDato":"1999-07-19T16:40:29.284+02:00",
      "civilstand":"U",
      "aegtefaelleCpr":"",
      "aegtefaelleFoedselsDato":"",
      "aegtefaelleNavn":"",
      "civilstandStartDato":"",
      "separationStartDato":"",
      "civilstandSeparationHenvisning":"",
      "separationCivilstandHenvisning":"",
      "morNavn":"Lone Bach",
      "morFoedselsdato":"1956-07-19T15:40:29.284+01:00",
      "farCpr":"1301086233",
      "morDato":"1981-07-19T16:40:29.284+02:00",
      "farDato":"1981-07-19T16:40:29.284+02:00",
      "tilflytningsDato":"",
      "tilflytningKommuneDato":"1981-07-19T16:40:29.284+02:00",
      "fraflytningKommuneKode":0,
      "fraflytningKommuneDato":"",
      "startMyndighedAdr":740,
      "statsborgerskabLandekode":5100,
      "statsborgerskabStartDato":"1981-07-19T16:40:29.284+02:00",
      "startDatoAdr":"1981-07-19T16:40:29.284+02:00",
      "sletDatoAdr":"",
      "yderNr":"415875",
      "ikraftDatoYder":"1981-07-19T16:40:29.284+02:00",
      "regDatoYder":"1981-07-19T16:40:29.284+02:00",
      "sikrGrpKode":"1",
      "ikraftDatoGrp":"1981-07-19T16:40:29.284+02:00",
      "regDatoGrp":"1981-07-19T16:40:29.284+02:00",
      "sikrKomKode":"161",
      "ikraftDatoKomKode":"1981-07-19T16:40:29.284+02:00",
      "alder":"35",
      "folgerskabsperson":"1301086233",
      "bevisDato":"1981-07-19T16:40:29.284+02:00",
      "navn":"Søren Møller",
      "statsborgerskabKode":"DK",
      "statsborgerskab":"Denmark",
      "owner":"test",
      "created":"2016-12-21T15:40:29+01:00"
   },
   "autorisationer":[ 
 
   ],
   "events":[ 
 
   ]
}

3.1.2. Autorisation

Antag at filen autorisation.json indeholder følgende:

{
    "person" : {
        "entity_id" "1907813173"
    },
    "autorisation" : {
        "autorisationsId" "A1B2C"
    },
    "yder" : {
        "yderNr" "123456"
    }
}

Hvis vi så udfører følgende kommando:

curl -v --user brugernavn:kodeord --header "Content-Type: application/json" \
        --data-binary @autorisation.json https://stamdata.nspop.dk/dtg-webservice/service/persons/authorize

Får vi følgende tilbage:

...


   "entity_id":"1907813173",
   "person":{ 
      "gaeldendeCpr":"1907813173",
      "koen":"M",
      "foedselsdato":"1981-07-19",
      "stilling":"Journalist",
      "navnTilAdressering":"Søren Møller",
      "coNavn":"",
      "lokalitet":"",
      "vejnavnTilAdressering":"Strandvejen",
      "bynavn":"",
      "postnummer":1758,
      "postDistrikt":"København V",
      "kommuneKode":161,
      "vejKode":6214,
      "husnummer":"36",
      "etage":"",
      "sideDoerNummer":"",
      "bygningsnummer":"",
      "vejnavn":"Strandvejen",
      "fornavn":"Søren",
      "mellemnavn":"",
      "efternavn":"Møller",
      "foedselsregistreringsstedKode":"7223",
      "foedselsregistreringsstedTekst":"Sæby Sogn",
      "folkekirkeForhold":"U",
      "folkekirkeStartDato":"1981-07-19T16:40:29.284+02:00",
      "kommunaleForholdType":"4",
      "kommunaleForholdKode":"740",
      "kommunaleForholdStartDato":"1981-07-19T16:40:29.284+02:00",
      "valgKode":1,
      "valgretDato":"1999-07-19T16:40:29.284+02:00",
      "valgOplysningerStartDato":"1999-07-19T16:40:29.284+02:00",
      "civilstand":"U",
      "aegtefaelleCpr":"",
      "aegtefaelleFoedselsDato":"",
      "aegtefaelleNavn":"",
      "civilstandStartDato":"",
      "separationStartDato":"",
      "civilstandSeparationHenvisning":"",
      "separationCivilstandHenvisning":"",
      "morNavn":"Lone Bach",
      "morFoedselsdato":"1956-07-19T15:40:29.284+01:00",
      "farCpr":"1301086233",
      "morDato":"1981-07-19T16:40:29.284+02:00",
      "farDato":"1981-07-19T16:40:29.284+02:00",
      "tilflytningsDato":"",
      "tilflytningKommuneDato":"1981-07-19T16:40:29.284+02:00",
      "fraflytningKommuneKode":0,
      "fraflytningKommuneDato":"",
      "startMyndighedAdr":740,
      "statsborgerskabLandekode":5100,
      "statsborgerskabStartDato":"1981-07-19T16:40:29.284+02:00",
      "startDatoAdr":"1981-07-19T16:40:29.284+02:00",
      "sletDatoAdr":"",
      "yderNr":"415875",
      "ikraftDatoYder":"1981-07-19T16:40:29.284+02:00",
      "regDatoYder":"1981-07-19T16:40:29.284+02:00",
      "sikrGrpKode":"1",
      "ikraftDatoGrp":"1981-07-19T16:40:29.284+02:00",
      "regDatoGrp":"1981-07-19T16:40:29.284+02:00",
      "sikrKomKode":"161",
      "ikraftDatoKomKode":"1981-07-19T16:40:29.284+02:00",
      "alder":"35",
      "folgerskabsperson":"1301086233",
      "bevisDato":"1981-07-19T16:40:29.284+02:00",
      "navn":"Søren Møller",
      "statsborgerskabKode":"DK",
      "statsborgerskab":"Denmark",
      "owner":"test",
      "created":"2016-12-21T15:40:29+01:00"
   },
   "autorisationer":[ 
      
         "autorisationsId":"A1B2C",
         "uddannelseskode":"5158",
         "created":"2016-12-21T15:59:17+01:00"
      }
   ],
   "events":[ 
      
         "id":187547,
         "title":"Tilknyttet yder",
         "description":"Personen blev tilknyttet yderen med ydernummeret 123456",
         "created":"2016-12-21T15:59:17+01:00"
      },
      
         "id":187548,
         "title":"Autoriseret",
         "description":"Personen fik tildelt autorisationskoden A1B2C med uddannelseskoden 5158",
         "created":"2016-12-21T15:59:17+01:00"
      }
   ]
}

3.1.3. List

Antag at filen list.json indeholder følgende:

{}

Hvis vi så udfører følgende kommando:

curl -v --user brugernavn:kodeord --header "Content-Type: application/json" \
        --data-binary @list.json https://stamdata.nspop.dk/dtg-webservice/service/persons/list

Får vi følgende tilbage:

...

(DTG) - Leverancebeskrivelse
Dynamisk Testdata Generator (DTG) - Leverancebeskrivelse