Page History
...
Property | Beskrivelse | Påkrævet | Default værdi | ||
|---|---|---|---|---|---|
| datasource.ddtv.jndi-name | Navn på jboss datasource (defineret i ddtv-ds.xml) | Ja | java:jboss/datasources/ddtv-ds | ||
| dcc.endpoint | Angiver det endpoint, som DCC'en skal kalde. Dette kommer til at fremgå af den XML, der returneres i /dksconfig. | Ja | http://test1-cnsp.ekstern-test.nspop.dk:8080/ddtv-citizen-service/2025/05/01/ | ||
| service.contract.endpoint | Endpoint, som WSDL og XSD-schemas er udstillet på. Anvendes til substitution af relative stier til XSD-schemas ved hent af WSDL | Ja | http://test1-cnsp.ekstern-test.nspop.dk:8080/ddtv-citizen-service/service-contract | ||
| sores.url | URL til SORES servicen | Ja | http://test1.ekstern-test.nspop.dk:8080/sores/ | ||
| sores.connectTimeout | Connection timeout i millisekunder for SORES integrationen | Ja | 10000 | ||
| personinformation.url | URL til PersonInformation servicen | Ja | http://test1-cnsp.ekstern-test.nspop.dk:8080/stamdata-personinformation/v1 | ||
| personinformation.connectionTimeout | Connection timeout i millisekunder for PersonInformation integrationen | Ja | 10000 | ||
| personinformation. | Specificering af hvor lang tid tilbage der skal tælles fejl fra PersonInformation servicen (ifm /status endpointet). Angives som duration i ISO-8601 formattet. | Ja | PT10M (10 minutter) | ||
| cprstatuscodes | Kommasepareret liste af statuskoder i CPR | personinformation.cprstatuscodes | Kommasepareret liste af statuskoder i CPR stamdata, der anses som ACTIVE | Ja | 1,3,70 |
| httpclient.pooling.totalconnections | Totale antal HttpClients forbindelser der kan åbnes | Nej | 200 | ||
| httpclient.pooling.maxconnections.pr.route | Antal HttpClients forbindelser der kan åbnes pr. rute | Nej | 20 | ||
| ddtv.audience | Audience for IDWS kald | Ja | https://audience.nspop.dk/ddtv | ||
| ddtv.powerOfAttorney.read | Fuldmagt læserettighed | Ja minlog | urn:dk:nspop:ddtv:read | ||
| ddtv.powerOfAttorney.write | Fuldmagt skriverettighed | Ja minlog | urn:dk:nspop:ddtv:write |
I application.properties for DDTV-Dentist servicen kan følgende properties defineres:
Property
Beskrivelse
Påkrævet
Default værdi
Navn på jboss datasource (defineret i ddtv-ds.xml)
Ja
java:jboss/datasources/ddtv-ds
URL til SORES servicen
Ja
http://test1.ekstern-test.nspop.dk:8080/sores/
Connection timeout i millisekunder for SORES integrationen
Ja
10000
Property | Beskrivelse | Påkrævet | Default værdi |
|---|---|---|---|
| idsasdatasource.datasourceddtv.jndi-name | Navn på jboss datasource (defineret i ddtv-ds.xml) | Ja | java:jboss/datasources/ddtv-ds |
| dcc.endpoint | Angiver det endpoint, som DCC'en skal kalde. Dette kommer til at fremgå af den XML, der returneres i /dksconfig. | Ja | http://test1-cnsp.ekstern-test.nspop.dk:8080/ddtv-dentist-service/2025/05/01/ |
| whitelistedservice.contract.cvrs | Kommasepareret liste af whitelistede CVR-numre. Såfremt listen er blank er der ingen CVR-begrænsning. | Nej | 33257872 |
I application.properties for DDTV-Batch servicen kan følgende properties defineres:
| endpoint | Endpoint, som WSDL og XSD-schemas er udstillet på. Anvendes til substitution af relative stier til XSD-schemas ved hent af WSDL | Ja | http://test1-cnsp.ekstern-test.nspop.dk:8080/ddtv-dentist-service/service-contract |
| personinformation.url | URL til PersonInformation servicen | Ja | http://test1-cnsp.ekstern-test.nspop.dk:8080/stamdata-personinformation/v1 |
| personinformation.connectionTimeout | Connection timeout i millisekunder for PersonInformation integrationen | Ja | 10000 |
| personinformation. |
Specificering af hvor lang tid tilbage der skal tælles fejl fra PersonInformation servicen (ifm /status endpointet). Angives som duration i ISO-8601 formattet.
Ja
PT10M (10 minutter)
| cprstatuscodes | Kommasepareret liste af statuskoder i CPR stamdata, der anses som ACTIVE | Ja | 1,3,70 |
I application.properties for DDTV-Batch servicen kan følgende properties defineres:
Property | Beskrivelse | Påkrævet | Default værdi | ||
|---|---|---|---|---|---|
| datasource.ddtv.jndi-name | Navn på jboss datasource (defineret i ddtv-ds.xml) | Ja | java:jboss/datasources/ddtv-ds | ||
| sores.url | URL til SORES servicen | Ja | http://test1.ekstern-test.nspop.dk:8080/sores/ | ||
| sores.connectTimeout | Connection timeout i millisekunder for SORES integrationen | Ja | 10000 | ||
| personinformation.url | URL til PersonInformation servicen | Ja | http://test1-cnsp.ekstern-test.nspop.dk:8080/stamdata-personinformation/v1 | ||
| personinformation.connectionTimeout | Connection timeout i millisekunder for PersonInformation integrationen | Ja | 10000 | ||
| personinformation.cprstatuscodes | Kommasepareret liste af statuskoder i CPR stamdata, der anses som ACTIVE | Ja | 1,3,70 | ||
| httpclient.pooling.totalconnections | Totale antal HttpClients forbindelser der kan åbnes | Nej | 200 | ||
| httpclient.pooling.maxconnections.pr.route | Antal HttpClients forbindelser der kan åbnes pr. rute | Nej | 20 | ||
| scan.citizens.target.age | Alder i år for automatisk tilmelding af borgere | Ja | 22 | ||
| scan.citizens.days.before | Antal dage før fødselsdag for automatisk tilmelding af borgere | Ja | 7 | ||
| scan.citizens | |||||
| httpclient.pooling.totalconnections | Totale antal HttpClients forbindelser der kan åbnes | Nej | 200 | ||
| httpclient.pooling.maxconnections.pr.route | Antal HttpClients forbindelser der kan åbnes pr. rute | Nej | 20 | ||
| scan.citizens.target.age | Alder i år for automatisk tilmelding af borgere | Ja | 22 | ||
| scan.citizens.days.before | Antal dage før fødselsdag for automatisk tilmelding af borgere | Ja | 7 | ||
| scan.citizens.execution.duration | Hvor længe skal scan citizens jobbet køre | Ja | PT10S (10 sekunder) | ||
| remind.citizens.batchsize | Hvor mange personer skal påmindelsesjobbet maksimalt fremsøge fra databasen ad gangen | Ja | 10 | ||
| remind.citizens.delay.duration | Hvor lang tid skal der gå fra første digital post eller sidste påmindelse til en ny påmindelse sendes | Ja | P10D (10 dage) | ||
| remind.citizens.execution.duration | Hvor længe skal påmindelsesjobbet køre | Ja | PT10S (10 sekunder) | ||
| remind.citizens.reminder.limit | Hvor mange reminders må der sendes til samme borger | Ja | 1 | ||
| digital.post.batchsize | Hvor mange personer skal digital post jobbet maksimalt fremsøge fra databasen ad gangen | Ja | 10 | ||
| digital.post.execution.duration | Hvor længe skal digital post scan citizens jobbet køre | Ja | PT10S (10 sekunder) | ||
| digitalremind.postcitizens.endpoint | URL til Digital Post Adapter send servicen | Ja | http://test1-cnsp.ekstern-test.nspop.dk:8080/digitalpost/2024/05/29/send | ||
| digital.post.template.informationsbrev | Skabelon-navn for brev der udsendes når borgeren skal informeres om at der skal vælges tandlæge | Ja | DDTV/20250910/informationsbrev | ||
| digital.post.template.bekraeftelsesbrev | Skabelon-navn for brev der udsendes når tandlægen har bekræftet borgerens valg | Ja | DDTV/20250910/bekraeftelsesbrev | ||
| digital.post.template.paamindelsesbrev | Skabelon-navn for brev der udsendes når borgeren ikke har foretaget et valg længe nok | Ja | DDTV/20250910/paamindelsesbrev | ||
| digital.post.template.afvistbrev | Skabelon-navn for brev der udsendes når tandlægen har afvist borgerens valg | Ja | DDTV/20250910/afvisningsbrev_t1 | ||
| digital.post.template.timeoutbrev | Skabelon-navn for brev der udsendes når tandlægen har været for længe om at svare på borgerens valg | Ja | DDTV/20250910/afvisningsbrev_t2 | ||
| batchsize | Hvor mange personer skal påmindelsesjobbet maksimalt fremsøge fra databasen ad gangen | Ja | 10 | ||
| remind.citizens.delay.duration | Hvor lang tid skal der gå fra første digital post eller sidste påmindelse til en ny påmindelse sendes | Ja | P10D (10 dage) | ||
| remind.citizens.execution.duration | Hvor længe skal påmindelsesjobbet køre | Ja | PT10S (10 sekunder) | ||
| remind.citizens.reminder.limit | Hvor mange reminders må der sendes til samme borger | Ja | 1 | ||
| digital.post.batchsize | Hvor mange personer skal digital post jobbet maksimalt fremsøge fra databasen ad gangen | Ja | 10 | ||
| digital.post.execution.duration | Hvor længe skal digital post jobbet køre | Ja | PT10S (10 sekunder) | ||
| digital.post.endpoint | URL til Digital Post Adapter send servicen | Ja | http://test1-cnsp.ekstern-test.nspop.dk:8080/digitalpost/2024/05/29/send | ||
| digital.post.template.informationsbrev | Skabelon-navn for brev der udsendes når borgeren skal informeres om at der skal vælges tandlæge | digital.post.template.kommunikationsfejlbrev | Skabelon-navn for brev der udsendes når EDI-portalen giver fejl | Ja | DDTV/20250910/afvisningsbrev_t3 |
| edi.message.batchsize | Hvor mange personer skal EDI jobbet maksimalt fremsøge fra databasen ad gangen | Ja | 10 | ||
| edi.message.execution.duration | Hvor længe skal EDI jobbet køre | Ja | PT10S (10 sekunder) | ||
| edi.message.tokenuri | URL til EDI-portalens JWT token service | Ja | https://tst-identity.nasure.dk/auth/realms/Nasure/protocol/openid-connect/token | ||
| edi.message.apiuri | URL til EDI-portalens dentist API | Ja | https://tst-api.ediportalen.dk/api/ddtvRequestDentist | ||
| edi.message.clientid | ID på klient, dvs. på DDTV | Ja | sds-ddtv | ||
| edi.message.clientsecret | Client secret til udstedelse af JWT token | Ja | (skjult) | ||
| cleanup.batchsize | Hvor mange borgere skal oprydningsjobbet maksimalt rydde op ad gangen | Ja | 20 | ||
| cleanup.deceased.retention.period | Hvor lang tid skal der gå før data for en afdød person fjernes fra databasen | Ja | P1Y (1 år) | ||
| cleanup.unresponsive.retention.period | Hvor lang tid skal der gå før data for en person, der har modtaget digital post uden at reagere på det, fjernes fra databasen | Ja | P2Y (2 år) | ||
| cleanup.edi.status.retention.period | Hvor gamle må EDIStatus records blive, før de automatisk slettes. | Ja | P1M (1 måned) | ||
| informationsbrev | |||||
| digital.post.template.bekraeftelsesbrev | Skabelon-navn for brev der udsendes når tandlægen har bekræftet borgerens valg | Ja | DDTV/20250910/bekraeftelsesbrev | ||
| digital.post.template.paamindelsesbrev | Skabelon-navn for brev der udsendes når borgeren ikke har foretaget et valg længe nok | Ja | DDTV/20250910/paamindelsesbrev | ||
| digital.post.template.afvistbrev | Skabelon-navn for brev der udsendes når tandlægen har afvist borgerens valg | Ja | DDTV/20250910/afvisningsbrev_t1 | ||
| digital.post.template.timeoutbrev | Skabelon-navn for brev der udsendes når tandlægen har været for længe om at svare på borgerens valg | Ja | DDTV/20250910/afvisningsbrev_t2 | ||
| digital.post.template.kommunikationsfejlbrev | Skabelon-navn for brev der udsendes når EDI-portalen giver fejl | Ja | DDTV/20250910/afvisningsbrev_t3 | ||
| edi.message.batchsize | Hvor mange personer skal EDI jobbet maksimalt fremsøge fra databasen ad gangen | Ja | 10 | ||
| edi.message.execution.duration | Hvor længe skal EDI jobbet køre | Ja | PT10S (10 sekunder) | ||
| edi.message.tokenuri | URL til EDI-portalens JWT token service | Ja | https://tst-identity.nasure.dk/auth/realms/Nasure/protocol/openid-connect/token | ||
| edi.message.apiuri | URL til EDI-portalens dentist API | Ja | https://tst-api.ediportalen.dk/api/ddtvRequestDentist | ||
| edi.message.clientid | ID på klient, dvs. på DDTV | Ja | sds-ddtv | ||
| edi.message.clientsecret | Client secret til udstedelse af JWT token | Ja | (skjult) | ||
| cleanup.batchsize | Hvor mange borgere skal oprydningsjobbet maksimalt rydde op ad gangen | Ja | 20 | ||
| cleanup.deceased.retention.period | Hvor lang tid skal der gå før data for en afdød person fjernes fra databasen | Ja | P1Y (1 år) | ||
| cleanup.unresponsive.retention.period | Hvor lang tid skal der gå før data for en person, der har modtaget digital post uden at reagere på det, fjernes fra databasen | Ja | P2Y (2 år) | ||
| cleanup.execution.duration | Hvor | cleanup.execution.duration | Hvor længe skal cleanup jobbet køre | Ja | PT10S (10 sekunder) |
| sts.endpoint | Endpoint for STS'en. Anvendes i forbindelse med DGWS kald til Digital Post Adapteren | Ja | http://test1-cnsp.ekstern-test.nspop.dk:8080/sts/services/NewSecurityTokenService | ||
| sts.keystore | Keystore med certifikat til DGWS kald | Ja | NSP_Test_Service_Consumer_sds.p12 | ||
| sts.keystore.password | Password til keystore med certifikat til DGWS kald | Ja | Test1234 | ||
| idcard.subject.name | Organisation som certifikat er udstedt til | Ja | Sundhedsdatastyrelsen | ||
| idcard.subject.id | CVR-nummer på organisation, som certifikat er udstedt til | Ja | 33257872 | ||
| idcard.system.name | Navn på system som foretager DGWS kald ti til Digital Post Adapteren | Ja | DDTV |
...
Komponent | Kontekst | Nøgle | Information |
|---|---|---|---|
| DDTV-Citizen | applyForNewDentist disregardApplicationForNewDentist noMoreReminders newDentistFullStop optOut checkStatus | personID personIDClass actorID actorIDType actorRole | Id på borgeren Typen af id i form af OID, f.eks. "OID:1.2.208.176.1.6.1.12" for CPR Id på actor (borger eller fuldmægtig) Typen af id i form af OID, f.eks. "OID:1.2.208.176.1.6.1.12" for CPR "Borger" |
| DDTV-Dentist | dentistAccept dentistReject | requestID actorID actorIDType actorRole | Unikt ID genereret for EDI meddelelse til tandlæge' ID på actor Typen af actor "System" |
...
| Code Block | ||||||
|---|---|---|---|---|---|---|
| ||||||
{
"time": "2025-09-19T09:04:46.985764854Z",
"category": "dk.sds.nsp.audit.log",
"audit": {
"timestamp": "2025-09-19T11:04:44.736968533+02:00",
"components": [{
"component": "DDTV",
"contexts": [{
"context": "applyForNewDentist",
"information": [{
"key": "patient-id",
"type": "RPI",
"value": "1811804807"
}, {
"key": "patient-id-source",
"type": "RPI",
"value": "OID:1.2.208.176.1.6.1.12"
}, {
"key": "actor-role",
"type": "NPI",
"value": "CITIZEN"
}, {
"key": "actor-id",
"type": "NPI",
"value": "1811804807"
}, {
"key": "actor-id-source",
"type": "NPI",
"value": "CPR"
}
]
}
]
}
]
},
"access": {
"code": 200,
"duration": 2247,
"httpHeaders": {
"Content-Type": "text/xml;charset=UTF-8",
"SOAPAction": "http://sundhedsdatastyrelsen.dk/ddtv/2025/05/01/#ddtvApplyForNewDentist"
},
"httpHost": "localhost",
"idCardAttributes": {
"X509Subject": "CN=NSP Test Service Consumer,SERIALNUMBER=UI:DK-O:G:8d3fa047-c77e-47e4-bdd2-e91488610ce6,O=Sundhedsdatastyrelsen,2.5.4.97=NTRDK-33257872,C=DK",
"dk:gov:saml:attribute:AssuranceLevel": "3",
"dk:gov:saml:attribute:CprNumberIdentifier": "1811804807",
"dk:gov:saml:attribute:SpecVer": "DK-SAML-2.0"
},
"method": "POST",
"path": "/ddtv-citizen-service/2025/05/01/",
"query": "",
"port": 8080,
"protocol": "http",
"reqSize": 12564,
"resSize": 6493,
"soapHeaders": {
"Audience": "https://fsk",
"Issuer": "TEST1-NSP-STS",
"NameID": "dk:gov:saml:attribute:CprNumberIdentifier:1811804807",
"w3Action": "http://sundhedsdatastyrelsen.dk/ddtv/2025/05/01/#ddtvApplyForNewDentist",
"w3MessageID": "ae528b36-4715-470b-a603-bc4b150a028b"
},
"threadId": "default task-1",
"time": "2025-09-19T11:04:44.736899022+02:00",
"stats": {
"handlerDuration": 42,
"RequestContentDuration": 3,
"ResponseContentDuration": 0,
"SecurityProtocolRequestDuration": 17,
"SecurityProtocolResponseDuration": 20,
"bufferAllocated": false,
"usedBuffers": 2,
"activeBuffersInPool": 2,
"idleBuffersInPool": 0
},
"reqUUID": "f6567a23-dc35-46f2-8ad9-01314fa47750"
}
}
|
...
Der findes et status og et alarm-endpoint for hver baggrundsjob. De har følgende url'er:
- <serverurl>/ddtv-batch-service/status
- <serverurl>/ddtv-batch-service/alarm
De to status-endpoints kan svare følgende
...
Jobbet startes via et HTTP GET kald til <serverurl>/ddtv-batch-service/scan-citizens-job/start
...
Jobbet startes via et HTTP GET kald til <serverurl>/ddtv-batch-service/digital-post-job/start
Jobbet fremsøger records fra i databasen med dpStatus = READY. Der afsendes forskellige digital post breve afhængigt af status:
Digital Post sendes via NSP-komponenten Digital Post Adapter.
I praksis gennemfører jobbet følgende trin:
- Der indlæses en liste af DentistChoice records som har dpStatus (digital post status READY).
- For hver gøres følgende:
- Send digital post via Digital Post Adapter.
- Skift DentistChoice dpStatus til SENT, og marker tidspunkt for afsendelse.
Det brev der sendes kan være flere typer, afhængigt af DentistChoice status:
| Status | Digital Post |
|---|---|
| NO_DENTIST | Indledende brev til borger med information om ordning og |
| Status | Digital Post | NO_DENTIST | Indledende brev til borger med information om ordning og
| link til Sundhed.dk | |
| DENTIST_ACCEPTED | Brev til borger med |
| bekræftelse om, at valgt tandlæge har accepteret | |
| DENTIST_REJECTED | Brev til borger med information om, at valgt tandlæge har afvist |
| henvendelsen. |
Digital Post sendes i praksis via NSP-komponenten Digital Post Adapter
Job til påmindelse af borger
| TIMED_OUT | Brev til borger med information om, at tandlæge ikke har besvaret henvendelsen inden for en givet tidsperiode |
| COMMUNICATION_FAILURE | Brev til borger med information om, at der er opstået en teknisk fejl ved forsøg på at kontakte tandlægen. |
Job til påmindelse af borger
Dette job er beregnet til at sende påmindelsesbreve til borgere, der ikke har reageret på tidligere brev indenfor en vis periode (konfigurerbart).
Jobbet Jobbet startes via et HTTP GET kald til til <serverurl>/ddtv-batch-service/remind-citizens-job/start
Jobbet fremsøger DentistChoice records fra i databasen, hvor følgende gælder
- Status = NO_DENTIST (der er ikke valgt tandlæge)
- dpStatus = SENT (der er sendt digital post)
- Der er sendt digital post eller reminder for et stykke tid siden (konfigurerbart)
- Maksimalt antal reminders er endnu ikke er sendt.
- Reminders er ikke fravalgt
For disse sendes ny Digital Post i form af et påmindelsesbrev. Digital Digital Post sendes i praksis via NSP-komponenten Digital Post Adapter., på samme måde som Digital Post jobbet gør det.
Job til Job til afsendelse af EDI-beskeder
Jobbet startes via et HTTP GET kald til <serverurl>/ddtv-batch-service/edi-job/start
...
For disse sendes en EDI-besked om, at en borger har valgt en specifik tandlæge. I kaldet indgår en RequestID, som genereres i forbindelse med at EDI-beskeden sendes, og lagres i databasen. Når der senere bekræftes eller afvises via DGWS-servicen til tandlæger, vi denne RequestID blive anvendt til at slå op hvem borgeren var.
EDI-beskeder sendes i praksis via EDI-portalen med en snitflade til at slå op hvem borgeren var.EDI-beskeder sendes i praksis via EDI-portalen med en snitflade til formålet udviklet af Nasureformålet udviklet af Nasure.
I praksis gennemfører jobbet følende trin:
- Alle DentistChoice records med status DENTIST_CHOSEN som nyeste status for en person indlæses fra databasen (batchvist)
- For hver gøres følgende:
- Der oprettes en RequestID som identificerer EDI beskeden
- Opret en ny DentistChoice med status DENTIST_CONTACTED
- Opret en EDIStatus i en separat tabel, som holder styr på EDI beskeder, der endnu ikke er modtaget Accept eller Reject for.
- Send EDI besked. Der medsendes lokationsnummer.
EDI-beskeder sendes i praksis via EDI-portalen, med en snitflade til formålet udviklet af Nasure.
Bemærk:
- Lokationsnummer skulle have været slået op i SOR, men pga. aktuelle begrænsninger i SORES-servicen bruges i stedet lokationsnummer fra DentistChoice, som er medsendt fra Sundhed.dk
- Det vil være en fordel at begrænse afvikling af dette job til om natten, hvis dette er muligt, så en borger har mulighed for at vælge om i løbet af dagen, uden at tandlæger kontaktes unødigt.
Job til afsendelse af "se bort fra tidligere EDI"-beskeder
Jobbet startes via et HTTP GET kald til <serverurl>/ddtv-batch-service/ignore-previous-edi-job/start
Jobbet fremsøger records fra EDIStatus-tabellen databasen, som indeholder data om "udestående" EDI-beskeder. For hver afgøres om en af følgende gælder.
- Der er ikke nogle data for borgeren (opt out)
- Det er ikke længere samme tandlæge, der er valgt (borgeren har valgt om i mellemtiden)
...
Oprydningsjobbet startes via et HTTP GET kald til <serverurl>/ddtv-batch-service/cleanup-job/start
...
- Data for afdøde borgere. Alle registrerede data slettes 1 år efter borgeren personerne er afgået ved døden (konfigurerbart)
- Data for borgere, der har fået tilsendt Digital Post, men stadig ikke har reageret efter 2 år (konfigurerbart) Data for udestående EDI beskeder, dvs. sendte beskeder, der ikke er blevet besvaret med dentistAccept eller dentistReject efter 1 måned
- (konfigurerbart)