INDHOLD
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. |
version 1: Apotekere (version 1)
version 2: Apotekere (version 2)
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
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.
Apoteker register properties:
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)
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)
Start- og end-tidspunkt og status for alle importerede filer
Ajourføres af Apoteker importer
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
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;
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;
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;
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;
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
(udestår)