1      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, kildedataleverandører samt NSP operatør/driftsleverandør kan med fordel læse dette dokument.

 

2      Arkitekturoverblik

Stamdata modulet (SDM) er udstillet på NSP, og består af flere komponenter. Der er en række 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.

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

Adgangen til de data der udstilles via stamdata-services er beskyttet af Den Gode Webservice (DGWS), og adgangskontrollen er styret 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:

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).

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).

3.3     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

Der 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.



[2] Da registrene kan være af en størrelse, der gør det uhensigtsmæssigt at lave et komplet udtræk i et enkelt kald til KRS, gennemføres det komplette udtræk typisk ved en række på hinanden følgende kald. Dette er dog en teknisk detalje.


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

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.

3.4     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

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.

YderregistretGiver mulighed for opslag i yderregisret.Anvendelse kræver oprettelse på CVR-whitelist.


For yderligere information om enkeltopslagsservices henvises til anvenderguiden, der indgår på lige fod med nærværende dokument i den samlede dokumentations­pakke for stamdataservicen.

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):

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.

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:

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.

 

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.


5.3     SKS-registret

Tabel

Beskrivelse

Organisation

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


5.4     SOR-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)

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

Trifork