Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Navitabs
rootAntigen Indlæser - Leverancebeskrivelse
firsttabYder Indlæser - Leverancebeskrivelse
includeroottrue


Table of Contents

Indledning

Nærværende dokument udgør driftsvejledningen for Antigentest indlæseren.

Antigentest indlæsen har til opgave at indlæse en

...

JSON fil med EU godkendte Covid-19 Antigentest devices og gemme data om hvert device i en database.

...

JSON filen kommer fra et kald til en

...

https URL udstillet af NSP Proxy.

Hvordan agerer Antigentest indlæseren

Prøvebestillingsindlæseren aflæser en eller flere SFTP servere for nye filer af typen .xlsx (et CPR batch), og når der dukker en fil op, hentes den ind til Prøvebestillingsindlæseren og slettes fra SFTP serveren. Den modtagne fil tjekkes for format og konsistens og derefter påbegyndes behandlingen af de data der findes i den modtagne fil. Hvis valideringen fejler, leveres der en .fejl fil tilbage i den SFTP folder hvorfra filen blev hentet.

Alt afhængig af de kontrol data der er angivet i den modtagne excel fil, leveres der 

  • en fil til Synlab for oprettelse af rekvisitioner
  • en fil til Strålfors for afsendelse af breve.

Hvis der er leveret en fil til Synlab, afventer Prøvebestillingsindlæseren en kvitteringsfil fra Synlab før den videre håndtering, herunder en evt. levering af en fil til Strålfors, foretages.

For hver fil der modtages opsamles der statistik over kontroldata samt de indeholdte personers fordeling på kommune/region, sygesikringsgrupper og cpr-status. Hver nat opdateres en samlet statistik med opsamlede data fra den foregående dag og den opdaterede statistik leveres til en SFTP folder.

...

Antigentest indlæseren anvendes til at hente og vedligeholde data om Antigentest enheder der er godkendte i Europa.

Denne information bliver f.eks. anvendt til Corona-passet for at afgøre om en given test er udført med en godkendt enhed.

Monitoreringssnitflader

Alle indlæsere overvåges via en simpel statusservice. (Se evt. https://www.nspop.dk/display/public/web/Husregler+for+udvikling+til+NSP#HusreglerforudviklingtilNSP-Snitfladetilmonitorering(gl4.4)).

Statusservicen kan tilgås på URL http://<host>:<port>/

...

antigentestindlaeser/status hvor <host> og <port> peger på den aktuelle installation.

Denne statusservice bliver overvåget ved at den bliver kaldt hver 10. sekund. Denne returnerer en HTTP status kode, som enten er 200 (ok) eller 500 (internal server error). Ved 500 er det tegn på, at en NSP driftleverandøren skal i gang med at undersøge problemet.

Statusservicen giver udslag i følgende situationer, som vil sætte support i gang:

  • Afhængighedsproblemer (fx. ingen forbindelse til en database eller en SFTP server)
  • Hvis håndteringen af et modtaget batch ikke er færdiggjort efter X timer pga. manglende kvittering fra Synlab, hvor X er konfigurerbart.

...

  • kilden)
  • Værdier i de hentede date overholder ikke formatet eller værdier overstiger den allokerede længde i databasen

De mulige svar fra statusservicen er:

OK status

Ved normal drift vil statusservicen returnere http 200 med denne information

Image Added

Ikke Ok status

Opstår som følge af HTTP 500 status kode og kræver NSP driftleverandørens umiddelbare opmærksomhed. De mulige situationer, hvor HTTP 500 status kode leveres er beskrevet herunder.

Fejl ved adgang til databasen

Image Added

Fejl ved adgang til data kilden

Image Added

Fejl ved indlæsning af data

Værdi i data overstiger allokeret felt I databasen - enkelte elementer indlæses ikke

Image Added

Data overholder ikke overordnet struktur - hele datasættet afvises

Image Added

Elementer i data overholder ikke strukturen - enkelte elementer indlæses ikke

Image Added

Generelle overvågningssnitflader

Ingen - ud over den beskrevne statusservice.


Service snitflader

Ingen.


Fejlhåndtering

Ingen - ud over hvad der rapporteres gennem statusservicen.


Logning

Under håndtering af en fil logges der til nsputil-sla.log, antigentestAudit.log, antigentestApplication.log og antigentestStat.log:

nsputil-sla.log

Code Block
09-06-2021 10:56:30,355 [default task-1] INFO  dk.sdsd.nsp.slalogdata - LogPoint="LoggerBean" LogPointUniqId="LoggerBean" StartTime="2021-06-09 10:56:30.354" EndTime="2021-06-09 10:56:30.354" Duration="245 microseconds" MessageId="8024d49a-af89-45f9-ae8f-45baa8eec79a" RequestSize=0 ReplySize=0 Result=OK ClientIP="<empty>" SOAPOperation="DataSet received" SOAPEndpoint="<empty>" SOAPAction="<empty>" TargetSOAPOperation="<empty>" TargetSOAPEndpoint="<empty>" GenericCallParms(1)= { ("Input","<empty>") }
09-06-2021 10:56:40,053 [Camel (camel-1) thread #1 - AggregateTimeoutChecker] INFO  dk.sdsd.nsp.slalogdata - LogPoint="LoggerBean" LogPointUniqId="LoggerBean" StartTime="2021-06-09 10:56:30.354" EndTime="2021-06-09 10:56:40.051" Duration="9697149 microseconds" MessageId="8024d49a-af89-45f9-ae8f-45baa8eec79a" RequestSize=0 ReplySize=0 Result=OK ClientIP="<empty>" SOAPOperation="DataSet completed" SOAPEndpoint="<empty>" SOAPAction="<empty>" TargetSOAPOperation="<empty>" TargetSOAPEndpoint="<empty>" GenericCallParms(1)= { ("Input","<empty>") }

antigentestAudit.log

Code Block
timestamp="2021-06-09 10:56:24,036" priority="WARN" class="dk.nsi.sdm.antigentest.monitoring.StatusService" message="Fetching data"
timestamp="2021-06-09 10:56:30,557" priority="INFO" class="dk.nsi.sdm.antigentest.bean.LoggerBean" message="The dataset 8024d49a-af89-45f9-ae8f-45baa8eec79a has been preparsed"
timestamp="2021-06-09 10:56:39,073" priority="INFO" class="dk.nsi.sdm.antigentest.bean.LoggerBean" message="The dataset 8024d49a-af89-45f9-ae8f-45baa8eec79a has been parsed and splitted"
timestamp="2021-06-09 10:56:40,056" priority="INFO" class="dk.nsi.sdm.antigentest.bean.LoggerBean" message="The dataset 96f510a5-9ebb-4413-8d08-50dee7467e9e has been completed with status Completed"

antigentestApplication.log

Code Block
timestamp="2021-06-09 10:56:30,557" priority="INFO" class="dk.nsi.sdm.antigentest.bean.LoggerBean" message="The dataset 8024d49a-af89-45f9-ae8f-45baa8eec79a has been preparsed"
timestamp="2021-06-09 10:56:39,073" priority="INFO" class="dk.nsi.sdm.antigentest.bean.LoggerBean" message="The dataset 8024d49a-af89-45f9-ae8f-45baa8eec79a has been parsed and splitted"
timestamp="2021-06-09 10:56:39,075" priority="DEBUG" class="dk.nsi.sdm.antigentest.parser.AntigentestParser" message="Parsed 315 Antigettestdevices"
timestamp="2021-06-09 10:56:40,056" priority="INFO" class="dk.nsi.sdm.antigentest.bean.LoggerBean" message="The dataset 96f510a5-9ebb-4413-8d08-50dee7467e9e has been completed with status Co
mpleted"

antigentestStat.log

Code Block
{"Time to preparse":"PT0.059S","Persisted records":"Written Antigentests: 479, Updated Antigentests: 0, Deleted Antigentests: 0","Parsed records":"Parsed 481 Antigettestdevices","Application":"AntigentestIndlæser","Timestamp":"2021-11-22 22:32:50,592","Processing Time":"PT18.591S","ExchangeId":"d6ce28cc-398f-41fb-969c-550a028d2923","Time to parse and split":"PT11.61S"}