Den gode kodeliste

Kodeværdier anvendes på tværs af webservices som en delt nøgle med en entydig betydning. Kodeværdier inddeles i typer som udstilles via kodelister, en for hver type. Kodelisterne anvendes af serviceaftagerne, og beskriver det lovlige udfaldsrum for de pågældende kodetyper.

Kodelister kan være simple kode/værdi lister eller mere avancerede strukturer, som f.eks. hierarkier eller netværksstrukturer.

Koder samles i kodelister ud fra det forretningsområde og forretningsbegreb koden tilhører. Det er ikke altid simpelt at konstruere gode kodelister. Det bør tilstræbes at kodelisten kun indeholder en dimension i forhold til det forretningsbegreb, der forsøges beskrevet. En dimension kan f.eks. være kursustype en anden kan være myndighed.

Model for kodeliste

Følgende minimumsmodel anvendes for kodeværdier:

  • Kode - Kodefelt indeholdende talværdi. For hver kodelistetype er kodeværdierne unikke, ikke to koder er ens
  • Start- og slutdato - Alle kodeværdier har en start- og slutdato, hvor kodelisten kan bruges fra og med startdato og til slutdato (Lukket - åben interval).
    • Startdato sættes altid til den dato, hvorfra kodelisteværdien skal kunne benyttes både i udviklingsøjemed og til test - dette vil typisk være før en lovmæssig ikrafttrædelsesdato og/eller en releasedato for kodelisteværdien.
    • Slutdato sættes til en fremtidig dato, sålænge kodelisteværdien er gyldig og dermed stadig vil kunne oprettes. Når en kodelisteværdi ikke længere er gyldig og dermed ikke skal kunne oprettes mere, skal denne sættes til datoen for, hvornår kodelisten værdien ophører – dette gerne værende sig releasedatoen.
  • Navn - Alle kodeværdier har et Navn, der er en kort tekstuel repræsentation af koden.
  • (Optionel) Beskrivelse - Alle kodeværdier har en Beskrivelse, der er en lidt mere uddybende beskrivelse af koden, f.eks. med reference til lovgrundlag.

Både Navn og Beskrivelse skrives i et neutralt sprog og vil ikke indeholde brugergrænseflade eller applikationsspecifikke værdier. Målet er, at teksterne kan anvendes på tværs af sagsbehandler- og borgerrettede løsninger, og det anbefales aftagerne at aftage teksterne direkte, og kun supplere specifikke koder med egne beskrivelser, hvor det på kodelisten angivne Navn/Beskrivelse ikke kan anvendes.

En guide på hvor man opretter en kodeliste fra en teknisk synpunkt finder du på /wiki/spaces/CITY/pages/38666305.

Vedligehold af kodelister

Følgenden regler overholdes: 

  • Kodelisterne indeholder altid alle kodeværdier, både historiske, aktuelle og kommende
  • Koder der udgår, markeres som udgået ved at sætte slutdato til den dato hvor koden er udgået.
  • Betydningen af en kode må ikke ændres, ved ændret anvendelse markeres koden som udgået og en ny kode oprettes
  • Koder slettes ikke, i stedet markeres koden som udgået
  • Koder kan tilføjes, med aktuel eller fremtidig startdato
  • Alle ændringer varsles

Anvendelse af kodelisteværdier

Aftagere DFDG webservices (og dermed kodelister) skal afhente kodelisterne dagligt og indlæse i eget system. Denne caching af listerne skal anvendes for ikke at belaste DFDG unødigt.

  • Kun koder hvor forretningsdatoen (typisk d.d.) er inden for kodens start- og slutdato kan anvendes ved registrering
  • Ved opdatering af historiske data kan udgåede koder fortsat anvendes
  • Koder der er udgået kan fortsat optræde i historiske registreringer

Sikkerhed

Kodelisterne indeholder kun offentlige data. Alle må tilgå kodelisterne. Det anbefales at kodelister udstilles offentligt.

Webservices med kodelister

De fleste webservices anvender følgende struktur (OBS:enkelte kodeliste fraviger fra denne struktur):

ElementBeskrivelse
IdentifierIdentifier elementet, der angiver den id, der skal benyttes til servicen for dette kode liste element.
Type: int
NameEt sigende navn for kodeværdien.
Min. Length: 1
Max. Length: 100
Type: string
DescriptionEn kort beskrivelse af kodes betydning
Min. Length: 1
Max. Length: 500
Type: string
StartDateDato som kodeværdien er gyldig fra
Format: xsd:dateTime
EndDateDato for hvornår kodeværdien udløber
Format:xsd:dateTime


Se kodeliste webservices her: CodeListsService

Brug af kodelister i og på tværs forretningsdomæner

En kodeliste er som udgangspunkt kun ejet af et forretningsdomæne (se Webservice-struktur (TO-BE på moderniserende DFDG webservice)), hvorfra kodelisten udstilles til aftagere via forretningsdomænets webservice til afhentning af kodelister. Eksempelvis vil kodelisten til kontaktgrupper været ejet af forretningsdomænet DFDG Visitering og status.

Kodelister kan dog benyttes på tværs af forretningsdomæner, således at webservices i ét forretningsdomæne kan benytte og udstille kodeværdier fra kodelister, som er ejet af ét andet forretningsdomæne. Et tænkt eksempel kunne være, at en webservice i forretningsdomænet DFDG Borgerrettet indsats har behov for at benytte og/eller udstille kodeværdien for en kontaktgruppe.

Den nuværende webservicestruktur følger dog ikke overstående mønster, hvilket betyder, at de fleste kodelister i dag er udstillet fra DFDG på webservicen CodeListService. Fremadrettet er målet at følge ovenstående mønster, hvilket betyder, at forretningsdomæner begynder at udstille de kodelister, som de hver især ejer. Mønsteret benyttes også i forhold til de webservices, der udstilles af henholdsvis Jobnet og Vitas og som hver især har deres egen websevice indeholdende deres kodelister.

Den tekniske beskrivelse af, hvorledes kodelister benyttes på tværs af forretningsdomæner og systemsiloer (DFDG, Jobnet og Vitas) er beskrevet på DFDG Foundation, kodelister.