Page History
...
Sundhedsfaglig >> Brugertypen Sundhedsfaglig på vegne af | Verifikation | Mapning til DDS ServiceActor | ||
HSUID Header | userType | Skal være der og være HEALTHCAREPROFESSIONAL | Brugertypen: Sundhedsfaglig på vegne af | |
actingUserCivilRegistrationNumber | Skal være sat | ActingUserCpr | ||
responsibleUserRegistrationNumber | Skal være sat og skal være anderledes end actingUserCivilRegistrationNumber | |||
orgUsingIDType | Verificeres ikke - må gerne være der | |||
orgUsingIDName | Verificeres ikke - må gerne være der | |||
| OrganizationCvrId fra actor | ||||
systemName | Verificeres ikke - må gerne være der systemName fra actor mappes | systemName fra actor | ||
systemVersion | Verificeres ikke - må gerne være der | |||
userAuthorizationCode | Skal være sat og valideres med responsible user | onbehalfOf.AuthorizationCode | ||
| onbehalfOf.EducationCode fra autreg db tabel | ||||
EducationCode fra actor AuthorizationCode (EducationCode sættes i forbindelse med valideringen) | ||||
Ikke-autoriseret bruger >> Brugertypen Sundhedsfaglig på vegne af | Verifikation | Mapning til DDS ServiceActor | ||
HSUID Header | userType | Skal være der og være HEALTHCAREPROFESSIONAL | Brugertypen: Sundhedsfaglig på vegne af | |
actingUserCivilRegistrationNumber | Skal være sat | ActingUserCpr | ||
responsibleUserRegistrationNumber | Skal være sat og skal være anderledes end actingUserCivilRegistrationNumber | |||
orgUsingIDType | Verificeres ikke - må gerne være der | |||
orgUsingIDName | Verificeres ikke - må gerne være der | |||
| OrganizationCvrId fra actor | ||||
systemName | Verificeres ikke - må gerne være der systemName fra actor mappes | systemName fra actor | ||
systemVersion | Verificeres ikke - må gerne være der | |||
userAuthorizationCode | Skal være sat og valideres med responsible user | onbehalfOf.AuthorizationCode | ||
onbehalfOf.EducationCode fra autreg db tabel | ||||
NationalRole fra actor AuthorizationCode (EducationCode sættes i forbindelse med valideringen) | ||||
Borger >> Brugertypen Borger på vegne af | Verifikation | Mapning til DDS ServiceActor | ||
cprFromPayload | userType | Er givet fra securityContext pga. rollen borger | Brugertypen: Borger på vegne af | |
actingUser fra securityContext. | ActingUserCpr | |||
cprFromPayload skal være sat og være anderledes end actingUser. | ResponsibleUserCpr (fra payload) | |||
systemName | systemName fra actor mappes | systemName fra actor | ||
userAuthorizationCode | Verificeres ikke - må gerne være der | |||
Forældremyndighed: | vha. actinguser fra security context og cprFromPayload findes en relation | Relation (childCustodyHolder, payloadCprValue) | ||
...
De forskellige brugertyper bliver beriget med følgende:
- 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)værd
- Sundhedsfaglig på vegne af:
- organisationIdtype fra hsuid
- organisationId fra hsuid
- titel bliver sat til at være educationCode eller national rolle afhængig af den brugertype man arbejder på vegne af har
- onbehalfof titel bliver sat til educationCode
- Borger
- titel bliver sat med konfigurerbar default værdi (anvendes i forbindelse med MinLog)
Titel anvendes i forbindelse med MinLog, og bliver i forbindelse med berigelsen konverteret til en mere sigende tekst end educationCode/national rolle.
Brugertyperne bliver til Brugertyperne bliver til sidst valideret for:
- Alle roller, hvis hsuid header medsendt:
- hsuid rollen skal matche den på security context
- hsuid acting user cpr skal matche den aktøren
- Borger på vegne af
- Der skal være en relation
- Sundhedsfaglig og Sundhedsfaglig på vegne af
- hsuid authorisationkode skal matche den på aktøren
- hsuid OrganizationId valideres mod Sores, hvis organizationIdSource er SOR
- Ikke-autoriseret bruger
- hsuid OrganizationId valideres mod Sores, hvis organizationIdSource er SOR
- Den endelige brugertype må ikke være af typen System
...
ITI-18: foretag auditlogning af patient-id, bruger-id, på-vegne-af-id samt hsuid-header og for hver DocumentEntry (DE) i returneret svar (der kan være frafiltreret metadata pga. samtykker): DE.uniqueId, DE.repositoryUniqueId, DE.homeCommunityId, DE.typeCode.
ITI-43: foretag auditlogning af patient-id, bruger-id, på-vegne-af-id samt huisd-header og for hver DocumentResponse (DR) i returneret svar (der kan være frafiltreret metadata pga. samtykker): DR.uniqueId, DR.repositoryUniqueId, DR.homeCommunityId.
...
- Validering af forespørgsel: valideres på vej ind i servicen og anvender får en fejl uden der faktisk foretaget søgning. Undtagelse: frabedelsescheck effektueres først efter fremsø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
...
- 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
| Se DDS - Brugerhistorier | |
| 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:
| Se DDS - Brugerhistorier | |
| 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:
| ||
| Afhængig af den enkelte borgeres person (who) frabedelser. Disse kan ses på Sundhed.dk for den pågælende borger, i NADM eller via DRG (kun testmijøer) | |||||||
| 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 | Se Dokumenttyper interne og eksterne | |
| DDK21 Backend repositories: | |||||||
| Opsæt af repositories | na | Opsæt af muligheder | ITI43 | Fremfinder alle repositories i db | |||
| tabel documentsource som er relevante for de dokumenter, som ønskes hentet. | na | Se Dokumenttyper interne og eksterne | |||||
| DDK30 Forespørge dokumenttype relevante registries: | |||||||
| Begrænsning i opslag pga performance og fejlmuligheder | na | Filtrering af muligheder | ITI18 | I klassen DocumentRegistryFinderImpl hentes registries fra db documentregistry og DocumentTypeConfiguration kaldes | |||
, som ved opslag i db tabel documenttype_configuration |
tjekker hvert registry om relevant:
|
| Hvis filtrering giver en tom liste af registries så SoapFault med fejlbeskeden
| Se Dokumenttyper interne og eksterne | |||||
| DDK31 Forespørge querytype relevante registries: | |||||||
| Begrænsning | |||||||
| forskellige måder at lave opslag pga. performance og fejlmuligheder. | na | Filtrering af muligheder | ITI18 | I klassen DocumentRegistryFinderImpl hentes registries fra db documentregistry og RegistryFeatureConfiguration kaldes |
, som ved opslag i db tabel feature_configuration |
tjekker hvert registry om relevant:
|
Hvis et registry fravælges så en advarsel i almindeligt response med advarselsteksten:
Tabellen fortæller om en eller flere af nedenstående queries understøttes: FIND_DOCUMENTS_QRY, GET_DOCUMENTS_QRY, FIND_DOCUMENTS_BY_REFERENCE_QRY Der henvises til https://profiles.ihe.net/ITI/TF/Volume2/ITI-18.html#3.18 for en beskrivelse af de forskellige queries | 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
|
Afhænger af hvor registry befinder sig. Som udgangspunkt understøtter alle NSP registries alle de tre nævnte queries, NSP registries er dem som er markeret med NXRG i listen: Dokumenttyper interne og eksterne Øvrige registries understøtter kun: FIND_DOCUMENTS_QRY | |||||||
| DDK42 Nationale rolle check: | |||||||
| Kontrol af dataadgang | |||||||
HealthCareProfessionalOnBehalfOf
HealthCareProfessionalWithAuthorization| 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:
|
|
|
Fejl i almindeligt response med fejlbeskeden:
- urn:dk:nsi:Consent Filter Applied
- Dokumentindhold der er frabedelser på er filtreret fra
| Se DDS - Brugerhistorier | |||||||
| DDK43 Whitelist af cvr/system: | |||||||
| Kontrol af dataadgang | HealthCareProfessionalOnBehalfOf HealthCareProfessionalWithAuthorization | ||||||
HealthCareProfessionalOnBehalfOf
HealthCareProfessionalWithAuthorizationHealthCareProfessionalWithoutAuthorization | Filtrering af dokumenter | ITI18 | Klassen DDSRegistryQueryLogic |
kalder WhitelistBasedOnMetadataFilter, som hvis |
Advarsel i almindeligt response med advarselsteksten:
- urn:dk:nsi:Consent Filter Applied
- Dokumenter er filtreret fra
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
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:
|
|
| Endnu ikke defineret | |||||||
| 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 |
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 fra request* skal matche
- systemnavn fra request* skal matche
- typecode fra request skal matche, er udfyldt i db
- eventcode fra request skal matche hvis udfyldt i db
- practicesettingcode fra request skal matche hvis udfyldt i db
*cvr: securityContext.getOrganisation().get().getIdentifier(), hvis formatet er CVR
*systemnavn: securityContext.getClient().get().getName().get()
2025-07-02: ikke merget ind på main branch i skrivende stund
| anvendt værdispring. | Advarsel i almindeligt response med advarselstekten:
| Afhængig af den enkelte borgeres data (what) frabedelser. Disse kan ses på Sundhed.dk for den pågælende borger, i NADM eller via DRG (kun testmijøer) | |||||
| 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:
| Afhængig af den enkelte borgeres data (what) frabedelser. Disse kan ses på Sundhed.dk for den pågælende borger, i NADM eller via DRG (kun testmijøer) | |||
| 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 | ||
:
|
| Afventer afklaring | ||||||
Generel struktur af invoker
...