Page History
...
SORES er designet med opslags-performance som den primære drivfaktor, og gør derfor brug af en memory-cache, der skal initialiseres inden den kan besvare requests - og når der er opdateringer i datagrundlaget.
Arkitektur
Data-strukturen, der bærer response-data, ligger i pakken dk.sds.nsp.sor.sores.model, mens logikken i komponenten er inddelt i følgende lag :beskrevet herunder.
Arkitektur
Servlet
Servlet-laget ligger i pakken dk.sds.nsp.sor.sores.ws og er ansvarlig for at håndtere GET-requests og for at udpakke JSON-requestparametre fra POST-requests, kalde servicen i service-laget og formattere svaret som en JSON-struktur i responset.
...
Data indlæses fra databasen ved et reload-request, hvis seneste database-timestamps er nyere end seneste cachen-timestamp.
Algoritme for indlæsning til cache
Cachen indlæses ved kald til "/reload" som beskrevet i driftsvejledningen. Følgende query danner grundlag for at fylde cachen med entiteter fra tabellen SOR2SorEntity.
| Code Block | ||||
|---|---|---|---|---|
| ||||
SELECT t1.ValidFrom, t1.FromDate, t1.ToDate, t1.SorId, t1.ParentSorId, t1.HealthInstitutionSorId, t1.ProviderId, t1.ShakId, t1.EntityName, t1.InstitutionOwnerSorId, t1.InstitutionOwnerCvrNumberId, t1.EntityTypeId, t1.EntityTypeName FROM SOR2SorEntity t1 JOIN ( SELECT UniqueCurrentKey, MAX(ValidFrom) as MaxValidFrom FROM SOR2SorEntity WHERE FromDate >= :date_interval OR (FromDate = ( SELECT MAX(FromDate) FROM SOR2SorEntity t3 WHERE t3.SorId = SOR2SorEntity.SorId ) AND ToDate is NULL ) GROUP BY UniqueCurrentKey ) t2 ON t1.UniqueCurrentKey = t2.UniqueCurrentKey AND t1.ValidFrom = t2.MaxValidFrom ; |