Download OpenAPI specification:Download
Mainzelliste provides a REST-based interface for the pseudonymization of personal data and management of consents to ensure privacy-compliant data processing. This interface supports the following use cases:
This document includes:
EXPERIMENTAL
are subject to change or removal in future releases.For referencing the Mainzelliste interface in publications, you may cite the open-access article published in 2015 in BMC Medical Informatics and Decision Making [1].
Mainzelliste is free software; see http://www.mainzelliste.de. The interface specified here is open, meaning its specification is publicly available and may be implemented without our permission. Extensions or modifications are also permitted. However, in the interest of maintaining a consistent interface in the long term, we kindly ask that you discuss any proposed changes with us before distributing modified versions. Until now, we have been able to include all suggestions into this official interface specification.
The REST paradigm uses the HTTP protocol for communication and processes the following REST resources:
The following example illustrates the basic functionality of the interface. The scenario is as follows:
The following describes the case in which a user wants to enter a new patient into the registry software and request a pseudonym for that patient. This process is illustrated in the sequence diagram in Figure 1. The numbers in the following notes refer to steps in this diagram.
The Mainzelliste interface does not perform separate authentication of individual users, as this is typically handled by another server. In this context, it is assumed that authentication is performed by the web server of the MDAT application (here referred to as the "MDAT server"). The MDAT server authenticates itself to the patient list and issues access tokens to users, thereby implementing a single sign-on (SSO) concept. Steps 1–4 in the sequence diagram illustrate this concept:
By using access tokens, the Mainzelliste can bypasse the management of individual user accounts. This avoids the duplication of user information, which already exists on the MDAT server, and simplifies the administration of the Mainzelliste by external service providers.
The actual pseudonymization must now be performed by the user on a webpage provided by the patient list. Entering identifying data (IDAT) into a form delivered by the MDAT server would violate the strict separation of medical and identifying data, as the MDAT server could potentially access the IDAT. The process proceeds as follows: 5. The MDAT server redirects the user to the /html/createPatient resource of the patient list, for example via an HTTP redirect or a hyperlink. The token ID created in step (4) is appended as a URL parameter tokenID. As response, the patient list serves an HTML form in which the user can enter the identifying data of the new patient. 6. When the form is submitted, the entered data is sent via a POST request to the /patients resource. As in the previous step, the token ID is passed as a URL parameter. To authorize the request, the patient list verifies that a token with this ID exists and is valid (i.e., has not yet been used). 7. The patient list determines a pseudonym for the patient — either an existing one, if a matching patient is already exist, or a new one if the patient is not yet registered. 8. The pseudonym is displayed to the user, who can then record it and use it to enter medical data into the MDAT application.
[1] Lablans M, Borg A, Ückert F (2015) A RESTful interface to pseudonymization services in modern web applications. BMC Med Inform Decis Mak 15: 2. doi: 10.1186/s12911-014-0123-5
Retrieve a list of all patients to whom the provided token grants access. The token specifies which patients and which data (IDAT, IDs) of these patients are retrieved.
tokenId required | string Id of a valid "readPatients" token. This can be created using sessions/{sessionId}/tokens endpoint. e.g.:
|
page | integer This is the result page number, if the client decide to return the result in a series of pages. This parameter have to be used together with "limit" query parameter. Both of them must be positive |
limit | integer This limit the number of results per page. This parameter have to be used together with "page" query parameter. Both of them must be positive |
object using a configured field name instead of |
[- [
- {
- "fields": {
- "geburtstag": "01",
- "vorname": "Lars",
- "geburtsjahr": "1983",
- "nachname": "Rarigausson",
- "geburtsmonat": "11"
}, - "ids": [
- {
- "idType": "pid",
- "idString": "0003Y0WZ",
- "tentative": false
}
]
}
]
]
This operation checks whether a patient with the given identifying data already exists in the database. If not, a new patient is created, and the requested ID in the addPatient
token are generated and returned or forwarded for this patient. If yes, the existing IDs are used. For the caller, it is not discernible whether the patient already existed or was newly created.
Check if a patient with the given identifying data exists in the database. If not sure (true) whether the data corresponds to an existing patient or a new entry, perform the following:
sureness: true
: Create a new patient. Generate the IDs as tentative (field "tentative," see ID section). This signals that a subsequent merge with an existing record is possible.sureness: false
: Check if the patient already exists and use the existing IDs.tokenId required | string Id of a valid "addPatient" token. This can be created using sessions/{sessionId}/tokens endpoint. e.g.:
|
mainzellisteApiVersion | string Version of Mainzelliste API. |
fields | object configured IDAT field |
ids | object list of external Ids. Multiple external ID type must given as an array |
sureness | boolean Default: false This automate the decision, when an unsure match happen, and determine whether the tentative patient should be add or not. If true generate IDs as tentative (field "tentative") and also mark the patient as tentative to signal that a subsequent merge with an existing record is possible. Otherwise the request will be rejected |
ignoreInvalidIDAT | boolean Default: false This allows adding patient with invalid IDAT for subsequent corrections. As the IDAT not suitable for record linkage an external ID would berequired to ensure a feature linkage with existing patients. |
{- "fields": {
- "vorname": "Max",
- "nachname": "Mustermann",
- "geburtstag": "13",
- "geburtsmonat": "01",
- "geburtsjahr": "1891"
}, - "ids": {
- "extId": "464515121",
- "visitExtId": [
- "1215444",
- "1215447"
]
}, - "sureness": false,
- "ignoreInvalidIDAT": false
}
[- {
- "idType": "pid",
- "idString": "0003Y0WZ",
- "tentative": false
}
]
The dataset of the patient provided during token creation is modified as follows:
tokenId required | string Id of a valid "editPatient" token. This can be created using sessions/{sessionId}/tokens endpoint. e.g.:
|
mainzellisteApiVersion | string version of mainzelliste api. |
field | string |
externalId | string |
{- "vorname": "Max",
- "nachname": "Mustermann",
- "geburtstag": "13",
- "geburtsmonat": "01",
- "geburtsjahr": "1891",
- "edcExtId": "154521114"
}
delete a patient and anonymize entries in IDRequest database table.
tokenId required | string Id of a valid deletePatient token containing a valid "idType" and "idString" of the patient to be deleted. This can be created using sessions/{sessionId}/tokens endpoint. e.g.:
|
Retrieve a list of all patients to whom the provided token grants access. The token specifies which patients and which data (IDAT, IDs) of these patients are retrieved.
tokenId required | string Id of a valid "readPatients" token. |
[- [
- {
- "fields": {
- "geburtstag": "01",
- "vorname": "Lars",
- "geburtsjahr": "1983",
- "nachname": "Rarigausson",
- "geburtsmonat": "11"
}, - "ids": [
- {
- "idType": "pid",
- "idString": "0003Y0WZ",
- "tentative": false
}
]
}
]
]
It is checked whether a patient with the given identifying data already exists in the database. If not, a new patient is created, and the configured IDs are generated and returned or forwarded for this patient. If yes, the existing IDs are used. For the caller, it is not discernible whether the patient already existed or was newly created. Check if a patient with the given identifying data exists in the database. If not sure (true) whether the data corresponds to an existing patient or a new entry, perform the following:
sureness: true
: Create a new patient. Generate the IDs as tentative (field "tentative," see ID section). This signals that a subsequent merge with an existing record is possible.sureness: false
: Check if the patient already exists and use the existing IDs.tokenId required | string Id of a valid "addPatient" token. |
mainzellisteApiVersion | string Version of Mainzelliste API. |
sureness | boolean Default: false |
[- { }
]
The dataset of the patient provided during token creation is modified as follows:
tokenId required | string Id of a valid "editPatient" token. |
mainzellisteApiVersion | string version of mainzelliste api. |
sureness | boolean Default: false |
run a record linkage and return matched patient ids according to the given 'resultIds' in the token
tokenId required | string Id of a valid "checkMatch" token. This can be created using sessions/{sessionId}/tokens endpoint. e.g.:
|
fieldName | string |
externalIdType | string |
[- {
- "similarityScore": 0.79342,
- "pid": "0003Y0WZ"
}
]
idType required | string type of ID to be generated |
tokenId required | string Id of a valid "createIds" token. This can be created using sessions/{sessionId}/tokens endpoint. e.g.:
|
mainzellisteApiVersion | string Version of Mainzelliste API. |
[- {
- "idType": "pid",
- "idString": "0003Y0WZ",
- "tentative": false
}
]
{- "sessionId": "57c4a68d-a113-4b52-a391-3f3fc2157344",
}
create new token
sessionId required | string Id of a valid session. |
mainzellisteApiKey | string Key of mainzelliste API. |
type | string Type of the token. |
allowedUses | integer Number of allowed uses of the token. |
data | object Further data about the token. |
{- "type": "integer",
- "allowedUses": 10,
}
{ }
Allows client to create a long running transaction.
tokenId | string addPatients is the ony supported token. Create a valid token using sessions/{sessionId}/tokens endpoint. e.g.:
|
fields | object configured IDAT field |
ids | object list of external Ids. Multiple external ID type must given as an array |
sureness | boolean Default: false This automate the decision, when an unsure match happen, and determine whether the tentative patient should be add or not. If true generate IDs as tentative (field "tentative") and also mark the patient as tentative to signal that a subsequent merge with an existing record is possible. Otherwise the request will be rejected |
ignoreInvalidIDAT | boolean Default: false This allows adding patient with invalid IDAT for subsequent corrections. As the IDAT not suitable for record linkage an external ID would berequired to ensure a feature linkage with existing patients. |
[- {
- "fields": {
- "vorname": "Max",
- "nachname": "Mustermann",
- "geburtstag": "13",
- "geburtsmonat": "01",
- "geburtsjahr": "1891"
}, - "ids": {
- "extId": "464515121",
- "visitExtId": [
- "1215444",
- "1215447"
]
}, - "sureness": false,
- "ignoreInvalidIDAT": false
}
]
jobId required | string use the jobId from the url returned in the location-Header of the response after calling 'POST /jobs'. e.g. http://{Mainzelliste-URL}/jobs/{jobId}/?tokenId={tokenId} |
tokenId | string user the same tokenId used to create the job. |
[- {
- "status": 201,
- "body": [
- {
- "idType": "pid",
- "idString": "0003Y0WZ",
- "tentative": false
}
]
}, - {
- "status": 409,
- "body": {
- "message": "Found existing patient with matching IDAT but conflicting external ID(s)."
}
}
]
fhir create
interaction allows to create a new consent resource
Authorization required | string Example: MainzellisteToken d4f6c78a-a157-44f3-aae2-aee5d6092f57
|
mainzellisteApiVersion | string Example: 3.4 Version of Mainzelliste API. |
Ensure that the provided patient identifier patient.identifier
and the consent template Id in policy[x].uri
exist. The provided logical Id will be ignored and a new one will be generated
{- "resourceType": "Consent",
- "id": "34150a23-b1c8-404f-874f-e042a30435d2",
- "meta": {
- "versionId": "1",
- "lastUpdated": "2024-12-11T09:39:07+00:00",
}, - "status": "active",
- "scope": {
}, - "patient": {
}, - "dateTime": "2020-09-01",
- "organization": [
- {
- "display": "Klinikum Musterstadt"
}
], - "policy": [
- {
- "uri": "fhir/Questionnaire/{{consent-template-id}}"
}
], - "provision": {
- "type": "deny",
- "period": {
- "start": "2020-09-01",
- "end": "2050-08-31"
}, - "provision": [
- {
- "type": "permit",
- "period": {
- "start": "2020-09-01",
- "end": "2025-08-31"
}, - "code": [
- {
- "coding": [
- {
- "system": "urn:oid:2.16.840.1.113883.3.1937.777.24.5.3",
- "code": "2.16.840.1.113883.3.1937.777.24.5.3.1",
- "display": "PATDAT_erheben_speichern_nutzen"
}
]
}
],
}, - {
- "type": "permit",
- "period": {
- "start": "2020-09-01",
- "end": "2050-08-31"
}, - "code": [
- {
- "coding": [
- {
- "system": "urn:oid:2.16.840.1.113883.3.1937.777.24.5.3",
- "code": "2.16.840.1.113883.3.1937.777.24.5.3.10",
- "display": "KKDAT_retrospektiv_uebertragen_speichern_nutzen"
}
]
}
],
}
]
}
}
{- "resourceType": "Consent",
- "id": "34150a23-b1c8-404f-874f-e042a30435d2",
- "meta": {
- "versionId": "1",
- "lastUpdated": "2024-12-11T09:39:07+00:00",
}, - "status": "active",
- "scope": {
}, - "patient": {
}, - "dateTime": "2020-09-01",
- "organization": [
- {
- "display": "Klinikum Musterstadt"
}
], - "policy": [
- {
- "uri": "fhir/Questionnaire/{{consent-template-id}}"
}
], - "provision": {
- "type": "deny",
- "period": {
- "start": "2020-09-01",
- "end": "2050-08-31"
}, - "provision": [
- {
- "type": "permit",
- "period": {
- "start": "2020-09-01",
- "end": "2025-08-31"
}, - "code": [
- {
- "coding": [
- {
- "system": "urn:oid:2.16.840.1.113883.3.1937.777.24.5.3",
- "code": "2.16.840.1.113883.3.1937.777.24.5.3.1",
- "display": "PATDAT_erheben_speichern_nutzen"
}
]
}
],
}, - {
- "type": "permit",
- "period": {
- "start": "2020-09-01",
- "end": "2050-08-31"
}, - "code": [
- {
- "coding": [
- {
- "system": "urn:oid:2.16.840.1.113883.3.1937.777.24.5.3",
- "code": "2.16.840.1.113883.3.1937.777.24.5.3.10",
- "display": "KKDAT_retrospektiv_uebertragen_speichern_nutzen"
}
]
}
],
}
]
}
}
fhir conditional update
interaction allows to update an existing resource based on two search criteria patient:identifier
and policyUri
, rather then the logical id consentId
patient:identifier required | string Example: patient:identifier=patient:identifier=id/pid|0007W0W9 relative or absolute path of an existing pseudonym. Format |
policyUri required | string Example: policyUri=policyUri=fhir/Questionnaire/2c513606-121d-487a-9262-becc163122ab relative or absolute path of an existing consent template. Format |
Authorization required | string Example: MainzellisteToken d4f6c78a-a157-44f3-aae2-aee5d6092f57
|
mainzellisteApiVersion | string Example: 3.4 Version of Mainzelliste API. |
Ensure that the provided patient identifier patient.identifier
and the consent template Id in policy[x].uri
exist.
{- "resourceType": "Consent",
- "id": "34150a23-b1c8-404f-874f-e042a30435d2",
- "meta": {
- "versionId": "1",
- "lastUpdated": "2024-12-11T09:39:07+00:00",
}, - "status": "active",
- "scope": {
}, - "patient": {
}, - "dateTime": "2020-09-01",
- "organization": [
- {
- "display": "Klinikum Musterstadt"
}
], - "policy": [
- {
- "uri": "fhir/Questionnaire/{{consent-template-id}}"
}
], - "provision": {
- "type": "deny",
- "period": {
- "start": "2020-09-01",
- "end": "2050-08-31"
}, - "provision": [
- {
- "type": "permit",
- "period": {
- "start": "2020-09-01",
- "end": "2025-08-31"
}, - "code": [
- {
- "coding": [
- {
- "system": "urn:oid:2.16.840.1.113883.3.1937.777.24.5.3",
- "code": "2.16.840.1.113883.3.1937.777.24.5.3.1",
- "display": "PATDAT_erheben_speichern_nutzen"
}
]
}
],
}, - {
- "type": "permit",
- "period": {
- "start": "2020-09-01",
- "end": "2050-08-31"
}, - "code": [
- {
- "coding": [
- {
- "system": "urn:oid:2.16.840.1.113883.3.1937.777.24.5.3",
- "code": "2.16.840.1.113883.3.1937.777.24.5.3.10",
- "display": "KKDAT_retrospektiv_uebertragen_speichern_nutzen"
}
]
}
],
}
]
}
}
{- "resourceType": "Consent",
- "id": "34150a23-b1c8-404f-874f-e042a30435d2",
- "meta": {
- "versionId": "1",
- "lastUpdated": "2024-12-11T09:39:07+00:00",
}, - "status": "active",
- "scope": {
}, - "patient": {
}, - "dateTime": "2020-09-01",
- "organization": [
- {
- "display": "Klinikum Musterstadt"
}
], - "policy": [
- {
- "uri": "fhir/Questionnaire/{{consent-template-id}}"
}
], - "provision": {
- "type": "deny",
- "period": {
- "start": "2020-09-01",
- "end": "2050-08-31"
}, - "provision": [
- {
- "type": "permit",
- "period": {
- "start": "2020-09-01",
- "end": "2025-08-31"
}, - "code": [
- {
- "coding": [
- {
- "system": "urn:oid:2.16.840.1.113883.3.1937.777.24.5.3",
- "code": "2.16.840.1.113883.3.1937.777.24.5.3.1",
- "display": "PATDAT_erheben_speichern_nutzen"
}
]
}
],
}, - {
- "type": "permit",
- "period": {
- "start": "2020-09-01",
- "end": "2050-08-31"
}, - "code": [
- {
- "coding": [
- {
- "system": "urn:oid:2.16.840.1.113883.3.1937.777.24.5.3",
- "code": "2.16.840.1.113883.3.1937.777.24.5.3.10",
- "display": "KKDAT_retrospektiv_uebertragen_speichern_nutzen"
}
]
}
],
}
]
}
}
fhir search
interaction allows to retrieve consent resources based on specific search criteria. Supported search parameters :
Name | Type | Description | Example |
---|---|---|---|
category | token | classification of the consent statement | category=http://loinc.org|57016-8 |
patient | reference | Support only identifier. Composite Search Parameters AND and OR are also supported |
patient:identifier=id/pid|0007W0W9,id/pid|000CU0WP&patient:identifier=id/pid|4102W0X5 |
mii-provision-provision-type | token | provision.type of each provisions with specified codes in mii-provision-provision-code parameter |
mii-provision-provision-type=permit |
mii-provision-provision-code | token | Composite Search Parameters AND and OR are supported |
mii-provision-provision-code=urn:oid:2.16.840.1.113883.3.1937.777.24.5.3|2.16.840.1.113883.3.1937.777.24.5.3.1,urn:oid:2.16.840.1.113883.3.1937.777.24.5.3|2.16.840.1.113883.3.1937.777.24.5.3.10 |
mii-policy-uri | uri | policy.uri refers to an existing consent template | mii-policy-uri=fhir/Questionnaire/2c513606-121d-487a-9262-becc163122ab |
category | string Example: category=category=http://loinc.org|57016-8 classification of the consent statement |
patient:identifier | string Example: patient:identifier=patient:identifier=id/pid|0007W0W9,id/pid|000CU0WP&patient:identifier=id/pid|4102W0X5 relative or absolute path of an existing pseudonym. Format |
mii-policy-uri | string Example: mii-policy-uri=mii-policy-uri=fhir/Questionnaire/2c513606-121d-487a-9262-becc163122ab relative or absolute path of an existing consent template. Format |
mii-provision-provision-type | string Example: mii-provision-provision-type=mii-provision-provision-type=permit provision.type of each provisions with specified codes in |
mii-provision-provision-code | string Example: mii-provision-provision-code=mii-provision-provision-code=urn:oid:2.16.840.1.113883.3.1937.777.24.5.3|2.16.840.1.113883.3.1937.777.24.5.3.1,urn:oid:2.16.840.1.113883.3.1937.777.24.5.3|2.16.840.1.113883.3.1937.777.24.5.3.10 provision.code parameter. Composite Search Parameters |
Authorization required | string Example: MainzellisteToken d4f6c78a-a157-44f3-aae2-aee5d6092f57
|
mainzellisteApiVersion | string Example: 3.4 Version of Mainzelliste API. |
{- "resourceType": "Bundle",
- "id": "ex-fhir-document-bundle",
- "meta": {
- "lastUpdated": "2013-05-28T22:12:21Z"
}, - "identifier": {
- "system": "urn:ietf:rfc:3986",
- "value": "urn:uuid:0c3151bd-1cbf-4d64-b04d-cd9187a4c6e0"
}, - "type": "document",
- "timestamp": "2013-05-28T22:12:21Z",
- "entry": [
- {
- "resource": { }
}
]
}
fhir read
interaction allows to retrieve a consent resource specified by their Id {consentId}
consentId required | string Example: d7a65ce8-2810-401a-b0db-70782a7b19a6 logical id of an existing resource |
Authorization required | string Example: MainzellisteToken d4f6c78a-a157-44f3-aae2-aee5d6092f57
|
mainzellisteApiVersion | string Example: 3.4 Version of Mainzelliste API. |
{- "resourceType": "Consent",
- "id": "34150a23-b1c8-404f-874f-e042a30435d2",
- "meta": {
- "versionId": "1",
- "lastUpdated": "2024-12-11T09:39:07+00:00",
}, - "status": "active",
- "scope": {
}, - "patient": {
}, - "dateTime": "2020-09-01",
- "organization": [
- {
- "display": "Klinikum Musterstadt"
}
], - "policy": [
- {
- "uri": "fhir/Questionnaire/{{consent-template-id}}"
}
], - "provision": {
- "type": "deny",
- "period": {
- "start": "2020-09-01",
- "end": "2050-08-31"
}, - "provision": [
- {
- "type": "permit",
- "period": {
- "start": "2020-09-01",
- "end": "2025-08-31"
}, - "code": [
- {
- "coding": [
- {
- "system": "urn:oid:2.16.840.1.113883.3.1937.777.24.5.3",
- "code": "2.16.840.1.113883.3.1937.777.24.5.3.1",
- "display": "PATDAT_erheben_speichern_nutzen"
}
]
}
],
}, - {
- "type": "permit",
- "period": {
- "start": "2020-09-01",
- "end": "2050-08-31"
}, - "code": [
- {
- "coding": [
- {
- "system": "urn:oid:2.16.840.1.113883.3.1937.777.24.5.3",
- "code": "2.16.840.1.113883.3.1937.777.24.5.3.10",
- "display": "KKDAT_retrospektiv_uebertragen_speichern_nutzen"
}
]
}
],
}
]
}
}
fhir update
interaction create new version of an existing resource with the given id.
consentId required | string Example: d7a65ce8-2810-401a-b0db-70782a7b19a6 logical id of an existing resource. |
Authorization required | string Example: MainzellisteToken d4f6c78a-a157-44f3-aae2-aee5d6092f57
|
mainzellisteApiVersion | string Example: 3.4 Version of Mainzelliste API. |
Ensure that the provided patient identifier patient.identifier
and the consent template Id in policy[x].uri
exist.
{- "resourceType": "Consent",
- "id": "34150a23-b1c8-404f-874f-e042a30435d2",
- "meta": {
- "versionId": "1",
- "lastUpdated": "2024-12-11T09:39:07+00:00",
}, - "status": "active",
- "scope": {
}, - "patient": {
}, - "dateTime": "2020-09-01",
- "organization": [
- {
- "display": "Klinikum Musterstadt"
}
], - "policy": [
- {
- "uri": "fhir/Questionnaire/{{consent-template-id}}"
}
], - "provision": {
- "type": "deny",
- "period": {
- "start": "2020-09-01",
- "end": "2050-08-31"
}, - "provision": [
- {
- "type": "permit",
- "period": {
- "start": "2020-09-01",
- "end": "2025-08-31"
}, - "code": [
- {
- "coding": [
- {
- "system": "urn:oid:2.16.840.1.113883.3.1937.777.24.5.3",
- "code": "2.16.840.1.113883.3.1937.777.24.5.3.1",
- "display": "PATDAT_erheben_speichern_nutzen"
}
]
}
],
}, - {
- "type": "permit",
- "period": {
- "start": "2020-09-01",
- "end": "2050-08-31"
}, - "code": [
- {
- "coding": [
- {
- "system": "urn:oid:2.16.840.1.113883.3.1937.777.24.5.3",
- "code": "2.16.840.1.113883.3.1937.777.24.5.3.10",
- "display": "KKDAT_retrospektiv_uebertragen_speichern_nutzen"
}
]
}
],
}
]
}
}
{- "resourceType": "Consent",
- "id": "34150a23-b1c8-404f-874f-e042a30435d2",
- "meta": {
- "versionId": "1",
- "lastUpdated": "2024-12-11T09:39:07+00:00",
}, - "status": "active",
- "scope": {
}, - "patient": {
}, - "dateTime": "2020-09-01",
- "organization": [
- {
- "display": "Klinikum Musterstadt"
}
], - "policy": [
- {
- "uri": "fhir/Questionnaire/{{consent-template-id}}"
}
], - "provision": {
- "type": "deny",
- "period": {
- "start": "2020-09-01",
- "end": "2050-08-31"
}, - "provision": [
- {
- "type": "permit",
- "period": {
- "start": "2020-09-01",
- "end": "2025-08-31"
}, - "code": [
- {
- "coding": [
- {
- "system": "urn:oid:2.16.840.1.113883.3.1937.777.24.5.3",
- "code": "2.16.840.1.113883.3.1937.777.24.5.3.1",
- "display": "PATDAT_erheben_speichern_nutzen"
}
]
}
],
}, - {
- "type": "permit",
- "period": {
- "start": "2020-09-01",
- "end": "2050-08-31"
}, - "code": [
- {
- "coding": [
- {
- "system": "urn:oid:2.16.840.1.113883.3.1937.777.24.5.3",
- "code": "2.16.840.1.113883.3.1937.777.24.5.3.10",
- "display": "KKDAT_retrospektiv_uebertragen_speichern_nutzen"
}
]
}
],
}
]
}
}
fhir delete
interaction allows to delete an existing consent resource
consentId required | string Example: d7a65ce8-2810-401a-b0db-70782a7b19a6 logical id of an existing resource |
Authorization required | string Example: MainzellisteToken d4f6c78a-a157-44f3-aae2-aee5d6092f57
|
mainzellisteApiVersion | string Example: 3.4 Version of Mainzelliste API. |
fhir create
interaction allows to create a new DocumentReference resource, contains a consent PDF scan encoded as base64 string in the element content[x].attachment.data
Authorization required | string Example: MainzellisteToken d4f6c78a-a157-44f3-aae2-aee5d6092f57
|
mainzellisteApiVersion | string Example: 3.4 Version of Mainzelliste API. |
Ensure that the provided patient identifier subject.identifier
exist. The provided logical Id will be ignored and a new one will be generated
{- "resourceType": "DocumentReference",
- "id": "8a3d1799-2463-405e-b49c-6a16c8692b01",
- "meta": {
- "lastUpdated": "2020-12-11T09:09:07.5320994+00:00",
}, - "status": "current",
- "subject": {
}, - "content": [
- {
- "attachment": {
- "contentType": "application/pdf",
- "data": "YmFzZTY0Q29kaWVydGVzUERGRGVzVW50ZXJzY2hyaWViZW5lblBhdGllbnRlbkVpbndpbGxpZ3VuZ3Nib2dlbnM="
}
}
]
}
{- "resourceType": "DocumentReference",
- "id": "8a3d1799-2463-405e-b49c-6a16c8692b01",
- "meta": {
- "lastUpdated": "2020-12-11T09:09:07.5320994+00:00",
}, - "status": "current",
- "subject": {
}, - "content": [
- {
- "attachment": {
- "contentType": "application/pdf",
- "data": "YmFzZTY0Q29kaWVydGVzUERGRGVzVW50ZXJzY2hyaWViZW5lblBhdGllbnRlbkVpbndpbGxpZ3VuZ3Nib2dlbnM="
}
}
]
}
fhir read
interaction allows to retrieve a DocumentReference resource specified by their Id {documentReferenceId}
documentReferenceId required | string Example: d7a65ce8-2810-401a-b0db-70782a7b19a6 logical id of an existing resource |
Authorization required | string Example: MainzellisteToken d4f6c78a-a157-44f3-aae2-aee5d6092f57
|
mainzellisteApiVersion | string Example: 3.4 Version of Mainzelliste API. |
{- "resourceType": "DocumentReference",
- "id": "8a3d1799-2463-405e-b49c-6a16c8692b01",
- "meta": {
- "lastUpdated": "2020-12-11T09:09:07.5320994+00:00",
}, - "status": "current",
- "subject": {
}, - "content": [
- {
- "attachment": {
- "contentType": "application/pdf",
- "data": "YmFzZTY0Q29kaWVydGVzUERGRGVzVW50ZXJzY2hyaWViZW5lblBhdGllbnRlbkVpbndpbGxpZ3VuZ3Nib2dlbnM="
}
}
]
}
fhir create
interaction allows to create a new Provenance resource that references a DocumentReference resource. This contains a consent PDF scan encoded as base64 string in the element content[x].attachment.data
Authorization required | string Example: MainzellisteToken d4f6c78a-a157-44f3-aae2-aee5d6092f57
|
mainzellisteApiVersion | string Example: 3.4 Version of Mainzelliste API. |
Ensure that the provided consent reference target[x].reference
and the DocumentReference entity[x].what.reference
exist and belong to the same patient. The provided logical Id will be ignored and a new one will be generated.
{- "resourceType": "Provenance",
- "id": "55a994005e3111efab62b9a6cea9aa68",
- "meta": {
- "lastUpdated": "2021-02-08T14:21:07.5320994+00:00",
}, - "target": [
- {
- "reference": "Consent/ed646af05e3a11efb8e0274b483c51ab"
}
], - "recorded": "2020-12-11T09:39:07+00:00",
- "agent": [
- {
- "who": {
- "display": "Snakeoil Soft Consent Manager 2021"
}
}
], - "entity": [
- {
- "role": "source",
- "what": {
- "reference": "DocumentReference/8ec7766069d211efbe67574d8a49b863"
}
}
], - "signature": [
- {
- "type": [
- {
- "system": "urn:iso-astm:E1762-95:2013",
- "code": "1.2.840.10065.1.12.1.7",
- "display": "Consent Signature"
}
], - "when": "2020-12-11T09:39:07+00:00",
- "who": {
}, - "data": "RGllcyBpc3QgZWluIFBsYXR6aGFsdGVyIGbDvHIgZWluZSBnZXNjYW5udCB1bmQgQmFzZTY0LWVuY29kaWVydGUgVW50ZXJzY2hyaWZ0Lg=="
}, - {
- "type": [
- {
- "system": "urn:iso-astm:E1762-95:2013",
- "code": "1.2.840.10065.1.12.1.11",
- "display": "Consent Witness Signature"
}
], - "when": "2020-12-11T09:39:07+00:00",
- "who": {
- "display": "Dr. F. Müller"
}, - "onBehalfOf": {
- "display": "Krankenhaus Musterstadt"
}, - "data": "QUcgRVdFIEZISVIgcm9ja3M="
}
]
}
{- "resourceType": "Provenance",
- "id": "55a994005e3111efab62b9a6cea9aa68",
- "meta": {
- "lastUpdated": "2021-02-08T14:21:07.5320994+00:00",
}, - "target": [
- {
- "reference": "Consent/ed646af05e3a11efb8e0274b483c51ab"
}
], - "recorded": "2020-12-11T09:39:07+00:00",
- "agent": [
- {
- "who": {
- "display": "Snakeoil Soft Consent Manager 2021"
}
}
], - "entity": [
- {
- "role": "source",
- "what": {
- "reference": "DocumentReference/8ec7766069d211efbe67574d8a49b863"
}
}
], - "signature": [
- {
- "type": [
- {
- "system": "urn:iso-astm:E1762-95:2013",
- "code": "1.2.840.10065.1.12.1.7",
- "display": "Consent Signature"
}
], - "when": "2020-12-11T09:39:07+00:00",
- "who": {
}, - "data": "RGllcyBpc3QgZWluIFBsYXR6aGFsdGVyIGbDvHIgZWluZSBnZXNjYW5udCB1bmQgQmFzZTY0LWVuY29kaWVydGUgVW50ZXJzY2hyaWZ0Lg=="
}, - {
- "type": [
- {
- "system": "urn:iso-astm:E1762-95:2013",
- "code": "1.2.840.10065.1.12.1.11",
- "display": "Consent Witness Signature"
}
], - "when": "2020-12-11T09:39:07+00:00",
- "who": {
- "display": "Dr. F. Müller"
}, - "onBehalfOf": {
- "display": "Krankenhaus Musterstadt"
}, - "data": "QUcgRVdFIEZISVIgcm9ja3M="
}
]
}
fhir search
interaction allows to retrieve provenance resources based on target
search criteria.
target | string Example: target=target=Consent/{consentId}/_history/{versionNumber} consent reference. Support only |
Authorization required | string Example: MainzellisteToken d4f6c78a-a157-44f3-aae2-aee5d6092f57
|
mainzellisteApiVersion | string Example: 3.4 Version of Mainzelliste API. |
{- "resourceType": "Bundle",
- "id": "ex-fhir-document-bundle",
- "meta": {
- "lastUpdated": "2013-05-28T22:12:21Z"
}, - "identifier": {
- "system": "urn:ietf:rfc:3986",
- "value": "urn:uuid:0c3151bd-1cbf-4d64-b04d-cd9187a4c6e0"
}, - "type": "document",
- "timestamp": "2013-05-28T22:12:21Z",
- "entry": [
- {
- "resource": { }
}
]
}
Authorization required | string Example: MainzellisteToken d4f6c78a-a157-44f3-aae2-aee5d6092f57
|
mainzellisteApiVersion | string Example: 3.4 Version of Mainzelliste API. |
{- "total": 1,
- "result": [
- {
- "id": "MII_Value_Set",
- "name": "MII Value Set",
- "isExternal": false,
}
]
}
Authorization required | string Example: MainzellisteToken d4f6c78a-a157-44f3-aae2-aee5d6092f57
|
mainzellisteApiVersion | string Example: 3.4 Version of Mainzelliste API. |
id | string policy set identifier |
name | string policy set name |
{- "id": "MII_Value_Set",
- "name": "MII Value Set"
}
{- "id": "MII_Value_Set",
- "name": "MII Value Set",
- "isExternal": false,
}
policySetId required | string |
Authorization required | string Example: MainzellisteToken d4f6c78a-a157-44f3-aae2-aee5d6092f57
|
mainzellisteApiVersion | string Example: 3.4 Version of Mainzelliste API. |
{- "id": "MII_Value_Set",
- "name": "MII Value Set",
- "isExternal": false,
}
policySetId required | string |
Authorization required | string Example: MainzellisteToken d4f6c78a-a157-44f3-aae2-aee5d6092f57
|
mainzellisteApiVersion | string Example: 3.4 Version of Mainzelliste API. |
policySetId required | string |
Authorization required | string Example: MainzellisteToken d4f6c78a-a157-44f3-aae2-aee5d6092f57
|
mainzellisteApiVersion | string Example: 3.4 Version of Mainzelliste API. |
{- "total": 1,
- "result": [
- {
- "code": "2.16.840.1.113883.3.1937.777.24.5.3.2",
- "text": "IDAT erheben",
}
]
}
policySetId required | string |
Authorization required | string Example: MainzellisteToken d4f6c78a-a157-44f3-aae2-aee5d6092f57
|
mainzellisteApiVersion | string Example: 3.4 Version of Mainzelliste API. |
code | string policy identifier |
text | string plain text representation |
{- "code": "2.16.840.1.113883.3.1937.777.24.5.3.2",
- "text": "IDAT erheben"
}
{- "code": "2.16.840.1.113883.3.1937.777.24.5.3.2",
- "text": "IDAT erheben",
}
policySetId required | string |
policyId required | string |
Authorization required | string Example: MainzellisteToken d4f6c78a-a157-44f3-aae2-aee5d6092f57
|
mainzellisteApiVersion | string Example: 3.4 Version of Mainzelliste API. |