Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Navitabs
rootStamdatamodul (SDM)
firsttabRegisterudtrækservices (SDM)
includeroottrue

...


 Formål

Nærværende dokument giver et overblik over stamdataservicen med fokus på design og arkitektur. Dokumentet har som formål at give et indblik i det underliggende design, de udstillede snitflader på det overordnede niveau samt særlige forhold vedrørende de udstillede registre. Både aftagere af stamdataservicen, udviklere, kildedataleverandører samt NSP operatør/driftsleverandør kan med fordel læse dette dokument.

Table of Contents
 

...

 Arkitekturoverblik

Stamdata modulet (SDM) er udstillet på NSP, og består af flere komponenter. Der er en række -platformen. Den indeholder seks webservices, som tilbyder data-adgang til forskellige registre (enkeltopslag og udtræk af registre), og et dataopsamlings framework, bestående af parsere og importere, der henter data fra en række eksterne kildedataregistre, bl.a. CPR-registret og SKS. Nedenstående figur viser en principskitse over arkitekturen, hvor stamdata services er udstillet på den enkelte NSP instans.

Image Removed

Figur 1  – Stamdatamodulet opsamler data fra kilderegistre og udstiller data på NSP

.
De seks webservices er følgende:

  • Stamdata Kopiregisterservice (SKRS)
  • Stamdata Registerfleropslagsservice (SRFS)
  • Enkelt opslag i stamdata for autorisationsregistret (SAES)
  • Enkelt opslag i stamdata for CPR registret (SCES)
  • Enkelt opslag i stamdata for Yderregistret (SYES)
  • PersonInformation
  • Stamdata Filter Management Service (SFMS)


De forskellige enkeltopslagsservices gør det muligt at fremsøge tilgængelig data på baggrund af et enkelt id. 

Adgangen til data er beskyttet af sikkerhedsprotokollen Adgangen til de data der udstilles via stamdata-services er beskyttet af Den Gode Webservice (DGWS) , og adgangskontrollen er styret adgangskontrol på basis af CVR-nummer.

3      Logisk Arkitektur

Den logiske arkitektur er opdelt i dataindsamling, replikering til NSP instanserne og udstilling af data gennem services. I de følgende afsnit beskrives disse elementer af arkitekturen.

3.1     Dataindsamling: Stamdata Importer og Parser

Stamdataregistret samler stamdata fra en række kilderegistre hos offentlige myndigheder. Indsamlingen af data implementeres i forhold til hvert enkelt kilderegister ved anvendelse af en registerspecifik Parser, men med anvendelse af en fælles Importer-komponent. Importer-komponenten kører på DoDi-platformen, og er ansvarlig for at indlæse dataset fra registerfiler, der placeres i en dedikeret mappe i filsystemet [1]. Hvert register har sin egen dedikerede mappe som automatisk bliver oprettet af Importer-komponenten.

[1] For hvert register implementeres en transportløsning (f.eks. FTP som push eller pull), der har som opgave at overføre ”rå” registerdata fra kilderegistret til NSP-platformen.

Importeren overvåger filsystemet og aktiverer de registerspecifikke parsere, når nye registerfiler er tilgængelige i filsystemet. De respektive parsere processerer registerfilerne og overfører registerdata til den lokale database. Parsningen kan i princippet bestå af en direkte dataoverførsel fra fil til database, men indeholder i de fleste tilfælde forretningslogik, f.eks. transformationer af data og denormaliseringer.

Hver mappe har tre undermapper:

  • input: En inbox som jævnligt undersøges for nye filer
  • processing: Indeholder filer som er ved at blive importeret
  • rejected: Her placeres filer som ikke kunne importeres i tilfælde af fejl.

Image Removed

Figur 2 – Principskitse af et importforløb, hvor en parser aktiveres af importeren

3.2     Replikering til NSP-instanserne

Dataindsamlingen fra kilderegistrene foregår på DoDi (for yderligere information om NSP-konceptets komponenter henvises til den overordnede NSP-dokumentation).Image Removed

Figur 3 – principskite af envejs-replikeringen fra DoDi til NSP-instanserne

Stamdatatabellerne registreres i NSP’ens replikeringsmekanisme, og de parsede registerdata replikeres derfor automatisk ud til de enkelte NSP-instanser som illustreret på Figur 3, hvorfra de kan tilgås gennem de udstillede stamdataservices (ikke illustreret).

...

For enkelt opslag i stamdata for CPR registret er der IDWS-snitflader, som muligør borgeropslag på eget cpr-nummer.
Det er kun servicen personinformation der ikke er beskyttet af en sikkerhedsprotokol. Dette er en REST service der kun kan anvendes af komponenter på NSP'en.

I diagrammet nedenfor ses et arkitekturoverblik for Stamdata-servicen, med de forskellige services, som anvender data fra stamdata-databasen.  
Databasen opdateres med registerdata af de forskellige importere og indlæsere. Yderligere dokumentation af de tilgængelige registerdata samt de tilhørende importere og indlæsere findes her: Stamdataregistre og tilhørende datatyper.

Gliffy Diagram
macroId66b3acb8-2979-435b-a6d2-27814c43d215
displayNameSDM - Arkitekturoverblik
nameSDM - Arkitekturoverblik
pagePin7

Etableringsudtræk og partielle udtræk af hele registre

Stamdataregistret giver mulighed for dels enkeltopslag i de tilknyttede registre, dels mulighed for udtræk af hele registre til opbevaring og anvendelse i den lokale infrastruktur. Disse services beskrives i de følgende afsnit.

3.3.1      Kopiregisterservicen

Stamdata Kopiregisterservice (SKRS)

Kopiregisterservicen er en generel service, der gør det muligt for anvendere at hente og opretholde en kopi af et register, som f.eks. CPR-registret eller autorisationsregistret

Servicen er en identitetsbaseret DGWS webservice.

HTML
<iframe src="https://archi.nspop.dk/NSP/570928ca/views/id-31f767ee-8add-438a-9594-ae9ffc74068d.html" name="test" height="490" width="800">You need a Frames Capable browser to view this content.</iframe>   

* Hver kasse i ovenstående diagram har en kort forklaring, som kommer frem i et nyt browservindue, når der klikkes på kassenDer kan foretages komplette registerudtræk ved anvendelse af Kopiregisterservicen (KRS), der er en identitetsbaseret DGWS webservice udstillet på NSP-platformen.


Kopiregisterservicen giver dels mulighed for etableringsudtræk, hvor det komplette register leveres [2], dels såkaldte ”delta-opdateringer”, hvor ændringer i registret siden sidste udtræk leveres. De to typer udtræk er varianter af samme kald, hvor et etableringsudtræk leverer summen af samtlige ændringer i det pågældende registers levetid, og hvor et deltaudtræk leverer summen af ændringer siden sidste kald.

...

Figur 4 – Kopiregisterservicen udstiller snitflader til udtræk af registre


Servicen er generisk opbygget, hvilket gør det muligt at udtrække data fra et hvert register samt at foretage ændringer i den udstillede data uden at det kræver opdateringer af kopiregisterservicen. I anvenderguiden beskrives det, hvordan data hentes fra webservicen. 

Til at styre hvilke klienter der har adgang til de respektive registre i Stamdata findes der en rettighedstabel. Tabellen opdateres af driftsoperatøren. Der henvises til driftsguiden for en detaljeret beskrivelse af rettighedstildeling.

HTML
<iframe src="https://archi.nspop.dk/NSP/570928ca/views/id-452715fc-8fab-4641-97ec-cbe43bb1b52d.html" name="test" height="570" width="800">You need a Frames Capable browser to view this content.</iframe>   

* Hver kasse i ovenstående diagram har en kort forklaring, som kommer frem i et nyt browservindue, når der klikkes på kassen.

...

 Fleropslagsservicen

Stamdata Registerfleropslagsservicen er ligesom kopiregisterservicen en generel service, der i stedet for udtræk af et helt register giver systemer mulighed for at lave opslag på udvalgte objekter ud fra deres id'er. F.eks. en række Person-objekter fra Person-registret ud fra deres CPR-nummer. Fleropslagsservicen følger samme struktur som SKRS, og der anvendes også samme rettighedstildeling som SKRS.

HTML
<iframe src="https://archi.nspop.dk/NSP/570928ca/views/id-dfd0f5fc79294e139bc60fb9b21f31e7.html" name="test" height="480" width="800">You need a Frames Capable browser to view this content.</iframe>   

* Hver kasse i ovenstående diagram har en kort forklaring, som kommer frem i et nyt browservindue, når der klikkes på kassen.

 Enkeltopslagsservices

For udvalgte registre er der implementeret såkaldte enkeltopslagsservices, der, som navnet antyder, giver mulighed for opslag på enkeltregistreringer i de respektive registre. Alle enkeltopslagsservices implementeres som identitetsbaserede web services.

Figur 5 – Stamdataservicen udstiller snitflader til enkeltopslag for udvalgte registre

Stamdataservicen stiller følgende enkeltopslagsservices til rådighed:

...

Register

...

Beskrivelse

...

Særlige forhold



CPR Enkeltopslags Service (SCES):

...

Autorisationsregistret

...

Giver mulighed for verifikation af autorisations­nummer, f.eks. til brug fra SOSI STS eller administrative systemer ved ansættelse af sundhedsfagligt personale.

Anvendelse kræver oprettelse på CVR-whitelist.

...

CPR-registret

Implementering af MedCom’s ”Det gode CPR-opslag”

Anvendelse kræver oprettelse på CVR-whitelist.

...

3.5     Abonnementsservice til CPR-registret

CPR abonnementsservicen på NSP er en service til automatisk opdatering af en liste af CPR numre. De enkelte abonnenter (f.eks. en region eller et sygehus) vedligeholder deres egen liste på NSP, og abonnenterne modtager ændringer i CPR informationerne for de enkelte CPR numre på en given abonnementsliste ved kald til abonnementsservicen.

Set udefra udstiller abonnementsservicen to identitetsbaserede webservice-snitflader (DGWS):

  • En vedligeholdelsessnitflade, hvor abonnenter kan vedligeholde deres egen abonnementsliste (dvs. tilføje CPR-numre til listen eller fjerne CPR-numre fra listen).
  • En udtrækssnitflade, hvor abonnenter kan forespørge på ændringer i CPR-oplysningerne for de CPR-numre, der er på listen.

Det bemærkes, at abonnementsservicen for CPR-registret udelukkende overvåger ændringer i selve CPR-registret. Ønskes der ajourførte oplysninger vedrørende f.eks. ”egen læge” eller yderinformationer opnås dette gennem brug af kopiregisterservicen for de pågældende registre (se afsnit 3.3 for yderligere information). Abonnementsservicen er skitseret på Figur 6. Som det fremgår af figuren vedligeholdes abonnementslister ved anvendelse af en vedligeholdelsessnitflade udstillet af den generiske opsamlingsservice (GOS), og udtræk af ændrede oplysninger fås gennem den udstillede abonnementssnitflade oprettet til formålet.

Der henvises til anvenderguiden for yderligere information om hvordan snitfladerne anvendes.

Image Removed

Figur 6 – Arkitekturskitse for abonnementsservicen.

For kald til at hente ændrede CPR-numre (getChangedCprs) ser dataflowet fra DoDi til NSP og internt på NSP’en ud som skitseret på Figur 7:

Image Removed

Figur 7 – Dataflow gennem arkitekturen ved brug af abonnementsservicen

4      Særlige forhold

Stamdataservicen anvender en række tabeller til at opbevare stamdataregistrene. Disse tabeller er typisk koblet relativt hårdt op mod kilderegistrenes struktur, og tidligere erfaringer har vist, at der med jævne mellemrum forekommer ændringer i kilderegistrene. Det er derfor forsøgt undgået at andre (NSP-) komponenter end stamdataservicen anvender stamdatatabellerne. Hvor andre komponenter har behov for at anvende stamdata internt på NSP, kopieres data ud i separate tabeller, som komponenterne kan bruge i stedet.

På NSP 2.0 anvendes autorisationsregistrets data af STS (til berigelse og verifikation af autorisationsnummer), og der er derfor oprettet en særlig Autorisationstabel til dette formål som illustreret på figuren nedenfor.

 Image Removed

Figur 8 – Enkeltopslagsservicen til autorisationsregistret og STS deler datagrundlag.

5      Fysiske Datamodeller

Datamodellen for hvert enkelt register i Stamdataservicen er defineret i bilaget ’schema.sql’. Nedenfor er registrene beskrevet overordnet i tabelform.

5.1     Doseringsforslag

...

                         Tabel                        

...

Beskrivelse

...

DrugDosageStructureRelation

...

relationsmapning mellem lægemidler og deres doseringer.

...

DosageVersion

...

Løbenumre for registret. Dette kan bruges til at se om man har den nyeste udgave af registret.

...

DosageUnit

...

Enheder lægemidler doseres i (tabletter, kapsler, milliliter, …).

...

DosageStructure

...

Tider for dosering og størrelser på doserne.

...

DosageDrug

...

Lægemidler med ATC kode etc.

5.2     CPR-registret

...

Tabel

...

Beskrivelse

...

Person

...

Navne og adresseoplysninger mm om person i CPR-registret.

...

BarnRelation

...

En relationsmapning mellem børn og deres forældre.

...

ForaeldreMyndighedRelation

...

En relationsmapning mellem børn og deres værger.

...

UmyndiggoerelseVaergeRelation

...

En relationsmapning mellem umyndiggjorte og deres værger.

...

Tabel

...

Beskrivelse

...

Organisation

...

Referencer mellem SKS-koder og sygehusafdelinger fra SKS-registret.

...

Tabel

...

Beskrivelse

...

Praksis

...

Tabel over lægepraksis i SOR registret.

...

SygehusAfdeling

...

Tabel over sygehusafdelinger i SOR registret.

...

Apotek

...

Tabel over apoteker i SOR registret.

...

Sygehus

...

Tabel over sygehuse i SOR registret.

5.5     Yderregistret

...

Tabel

...

Beskrivelse

...

Yder

...

Tabel med ydernumre og stamdata. (Visse er tilknyttet en person andre en klinik.)

...

YderLoebenummer

...

Løbenumre for registret. Dette kan bruges til at se om man har den nyeste udgave af registret.

...

YderregisterPerson

...

Personer som er tilknyttet et ydernummer. Der kan være flere personer pr. Ydernummer.

...

Yderregister

...

Tabel med ydernumre og stamdata. (Visse er tilknyttet en person, andre en klinik.)

5.6     Autorisationsregistret

...

Tabel

...

Beskrivelse

...

Autorisation

...

Tabel med autorisationer for sundhedsfaglige personer (læger, kiropraktorer,  mv.).

5.7     DKMA-registret

...

Tabel

...

Beskrivelse

...

Firma

...

Liste af leverandører af lægemiddelprodukter.

...

Formbetegnelse

...

Liste af formen lægemiddel kan have.

...

Indikation

...

Liste af indikationer.

...

IndikationATCRef

...

Referencetabel mellem ATC-koder og indikationer.

...

Laegemiddel

...

Tabel med lægemidler.

...

LaegemiddelNavn

...

Uforkortede navn på lægemidler.

...

LaegemiddelAdministrationsvejRef

...

Mapningstabel mellem lægemidler og deres administrationsveje.

...

Klausulering

...

Klausuleringskode, beregnet til ansøgninger om tilskud til behandling.

...

ATC

...

ATC koder og tilhørende tekst.

...

Medicintilskud

...

Liste med former for medicintilskud.

...

Opbevaringsbetingelser

...

Liste over forskellige måder medicin skal opbevares på.

...

Pakningskombinationer

...

Tabel med kombinationer af pakninger som kan erstatte hinanden.

...

OplysningerOmDosisdisponering

...

Tabel med info priser og substitutionsoplysninger for dosisdispenserede lægemidler.

...

LaegemiddelDoseringRef

...

Referencetabel mellem lægemidler og deres dosering.

...

Beregningsregler

...

Info om hvordan en pakning prisberegnes.

...

Pakning

...

Tabel med pakninger af lægemidler.

...

PakningskombinationerUdenPriser

...

Tabel med kombinationer af pakninger som kan erstatte hinanden. Indeholder ikke priser.

...

EmballagetypeKoder

...

Forskellige former for emballage brugt til pakning af lægemidler.

...

PakningsstoerrelsesEnhed

...

Antallet af enheder der er i en pakning.

...

SpecialeForNBS

...

Liste over specialer et lægemiddel bliver brugt indenfor.

...

Priser

...

Udspecificering af priser for lægemidler (f.eks. indkøbspris.).

...

Enhedspriser

...

Priser for lægemidler.

...

TakstVersion

...

Løbenumre for registret. Dette kan bruges til at se om man har den nyeste udgave af registret.

...

Dosering

...

Doseringsforslag fra taksten.

...

Styrkeenhed

...

Den styrke medicinen i en pakning har.

...

Rekommandationer

...

En referencetabel med noter om et lægemiddel anbefales eller ej.

...

Substitution

...

Tabeller over lægemidler som kan substituere hinanden.

...

TilskudsprisgrupperPakningsNiveau

...

Liste over tilskudsgrupper der er knyttet til en pakning.

...

SubstitutionAfLaegemidlerUdenFastPris

...

Normale substitutioner er baseret på pris. For lægemidler uden fast pris ligger substitutioner i denne tabel.

...

Administrationsvej

...

Måden hvorpå et lægemiddel kan administreres.

...

Tilskudsintervaller

...

Nedre og øvre grænser for tilskud til lægemidler.

...

UdgaaendeNavne

...

Liste af navne for lægemidler som ikke længere findes i taksten.

...

Udleveringsbestemmelser

...

Bestemmelser over hvornår et lægemiddel må udleveres.

...

Indholdsstoffer

...

Indholdsstoffer i et lægemiddel.

...

Tidsenhed

...

Hvor ofte og hvornår et lægemiddel skal indtages, etc.

5.8     Bemyndigelser

...

Tabel

...

Beskrivelse

...

Bemyndigelse

...

Tabel med bemyndigelser, indeholdende sundhedsfagligt personels uddelegerede rettigheder

5.9     SOR-NPI relationer

...

Tabel

...

Beskrivelse

...

SORRelationer

...

Tabel med relationer mellem forældre og børn I SOR træet. Tabellen er speciel idet hver eneste node peger på sig selv og alle sine “efterkommere”- Tabellen udstilles ikke via KRS, men bruges kun internt af den kommende samtykkeservice (fra NPI projektet)

...

SORYderSHAKRelationer

...

Tabel der mapper SOR koder med SHAKkoder og YDERnumre, tabellen er special da der ikke er relationer til YDER eller SHAK kolonner, men derimod kun en kolonne der via tekst og tal fortæller type og værdi (eksempelvis: “Yder=82058”eller “SHAK=2034010”) - Tabellen udstilles ikke via KRS, men bruges kun internt af den kommende samtykkeservice (fra NPI projektet)

HTML
<iframe src="https://archi.nspop.dk/NSP/570928ca/views/id-0d89a1f6-c6c3-4842-9031-ff4a97f797ad.html" name="test" height="600" width="800">You need a Frames Capable browser to view this content.</iframe>   

* Hver kasse i ovenstående diagram har en kort forklaring, som kommer frem i et nyt browservindue, når der klikkes på kassen.


Autorisation Enkeltopslags Service (SAES):

Giver mulighed for verifikation af autorisations­nummer, f.eks. til brug fra SOSI STS eller administrative systemer ved ansættelse af sundhedsfagligt personale.

Anvendelse kræver oprettelse på CVR-whitelist.

HTML
<iframe src="https://archi.nspop.dk/NSP/570928ca/views/id-7c404571-98bf-474c-a0b5-8a1f1381eeb9.html" name="test" height="450" width="800">You need a Frames Capable browser to view this content.</iframe>   

* Hver kasse i ovenstående diagram har en kort forklaring, som kommer frem i et nyt browservindue, når der klikkes på kassen.


Yder Enkeltopslags Service (SYES): 

Giver mulighed for opslag i yderregisret.

Anvendelse kræver oprettelse på CVR-whitelist.

HTML
<iframe src="https://archi.nspop.dk/NSP/570928ca/views/id-5ee46e6e-dff0-4dc4-a159-3ecfe62c6493.html" name="test" height="610" width="800">You need a Frames Capable browser to view this content.</iframe>   

* Hver kasse i ovenstående diagram har en kort forklaring, som kommer frem i et nyt browservindue, når der klikkes på kassen.


Udover de nævnte enkeltopslagsservices eksisterer der også en REST service kaldet personinformation. Denne service kan anvendes, af NSP komponenter, til at verificere en række ting omkring et CPR nummer. F.eks om det eksisterer eller personens status. 

HTML
<iframe src="https://archi.nspop.dk/NSP/570928ca/views/id-4f41217466fb4845a2268fc11efeb008.html" name="test" height="430" width="800">You need a Frames Capable browser to view this content.</iframe>   

* Hver kasse i ovenstående diagram har en kort forklaring, som kommer frem i et nyt browservindue, når der klikkes på kassen.

6      Ændringslog

Kilden til dette dokument kan kan erhverves ved henvendelse til NSP-operatøren.

...

Version

...

Dato

...

Ændring

...

Ansvarlig

 

...

0.1

...

2011-04-28

...

Initielt dokument

...

Trifork

...

1.0

...

2011-09-12

...

Opdateret med CPR tjenester

...

Trifork

...

1.1

...

2011-10-05

...

Review i forbindelse med release af CPR Tjenester

...

Trifork

...

1.2

...

2011-12-09

...

Kvalitetssikring

...

Lakeside

...

1.3

...

2012-06-19

...

Tilføjet bemyndigelser og npi-sor tabeller

...