openapi: 3.0.3 info: title: EHR API version: latest x-status: STABLE x-spec: ehr contact: name: Specifications Editorial Committee openEHR url: https://specifications.openehr.org/ email: info@openehr.org license: name: Creative Commons Attribution-NoDerivs 3.0 Unported url: https://creativecommons.org/licenses/by-nd/3.0/ description: | ## Description ### Purpose This specification describes service endpoints, resources and operations as well as details of requests and responses that interacts with EHR openEHR API in a RESTful manner. ### Related Documents Prerequisite documents for reading this document include: - The [EHR Information Model](https://specifications.openehr.org/releases/RM/latest/ehr.html#_the_ehr_information_model) Related documents include: - The [openEHR Architecture Overview](https://specifications.openehr.org/releases/BASE/latest/architecture_overview.html) - The [openEHR Global Class Index](https://specifications.openehr.org/classes) - The [XML-Schemas (XSD)](https://specifications.openehr.org/releases/ITS-XML/latest) - The [JSON-Schemas](https://specifications.openehr.org/releases/ITS-JSON/latest) and [Simplified Data Template (SDT)](simplified_data_template.html) - The [openEHR Platform Abstract Service Model](https://specifications.openehr.org/releases/SM/latest/openehr_platform.html) ### Status This specification is in the `STABLE` state, and can be downloaded as [OpenAPI specification](https://spec.openapis.org/oas/v3.0.3) file (in YAML format) [for validation](computable/OAS/ehr-validation.openapi.yaml), or [for code generators](computable/OAS/ehr-codegen.openapi.yaml). Users are encouraged to comment on and/or advise on these paragraphs as well as the main content. The development version of this document can be found at . servers: - url: https://{baseUrl}/v1 description: An example openEHR server URL. variables: baseUrl: default: openEHRSys.example.com description: The (example) server base URL prefix providing openEHR services. This may contain server name, port and base path prefix. security: [] tags: - name: EHR description: | Management of [EHRs](https://specifications.openehr.org/releases/RM/latest/ehr.html#_ehr_class). Actions upon resources of this group are also formally described in the [I_EHR_SERVICE](https://specifications.openehr.org/releases/SM/latest/openehr_platform.html#_i_ehr_service_interface) Abstract Service Model interface. - name: EHR_STATUS description: | Management of [EHR_STATUS](https://specifications.openehr.org/releases/RM/latest/ehr.html#_ehr_status_class) and [VERSIONED_EHR_STATUS](https://specifications.openehr.org/releases/RM/latest/ehr.html#_versioned_ehr_status_class) resources. Actions upon resources of this group are also formally described in the [I_EHR_STATUS](https://specifications.openehr.org/releases/SM/latest/openehr_platform.html#_i_ehr_status_interface) Abstract Service Model interface. - name: COMPOSITION description: | Management of [COMPOSITION](https://specifications.openehr.org/releases/RM/latest/ehr.html#_composition_class) and [VERSIONED_COMPOSITION](https://specifications.openehr.org/releases/RM/latest/ehr.html#_versioned_composition_class) resources. Actions upon resources of this group are also formally described in the [I_EHR_COMPOSITION](https://specifications.openehr.org/releases/SM/latest/openehr_platform.html#_i_ehr_composition_interface) Abstract Service Model interface. - name: DIRECTORY description: | Management of the [directory](https://specifications.openehr.org/releases/RM/latest/ehr.html#_directory) [FOLDER](https://specifications.openehr.org/releases/RM/latest/common.html#_folder_class) resource. Actions upon resources of this group are also formally described in the [I_EHR_DIRECTORY](https://specifications.openehr.org/releases/SM/latest/openehr_platform.html#_i_ehr_directory_interface) Abstract Service Model interface. - name: CONTRIBUTION description: | Management of [CONTRIBUTION](https://specifications.openehr.org/releases/RM/latest/common.html#_contribution_class) resource. Actions upon resources of this group are also formally described in the [I_EHR_CONTRIBUTION](https://specifications.openehr.org/releases/SM/latest/openehr_platform.html#_i_ehr_contribution_interface) Abstract Service Model interface. paths: /ehr: post: operationId: ehr_create summary: Create EHR description: | Create a new `EHR` with an auto-generated identifier. An EHR_STATUS resource needs to be always created and committed in the new EHR. This resource MAY be also supplied by the client as the request body. If not supplied, a default EHR_STATUS will be used by the service with following attributes: - `is_queryable`: true - `is_modifiable`: true - `subject`: a PARTY_SELF object All other required EHR attributes and resources will be automatically created as needed by the [EHR creation semantics](https://specifications.openehr.org/releases/RM/latest/ehr.html#_ehr_creation_semantics). tags: - EHR parameters: - $ref: '#/components/parameters/Prefer' requestBody: description: | An EHR_STATUS resource MAY be also supplied by the client as the request body. content: application/json: schema: $ref: '#/components/schemas/EhrStatus' required: false responses: '201': $ref: '#/components/responses/201_EHR' '400': $ref: '#/components/responses/400' '409': $ref: '#/components/responses/409_EHR' get: operationId: ehr_get_by_subject summary: Get EHR by subject id description: | Retrieve the EHR with the specified `subject_id` and `subject_namespace`. These subject parameters will be matched against EHR's EHR_STATUS.subject.external_ref.id.value and EHR_STATUS.subject.external_ref.namespace values. tags: - EHR parameters: - $ref: '#/components/parameters/subject_id' - $ref: '#/components/parameters/subject_namespace' responses: '200': $ref: '#/components/responses/200_EHR' '404': $ref: '#/components/responses/404_EHR_subject' /ehr/{ehr_id}: put: operationId: ehr_create_with_id summary: Create EHR with id description: | Create a new EHR with the specified `ehr_id` identifier. The value of the `ehr_id` unique identifier MUST be valid [HIER_OBJECT_ID](https://specifications.openehr.org/releases/BASE/latest/base_types.html#_hier_object_id_class) value. It is strongly RECOMMENDED that an UUID always be used for this. An EHR_STATUS resource needs to be always created and committed in the new EHR. This resource MAY be also supplied by the client as the request body. If not supplied, a default EHR_STATUS will be used by the service with following attributes: - `is_queryable`: true - `is_modifiable`: true - `subject`: a PARTY_SELF object All other required EHR attributes and resources will be automatically created as needed by the [EHR creation semantics](https://specifications.openehr.org/releases/RM/latest/ehr.html#_ehr_creation_semantics). tags: - EHR parameters: - $ref: '#/components/parameters/ehr_id' - $ref: '#/components/parameters/Prefer' requestBody: description: | An EHR_STATUS resource MAY be also supplied by the client as the request body. content: application/json: schema: $ref: '#/components/schemas/EhrStatus' required: false responses: '201': $ref: '#/components/responses/201_EHR' '400': $ref: '#/components/responses/400' '409': $ref: '#/components/responses/409_EHR_with_id' get: operationId: ehr_get_by_id summary: Get EHR by id description: | Retrieve the EHR with the specified `ehr_id`. tags: - EHR parameters: - $ref: '#/components/parameters/ehr_id' responses: '200': $ref: '#/components/responses/200_EHR' '404': $ref: '#/components/responses/404_unknown_ehr_id' /ehr/{ehr_id}/ehr_status/{version_uid}: get: operationId: ehr_status_get_by_version_id summary: Get EHR_STATUS by version id description: | Retrieves a particular version of the EHR_STATUS identified by `version_uid` and associated with the EHR identified by `ehr_id`. tags: - EHR_STATUS parameters: - $ref: '#/components/parameters/ehr_id' - $ref: '#/components/parameters/version_uid' responses: '200': $ref: '#/components/responses/200_EHR_STATUS_retrieved' '404': $ref: '#/components/responses/404_unknown_ehr_id_or_version_uid' /ehr/{ehr_id}/ehr_status: get: operationId: ehr_status_get_at_time summary: Get EHR_STATUS at time description: | Retrieves a version of the EHR_STATUS associated with the EHR identified by `ehr_id`. If `version_at_time` is supplied, retrieves the version extant _at specified time_, otherwise retrieves the _latest_ EHR_STATUS version. tags: - EHR_STATUS parameters: - $ref: '#/components/parameters/ehr_id' - $ref: '#/components/parameters/version_at_time' responses: '200': $ref: '#/components/responses/200_EHR_STATUS_retrieved' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404_unknown_ehr_id_or_no_version_at_time' put: operationId: ehr_status_update summary: Update EHR_STATUS description: | Updates EHR_STATUS associated with the EHR identified by `ehr_id`. The existing latest `version_uid` of EHR_STATUS resource (i.e. the `preceding_version_uid`) must be specified in the `If-Match` header. The response will contain the updated EHR_STATUS resource when the `Prefer` header has a value of `return=representation`. tags: - EHR_STATUS parameters: - $ref: '#/components/parameters/ehr_id' - $ref: '#/components/parameters/If-Match' - $ref: '#/components/parameters/Prefer' requestBody: description: | The new EHR_STATUS. content: application/json: schema: $ref: '#/components/schemas/EhrStatus' required: true responses: '200': $ref: '#/components/responses/200_EHR_STATUS_updated' '204': $ref: '#/components/responses/204_EHR_STATUS' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404_unknown_ehr_id' '412': $ref: '#/components/responses/412_EHR_STATUS' /ehr/{ehr_id}/versioned_ehr_status: get: operationId: versioned_ehr_status_get summary: Get versioned EHR_STATUS description: | Retrieves a VERSIONED_EHR_STATUS associated with an EHR identified by `ehr_id`. tags: - EHR_STATUS parameters: - $ref: '#/components/parameters/ehr_id' responses: '200': $ref: '#/components/responses/200_VERSIONED_EHR_STATUS' '404': $ref: '#/components/responses/404_unknown_ehr_id' /ehr/{ehr_id}/versioned_ehr_status/revision_history: get: operationId: versioned_ehr_status_revision_history summary: Get versioned EHR_STATUS revision history description: | Retrieves revision history of the VERSIONED_EHR_STATUS associated with the EHR identified by `ehr_id`. tags: - EHR_STATUS parameters: - $ref: '#/components/parameters/ehr_id' responses: '200': $ref: '#/components/responses/200_REVISION_HISTORY' '404': $ref: '#/components/responses/404_unknown_ehr_id' /ehr/{ehr_id}/versioned_ehr_status/version: get: operationId: versioned_ehr_status_version_get_at_time summary: Get versioned EHR_STATUS version at time description: | Retrieves a VERSION from the VERSIONED_EHR_STATUS associated with the EHR identified by `ehr_id`. If `version_at_time` is supplied, retrieves the VERSION extant _at specified time_, otherwise retrieves the _latest_ VERSION. tags: - EHR_STATUS parameters: - $ref: '#/components/parameters/ehr_id' - $ref: '#/components/parameters/version_at_time' responses: '200': $ref: '#/components/responses/200_VERSION_of_EHR_STATUS_at_time' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404_unknown_ehr_id_or_no_version_at_time' /ehr/{ehr_id}/versioned_ehr_status/version/{version_uid}: get: operationId: versioned_ehr_status_version_get_by_id summary: Get versioned EHR_STATUS version by id description: | Retrieves a VERSION identified by `version_uid` of an EHR_STATUS associated with the EHR identified by `ehr_id`. tags: - EHR_STATUS parameters: - $ref: '#/components/parameters/ehr_id' - $ref: '#/components/parameters/version_uid' responses: '200': $ref: '#/components/responses/200_VERSION_of_EHR_STATUS_by_id' '404': $ref: '#/components/responses/404_unknown_ehr_id_or_version_uid' /ehr/{ehr_id}/composition: post: operationId: composition_create summary: Create COMPOSITION description: | Creates the first version of a new COMPOSITION in the EHR identified by `ehr_id`. tags: - COMPOSITION parameters: - $ref: '#/components/parameters/ehr_id' - $ref: '#/components/parameters/Prefer' requestBody: description: | The COMPOSITION. content: application/json: schema: $ref: '#/components/schemas/Composition' required: true responses: '201': $ref: '#/components/responses/201_COMPOSITION' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404_unknown_ehr_id' '422': $ref: '#/components/responses/422' /ehr/{ehr_id}/composition/{uid_based_id}: get: operationId: composition_get summary: Get COMPOSITION description: | Retrieves a version of the COMPOSITION identified by `uid_based_id` and associated with the EHR identified by `ehr_id`. The `uid_based_id` can take a form of an OBJECT_VERSION_ID identifier taken from VERSION.uid.value (i.e. a `version_uid`), or a form of a HIER_OBJECT_ID identifier taken from VERSIONED_OBJECT.uid.value (i.e. a `versioned_object_uid`). The former is used to retrieve a specific known version of the COMPOSITION (e.g. one identified by `8849182c-82ad-4088-a07f-48ead4180515::openEHRSys.example.com::1`), whereas the later (e.g. an identifier like `8849182c-82ad-4088-a07f-48ead4180515`) is be used to retrieve a version from the version container whenever the _version_tree_id_ is unknown or irrelevant (such as when most recent version is requested). When the `uid_based_id` has the form of a HIER_OBJECT_ID, if the `version_at_time` is supplied, retrieves the version extant _at specified time_, otherwise retrieves the _latest_ COMPOSITION version. See [Resource identification](overview.html#tag/Resources/Resource-identification) for more details about the identifiers usage and meaning. tags: - COMPOSITION parameters: - $ref: '#/components/parameters/ehr_id' - $ref: '#/components/parameters/uid_based_id' - $ref: '#/components/parameters/version_at_time' responses: '200': $ref: '#/components/responses/200_COMPOSITION_retrieved' '204': $ref: '#/components/responses/204_because_deleted_at_time' '404': $ref: '#/components/responses/404_unknown_ehr_id_or_no_version_at_time' put: operationId: composition_update summary: Update COMPOSITION description: | Updates COMPOSITION identified by `uid_based_id` and associated with the EHR identified by `ehr_id`. The `uid_based_id` can take only a form of an HIER_OBJECT_ID identifier taken from VERSIONED_OBJECT.uid.value (i.e. a `versioned_object_uid`). If the request body already contains a COMPOSITION.uid.value, it must match the `uid_based_id` in the URL. The existing latest `version_uid` of COMPOSITION resource (i.e. the `preceding_version_uid`) must be specified in the `If-Match` header. tags: - COMPOSITION parameters: - $ref: '#/components/parameters/ehr_id' - $ref: '#/components/parameters/uid_based_id_as_versioned_object_uid' - $ref: '#/components/parameters/If-Match' - $ref: '#/components/parameters/Prefer' requestBody: description: | The new COMPOSITION. content: application/json: schema: $ref: '#/components/schemas/Composition' required: true responses: '200': $ref: '#/components/responses/200_COMPOSITION_updated' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404_unknown_ehr_id_or_uid_based_id' '412': $ref: '#/components/responses/412_COMPOSITION' '422': $ref: '#/components/responses/422' delete: operationId: composition_delete summary: Delete COMPOSITION description: | Deletes the COMPOSITION identified by `uid_based_id` and associated with the EHR identified by `ehr_id`. The `uid_based_id` MUST be in a form of an OBJECT_VERSION_ID identifier taken from the last (most recent) VERSION.uid.value, representing the `preceding_version_uid` to be deleted. tags: - COMPOSITION parameters: - $ref: '#/components/parameters/ehr_id' - $ref: '#/components/parameters/uid_based_id_as_version_uid' responses: '204': $ref: '#/components/responses/204_COMPOSITION_deleted' '400': $ref: '#/components/responses/400_already_deleted' '404': $ref: '#/components/responses/404_unknown_ehr_id_or_uid_based_id' '409': $ref: '#/components/responses/409_COMPOSITION_with_uid_based_id' /ehr/{ehr_id}/versioned_composition/{versioned_object_uid}: get: operationId: versioned_composition_get summary: Get versioned COMPOSITION description: | Retrieves a VERSIONED_COMPOSITION identified by `versioned_object_uid` and associated with the EHR identified by `ehr_id`. tags: - COMPOSITION parameters: - $ref: '#/components/parameters/ehr_id' - $ref: '#/components/parameters/versioned_object_uid_COMPOSITION' responses: '200': $ref: '#/components/responses/200_VERSIONED_COMPOSITION' '404': $ref: '#/components/responses/404_unknown_ehr_id_or_versioned_object_uid' /ehr/{ehr_id}/versioned_composition/{versioned_object_uid}/revision_history: get: operationId: versioned_composition_revision_history summary: Get versioned COMPOSITION revision history description: | Retrieves revision history of the VERSIONED_COMPOSITION identified by `versioned_object_uid` and associated with the EHR identified by `ehr_id`. tags: - COMPOSITION parameters: - $ref: '#/components/parameters/ehr_id' - $ref: '#/components/parameters/versioned_object_uid_COMPOSITION' responses: '200': $ref: '#/components/responses/200_REVISION_HISTORY' '404': $ref: '#/components/responses/404_unknown_ehr_id_or_versioned_object_uid' /ehr/{ehr_id}/versioned_composition/{versioned_object_uid}/version: get: operationId: versioned_composition_version_get_at_time summary: Get versioned COMPOSITION version at time description: | Retrieves a VERSION from the VERSIONED_COMPOSITION identified by `versioned_object_uid` and associated with the EHR identified by `ehr_id`. If `version_at_time` is supplied, retrieves the VERSION extant _at specified time_, otherwise retrieves the _latest_ VERSION. tags: - COMPOSITION parameters: - $ref: '#/components/parameters/ehr_id' - $ref: '#/components/parameters/versioned_object_uid_COMPOSITION' - $ref: '#/components/parameters/version_at_time' responses: '200': $ref: '#/components/responses/200_VERSION_of_COMPOSITION_at_time' '404': $ref: '#/components/responses/404_unknown_ehr_id_or_versioned_object_uid_or_no_version_at_time' /ehr/{ehr_id}/versioned_composition/{versioned_object_uid}/version/{version_uid}: get: operationId: versioned_composition_version_get_by_id summary: Get versioned COMPOSITION version by id description: | Retrieves a VERSION identified by `version_uid` of a VERSIONED_COMPOSITION identified by `versioned_object_uid` and associated with the EHR identified by `ehr_id`. tags: - COMPOSITION parameters: - $ref: '#/components/parameters/ehr_id' - $ref: '#/components/parameters/versioned_object_uid_COMPOSITION' - $ref: '#/components/parameters/version_uid_COMPOSITION' responses: '200': $ref: '#/components/responses/200_VERSION_of_COMPOSITION_by_id' '404': $ref: '#/components/responses/404_unknown_ehr_id_or_versioned_object_uid_or_version_uid' /ehr/{ehr_id}/directory: post: operationId: directory_create summary: Create directory description: | Creates a new directory FOLDER associated with the EHR identified by `ehr_id`. tags: - DIRECTORY parameters: - $ref: '#/components/parameters/ehr_id' - $ref: '#/components/parameters/Prefer' requestBody: description: | The directory. content: application/json: schema: $ref: '#/components/schemas/Folder' required: true responses: '201': $ref: '#/components/responses/201_directory' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404_unknown_ehr_id' put: operationId: directory_update summary: Update directory description: | Updates directory FOLDER associated with the EHR identified by `ehr_id`. The existing latest `version_uid` of directory FOLDER resource (i.e. the `preceding_version_uid`) must be specified in the `If-Match` header. tags: - DIRECTORY parameters: - $ref: '#/components/parameters/ehr_id' - $ref: '#/components/parameters/If-Match' - $ref: '#/components/parameters/Prefer' requestBody: description: | The new directory. content: application/json: schema: $ref: '#/components/schemas/Folder' required: true responses: '200': $ref: '#/components/responses/200_directory_updated' '204': $ref: '#/components/responses/204_directory_updated' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404_unknown_ehr_id' '412': $ref: '#/components/responses/412_directory' delete: operationId: directory_delete summary: Delete directory description: | Deletes directory FOLDER associated with the EHR identified by `ehr_id`. The existing latest `version_uid` of directory FOLDER resource (i.e. the `preceding_version_uid`) must be specified in the `If-Match` header. tags: - DIRECTORY parameters: - $ref: '#/components/parameters/ehr_id' - $ref: '#/components/parameters/If-Match' responses: '204': $ref: '#/components/responses/204_because_deleted' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404_unknown_ehr_id' '412': $ref: '#/components/responses/412_directory' get: operationId: directory_get_at_time summary: Get folder in directory version at time description: | Retrieves the version of the directory FOLDER associated with the EHR identified by `ehr_id`. If `version_at_time` is supplied, retrieves the version extant _at specified time_, otherwise retrieves the _latest_ directory FOLDER version. If `path` is supplied, retrieves from the directory only the sub-FOLDER that is associated with that path. tags: - DIRECTORY parameters: - $ref: '#/components/parameters/ehr_id' - $ref: '#/components/parameters/version_at_time' - $ref: '#/components/parameters/path' responses: '200': $ref: '#/components/responses/200_FOLDER_retrieved' '204': $ref: '#/components/responses/204_because_deleted_at_time' '404': $ref: '#/components/responses/404_directory_unknown_ehr_id_or_no_version_at_time_or_no_path' /ehr/{ehr_id}/directory/{version_uid}: get: operationId: directory_get_by_version_id summary: Get folder in directory version description: | Retrieves a particular version of the directory FOLDER identified by `version_uid` and associated with the EHR identified by `ehr_id`. If `path` is supplied, retrieves from the directory only the sub-FOLDER that is associated with that path. tags: - DIRECTORY parameters: - $ref: '#/components/parameters/ehr_id' - $ref: '#/components/parameters/version_uid' - $ref: '#/components/parameters/path' responses: '200': $ref: '#/components/responses/200_FOLDER_retrieved' '404': $ref: '#/components/responses/404_directory_unknown_ehr_id_or_no_version_uid_or_no_path' /ehr/{ehr_id}/contribution: post: operationId: contribution_create summary: Create CONTRIBUTION description: | We will use the relaxed CONTRIBUTION with the following optional attributes: - `uid`: when provided, it will be accepted in case is not in-use, otherwise error will be returned - `audit.time_committed`: server will always set it - `audit.system_id`: when provided, it will be validated tags: - CONTRIBUTION parameters: - $ref: '#/components/parameters/ehr_id' - $ref: '#/components/parameters/Prefer' requestBody: description: | The CONTRIBUTION. content: application/json: schema: $ref: '#/components/schemas/NewContribution' required: true responses: '201': $ref: '#/components/responses/201_CONTRIBUTION' '400': $ref: '#/components/responses/400_CONTRIBUTION' '404': $ref: '#/components/responses/404_unknown_ehr_id' '409': $ref: '#/components/responses/409' /ehr/{ehr_id}/contribution/{contribution_uid}: get: operationId: contribution_get summary: Get CONTRIBUTION by id description: | Retrieves a CONTRIBUTION identified by `contribution_uid` and associated with the EHR identified by `ehr_id`. tags: - CONTRIBUTION parameters: - $ref: '#/components/parameters/ehr_id' - $ref: '#/components/parameters/contribution_uid' responses: '200': $ref: '#/components/responses/200_CONTRIBUTION' '404': $ref: '#/components/responses/404_CONTRIBUTION' components: schemas: VersionOfComposition: title: VERSION required: - contribution - commit_audit - data type: object properties: _type: type: string contribution: $ref: '#/components/schemas/ObjectRefOfHierObjectId' signature: type: string commit_audit: $ref: '#/components/schemas/AuditDetails' data: $ref: '#/components/schemas/Composition' description: A VERSION resource VersionOfEhrStatus: title: VERSION required: - contribution - commit_audit - data type: object properties: _type: type: string contribution: $ref: '#/components/schemas/ObjectRefOfHierObjectId' signature: type: string commit_audit: $ref: '#/components/schemas/AuditDetails' data: $ref: '#/components/schemas/EhrStatus' description: A VERSION resource ObjectId: title: OBJECT_ID required: - value type: object properties: _type: type: string value: type: string discriminator: propertyName: _type mapping: ARCHETYPE_ID: '#/components/schemas/ArchetypeId' GENERIC_ID: '#/components/schemas/GenericId' HIER_OBJECT_ID: '#/components/schemas/HierObjectId' OBJECT_VERSION_ID: '#/components/schemas/ObjectVersionId' TEMPLATE_ID: '#/components/schemas/TemplateId' TERMINOLOGY_ID: '#/components/schemas/TerminologyId' UID_BASED_ID: '#/components/schemas/UidBasedId' UidBasedId: title: UID_BASED_ID type: object allOf: - $ref: '#/components/schemas/ObjectId' x-discriminator-value: UID_BASED_ID discriminator: propertyName: _type mapping: HIER_OBJECT_ID: '#/components/schemas/HierObjectId' OBJECT_VERSION_ID: '#/components/schemas/ObjectVersionId' HierObjectId: title: HIER_OBJECT_ID required: - value type: object allOf: - $ref: '#/components/schemas/UidBasedId' properties: _type: enum: - HIER_OBJECT_ID type: string value: type: string example: value: 6cb19121-4307-4648-9da0-d62e4d51f19b x-discriminator-value: HIER_OBJECT_ID ArchetypeId: title: ARCHETYPE_ID type: object allOf: - $ref: '#/components/schemas/ObjectId' properties: _type: enum: - ARCHETYPE_ID type: string x-discriminator-value: ARCHETYPE_ID TemplateId: title: TEMPLATE_ID type: object allOf: - $ref: '#/components/schemas/ObjectId' properties: _type: enum: - TEMPLATE_ID type: string x-discriminator-value: TEMPLATE_ID TerminologyId: title: TERMINOLOGY_ID type: object allOf: - $ref: '#/components/schemas/ObjectId' properties: _type: enum: - TERMINOLOGY_ID type: string x-discriminator-value: TERMINOLOGY_ID GenericId: title: GENERIC_ID required: - scheme type: object allOf: - $ref: '#/components/schemas/ObjectId' properties: _type: enum: - GENERIC_ID type: string scheme: type: string x-discriminator-value: GENERIC_ID ObjectVersionId: title: OBJECT_VERSION_ID required: - value type: object allOf: - $ref: '#/components/schemas/UidBasedId' properties: _type: enum: - OBJECT_VERSION_ID type: string example: value: 6cb19121-4307-4648-9da0-d62e4d51f19b::openEHRSys.example.com::2 x-discriminator-value: OBJECT_VERSION_ID ObjectRef: title: OBJECT_REF required: - namespace - type - id type: object properties: namespace: type: string type: type: string id: $ref: '#/components/schemas/ObjectId' example: id: _type: OBJECT_VERSION_ID value: fb458d9c-1323-42bc-b7f8-787f3660a0b5::openEHRSys.example.com::1 namespace: local type: COMPOSITION discriminator: propertyName: _type mapping: OBJECT_REF: '#/components/schemas/ObjectRef' ObjectRefOfObjectVersionId: title: OBJECT_REF type: object allOf: - $ref: '#/components/schemas/ObjectRef' properties: id: $ref: '#/components/schemas/ObjectVersionId' example: id: _type: OBJECT_VERSION_ID value: fb458d9c-1323-42bc-b7f8-787f3660a0b5::openEHRSys.example.com::1 namespace: local type: COMPOSITION DataValue: title: DATA_VALUE type: object properties: _type: type: string discriminator: propertyName: _type mapping: DV_AMOUNT: '#/components/schemas/DvAmount' DV_BOOLEAN: '#/components/schemas/DvBoolean' DV_CODED_TEXT: '#/components/schemas/DvCodedText' DV_COUNT: '#/components/schemas/DvCount' DV_DATE: '#/components/schemas/DvDate' DV_DATE_TIME: '#/components/schemas/DvDateTime' DV_DURATION: '#/components/schemas/DvDuration' DV_EHR_URI: '#/components/schemas/DvEhrUri' DV_ENCAPSULATED: '#/components/schemas/DvEncapsulated' DV_IDENTIFIER: '#/components/schemas/DvIdentifier' DV_INTERVAL: '#/components/schemas/DvInterval' DV_INTERVAL_of_DATE_TIME: '#/components/schemas/DvIntervalOfDateTime' DV_MULTIMEDIA: '#/components/schemas/DvMultimedia' DV_ORDERED: '#/components/schemas/DvOrdered' DV_ORDINAL: '#/components/schemas/DvOrdinal' DV_PARSABLE: '#/components/schemas/DvParsable' DV_PROPORTION: '#/components/schemas/DvProportion' DV_QUANTIFIED: '#/components/schemas/DvQuantified' DV_QUANTITY: '#/components/schemas/DvQuantity' DV_SCALE: '#/components/schemas/DvScale' DV_STATE: '#/components/schemas/DvState' DV_TEMPORAL: '#/components/schemas/DvTemporal' DV_TEXT: '#/components/schemas/DvText' DV_TIME: '#/components/schemas/DvTime' DV_URI: '#/components/schemas/DvUri' CodePhrase: title: CODE_PHRASE required: - terminology_id - code_string type: object properties: terminology_id: $ref: '#/components/schemas/TerminologyId' code_string: type: string preferred_term: type: string example: terminology_id: value: local code_string: at0001 DvInterval: title: DV_INTERVAL required: - lower_unbounded - upper_unbounded - lower_included - upper_included type: object allOf: - $ref: '#/components/schemas/DataValue' properties: _type: type: string default: DV_INTERVAL lower_unbounded: type: boolean upper_unbounded: type: boolean lower_included: type: boolean upper_included: type: boolean x-discriminator-value: DV_INTERVAL discriminator: propertyName: _type mapping: DV_INTERVAL_of_DATE_TIME: '#/components/schemas/DvIntervalOfDateTime' DvUri: title: DV_URI required: - value type: object allOf: - $ref: '#/components/schemas/DataValue' properties: _type: enum: - DV_URI - DV_EHR_URI type: string default: DV_URI value: type: string example: _type: DV_URI value: https://www.example.com x-discriminator-value: DV_URI discriminator: propertyName: _type mapping: DV_EHR_URI: '#/components/schemas/DvEhrUri' DvEhrUri: title: DV_EHR_URI type: object allOf: - $ref: '#/components/schemas/DvUri' properties: _type: enum: - DV_EHR_URI type: string example: _type: DV_EHR_URI value: ehr://system_id/ehr_id/top_level_structure_locator/path_inside_top_level_structure x-discriminator-value: DV_EHR_URI DvText: title: DV_TEXT required: - value type: object allOf: - $ref: '#/components/schemas/DataValue' properties: _type: enum: - DV_TEXT - DV_CODED_TEXT type: string default: DV_TEXT value: type: string hyperlink: $ref: '#/components/schemas/DvUri' formatting: type: string mappings: type: array items: $ref: '#/components/schemas/TermMapping' language: $ref: '#/components/schemas/CodePhrase' encoding: $ref: '#/components/schemas/CodePhrase' example: _type: DV_TEXT value: Text value x-discriminator-value: DV_TEXT discriminator: propertyName: _type mapping: DV_CODED_TEXT: '#/components/schemas/DvCodedText' DvCodedText: title: DV_CODED_TEXT required: - defining_code type: object allOf: - $ref: '#/components/schemas/DvText' properties: _type: enum: - DV_CODED_TEXT type: string defining_code: $ref: '#/components/schemas/CodePhrase' example: value: Coded text value defining_code: terminology_id: value: local code_string: at0001 x-discriminator-value: DV_CODED_TEXT TermMapping: title: TERM_MAPPING required: - match - target type: object properties: match: pattern: /^[><=?]$/ type: string purpose: $ref: '#/components/schemas/DvCodedText' target: $ref: '#/components/schemas/CodePhrase' ReferenceRange: title: REFERENCE_RANGE required: - meaning - range type: object properties: meaning: $ref: '#/components/schemas/DvText' range: $ref: '#/components/schemas/DvInterval' DvOrdered: title: DV_ORDERED type: object allOf: - $ref: '#/components/schemas/DataValue' properties: _type: type: string default: DV_ORDERED normal_status: $ref: '#/components/schemas/CodePhrase' normal_range: $ref: '#/components/schemas/DvInterval' other_reference_ranges: type: array items: $ref: '#/components/schemas/ReferenceRange' x-discriminator-value: DV_ORDERED discriminator: propertyName: _type mapping: DV_AMOUNT: '#/components/schemas/DvAmount' DV_COUNT: '#/components/schemas/DvCount' DV_DATE: '#/components/schemas/DvDate' DV_DATE_TIME: '#/components/schemas/DvDateTime' DV_DURATION: '#/components/schemas/DvDuration' DV_ORDINAL: '#/components/schemas/DvOrdinal' DV_PROPORTION: '#/components/schemas/DvProportion' DV_QUANTIFIED: '#/components/schemas/DvQuantified' DV_QUANTITY: '#/components/schemas/DvQuantity' DV_SCALE: '#/components/schemas/DvScale' DV_TEMPORAL: '#/components/schemas/DvTemporal' DV_TIME: '#/components/schemas/DvTime' DvQuantified: title: DV_QUANTIFIED type: object allOf: - $ref: '#/components/schemas/DvOrdered' properties: _type: type: string default: DV_QUANTIFIED magnitude_status: type: string default: '=' x-discriminator-value: DV_QUANTIFIED discriminator: propertyName: _type mapping: DV_AMOUNT: '#/components/schemas/DvAmount' DV_COUNT: '#/components/schemas/DvCount' DV_DATE: '#/components/schemas/DvDate' DV_DATE_TIME: '#/components/schemas/DvDateTime' DV_DURATION: '#/components/schemas/DvDuration' DV_PROPORTION: '#/components/schemas/DvProportion' DV_QUANTITY: '#/components/schemas/DvQuantity' DV_TEMPORAL: '#/components/schemas/DvTemporal' DV_TIME: '#/components/schemas/DvTime' DvAmount: title: DV_AMOUNT type: object allOf: - $ref: '#/components/schemas/DvQuantified' properties: _type: type: string default: DV_AMOUNT accuracy_is_percent: type: boolean accuracy: type: number x-discriminator-value: DV_AMOUNT discriminator: propertyName: _type mapping: DV_COUNT: '#/components/schemas/DvCount' DV_DURATION: '#/components/schemas/DvDuration' DV_PROPORTION: '#/components/schemas/DvProportion' DV_QUANTITY: '#/components/schemas/DvQuantity' DvDuration: title: DV_DURATION type: object allOf: - $ref: '#/components/schemas/DvAmount' properties: _type: type: string default: DV_DURATION x-discriminator-value: DV_DURATION DvTemporal: title: DV_TEMPORAL type: object allOf: - $ref: '#/components/schemas/DvQuantified' properties: _type: type: string default: DV_TEMPORAL accuracy: $ref: '#/components/schemas/DvDuration' x-discriminator-value: DV_TEMPORAL discriminator: propertyName: _type mapping: DV_DATE: '#/components/schemas/DvDate' DV_DATE_TIME: '#/components/schemas/DvDateTime' DV_TIME: '#/components/schemas/DvTime' DvDateTime: title: DV_DATE_TIME required: - value type: object allOf: - $ref: '#/components/schemas/DvTemporal' properties: _type: type: string default: DV_DATE_TIME value: type: string format: date-time example: _type: DV_DATE_TIME value: '2017-08-15T10:37:15.422+02:00' x-discriminator-value: DV_DATE_TIME Ehr: title: EHR type: object properties: system_id: $ref: '#/components/schemas/HierObjectId' ehr_id: $ref: '#/components/schemas/HierObjectId' ehr_status: $ref: '#/components/schemas/ObjectRefOfObjectVersionId' ehr_access: $ref: '#/components/schemas/ObjectRefOfObjectVersionId' time_created: $ref: '#/components/schemas/DvDateTime' description: An EHR resource example: system_id: value: 9624982A-9F42-41A5-9318-AE13D5F5031F ehr_id: value: 7d44b88c-4199-4bad-97dc-d78268e01398 ehr_status: id: _type: OBJECT_VERSION_ID value: 8849182c-82ad-4088-a07f-48ead4180515::openEHRSys.example.com::1 namespace: local type: EHR_STATUS ehr_access: id: _type: OBJECT_VERSION_ID value: 59a8d0ac-140e-4feb-b2d6-af99f8e68af8::openEHRSys.example.com::1 namespace: local type: EHR_ACCESS time_created: value: '2015-01-20T19:30:22.765+01:00' Pathable: title: PATHABLE type: object properties: _type: type: string discriminator: propertyName: _type mapping: ACTION: '#/components/schemas/Action' ACTIVITY: '#/components/schemas/Activity' ADMIN_ENTRY: '#/components/schemas/AdminEntry' CARE_ENTRY: '#/components/schemas/CareEntry' CLUSTER: '#/components/schemas/Clstr' COMPOSITION: '#/components/schemas/Composition' CONTENT_ITEM: '#/components/schemas/ContentItem' DATA_STRUCTURE: '#/components/schemas/DataStructure' EHR_STATUS: '#/components/schemas/EhrStatus' ELEMENT: '#/components/schemas/Element' ENTRY: '#/components/schemas/AbstractEntry' EVALUATION: '#/components/schemas/Evaluation' EVENT: '#/components/schemas/Event' EVENT_CONTEXT: '#/components/schemas/EventContext' FOLDER: '#/components/schemas/Folder' HISTORY: '#/components/schemas/History' INSTRUCTION: '#/components/schemas/Instruction' INSTRUCTION_DETAILS: '#/components/schemas/InstructionDetails' ISM_TRANSITION: '#/components/schemas/IsmTransition' ITEM: '#/components/schemas/Item' ITEM_LIST: '#/components/schemas/ItemList' ITEM_SINGLE: '#/components/schemas/ItemSingle' ITEM_STRUCTURE: '#/components/schemas/ItemStructure' ITEM_TABLE: '#/components/schemas/ItemTable' ITEM_TREE: '#/components/schemas/ItemTree' LOCATABLE: '#/components/schemas/Locatable' OBSERVATION: '#/components/schemas/Observation' Versionable: '#/components/schemas/Versionable' Link: title: LINK required: - meaning - type - target type: object properties: meaning: $ref: '#/components/schemas/DvText' type: $ref: '#/components/schemas/DvText' target: $ref: '#/components/schemas/DvEhrUri' Archetyped: title: ARCHETYPED required: - archetype_id - rm_version type: object properties: archetype_id: $ref: '#/components/schemas/ArchetypeId' template_id: $ref: '#/components/schemas/TemplateId' rm_version: type: string example: archetype_id: value: openEHR-EHR-COMPOSITION.encounter.v1 template_id: value: Example.v1::c7ec861c-c413-39ff-9965-a198ebf44747 rm_version: 1.0.2 additionalProperties: false DvIdentifier: title: DV_IDENTIFIER required: - id type: object allOf: - $ref: '#/components/schemas/DataValue' properties: issuer: type: string assigner: type: string id: type: string type: type: string description: | Type for representing identifiers of real-world entities. Typical identifiers include drivers licence number, social security number, veterans affairs number, prescription id, order id, and so on. DV_IDENTIFIER is used to represent any identifier of a real thing, issued by some authority or agency. example: id: 16b74749-e6aa-4945-b760-b42bdc07098a type: Patient x-discriminator-value: DV_IDENTIFIER DvEncapsulated: title: DV_ENCAPSULATED required: - _type type: object allOf: - $ref: '#/components/schemas/DataValue' properties: _type: enum: - DV_ENCAPSULATED - DV_PARSABLE type: string default: DV_ENCAPSULATED charset: $ref: '#/components/schemas/CodePhrase' language: $ref: '#/components/schemas/CodePhrase' discriminator: propertyName: _type mapping: DV_MULTIMEDIA: '#/components/schemas/DvMultimedia' DV_PARSABLE: '#/components/schemas/DvParsable' DvMultimedia: title: DV_MULTIMEDIA required: - media_type - size type: object allOf: - $ref: '#/components/schemas/DvEncapsulated' properties: _type: type: string default: DV_MULTIMEDIA alternate_text: type: string uri: $ref: '#/components/schemas/DvUri' data: type: string media_type: $ref: '#/components/schemas/CodePhrase' compression_algorithm: $ref: '#/components/schemas/CodePhrase' integrity_check: type: string integrity_check_algorithm: $ref: '#/components/schemas/CodePhrase' thumbnail: $ref: '#/components/schemas/DvMultimedia' size: type: integer x-discriminator-value: DV_MULTIMEDIA DvParsable: title: DV_PARSABLE required: - value - formalism type: object allOf: - $ref: '#/components/schemas/DvEncapsulated' properties: _type: enum: - DV_PARSABLE type: string value: type: string formalism: type: string x-discriminator-value: DV_PARSABLE PartyRef: title: PARTY_REF required: - namespace - type - id type: object properties: namespace: type: string type: pattern: ^PERSON|ORGANISATION|GROUP|AGENT|ROLE|PARTY|ACTOR$ type: string id: $ref: '#/components/schemas/ObjectId' description: Identifier for parties in a demographic or identity service. example: id: _type: OBJECT_VERSION_ID value: b52b9408-7048-4ec8-94bd-831fb0727e67::openEHRSys.example.com::1 namespace: local type: PERSON PartyProxy: title: PARTY_PROXY required: - _type type: object properties: _type: type: string default: PARTY_PROXY external_ref: $ref: '#/components/schemas/PartyRef' discriminator: propertyName: _type mapping: PARTY_IDENTIFIED: '#/components/schemas/PartyIdentified' PARTY_RELATED: '#/components/schemas/PartyRelated' PARTY_SELF: '#/components/schemas/PartySelf' PartyIdentified: title: PARTY_IDENTIFIED type: object allOf: - $ref: '#/components/schemas/PartyProxy' properties: _type: type: string default: PARTY_IDENTIFIED name: type: string identifiers: type: array items: $ref: '#/components/schemas/DvIdentifier' example: _type: PARTY_IDENTIFIED external_ref: id: _type: GENERIC_ID value: 16b74749-e6aa-4945-b760-b42bdc07098a scheme: pid namespace: openEHRSys.example.com type: PERSON name: A name x-discriminator-value: PARTY_IDENTIFIED discriminator: propertyName: _type mapping: PARTY_RELATED: '#/components/schemas/PartyRelated' PartyRelated: title: PARTY_RELATED required: - relationship type: object allOf: - $ref: '#/components/schemas/PartyIdentified' properties: _type: type: string default: PARTY_RELATED relationship: $ref: '#/components/schemas/DvCodedText' x-discriminator-value: PARTY_RELATED PartySelf: title: PARTY_SELF type: object allOf: - $ref: '#/components/schemas/PartyProxy' properties: _type: type: string default: PARTY_SELF x-discriminator-value: PARTY_SELF Locatable: title: LOCATABLE required: - name - archetype_node_id type: object allOf: - $ref: '#/components/schemas/Pathable' properties: name: $ref: '#/components/schemas/DvText' archetype_node_id: type: string xml: attribute: true uid: $ref: '#/components/schemas/UidBasedId' links: type: array items: $ref: '#/components/schemas/Link' archetype_details: $ref: '#/components/schemas/Archetyped' feeder_audit: $ref: '#/components/schemas/FeederAudit' discriminator: propertyName: _type mapping: ACTION: '#/components/schemas/Action' ACTIVITY: '#/components/schemas/Activity' ADMIN_ENTRY: '#/components/schemas/AdminEntry' CARE_ENTRY: '#/components/schemas/CareEntry' CLUSTER: '#/components/schemas/Clstr' COMPOSITION: '#/components/schemas/Composition' CONTENT_ITEM: '#/components/schemas/ContentItem' DATA_STRUCTURE: '#/components/schemas/DataStructure' EHR_STATUS: '#/components/schemas/EhrStatus' ELEMENT: '#/components/schemas/Element' ENTRY: '#/components/schemas/AbstractEntry' EVALUATION: '#/components/schemas/Evaluation' EVENT: '#/components/schemas/Event' FOLDER: '#/components/schemas/Folder' HISTORY: '#/components/schemas/History' INSTRUCTION: '#/components/schemas/Instruction' ITEM: '#/components/schemas/Item' ITEM_LIST: '#/components/schemas/ItemList' ITEM_SINGLE: '#/components/schemas/ItemSingle' ITEM_STRUCTURE: '#/components/schemas/ItemStructure' ITEM_TABLE: '#/components/schemas/ItemTable' ITEM_TREE: '#/components/schemas/ItemTree' OBSERVATION: '#/components/schemas/Observation' Versionable: '#/components/schemas/Versionable' DataStructure: title: DATA_STRUCTURE type: object allOf: - $ref: '#/components/schemas/Locatable' properties: _type: type: string x-discriminator-value: DATA_STRUCTURE discriminator: propertyName: _type mapping: ITEM_LIST: '#/components/schemas/ItemList' ITEM_SINGLE: '#/components/schemas/ItemSingle' ITEM_STRUCTURE: '#/components/schemas/ItemStructure' ITEM_TABLE: '#/components/schemas/ItemTable' ITEM_TREE: '#/components/schemas/ItemTree' ItemStructure: title: ITEM_STRUCTURE type: object allOf: - $ref: '#/components/schemas/DataStructure' properties: _type: type: string x-discriminator-value: ITEM_STRUCTURE discriminator: propertyName: _type mapping: ITEM_LIST: '#/components/schemas/ItemList' ITEM_SINGLE: '#/components/schemas/ItemSingle' ITEM_TABLE: '#/components/schemas/ItemTable' ITEM_TREE: '#/components/schemas/ItemTree' Item: title: ITEM type: object allOf: - $ref: '#/components/schemas/Locatable' properties: _type: type: string x-discriminator-value: ITEM discriminator: propertyName: _type mapping: CLUSTER: '#/components/schemas/Clstr' ELEMENT: '#/components/schemas/Element' DvBoolean: title: DV_BOOLEAN required: - value type: object allOf: - $ref: '#/components/schemas/DataValue' properties: _type: type: string default: DV_BOOLEAN value: type: boolean x-discriminator-value: DV_BOOLEAN DvCount: title: DV_COUNT required: - magnitude type: object allOf: - $ref: '#/components/schemas/DvAmount' properties: _type: type: string default: DV_COUNT magnitude: type: integer x-discriminator-value: DV_COUNT DvDate: title: DV_DATE required: - value type: object allOf: - $ref: '#/components/schemas/DvTemporal' properties: _type: type: string default: DV_DATE value: type: string format: date example: _type: DV_DATE value: '2017-08-15' x-discriminator-value: DV_DATE DvOrdinal: title: DV_ORDINAL required: - symbol - value type: object allOf: - $ref: '#/components/schemas/DvOrdered' properties: _type: type: string default: DV_ORDINAL symbol: $ref: '#/components/schemas/DvCodedText' value: type: integer x-discriminator-value: DV_ORDINAL DvProportion: title: DV_PROPORTION required: - numerator - denominator - semantic_type type: object allOf: - $ref: '#/components/schemas/DvAmount' properties: _type: type: string default: DV_PROPORTION numerator: type: number denominator: type: number semantic_type: type: integer precision: type: integer x-discriminator-value: DV_PROPORTION DvQuantity: title: DV_QUANTITY required: - magnitude - units type: object allOf: - $ref: '#/components/schemas/DvAmount' properties: _type: type: string default: DV_QUANTITY magnitude: type: number precision: type: integer units: type: string units_system: type: string units_display_name: type: string x-discriminator-value: DV_QUANTITY DvScale: title: DV_SCALE required: - symbol - value type: object allOf: - $ref: '#/components/schemas/DvOrdered' properties: _type: type: string default: DV_SCALE symbol: $ref: '#/components/schemas/DvCodedText' value: type: number x-discriminator-value: DV_SCALE DvState: title: DV_STATE required: - value - is_terminal type: object allOf: - $ref: '#/components/schemas/DataValue' properties: _type: type: string default: DV_STATE value: $ref: '#/components/schemas/DvCodedText' is_terminal: type: boolean x-discriminator-value: DV_STATE DvTime: title: DV_TIME required: - value type: object allOf: - $ref: '#/components/schemas/DvTemporal' properties: _type: type: string default: DV_TIME value: type: string format: time example: _type: DV_DATE value: '2017-08-15' x-discriminator-value: DV_TIME Element: title: ELEMENT type: object allOf: - $ref: '#/components/schemas/Item' properties: _type: enum: - ELEMENT type: string null_flavour: $ref: '#/components/schemas/DvCodedText' value: $ref: '#/components/schemas/DataValue' null_reason: $ref: '#/components/schemas/DvText' x-discriminator-value: ELEMENT ItemSingle: title: ITEM_SINGLE required: - item type: object allOf: - $ref: '#/components/schemas/ItemStructure' properties: _type: enum: - ITEM_SINGLE type: string item: $ref: '#/components/schemas/Element' x-discriminator-value: ITEM_SINGLE ItemList: title: ITEM_LIST type: object allOf: - $ref: '#/components/schemas/ItemStructure' properties: _type: enum: - ITEM_LIST type: string items: type: array items: $ref: '#/components/schemas/Element' x-discriminator-value: ITEM_LIST Clstr: title: CLUSTER required: - items type: object allOf: - $ref: '#/components/schemas/Item' properties: _type: enum: - CLUSTER type: string items: type: array items: $ref: '#/components/schemas/Item' x-discriminator-value: CLUSTER ItemTable: title: ITEM_TABLE type: object allOf: - $ref: '#/components/schemas/ItemStructure' properties: _type: enum: - ITEM_TABLE type: string items: type: array items: $ref: '#/components/schemas/Clstr' x-discriminator-value: ITEM_TABLE ItemTree: title: ITEM_TREE type: object allOf: - $ref: '#/components/schemas/ItemStructure' properties: _type: enum: - ITEM_TREE type: string items: type: array items: $ref: '#/components/schemas/Item' x-discriminator-value: ITEM_TREE FeederAuditDetails: title: FEEDER_AUDIT_DETAILS required: - system_id type: object properties: system_id: type: string location: $ref: '#/components/schemas/PartyIdentified' subject: $ref: '#/components/schemas/PartyProxy' provider: $ref: '#/components/schemas/PartyIdentified' time: $ref: '#/components/schemas/DvDateTime' version_id: type: string other_details: $ref: '#/components/schemas/ItemStructure' FeederAudit: title: FEEDER_AUDIT required: - originating_system_audit type: object properties: originating_system_item_ids: type: array items: $ref: '#/components/schemas/DvIdentifier' feeder_system_item_ids: type: array items: $ref: '#/components/schemas/DvIdentifier' original_content: $ref: '#/components/schemas/DvEncapsulated' originating_system_audit: $ref: '#/components/schemas/FeederAuditDetails' feeder_system_audit: $ref: '#/components/schemas/FeederAuditDetails' Versionable: title: Versionable type: object allOf: - $ref: '#/components/schemas/Locatable' description: A Versionable resource discriminator: propertyName: _type mapping: COMPOSITION: '#/components/schemas/Composition' EHR_STATUS: '#/components/schemas/EhrStatus' EhrStatus: title: EHR_STATUS required: - subject - is_queryable - is_modifiable type: object allOf: - $ref: '#/components/schemas/Versionable' properties: _type: type: string default: EHR_STATUS subject: $ref: '#/components/schemas/PartyProxy' is_queryable: type: boolean default: true is_modifiable: type: boolean default: true other_details: $ref: '#/components/schemas/ItemStructure' description: An EHR_STATUS resource example: archetype_node_id: openEHR-EHR-EHR_STATUS.generic.v1 name: value: EHR status uid: _type: OBJECT_VERSION_ID value: 8849182c-82ad-4088-a07f-48ead4180515::openEHRSys.example.com::1 subject: _type: PARTY_SELF is_queryable: true is_modifiable: true x-discriminator-value: EHR_STATUS Error: title: Error required: - message - validationErrors type: object properties: message: type: string validationErrors: type: array items: type: string description: '' example: message: Error message validationErrors: - error1 - error2 ObjectRefOfHierObjectId: title: OBJECT_REF type: object allOf: - $ref: '#/components/schemas/ObjectRef' properties: id: $ref: '#/components/schemas/HierObjectId' example: id: _type: HIER_OBJECT_ID value: 6cb19121-4307-4648-9da0-d62e4d51f19b namespace: local type: CONTRIBUTION VersionedObject: title: VERSIONED_OBJECT required: - uid - owner_id - time_created type: object properties: _type: type: string uid: $ref: '#/components/schemas/HierObjectId' owner_id: $ref: '#/components/schemas/ObjectRefOfHierObjectId' time_created: $ref: '#/components/schemas/DvDateTime' discriminator: propertyName: _type mapping: VERSIONED_COMPOSITION: '#/components/schemas/VersionedComposition' VERSIONED_EHR_STATUS: '#/components/schemas/VersionedEhrStatus' VersionedEhrStatus: title: VERSIONED_EHR_STATUS type: object allOf: - $ref: '#/components/schemas/VersionedObject' properties: _type: type: string default: VERSIONED_EHR_STATUS description: A VERSIONED_EHR_STATUS resource example: uid: value: 6cb19121-4307-4648-9da0-d62e4d51f19b owner_id: id: _type: HIER_OBJECT_ID value: 7d44b88c-4199-4bad-97dc-d78268e01398 namespace: local type: EHR time_created: value: '2015-01-20T19:30:22.765+01:00' x-discriminator-value: VERSIONED_EHR_STATUS AuditDetails: title: AUDIT_DETAILS required: - system_id - time_committed - change_type - committer type: object properties: _type: type: string default: AUDIT_DETAILS system_id: type: string time_committed: $ref: '#/components/schemas/DvDateTime' change_type: $ref: '#/components/schemas/DvCodedText' description: $ref: '#/components/schemas/DvText' committer: $ref: '#/components/schemas/PartyProxy' description: The set of attributes required to document the committal of an information item to a repository. example: system_id: 9624982A-9F42-41A5-9318-AE13D5F5031F committer: _type: PARTY_IDENTIFIED name: A user name time_committed: value: '2017-08-15T10:37:15.422+02:00' change_type: value: creation defining_code: terminology_id: value: openehr code_string: '249' description: value: Description text x-discriminator-value: AUDIT_DETAILS discriminator: propertyName: _type mapping: ATTESTATION: '#/components/schemas/Attestation' RevisionHistoryItem: title: REVISION_HISTORY_ITEM required: - version_id - audits type: object properties: version_id: $ref: '#/components/schemas/ObjectVersionId' audits: type: array items: $ref: '#/components/schemas/AuditDetails' description: A REVISION_HISTORY_ITEM resource example: version_id: value: 8849182c-82ad-4088-a07f-48ead4180515::openEHRSys.example.com::1 audits: - system_id: d60e2348-b083-48ce-93b9-916cef1d3a5a time_committed: value: '2015-01-20T19:30:22.765+01:00' change_type: value: creation defining_code: terminology_id: value: openehr code_string: '249' description: value: An optional description string committer: _type: PARTY_IDENTIFIED name: A user name RevisionHistory: title: REVISION_HISTORY required: - items type: object properties: items: type: array items: $ref: '#/components/schemas/RevisionHistoryItem' description: A REVISION_HISTORY resource DvIntervalOfDateTime: title: DV_INTERVAL_of_DATE_TIME type: object allOf: - $ref: '#/components/schemas/DvInterval' properties: _type: type: string default: DV_INTERVAL lower: $ref: '#/components/schemas/DvDateTime' upper: $ref: '#/components/schemas/DvDateTime' x-discriminator-value: DV_INTERVAL_of_DATE_TIME Participation: title: PARTICIPATION required: - function - performer type: object properties: function: $ref: '#/components/schemas/DvText' mode: $ref: '#/components/schemas/DvCodedText' performer: $ref: '#/components/schemas/PartyProxy' time: $ref: '#/components/schemas/DvIntervalOfDateTime' EventContext: title: EVENT_CONTEXT required: - start_time - setting type: object allOf: - $ref: '#/components/schemas/Pathable' properties: start_time: $ref: '#/components/schemas/DvDateTime' end_time: $ref: '#/components/schemas/DvDateTime' location: type: string setting: $ref: '#/components/schemas/DvCodedText' other_context: $ref: '#/components/schemas/ItemStructure' health_care_facility: $ref: '#/components/schemas/PartyIdentified' participations: type: array items: $ref: '#/components/schemas/Participation' x-discriminator-value: EVENT_CONTEXT ContentItem: title: CONTENT_ITEM type: object allOf: - $ref: '#/components/schemas/Locatable' discriminator: propertyName: _type mapping: ACTION: '#/components/schemas/Action' ADMIN_ENTRY: '#/components/schemas/AdminEntry' CARE_ENTRY: '#/components/schemas/CareEntry' ENTRY: '#/components/schemas/AbstractEntry' EVALUATION: '#/components/schemas/Evaluation' INSTRUCTION: '#/components/schemas/Instruction' OBSERVATION: '#/components/schemas/Observation' AbstractEntry: title: ENTRY required: - language - encoding - subject type: object allOf: - $ref: '#/components/schemas/ContentItem' properties: language: $ref: '#/components/schemas/CodePhrase' encoding: $ref: '#/components/schemas/CodePhrase' other_participations: type: array items: $ref: '#/components/schemas/Participation' workflow_id: $ref: '#/components/schemas/ObjectRef' subject: $ref: '#/components/schemas/PartyProxy' provider: $ref: '#/components/schemas/PartyProxy' discriminator: propertyName: _type mapping: ACTION: '#/components/schemas/Action' ADMIN_ENTRY: '#/components/schemas/AdminEntry' CARE_ENTRY: '#/components/schemas/CareEntry' EVALUATION: '#/components/schemas/Evaluation' INSTRUCTION: '#/components/schemas/Instruction' OBSERVATION: '#/components/schemas/Observation' AdminEntry: title: ADMIN_ENTRY required: - data type: object allOf: - $ref: '#/components/schemas/AbstractEntry' properties: _type: type: string default: ADMIN_ENTRY data: $ref: '#/components/schemas/ItemStructure' x-discriminator-value: ADMIN_ENTRY CareEntry: title: CARE_ENTRY type: object allOf: - $ref: '#/components/schemas/AbstractEntry' properties: protocol: $ref: '#/components/schemas/ItemStructure' guideline_id: $ref: '#/components/schemas/ObjectRef' discriminator: propertyName: _type mapping: ACTION: '#/components/schemas/Action' EVALUATION: '#/components/schemas/Evaluation' INSTRUCTION: '#/components/schemas/Instruction' OBSERVATION: '#/components/schemas/Observation' Event: title: EVENT required: - time - data type: object allOf: - $ref: '#/components/schemas/Locatable' properties: _type: type: string default: EVENT time: $ref: '#/components/schemas/DvDateTime' state: $ref: '#/components/schemas/ItemStructure' data: $ref: '#/components/schemas/ItemStructure' x-discriminator-value: EVENT History: title: HISTORY required: - origin type: object allOf: - $ref: '#/components/schemas/Locatable' properties: _type: type: string default: HISTORY origin: $ref: '#/components/schemas/DvDateTime' period: $ref: '#/components/schemas/DvDuration' duration: $ref: '#/components/schemas/DvDuration' summary: $ref: '#/components/schemas/ItemStructure' events: type: array items: $ref: '#/components/schemas/Event' x-discriminator-value: HISTORY Observation: title: OBSERVATION required: - data type: object allOf: - $ref: '#/components/schemas/CareEntry' properties: _type: type: string default: OBSERVATION data: $ref: '#/components/schemas/History' state: $ref: '#/components/schemas/History' x-discriminator-value: OBSERVATION Evaluation: title: EVALUATION required: - data type: object allOf: - $ref: '#/components/schemas/CareEntry' properties: _type: type: string default: EVALUATION data: $ref: '#/components/schemas/ItemStructure' x-discriminator-value: EVALUATION Activity: title: ACTIVITY required: - action_archetype_id - description type: object allOf: - $ref: '#/components/schemas/Locatable' properties: _type: type: string default: ACTIVITY timing: $ref: '#/components/schemas/DvParsable' action_archetype_id: type: string description: $ref: '#/components/schemas/ItemStructure' x-discriminator-value: ACTIVITY Instruction: title: INSTRUCTION required: - narrative type: object allOf: - $ref: '#/components/schemas/CareEntry' properties: _type: type: string default: INSTRUCTION narrative: $ref: '#/components/schemas/DvText' expiry_time: $ref: '#/components/schemas/DvDateTime' wf_definition: $ref: '#/components/schemas/DvParsable' activities: type: array items: $ref: '#/components/schemas/Activity' x-discriminator-value: INSTRUCTION IsmTransition: title: ISM_TRANSITION required: - current_state type: object allOf: - $ref: '#/components/schemas/Pathable' properties: _type: type: string default: ISM_TRANSITION current_state: $ref: '#/components/schemas/DvCodedText' transition: $ref: '#/components/schemas/DvCodedText' careflow_step: $ref: '#/components/schemas/DvCodedText' reason: type: array items: $ref: '#/components/schemas/DvText' x-discriminator-value: ISM_TRANSITION LocatableRef: title: LOCATABLE_REF required: - namespace - type - id type: object properties: namespace: type: string type: type: string id: $ref: '#/components/schemas/UidBasedId' path: type: string InstructionDetails: title: INSTRUCTION_DETAILS required: - instruction_id - activity_id type: object allOf: - $ref: '#/components/schemas/Pathable' properties: _type: type: string default: INSTRUCTION_DETAILS instruction_id: $ref: '#/components/schemas/LocatableRef' activity_id: type: string wf_details: $ref: '#/components/schemas/ItemStructure' x-discriminator-value: INSTRUCTION_DETAILS Action: title: ACTION required: - time - ism_transition - description type: object allOf: - $ref: '#/components/schemas/CareEntry' properties: _type: type: string default: ACTION time: $ref: '#/components/schemas/DvDateTime' ism_transition: $ref: '#/components/schemas/IsmTransition' instruction_details: $ref: '#/components/schemas/InstructionDetails' description: $ref: '#/components/schemas/ItemStructure' x-discriminator-value: ACTION Composition: title: COMPOSITION required: - language - territory - category - context - composer - content type: object allOf: - $ref: '#/components/schemas/Versionable' properties: _type: type: string default: COMPOSITION language: $ref: '#/components/schemas/CodePhrase' territory: $ref: '#/components/schemas/CodePhrase' category: $ref: '#/components/schemas/DvCodedText' context: $ref: '#/components/schemas/EventContext' composer: $ref: '#/components/schemas/PartyProxy' content: type: array items: $ref: '#/components/schemas/ContentItem' description: A COMPOSITION resource example: archetype_node_id: openEHR-EHR-COMPOSITION.encounter.v1 name: value: Vital Signs uid: _type: OBJECT_VERSION_ID value: 8849182c-82ad-4088-a07f-48ead4180515::openEHRSys.example.com::1 archetype_details: archetype_id: value: openEHR-EHR-COMPOSITION.encounter.v1 template_id: value: Example.v1::c7ec861c-c413-39ff-9965-a198ebf44747 rm_version: 1.0.2 language: terminology_id: value: ISO_639-1 code_string: en territory: terminology_id: value: ISO_3166-1 code_string: NL category: value: event defining_code: terminology_id: value: openehr code_string: '433' composer: _type: PARTY_IDENTIFIED external_ref: id: _type: GENERIC_ID value: 16b74749-e6aa-4945-b760-b42bdc07098a scheme: pid namespace: openEHRSys.example.com type: PERSON name: A name context: start_time: value: '2014-11-18T09:50:35.000+01:00' setting: value: other care defining_code: terminology_id: value: openehr code_string: '238' content: [] x-discriminator-value: COMPOSITION Version: title: VERSION required: - contribution - commit_audit - data type: object properties: _type: type: string contribution: $ref: '#/components/schemas/ObjectRefOfHierObjectId' signature: type: string commit_audit: $ref: '#/components/schemas/AuditDetails' data: $ref: '#/components/schemas/Versionable' description: A VERSION resource discriminator: propertyName: _type mapping: IMPORTED_VERSION: '#/components/schemas/ImportedVersion' ORIGINAL_VERSION: '#/components/schemas/OriginalVersion' Attestation: title: ATTESTATION required: - reason - is_pending type: object allOf: - $ref: '#/components/schemas/AuditDetails' properties: _type: type: string default: ATTESTATION attested_view: $ref: '#/components/schemas/DvMultimedia' proof: type: string items: type: array items: $ref: '#/components/schemas/DvEhrUri' reason: $ref: '#/components/schemas/DvText' is_pending: type: boolean x-discriminator-value: ATTESTATION OriginalVersion: title: ORIGINAL_VERSION required: - uid - lifecycle_state type: object allOf: - $ref: '#/components/schemas/Version' properties: _type: type: string default: ORIGINAL_VERSION uid: $ref: '#/components/schemas/ObjectVersionId' preceding_version_uid: $ref: '#/components/schemas/ObjectVersionId' other_input_version_uids: type: array items: $ref: '#/components/schemas/ObjectVersionId' lifecycle_state: $ref: '#/components/schemas/DvCodedText' attestations: type: array items: $ref: '#/components/schemas/Attestation' x-discriminator-value: ORIGINAL_VERSION ImportedVersion: title: IMPORTED_VERSION required: - item type: object allOf: - $ref: '#/components/schemas/Version' properties: _type: type: string default: IMPORTED_VERSION item: $ref: '#/components/schemas/OriginalVersion' x-discriminator-value: IMPORTED_VERSION VersionedComposition: title: VERSIONED_COMPOSITION type: object allOf: - $ref: '#/components/schemas/VersionedObject' properties: _type: type: string default: VERSIONED_COMPOSITION description: A VERSIONED_COMPOSITION resource example: uid: value: 8849182c-82ad-4088-a07f-48ead4180515 owner_id: id: _type: HIER_OBJECT_ID value: 7d44b88c-4199-4bad-97dc-d78268e01398 namespace: local type: EHR time_created: value: '2015-01-20T19:30:22.765+01:00' x-discriminator-value: VERSIONED_COMPOSITION Folder: title: FOLDER type: object allOf: - $ref: '#/components/schemas/Locatable' properties: _type: type: string default: FOLDER items: type: array items: $ref: '#/components/schemas/ObjectRef' folders: type: array items: $ref: '#/components/schemas/Folder' details: $ref: '#/components/schemas/ItemStructure' description: A FOLDER resource example: archetype_node_id: openEHR-EHR-FOLDER.directory.v1 name: value: Directory uid: _type: OBJECT_VERSION_ID value: 8849182c-82ad-4088-a07f-48ead4180515::openEHRSys.example.com::1 items: [] folders: [] x-discriminator-value: FOLDER TerminologyCode: title: TERMINOLOGY_CODE required: - terminology_id - code_string type: object properties: terminology_id: type: string terminology_version: type: string code_string: type: string uri: type: string format: uri example: terminology_id: snomed_ct code_string: '308335008' UpdateAudit: title: UPDATE_AUDIT required: - change_type - committer type: object properties: _type: type: string default: UPDATE_AUDIT change_type: $ref: '#/components/schemas/TerminologyCode' description: $ref: '#/components/schemas/DvText' committer: $ref: '#/components/schemas/PartyProxy' description: The set of attributes required to document the committal of an information item to a repository. Used by the server to create an AUDIT_DETAILS object. example: change_type: value: creation defining_code: terminology_id: openehr code_string: '249' description: Description text committer: _type: PARTY_IDENTIFIED name: A user name x-discriminator-value: UPDATE_AUDIT discriminator: propertyName: _type mapping: UPDATE_ATTESTATION: '#/components/schemas/UpdateAttestation' UpdateAttestation: title: UPDATE_ATTESTATION required: - reason - is_pending type: object allOf: - $ref: '#/components/schemas/UpdateAudit' properties: _type: type: string default: UPDATE_ATTESTATION attested_view: $ref: '#/components/schemas/DvMultimedia' proof: type: string items: type: array items: $ref: '#/components/schemas/DvEhrUri' reason: $ref: '#/components/schemas/DvText' is_pending: type: boolean x-discriminator-value: UPDATE_ATTESTATION UpdateVersion: title: UPDATE_VERSION required: - lifecycle_state - data - commit_audit type: object properties: preceding_version_uid: $ref: '#/components/schemas/ObjectVersionId' signature: type: string lifecycle_state: $ref: '#/components/schemas/TerminologyCode' attestations: type: array items: $ref: '#/components/schemas/UpdateAttestation' data: $ref: '#/components/schemas/Versionable' commit_audit: $ref: '#/components/schemas/UpdateAudit' NewContribution: title: NewContribution required: - versions - audit type: object properties: uid: $ref: '#/components/schemas/HierObjectId' versions: type: array items: $ref: '#/components/schemas/UpdateVersion' audit: $ref: '#/components/schemas/UpdateAudit' description: A new (un-committed) CONTRIBUTION resource Contribution: title: CONTRIBUTION required: - uid - versions - audit type: object properties: uid: $ref: '#/components/schemas/HierObjectId' versions: type: array items: $ref: '#/components/schemas/ObjectRefOfObjectVersionId' audit: $ref: '#/components/schemas/AuditDetails' description: A CONTRIBUTION resource example: uid: value: 0826851c-c4c2-4d61-92b9-410fb8275ff0 versions: - _type: OBJECT_REF id: _type: OBJECT_VERSION_ID value: fb458d9c-1323-42bc-b7f8-787f3660a0b5::openEHRSys.example.com::1 namespace: local type: COMPOSITION - _type: OBJECT_REF id: _type: OBJECT_VERSION_ID value: abcdefgh-1323-42bc-b7f8-787f3660a0ba::openEHRSys.example.com::1 namespace: local type: FOLDER audit: system_id: 9624982A-9F42-41A5-9318-AE13D5F5031F committer: _type: PARTY_IDENTIFIED name: A user name time_committed: value: '2017-08-15T10:37:15.422+02:00' change_type: value: creation defining_code: terminology_id: value: openehr code_string: '249' description: value: Description text parameters: subject_id: name: subject_id in: query description: | The EHR subject id. required: true style: form explode: true schema: type: string example: ins01 subject_namespace: name: subject_namespace in: query description: | The EHR subject id namespace. required: true style: form explode: true schema: type: string example: examples Prefer: name: Prefer in: header description: | Request header to indicate the preference over response details. The response will contain the entire resource when the `Prefer` header has a value of `return=representation`. required: false style: simple schema: type: string enum: - return=representation - return=minimal default: return=minimal ehr_id: name: ehr_id in: path description: | EHR identifier taken from EHR.ehr_id.value. required: true style: simple schema: type: string example: 7d44b88c-4199-4bad-97dc-d78268e01398 version_uid: name: version_uid in: path description: | VERSION identifier taken from VERSION.uid.value. required: true style: simple schema: type: string example: 6cb19121-4307-4648-9da0-d62e4d51f19b::openEHRSys.example.com::2 version_at_time: name: version_at_time in: query description: | A given time in the extended ISO 8601 format. style: form explode: true schema: type: string example: '2015-01-20T19:30:22.765+01:00' If-Match: name: If-Match in: header description: | Header to make the request conditional. Together with `ETag` request tag, it helps to prevent simultaneous updates of a resource from overwriting each other ("mid-air collisions"). The format is always an `version_uid` identifier enclosed by double quotes. The operation will be performed only if the existing latest `version_uid` of the resource (i.e. the `preceding_version_uid`) matches this header's value. required: true style: simple schema: type: string example: '"6cb19121-4307-4648-9da0-d62e4d51f19b::openEHRSys.example.com::1"' uid_based_id: name: uid_based_id in: path description: | An abstract identifier: it can take a form of an OBJECT_VERSION_ID identifier taken from VERSION.uid.value (i.e. a `version_uid`), or a form of a HIER_OBJECT_ID identifier taken from VERSIONED_OBJECT.uid.value (i.e. a `versioned_object_uid`). required: true style: simple schema: type: string example: 8849182c-82ad-4088-a07f-48ead4180515::openEHRSys.example.com::1 uid_based_id_as_versioned_object_uid: name: uid_based_id in: path description: | An identifier in a form of a HIER_OBJECT_ID identifier taken from VERSIONED_OBJECT.uid.value (i.e. a `versioned_object_uid`). required: true style: simple schema: type: string example: 8849182c-82ad-4088-a07f-48ead4180515 uid_based_id_as_version_uid: name: uid_based_id in: path description: | An identifier in a form of an OBJECT_VERSION_ID identifier taken from VERSION.uid.value (i.e. a `version_uid`). required: true style: simple schema: type: string example: 8849182c-82ad-4088-a07f-48ead4180515::openEHRSys.example.com::1 versioned_object_uid_COMPOSITION: name: versioned_object_uid in: path description: | VERSIONED_COMPOSITION identifier taken from VERSIONED_COMPOSITION.uid.value. required: true style: simple schema: type: string example: 8849182c-82ad-4088-a07f-48ead4180515 version_uid_COMPOSITION: name: version_uid in: path description: | VERSION identifier taken from VERSION.uid.value. required: true style: simple schema: type: string example: 8849182c-82ad-4088-a07f-48ead4180515::openEHRSys.example.com::1 path: name: path in: query description: | A path to a sub-folder; consists of slash-separated values of the name attribute of FOLDERs in the directory. style: form explode: true schema: type: string example: episodes/a/b/c contribution_uid: name: contribution_uid in: path description: | The CONTRIBUTION uid. required: true style: simple schema: type: string example: 0826851c-c4c2-4d61-92b9-410fb8275ff0 responses: '400': description: | `400 Bad Request` is returned when the request could not be parsed or is invalid (e.g. malformed request URL syntax, missing required header or parameter, or syntactically invalid header, parameter or content). The response body MAY contain error details. content: application/json: schema: $ref: '#/components/schemas/Error' '409': description: | `409 Conflict` is returned when a resource with same identifier(s) already exists. '422': description: | `422 Unprocessable Entity` is returned when the content type and syntax is correct, could be converted to a resource, but there are semantic validation errors, such as the underlying template is not known or is not validating the supplied resource. 200_EHR: description: | `200 OK` is returned when the requested EHR resource is successfully retrieved. content: application/json: schema: $ref: '#/components/schemas/Ehr' 404_EHR_subject: description: | `404 Not Found` is returned when an EHR with supplied subject parameters does not exist. 201_EHR: description: | `201 Created` is returned when the EHR has been successfully created. The new EHR resource is returned in the body when the request's `Prefer` header value is `return=representation`, otherwise only headers are returned. headers: ETag: $ref: '#/components/headers/ETag_EHR' Location: $ref: '#/components/headers/Location_EHR' content: application/json: schema: $ref: '#/components/schemas/Ehr' 409_EHR: description: | `409 Conflict` Unable to create a new EHR due to a conflict with an already existing EHR with the same subject id, namespace pair, whenever EHR_STATUS is supplied. 404_unknown_ehr_id: description: | `404 Not Found` is returned when an EHR with `ehr_id` does not exist. 409_EHR_with_id: description: | `409 Conflict` Unable to create a new EHR due to a conflict with an already existing EHR. Can happen when the supplied `ehr_id` is already used by an existing EHR. 200_EHR_STATUS_retrieved: description: | `200 OK` is returned when the requested EHR_STATUS is successfully retrieved. headers: ETag: $ref: '#/components/headers/ETag' Location: $ref: '#/components/headers/Location_EHR_STATUS' content: application/json: schema: $ref: '#/components/schemas/EhrStatus' 404_unknown_ehr_id_or_version_uid: description: | `404 Not Found` is returned when an EHR with `ehr_id` does not exist, or when the `version_uid` does not exist. 404_unknown_ehr_id_or_no_version_at_time: description: | `404 Not Found` is returned when an EHR with `ehr_id` does not exist, or when a version of the resource identified by the request parameters (at specified `version_at_time`) does not exist. 200_EHR_STATUS_updated: description: | `200 OK` is returned when the EHR_STATUS is successfully updated, and the updated resource is returned in the body when `Prefer` header value is `return=representation`. headers: ETag: $ref: '#/components/headers/ETag' Location: $ref: '#/components/headers/Location_EHR_STATUS' content: application/json: schema: $ref: '#/components/schemas/EhrStatus' 204_EHR_STATUS: description: | `204 No Content` is returned when the `Prefer` header is missing or is set to `return=minimal`. headers: ETag: $ref: '#/components/headers/ETag' Location: $ref: '#/components/headers/Location_EHR_STATUS' 412_EHR_STATUS: description: | `412 Precondition Failed` is returned when `If-Match` request header doesn't match the latest version on the service side. Returns also latest `version_uid` in the `Location` and `ETag` headers. headers: ETag: $ref: '#/components/headers/ETag' Location: $ref: '#/components/headers/Location_EHR_STATUS' 200_VERSIONED_EHR_STATUS: description: | `200 OK` is returned when the requested VERSIONED_EHR_STATUS is successfully retrieved. content: application/json: schema: $ref: '#/components/schemas/VersionedEhrStatus' 200_REVISION_HISTORY: description: | `200 OK` is returned when the requested REVISION_HISTORY is successfully retrieved. content: application/json: schema: $ref: '#/components/schemas/RevisionHistory' 200_VERSION_of_EHR_STATUS_at_time: description: | `200 OK` is returned when the requested VERSION is successfully retrieved. headers: ETag: $ref: '#/components/headers/ETag_VERSION' Location: $ref: '#/components/headers/Location_VERSIONED_EHR_STATUS_VERSION' content: application/json: schema: $ref: '#/components/schemas/VersionOfEhrStatus' 200_VERSION_of_EHR_STATUS_by_id: description: | `200 OK` is returned when the requested VERSION is successfully retrieved. content: application/json: schema: $ref: '#/components/schemas/VersionOfEhrStatus' 201_COMPOSITION: description: | `201 Created` is returned when the COMPOSITION was created. Content body is only returned when `Prefer` header has `return=representation`, otherwise only headers are returned. headers: ETag: $ref: '#/components/headers/ETag_COMPOSITION' Location: $ref: '#/components/headers/Location_COMPOSITION' content: application/json: schema: $ref: '#/components/schemas/Composition' 200_COMPOSITION_retrieved: description: | `200 OK` is returned when the requested COMPOSITION is successfully retrieved. headers: ETag: $ref: '#/components/headers/ETag_COMPOSITION' Location: $ref: '#/components/headers/Location_COMPOSITION' content: application/json: schema: $ref: '#/components/schemas/Composition' 204_because_deleted_at_time: description: | `204 No Content` is returned when the resource identified by the request parameters (at specified `version_at_time`) time has been deleted. 200_COMPOSITION_updated: description: | `200 OK` is returned when the COMPOSITION is successfully updated and the updated resource is returned in the body when `Prefer` header value is `return=representation`. headers: ETag: $ref: '#/components/headers/ETag_COMPOSITION' Location: $ref: '#/components/headers/Location_COMPOSITION' content: application/json: schema: $ref: '#/components/schemas/Composition' 404_unknown_ehr_id_or_uid_based_id: description: | `404 Not Found` is returned when an EHR with `ehr_id` does not exist, or when the `uid_based_id` does not exist. 412_COMPOSITION: description: | `412 Precondition Failed` is returned when `If-Match` request header doesn't match the latest version on the service side. Returns also latest `version_uid` in the `Location` and `ETag` headers. headers: ETag: $ref: '#/components/headers/ETag_COMPOSITION' Location: $ref: '#/components/headers/Location_COMPOSITION' 204_COMPOSITION_deleted: description: | `204 No Content` is returned when COMPOSITION was deleted. headers: ETag: $ref: '#/components/headers/ETag_COMPOSITION' Location: $ref: '#/components/headers/Location_COMPOSITION' 400_already_deleted: description: | `400 Bad Request` is returned when the request could not be parsed or is invalid (e.g. malformed request URL syntax, missing required header or parameter, or syntactically invalid header, parameter or content) or when the resource identified by the request parameters is already deleted. 409_COMPOSITION_with_uid_based_id: description: | `409 Conflict` is returned when supplied `uid_based_id` doesn't match the latest version. Returns also latest version in the `Location` and `ETag` headers. headers: ETag: $ref: '#/components/headers/ETag_COMPOSITION' Location: $ref: '#/components/headers/Location_COMPOSITION' 200_VERSIONED_COMPOSITION: description: | `200 OK` is returned when the requested VERSIONED_COMPOSITION is successfully retrieved. content: application/json: schema: $ref: '#/components/schemas/VersionedComposition' 404_unknown_ehr_id_or_versioned_object_uid: description: | `404 Not Found` is returned when an EHR with `ehr_id` does not exist, or when the `versioned_object_uid` does not exist. 200_VERSION_of_COMPOSITION_at_time: description: | `200 OK` is returned when the requested VERSION is successfully retrieved. headers: ETag: $ref: '#/components/headers/ETag_VERSION_of_COMPOSITION' Location: $ref: '#/components/headers/Location_VERSIONED_COMPOSITION_VERSION' content: application/json: schema: $ref: '#/components/schemas/VersionOfComposition' 404_unknown_ehr_id_or_versioned_object_uid_or_no_version_at_time: description: | `404 Not Found` is returned when an EHR with `ehr_id` does not exist, or when `versioned_object_uid` does not exist, or when a version of the resource does not exist at the specified `version_at_time`. 200_VERSION_of_COMPOSITION_by_id: description: | `200 OK` is returned when the requested VERSION is successfully retrieved. content: application/json: schema: $ref: '#/components/schemas/VersionOfComposition' 404_unknown_ehr_id_or_versioned_object_uid_or_version_uid: description: | `404 Not Found` is returned when an EHR with `ehr_id` does not exist, or when `versioned_object_uid` does not exist, or when a VERSION with `version_uid` does not exist. 200_FOLDER_retrieved: description: | `200 OK` is returned when the FOLDER is successfully retrieved. content: application/json: schema: $ref: '#/components/schemas/Folder' 404_directory_unknown_ehr_id_or_no_version_at_time_or_no_path: description: | `404 Not Found` is returned when an EHR with `ehr_id` does not exist, or when a directory does not exist at the specified `version_at_time`, or when `path` does not exists within the directory. 200_directory_updated: description: | `200 OK` is returned when directory was successfully updated and the updated resource is returned in the body when `Prefer` header value is `return=representation`. headers: ETag: $ref: '#/components/headers/ETag_FOLDER' Location: $ref: '#/components/headers/Location_directory' content: application/json: schema: $ref: '#/components/schemas/Folder' 204_directory_updated: description: | `204 No Content` is returned when directory was updated and `Prefer` header is missing or is set to `return=minimal`. headers: ETag: $ref: '#/components/headers/ETag_FOLDER' Location: $ref: '#/components/headers/Location_directory' 412_directory: description: | `412 Precondition Failed` is returned when `If-Match` request header doesn't match the latest version on the service side. Returns also latest `version_uid` in the `Location` and `ETag` headers. headers: ETag: $ref: '#/components/headers/ETag_FOLDER' Location: $ref: '#/components/headers/Location_directory' 201_directory: description: | `201 Created` is returned when the FOLDER was created. Content body is only returned when `Prefer` header has `return=representation`, otherwise only headers are returned. headers: ETag: $ref: '#/components/headers/ETag_FOLDER' Location: $ref: '#/components/headers/Location_directory' content: application/json: schema: $ref: '#/components/schemas/Folder' 204_because_deleted: description: | `204 No Content` is returned when the resource identified by the request parameters has been (logically) deleted. 404_directory_unknown_ehr_id_or_no_version_uid_or_no_path: description: | `404 Not Found` is returned when an EHR with `ehr_id` does not exist, or when a directory with `version_uid` does not exist, or when `path` does not exist within the directory. 201_CONTRIBUTION: description: | `201 Created` is returned when the CONTRIBUTION was created. Content body is only returned when `Prefer` header has `return=representation`, otherwise only headers are returned. headers: ETag: $ref: '#/components/headers/ETag_CONTRIBUTION' Location: $ref: '#/components/headers/Location_CONTRIBUTION' content: application/json: schema: $ref: '#/components/schemas/Contribution' 400_CONTRIBUTION: description: | `400 Bad Request` is returned when the request could not be parsed or is invalid (e.g. malformed request URL syntax, missing required header or parameter, or syntactically invalid header, parameter or content, or the modification type does not match the operation - i.e. first version of a MODIFICATION). The response body MAY contain error details. content: application/json: schema: $ref: '#/components/schemas/Error' 200_CONTRIBUTION: description: | `200 OK` is returned when the CONTRIBUTION is successfully retrieved. content: application/json: schema: $ref: '#/components/schemas/Contribution' 404_CONTRIBUTION: description: | `404 Not Found` is returned when an EHR with `ehr_id` does not exist, or when a CONTRIBUTION with `contribution_uid` does not exist. headers: ETag_EHR: description: | The `ETag` (i.e. entity tag) response header is the `ehr_id` identifier, enclosed by double quotes. schema: type: string example: '"7d44b88c-4199-4bad-97dc-d78268e01398"' Location_EHR: description: | The `Location` response header indicates the URL of the EHR resource. schema: type: string format: url example: https://openEHRSys.example.com/v1/ehr/7d44b88c-4199-4bad-97dc-d78268e01398 ETag: description: | The `ETag` (i.e. entity tag) response header is an identifier (e.g. a `version_uid` enclosed by double quotes) for a specific version of a resource. schema: type: string example: '"6cb19121-4307-4648-9da0-d62e4d51f19b::openEHRSys.example.com::2"' Location_EHR_STATUS: description: | The `Location` response header indicates the URL of the EHR_STATUS resource. schema: type: string format: url example: https://openEHRSys.example.com/v1/ehr/7d44b88c-4199-4bad-97dc-d78268e01398/ehr_status/6cb19121-4307-4648-9da0-d62e4d51f19b::openEHRSys.example.com::2 ETag_VERSION: description: | The `ETag` (i.e. entity tag) response header is the VERSION identifier (i.e. the `version_uid`) enclosed by double quotes. schema: type: string example: '"6cb19121-4307-4648-9da0-d62e4d51f19b::openEHRSys.example.com::2"' Location_VERSIONED_EHR_STATUS_VERSION: description: | The `Location` response header indicates the URL of the VERSION resource. schema: type: string format: url example: https://openEHRSys.example.com/v1/ehr/7d44b88c-4199-4bad-97dc-d78268e01398/versioned_ehr_status/version/6cb19121-4307-4648-9da0-d62e4d51f19b::openEHRSys.example.com::1 ETag_COMPOSITION: description: | The `ETag` (i.e. entity tag) response header is an identifier (e.g. a `version_uid` enclosed by double quotes) for a specific version of a resource. schema: type: string example: '"8849182c-82ad-4088-a07f-48ead4180515::openEHRSys.example.com::1"' Location_COMPOSITION: description: | The `Location` response header indicates the URL of the COMPOSITION resource. schema: type: string format: url example: https://openEHRSys.example.com/v1/ehr/7d44b88c-4199-4bad-97dc-d78268e01398/composition/8849182c-82ad-4088-a07f-48ead4180515::openEHRSys.example.com::1 ETag_VERSION_of_COMPOSITION: description: | The `ETag` (i.e. entity tag) response header is the VERSION identifier (i.e. the `version_uid`) enclosed by double quotes. schema: type: string example: '"8849182c-82ad-4088-a07f-48ead4180515::openEHRSys.example.com::2"' Location_VERSIONED_COMPOSITION_VERSION: description: | The `Location` response header indicates the URL of the VERSION resource. schema: type: string format: url example: https://openEHRSys.example.com/v1/ehr/7d44b88c-4199-4bad-97dc-d78268e01398/versioned_composition/8849182c-82ad-4088-a07f-48ead4180515/version/8849182c-82ad-4088-a07f-48ead4180515::openEHRSys.example.com::1 ETag_FOLDER: description: | The `ETag` (i.e. entity tag) response header is an identifier (e.g. a `version_uid` enclosed by double quotes) for a specific version of a resource. schema: type: string example: '"8849182c-82ad-4088-a07f-48ead4180515::openEHRSys.example.com::1"' Location_directory: description: | The `Location` response header indicates the URL of the directory FOLDER resource. schema: type: string format: url example: https://openEHRSys.example.com/v1/ehr/7d44b88c-4199-4bad-97dc-d78268e01398/directory/8849182c-82ad-4088-a07f-48ead4180515::openEHRSys.example.com::1 ETag_CONTRIBUTION: description: | The `ETag` (i.e. entity tag) response header is the `contribution_uid` identifier, enclosed by double quotes. schema: type: string example: '"0826851c-c4c2-4d61-92b9-410fb8275ff0"' Location_CONTRIBUTION: description: | The `Location` response header indicates the URL of the CONTRIBUTION resource. schema: type: string format: url example: https://openEHRSys.example.com/v1/ehr/7d44b88c-4199-4bad-97dc-d78268e01398/contribution/0826851c-c4c2-4d61-92b9-410fb8275ff0 x-tagGroups: - name: Resource endpoints tags: - EHR - EHR_STATUS - COMPOSITION - DIRECTORY - CONTRIBUTION