Page History
...
Alias | Beskrivelse |
Behandlingsrelationsservice ws | Behandlingsrelations- og Opfølgningsservice, Guide til Anvendere |
ConsentVerificationService ws | Samtykke service, anvenderguide |
DGWS 1.0.1 | Den Gode Webservice 1.0.1, Medcom |
HSUID-header | Healthcare Service User Identification Header |
IHE XSD | ftp://ftp.ihe.net/TF_Implementation_Material/ITI/schema/ebRS/* |
IHE WSDL | ftp://ftp.ihe.net/TF_Implementation_Material/ITI/wsdl/XDS.b_DocumentRegistry.wsdl |
ITI TF-2 | IHE IT Infrastructure (ITI) Technical Framework, Volume 2 Revision 19.0, June 17, 2022 – Final Text https://profiles.ihe.net/ITI/TF/Volume2/index.html |
ITI TF-3 | IHE IT Infrastructure (ITI) Technical Framework, Volume 3 Revision 19.0, June 17, 2022 – Final Text https://profiles.ihe.net/ITI/TF/Volume3/index.html |
ITI-43++ SOAP 1.1 WSDL | WSDL for RetrieveDocumentSet (ITI-43) med SOAP 1.1-binding udvidet med HSUID-header og DGWS-header |
ITI-43++ SOAP 1.2 WSDL | WSDL for RetrieveDocumentSet (ITI-43) med SOAP 1.2-binding udvidet med HSUID-header og DGWS-header |
MinLogService ws | Min-log Service, anvenderguide |
MTOM SOAP 1.1 | SOAP 1.1 Binding for MTOM 1.0, (W3C Member Submission 05 April 2006) |
MTOM SOAP 1.2 | SOAP Message Transmission Optimization Mechanism, (W3C Recommendation 25 January 2005) |
DDS udvikling | |
DDS Test | DDS Testvejledning |
DDS Registry query snitflade | |
DDS Repository snitflade |
...
| Brugertypen: Borger | Verifikation | Mapning til MinSpærring ServiceActor | ||
| SecurityContext | Ticket | Audience | Matche audience som findes som konfiguration i DDS | audience |
| Validity | Er valid | |||
| Message | Verificeres ikke - må gerne være der | |||
| ActingUser | UserType | Skal være Citizen | Brugertypen: Borger | |
| IdentifierFormat | Skal være der og Skal være CPR | |||
| Identifier | Skal være sat | ActingUserCpr | ||
| GivenName | Verificeres ikke - må gerne være der | |||
| SurName | Verificeres ikke - må gerne være der | |||
| Credentials | Verificeres ikke - må gerne være der | |||
| PersistentUniqueKey | Verificeres ikke - må gerne være der | |||
| Credentials.PowerOfAttorneyPrivileges | Må ikke have nogen privileger | |||
| PrincipalUser | Må ikke være der | |||
| Organisation | Verificeres ikke - må gerne være der | |||
| Client | Name | Verificeres ikke - må gerne være der | systemName | |
...
| Brugertypen: Borger på vegne af | Verifikation | Mapning til MinSpærring ServiceActor | ||
| SecurityContext | Ticket | Audience | Matche audience som findes som konfiguration i DDS | audience |
| Validity | Er valid | |||
| Message | Verificeres ikke - må gerne være der | |||
| ActingUser | UserType | Skal være Citizen | Brugertypen: Borger | |
| IdentifierFormat | Skal være der og skal være CPR | |||
| Identifier | Skal være sat | ActingUserCpr | ||
| GivenName | Verificeres ikke - må gerne være der | |||
| SurName | Verificeres ikke - må gerne være der | |||
| Credentials | Verificeres ikke - må gerne være der | |||
| PersistentUniqueKey | Verificeres ikke - må gerne være der | |||
Fuldmagt: Credentials.PowerOfAttorneyPrivileges | Skal have mindst eet privilege | PowerOfAttorneyPrivileges Relation (proxyHolder, powerOfAttorneyPrivileges) | ||
Forældremyndighed: Relations ChildCustodyHolder | Skal være der | Relation (childCustodyHolder, subjectRelationProfile) | ||
| PrincipalUser | UserType | Valideres ikke | ||
| IdentifierFormat | Skal være der og skal være CPR | |||
| Identifier | Skal være sat og må ikke være det samme som for actinguser | |||
| GivenName | ||||
| SurName | ||||
| Credentials | ||||
Forældremyndighed: Relations Child | Skal være der | Relation (childCustodyHolder, subjectRelationProfile) | ||
Forældremyndighed: Age | Skal være under konfigureret (childCustody.age.limit) værdi. Default 15 | Relation (childCustodyHolder, subjectRelationProfile) | ||
| Organisation | Verificeres ikke - må gerne være der | |||
| Client | Name | Verificeres ikke - må gerne være der | systemName | |
...
- Sundhedsfaglig alm og på vegne af:
- organisationIdtype fra hsuid
- organisationId fra hsuid
- titel bliver sat til at være educationCode (anvendes i forbindelse med MinLog)
- Ikke-autoriseret bruger
- organisationIdtype fra hsuid
- organisationId fra hsuid
- hvis ingen national rolle sættes rollen "ingen_idkort_rolle"
- titel bliver sat til at være national rolle - ellers anvendes konfigurerbar default værdi (anvendes i forbindelse med MinLog)
- Borger
- titel bliver sat med konfigurerbar default værdi (anvendes i forbindelse med MinLog)
Brugertyperne bliver til sidst valideret for:
...
| HTML |
|---|
<iframe src="https://archi.nspop.dk/NSP/570928ca/views/f301b4a5-2e58-4c90-80d5-d5e3914448dd.html" name="test" height="640" width="800">You need a Frames Capable browser to view this content.</iframe> |
* Hver kasse i ovenstående diagram har en kort forklaring, som kommer frem i et nyt browservindue, når der klikkes på kassen.
Behandling af udtræk i DDS Repository
...
| HTML |
|---|
<iframe src="https://archi.nspop.dk/NSP/570928ca/views/e3bdeed3-50ba-460c-9c69-fb5062e908d1.html" name="test" height="330" width="800">You need a Frames Capable browser to view this content.</iframe> |
* Hver kasse i ovenstående diagram har en kort forklaring, som kommer frem i et nyt browservindue, når der klikkes på kassen.
I documentsource findes webservice-endpoint for kildesystemer, i form af mapning mellem angivet OID i udtræk, til aktuelt service endpoint for XDS dokument kilde. Kombinationen af OID og type skal være unik.
I documentregistry er der konfiguration af hvilke dokument-indeks som har Metadata for de registrede udstillede dokumenter.
I Whitelist config indeholdes de CVR-numre, hvis systemer er whitelisted som anvendersystemer, på test- og produktionsmiljø.
Designmålsætninger og -beslutninger
...
For at forbedre disse punkter er det blevet lavet muligt at konfiguerere hvilke dokumenttyper et givet registry er interessant for. Når en iti-18 søgning (Registry Stored Query) indeholder dokumenttype, kan man hermed vidersende kaldet til et udvalg af registries istedet for alle. For opsætning af dette, se driftvejldningen.
...
Validering af Actor Query Parametre
Nogle actors har ikke love til at lave søgninger (ITI-18) på alle værdier i query parametrene. Derfor kan man begrænse nogle actor/bruger typer på det parameter værdier de laver i søgningerne.
For nuværende drejer det sig om følgende brugertype:
- Borger på vegne af, med relationen fuldmagt, hvor fuldmagten kommer fra en fuldmagtstreng. Der skal være givet tilladelse til denne fuldmagtstreng for den anvendte typecode og formatcode værdi.
- Borger med forældremyndighed. Det skal være givet tilladelse til de anvendte typecode og formatcode værdier for denne brugertype.
For opsætning se driftvejledningen.
Arkitekturdesign
Dette afsnit beskriver statiske såvel som dynamiske aspekter af systemarkitekturen, herunder baggrunden for de enkelte designvalg.
...
Figur 5b Sekvensdiagram for DDSRetrieveDocumentLogic
Overblik over konfigurationsmuligheder for dokumentsøgning og hentning
Dette afsnit giver først, vha. en figur et helt overordnet overblik over, hvor der er muligheder for at påvirke det resultat, som en anvender fremsøger/henter af dokumenter. Efterfølgende er der i en tabel en mere detaljeret beskrivelse af disse.
Overordnet overblik
I DDS registry og DDS repository, er der flere steder, hvor det er muligt at konfigurere opsætning, som påvirker, hvordan og hvad en anvender får tilbage af fremsøgning (iti-18 registry) og hentning (iti-43 repository).
I den følgende figur er dette illustreret for DDS registry henholdsvis DDS repository for de 2 går søjler: ITI-18 og ITI-43. Detaljer omkring de forksellige konfigurationer kan findes i afsnittet efter.
Figuren viser 4 logiske knudepunkter i DDS servicen og hvilke konfiguration der anvendes hvor:
- Validering af forespørgsel: valideres på vej ind i servicen og anvender får en fejl uden der faktisk foretaget søgning.
- Opsæt af muligheder: fremfinding af det grundlag, som dokumenterne skal søges i
- Filtering af muligheder: filtrering/begrænsning af det datagrundlag, som søges i.
- Filtrering af dokumenter: når søgningen er foretaget, kan dokumenter, som ikke må returneres blive filtreret fra
| Gliffy Diagram | ||||||
|---|---|---|---|---|---|---|
|
Figur: konfigurationsoverblik
Detaljer omkring konfigurationerne
Nedenfor er hver konfiguration beskrevet. Tabellen indeholder følgende kolonner:
Analysen er dokumenteret vha. en tabel med følgende kolonner:
- Id: id og navn som konfigurationen er kendt under
- Formål: formålet med konfigurationen.
- Brugertype: hvilke brugertyper gælder konfigurationen for. Der anvendes brugertyperne fra sourcekoden, som kan mappes som følger
- Citizen - Borger
- CitizenOnBehalfOf - BorgerPåVegneAf med undertyperne
- proxyHolder - fuldmagtshaver
- childCustodyHolder - forældremyndighedshaver
- HealthCareProfessionalWithAuthorization - Sundshedsfaglig med authorisation
- HealthCareProfessionalWithoutAuthorization - Sundshedsfaglig uden authorisation
- HealthCareProfessionalOnBehalfOf - Sundhedsfaglig på vegne af
- Aktivering: hvor "møder" anvenderen begrænsningen. Mulighederne er som angivet i ovenstående figur.
- Kald: Er der tale om fremsøgning i registry (iti18) eller hentning i repository (iti43)
- Muligheder: hvilke konfigurationsmuligheder er der, og hvor er det defineret.
- Udtryk: hvordan kommer begrænsningen til udtryk? Fejlbesked, filtrering etc
- SoapFault: bruger får en "hård" fejl (intet ihe svar og dermed ingen dokumenter)
- Fejl: brugeren får en fejl i ihe svaret og 0 eller flere dokumenter
- Advarsel: brugeren får en eller flere advarsler i ihe svaret og 0 eller flere dokumenter
- Alt ok: brugeren får 0 eller flere dokumenter
- Faktisk konfiguration: link til hvordan drift faktisk er sat op
| Id | Formål | Brugertype | Aktivering | Kald | Muligheder | Udtryk | Faktisk konfiguration |
|---|---|---|---|---|---|---|---|
| DDK10 Aktør modellering og andet "teknisk" request validering: | |||||||
| Kontrol af brugertyper og deres indhold. | HealthCareProfessionalOnBehalfOf HealthCareProfessionalWithAuthorization HealthCareProfessionalWithoutAuthorization Citizen CitizenOnBehalfOf variant
| Validering af forespørgsel | ITI18 ITI43 | Fast defineret i Aktørmodelleringen (ServiceActorProvider) i servicen | SoapFault med fejlbeskeden
| ||
| DDK11 Aktør søge parameter validering: | |||||||
| At begrænse specifikke brugertyper fra specifikke søge værdier. | CitizenOnBehalfOf variant
| Validering af forespørgsel | ITI18 | I klassen DDSRegistryQueryImpl kaldes DDSActorQueryParameterValidator der undersøger om en given brugertype, anvender lovlige værdier i søgeparametrene. Ved opslag i db tabel actor_query_parameter_configuration:
For Fuldmagt gælder yderligere:
| SoapFault, med en af følgende fejlbeskeder:
| ||
| DDK12 Frabedelser - userCheck: | |||||||
| Kontrol af dataadgang | HealthCareProfessionalOnBehalfOf HealthCareProfessionalWithAuthorization HealthCareProfessionalWithoutAuthorization | Validering af forespørgsel | ITI18 ITI43 | I klasserne DDSRegistryQueryLogic og DDSRetrieveDocumentLogic laves der kald til samtykke servicen, hvis der ikke er anvendt værdispring. | Fejl i almindeligt response med fejlbeskeden:
| ||
| DDK20 Backend registries: | |||||||
| Opsæt af registries | na | Opsæt af muligheder | ITI18 | I klassen DocumentRegistryFinderImpl findes de registries, det er muligt at lave søgninger i. Dette gøres ved at hente de registries i db tabel documentregistry hvor documentregistryactive er true | na | ||
| DDK21 Backend repositories: | |||||||
| Opsæt af repositories | na | Opsæt af muligheder | ITI43 | Fremfinder alle repositories i db tabeldocumentsource som er relevante for de dokumenter, som ønskes hentet. | na | ||
| DDK30 Forespørge dokumenttype relevante registries: | |||||||
| Begrænsning i opslag pga performance og fejlmuligheder | na | Filtrering af muligheder | ITI18 | I klassen DocumentRegistryFinderImpl kaldes DocumentTypeConfiguration, som ved opslag i db tabel documenttype_configuration tjekkes hvert registry om relevant:
| Hvis filtrering giver en tom liste af registries så SoapFault med fejlbeskeden
| ||
| DDK31 Forespørge querytype relevante registries: | |||||||
| Begrænsning i opslag pga. performance og fejlmuligheder | na | Filtrering af muligheder | ITI18 | I klassen DocumentRegistryFinderImpl kaldes RegistryFeatureConfiguration, som ved opslag i db tabel feature_configuration tjekkes hvert registry om relevant:
| Hvis et registry fravælges så en advarsel i almindeligt response med advarselsteksten:
Hvis filtrering giver en tom liste af registries så SoapFault med fejlbeskeden
| ||
| DDK40 Frabedelser - datacheck: | |||||||
| Kontrol af dataadgang | HealthCareProfessionalOnBehalfOf HealthCareProfessionalWithAuthorization HealthCareProfessionalWithoutAuthorization | Filtrering af dokumenter | ITI18 | I klassen DDSRegistryQueryLogic kaldes ConsentFilterImpl som laver kald til samtykke servicen, hvis der ikke er anvendt værdispring. | Advarsel i almindeligt response med advarselstekten:
| ||
| Filtrering i dokument | ITI43 | I klassen DDSRetrieveDocumentLogic laver kald til samtykke servicen, hvis der ikke er anvendt værdispring. | Fejl i almindeligt response med fejlbeskeden:
| ||||
| DDK41 Frabedelser - datacheck udvidet: | |||||||
| Kontrol af dataadgang | HealthCareProfessionalOnBehalfOf HealthCareProfessionalWithAuthorization HealthCareProfessionalWithoutAuthorization | Filtrering af dokumenter | ITI18 | Klassen DDSRegistryQueryLogic kalder PrecautionaryFilter, hvis der bare er een frabedelse. Her spærres for alle dokumenter med typecodes konfigureret i filen precautionary_filter.txt | Advarsel i almindeligt response med advarselsteksten:
| ||
| DDK42 Nationale rolle check: | |||||||
| Kontrol af dataadgang | HealthCareProfessionalWithoutAuthorization | Filtrering af dokumenter | ITI18 | Klassen DDSRegistryQueryLogic kalder TrustedRoleFilter, som tjekker brugerens rolle mod filen trusted_roles.txt Der gives kun adgang til de typecodes er angivet for rolle Er typecode "*" tillades alle typecodes | Fejl i almindeligt response med fejlbeskeden:
| ||
| DDK43 Whitelist af cvr/system: | |||||||
| Kontrol af dataadgang | HealthCareProfessionalOnBehalfOf HealthCareProfessionalWithAuthorization HealthCareProfessionalWithoutAuthorization | Filtrering af dokumenter | ITI18 | Klassen DDSRegistryQueryLogic kalder WhitelistBasedOnMetadataFilter, som hvis whitelisting er slået til (whitelisted.document.metadata.active) og der ikke er lavet værdispring udføre følgende logik: Ved opslag i db tabellerne, whitelist_config_documentmetadata, whitelist_config_documentmetadata_typecode, whitelist_config_documentmetadata_eventcode og whitelist_config_documentmetadata_practicesettingcode tjekkes de fremfundne dokumenters metadata for, om de er whitelistet med
*cvr: securityContext.getOrganisation().get().getIdentifier(), hvis formatet er CVR 2025-07-02: ikke merget ind på main branch i skrivende stund | Fejl i almindelig response med fejlbeskeden:
| ||
Generel struktur af invoker
...
For en beskrivelse af byggeprocessen og eksterne/interne afhængigheder for servicen, se [DDS udvikling].
Unit test og Integrationstests
...