Implementation Guide
ePA Basisfunktionalitäten
Version 1.0.6-2 - release

## Resource Profile: OperationDefinition Profil für ePA FHIR Data Service

Official URL: https://gematik.de/fhir/epa/StructureDefinition/epa-operationdefinition | Version: 1.0.6-2
Active as of 2025-05-12 | Computable Name: EPAOperationDefinition

Dieses Profil beschreibt FHIR Operationen des FHIR Data Service innerhalb der elektronischen Patientenakte (ePA). Es stellt sicher, dass zustandsverändernde Operationen (`affectsState = true`) nicht über HTTP GET ausgeführt werden dürfen.

Usage:

- This Resource Profile is not used by any profiles in this Implementation Guide

### Formal Views of Profile Content

Description of Profiles, Differentials, Snapshots and how the different presentations work.

- Key Elements Table
- Differential Table
- Snapshot Table
- Statistics/References
- All

Name | Flags | Card. | Type | Description & Constraints
--- | --- | --- | --- | ---
OperationDefinition | C | 0..* | OperationDefinition | Definition of an operation or a named query dom-2: If the resource is contained in another resource, it SHALL NOT contain nested Resources dom-3: If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource dom-4: If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated dom-5: If a resource is contained in another resource, it SHALL NOT have a security label dom-6: A resource should have narrative for robust management opd-0: Name should be usable as an identifier for the module by machine processing applications such as code generation op-affectsState-vs-method: Wenn affectsState = true, darf keine http-method Extension GET enthalten.
meta | S Σ | 0..1 | Meta | Metadata about the resource ele-1: All FHIR elements must have a @value or children
versionId | S Σ | 0..1 | id | Version specific identifier ele-1: All FHIR elements must have a @value or children
lastUpdated | S Σ | 0..1 | instant | When the resource version last changed ele-1: All FHIR elements must have a @value or children
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created ele-1: All FHIR elements must have a @value or children
Slices for extension |  | 0..* | Extension | Extension Slice: Unordered, Open by value:url ele-1: All FHIR elements must have a @value or children ext-1: Must have either extensions or value[x], not both
extension:method | S | 0..2 | code | HTTP Method for FHIR Operation URL: https://gematik.de/fhir/epa/StructureDefinition/http-method Binding: HTTPVerb (required) ele-1: All FHIR elements must have a @value or children ext-1: Must have either extensions or value[x], not both
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored ele-1: All FHIR elements must have a @value or children ext-1: Must have either extensions or value[x], not both
name | Σ C | 1..1 | string | Name for this operation definition (computer friendly) ele-1: All FHIR elements must have a @value or children
status | ?!Σ | 1..1 | code | draft | active | retired | unknown Binding: PublicationStatus (required): The lifecycle status of an artifact. ele-1: All FHIR elements must have a @value or children
kind | S Σ | 1..1 | code | operation | query Binding: OperationKind (required): Whether an operation is a normal operation or a query. ele-1: All FHIR elements must have a @value or children
affectsState | S Σ | 0..1 | boolean | Whether content is changed by the operation ele-1: All FHIR elements must have a @value or children
code | S Σ | 1..1 | code | Name used to invoke the operation ele-1: All FHIR elements must have a @value or children
system | S Σ | 1..1 | boolean | Invoke at the system level? ele-1: All FHIR elements must have a @value or children
type | S Σ | 1..1 | boolean | Invoke at the type level? ele-1: All FHIR elements must have a @value or children
instance | S Σ | 1..1 | boolean | Invoke on an instance? ele-1: All FHIR elements must have a @value or children
inputProfile | S | 0..1 | canonical(StructureDefinition) | Validation information for in parameters ele-1: All FHIR elements must have a @value or children
outputProfile | S | 0..1 | canonical(StructureDefinition) | Validation information for out parameters ele-1: All FHIR elements must have a @value or children
Documentation for this format

#### Terminology Bindings

Path | Conformance | ValueSet | URI
OperationDefinition.status | required | PublicationStatus `http://hl7.org/fhir/ValueSet/publication-status|4.0.1` from the FHIR Standard
OperationDefinition.kind | required | OperationKind `http://hl7.org/fhir/ValueSet/operation-kind|4.0.1` from the FHIR Standard

#### Constraints

Id | Grade | Path(s) | Details | Requirements
dom-2 | error | OperationDefinition | If the resource is contained in another resource, it SHALL NOT contain nested Resources : contained.contained.empty() |
dom-3 | error | OperationDefinition | If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource : contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty() |
dom-4 | error | OperationDefinition | If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated : contained.meta.versionId.empty() and contained.meta.lastUpdated.empty() |
dom-5 | error | OperationDefinition | If a resource is contained in another resource, it SHALL NOT have a security label : contained.meta.security.empty() |
dom-6 | best practice | OperationDefinition | A resource should have narrative for robust management : text.`div`.exists() |
ele-1 | error | **ALL** elements | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) |
ext-1 | error | **ALL** extensions | Must have either extensions or value[x], not both : extension.exists() != value.exists() |
op-affectsState-vs-method | error | OperationDefinition | Wenn affectsState = true, darf keine http-method Extension GET enthalten. : affectsState != true or extension.where(url = 'https://gematik.de/fhir/epa/StructureDefinition/http-method').all(value != 'GET') |
opd-0 | warning | OperationDefinition | Name should be usable as an identifier for the module by machine processing applications such as code generation : name.matches('[A-Z]([A-Za-z0-9_]){0,254}') |

This structure is derived from OperationDefinition

Name | Flags | Card. | Type | Description & Constraints
--- | --- | --- | --- | ---
OperationDefinition | C | 0..* | OperationDefinition | Definition of an operation or a named query op-affectsState-vs-method: Wenn affectsState = true, darf keine http-method Extension GET enthalten.
meta | S | 0..1 | Meta | Metadata about the resource
versionId | S | 0..1 | id | Version specific identifier
lastUpdated | S | 0..1 | instant | When the resource version last changed
Slices for extension |  | 0..* | Extension | Extension Slice: Unordered, Open by value:url
extension:method | S | 0..2 | code | HTTP Method for FHIR Operation URL: https://gematik.de/fhir/epa/StructureDefinition/http-method Binding: HTTPVerb (required)
kind | S | 1..1 | code | operation | query
affectsState | S | 0..1 | boolean | Whether content is changed by the operation
code | S | 1..1 | code | Name used to invoke the operation
system | S | 1..1 | boolean | Invoke at the system level?
type | S | 1..1 | boolean | Invoke at the type level?
instance | S | 1..1 | boolean | Invoke on an instance?
inputProfile | S | 0..1 | canonical(StructureDefinition) | Validation information for in parameters
outputProfile | S | 0..1 | canonical(StructureDefinition) | Validation information for out parameters
Documentation for this format

#### Constraints

Id | Grade | Path(s) | Details | Requirements
op-affectsState-vs-method | error | OperationDefinition | Wenn affectsState = true, darf keine http-method Extension GET enthalten. : affectsState != true or extension.where(url = 'https://gematik.de/fhir/epa/StructureDefinition/http-method').all(value != 'GET') |

Name | Flags | Card. | Type | Description & Constraints
--- | --- | --- | --- | ---
OperationDefinition | C | 0..* | OperationDefinition | Definition of an operation or a named query opd-0: Name should be usable as an identifier for the module by machine processing applications such as code generation op-affectsState-vs-method: Wenn affectsState = true, darf keine http-method Extension GET enthalten.
id | Σ | 0..1 | id | Logical id of this artifact
meta | S Σ | 0..1 | Meta | Metadata about the resource
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url
versionId | S Σ | 0..1 | id | Version specific identifier
lastUpdated | S Σ | 0..1 | instant | When the resource version last changed
source | Σ | 0..1 | uri | Identifies where the resource comes from
profile | Σ | 0..* | canonical(StructureDefinition) | Profiles this resource claims to conform to
security | Σ | 0..* | Coding | Security Labels applied to this resource Binding: All Security Labels (extensible): Security Labels from the Healthcare Privacy and Security Classification System.
tag | Σ | 0..* | Coding | Tags applied to this resource Binding: CommonTags (example): Codes that represent various types of tags, commonly workflow-related; e.g. "Needs review by Dr. Jones".
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created
language |  | 0..1 | code | Language of the resource content Binding: CommonLanguages (preferred): A human language.
Additional Bindings | Purpose
AllLanguages | Max Binding
text |  | 0..1 | Narrative | Text summary of the resource, for human interpretation
contained |  | 0..* | Resource | Contained, inline Resources
Slices for extension |  | 0..* | Extension | Extension Slice: Unordered, Open by value:url
extension:method | S | 0..2 | code | HTTP Method for FHIR Operation URL: https://gematik.de/fhir/epa/StructureDefinition/http-method Binding: HTTPVerb (required)
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored
url | Σ | 0..1 | uri | Canonical identifier for this operation definition, represented as a URI (globally unique)
version | Σ | 0..1 | string | Business version of the operation definition
name | Σ C | 1..1 | string | Name for this operation definition (computer friendly)
title | Σ | 0..1 | string | Name for this operation definition (human friendly)
status | ?!Σ | 1..1 | code | draft | active | retired | unknown Binding: PublicationStatus (required): The lifecycle status of an artifact.
kind | S Σ | 1..1 | code | operation | query Binding: OperationKind (required): Whether an operation is a normal operation or a query.
experimental | Σ | 0..1 | boolean | For testing purposes, not real usage
date | Σ | 0..1 | dateTime | Date last changed
publisher | Σ | 0..1 | string | Name of the publisher (organization or individual)
contact | Σ | 0..* | ContactDetail | Contact details for the publisher
description |  | 0..1 | markdown | Natural language description of the operation definition
useContext | Σ | 0..* | UsageContext | The context that the content is intended to support
jurisdiction | Σ | 0..* | CodeableConcept | Intended jurisdiction for operation definition (if applicable) Binding: Jurisdiction ValueSet (extensible): Countries and regions within which this artifact is targeted for use.
purpose |  | 0..1 | markdown | Why this operation definition is defined
affectsState | S Σ | 0..1 | boolean | Whether content is changed by the operation
code | S Σ | 1..1 | code | Name used to invoke the operation
comment |  | 0..1 | markdown | Additional information about use
base | Σ | 0..1 | canonical(OperationDefinition) | Marks this as a profile of the base
resource | Σ | 0..* | code | Types this operation applies to Binding: ResourceType (required): One of the resource types defined as part of this version of FHIR.
system | S Σ | 1..1 | boolean | Invoke at the system level?
type | S Σ | 1..1 | boolean | Invoke at the type level?
instance | S Σ | 1..1 | boolean | Invoke on an instance?
inputProfile | S | 0..1 | canonical(StructureDefinition) | Validation information for in parameters
outputProfile | S | 0..1 | canonical(StructureDefinition) | Validation information for out parameters
parameter | C | 0..* | BackboneElement | Parameters for the operation/query opd-1: Either a type must be provided, or parts opd-2: A search type can only be specified for parameters of type string opd-3: A targetProfile can only be specified for parameters of type Reference or Canonical
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
name |  | 1..1 | code | Name in Parameters.parameter.name or in URL
use |  | 1..1 | code | in | out Binding: OperationParameterUse (required): Whether an operation parameter is an input or an output parameter.
min |  | 1..1 | integer | Minimum Cardinality
max |  | 1..1 | string | Maximum Cardinality (a number or *)
documentation |  | 0..1 | string | Description of meaning/use
type | C | 0..1 | code | What type this parameter has Binding: FHIRAllTypes (required): A list of all the concrete types defined in this version of the FHIR specification - Abstract Types, Data Types and Resource Types.
targetProfile |  | 0..* | canonical(StructureDefinition) | If type is Reference | canonical, allowed targets
searchType | C | 0..1 | code | number | date | string | token | reference | composite | quantity | uri | special Binding: SearchParamType (required): Data types allowed to be used for search parameters.
binding |  | 0..1 | BackboneElement | ValueSet details if this is coded
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
strength |  | 1..1 | code | required | extensible | preferred | example Binding: BindingStrength (required): Indication of the degree of conformance expectations associated with a binding.
valueSet |  | 1..1 | canonical(ValueSet) | Source of value set
referencedFrom |  | 0..* | BackboneElement | References to this parameter
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
source |  | 1..1 | string | Referencing parameter
sourceId |  | 0..1 | string | Element id of reference
part | C | 0..* | See parameter (OperationDefinition) | Parts of a nested Parameter
overload |  | 0..* | BackboneElement | Define overloaded variants for when generating code
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
parameterName |  | 0..* | string | Name of parameter to include in overload
comment |  | 0..1 | string | Comments to go on overload
Documentation for this format

#### Terminology Bindings

Path | Conformance | ValueSet | URI
OperationDefinition.meta.security | extensible | All Security Labels `http://hl7.org/fhir/ValueSet/security-labels` from the FHIR Standard
OperationDefinition.meta.tag | example | CommonTags `http://hl7.org/fhir/ValueSet/common-tags` from the FHIR Standard
OperationDefinition.language | preferred | CommonLanguages `http://hl7.org/fhir/ValueSet/languages` from the FHIR Standard
Additional Bindings | Purpose
AllLanguages | Max Binding
OperationDefinition.status | required | PublicationStatus `http://hl7.org/fhir/ValueSet/publication-status|4.0.1` from the FHIR Standard
OperationDefinition.kind | required | OperationKind `http://hl7.org/fhir/ValueSet/operation-kind|4.0.1` from the FHIR Standard
OperationDefinition.jurisdiction | extensible | Jurisdiction ValueSet `http://hl7.org/fhir/ValueSet/jurisdiction` from the FHIR Standard
OperationDefinition.resource | required | ResourceType `http://hl7.org/fhir/ValueSet/resource-types|4.0.1` from the FHIR Standard
OperationDefinition.parameter.use | required | OperationParameterUse `http://hl7.org/fhir/ValueSet/operation-parameter-use|4.0.1` from the FHIR Standard
OperationDefinition.parameter.type | required | FHIRAllTypes `http://hl7.org/fhir/ValueSet/all-types|4.0.1` from the FHIR Standard
OperationDefinition.parameter.searchType | required | SearchParamType `http://hl7.org/fhir/ValueSet/search-param-type|4.0.1` from the FHIR Standard
OperationDefinition.parameter.binding.strength | required | BindingStrength `http://hl7.org/fhir/ValueSet/binding-strength|4.0.1` from the FHIR Standard

#### Constraints

Id | Grade | Path(s) | Details | Requirements
dom-2 | error | OperationDefinition | If the resource is contained in another resource, it SHALL NOT contain nested Resources : contained.contained.empty() |
dom-3 | error | OperationDefinition | If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource : contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty() |
dom-4 | error | OperationDefinition | If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated : contained.meta.versionId.empty() and contained.meta.lastUpdated.empty() |
dom-5 | error | OperationDefinition | If a resource is contained in another resource, it SHALL NOT have a security label : contained.meta.security.empty() |
dom-6 | best practice | OperationDefinition | A resource should have narrative for robust management : text.`div`.exists() |
ele-1 | error | **ALL** elements | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) |
ext-1 | error | **ALL** extensions | Must have either extensions or value[x], not both : extension.exists() != value.exists() |
op-affectsState-vs-method | error | OperationDefinition | Wenn affectsState = true, darf keine http-method Extension GET enthalten. : affectsState != true or extension.where(url = 'https://gematik.de/fhir/epa/StructureDefinition/http-method').all(value != 'GET') |
opd-0 | warning | OperationDefinition | Name should be usable as an identifier for the module by machine processing applications such as code generation : name.matches('[A-Z]([A-Za-z0-9_]){0,254}') |
opd-1 | error | OperationDefinition.parameter | Either a type must be provided, or parts : type.exists() or part.exists() |
opd-2 | error | OperationDefinition.parameter | A search type can only be specified for parameters of type string : searchType.exists() implies type = 'string' |
opd-3 | error | OperationDefinition.parameter | A targetProfile can only be specified for parameters of type Reference or Canonical : targetProfile.exists() implies (type = 'Reference' or type = 'canonical') |

This structure is derived from OperationDefinition

Summary

Must-Support: 12 elements

Extensions

This structure refers to these extensions:

- https://gematik.de/fhir/epa/StructureDefinition/http-method

Key Elements View

Name | Flags | Card. | Type | Description & Constraints
--- | --- | --- | --- | ---
OperationDefinition | C | 0..* | OperationDefinition | Definition of an operation or a named query dom-2: If the resource is contained in another resource, it SHALL NOT contain nested Resources dom-3: If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource dom-4: If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated dom-5: If a resource is contained in another resource, it SHALL NOT have a security label dom-6: A resource should have narrative for robust management opd-0: Name should be usable as an identifier for the module by machine processing applications such as code generation op-affectsState-vs-method: Wenn affectsState = true, darf keine http-method Extension GET enthalten.
meta | S Σ | 0..1 | Meta | Metadata about the resource ele-1: All FHIR elements must have a @value or children
versionId | S Σ | 0..1 | id | Version specific identifier ele-1: All FHIR elements must have a @value or children
lastUpdated | S Σ | 0..1 | instant | When the resource version last changed ele-1: All FHIR elements must have a @value or children
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created ele-1: All FHIR elements must have a @value or children
Slices for extension |  | 0..* | Extension | Extension Slice: Unordered, Open by value:url ele-1: All FHIR elements must have a @value or children ext-1: Must have either extensions or value[x], not both
extension:method | S | 0..2 | code | HTTP Method for FHIR Operation URL: https://gematik.de/fhir/epa/StructureDefinition/http-method Binding: HTTPVerb (required) ele-1: All FHIR elements must have a @value or children ext-1: Must have either extensions or value[x], not both
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored ele-1: All FHIR elements must have a @value or children ext-1: Must have either extensions or value[x], not both
name | Σ C | 1..1 | string | Name for this operation definition (computer friendly) ele-1: All FHIR elements must have a @value or children
status | ?!Σ | 1..1 | code | draft | active | retired | unknown Binding: PublicationStatus (required): The lifecycle status of an artifact. ele-1: All FHIR elements must have a @value or children
kind | S Σ | 1..1 | code | operation | query Binding: OperationKind (required): Whether an operation is a normal operation or a query. ele-1: All FHIR elements must have a @value or children
affectsState | S Σ | 0..1 | boolean | Whether content is changed by the operation ele-1: All FHIR elements must have a @value or children
code | S Σ | 1..1 | code | Name used to invoke the operation ele-1: All FHIR elements must have a @value or children
system | S Σ | 1..1 | boolean | Invoke at the system level? ele-1: All FHIR elements must have a @value or children
type | S Σ | 1..1 | boolean | Invoke at the type level? ele-1: All FHIR elements must have a @value or children
instance | S Σ | 1..1 | boolean | Invoke on an instance? ele-1: All FHIR elements must have a @value or children
inputProfile | S | 0..1 | canonical(StructureDefinition) | Validation information for in parameters ele-1: All FHIR elements must have a @value or children
outputProfile | S | 0..1 | canonical(StructureDefinition) | Validation information for out parameters ele-1: All FHIR elements must have a @value or children
Documentation for this format

#### Terminology Bindings

Path | Conformance | ValueSet | URI
OperationDefinition.status | required | PublicationStatus `http://hl7.org/fhir/ValueSet/publication-status|4.0.1` from the FHIR Standard
OperationDefinition.kind | required | OperationKind `http://hl7.org/fhir/ValueSet/operation-kind|4.0.1` from the FHIR Standard

#### Constraints

Id | Grade | Path(s) | Details | Requirements
dom-2 | error | OperationDefinition | If the resource is contained in another resource, it SHALL NOT contain nested Resources : contained.contained.empty() |
dom-3 | error | OperationDefinition | If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource : contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty() |
dom-4 | error | OperationDefinition | If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated : contained.meta.versionId.empty() and contained.meta.lastUpdated.empty() |
dom-5 | error | OperationDefinition | If a resource is contained in another resource, it SHALL NOT have a security label : contained.meta.security.empty() |
dom-6 | best practice | OperationDefinition | A resource should have narrative for robust management : text.`div`.exists() |
ele-1 | error | **ALL** elements | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) |
ext-1 | error | **ALL** extensions | Must have either extensions or value[x], not both : extension.exists() != value.exists() |
op-affectsState-vs-method | error | OperationDefinition | Wenn affectsState = true, darf keine http-method Extension GET enthalten. : affectsState != true or extension.where(url = 'https://gematik.de/fhir/epa/StructureDefinition/http-method').all(value != 'GET') |
opd-0 | warning | OperationDefinition | Name should be usable as an identifier for the module by machine processing applications such as code generation : name.matches('[A-Z]([A-Za-z0-9_]){0,254}') |

Differential View

This structure is derived from OperationDefinition

Name | Flags | Card. | Type | Description & Constraints
--- | --- | --- | --- | ---
OperationDefinition | C | 0..* | OperationDefinition | Definition of an operation or a named query op-affectsState-vs-method: Wenn affectsState = true, darf keine http-method Extension GET enthalten.
meta | S | 0..1 | Meta | Metadata about the resource
versionId | S | 0..1 | id | Version specific identifier
lastUpdated | S | 0..1 | instant | When the resource version last changed
Slices for extension |  | 0..* | Extension | Extension Slice: Unordered, Open by value:url
extension:method | S | 0..2 | code | HTTP Method for FHIR Operation URL: https://gematik.de/fhir/epa/StructureDefinition/http-method Binding: HTTPVerb (required)
kind | S | 1..1 | code | operation | query
affectsState | S | 0..1 | boolean | Whether content is changed by the operation
code | S | 1..1 | code | Name used to invoke the operation
system | S | 1..1 | boolean | Invoke at the system level?
type | S | 1..1 | boolean | Invoke at the type level?
instance | S | 1..1 | boolean | Invoke on an instance?
inputProfile | S | 0..1 | canonical(StructureDefinition) | Validation information for in parameters
outputProfile | S | 0..1 | canonical(StructureDefinition) | Validation information for out parameters
Documentation for this format

#### Constraints

Id | Grade | Path(s) | Details | Requirements
op-affectsState-vs-method | error | OperationDefinition | Wenn affectsState = true, darf keine http-method Extension GET enthalten. : affectsState != true or extension.where(url = 'https://gematik.de/fhir/epa/StructureDefinition/http-method').all(value != 'GET') |

Snapshot View

Name | Flags | Card. | Type | Description & Constraints
--- | --- | --- | --- | ---
OperationDefinition | C | 0..* | OperationDefinition | Definition of an operation or a named query opd-0: Name should be usable as an identifier for the module by machine processing applications such as code generation op-affectsState-vs-method: Wenn affectsState = true, darf keine http-method Extension GET enthalten.
id | Σ | 0..1 | id | Logical id of this artifact
meta | S Σ | 0..1 | Meta | Metadata about the resource
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url
versionId | S Σ | 0..1 | id | Version specific identifier
lastUpdated | S Σ | 0..1 | instant | When the resource version last changed
source | Σ | 0..1 | uri | Identifies where the resource comes from
profile | Σ | 0..* | canonical(StructureDefinition) | Profiles this resource claims to conform to
security | Σ | 0..* | Coding | Security Labels applied to this resource Binding: All Security Labels (extensible): Security Labels from the Healthcare Privacy and Security Classification System.
tag | Σ | 0..* | Coding | Tags applied to this resource Binding: CommonTags (example): Codes that represent various types of tags, commonly workflow-related; e.g. "Needs review by Dr. Jones".
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created
language |  | 0..1 | code | Language of the resource content Binding: CommonLanguages (preferred): A human language.
Additional Bindings | Purpose
AllLanguages | Max Binding
text |  | 0..1 | Narrative | Text summary of the resource, for human interpretation
contained |  | 0..* | Resource | Contained, inline Resources
Slices for extension |  | 0..* | Extension | Extension Slice: Unordered, Open by value:url
extension:method | S | 0..2 | code | HTTP Method for FHIR Operation URL: https://gematik.de/fhir/epa/StructureDefinition/http-method Binding: HTTPVerb (required)
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored
url | Σ | 0..1 | uri | Canonical identifier for this operation definition, represented as a URI (globally unique)
version | Σ | 0..1 | string | Business version of the operation definition
name | Σ C | 1..1 | string | Name for this operation definition (computer friendly)
title | Σ | 0..1 | string | Name for this operation definition (human friendly)
status | ?!Σ | 1..1 | code | draft | active | retired | unknown Binding: PublicationStatus (required): The lifecycle status of an artifact.
kind | S Σ | 1..1 | code | operation | query Binding: OperationKind (required): Whether an operation is a normal operation or a query.
experimental | Σ | 0..1 | boolean | For testing purposes, not real usage
date | Σ | 0..1 | dateTime | Date last changed
publisher | Σ | 0..1 | string | Name of the publisher (organization or individual)
contact | Σ | 0..* | ContactDetail | Contact details for the publisher
description |  | 0..1 | markdown | Natural language description of the operation definition
useContext | Σ | 0..* | UsageContext | The context that the content is intended to support
jurisdiction | Σ | 0..* | CodeableConcept | Intended jurisdiction for operation definition (if applicable) Binding: Jurisdiction ValueSet (extensible): Countries and regions within which this artifact is targeted for use.
purpose |  | 0..1 | markdown | Why this operation definition is defined
affectsState | S Σ | 0..1 | boolean | Whether content is changed by the operation
code | S Σ | 1..1 | code | Name used to invoke the operation
comment |  | 0..1 | markdown | Additional information about use
base | Σ | 0..1 | canonical(OperationDefinition) | Marks this as a profile of the base
resource | Σ | 0..* | code | Types this operation applies to Binding: ResourceType (required): One of the resource types defined as part of this version of FHIR.
system | S Σ | 1..1 | boolean | Invoke at the system level?
type | S Σ | 1..1 | boolean | Invoke at the type level?
instance | S Σ | 1..1 | boolean | Invoke on an instance?
inputProfile | S | 0..1 | canonical(StructureDefinition) | Validation information for in parameters
outputProfile | S | 0..1 | canonical(StructureDefinition) | Validation information for out parameters
parameter | C | 0..* | BackboneElement | Parameters for the operation/query opd-1: Either a type must be provided, or parts opd-2: A search type can only be specified for parameters of type string opd-3: A targetProfile can only be specified for parameters of type Reference or Canonical
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
name |  | 1..1 | code | Name in Parameters.parameter.name or in URL
use |  | 1..1 | code | in | out Binding: OperationParameterUse (required): Whether an operation parameter is an input or an output parameter.
min |  | 1..1 | integer | Minimum Cardinality
max |  | 1..1 | string | Maximum Cardinality (a number or *)
documentation |  | 0..1 | string | Description of meaning/use
type | C | 0..1 | code | What type this parameter has Binding: FHIRAllTypes (required): A list of all the concrete types defined in this version of the FHIR specification - Abstract Types, Data Types and Resource Types.
targetProfile |  | 0..* | canonical(StructureDefinition) | If type is Reference | canonical, allowed targets
searchType | C | 0..1 | code | number | date | string | token | reference | composite | quantity | uri | special Binding: SearchParamType (required): Data types allowed to be used for search parameters.
binding |  | 0..1 | BackboneElement | ValueSet details if this is coded
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
strength |  | 1..1 | code | required | extensible | preferred | example Binding: BindingStrength (required): Indication of the degree of conformance expectations associated with a binding.
valueSet |  | 1..1 | canonical(ValueSet) | Source of value set
referencedFrom |  | 0..* | BackboneElement | References to this parameter
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
source |  | 1..1 | string | Referencing parameter
sourceId |  | 0..1 | string | Element id of reference
part | C | 0..* | See parameter (OperationDefinition) | Parts of a nested Parameter
overload |  | 0..* | BackboneElement | Define overloaded variants for when generating code
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
parameterName |  | 0..* | string | Name of parameter to include in overload
comment |  | 0..1 | string | Comments to go on overload
Documentation for this format

#### Terminology Bindings

Path | Conformance | ValueSet | URI
OperationDefinition.meta.security | extensible | All Security Labels `http://hl7.org/fhir/ValueSet/security-labels` from the FHIR Standard
OperationDefinition.meta.tag | example | CommonTags `http://hl7.org/fhir/ValueSet/common-tags` from the FHIR Standard
OperationDefinition.language | preferred | CommonLanguages `http://hl7.org/fhir/ValueSet/languages` from the FHIR Standard
Additional Bindings | Purpose
AllLanguages | Max Binding
OperationDefinition.status | required | PublicationStatus `http://hl7.org/fhir/ValueSet/publication-status|4.0.1` from the FHIR Standard
OperationDefinition.kind | required | OperationKind `http://hl7.org/fhir/ValueSet/operation-kind|4.0.1` from the FHIR Standard
OperationDefinition.jurisdiction | extensible | Jurisdiction ValueSet `http://hl7.org/fhir/ValueSet/jurisdiction` from the FHIR Standard
OperationDefinition.resource | required | ResourceType `http://hl7.org/fhir/ValueSet/resource-types|4.0.1` from the FHIR Standard
OperationDefinition.parameter.use | required | OperationParameterUse `http://hl7.org/fhir/ValueSet/operation-parameter-use|4.0.1` from the FHIR Standard
OperationDefinition.parameter.type | required | FHIRAllTypes `http://hl7.org/fhir/ValueSet/all-types|4.0.1` from the FHIR Standard
OperationDefinition.parameter.searchType | required | SearchParamType `http://hl7.org/fhir/ValueSet/search-param-type|4.0.1` from the FHIR Standard
OperationDefinition.parameter.binding.strength | required | BindingStrength `http://hl7.org/fhir/ValueSet/binding-strength|4.0.1` from the FHIR Standard

#### Constraints

Id | Grade | Path(s) | Details | Requirements
dom-2 | error | OperationDefinition | If the resource is contained in another resource, it SHALL NOT contain nested Resources : contained.contained.empty() |
dom-3 | error | OperationDefinition | If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource : contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty() |
dom-4 | error | OperationDefinition | If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated : contained.meta.versionId.empty() and contained.meta.lastUpdated.empty() |
dom-5 | error | OperationDefinition | If a resource is contained in another resource, it SHALL NOT have a security label : contained.meta.security.empty() |
dom-6 | best practice | OperationDefinition | A resource should have narrative for robust management : text.`div`.exists() |
ele-1 | error | **ALL** elements | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) |
ext-1 | error | **ALL** extensions | Must have either extensions or value[x], not both : extension.exists() != value.exists() |
op-affectsState-vs-method | error | OperationDefinition | Wenn affectsState = true, darf keine http-method Extension GET enthalten. : affectsState != true or extension.where(url = 'https://gematik.de/fhir/epa/StructureDefinition/http-method').all(value != 'GET') |
opd-0 | warning | OperationDefinition | Name should be usable as an identifier for the module by machine processing applications such as code generation : name.matches('[A-Z]([A-Za-z0-9_]){0,254}') |
opd-1 | error | OperationDefinition.parameter | Either a type must be provided, or parts : type.exists() or part.exists() |
opd-2 | error | OperationDefinition.parameter | A search type can only be specified for parameters of type string : searchType.exists() implies type = 'string' |
opd-3 | error | OperationDefinition.parameter | A targetProfile can only be specified for parameters of type Reference or Canonical : targetProfile.exists() implies (type = 'Reference' or type = 'canonical') |

This structure is derived from OperationDefinition

Summary

Must-Support: 12 elements

Extensions

This structure refers to these extensions:

- https://gematik.de/fhir/epa/StructureDefinition/http-method

Other representations of profile: CSV, Excel, Schematron