INDHOLD

Beskrivelse

Registeret indeholder stamdata for apoteker og tilknyttede apotekere.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.
version 1: Apotekere (version 1)
version 2: Apotekere (version 2)

Forretningsanvendelse

^^Tilbage til toppen^^
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


Applikationsbeskrivelse

^^Tilbage til toppen^^

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:

Entitetsbeskrivelser

Apotekere

^^Tilbage til toppen^^

Objektet beskriver apotekere.
Apoteksnavn/adresse mm. er bibeholdt 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
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 beskriver apoteker.

Data poster rummer følgende information:
---------------------------------------------
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 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;

Tabel: ApotekereApotek

^^Tilbage til toppen^^

Relationer mellem apotekere og apoteker. (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;

Tabel: ApotekereCvrRef

^^Tilbage til toppen^^

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;

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;

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^^



  • No labels