openEHR Definition API

Manage the definition layer — ADL 1.4 and ADL 2 templates, operational templates and stored queries. openEHR SPECIFICATION, not a callable service — 13 operation(s) across 9 path(s), served from the templated host `https://{baseUrl}/v1`.

Operations 13

POST /definition/template/adl1.4 Upload a template #
GET /definition/template/adl1.4 List templates #
GET /definition/template/adl1.4/{template_id} Get a template #
GET /definition/template/adl1.4/{template_id}/example Get example data by template #
POST /definition/template/adl2 Upload a template #
GET /definition/template/adl2 List templates #
GET /definition/template/adl2/{template_id} Get a template #
GET /definition/template/adl2/{template_id}/example Get example data by template #
GET /definition/template/adl2/{template_id}/{version} Get a template at version #
GET /definition/query/{qualified_query_name} List stored queries #
PUT /definition/query/{qualified_query_name} Store a query #
PUT /definition/query/{qualified_query_name}/{version} Store a query version #
GET /definition/query/{qualified_query_name}/{version} Get stored query at version #

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/definition"
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 email required.

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

OpenAPI Specification

openehr-definition-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Definition API
  version: latest
  x-status: STABLE
  x-spec: definition
  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 Definition API in a RESTful manner.

    ### Related Documents

    Prerequisite documents for reading this document include:

    - The [Operational Template 2](https://specifications.openehr.org/releases/AM/latest/OPT2.html)
    - The [Archetype Query Language (AQL)](https://specifications.openehr.org/releases/QUERY/latest/AQL.html) 

    Related documents include:

    - The [openEHR Architecture Overview](https://specifications.openehr.org/releases/BASE/latest/architecture_overview.html)
    - The [Archetype Technology Overview](https://specifications.openehr.org/releases/AM/latest/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 Formats](simplified_formats.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/definition-validation.openapi.yaml), or [for code generators](computable/OAS/definition-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 <https://specifications.openehr.org/releases/ITS-REST/development/definition.html>.
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: ADL1.4
    x-displayName: ADL1.4 TEMPLATE
    description: |
      Management of [AOM and ADL 1.4](https://specifications.openehr.org/releases/AM/latest) Operational Templates (OPTs). 
      These templates can be created using [modelling tools](https://www.openehr.org/downloads/modellingtools) such as the Template Designer and the Archetype Designer. 

      Operational templates simplify the creation of openEHR-based input or storage implementations by, for a specific COMPOSITION template (use case), collecting all labels, requirements and constraints from all contained archetypes and sub-templates into a single easily parsed file. 
      This file can be a basis for UI-generation/creation and for data validation.
  - name: ADL2
    x-displayName: ADL2 TEMPLATE
    description: |
      Management of [AOM2](https://specifications.openehr.org/releases/AM/latest/AOM2.html#_templates) templates.

      See also [ADL2 Template specifications](https://specifications.openehr.org/releases/AM/latest/ADL2.html#_templates).
  - name: Query
    x-displayName: Stored Query
    description: |
      Management of stored (registered) queries in the system, including creation of new versions and retrieval by qualified name and version. 

      These endpoints enable registration and lifecycle management of reusable queries available for later execution.    

      Stored queries are identified by their [qualified name and version](query.html#tag/Qualified_query_name).
      They can be executed using the [query endpoint](query.html#tag/Query/operation/query_execute_stored_query_body).
  - name: TemplateList_schema
    x-displayName: Template list
    description: |
      This resource represents the list of `Template` meta-information associated with uploaded templates, including identifiers, names, versions and related attributes that help clients discover available templates.

      <SchemaDefinition schemaRef="#/components/schemas/TemplateList" />
  - name: Template_schema
    x-displayName: Template
    description: |
      The following resources are formally specified in the [Archetype Model](https://specifications.openehr.org/releases/AM/latest) as AOM/ADL 1.4 Operational Templates (OPTs) and as [AOM2 templates](https://specifications.openehr.org/releases/AM/latest/AOM2.html#_templates).
      <div class="mb-5"></div>

      The AOM/ADL 1.4 `OPERATIONAL_TEMPLATE` resource:
      <SchemaDefinition schemaRef="#/components/schemas/OperationalTemplate" />

      The AOM/ADL 2 `OPERATIONAL_TEMPLATE` resource:
      <SchemaDefinition schemaRef="#/components/schemas/OperationalTemplateV2" />

      The `WebTemplate` alternative resource:
      <SchemaDefinition schemaRef="#/components/schemas/WebTemplate" />
  - name: StoredQuery_schema
    x-displayName: Stored Query
    description: |
      This resource represents the definition of a stored query, including its qualified name, versioning and parameter declarations. Stored queries provide a reusable, immutable way to identify a specific AQL statement that can be executed later.

      <SchemaDefinition schemaRef="#/components/schemas/StoredQuery" />
paths:
  /definition/template/adl1.4:
    post:
      operationId: definition_template_adl1.4_upload
      summary: Upload a template
      description: |
        Upload a new ADL 1.4 operational template (OPT).
      tags:
        - ADL1.4
      parameters:
        - $ref: '#/components/parameters/Prefer'
        - $ref: '#/components/parameters/Accept_Template'
        - name: Content-Type
          in: header
          style: simple
          schema:
            type: string
            enum:
              - application/xml
      requestBody:
        description: ''
        content:
          application/xml:
            schema:
              oneOf:
                - $ref: '#/components/schemas/OperationalTemplate'
            example: |-
              <template xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.openehr.org/v1">
                  <language>
                      <terminology_id>
                          <value>ISO_639-1</value>
                      </terminology_id>
                      <code_string>en</code_string>
                  </language>
                  <description>
                      <original_author id="Original Author">Not Specified</original_author>
                      <lifecycle_state>Initial</lifecycle_state>
                      <other_details id="MetaDataSet:Sample Set ">Template metadata sample set</other_details>
                      <other_details id="Acknowledgements"></other_details>
                      <other_details id="Business Process Level"></other_details>
                      <other_details id="Care setting"></other_details>
                      <other_details id="Client group"></other_details>
                      <other_details id="Clinical Record Element"></other_details>
                      <other_details id="Copyright"></other_details>
                      <other_details id="Issues"></other_details>
                      <other_details id="Owner"></other_details>
                      <other_details id="Sign off"></other_details>
                      <other_details id="Speciality"></other_details>
                      <other_details id="User roles"></other_details>
                      <details>
                          <language>
                              <terminology_id>
                                  <value>ISO_639-1</value>
                              </terminology_id>
                              <code_string>en</code_string>
                          </language>
                          <purpose>Not Specified</purpose>
                      </details>
                  </description>
                  <uid>
                      <value>b4d7f203-b329-4e89-a58a-c605b19e94de</value>
                  </uid>
                  <template_id>
                      <value>Vital Signs</value>
                  </template_id>
                  <concept>Vital Signs</concept>
                  <definition>
                      <rm_type_name>COMPOSITION</rm_type_name>
                      <occurrences>
                          <lower_included>true</lower_included>
                          <upper_included>true</upper_included>
                          <lower_unbounded>false</lower_unbounded>
                          <upper_unbounded>false</upper_unbounded>
                          <lower>1</lower>
                          <upper>1</upper>
                      </occurrences>
                      <node_id>at0000</node_id>
                      ...
        required: true
      responses:
        '201':
          $ref: '#/components/responses/201_Template_adl1_4_upload'
        '400':
          $ref: '#/components/responses/400'
        '409':
          $ref: '#/components/responses/409_template_already_exists'
    get:
      operationId: definition_template_adl1.4_list
      summary: List templates
      description: |
        List the available ADL 1.4 operational templates (OPT) on the system.
      tags:
        - ADL1.4
      parameters:
        - $ref: '#/components/parameters/Accept_JSON'
        - $ref: '#/components/parameters/filter_template_id'
        - $ref: '#/components/parameters/concept'
        - $ref: '#/components/parameters/filter_version'
        - $ref: '#/components/parameters/offset'
        - $ref: '#/components/parameters/fetch'
      responses:
        '200':
          $ref: '#/components/responses/200_TemplateList_adl1_4'
  /definition/template/adl1.4/{template_id}:
    get:
      operationId: definition_template_adl1.4_get
      summary: Get a template
      description: |
        Retrieves the ADL 1.4 operational template (OPT) identified by `template_id` identifier.

        Note that this can return either the original (canonical) `XML` based OPT format (if called with the `Accept: application/xml` request header), as well as the simplified `JSON`-based “web template” format (if called with the `Accept: application/openehr.wt+json` request header). For more details see the [data representation specification](overview.html#tag/Resources/Data-representation).
      tags:
        - ADL1.4
      parameters:
        - $ref: '#/components/parameters/template_id'
        - $ref: '#/components/parameters/Accept_Template'
      responses:
        '200':
          $ref: '#/components/responses/200_Template_adl1_4_retrieved'
        '400':
          $ref: '#/components/responses/400'
        '404':
          $ref: '#/components/responses/404_unknown_template_id'
        '406':
          $ref: '#/components/responses/406'
  /definition/template/adl1.4/{template_id}/example:
    get:
      operationId: definition_template_adl1.4_example_get
      summary: Get example data by template
      description: |
        Generates and retrieves an example data instance based on an ADL 1.4 operational template (OPT) identified by the `template_id` parameter.

        The generated example can be either of type `input` (i.e., ready to be submitted to the repository) or `output` (as it would appear when retrieved from the repository).
        This behavior is controlled by the `type` query parameter.

        The level of detail in the generated example can be customized using the `detail_level` query parameter.
        It affects the number and complexity of nested elements, the inclusion or exclusion of optional elements, and the depth of data point details.
        The supported values are:
        - `required`: a minimal composition including only mandatory data points; intended for training purposes and expected to be committable without adjustment
        - `medium`: a fairly realistic set of data points, including some optional RM attributes and elements; intended to be committable (e.g., it should not contain more than one choice element, even if the template allows it)
        - `complete`: a full representation of all possible data points; not expected to be committable or realistic, and intended as reference guidance for how parts of the RM should be represented

        > NOTE: The implementation and completeness of these examples are not specified, and vendors may produce different results.
        These examples are intended as pedagogical tools; their output should not be used in production.

        When the server does not support the requested `type` or `detail_level`, it will fall back to the closest supported level, or it may return an error (typically `400 Bad Request`).

        The format of the returned data instance can be controlled via the `Accept` header. See the [data representation specification](overview.html#tag/Resources/Data-representation) for supported formats.tags:
      tags:
        - ADL1.4
      parameters:
        - $ref: '#/components/parameters/template_id'
        - $ref: '#/components/parameters/example_type'
        - $ref: '#/components/parameters/example_detail_level'
        - $ref: '#/components/parameters/Accept_LOCATABLE'
      responses:
        '200':
          $ref: '#/components/responses/200_Template_example_retrieved'
        '400':
          $ref: '#/components/responses/400'
        '404':
          $ref: '#/components/responses/404_unknown_template_id'
        '406':
          $ref: '#/components/responses/406'
  /definition/template/adl2:
    post:
      operationId: definition_template_adl2_upload
      summary: Upload a template
      description: |
        Upload a new ADL2 operational template.
      tags:
        - ADL2
      parameters:
        - $ref: '#/components/parameters/at_version'
        - $ref: '#/components/parameters/Prefer'
        - $ref: '#/components/parameters/Accept_Template_adl2'
        - name: Content-Type
          in: header
          style: simple
          schema:
            type: string
            enum:
              - text/plain
      requestBody:
        description: ''
        content:
          text/plain:
            schema:
              oneOf:
                - $ref: '#/components/schemas/OperationalTemplateV2'
                - type: string
            example: |-
              operational_template (adl_version=2.0.6; rm_release=1.0.2; generated)
                  openEHR-EHR-COMPOSITION.t_clinical_info_ds_sf.v1.0.0

              specialize
                  openEHR-EHR-COMPOSITION.discharge.v1

              language
                  original_language = <[ISO_639-1::en]>

              description
                  lifecycle_state = <"unmanaged">
                  original_author = <
                      ["name"] = <"Ian McNicoll">
                      ["organisation"] = <"openEHR Foundation">
                      ["email"] = <"ian.mcnicoll@openehr.org">
              ...
        required: true
      responses:
        '201':
          $ref: '#/components/responses/201_Template_adl2_upload'
        '400':
          $ref: '#/components/responses/400'
        '409':
          $ref: '#/components/responses/409_template_already_exists'
    get:
      operationId: definition_template_adl2_list
      summary: List templates
      description: |
        List the available ADL2 operational templates on the system.
      tags:
        - ADL2
      parameters:
        - $ref: '#/components/parameters/Accept_JSON'
        - $ref: '#/components/parameters/filter_template_id'
        - $ref: '#/components/parameters/concept'
        - $ref: '#/components/parameters/filter_version'
        - $ref: '#/components/parameters/offset'
        - $ref: '#/components/parameters/fetch'
      responses:
        '200':
          $ref: '#/components/responses/200_TemplateList_adl2'
  /definition/template/adl2/{template_id}:
    get:
      operationId: definition_template_adl2_get
      summary: Get a template
      description: |
        Retrieves the latest version of the ADL2 operational template identified by `template_id` identifier.
      tags:
        - ADL2
      parameters:
        - $ref: '#/components/parameters/template_id_adl2'
        - $ref: '#/components/parameters/Accept_Template_adl2'
      responses:
        '200':
          $ref: '#/components/responses/200_Template_adl2_retrieved'
        '400':
          $ref: '#/components/responses/400'
        '404':
          $ref: '#/components/responses/404_unknown_template_id'
  /definition/template/adl2/{template_id}/example:
    get:
      operationId: definition_template_adl2_example_get
      summary: Get example data by template
      description: |
        Generates and retrieves an example data instance based on an ADL2 operational template (OPT) identified by the `template_id` parameter.

        The generated example can be either an `input` type (ready for submission to the repository) or an `output` type (as it would appear when retrieved from the repository), controlled by the `type` parameter.

        The level of detail in the generated example can be customized using the `detail_level` parameter, which affects:
        - Number and complexity of nested elements
        - Inclusion/exclusion of optional elements
        - Depth of data point details

        The format of the returned data instance can be controlled via the `Accept` header. See the [data representation specification](overview.html#tag/Resources/Data-representation) for supported formats.
      tags:
        - ADL2
      parameters:
        - $ref: '#/components/parameters/template_id_adl2'
        - $ref: '#/components/parameters/example_type'
        - $ref: '#/components/parameters/example_detail_level'
        - $ref: '#/components/parameters/Accept_LOCATABLE'
      responses:
        '200':
          $ref: '#/components/responses/200_Template_example_retrieved'
        '400':
          $ref: '#/components/responses/400'
        '404':
          $ref: '#/components/responses/404_unknown_template_id'
        '406':
          $ref: '#/components/responses/406'
  /definition/template/adl2/{template_id}/{version}:
    get:
      operationId: definition_template_adl2_version_get
      summary: Get a template at version
      deprecated: true
      description: |
        Retrieves the ADL2 operational template identified by `template_id` identifier, at specified `version`.
      tags:
        - ADL2
      parameters:
        - $ref: '#/components/parameters/template_id'
        - $ref: '#/components/parameters/version'
        - $ref: '#/components/parameters/Accept_Template_adl2'
      responses:
        '200':
          $ref: '#/components/responses/200_Template_adl2_retrieved'
        '400':
          $ref: '#/components/responses/400'
        '404':
          $ref: '#/components/responses/404_unknown_template_id_or_version'
  /definition/query/{qualified_query_name}:
    get:
      operationId: definition_query_list
      summary: List stored queries
      description: |
        Retrieves list of all stored queries on the system matched by `qualified_query_name` as pattern.

        If pattern should given be in the format of `[{namespace}::]{query-name}`, and when is empty, it will be treated as "wildcard" in the search.   

        Examples:
          - `GET https://openEHRSys.example.com/v1/definition/query/org.openehr` will list all versions of all queries with names starting with `org.openehr`
          - `GET https://openEHRSys.example.com/v1/definition/query/org.openehr::compositions` will list all versions of the query named `org.openehr::compositions`
      tags:
        - Query
      parameters:
        - $ref: '#/components/parameters/qualified_query_name'
        - $ref: '#/components/parameters/Accept_JSON'
      responses:
        '200':
          $ref: '#/components/responses/200_QueryList'
    put:
      operationId: definition_query_store.yaml
      summary: Store a query
      description: |
        Stores a new query, or updates an existing query on the system.
      tags:
        - Query
      parameters:
        - $ref: '#/components/parameters/qualified_query_name'
        - $ref: '#/components/parameters/query_type'
        - $ref: '#/components/parameters/Accept_JSON'
        - $ref: '#/components/parameters/ContentType_text'
      requestBody:
        content:
          text/plain:
            schema:
              $ref: '#/components/schemas/AQL'
            example: |-
              SELECT c FROM
                EHR e
                  CONTAINS COMPOSITION c[openEHR-EHR-COMPOSITION.encounter.v1]
                    CONTAINS OBSERVATION obs[openEHR-EHR-OBSERVATION.blood_pressure.v1]
              WHERE
                obs/data[at0001]/events[at0006]/data[at0003]/items[at0004]/value/magnitude >= $systolic_bp
        required: true
      responses:
        '200':
          $ref: '#/components/responses/200_StoredQuery_stored'
        '400':
          $ref: '#/components/responses/400'
  /definition/query/{qualified_query_name}/{version}:
    put:
      operationId: definition_query_version_store.yaml
      summary: Store a query version
      description: |
        Stores a query, at a specified `version`, on the system.
      tags:
        - Query
      parameters:
        - $ref: '#/components/parameters/qualified_query_name'
        - $ref: '#/components/parameters/version'
        - $ref: '#/components/parameters/query_type'
        - $ref: '#/components/parameters/Accept_JSON'
      requestBody:
        content:
          text/plain:
            schema:
              $ref: '#/components/schemas/AQL'
            example: |-
              SELECT c FROM
                EHR e
                  CONTAINS COMPOSITION c[openEHR-EHR-COMPOSITION.encounter.v1]
                    CONTAINS OBSERVATION obs[openEHR-EHR-OBSERVATION.blood_pressure.v1]
              WHERE
                obs/data[at0001]/events[at0006]/data[at0003]/items[at0004]/value/magnitude >= $systolic_bp
        required: true
      responses:
        '200':
          $ref: '#/components/responses/200_StoredQuery_stored'
        '400':
          $ref: '#/components/responses/400'
        '409':
          $ref: '#/components/responses/409_StoredQuery_version'
    get:
      operationId: definition_query_version_get
      summary: Get stored query at version
      description: |
        Retrieves the definition of a particular stored query (at specified version) and its associated metadata.
      tags:
        - Query
      parameters:
        - $ref: '#/components/parameters/qualified_query_name'
        - $ref: '#/components/parameters/version'
        - $ref: '#/components/parameters/Accept_JSON'
      responses:
        '200':
          $ref: '#/components/responses/200_StoredQuery_get'
        '404':
          $ref: '#/components/responses/404_Query_version'
components:
  schemas:
    TemplateMetadata:
      title: TemplateMetadata
      required:
        - template_id
        - concept
        - archetype_id
        - created_timestamp
      type: object
      properties:
        template_id:
          type: string
        version:
          type: string
          deprecated: true
        concept:
          type: string
        archetype_id:
          type: string
        created_timestamp:
          type: string
      description: Uploaded TEMPLATE meta information.
    TemplateList:
      title: TemplateList
      type: array
      items:
        $ref: '#/components/schemas/TemplateMetadata'
      description: |
        List of uploaded TEMPLATE resources.
    OperationalTemplate:
      title: OPERATIONAL_TEMPLATE
      type: object
      xml:
        name: response200
    LocalizedNames:
      title: LocalizedNames
      required:
        - en
      type: object
      properties:
        en:
          type: string
      example:
        en: Vital Signs
    LocalizedDescriptions:
      title: LocalizedDescriptions
      required:
        - sl
      type: object
      properties:
        sl:
          type: string
      example:
        sl: Generic encounter or progress note composition
    LocalizedNames1:
      title: LocalizedNames1
      required:
        - sl
      type: object
      properties:
        sl:
          type: string
      example:
        sl: Podrobnosti
    LocalizedNames2:
      title: LocalizedNames2
      required:
        - sl
      type: object
      properties:
        sl:
          type: string
        en:
          type: string
      example:
        sl: Tagi
    Annotations:
      title: Annotations
      type: object
      properties:
        comment:
          type: string
        default:
          type: string
      example:
        comment: Tags applied to the composition. They can contain various ids, such as episode id, central case id or other types of information forming composition meta-data.
    Precision:
      title: Precision
      required:
        - minOp
        - min
        - maxOp
        - max
      type: object
      properties:
        minOp:
          type: string
        min:
          type: integer
          format: int32
        maxOp:
          type: string
        max:
          type: integer
          format: int32
      example:
        minOp: '>='
        min: 1
        maxOp: <=
        max: 1
    Range:
      title: Range
      required:
        - minOp
        - min
      type: object
      properties:
        minOp:
          type: string
        min:
          type: integer
          format: int32
        maxOp:
          type: string
        max:
          type: integer
          format: int32
      example:
        minOp: '>='
        min: 0
        maxOp: <
        max: 1000
    Validation:
      title: Validation
      type: object
      properties:
        precision:
          $ref: '#/components/schemas/Precision'
        range:
          $ref: '#/components/schemas/Range'
      example:
        precision:
          minOp: '>='
          min: 1
          maxOp: <=
          max: 1
    LocalizedLabels:
      title: LocalizedLabels
      required:
        - sl
      type: object
      properties:
        sl:
          type: string
      example:
        sl: Gol
    List:
      title: List
      required:
        - value
        - label
      type: object
      properties:
        value:
          type: string
        label:
          type: string
        validation:
          $ref: '#/components/schemas/Validation'
        localizedLabels:
          $ref: '#/components/schemas/LocalizedLabels'
        localizedDescriptions:
          $ref: '#/components/schemas/LocalizedDescriptions'
      example:
        value: °C
        label: °C
        validation:
          precision:
            minOp: '>='
            min: 1
            maxOp: <=
            max: 1
    Validation1:
      title: Validation1
      required:
        - range
      type: object
      properties:
        range:
          $ref: '#/components/schemas/Range'
        precision:
          $ref: '#/components/schemas/Precision'
      example:
        range:
          minOp: '>='
          min: 0
          maxOp: <
          max: 1000
        precision:
          minOp: '>='
          min: 0
          maxOp: <=
          max: 0
    Input:
      title: Input
      required:
        - type
      type: object
      properties:
        type:
          type: string
        suffix:
          type: string
        list:
          type: array
          items:
            $ref: '#/components/schemas/List'
          description: ''
        defaultValue:
          type: string
        validation:
          $ref: '#/components/schemas/Validation1'
      example:
        type: TEXT
    SNOMEDCT:
      title: SNOMEDCT
      required:
        - value
        - terminologyId
      type: object
      properties:
        value:
          type: string
        terminologyId:
          type: string
      example:
        value: '163030003'
        terminologyId: SNOMED-CT(2003)
    TermBindings:
      title: TermBindings
      required:
        - SNOMED-CT
      type: object
      properties:
        SNOMED-CT:
          $ref: '#/components/schemas/SNOMEDCT'
      example:
        SNOMED-CT:
          value: '163030003'
          terminologyId: SNOMED-CT(2003)
    Input1:
      title: Input1
      required:
        - type
      type: object
      properties:
        type:
          type: string
        suffix:
          type: string
      example:
        type: INTEGER
    Child3:
      title: Child3
      required:
        - id
        - localizedName
        - rmType
        - nodeId
        - min
        - max
        - localizedNames
        - localizedDescriptions
        - aqlPath
        - inputs
      type: object
      properties:
        id:
          type: string
        localizedName:
          type: string
        rmType:
          type: string
        nodeId:
          type: string
        min:
          type: integer
          format: int32
        max:
          type: integer
          format: int32
        localizedNames:
          $ref: '#/components/schemas/LocalizedNames1'
        localizedDescriptions:
          $ref: '#/components/schemas/LocalizedDescriptions'
        aqlPath:
          type: string
        inputs:
          type: array
          items:
            $ref: '#/components/schemas/Input1'
          description: ''
        name:
          type: string
      example:
        id: count_value
        localizedName: Size
        rmType: DV_COUNT
        nodeId: ''
        min: 0
        max: 1
        localizedNames:
          sl: Velikost
        localizedDescriptions:
          sl: Velikost naprave
        aqlPath: /content[openEHR-EHR-OBSERVATION.blood_pressure.v1]/protocol[at0011]/items[openEHR-EHR-CLUSTER.device.v1]/items[at0016]/value
        inputs:
          - type: INTEGER
    Child2:
      title: Child2
      required:
        - id
        - name
        - localizedName
        - rmType
        - nodeId
        - min
        - max
        - localizedNames
        - localizedDescriptions
        - aqlPath
        - inputs
      type: object
      properties:
        id:
          type: string
        name:
          type: string
        localizedName:
          type: string
        rmType:
          type: string
        nodeId:
          type: string
        min:
          type: integer
          format: int32
        max:
          type: integer
          format: int32
        localizedNames:
          $ref: '#/components/schemas/LocalizedNames2'
        localizedDescriptions:
          $ref: '#/components/schemas/LocalizedDescriptions'
        annotations:
          $ref: '#/components/schemas/Annotations'
        aqlPath:
          type: string
        inputs:
          type: array
          items:
            $ref: '#/components/schemas/Input'
          description: ''
        dependsOn:
          type: array
          items:
            type: string
          description: ''
        inContext:
          type: boolean
        termBindings:
          $ref: '#/components/schemas/TermBindings'
        children:
          type: array
          items:
            $ref: '#/components/schemas/Child3'
          description: ''
      example:
        id: tags
        name: Tags
        localizedName: Tags
        rmType: DV_TEXT
        nodeId: at0008
        min: 1
        max: -1
        localizedNames:
          sl: Tagi
        localizedDescriptions:
          sl: '*'
        annotations:
          comment: Tags applied to the composition. They can contain various ids, such as episode id, central case id or other types of information forming composition meta-data.
        aqlPath: /context/other_context[at0001]/items[openEHR-EHR-CLUSTER.context_detail.v1]/items[at0008]/value
        inputs:
          - type: TEXT
    List1:
      title: List1
      required:
        - value
        - label
        - localizedLabels
        - localizedDescriptions
      type: object
      properties:
        value:
          type: string
        label:
          type: string
        localizedLabels:
          $ref: '#/components/schemas/LocalizedLabels'
        localizedDescriptions:
          $ref: '#/components/schemas/LocalizedDescriptions'
      example:
        value: at0022
        label: Mouth
        localizedLabels:
          sl: Usta
        localizedDescriptions:
          sl: '*Temperature is measured within the mouth(en)'
    

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