Page History
...
Gliffy Diagram displayName Overblik name Overblik pagePin 45
Anchor | ||||
---|---|---|---|---|
|
...
Property | Beskrivelse | Default |
---|---|---|
dk.nsi.db.type | Angiver hvilken type database der bruges, værdier kan være "hsqldb" til udvikling og "mysqldb" til test og produktion. | hsqldb |
dk.nsi.auth.whitelistservice.type | Hvilken whitelistservice bruges der. Kan enten være "property" eller "database" | property |
dk.nsi.auth.create.type.cvr.list | Bruges kun hvis "dk.nsi.auth.whitelistservice.type" er sat til "property" | <tom> |
dk.nsi.auth.query.type.type.cvr.list | Bruges kun hvis "dk.nsi.auth.whitelistservice.type" er sat til "property" | <tom> |
dk.nsi.auth.brs.cvr.list | Bruges kun hvis "dk.nsi.auth.whitelistservice.type" er sat til "property" | |
dk.nsi.db.{navn}.url | Database URL - se tabel med miljøspecifikke oplysninger for databaser for detaljer om {navn} | |
dk.nsi.db.{navn}.driverclass | Database driver - se tabel med miljøspecifikke oplysninger for databaser for detaljer om {navn} | |
dk.nsi.db.{navn}.user | Database brugernavn - se tabel med miljøspecifikke oplysninger for databaser for detaljer om {navn} | |
dk.nsi.db.{navn}.pwd | Database adgangskode - se tabel med miljøspecifikke oplysninger for databaser for detaljer om {navn} | |
dk.nsi.db.{navn}.database | Database navn - se tabel med miljøspecifikke oplysninger for databaser for detaljer om {navn} | |
dk.nsi.followupjob.enabled | Angiver om jobbet er enablet. Er obligatorisk | |
dk.nsi.days.to.postpone.next.check | Bruges af FollowupJob: definerer tidsrummet for hvornår næste check af en opfølgning skal laves. Værdien er defineret i dage | 2 |
dk.nsi.followup.processing.cooldown.minutesduration | Antal minutter Periode der skal gå fra en followup-besked er blevet behandlet, til den kan behandles igen (hvis den er blevet sat til udførsel i fremtiden).. Angives som en "Duration". | PT0S |
dk.nsi.followup.processing.increment.duration | Perioden cooldown forøges med når der ikke har været processeret nogen followup-beskeder. Angives som en "Duration". | PT0S |
dk.nsi.followup.processing.max.duration | Den maksimale perioden cooldown må have. Angives som en "Duration". | PT0S0 |
dk.nsi.followup.processing.consumer.pool.size | Antal consumere der er tigængelige til behandling af followup-beskeder. | 20 |
dk.nsi.followup.processing.thread.pool.size | Størrelsen på den thread pool som en consumer har til behandling af followup-beskeder. | 20 |
dk.nsi.notificationcleanupjob.enabled | Angiver om jobbet er enablet. Er obligatorisk | |
dk.nsi.notificationcleanupjob.schedule | CRON-udtryk der afgør hvornår jobbet kører. Se evt. denne beskrivelse. Er obligatorisk. | |
dk.nsi.notificationcleanupjob.olderThanDays | Fjern alarmer som er ældre end denne værdi. Værdien er defineret i dage | 75 |
dk.nsi.notificationcleanupjob.maxtime | Max tid i minutter en oprydning må tage før der laves en alarm. | 120 |
dk.nsi.relation.assigneddoctor.update.frequency | Bruges af brs-nsp til at udregne hvilken relation der er mellem patient og læge. | 10 |
dk.nsi.relation.refhost.update.frequency | Bruges af brs-nsp til at udregne hvilken relation der er mellem patient og læge. | 2 |
dk.nsi.relation.ssr.update.frequency | Bruges af brs-nsp til at udregne hvilken relation der er mellem patient og læge. | 62 |
dk.nsi.app.name | Angiver navnet på applikationen. Bruges til at oprette SlaLogInput, som bruges til SLA logninger i facaden mod SORES. | Behandlingsrelationsservice |
dk.nsi.app.shortName | Angiver navnet på applikationen i kort form. Bruges til at oprette SlaLogInput, som bruges til SLA logninger i facaden mod SORES. | BRS |
dk.nsi.brs.relayer.sor.all.enabled | Denne variable bruges til at styre om det skal være ny kode der skal bruges. Den "gamle" kode er dog opdateret, så den bruges SOR servicen til at mappe fra Shak til Sor. | true |
dk.nsi.brs.sor.url | Der peges på den SORES service man vil kalde op imod. Hvis man har en lokal udgave kørende af SORES servicen, så kan man med fordel ændre url'en til http://localhost:8080/sores | http://test1-cnsp.ekstern-test.nspop.dk:8080/sores/ |
dk.nsi.brs.sor.fail.threshold | Denne værdi bruges i IsAlive fra MSBUtil. Den angiver hvor mange tidligere kald til servicen, hvor vi holder styr på status. Så hvis værdien er 10, så gemmes status for de sidste 10 kald og hvis blot en af dem har været gennemført uden fejl, så antages servicen at være tilgængelig. | 10 |
dk.nsi.brs.sor.max.total.connections | Maksimalt samtidigt antal kald til SORES | 200 |
dk.nsi.brs.sor.default.max.connections.per.route | Maksimalt samtidigt antal kald til samme SORES-operation. | 20 |
kafka.topic.dk.nsi.brs.kafka.topic | Navn på det topic, som opfølgningsbestillinger skal sendes til og hentes fra. | followup-topic |
kafka.consumer.client.id | Id der anvendes af Kafka consumere i løsningen. | brs-backend-consumer |
kafka.producer.client.id | Id der anvendes af Kafka producere i løsningen. | brs-backend-producer / brs-frontend-producer |
kafka.consumer.group.id | Group-id der anvendes af Kafka consumere /producere i løsningen. | BRS_GROUP_ID |
kafka.producer.bootstrap.servers | Url til Kafka bootstrap-server. | kafka:9092 |
kafka.consumer.enable.auto.commit | Om der skal anvendes auto-commit i kafka-consumere. | false |
kafka.consumer.auto.offset.reset | Offset der resettes til, f.eks. hvis en consumer ikke har committed sit offset. | earliest |
kafka.consumer.max.poll.records | Maksimalt antal beskeder en consumer kan hente fra Kafka ad gangen. Indstillingerne max.poll.records, max.partition.fetch.bytes og fetch.max.bytes bør justeres i sammenhæng. | 500 |
kafka.consumer.max.partition.fetch.bytes | Maksimalt antal bytes per partition, som en consumer kan hente fra Kafka ad gangen. Indstillingerne max.poll.records, max.partition.fetch.bytes og fetch.max.bytes bør justeres i sammenhæng. | 1048576 |
kafka.consumer.fetch.max.bytes | Maksimalt antal bytes en consumer kan hente fra Kafka ad gangen. Indstillingerne max.poll.records, max.partition.fetch.bytes og fetch.max.bytes bør justeres i sammenhæng. | 52428800 |
...
kafka.consumer.poll.timeout | Maksimale antal millisekunder Kafka consumeren skal foretage poll inden den timer ud. | 1000 |
kafka.consumer.max.wait.millis | Maksimale antal millisekunder Kafka consumeren venter hvis der kommer flere kald ind end der er Followup objekter i pool'en. | 1000 |
kafka.consumer.max.pool.size | Maksimale antal Followup objekter i pool'en. | 20 |
kafka.consumer.max.records | Maksimale antal beskeder Kafka consumeren kan processere ad gangen. | 50 |
kafka.consumer.max.processing.time | Den maksimale tid Kafka consumeren må bruge på at behandle beskeder fra consumeren. Angives som en "Duration". | PT10000S |
Følgende databaser kan refereres via {navn} ovenfor:
Miljø | Navn | Beskrivelse | |||
---|---|---|---|---|---|
BRS-Frontend | |||||
Miljø | Navn | Beskrivelse | |||
BRS-Frontend | stamdata | AssignedDoctor-stamdata | |||
register_notifications | Notifikationer til klienter samt SSR/LPR/REFHOST-stamdata. MySQL-replikeres fra backend | BRS-Backend | stamdata | AssignedDoctor-stamdata | |
register_notifications | Notifikationer til klienter samt SSR/LPR/REFHOST-stamdata. MySQL-replikeres til frontendsfra backend | ||||
BRS-Backend | stamdata | AssignedDoctor-stamdata | |||
register_notifications | Notifikationer til klienter samt SSR/LPR/REFHOST-stamdata. MySQL-replikeres til frontends | ||||
Kafka-migration | treatment_releation_followup | Data der modtages fra | Kafka-migration | treatment_releation_followup | Data der modtages fra frontends, og skal migreres til Kafka. |
...
Kaldet vil returnere 200 OK hvis alt går godt, ellers 500 Internal Server Error.
...
Konfiguration af Oprydningsjob
Servicens job til oprydning bliver afviklet vha. en udstillet RestController, som kaldes vha. simpelt HTTP GET kald.
Dette gøres for at sikre afviklingen af jobbet i fler-node drift, hvor en loadbalancer sørger for fordeling af kald til bagvedliggende servere.
Driften vedligeholder en cron, som kalder jobbets url i et fast mønster vha. curl.
Kommando til kald af oprydningsjob:
curl <server>/brs-backend/notificationcleanupjob
Kaldet vil returnere 200 OK hvis alt går godt, ellers 500 Internal Server Error.
Anchor | ||||
---|---|---|---|---|
|
Tilføjelse af CVR numre og typer på NSP'erne foregår i MySQL i tabellen whitelist_config i databasen register_Tilføjelse af CVR numre og typer på NSP'erne foregår i MySQL i tabellen whitelist_config i databasen register_notification. Når en ny af disse tilføjes replikeres opsætningen ud til de øvrige NSP'er automatisk. Der kræves ingen opdatering af brs-frontend/brs-backend.properties i den forbindelse.
...
I forbindelse med udskiftning af et anvendercertifikat kan det være nødvendigt at duplikere data for et CVR-nummer, som beskrevet i anvenderguiden, afsnit 2.5. Hvis der er behov for dette, køres nedenstående SQL-script.
BEMÆRK!!! SQL-scriptet udvikles ifm. JIRA-sag SDS-4039, og er d.d. under Q/A. Når denne sag er afsluttet, indsættes scriptet nedenfor.
Inden scriptet køres, Inden scriptet køres, justeres variablerne old_cvr og new_cvr.
Code Block | ||||
---|---|---|---|---|
| ||||
set @old_cvr = '46837428'; set @new_cvr = '12345678'; use followup; begin; -- Duplicate from BRS2_TreatmentRelationFollowup insert into BRS2_TreatmentRelationFollowup ( nextCheck, queryableCvr, externalReferenceId, uid, doctorOrganisation, hospitalOrganisation, ean, patientCpr, healthProfessionalCpr, relationLookupStart, relationLookupEnd, timeLimit, acceptableRelations, followupRelations, authorisationIdentifier, serviceProviderName, serviceProviderVersion, serviceProviderVendor, created, sor ) select nextCheck, @new_cvr, -- the new cvr externalReferenceId, uuid(), -- new uid doctorOrganisation, hospitalOrganisation, ean, patientCpr, healthProfessionalCpr, relationLookupStart, relationLookupEnd, timeLimit, acceptableRelations, followupRelations, authorisationIdentifier, serviceProviderName, serviceProviderVersion, serviceProviderVendor, created, sor from BRS2_TreatmentRelationFollowup where queryableCvr = @old_cvr; -- Duplicate from BRS2_Followup -- We need a relation between old and new serial numbers later on, when duplicating into the BRS2_Notification table, as that table refers into BRS2_Followup through the followupSerialNumber-column. -- We achieve this by creating a temp table of the followups that need to be duplicated, and generate fresh uid's there. The contents of the temp table are then inserted into BRS2_Followup. This allows us to relate serial numbers through the chain <old serial> <-> <old uid> <-> <new uid> <-> <new serial>. -- Create the temp table create temporary table BRS2_Followup_tmp select * from BRS2_Followup where queryableCvr = @old_cvr; alter table BRS2_Followup_tmp add column newUid varchar(36); update BRS2_Followup_tmp set newUid = uuid(); -- Insert into into BRS2_Followup (from the temp table) insert into BRS2_Followup ( queryableCvr, externalReferenceId, uid, -- The uid we just generated. doctorOrganisation, hospitalOrganisation, ean, patientCpr, healthProfessionalCpr, relationLookupStart, relationLookupEnd, timeLimit, acceptableRelations, followupRelations, authorisationIdentifier, serviceProviderName, serviceProviderVersion, serviceProviderVendor, created, errorCount, nextSync, sor ) select @new_cvr, -- the new cvr externalReferenceId, newUid, -- The new uid we just generated doctorOrganisation, hospitalOrganisation, ean, patientCpr, healthProfessionalCpr, relationLookupStart, relationLookupEnd, timeLimit, acceptableRelations, followupRelations, authorisationIdentifier, serviceProviderName, serviceProviderVersion, serviceProviderVendor, created, errorCount, nextSync, sor from BRS2_Followup_tmp; commit; use register_notifications; begin; -- Duplicate from BRS2_TreatmentRelationFollowup insert into BRS2_Notification ( externalReferenceId, queryableCvr, creationTimestamp, doctorOrganisation, hospitalOrganisation, ean, patientCpr, healthProfessionalCpr, relationLookupStart, relationLookupEnd, timeLimit, acceptableRelations, actualRelations, followupSerialNumber, followupRelations, authorisationIdentifier, serviceProviderName, serviceProviderVersion, serviceProviderVendor, uid, sor ) select n.externalReferenceId, @new_cvr, n.creationTimestamp, n.doctorOrganisation, n.hospitalOrganisation, n.ean, n.patientCpr, n.healthProfessionalCpr, n.relationLookupStart, n.relationLookupEnd, n.timeLimit, n.acceptableRelations, n.actualRelations, coalesce(f.pk, n.followupSerialNumber), n.followupRelations, n.authorisationIdentifier, n.serviceProviderName, n.serviceProviderVersion, n.serviceProviderVendor, uuid(), n.sor from BRS2_Notification n left join followup.BRS2_Followup_tmp ft on n.followupSerialNumber = ft.pk inner join followup.BRS2_Followup f on ft.newUid = f.uid where n.queryableCvr = @old_cvr; commit; |
Validering af SAML ID-kort
Der anvendes security-api til validering af SAML ID-kort. Hvis miljøvariablen NSP_TEST_FEDERATION
er sat til true
, vil ID kort blive valideret mod test-føderationen, ellers mod prod-føderationen.
Anchor | ||||
---|---|---|---|---|
|
Anchor | ||||
---|---|---|---|---|
|
...
I release 2.1.0 er BRS ændret, så Kafka anvendes til at vedligeholde køen af bestilte opfølgninger. Anvendelsen af Kafka erstatter den tidligere followup-database. I den forbindelse er der brug for at behandle de bestillinger der allerede ligger i followup-databasen, og sætte dem i kø i Kafka. Til dette formål er der udviklet en kommandolinjeapplikation, kafka-migration, som leveres som et docker-image (navn: registry.nspop.dk/components/brs/kafka-migration). Applikationen forbinder til followup-databasen og kafka-serveren, og fungerer som følger:
- Hent et batch af bestillinger fra BRS2_TreatmentRelationFollowup-tabellen.
- Hver bestilling sættes i kø som en kafka-besked.
- Bestillingerne slettes fra BRS2_TreatmentRelationFollowup-tabellen.
Applikationen udfører ovenstående procedure, ind til BRS2_TreatmentRelationFollowup-tabellen er tom. I tilfælde af fejl standser applikationen.
Applikationen konfigureres i filerne kafka-migration.properties og log4j.properties. Disse filer volume-mountes på stien /config. Nedenfor dokumenteres indholdet af kafka-migration.properties. Indholdet af filen log4j.properties er standard og forventes ikke at skulle ændres, og en gennemgang af indholdet er derfor udeladt.
...
Property
...
Beskrivelse
...
Default
...
dk.nsi.db.treatment_relation_followup.url
...
Database URL - se tabel med miljøspecifikke oplysninger for databaser for detaljer om {navn}
Eksempel kan ligeledes være følgende:
jdbc:mysql://cnsp-db01/
-image (navn: registry.nspop.dk/components/brs/kafka-migration). Applikationen forbinder til followup-databasen og kafka-serveren, og fungerer som følger:
- Hent et batch af bestillinger fra BRS2_TreatmentRelationFollowup-tabellen.
- Hver bestilling sættes i kø som en kafka-besked.
- Bestillingerne slettes fra BRS2_TreatmentRelationFollowup-tabellen.
Applikationen udfører ovenstående procedure, ind til BRS2_TreatmentRelationFollowup-tabellen er tom. I tilfælde af fejl standser applikationen.
Applikationen konfigureres i filerne kafka-migration.properties og log4j.properties. Disse filer volume-mountes på stien /config. Nedenfor dokumenteres indholdet af kafka-migration.properties. Indholdet af filen log4j.properties er standard og forventes ikke at skulle ændres, og en gennemgang af indholdet er derfor udeladt.
Property | Beskrivelse | Default |
---|---|---|
dk.nsi.db.treatment_relation_followup.url | Database URL - se tabel med miljøspecifikke oplysninger for databaser for detaljer om {navn} | |
dk.nsi.db.treatment_relation_followup.driverclass | Database driver - se tabel med miljøspecifikke oplysninger for databaser for detaljer om {navn} | |
dk.nsi.db.treatment_relation_followup.user | Database brugernavn - se tabel med miljøspecifikke oplysninger for databaser for detaljer om {navn} | |
dk.nsi.db.treatment_relation_followup.pwd | Database adgangskode - se tabel med miljøspecifikke oplysninger for databaser for detaljer om {navn} | |
dk.nsi.db.treatment_relation_followup.database | Database navn - se tabel med miljøspecifikke oplysninger for databaser for detaljer om {navn} | |
dk.nsi.brs.kafka.topic | Kafka-topic som bestillinger skal publiceres til | |
kafka.producer.client.id | Client-id på den kafka-producer, der ikøsætter bestillinger. | |
kafka.producer.bootstrap.servers | Url til Kafka bootstrap-server. |
I development-setuppet (compose/development/docker-compose.yml) findes et eksempel på, hvordan applikationen sættes op.
...
dk.nsi.db.treatment_relation_followup.driverclass
...
Database driver - se tabel med miljøspecifikke oplysninger for databaser for detaljer om {navn}
Eksempel kan ligeledes være følgende:
com.mysql.jdbc.Driver
...
dk.nsi.db.treatment_relation_followup.user
...
Database brugernavn - se tabel med miljøspecifikke oplysninger for databaser for detaljer om {navn}
...
dk.nsi.db.treatment_relation_followup.pwd
...
Database adgangskode - se tabel med miljøspecifikke oplysninger for databaser for detaljer om {navn}
...
dk.nsi.db.treatment_relation_followup.database
...
Database navn - se tabel med miljøspecifikke oplysninger for databaser for detaljer om {navn}
...
dk.nsi.brs.kafka.topic
...
Kafka-topic som bestillinger skal publiceres til
...
kafka.producer.client.id
...
Client-id på den kafka-producer, der ikøsætter bestillinger.
...
kafka.producer.bootstrap.servers
...
Url til Kafka bootstrap-server.
I development-setuppet (compose/development/docker-compose.yml) findes et eksempel på, hvordan applikationen sættes op.
...
Version
...
Dato
...
Ændring
...
Ansvarlig
...
0.1
...
2011-06-15
...
Initielt Dokument
...
Trifork
...
0.2
...
2011-07-27
...
Opdatering af dokumentation jf. implementation af generelle notifikationer
...
Trifork
...
0.3
...
2011-08-10
...
Opsplitning af dokumentation jf. opsplitning af BRS og GOS
...
Trifork
...
0.4
...
2011-10-05
...
Mindre tilretninger jf. Stamdatas replikering af Sikrede data
...
Trifork
...
1.0
...
2012-06-08
...
Tilføjet SQL til oprydning på BRS tabeller
...
Trifork
...
1.1
...
2013-10-21
...
Opdateret SVN link
...
Trifork
...
2.0
...
2017-03-10
...
Diverse opdateringer ifm. BRS2
...
Trifork
...
KvalitetsIT
...