openapi: 3.2.0 info: title: Demographic AGENT API version: development x-status: DEVELOPMENT x-spec: demographic 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 interact with the openEHR Demographic API in a RESTful manner.' 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: Agent description: Management of the AGENT class. paths: /demographic/agent: post: operationId: agent_create summary: Create AGENT description: 'Creates the first version of a new AGENT. A list of ITEM_TAGs can be associated with the AGENT, in which case a `openehr-item-tag` or `openehr-version-item-tag` request header can be set as well. The corresponding response header(s) will return ITEM_TAGs as they were set by the server - see item tags headers for more details.' tags: - Agent parameters: - $ref: '#/components/parameters/Prefer' - $ref: '#/components/parameters/Accept_LOCATABLE' - $ref: '#/components/parameters/ContentType_LOCATABLE' - $ref: '#/components/parameters/openehr-item-tag' - $ref: '#/components/parameters/openehr-version-item-tag' requestBody: description: 'The AGENT. ' content: application/json: schema: $ref: '#/components/schemas/Agent' required: true responses: '201': $ref: '#/components/responses/201_AGENT' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '422': $ref: '#/components/responses/422' /demographic/agent/{uid_based_id}: get: operationId: agent_get summary: Get AGENT description: 'Retrieves a version of the AGENT identified by `uid_based_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 AGENT (e.g. one identified by `8849182c-82ad-4088-a07f-48ead4180515::openEHRSys.example.com::1`), whereas the latter (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_ AGENT version. See Resource identification for more details about the identifiers usage and meaning. When there are ITEM_TAGs associated with the retrieved AGENT, they will be returned as `openehr-item-tag` and `openehr-version-item-tag` response headers, respectively - see item tags headers for more details.' tags: - Agent parameters: - $ref: '#/components/parameters/uid_based_id' - $ref: '#/components/parameters/version_at_time' - $ref: '#/components/parameters/Accept_LOCATABLE' responses: '200': $ref: '#/components/responses/200_AGENT_retrieved' '204': $ref: '#/components/responses/204_deleted_at_time' '404': $ref: '#/components/responses/404_not_found_or_no_version_at_time' put: operationId: agent_update summary: Update AGENT description: 'Updates AGENT identified by `uid_based_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 AGENT.uid.value, it must match the `uid_based_id` in the URL. The existing latest `version_uid` of AGENT resource (i.e. the `preceding_version_uid`) must be specified in the `If-Match` header. A list of ITEM_TAGs can be associated with the updated AGENT, in which case a `openehr-item-tag` or `openehr-version-item-tag` request header can be set as well. The corresponding response header(s) will return ITEM_TAGs as they were set by the server - see item tags headers for more details.' tags: - Agent parameters: - $ref: '#/components/parameters/uid_based_id_as_versioned_object_uid' - $ref: '#/components/parameters/If-Match' - $ref: '#/components/parameters/Prefer' - $ref: '#/components/parameters/Accept_LOCATABLE' - $ref: '#/components/parameters/ContentType_LOCATABLE' - $ref: '#/components/parameters/openehr-version-item-tag' requestBody: description: 'The new AGENT. ' content: application/json: schema: $ref: '#/components/schemas/Agent' required: true responses: '200': $ref: '#/components/responses/200_AGENT_updated' '204': $ref: '#/components/responses/204_version_updated' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' '412': $ref: '#/components/responses/412_AGENT' '422': $ref: '#/components/responses/422' delete: operationId: agent_delete summary: Delete AGENT description: 'Deletes the AGENT identified by `uid_based_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: - Agent parameters: - $ref: '#/components/parameters/uid_based_id_as_version_uid' responses: '204': $ref: '#/components/responses/204_version_deleted' '400': $ref: '#/components/responses/400_already_deleted' '404': $ref: '#/components/responses/404' '409': $ref: '#/components/responses/409_AGENT_with_uid_based_id' components: schemas: DvDateTime: title: DV_DATE_TIME required: - value type: object properties: _type: enum: - DV_DATE_TIME type: string normal_status: $ref: '#/components/schemas/CodePhrase' normal_range: $ref: '#/components/schemas/DvInterval' other_reference_ranges: type: array items: $ref: '#/components/schemas/ReferenceRange' magnitude_status: type: string default: '=' accuracy: $ref: '#/components/schemas/DvDuration' value: type: string format: date-time example: _type: DV_DATE_TIME value: '2017-08-15T10:37:15.422+02:00' UMDvEhrUri: title: DV_EHR_URI required: - value - _type type: object properties: _type: enum: - DV_EHR_URI type: string value: type: string example: _type: DV_EHR_URI value: ehr://system_id/ehr_id/top_level_structure_locator/path_inside_top_level_structure TerminologyId: title: TERMINOLOGY_ID type: object properties: _type: enum: - TERMINOLOGY_ID type: string value: type: string required: - value 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/UDvEncapsulated' originating_system_audit: $ref: '#/components/schemas/FeederAuditDetails' feeder_system_audit: $ref: '#/components/schemas/FeederAuditDetails' UMPartyIdentified: title: PARTY_IDENTIFIED required: - _type type: object properties: _type: enum: - PARTY_IDENTIFIED type: string external_ref: $ref: '#/components/schemas/PartyRef' 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 DvInterval: title: DV_INTERVAL required: - lower_unbounded - upper_unbounded - lower_included - upper_included type: object properties: _type: type: string default: DV_INTERVAL lower_unbounded: type: boolean upper_unbounded: type: boolean lower_included: type: boolean upper_included: type: boolean UMPartyRelated: title: PARTY_RELATED required: - _type - relationship type: object properties: _type: enum: - PARTY_RELATED type: string external_ref: $ref: '#/components/schemas/PartyRef' name: type: string identifiers: type: array items: $ref: '#/components/schemas/DvIdentifier' relationship: $ref: '#/components/schemas/DvCodedText' 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 UMDvDuration: title: DV_DURATION required: - value - _type type: object properties: _type: enum: - DV_DURATION type: string normal_status: $ref: '#/components/schemas/CodePhrase' normal_range: $ref: '#/components/schemas/DvInterval' other_reference_ranges: type: array items: $ref: '#/components/schemas/ReferenceRange' magnitude_status: type: string default: '=' accuracy_is_percent: type: boolean accuracy: type: number value: type: string UMDvState: title: DV_STATE required: - value - is_terminal - _type type: object properties: _type: enum: - DV_STATE type: string value: $ref: '#/components/schemas/DvCodedText' is_terminal: type: boolean Clstr: title: CLUSTER required: - name - archetype_node_id - items type: object properties: _type: enum: - CLUSTER type: string name: $ref: '#/components/schemas/UDvText' archetype_node_id: type: string xml: attribute: true uid: $ref: '#/components/schemas/UUidBasedId' links: type: array items: $ref: '#/components/schemas/Link' archetype_details: $ref: '#/components/schemas/Archetyped' feeder_audit: $ref: '#/components/schemas/FeederAudit' items: type: array items: $ref: '#/components/schemas/UItem' UMDvText: title: DV_TEXT required: - value - _type type: object properties: _type: enum: - DV_TEXT type: string value: type: string hyperlink: $ref: '#/components/schemas/UDvUri' 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 Identifier: title: Identifier required: - uid type: object properties: uid: type: string description: The (version) resource identifier. example: uid: 6cb19121-4307-4648-9da0-d62e4d51f19b::openEHRSys.example.com::2 ReferenceRange: title: REFERENCE_RANGE required: - meaning - range type: object properties: meaning: $ref: '#/components/schemas/UDvText' range: $ref: '#/components/schemas/DvInterval' ListOfPartyIdentity: title: ListOfPartyIdentity type: array items: $ref: '#/components/schemas/PartyIdentity' PartyRef: title: PARTY_REF type: object properties: namespace: type: string type: pattern: ^PERSON|ORGANISATION|GROUP|AGENT|ROLE|PARTY|ACTOR$ type: string id: $ref: '#/components/schemas/UMHierObjectId' description: Identifier for parties in a demographic or identity service. example: id: _type: HIER_OBJECT_ID value: b52b9408-7048-4ec8-94bd-831fb0727e67 namespace: local type: PERSON required: - namespace - type - id UDvText: title: DV_TEXT type: object oneOf: - $ref: '#/components/schemas/UMDvText' - $ref: '#/components/schemas/UMDvCodedText' discriminator: propertyName: _type mapping: DV_TEXT: '#/components/schemas/UMDvText' DV_CODED_TEXT: '#/components/schemas/UMDvCodedText' ListOfPartyRelationship: title: ListOfPartyRelationShip type: array items: $ref: '#/components/schemas/PartyRelationship' UItemStructure: title: ITEM_STRUCTURE type: object oneOf: - $ref: '#/components/schemas/ItemSingle' - $ref: '#/components/schemas/ItemList' - $ref: '#/components/schemas/ItemTable' - $ref: '#/components/schemas/ItemTree' discriminator: propertyName: _type mapping: ITEM_SINGLE: '#/components/schemas/ItemSingle' ITEM_LIST: '#/components/schemas/ItemList' ITEM_TABLE: '#/components/schemas/ItemTable' ITEM_TREE: '#/components/schemas/ItemTree' DvEhrUri: title: DV_EHR_URI type: object properties: _type: enum: - DV_EHR_URI type: string value: type: string example: _type: DV_EHR_URI value: ehr://system_id/ehr_id/top_level_structure_locator/path_inside_top_level_structure required: - value UMDvParsable: title: DV_PARSABLE required: - _type - value - formalism type: object properties: _type: enum: - DV_PARSABLE type: string charset: $ref: '#/components/schemas/CodePhrase' language: $ref: '#/components/schemas/CodePhrase' value: type: string formalism: type: string UMDvUri: title: DV_URI required: - value - _type type: object properties: _type: enum: - DV_URI type: string value: type: string example: _type: DV_URI value: https://www.example.com DvIdentifier: title: DV_IDENTIFIER required: - id type: object properties: _type: enum: - DV_IDENTIFIER type: string 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 Agent: title: AGENT type: object properties: _type: enum: - AGENT type: string name: $ref: '#/components/schemas/UDvText' archetype_node_id: type: string xml: attribute: true uid: $ref: '#/components/schemas/UUidBasedId' links: type: array items: $ref: '#/components/schemas/Link' archetype_details: $ref: '#/components/schemas/Archetyped' feeder_audit: $ref: '#/components/schemas/FeederAudit' identities: $ref: '#/components/schemas/ListOfPartyIdentity' contacts: $ref: '#/components/schemas/ListOfContact' details: $ref: '#/components/schemas/UItemStructure' relationships: $ref: '#/components/schemas/ListOfPartyRelationship' languages: type: array items: $ref: '#/components/schemas/UDvText' roles: type: array items: $ref: '#/components/schemas/PartyRef' required: - name - archetype_node_id - identities PartyRelationship: title: PARTY_RELATIONSHIP required: - name - archetype_node_id - source - target type: object properties: _type: type: string name: $ref: '#/components/schemas/UDvText' archetype_node_id: type: string xml: attribute: true uid: $ref: '#/components/schemas/UUidBasedId' links: type: array items: $ref: '#/components/schemas/Link' archetype_details: $ref: '#/components/schemas/Archetyped' feeder_audit: $ref: '#/components/schemas/FeederAudit' source: $ref: '#/components/schemas/PartyRef' target: $ref: '#/components/schemas/PartyRef' details: $ref: '#/components/schemas/UItemStructure' time_validity: $ref: '#/components/schemas/DvIntervalOfDate' UItem: title: ITEM type: object oneOf: - $ref: '#/components/schemas/Element' - $ref: '#/components/schemas/Clstr' discriminator: propertyName: _type mapping: ELEMENT: '#/components/schemas/Element' CLUSTER: '#/components/schemas/Clstr' ItemTable: title: ITEM_TABLE type: object properties: _type: enum: - ITEM_TABLE type: string name: $ref: '#/components/schemas/UDvText' archetype_node_id: type: string xml: attribute: true uid: $ref: '#/components/schemas/UUidBasedId' links: type: array items: $ref: '#/components/schemas/Link' archetype_details: $ref: '#/components/schemas/Archetyped' feeder_audit: $ref: '#/components/schemas/FeederAudit' items: type: array items: $ref: '#/components/schemas/Clstr' required: - name - archetype_node_id ListOfContact: title: ListOfContact type: array items: $ref: '#/components/schemas/Contact' TemplateId: title: TEMPLATE_ID type: object properties: _type: enum: - TEMPLATE_ID type: string value: type: string required: - value UUidBasedId: title: UID_BASED_ID type: object oneOf: - $ref: '#/components/schemas/UMHierObjectId' - $ref: '#/components/schemas/UMObjectVersionId' discriminator: propertyName: _type mapping: HIER_OBJECT_ID: '#/components/schemas/UMHierObjectId' OBJECT_VERSION_ID: '#/components/schemas/UMObjectVersionId' UDvUri: title: DV_URI type: object oneOf: - $ref: '#/components/schemas/UMDvUri' - $ref: '#/components/schemas/UMDvEhrUri' discriminator: propertyName: _type mapping: DV_URI: '#/components/schemas/UMDvUri' DV_EHR_URI: '#/components/schemas/UMDvEhrUri' Element: title: ELEMENT type: object properties: _type: enum: - ELEMENT type: string name: $ref: '#/components/schemas/UDvText' archetype_node_id: type: string xml: attribute: true uid: $ref: '#/components/schemas/UUidBasedId' links: type: array items: $ref: '#/components/schemas/Link' archetype_details: $ref: '#/components/schemas/Archetyped' feeder_audit: $ref: '#/components/schemas/FeederAudit' null_flavour: $ref: '#/components/schemas/DvCodedText' value: $ref: '#/components/schemas/UDataValue' null_reason: $ref: '#/components/schemas/UDvText' required: - name - archetype_node_id 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 ArchetypeId: title: ARCHETYPE_ID type: object properties: _type: enum: - ARCHETYPE_ID type: string value: type: string required: - value PartyIdentity: title: PARTY_IDENTITY required: - name - archetype_node_id - details type: object properties: _type: type: string name: $ref: '#/components/schemas/UDvText' archetype_node_id: type: string xml: attribute: true uid: $ref: '#/components/schemas/UUidBasedId' links: type: array items: $ref: '#/components/schemas/Link' archetype_details: $ref: '#/components/schemas/Archetyped' feeder_audit: $ref: '#/components/schemas/FeederAudit' details: $ref: '#/components/schemas/UItemStructure' DvCodedText: title: DV_CODED_TEXT required: - value - defining_code type: object properties: _type: enum: - DV_CODED_TEXT type: string value: type: string hyperlink: $ref: '#/components/schemas/UDvUri' formatting: type: string mappings: type: array items: $ref: '#/components/schemas/TermMapping' language: $ref: '#/components/schemas/CodePhrase' encoding: $ref: '#/components/schemas/CodePhrase' defining_code: $ref: '#/components/schemas/CodePhrase' example: value: Coded text value defining_code: terminology_id: value: local code_string: at0001 DvDuration: title: DV_DURATION required: - value type: object properties: _type: enum: - DV_DURATION type: string normal_status: $ref: '#/components/schemas/CodePhrase' normal_range: $ref: '#/components/schemas/DvInterval' other_reference_ranges: type: array items: $ref: '#/components/schemas/ReferenceRange' magnitude_status: type: string default: '=' accuracy_is_percent: type: boolean accuracy: type: number value: type: string ItemTree: title: ITEM_TREE type: object properties: _type: enum: - ITEM_TREE type: string name: $ref: '#/components/schemas/UDvText' archetype_node_id: type: string xml: attribute: true uid: $ref: '#/components/schemas/UUidBasedId' links: type: array items: $ref: '#/components/schemas/Link' archetype_details: $ref: '#/components/schemas/Archetyped' feeder_audit: $ref: '#/components/schemas/FeederAudit' items: type: array items: $ref: '#/components/schemas/UItem' description: See [ITEM](#tag/ITEM_schema) schema details. required: - name - archetype_node_id ItemSingle: title: ITEM_SINGLE required: - name - archetype_node_id - item type: object properties: _type: enum: - ITEM_SINGLE type: string name: $ref: '#/components/schemas/UDvText' archetype_node_id: type: string xml: attribute: true uid: $ref: '#/components/schemas/UUidBasedId' links: type: array items: $ref: '#/components/schemas/Link' archetype_details: $ref: '#/components/schemas/Archetyped' feeder_audit: $ref: '#/components/schemas/FeederAudit' item: $ref: '#/components/schemas/Element' DvIntervalOfDate: title: DV_INTERVAL_of_DATE type: object properties: _type: type: string default: DV_INTERVAL lower_unbounded: type: boolean upper_unbounded: type: boolean lower_included: type: boolean upper_included: type: boolean lower: $ref: '#/components/schemas/UMDvDate' upper: $ref: '#/components/schemas/UMDvDate' required: - lower_unbounded - upper_unbounded - lower_included - upper_included 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 UMPartySelf: title: PARTY_SELF required: - _type type: object properties: _type: enum: - PARTY_SELF type: string external_ref: $ref: '#/components/schemas/PartyRef' TermMapping: title: TERM_MAPPING required: - match - target type: object properties: match: pattern: ^[><=?]$ type: string purpose: $ref: '#/components/schemas/DvCodedText' target: $ref: '#/components/schemas/CodePhrase' UPartyIdentified: title: PARTY_IDENTIFIED type: object oneOf: - $ref: '#/components/schemas/UMPartyIdentified' - $ref: '#/components/schemas/UMPartyRelated' discriminator: propertyName: _type mapping: PARTY_IDENTIFIED: '#/components/schemas/UMPartyIdentified' PARTY_RELATED: '#/components/schemas/UMPartyRelated' 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 Link: title: LINK required: - meaning - type - target type: object properties: meaning: $ref: '#/components/schemas/UDvText' type: $ref: '#/components/schemas/UDvText' target: $ref: '#/components/schemas/DvEhrUri' UMHierObjectId: title: HIER_OBJECT_ID required: - value - _type type: object example: _type: HIER_OBJECT_ID value: 6cb19121-4307-4648-9da0-d62e4d51f19b properties: _type: enum: - HIER_OBJECT_ID type: string value: type: string format: uuid UMObjectVersionId: title: OBJECT_VERSION_ID required: - value - _type type: object example: _type: OBJECT_VERSION_ID value: 6cb19121-4307-4648-9da0-d62e4d51f19b::openEHRSys.example.com::2 properties: _type: enum: - OBJECT_VERSION_ID type: string value: type: string UMDvScale: title: DV_SCALE required: - symbol - value - _type type: object properties: _type: enum: - DV_SCALE type: string normal_status: $ref: '#/components/schemas/CodePhrase' normal_range: $ref: '#/components/schemas/DvInterval' other_reference_ranges: type: array items: $ref: '#/components/schemas/ReferenceRange' symbol: $ref: '#/components/schemas/DvCodedText' value: type: number FeederAuditDetails: title: FEEDER_AUDIT_DETAILS required: - system_id type: object properties: system_id: type: string location: $ref: '#/components/schemas/UPartyIdentified' subject: $ref: '#/components/schemas/UPartyProxy' provider: $ref: '#/components/schemas/UPartyIdentified' time: $ref: '#/components/schemas/DvDateTime' version_id: type: string other_details: $ref: '#/components/schemas/UItemStructure' UMDvOrdinal: title: DV_ORDINAL required: - symbol - value - _type type: object properties: _type: enum: - DV_ORDINAL type: string normal_status: $ref: '#/components/schemas/CodePhrase' normal_range: $ref: '#/components/schemas/DvInterval' other_reference_ranges: type: array items: $ref: '#/components/schemas/ReferenceRange' symbol: $ref: '#/components/schemas/DvCodedText' value: type: integer Address: title: ADDRESS required: - name - archetype_node_id - details type: object properties: _type: type: string name: $ref: '#/components/schemas/UDvText' archetype_node_id: type: string xml: attribute: true uid: $ref: '#/components/schemas/UUidBasedId' links: type: array items: $ref: '#/components/schemas/Link' archetype_details: $ref: '#/components/schemas/Archetyped' feeder_audit: $ref: '#/components/schemas/FeederAudit' details: $ref: '#/components/schemas/UItemStructure' UMDvQuantity: title: DV_QUANTITY required: - magnitude - units - _type type: object properties: _type: enum: - DV_QUANTITY type: string normal_status: $ref: '#/components/schemas/CodePhrase' normal_range: $ref: '#/components/schemas/DvInterval' other_reference_ranges: type: array items: $ref: '#/components/schemas/ReferenceRange' magnitude_status: type: string default: '=' accuracy_is_percent: type: boolean accuracy: type: number magnitude: type: number precision: type: integer units: type: string units_system: type: string units_display_name: type: string ItemList: title: ITEM_LIST type: object properties: _type: enum: - ITEM_LIST type: string name: $ref: '#/components/schemas/UDvText' archetype_node_id: type: string xml: attribute: true uid: $ref: '#/components/schemas/UUidBasedId' links: type: array items: $ref: '#/components/schemas/Link' archetype_details: $ref: '#/components/schemas/Archetyped' feeder_audit: $ref: '#/components/schemas/FeederAudit' items: type: array items: $ref: '#/components/schemas/Element' required: - name - archetype_node_id UMDvProportion: title: DV_PROPORTION required: - numerator - denominator - type - _type type: object properties: _type: enum: - DV_PROPORTION type: string normal_status: $ref: '#/components/schemas/CodePhrase' normal_range: $ref: '#/components/schemas/DvInterval' other_reference_ranges: type: array items: $ref: '#/components/schemas/ReferenceRange' magnitude_status: type: string default: '=' accuracy_is_percent: type: boolean accuracy: type: number numerator: type: number denominator: type: number type: type: integer precision: type: integer UMDvIdentifier: title: DV_IDENTIFIER required: - id - _type type: object properties: _type: enum: - DV_IDENTIFIER type: string issuer: type: string assigner: type: string id: type: string type: type: string example: id: 16b74749-e6aa-4945-b760-b42bdc07098a type: Patient UMDvBoolean: title: DV_BOOLEAN required: - value - _type type: object properties: _type: enum: - DV_BOOLEAN type: string value: type: boolean UMDvCount: title: DV_COUNT required: - magnitude - _type type: object properties: _type: enum: - DV_COUNT type: string normal_status: $ref: '#/components/schemas/CodePhrase' normal_range: $ref: '#/components/schemas/DvInterval' other_reference_ranges: type: array items: $ref: '#/components/schemas/ReferenceRange' magnitude_status: type: string default: '=' accuracy_is_percent: type: boolean accuracy: type: number magnitude: type: integer format: int64 UMDvDateTime: title: DV_DATE_TIME required: - value - _type type: object properties: _type: enum: - DV_DATE_TIME type: string normal_status: $ref: '#/components/schemas/CodePhrase' normal_range: $ref: '#/components/schemas/DvInterval' other_reference_ranges: type: array items: $ref: '#/components/schemas/ReferenceRange' magnitude_status: type: string default: '=' accuracy: $ref: '#/components/schemas/DvDuration' value: type: string format: date-time example: _type: DV_DATE_TIME value: '2017-08-15T10:37:15.422+02:00' UDvEncapsulated: title: DV_ENCAPSULATED type: object oneOf: - $ref: '#/components/schemas/UMDvMultimedia' - $ref: '#/components/schemas/UMDvParsable' discriminator: propertyName: _type mapping: DV_MULTIMEDIA: '#/components/schemas/UMDvMultimedia' DV_PARSABLE: '#/components/schemas/UMDvParsable' UpdateItemTag: title: UPDATE_ITEM_TAG required: - key type: object properties: key: type: string description: Tag key (identifier) value: type: string description: Tag value target_path: type: string description: An AQL path withing the `target` used to tag a fine-grained element example: key: flag value: follow-up target_path: /context/start_time/value additionalProperties: false UMDvDate: title: DV_DATE required: - value - _type type: object properties: _type: enum: - DV_DATE type: string normal_status: $ref: '#/components/schemas/CodePhrase' normal_range: $ref: '#/components/schemas/DvInterval' other_reference_ranges: type: array items: $ref: '#/components/schemas/ReferenceRange' magnitude_status: type: string default: '=' accuracy: $ref: '#/components/schemas/DvDuration' value: type: string format: date example: _type: DV_DATE value: '2017-08-15' UDataValue: title: DATA_VALUE type: object oneOf: - $ref: '#/components/schemas/UMDvBoolean' - $ref: '#/components/schemas/UMDvCodedText' - $ref: '#/components/schemas/UMDvCount' - $ref: '#/components/schemas/UMDvDate' - $ref: '#/components/schemas/UMDvDateTime' - $ref: '#/components/schemas/UMDvDuration' - $ref: '#/components/schemas/UMDvEhrUri' - $ref: '#/components/schemas/UMDvIdentifier' - $ref: '#/components/schemas/UMDvMultimedia' - $ref: '#/components/schemas/UMDvOrdinal' - $ref: '#/components/schemas/UMDvParsable' - $ref: '#/components/schemas/UMDvProportion' - $ref: '#/components/schemas/UMDvQuantity' - $ref: '#/components/schemas/UMDvScale' - $ref: '#/components/schemas/UMDvState' - $ref: '#/components/schemas/UMDvText' - $ref: '#/components/schemas/UMDvUri' discriminator: propertyName: _type mapping: DV_BOOLEAN: '#/components/schemas/UMDvBoolean' DV_CODED_TEXT: '#/components/schemas/UMDvCodedText' DV_COUNT: '#/components/schemas/UMDvCount' DV_DATE: '#/components/schemas/UMDvDate' DV_DATE_TIME: '#/components/schemas/UMDvDateTime' DV_DURATION: '#/components/schemas/UMDvDuration' DV_EHR_URI: '#/components/schemas/UMDvEhrUri' DV_IDENTIFIER: '#/components/schemas/UMDvIdentifier' DV_MULTIMEDIA: '#/components/schemas/UMDvMultimedia' DV_ORDINAL: '#/components/schemas/UMDvOrdinal' DV_PARSABLE: '#/components/schemas/UMDvParsable' DV_PROPORTION: '#/components/schemas/UMDvProportion' DV_QUANTITY: '#/components/schemas/UMDvQuantity' DV_SCALE: '#/components/schemas/UMDvScale' DV_STATE: '#/components/schemas/UMDvState' DV_TEXT: '#/components/schemas/UMDvText' DV_TIME: '#/components/schemas/UMDvTime' DV_URI: '#/components/schemas/UMDvUri' UPartyProxy: title: PARTY_PROXY type: object oneOf: - $ref: '#/components/schemas/UMPartySelf' - $ref: '#/components/schemas/UMPartyIdentified' - $ref: '#/components/schemas/UMPartyRelated' discriminator: propertyName: _type mapping: PARTY_SELF: '#/components/schemas/UMPartySelf' PARTY_IDENTIFIED: '#/components/schemas/UMPartyIdentified' PARTY_RELATED: '#/components/schemas/UMPartyRelated' UMDvMultimedia: title: DV_MULTIMEDIA required: - _type - media_type - size type: object properties: _type: enum: - DV_MULTIMEDIA type: string charset: $ref: '#/components/schemas/CodePhrase' language: $ref: '#/components/schemas/CodePhrase' alternate_text: type: string uri: $ref: '#/components/schemas/UDvUri' 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 DvMultimedia: title: DV_MULTIMEDIA required: - _type - media_type - size type: object properties: _type: enum: - DV_MULTIMEDIA type: string charset: $ref: '#/components/schemas/CodePhrase' language: $ref: '#/components/schemas/CodePhrase' alternate_text: type: string uri: $ref: '#/components/schemas/UDvUri' 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 Contact: title: CONTACT required: - name - archetype_node_id - addresses type: object properties: _type: enum: - CONTACT type: string name: $ref: '#/components/schemas/UDvText' archetype_node_id: type: string xml: attribute: true uid: $ref: '#/components/schemas/UUidBasedId' links: type: array items: $ref: '#/components/schemas/Link' archetype_details: $ref: '#/components/schemas/Archetyped' feeder_audit: $ref: '#/components/schemas/FeederAudit' addresses: type: array items: $ref: '#/components/schemas/Address' time_validity: $ref: '#/components/schemas/DvIntervalOfDate' UMDvCodedText: title: DV_CODED_TEXT required: - value - defining_code - _type type: object properties: _type: enum: - DV_CODED_TEXT type: string value: type: string hyperlink: $ref: '#/components/schemas/UDvUri' formatting: type: string mappings: type: array items: $ref: '#/components/schemas/TermMapping' language: $ref: '#/components/schemas/CodePhrase' encoding: $ref: '#/components/schemas/CodePhrase' defining_code: $ref: '#/components/schemas/CodePhrase' example: value: Coded text value defining_code: terminology_id: value: local code_string: at0001 responses: 409_AGENT_with_uid_based_id: description: '`409 Conflict` is returned when supplied `uid_based_id` doesn''t match the latest version. Returns also latest `version_uid` in the `ETag` header. ' headers: ETag: $ref: '#/components/headers/ETag' Location: $ref: '#/components/headers/Location_deprecated' 200_AGENT_updated: description: '`200 OK` is returned when the AGENT is successfully updated, with the full resource in the response body when `Prefer` header is `return=representation`, or only its identifiers when `Prefer` header is `return=identifier`. ' headers: ETag: $ref: '#/components/headers/ETag' Location: $ref: '#/components/headers/Location_AGENT' Content-Type: $ref: '#/components/headers/ContentType_LOCATABLE' openehr-item-tag: $ref: '#/components/headers/openehr-item-tag' openehr-version-item-tag: $ref: '#/components/headers/openehr-version-item-tag' content: application/json: schema: oneOf: - $ref: '#/components/schemas/Agent' - $ref: '#/components/schemas/Identifier' '404': description: '`404 Not Found` is returned when, based on the request parameters, the server did not find a current representation of a target resource, or is not willing to disclose that one exists. ' 204_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. ' 204_version_deleted: description: '`204 No Content` is returned for a successful delete operation. ' headers: ETag: $ref: '#/components/headers/ETag' Location: $ref: '#/components/headers/Location_deprecated' 201_AGENT: description: "`201 Created` is returned when the AGENT is successfully created. \nIf `Prefer` header is `return=representation`, the full resource is included in the response body; if is `return=identifier`, only its unique identifier is included. \nIf the `Prefer` header is missing or set to `return=minimal`, the body is empty.\n" headers: ETag: $ref: '#/components/headers/ETag' Location: $ref: '#/components/headers/Location_AGENT' Content-Type: $ref: '#/components/headers/ContentType_LOCATABLE' openehr-item-tag: $ref: '#/components/headers/openehr-item-tag' openehr-version-item-tag: $ref: '#/components/headers/openehr-version-item-tag' content: application/json: schema: oneOf: - $ref: '#/components/schemas/Agent' - $ref: '#/components/schemas/Identifier' 204_version_updated: description: '`204 No Content` is returned when the update operation was successful and the `Prefer` header is missing or is set to `return=minimal`. ' headers: ETag: $ref: '#/components/headers/ETag' Location: $ref: '#/components/headers/Location_version' openehr-item-tag: $ref: '#/components/headers/openehr-item-tag' openehr-version-item-tag: $ref: '#/components/headers/openehr-version-item-tag' 200_AGENT_retrieved: description: '`200 OK` is returned when the requested AGENT is successfully retrieved. ' headers: ETag: $ref: '#/components/headers/ETag' Location: $ref: '#/components/headers/Location_deprecated' Content-Type: $ref: '#/components/headers/ContentType_LOCATABLE' openehr-item-tag: $ref: '#/components/headers/openehr-item-tag' openehr-version-item-tag: $ref: '#/components/headers/openehr-version-item-tag' content: application/json: schema: $ref: '#/components/schemas/Agent' 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. ' '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). \nThe response body MAY contain error details.\n" content: application/json: schema: $ref: '#/components/schemas/Error' 404_not_found_or_no_version_at_time: description: '`404 Not Found` is returned when either the URL configured doesn''t exist at all, or the targeted resource doesn''t exist, or when a VERSION of the resource does not exist at the specified `version_at_time`. ' 412_AGENT: 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 `ETag` header. ' headers: ETag: $ref: '#/components/headers/ETag' Location: $ref: '#/components/headers/Location_deprecated' '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. ' parameters: openehr-version-item-tag: name: openehr-version-item-tag in: header description: 'The list of all ITEM_TAG to be set and associated with the current VERSION - see [details](overview.html#tag/Requests_and_responses/HTTP-headers/openehr-item-tag-and-openehr-version-item-tag). ' required: false style: simple explode: true schema: type: array items: $ref: '#/components/schemas/UpdateItemTag' example: key="category",value="final"; key="flag",value="follow-up",target_path="/composition/start_time/value" ContentType_LOCATABLE: name: Content-Type in: header style: simple schema: type: string enum: - application/json - application/xml - application/openehr.wt.flat+json - application/openehr.wt.structured+json openehr-item-tag: name: openehr-item-tag in: header description: 'The list of all ITEM_TAG to be set and associated with the current VERSIONED_OBJECT - see [details](overview.html#tag/Requests_and_responses/HTTP-headers/openehr-item-tag-and-openehr-version-item-tag). ' required: false style: simple explode: true schema: type: array items: $ref: '#/components/schemas/UpdateItemTag' example: key="category",value="final"; key="flag",value="follow-up",target_path="/composition/start_time/value" 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 format: uuid example: 8849182c-82ad-4088-a07f-48ead4180515 Accept_LOCATABLE: name: Accept in: header style: simple schema: type: string enum: - application/json - application/xml - application/openehr.wt.flat+json - application/openehr.wt.structured+json 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 format: datetime example: '2015-01-20T19:30:22.765+01:00' If-Match: name: If-Match in: header description: "Header to make the request conditional. \nTogether with `ETag` request tag, it helps to prevent simultaneous updates of a resource from overwriting each other (\"mid-air collisions\").\nThe format is always an `version_uid` identifier enclosed by double quotes.\nThe 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.\n" 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 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`, or only the resource identifier (e.g., the `uid`) when the value is `return=identifier`. ' required: false style: simple schema: type: string enum: - return=representation - return=minimal - return=identifier default: return=minimal 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 headers: ContentType_LOCATABLE: schema: type: string enum: - application/xml - application/json - application/openehr.wt.flat+json - application/openehr.wt.structured+json openehr-item-tag: description: 'The list of all ITEM_TAG associated with the current VERSIONED_OBJECT - see [details](overview.html#tag/Requests_and_responses/HTTP-headers/openehr-item-tag-and-openehr-version-item-tag). ' schema: type: string 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: W/"6cb19121-4307-4648-9da0-d62e4d51f19b::openEHRSys.example.com::2" Location_deprecated: description: 'The `Location` is [deprecated](overview.html#tag/Requests_and_responses/HTTP-headers/Location) for this action. ' deprecated: true schema: type: string openehr-version-item-tag: description: 'The list of all ITEM_TAG associated with the current VERSION - see [details](overview.html#tag/Requests_and_responses/HTTP-headers/openehr-item-tag-and-openehr-version-item-tag). ' schema: type: string Location_AGENT: description: 'The `Location` response header indicates the URL of the AGENT resource. ' schema: type: string format: url example: https://openEHRSys.example.com/v1/demographic/agent/6cb19121-4307-4648-9da0-d62e4d51f19b::openEHRSys.example.com::2 Location_version: description: 'The `Location` response header indicates the URL of the resource version resulted from the operation. ' schema: type: string format: url x-tagGroups: - name: Resource endpoints tags: - AGENT - GROUP - ORGANISATION - PERSON - ROLE - VERSIONED_PARTY - CONTRIBUTION - ITEM_TAG - name: Related schemas tags: - CAPABILITY_schema - CONTACT_schema - ITEM_schema - ITEM_STRUCTURE_schema - PARTY_IDENTITY_schema - PARTY_RELATIONSHIP_schema