openapi: 3.0.1
info:
title: I_Constraint_Management_Insurant
description: |
This interface provides access to the service **Constraint Management** of a personal health
record for insurants and representatives.
**General conditions**:
For all operations if applicable:
- a section _Client_ in operation descriptions covers recommendations (informative) for clients.
- a section _Provider_ in operation descriptions covers requirements for the server side.
- error responses may be extended by helpful information about the error condition in _errorDetail_
**Prerequisites**:
The Health Record System shall provide
- name
- role ((profession-)oid)
- identifier (telematik-id or kvnr)
- indication of a valid entitlement
- device registration status
of the current user (requestor) for evaluation in operations.
Operations mandating a valid entitlement implicitly mandate use of a VAU-channel
and a valid ID-Token. If one of these conditions is not met, then the response
of the (aborted) operation shall always be '403': 'notEntitled'.
**Retry interval**:
The following retry intervals are suggested in case of an error response:
- '409' Conflict (statusMismatch).
- approx. 24 hours
- '500' Internal Error
- approx. 10 minutes
**User Agent**:
The user agent information (x-useragent) is part of any request, even if
not essentially required for the operation (e.g. raw-data collection), and
may be considered for provider internal use.
**Request ID**:
Clients may provide a unique request identifier (X-Request-ID) with each request.
Given such a request identifier, providers must
- echo the exact same X-Request-ID value in the response header.
- log the X-Request-ID in all operational logs related to that request.
**Log-Entries**
Whenever a _Postcondition_ mandates a log-entry, this entry shall contain
data as defined in IG-EPA27775LWU*.
Log entry storage requires an entitled user for the related operation to
ensure access to secure data storage. Therefore, log entry creation shall
always be skipped and no log entry shall be stored if this precondition is
not met.
contact:
name: gematik GmbH
email: epa@gematik.de
url: 'http://www.gematik.de'
license:
name: Apache 2.0
url: 'https://www.apache.org/licenses/LICENSE-2.0'
version: 1.6.1
# version history:
# ----------------
# version 1.6.1
# - fixed missing paramters in batch operation batchSetDenyPolicyAssignment
# version 1.6.0
# - enable batch operations for assignments
# - some editorial corrections
# - added missing X-Request-ID to all responses
# version 1.5.1
# - renamed all occurrences of state MAINTENANCE to INACCESSIBLE
# version 1.5.0
# - constraints of category "technical" or of documents of category "technical" will be rejected
# version 1.4.0
# - added status- and error code for state MAINTENANCE
# version 1.3.1
# - clarification about condition for 404 noHealthRecord and 409 statusMismatch
# version 1.3.0
# - optional X-Request-ID in all requests and responses
# version 1.2.3
# - additional error condition for missing device registration
# version 1.2.2
# - clarification regarding required entitlement for logging
# - added error condition for not authenticated user sessions
# version 1.2.1
# - editorial correction of rootDocumentId explanation and format
# version 1.2.0
# - removed paging from getDenyPolicyAssignments
# - updated list of relevant oids (editorial)
# version 1.1.4
# - added childsrecord category
# version 1.1.3
# - bugfix UserAgentType
# version 1.1.2
# - changed http-statuscode in description of operation setDenyPolicyAssignment to 201
# version 1.1.1
# - bugfix: removed additionalProperties from schemas
# - added category 'transcripts' and 'diga' to category enum
# version 1.1.0
# - removed user-specific deny policy
# - corrections for categoryId in enum and description
# - corrections in examples
# version 1.0.0
# - first release version
# version 0.0.1
# - initial version for review
servers:
- url: https://epa-hst1.prod.epa4all.de
tags:
- name: ConstraintManagement
description: |
Constraint Management allow to configure the general deny policiy of a health record by
setting or deleting constraints (assignments of the deny policy).
An assignment may be related to a single document, a folder or a category. Any document affected
by an assigment will be hidden to any user of the deny policy affected user roles.
The assignments of the deny policies hide documents for the XDS Document Service only. Assignments
related to folders or categories hide all contained documents (not the folder / category)
**Allowed user groups/ roles**:
The general deny policy affects the following user groups (roles) for each assignment.
The following list of oids is for information only and may be incomplete, the normative
requirement is defined in A_24306-*
- oid_praxis_arzt
- oid_krankenhaus
- oid_institution-vorsorge-reha
- oid_zahnarztpraxis
- oid_öffentliche_apotheke
- oid_praxis_psychotherapeut
- oid_institution-pflege
- oid_institution-geburtshilfe
- oid_praxis-physiotherapeut
- oid_institution-oegd
- oid_institution-arbeitsmedizin
- oid_diga
- oid_praxis-ergotherapeut
- oid_praxis-logopaede
- oid_praxis-podologe
- oid_praxis-ernaehrungstherapeut
**Restricted categories and folders**:
Some categories/folders of a health record may contain MIOs or structured documents represented by more
than one XDS document (document collections, e.g. category _vaccination_). Hiding single documents
of such MIOs or structured documents would take the contained information out of context. This should
be avoided, thus hiding single documents is not supported in this case.
The following list shows categories with this restriction and is for information only and
may be incomplete. The normative requirement to avoid hiding of single documents applies
for any folder with type = "uniform" or "mixed" (see
src/implementation_guides on GitHub/gematik/api-epa).
- dental
- child
- pregnancy_childbirth
- vaccination
**Exceptions**
The category "emp" can not be hidden by assignments of the general deny policy.
The participation in the electronic medical process is managed by consent decisions only.
This applies also for single documents of this category.
**Remarks**:
- Assignments for the General Deny Policy may also be applied internally
by the XDS document service after evaluation of confidentialityCode metadata
in a document provide operation.
- Assignments of the policies are deleted internally in case a referenced _document_
or folder is deleted from the document management.
paths:
/epa/xds-document/api/v1/constraints:
parameters:
- $ref: '#/components/parameters/insurantid'
- $ref: '#/components/parameters/useragent'
- $ref: '#/components/parameters/requestid'
get:
tags:
- ConstraintManagement
operationId: getDenyPolicyAssignments
summary: (getDenyPolicyAssignments) get a list of actual set deny policy assignments
description: |
Get a list of actual set assignments of the general deny policy.
This operation is limited to entitled users of role oid_versicherter.
**Client**:
no recommendations.
**Provider**:
The returned list shall contain a list of all actual set assignments of the general deny policy.
| Conditions | Status code | Error code | Remarks |
|------------|-------------|------------|---------|
| Successful operation | 200 |||
| Request does not match schema | 400 | malformedRequest ||
| Requestor not authorized | 403 | invalAuth | no user session with valid ID-Token available |
| Device registration does not exist | 403 | unregisteredDevice ||
| Requestor has no valid entitlement | 403 | notEntitled ||
| Requestor role is not _oid_versicherter_ | 403 | invalidOid ||
| Health record does not exist (UNKNOWN) or is in state INITIALIZED | 404 | noHealthRecord | |
| Health record is in state SUSPENDED or INACCESSIBLE| 409 | statusMismatch | (see 'Retry interval') |
| Any other error | 500 | internalError | (see 'Retry interval') |
| Postconditions | Remarks |
|---------------------------------------|---------|
| none ||
responses:
'200':
description: Ok. Returns a list of policy assignments
headers:
X-Request-ID:
$ref: '#/components/headers/requestid'
content:
application/json:
schema:
type: object
properties:
data:
type: array
items:
allOf:
- $ref: '#/components/schemas/DenyPolicyAssignmentResponseType'
examples:
getAll:
$ref: '#/components/examples/Get_AllPolicyAssignments'
'400':
$ref: '#/components/responses/Error400BadRequest'
'403':
$ref: '#/components/responses/Error403Forbidden'
'404':
$ref: '#/components/responses/Error404NotFound'
'409':
$ref: '#/components/responses/Error409Conflict'
'500':
$ref: '#/components/responses/Error500InternalError'
post:
tags:
- ConstraintManagement
operationId: setDenyPolicyAssignment
summary: (setDenyPolicyAssignment) set a new deny policy assignment
description: |
Set a new assignment for the general deny policy.
This operation is limited to entitled users of role oid_versicherter.
**Client**:
A client shall set assignments for existing resources only.
A client shall set assignments _folder_ for dynamic folders only (static
folders are assigned via _category_ only).
A client shall not set assignments _document_ for a restricted category/folder.
A client shall set assignments for content of the XDS document service only.
A client shall not set assignments _document_ for static folder "technical".
**Provider**:
A new assignment shall use:
- a _category_ entry addressed by a technical identifier string (e.g. 'vaccination'), or
- a _folder_ entry addressed by folder.EntryUUID (urn-encoded uuid), or
- a _document_ entry addressed by an identifier 'uniqueID^^^^urn:gematik:iti:xds:2023:rootDocumentUniqueId' as
used in documentEntry.referenceIdList of the document.
The category "emp" shall not be hidden, neither shall single documents of this category be hidden.
The static folder ('category') "technical" shall not be hidden, neither shall single documents of this folder be hidden.
Assignment requests for these categories/folders or documents of such category/folder shall be rejected.
Each new valid assigment shall be extended by a uuid (assignmentId) for identification
by the server. This uuid shall be unique in context of deny policies for the health record.
| Conditions | Status code | Error code | Remarks |
|------------|-------------|------------|---------|
| Successful operation | 201 |||
| Request does not match schema | 400 | malformedRequest ||
| Requestor not authorized | 403 | invalAuth | no user session with valid ID-Token available |
| Requestor has no valid entitlement | 403 | notEntitled ||
| Requestor role is not _oid_versicherter_ | 403 | invalidOid ||
| Device registration does not exist | 403 | unregisteredDevice ||
| The addressed _category_ is "emp" or "technical"| 403 | invalidResource ||
| The addressed _document_ is part of category "emp" or "technical"| 403 | invalidResource ||
| Health record does not exist (UNKNOWN) or is in state INITIALIZED | 404 | noHealthRecord | |
| The addressed _document_ or _folder_ does not exist | 404 | noResource ||
| Health record is in state SUSPENDED or INACCESSIBLE| 409 | statusMismatch | (see 'Retry interval') |
| The addressed _folder_ is not of type _dynamic_ | 409 | requestMismatch ||
| The addressed _document_ is part of a restricted category or folder | 409 | requestMismatch ||
| The addressed _category_ is not part of the XDS Document Service | 409 | requestMismatch ||
| The assignment does yet exist | 409 | requestMismatch | avoid duplicates ||
| Any other error | 500 | internalError | (see 'Retry interval') |
| Postconditions | Remarks |
|---------------------------------------|---------|
| The policy assignment is extended with the assignmentId and stored in SecureDataStorage ||
| A log-entry for the operation exists | all operation results |
| The raw-data of the operation is collected and associated to _useragent_ | for any operation result according to gemSpec_PerfUC_B4.x |
requestBody:
required: true
content:
application/json:
schema:
anyOf:
- $ref: '#/components/schemas/DenyPolicyAssignmentType'
examples:
GDPolicyAssignmentForCategories:
$ref: '#/components/examples/Add_category_to_general_deny_policy'
GDPolicyAssignmentForDocuments:
$ref: '#/components/examples/Add_document_to_general_deny_policy'
GDPolicyAssignmentForFolders:
$ref: '#/components/examples/Add_folder_to_general_deny_policy'
responses:
'201':
description: Created
headers:
X-Request-ID:
$ref: '#/components/headers/requestid'
content:
application/json:
schema:
anyOf:
- $ref: '#/components/schemas/DenyPolicyAssignmentResponseType'
examples:
GDPolicyAssignmentForCategories:
$ref: '#/components/examples/Response_category_to_general_deny_policy'
GDPolicyAssignmentForDocuments:
$ref: '#/components/examples/Response_document_to_general_deny_policy'
GDPolicyAssignmentForFolders:
$ref: '#/components/examples/Response_folder_to_general_deny_policy'
'400':
$ref: '#/components/responses/Error400BadRequest'
'403':
$ref: '#/components/responses/Error403Forbidden'
'404':
$ref: '#/components/responses/Error404NotFound'
'409':
$ref: '#/components/responses/Error409Conflict'
'500':
$ref: '#/components/responses/Error500InternalError'
/epa/xds-document/api/v1/constraints/{assignmentId}:
parameters:
- $ref: '#/components/parameters/insurantid'
- $ref: '#/components/parameters/assignmentId'
- $ref: '#/components/parameters/useragent'
- $ref: '#/components/parameters/requestid'
delete:
tags:
- ConstraintManagement
operationId: deleteDenyPolicyAssignment
summary: (deleteDenyPolicyAssignment) delete a specific deny policy assignment
description: |
Delete one existing assignment of the general deny policy.
This operation is limited to entitled users of role oid_versicherter.
**Client**:
no recommendations.
**Provider**:
The addressed assignment shall be removed from the general deny policy.
| Conditions | Status code | Error code | Remarks |
|------------|-------------|------------|---------|
| Successful operation | 204 |||
| Request does not match schema | 400 | malformedRequest ||
| Requestor not authorized | 403 | invalAuth | no user session with valid ID-Token available |
| Requestor has no valid entitlement | 403 | notEntitled ||
| Device registration does not exist | 403 | unregisteredDevice ||
| Requestor role is not _oid_versicherter_ | 403 | invalidOid ||
| Health record does not exist (UNKNOWN) or is in state INITIALIZED | 404 | noHealthRecord | |
| Assignment (_assignmentid_) does not exist | 404 | noResource ||
| Health record is in state SUSPENDED or INACCESSIBLE| 409 | statusMismatch | (see 'Retry interval') |
| Any other error | 500 | internalError | (see 'Retry interval') |
| Postconditions | Remarks |
|---------------------------------------|---------|
| The addressed assignment is removed from the general deny policy ||
| A log-entry for the operation exists | all operation results |
responses:
'204':
description: OK. Assignment deleted
headers:
X-Request-ID:
$ref: '#/components/headers/requestid'
'400':
$ref: '#/components/responses/Error400BadRequest'
'403':
$ref: '#/components/responses/Error403Forbidden'
'404':
$ref: '#/components/responses/Error404NotFound'
'409':
$ref: '#/components/responses/Error409Conflict'
'500':
$ref: '#/components/responses/Error500InternalError'
/epa/xds-document/api/v1/constraints/batch-set:
parameters:
- $ref: '#/components/parameters/insurantid'
- $ref: '#/components/parameters/useragent'
- $ref: '#/components/parameters/requestid'
post:
tags:
- ConstraintManagement
operationId: batchSetDenyPolicyAssignment
summary: (batchSetDenyPolicyAssignment) set one or more new deny policy assignment
description: |
Set one or more new assignment for the general deny policy.
This operation is limited to entitled users of role oid_versicherter.
**Client**:
A client shall set assignments for existing resources only.
A client shall set assignments _folder_ for dynamic folders only (static
folders are assigned via _category_ only).
A client shall not set assignments _document_ for a restricted category/folder.
A client shall set assignments for content of the XDS document service only.
A client shall not set assignments _document_ for staticfolder "technical".
A client may set assignments for several resources in a single request, e.g. to add
a document and its appendencies or to add a list of categories.
**Provider**:
Each new assignment shall be:
- a _category_ entry addressed by a technical identifier string (e.g. 'vaccination'), or
- a _folder_ entry addressed by folder.EntryUUID (urn-encoded uuid), or
- a _document_ entry addressed by an identifier 'uniqueID^^^^urn:gematik:iti:xds:2023:rootDocumentUniqueId' as
used in documentEntry.referenceIdList of the document.
The category "emp" shall not be hidden, neither shall single documents of this category be hidden.
The static folder (or category) "technical" shall not be hidden, neither shall single documents of this folder be hidden.
Assignment requests for these categories/folders or documents of such category/folder shall be rejected.
Each new valid assigment shall be extended by a uuid (assignmentId) for identification
by the server. This uuid shall be unique in context of deny policies for the health record.
A request may contain several assignments of the same or of different types at a time. A successful operation
result requires all contained assignments to be valid. At least one invalid assignment provided leads to abortion
of the operation with no assignment provided applied to the general deny policy at all.
The operation response shall be:
- status code '201' and a list of all requested assignments in case of success
- status code '422' and a list of the failed requested assignments including an error code (not listed
but requested assignments are rated as valid but are not added to the general deny policy).
- a status code other than '201' or '422' and an indicating error code if the whole request is rejected in general
| Conditions for http status code| Status code | Error code | Remarks |
|--------------------------------|-------------|------------|---------|
| Successful operation | 201 |||
| Request does not match schema | 400 | malformedRequest ||
| Requestor not authorized | 403 | invalAuth | no user session with valid ID-Token available |
| Requestor has no valid entitlement | 403 | notEntitled ||
| Requestor role is not _oid_versicherter_ | 403 | invalidOid ||
| Device registration does not exist | 403 | unregisteredDevice ||
| Health record does not exist (UNKNOWN) or is in state INITIALIZED | 404 | noHealthRecord | |
| Health record is in state SUSPENDED or INACCESSIBLE| 409 | statusMismatch | (see 'Retry interval') |
| Unsuccessful operation with partial errors| 422 || see _Conditions for response_ table below |
| Any other error | 500 | internalError | (see 'Retry interval') |
| Conditions for response error code | Error code | Remarks |
|------------------------------------|------------|---------|
| An addressed _document_ is part of category "emp" or "technical"| invalidResource ||
| An addressed _document_, _category_ or _folder_ does not exist | noResource | for _category_: any category not enumerated |
| An addressed _folder_ is not of type _dynamic_ | requestMismatch ||
| An addressed _document_ is part of a restricted category or folder | requestMismatch ||
| Postconditions | Remarks |
|---------------------------------------|---------|
| The policy assignments are extended with an assignmentId and stored in SecureDataStorage ||
| A log-entry for the operation exists | all operation results |
| The raw-data of the operation is collected and associated to _useragent_ | for any operation result according to gemSpec_Perf UC_B4.x |
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/DenyPolicyAssignmentType'
minItems: 1
maxItems: 25
examples:
AssignmentsOk1:
$ref: '#/components/examples/Add_three_documents'
AssignmentsOk2:
$ref: '#/components/examples/Add_two_categories_and_one_folder'
AssignmentsFail1:
$ref: '#/components/examples/Failed_add_three_documents'
AssignmentsFail2:
$ref: '#/components/examples/Failed_add_two_categories_with_unsupported_id_and_document_in_technical_folder'
responses:
'201':
description: Created
headers:
X-Request-ID:
$ref: '#/components/headers/requestid'
content:
application/json:
schema:
type: object
properties:
data:
type: array
items:
allOf:
- $ref: '#/components/schemas/DenyPolicyAssignmentResponseType'
minItems: 1
examples:
ResponseAssignmentsOk1:
$ref: '#/components/examples/Response_add_three_documents'
ResponseAssignmentsOk2:
$ref: '#/components/examples/Response_add_two_categories_and_one_folder'
'400':
$ref: '#/components/responses/Error400BadRequest'
'403':
$ref: '#/components/responses/Error403Forbidden'
'404':
$ref: '#/components/responses/Error404NotFound'
'409':
$ref: '#/components/responses/Error409Conflict'
'422':
description: Unprocessable Entity with error details about the failed requested assignments
headers:
X-Request-ID:
$ref: '#/components/headers/requestid'
content:
application/json:
schema:
type: object
properties:
data:
type: object
properties:
data:
type: array
items:
allOf:
- $ref: '#/components/schemas/DenyPolicyAssignmentResponseTypeFail'
minItems: 1
examples:
ResponseAssignmentsFail1:
$ref: '#/components/examples/Failed_response_add_three_documents'
ResponseAssignmentsFail2:
$ref: '#/components/examples/Failed_response_add_two_categories_with_unsupported_id_and_document_in_technical_folder'
'500':
$ref: '#/components/responses/Error500InternalError'
/epa/xds-document/api/v1/constraints/batch-delete:
parameters:
- $ref: '#/components/parameters/insurantid'
- $ref: '#/components/parameters/useragent'
- $ref: '#/components/parameters/requestid'
post:
tags:
- ConstraintManagement
operationId: batchDeleteDenyPolicyAssignment
summary: (batchDeleteDenyPolicyAssignment) delete one or more deny policy assignment
description: |
Delete one or more existing assignment of the general deny policy.
This operation is limited to entitled users of role oid_versicherter.
**Client**:
no recommendations.
**Provider**:
All addressed assignments shall be removed from the general deny policy.
A successful operation result requires all provided assignments to be valid (i.e. assignmentid exists).
At least one invalid assignment provided leads to abortion of the operation with non of the assignments deleted.
The operation response is:
- Status code '204' if all addressed assignments are deleted
- Status code '422' and a list of the failed requested assignments including an error code (not listed
but requested assignments are acceptable for deletion but not yet deleted)
- Status code other than '204' or '422' and an indicating error code if the whole request is rejected in general.
| Conditions | Status code | Error code | Remarks |
|------------|-------------|------------|---------|
| Successful operation | 204 |||
| Request does not match schema | 400 | malformedRequest ||
| Requestor not authorized | 403 | invalAuth | no user session with valid ID-Token available |
| Requestor has no valid entitlement | 403 | notEntitled ||
| Device registration does not exist | 403 | unregisteredDevice ||
| Requestor role is not _oid_versicherter_ | 403 | invalidOid ||
| Health record does not exist (UNKNOWN) or is in state INITIALIZED | 404 | noHealthRecord | |
| Health record is in state SUSPENDED or INACCESSIBLE| 409 | statusMismatch | (see 'Retry interval') |
| Unsuccessful operation with partial errors| 422 || see _Conditions for response_ table below |
| Any other error | 500 | internalError | (see 'Retry interval') |
| Conditions for response error code | Error code | Remarks |
|------------------------------------|------------|---------|
| Assignment (_assignmentid_) does not exist | noResource ||
| Postconditions | Remarks |
|---------------------------------------|---------|
| The addressed assignments are removed from the general deny policy | successful operation only |
| A log-entry for the operation exists | all operation results |
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/DenyPolicyAssignmentDeleteType'
minItems: 1
maxItems: 25
examples:
DeleteOk1:
$ref: '#/components/examples/Delete_three_documents'
responses:
'422':
description: Unprocessable Entity with error details about the failed requested deletions
headers:
X-Request-ID:
$ref: '#/components/headers/requestid'
content:
application/json:
schema:
type: object
properties:
data:
type: object
properties:
data:
type: array
items:
allOf:
- $ref: '#/components/schemas/DenyPolicyAssignmentDeleteResponseTypeFail'
minItems: 1
examples:
DeleteFail1:
$ref: '#/components/examples/Failed_response_delete_three_documents'
'204':
description: OK. Assignment deleted
headers:
X-Request-ID:
$ref: '#/components/headers/requestid'
'400':
$ref: '#/components/responses/Error400BadRequest'
'403':
$ref: '#/components/responses/Error403Forbidden'
'404':
$ref: '#/components/responses/Error404NotFound'
'409':
$ref: '#/components/responses/Error409Conflict'
'500':
$ref: '#/components/responses/Error500InternalError'
components:
headers:
requestid:
description: Request identifier as provided by the client.
schema:
$ref: '#/components/schemas/RequestIdType'
responses:
Error400BadRequest:
description: Bad Request.
headers:
X-Request-ID:
$ref: '#/components/headers/requestid'
content:
application/json:
example:
errorCode: malformedRequest
schema:
$ref: '#/components/schemas/ErrorType'
Error403Forbidden:
description: Forbidden.
headers:
X-Request-ID:
$ref: '#/components/headers/requestid'
content:
application/json:
example:
errorCode: notEntitled
schema:
$ref: '#/components/schemas/ErrorType'
Error404NotFound:
description: Not found.
headers:
X-Request-ID:
$ref: '#/components/headers/requestid'
content:
application/json:
example:
errorCode: noHealthRecord
schema:
$ref: '#/components/schemas/ErrorType'
Error409Conflict:
description: Conflict.
headers:
X-Request-ID:
$ref: '#/components/headers/requestid'
content:
application/json:
examples:
statusMismatch:
value:
errorCode: statusMismatch
requestMismatch:
value:
errorCode: requestMismatch
schema:
$ref: '#/components/schemas/ErrorType'
Error500InternalError:
description: Internal Server Error
headers:
X-Request-ID:
$ref: '#/components/headers/requestid'
content:
application/json:
example:
errorCode: internalError
schema:
$ref: '#/components/schemas/ErrorType'
parameters:
insurantid:
name: x-insurantid
in: header
description: Health Record Identifier.
required: true
schema:
$ref: '#/components/schemas/InsurantIdType'
useragent:
name: x-useragent
in: header
description: user agent information
required: true
schema:
$ref: '#/components/schemas/UserAgentType'
requestid:
name: X-Request-ID
in: header
description: request identifier
schema:
$ref: '#/components/schemas/RequestIdType'
assignmentId:
name: assignmentId
in: path
required: true
schema:
$ref: '#/components/schemas/AssignmentIdType'
schemas:
AssignmentIdType:
description: Server-assigned unique uuid of a particular deny policy assignment
type: string
format: uuid
example: fa2bc929-f6c9-419f-ae75-cea040927651
UuidType:
description: An urn-encoded UUID
type: string
example: urn:uuid:4fa70820-2384-4001-80a9-7bbd5e085efb
RootDocumentIdType:
description: |
The rootDocumentUniqueId, a CXi style identifier with schema 'uniqueID^^^^urn:gematik:iti:xds:2023:rootDocumentUniqueId' with symbolic UUID as uniqueId
type: string
example: urn:uuid:4fa70820-2384-4001-80a9-7bbd5e085efb^^^^urn:gematik:iti:xds:2023:rootDocumentUniqueId
CategoryIdType:
description: A technical identifier of a category
type: string
enum:
- reports
- emergency
- eab
- dental
- child
- childsrecord
- pregnancy_childbirth
- vaccination
- patient
- receipt
- diga
- care
- eau
- rehab
- transcripts
- other
example: emergency
ErrorResponseType:
description: Error condition specifier
type: string
DenyPolicyAssignmentDeleteType:
description: Basic type for deny policy assignment deletion.
type: object
properties:
assignmentId:
allOf:
- $ref: '#/components/schemas/AssignmentIdType'
description: unique identifier of a particular deny policy assignment
DenyPolicyAssignmentDeleteResponseTypeFail:
description: Basic type for a deny policy assignment deletion error response.
allOf:
- type: object
properties:
errorCode:
allOf:
- $ref: '#/components/schemas/ErrorResponseType'
- type: object
properties:
assignmentId:
allOf:
- $ref: '#/components/schemas/AssignmentIdType'
DenyPolicyAssignmentType:
description: Basic type for deny policy assignments.
oneOf:
- $ref: '#/components/schemas/GDPolicyAssignmentForDocumentType'
- $ref: '#/components/schemas/GDPolicyAssignmentForFolderType'
- $ref: '#/components/schemas/GDPolicyAssignmentForCategoryType'
DenyPolicyAssignmentResponseType:
description: Basic type for a deny policy assignment response.
allOf:
- type: object
properties:
assignmentId:
allOf:
- $ref: '#/components/schemas/AssignmentIdType'
- $ref: '#/components/schemas/DenyPolicyAssignmentType'
DenyPolicyAssignmentResponseTypeFail:
description: Basic type for a deny policy assignment error response.
allOf:
- type: object
properties:
errorCode:
allOf:
- $ref: '#/components/schemas/ErrorResponseType'
- $ref: '#/components/schemas/DenyPolicyAssignmentType'
GDPolicyAssignmentForCategoryType:
description: Global deny policy assigment for a single category (static folder).
type: object
properties:
for:
type: string
enum:
- category
parameters:
type: object
required:
- categoryId
properties:
categoryId:
allOf:
- $ref: '#/components/schemas/CategoryIdType'
description: technical identifier of a category
GDPolicyAssignmentForDocumentType:
description: Global deny policy assigment for a single document.
type: object
properties:
for:
type: string
enum:
- document
parameters:
type: object
required:
- rootDocumentId
properties:
rootDocumentId:
allOf:
- $ref: '#/components/schemas/RootDocumentIdType'
description: unique root document identifier of a document
GDPolicyAssignmentForFolderType:
description: Global deny policy assigment for a single (dynamic) folder.
type: object
properties:
for:
type: string
enum:
- folder
parameters:
type: object
required:
- folderUUID
properties:
folderUUID:
allOf:
- $ref: '#/components/schemas/UuidType'
description: Folder.entryUUID
UserAgentType:
description: "Information about client software with: ClientId (1 to 20 characters) + / + VersionNumber (1 to 15 characters)."
type: string
pattern: '^[a-zA-Z0-9\-]{1,20}\/[a-zA-Z0-9\-\.]{1,15}$'
example: CLIENTID1234567890AB/2.1.12-45
RequestIdType:
type: string
format: uuid
description: "Unique identifier of the request"
example: "f4411e89-2eca-405c-88a1-7ee20b9b6e3c"
InsurantIdType:
type: string
description: |-
The health record identifier.
For today the record identifier equals the insurant id (kvnr).
pattern: '^[A-Z]{1}\d{9}$'
example: Z123456789
ErrorType:
description: Error object with additional information about the occurred error
type: object
properties:
errorCode:
description: Error condition specifier
type: string
errorDetail:
description: Additional details regarding the error condition (if applicable)
type: string
required:
- errorCode
examples:
Delete_three_documents:
summary: Delete three different assignments
value:
data:
- assignmentId: fa1d1e42-4e6f-4640-9ffd-c2409924ddc7
- assignmentId: e4bf557f-03fc-4c85-a9c3-3a33b1a144f0
- assignmentId: 5496c3bd-712f-457b-ba14-c05dfbf3755e
Failed_response_delete_three_documents:
summary: Response for attempt to delete several assignments with two assignments not existing
value:
data:
- errorCode: noResource
assignmentId: e4bf557f-03fc-4c85-a9c3-3a33b1a144f0
- errorCode: noResource
assignmentId: e4bf557f-03fc-4c85-a9c3-c05dfbf3755e
Add_three_documents:
summary: Assign three different documents
value:
data:
- for: document
parameters:
rootDocumentId: urn:uuid:0f70653d-d5f4-46f0-99e1-b6af92eea2b6^^^^urn:gematik:iti:xds:2023:rootDocumentUniqueId
- for: document
parameters:
rootDocumentId: urn:uuid:b8e83cb1-0c92-4289-af78-241d57455116^^^^urn:gematik:iti:xds:2023:rootDocumentUniqueId
- for: document
parameters:
rootDocumentId: urn:uuid:1c3dc2c9-0433-4e35-88c4-1cb78e2128cd^^^^urn:gematik:iti:xds:2023:rootDocumentUniqueId
Response_add_three_documents:
summary: Response for assignment of three different documents
value:
data:
- assignmentId: fa1d1e42-4e6f-4640-9ffd-c2409924ddc7
for: document
parameters:
rootDocumentId: urn:uuid:0f70653d-d5f4-46f0-99e1-b6af92eea2b6^^^^urn:gematik:iti:xds:2023:rootDocumentUniqueId
- assignmentId: e4bf557f-03fc-4c85-a9c3-3a33b1a144f0
for: document
parameters:
rootDocumentId: urn:uuid:b8e83cb1-0c92-4289-af78-241d57455116^^^^urn:gematik:iti:xds:2023:rootDocumentUniqueId
- assignmentId: 5496c3bd-712f-457b-ba14-c05dfbf3755e
for: document
parameters:
rootDocumentId: urn:uuid:1c3dc2c9-0433-4e35-88c4-1cb78e2128cd^^^^urn:gematik:iti:xds:2023:rootDocumentUniqueId
Add_two_categories_and_one_folder:
summary: Assign two categories and a folder (e.g. a particular diga folder)
value:
data:
- for: category
parameters:
categoryId: vaccination
- for: category
parameters:
categoryId: eau
- for: folder
parameters:
folderUUID: urn:uuid:09cf5b85-51e3-4d33-bd54-fa3046122746
Response_add_two_categories_and_one_folder:
summary: Response for assignment of two categories and a folder (e.g. a particular diga folder)
value:
data:
- assignmentId: 9186b3a8-ac19-4fd5-b4b5-8e3481e07c72
for: category
parameters:
categoryId: vaccination
- assignmentId: 21d1a52a-d54c-4eda-b1fa-20ffd851841a
for: category
parameters:
categoryId: eau
- assignmentId: 58cf093e-2cc2-4c38-80e8-c4ef83d9ea08
for: folder
parameters:
folderUUID: urn:uuid:09cf5b85-51e3-4d33-bd54-fa3046122746
Failed_add_three_documents:
summary: Attempt to assign three different documents with document no.2 not existing
value:
data:
- for: document
parameters:
rootDocumentId: urn:uuid:0f70653d-d5f4-46f0-99e1-b6af92eea2b6^^^^urn:gematik:iti:xds:2023:rootDocumentUniqueId
- for: document
parameters:
rootDocumentId: urn:uuid:d3e61237-942a-4956-b8fd-95880030e90b^^^^urn:gematik:iti:xds:2023:rootDocumentUniqueId
- for: document
parameters:
rootDocumentId: urn:uuid:1c3dc2c9-0433-4e35-88c4-1cb78e2128cd^^^^urn:gematik:iti:xds:2023:rootDocumentUniqueId
Failed_response_add_three_documents:
summary: Response for attempt to assign three different documents with document no.2 not existing
value:
data:
- errorCode: noResource
for: document
parameters:
rootDocumentId: urn:uuid:d3e61237-942a-4956-b8fd-95880030e90b^^^^urn:gematik:iti:xds:2023:rootDocumentUniqueId
Failed_add_two_categories_with_unsupported_id_and_document_in_technical_folder:
summary: Attempt to assign two categories providing an unsupported id and a document located in technical folder
value:
data:
- for: category
parameters:
categoryId: technical
- for: document
parameters:
rootDocumentId: urn:uuid:a3b3b6b4-9b24-44c1-850a-82ab0f118849^^^^urn:gematik:iti:xds:2023:rootDocumentUniqueId
- for: category
parameters:
category: an-invalid-category-id
Failed_response_add_two_categories_with_unsupported_id_and_document_in_technical_folder:
summary: Response for attempt to assign two categories providing an unsupported id and a document located in technical folder
value:
data:
- errorCode: noResource
for: category
parameters:
categoryId: technical
- errorCode: noResource
for: category
parameters:
categoryId: an-invalid-category-id
- errorCode: invalidResource
for: document
parameters:
rootDocumentId: urn:uuid:a3b3b6b4-9b24-44c1-850a-82ab0f118849^^^^urn:gematik:iti:xds:2023:rootDocumentUniqueId
Add_category_to_general_deny_policy:
summary: Set an assigment for a category in General Deny Policy
value:
for: category
parameters:
categoryId: patient
Response_category_to_general_deny_policy:
summary: Response of assigment for a category in General Deny Policy
value:
assignmentId: ddf19ee6-e831-430d-893f-71d219ac12a0
for: category
parameters:
categoryId: patient
Add_document_to_general_deny_policy:
summary: Set an assigment for a document in General Deny Policy
value:
for: document
parameters:
rootDocumentId: urn:uuid:0f70653d-d5f4-46f0-99e1-b6af92eea2b6^^^^urn:gematik:iti:xds:2023:rootDocumentUniqueId
Response_document_to_general_deny_policy:
summary: Response of assigment for a document in General Deny Policy
value:
assignmentId: b4593ccc-e29e-47b0-89fc-1ee80df188aa
for: document
parameters:
rootDocumentId: urn:uuid:0f70653d-d5f4-46f0-99e1-b6af92eea2b6^^^^urn:gematik:iti:xds:2023:rootDocumentUniqueId
Add_folder_to_general_deny_policy:
summary: Set an assigment for a folder in General Deny Policy
value:
for: folder
parameters:
folderUUID: urn:uuid:84d92a96-3585-4ad3-94b1-c4f3dbe87176
Response_folder_to_general_deny_policy:
summary: Response of assigment for a folder in General Deny Policy
value:
assignmentId: 8130eafa-a4fa-4337-aedb-6019b66e48f3
for: folder
parameters:
folderUUID: urn:uuid:84d92a96-3585-4ad3-94b1-c4f3dbe87176
Get_AllPolicyAssignments:
summary: Get all Deny Policy assignments.
value:
data:
- assignmentId: ddf19ee6-e831-430d-893f-71d219ac12a0
for: category
parameters:
categoryId: patient
- assignmentId: b4593ccc-e29e-47b0-89fc-1ee80df188aa
for: document
parameters:
rootDocumentId: urn:uuid:0f70653d-d5f4-46f0-99e1-b6af92eea2b6^^^^urn:gematik:iti:xds:2023:rootDocumentUniqueId
- assignmentId: 8130eafa-a4fa-4337-aedb-6019b66e48f3
for: folder
parameters:
folderUUID: urn:uuid:84d92a96-3585-4ad3-94b1-c4f3dbe87176
- assignmentId: 21694fb0-3019-4824-a34e-d4e1c031470e
for: category
parameters:
categoryId: dental
- assignmentId: 74343201-e669-4675-8414-3ce517220a3b
for: document
parameters:
rootDocumentId: urn:uuid:c4e17b20-ecee-4261-a51d-396b8e81bc27^^^^urn:gematik:iti:xds:2023:rootDocumentUniqueId
- assignmentId: 7730578d-9380-47d6-ae82-d2c47ca399af
for: folder
parameters:
folderUUID: urn:uuid:f9929ed6-1119-4dea-a48a-1cfe8117f7b7