Versions Compared

Key

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

Anchor
top
top


INDHOLD

Table of Contents
maxLevel3
excludeIndhold

Beskrivelse

Multiexcerpt
MultiExcerptNameFormål

Beskrivelse

Dokumentation for datasamlingen 'apotekere' og de tilhørende services tilgængelige på NSP.

...

Registeret indeholder stamdata for apoteker og tilknyttede apotekere.

Multiexcerpt
MultiExcerptNameBeskriv databehandlingen

Bemærk at registeret

...

udstilles i en version 1 og en version 2, da version 1 ikke kan modellere flere apoteker med samme CVR-nummer.
I version 1 er sammenhængen mellem CVR-numre og apotekets adresse misvisende.

Bemærk at "CVRListe" i apotekere-typen kan indeholde en liste af CVR numre i så fald er de adskilt af komma. At CVR-numrene er gemt som en liste besværliggør dog opslag hvor man vil slå et navn op ud fra CVR nummer - i den forbindelse kan man benytte ApotekereCvrRef-tabellen fra version 1, så man altid har en mapning mellem et givet CVR nummer og et CPR nummer.

Datakilde

...

version 1: Apotekere (version 1)
version 2: Apotekere (version 2)

Forretningsanvendelse

^^Tilbage til toppen^^

Multiexcerpt
MultiExcerptNameUnderstøttede komponenter


Generel register beskrivelser:  Dokumentation af stamdataregistre. Specifikt: Apotekere (version 1) og Apotekere (version 2).

Anvendelse af B00 Stamdata Kopi register service (SKRS)SDM - Guide til anvendere

Multiexcerpt
MultiExcerptNameArkitekturtegning

Image Added



Applikationsbeskrivelse

^^Tilbage til toppen^^

Image Added

Generisk parameterstyret import controller, der kalder den dedikerede importer for det aktuelle dataobjekt først mod preflight databasen og hvis det ikke fører til fejl, kaldes den samme dedikerede importer mod produktions databasen.
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å NSP Backend platformen, og er ansvarlig for at indlæse dataset fra registerfiler, der placeres i en dedikeret mappe i filsystemet . Hvert register har sin egen dedikerede mappe som automatisk bliver oprettet af Importer-komponenten.
Importeren overvåger filsystemet og aktiverer de registerspecifikke parsere, når nye registerfiler er tilgængelige i filsystemet.
De respektive parsere (Importere) 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.
Stamdatatabellerne registreres i NSP’ens replikeringsmekanisme, og de parsede registerdata replikeres derfor automatisk ud til de enkelte NSP instanser, hvorfra de kan tilgås gennem de udstillede stamdataservices.

Opgradering af importer databasen sker automatisk ved serverstart, og fungerer på den måde at sql scripts med navne formatet "Vyyyymmdd_hhmm_description.sql" afvikles på databasen. Script filerne placeres under resources\db\migration" og inkluderes dermed automatisk i den deployede applikation.
Bemærk at sql filerne afvikles i navne orden, og da dato og tid indgår i navnet, kan man styre hvilke scripts der skal afvikles først.
'db_migrations' tabellen varetager den fælles styring af skema-versioner, som alle importerer benytter til at holde styr på hvilke scripts der er afviklet, så hvert script kun afvikles én gang.

Dedikeret importer for apotekere oplysninger. Support ansvarlig: Trifork.

Datastruktur, Stamdata register: Apotekere

^^Tilbage til toppen^^

Apoteker register properties:

Image Added

Image Added

Entitetsbeskrivelser

Apotekere

^^Tilbage til toppen^^

Objektet

...

Lægemiddelstyrelsen udtrækker en CSV-fil fra Excel, zipper denne og sender den til den sikrede FTP-server på NSP.

Filen rummer følgende kolonner:

  • CPR
  • Fornavn
  • Efternavn
  • Gyldig fra og med
  • Gyldig til og med
  • Email
  • Telefon
  • Apoteksnavn
  • Apoteksnummer
  • Adresse
  • PostNr
  • ByNavn
  • CVR

Anvendelse

? pt. ingen dokumenterede anvendelsesmuligheder.

Datastruktur

...

Entitetsbeskrivelser

Apoteker

Entiteten beskriver apotekere.
Apoteksnavn/adresse mm. er bibeholdt i version 2 for at have bagudkompatibilitet .til v1

Data poster rummer følgende information:
---------------------------------------------
CPR --  Apotekerens CPR-nummer (NB: der findes eksempler på apotekere som findes her, men ikke i apotekerecvrref)
Navn -- Apotekerens navn 
Email -- Email (tilføjet i version 2)

...

CVRListe -- Liste af apotekers CVR-numre, adskilt af komma (NB: dubletter i listen ses ofte, og selv om et CVR-nummer findes i listen, findes det ikke nødvendigvis i apotekerecvrref)
Vej
Postnummer
Postdistrikt

...

Apotek


ValidFrom -- Gyldig fra (format: yyyy-MM-ddTHH:mm:ss+Z)
ValidTo -- Gyldig til (format: yyyy-MM-ddTHH:mm:ss+Z)

Apoteker

^^Tilbage til toppen^^

Objektet Entiteten beskriver apoteker.

Data poster rummer følgende information:

  • Id
  • CVR

Tabelbeskrivelser

apotekere (v2)


---------------------------------------------
ApoteksNummer -- ApoteksNummer
Navn -- Apotekets navn
Adresse -- Apotekets adresse
PostNummer -- Apotekets postnummer
PostDistrikt -- Apotekets postdistrikt
Telefon -- Apotekets telefonnummer
CVR -- Apotekets CVR-nummer
ValidFrom -- Gyldig fra (format: yyyy-MM-ddTHH:mm:ss+Z)
ValidTo -- Gyldig til (format: yyyy-MM-ddTHH:mm:ss+Z)

Apotekere import-status

^^Tilbage til toppen^^

Start- og end-tidspunkt og status for alle importerede filer
Ajourføres af Apoteker importer

Apotekere udtræk

^^Tilbage til toppen^^

Lægemiddelstyrelsen udtrækker på vegne af Apotekerforeningen en CSV-fil fra Excel, zipper denne og sender den til den sikrede FTP-server på NSP.
Opdaterer Apotekere og Apoteker

Tabelbeskrivelser

Tabel: Apotekere

^^Tilbage til toppen^^

Apotekere Tabellen rummer apotekere og deres tilknytning til apoteker (gennem CVR-numre). Bemærk at denne datatype kan være misvisende, da det er muligt at angive flere CVR-numre, men kun én apoteksadresse.<p><p>

Apoteksnavn/adresse mm. er bibeholdt i Apotekere tabellen for at have bagudkompatibilitet.

...

CREATE

...

TABLE

...

IF

...

NOT

...

EXISTS

...

`Apotekere`

...

(

...

`PID`

...

BIGINT

...

NOT

...

NULL

...

AUTO_INCREMENT,

...

`CPR`

...

VARCHAR(10)

...

NOT

...

NULL,

...

`Navn`

...

VARCHAR(255)

...

NULL,

...

`CVRListe`

...

VARCHAR(255)

...

NULL,

...

`Vej`

...

VARCHAR(255)

...

NULL,

...

`Postnummer`

...

VARCHAR(4)

...

NULL,

...

`Postdistrikt`

...

VARCHAR(80)

...

NULL,

...

`Email`

...

VARCHAR(255)

...

NULL DEFAULT NULL, -- tilføjet i v2

...

`ModifiedDate`

...

DATETIME

...

NOT

...

NULL,

...

`ValidFrom`

...

DATETIME

...

NOT

...

NULL,

...

`ValidTo`

...

DATETIME

...

NULL,

...

`CreatedDate`

...

DATETIME

...

NULL

...

DEFAULT

...

NULL, -- tilføjet i v2

...

PRIMARY

...

KEY

...

(`PID`),

...

INDEX

...

`CPRValidFrom`

...

(`CPR`

...

ASC,

...

`ValidFrom`

...

ASC),

...

INDEX

...

`ModifiedPID`

...

(`ModifiedDate`

...

ASC,

...

`PID`

...

ASC))

...

ENGINE

...

=

...

InnoDB

...

COLLATE=utf8_bin;

Felt beskrivelser

...

Feltnavn

...

Beskrivelse

...

CPR

...

Navn

...

CVRListe

...

ValidFrom

...

Gyldig fra (format: yyyy-MM-ddTHH:mm:ss+Z)

...

ValidTo

...

Gyldig til (format: yyyy-MM-ddTHH:mm:ss+Z)

Tabel: ApotekereApotek

^^Tilbage til toppen^^

Relationer

apotekereApotek

Tabellen rummer relationer mellem apotekere og apoteker.

Tabel definition:

...

(version 2)

CREATE TABLE IF NOT EXISTS `ApotekereApotek` (
`PID` BIGINT(20)

...

NOT

...

NULL

...

AUTO_INCREMENT,

...

`ApoteksNummer`

...

INT(11)

...

NOT

...

NULL,

...

`Navn`

...

VARCHAR(255)

...

NULL

...

DEFAULT

...

NULL,

...

`Adresse`

...

VARCHAR(255)

...

NULL

...

DEFAULT

...

NULL,

...

`PostNummer`

...

VARCHAR(4)

...

NULL

...

DEFAULT

...

NULL,

...

`PostDistrikt`

...

VARCHAR(80)

...

NULL

...

DEFAULT

...

NULL,

...

`Telefon`

...

VARCHAR(30)

...

NULL

...

DEFAULT

...

NULL,

...

`CVR`

...

VARCHAR(10)

...

NOT

...

NULL,

...

`ModifiedDate`

...

DATETIME

...

NOT

...

NULL,

...

`ValidFrom`

...

DATETIME

...

NOT

...

NULL,

...

`ValidTo`

...

DATETIME

...

NOT

...

NULL,

...

`CreatedDate`

...

DATETIME

...

NOT

...

NULL,

...

PRIMARY

...

KEY

...

(`PID`),

...

INDEX

...

`NummerValidFrom`

...

(`ApoteksNummer`

...

ASC,

...

`ValidFrom`

...

ASC),

...

INDEX

...

`PIDModified`

...

(`ModifiedDate`

...

ASC,

...

`PID`

...

ASC))

...

ENGINE

...

=

...

InnoDB

...

COLLATE

...

=

...

utf8_bin;

Felt beskrivelser

...

Feltnavn

...

Beskrivelse

...

ApoteksNummer

...

CVR

...

ValidFrom

...

Gyldig fra (format: yyyy-MM-ddTHH:mm:ss+Z)

...

ValidTo

...

Gyldig til (format: yyyy-MM-ddTHH:mm:ss+Z)

Tabel: ApotekereCvrRef

^^Tilbage til toppen^^

Relationer

apotekereCvrRef (v2)

Tabellen rummer relationer mellem apotekere og apotekers CVR-numre struktureret således, at der kan slås op på CVR-nummer.

...

(version 1)

Tabellen rummer apoteker.

CREATE

...

TABLE

...

IF

...

NOT

...

EXISTS

...

`ApotekereCvrRef`

...

(

...

`PID`

...

BIGINT

...

NOT

...

NULL

...

AUTO_INCREMENT,

...

`Id`

...

VARCHAR(21)

...

NOT

...

NULL,

...

`CVR`

...

VARCHAR(10)

...

NOT

...

NULL,

...

`CPR`

...

VARCHAR(10)

...

NOT

...

NULL,

...

`ModifiedDate`

...

DATETIME

...

NOT

...

NULL,

...

`ValidFrom`

...

DATETIME

...

NOT

...

NULL,

...

`ValidTo`

...

DATETIME

...

NULL,

...

`CreatedDate`

...

DATETIME

...

NOT

...

NULL, -- tilføjet i v2

...

PRIMARY

...

KEY

...

(`PID`),

...

INDEX

...

`IdValidFrom`

...

(`Id`

...

ASC,

...

`ValidFrom`

...

ASC),

...

INDEX

...

`ModifiedPID`

...

(`ModifiedDate`

...

ASC,

...

`PID`

...

ASC))

...

ENGINE

...

=

...

InnoDB

...

COLLATE=utf8_bin;

Felt beskrivelser

...

Feltnavn

...

Beskrivelse

...

Id

...

CVR

...

CPR 

...

ValidFrom

...

Gyldig fra (format: yyyy-MM-ddTHH:mm:ss+Z)

...

ValidTo

...

Gyldig til (format: yyyy-MM-ddTHH:mm:ss+Z)

apotekere (v1)

Tabellen rummer apotekere og deres tilknytning til apoteker (gennem CVR-numre). Bemærk at denne datatype kan være misvisende, da det er muligt at angive flere CVR-numre, men kun én apoteksadresse.

Apoteksnavn/adresse mm. er bibeholdt i Apotekere tabellen version 2 for at have bagudkompatibilitet.

Tabel definition:

...

Tabel: apotekereimporterImportStatus

^^Tilbage til toppen^^

CREATE TABLE IF NOT EXISTS apotekereimporterImportStatus (
Id BIGINT(15) AUTO_INCREMENT NOT NULL PRIMARY KEY,
StartTime DATETIME NOT NULL,
EndTime DATETIME,
Outcome VARCHAR(20),

INDEX (StartTime)
) ENGINE=InnoDB COLLATE=utf8_bin;

Felt beskrivelser

...

Feltnavn

...

Beskrivelse

...

CPR

...

Navn

...

CVRListe

...

ValidFrom

...

Gyldig fra (format: yyyy-MM-ddTHH:mm:ss+Z)

...

ValidTo

...

Gyldig til (format: yyyy-MM-ddTHH:mm:ss+Z)

Fil: apotekere.csv.zip

^^Tilbage til toppen^^

Lægemiddelstyrelsen udtrækker på vegne af Apotekerforeningen en CSV-fil fra Excel, zipper denne og sender den til den sikrede FTP-server hos Netic.

Filen rummer følgende felter:
CPR
Fornavn
Efternavn
Gyldig fra og med
Gyldig til og med
Email
Telefon
Apoteksnavn
Apoteksnummer
Adresse
PostNr
ByNavn
CVR

Teknologibeskrivelse

^^Tilbage til toppen^^

(udestår)

Refereres fra

^^Tilbage til toppen^^

Incoming Links

apotekereCvrRef (v1)

Tabellen rummer relationer mellem apotekere og apotekers CVR-numre struktureret således, at der kan slås op på CVR-nummer.

Tabel definition:

CREATE TABLE IF NOT EXISTS `ApotekereCvrRef` (
`PID` BIGINT NOT NULL AUTO_INCREMENT,
`Id` VARCHAR(21) NOT NULL,
`CVR` VARCHAR(10) NOT NULL,
`CPR` VARCHAR(10) NOT NULL,
`ModifiedDate` DATETIME NOT NULL,
`ValidFrom` DATETIME NOT NULL,
`ValidTo` DATETIME NULL,
PRIMARY KEY (`PID`),
INDEX `IdValidFrom` (`Id` ASC, `ValidFrom` ASC),
INDEX `ModifiedPID` (`ModifiedDate` ASC, `PID` ASC))
ENGINE = InnoDB COLLATE=utf8_bin;

Felt beskrivelser

...

Feltnavn

...

Beskrivelse

...

Id

...

CVR

...

CPR 

...

ValidFrom

...

Gyldig fra (format: yyyy-MM-ddTHH:mm:ss+Z)

...

ValidTo

...