openEHR PERSON API

Management of the [PERSON](https://specifications.openehr.org/releases/RM/latest/demographic.html#_person_class) class.

Operations 4

POST /demographic/person Create PERSON #
GET /demographic/person/{uid_based_id} Get PERSON #
PUT /demographic/person/{uid_based_id} Update PERSON #
DELETE /demographic/person/{uid_based_id} Delete PERSON #

Specifications

Schemas & Data

Other Resources

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/openehr-person-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

openehr-person-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Demographic PERSON 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: Person
  description: Management of the PERSON class.
paths:
  /demographic/person:
    post:
      operationId: person_create
      summary: Create PERSON
      description: 'Creates the first version of a new PERSON.


        A list of ITEM_TAGs can be associated with the PERSON, 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:
      - Person
      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 PERSON.

          '
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Person'
        required: true
      responses:
        '201':
          $ref: '#/components/responses/201_PERSON'
        '400':
          $ref: '#/components/responses/400'
        '404':
          $ref: '#/components/responses/404'
        '422':
          $ref: '#/components/responses/422'
  /demographic/person/{uid_based_id}:
    get:
      operationId: person_get
      summary: Get PERSON
      description: 'Retrieves a version of the PERSON 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 PERSON (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_ PERSON version.


        See Resource identification for more details about the identifiers usage and meaning.


        When there are ITEM_TAGs associated with the retrieved PERSON, they will be returned as `openehr-item-tag` and `openehr-version-item-tag` response headers, respectively - see item tags headers for more details.'
      tags:
      - Person
      parameters:
      - $ref: '#/components/parameters/uid_based_id'
      - $ref: '#/components/parameters/version_at_time'
      - $ref: '#/components/parameters/Accept_LOCATABLE'
      responses:
        '200':
          $ref: '#/components/responses/200_PERSON_retrieved'
        '204':
          $ref: '#/components/responses/204_deleted_at_time'
        '404':
          $ref: '#/components/responses/404_not_found_or_no_version_at_time'
    put:
      operationId: person_update
      summary: Update PERSON
      description: 'Updates PERSON 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 PERSON.uid.value, it must match the `uid_based_id` in the URL.


        The existing latest `version_uid` of PERSON 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 PERSON, 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:
      - Person
      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 PERSON.

          '
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Person'
        required: true
      responses:
        '200':
          $ref: '#/components/responses/200_PERSON_updated'
        '204':
          $ref: '#/components/responses/204_version_updated'
        '400':
          $ref: '#/components/responses/400'
        '404':
          $ref: '#/components/responses/404'
        '412':
          $ref: '#/components/responses/412_PERSON'
        '422':
          $ref: '#/components/responses/422'
    delete:
      operationId: person_delete
      summary: Delete PERSON
      description: 'Deletes the PERSON 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:
      - Person
      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_PERSON_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
    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'
    Person:
      title: PERSON
      type: object
      properties:
        _type:
          enum:
          - PERSON
          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: a

# --- truncated at 32 KB (56 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/openehr/refs/heads/main/openapi/openehr-person-api-openapi.yml