Canonical Resource Management Infrastructure Implementation Guide
1.0.0 - STU1

Publication Build: This will be filled in by the publication tooling

## Resource Profile: CRMI Operation Profile: Artifact Operation

Official URL: http://hl7.org/fhir/uv/crmi/StructureDefinition/crmi-artifact-operation | Version: 1.0.0
Active as of 2024-05-31 | Computable Name: ArtifactOperation
Other Identifiers: OID:2.16.840.1.113883.4.642.40.38.42.3

Profile for knowledge artifact operations.

This establishes input parameters when the operation is involked at the resource type level. The parameters are used to identify or specify the resource for the operation.

- `url`: artifact URL&ast; for the resource
- `version`: artifact version&ast; for the resource
- `identifier`: business identifier for the resource
- `resource`: instance of a canonical resource

&ast;The artifact URL for canonical resources is `.url`, for non-canonical resources, it is the extension `artifact-url`. The version for canonical resources is `.version`, for non-canonical resources it is the extension `artifact-version`.

NOTE: When invoking canonical operations using any combination of `url`, `version`, and `identifier`:

- if there is one-and-only-one matching resource, the operation should apply, otherwise an error state.
- if `resource` is specified then `url`, `version`, and `identifier` should be ignored.

Usage:

- Examples for this Resource Profile: CRMIDataRequirements

### Formal Views of Profile Content

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

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

This structure is derived from OperationDefinition

Name | Flags | Card. | Type | Description & Constraints
--- | --- | --- | --- | ---
OperationDefinition |  | 0..* | OperationDefinition | Definition of an operation or a named query
Slices for parameter |  | 0..* | BackboneElement | Parameters for the operation/query Slice: Unordered, Open by value:name
parameter:url | S C | 0..1 | BackboneElement | Parameters for the operation/query crmi-artifact-operation-1: Parameter url type is uri or canonical
name |  | 1..1 | code | Name in Parameters.parameter.name or in URL Fixed Value: url
use |  | 1..1 | code | in | out Required Pattern: in
min |  | 1..1 | integer | Minimum Cardinality Required Pattern: 0
max |  | 1..1 | string | Maximum Cardinality (a number or *) Required Pattern: 1
parameter:version | S | 0..1 | BackboneElement | Parameters for the operation/query
name |  | 1..1 | code | Name in Parameters.parameter.name or in URL Fixed Value: version
use |  | 1..1 | code | in | out Required Pattern: in
min |  | 1..1 | integer | Minimum Cardinality Required Pattern: 0
max |  | 1..1 | string | Maximum Cardinality (a number or *) Required Pattern: 1
type |  | 0..1 | code | What type this parameter has Required Pattern: string
parameter:identifier | S | 0..1 | BackboneElement | Parameters for the operation/query
name |  | 1..1 | code | Name in Parameters.parameter.name or in URL Fixed Value: identifier
use |  | 1..1 | code | in | out Required Pattern: in
min |  | 1..1 | integer | Minimum Cardinality Required Pattern: 0
max |  | 1..1 | string | Maximum Cardinality (a number or *) Required Pattern: 1
type |  | 0..1 | code | What type this parameter has Required Pattern: string
searchType |  | 0..1 | code | number | date | string | token | reference | composite | quantity | uri | special Required Pattern: token
parameter:resource | S | 0..1 | BackboneElement | Parameters for the operation/query
name |  | 1..1 | code | Name in Parameters.parameter.name or in URL Fixed Value: resource
use |  | 1..1 | code | in | out Required Pattern: in
min |  | 1..1 | integer | Minimum Cardinality Required Pattern: 0
max |  | 1..1 | string | Maximum Cardinality (a number or *) Required Pattern: 1
type |  | 0..1 | code | What type this parameter has Binding: Artifact Resource Types (required)
Documentation for this format

#### Terminology Bindings (Differential)

Path | Conformance | ValueSet | URI
OperationDefinition.parameter:resource.type | required | ArtifactResourceTypes `http://terminology.hl7.org/ValueSet/artifact-resource-types` from this IG

#### Constraints

Id | Grade | Path(s) | Details | Requirements
crmi-artifact-operation-1 | error | OperationDefinition.parameter:url | Parameter url type is uri or canonical : type='uri' or type='canonical' |

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
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored
name | Σ C | 1..1 | string | Name for this operation definition (computer friendly)
status | ?!Σ | 1..1 | code | draft | active | retired | unknown Binding: PublicationStatus (required): The lifecycle status of an artifact.
kind | Σ | 1..1 | code | operation | query Binding: OperationKind (required): Whether an operation is a normal operation or a query.
code | Σ | 1..1 | code | Name used to invoke the operation
system | Σ | 1..1 | boolean | Invoke at the system level?
type | Σ | 1..1 | boolean | Invoke at the type level?
instance | Σ | 1..1 | boolean | Invoke on an instance?
Slices for parameter | C | 0..* | BackboneElement | Parameters for the operation/query Slice: Unordered, Open by value:name 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
parameter:All Slices |  |  |  | Content/Rules for all slices
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 *)
parameter:url | S C | 0..1 | 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 crmi-artifact-operation-1: Parameter url type is uri or canonical
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
name |  | 1..1 | code | Name in Parameters.parameter.name or in URL Fixed Value: url
use |  | 1..1 | code | in | out Binding: OperationParameterUse (required): Whether an operation parameter is an input or an output parameter. Required Pattern: in
min |  | 1..1 | integer | Minimum Cardinality Required Pattern: 0
max |  | 1..1 | string | Maximum Cardinality (a number or *) Required Pattern: 1
parameter:version | S C | 0..1 | 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
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
name |  | 1..1 | code | Name in Parameters.parameter.name or in URL Fixed Value: version
use |  | 1..1 | code | in | out Binding: OperationParameterUse (required): Whether an operation parameter is an input or an output parameter. Required Pattern: in
min |  | 1..1 | integer | Minimum Cardinality Required Pattern: 0
max |  | 1..1 | string | Maximum Cardinality (a number or *) Required Pattern: 1
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. Required Pattern: string
parameter:identifier | S C | 0..1 | 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
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
name |  | 1..1 | code | Name in Parameters.parameter.name or in URL Fixed Value: identifier
use |  | 1..1 | code | in | out Binding: OperationParameterUse (required): Whether an operation parameter is an input or an output parameter. Required Pattern: in
min |  | 1..1 | integer | Minimum Cardinality Required Pattern: 0
max |  | 1..1 | string | Maximum Cardinality (a number or *) Required Pattern: 1
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. Required Pattern: string
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. Required Pattern: token
parameter:resource | S C | 0..1 | 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
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
name |  | 1..1 | code | Name in Parameters.parameter.name or in URL Fixed Value: resource
use |  | 1..1 | code | in | out Binding: OperationParameterUse (required): Whether an operation parameter is an input or an output parameter. Required Pattern: in
min |  | 1..1 | integer | Minimum Cardinality Required Pattern: 0
max |  | 1..1 | string | Maximum Cardinality (a number or *) Required Pattern: 1
type | C | 0..1 | code | What type this parameter has Binding: Artifact Resource Types (required)
Documentation for this format

#### Terminology Bindings

Path | Conformance | ValueSet / Code | 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
OperationDefinition.parameter.use | required | OperationParameterUse `http://hl7.org/fhir/ValueSet/operation-parameter-use|4.0.1` from the FHIR Standard
OperationDefinition.parameter:url.use | required | Pattern: in `http://hl7.org/fhir/ValueSet/operation-parameter-use|4.0.1` from the FHIR Standard
OperationDefinition.parameter:version.use | required | Pattern: in `http://hl7.org/fhir/ValueSet/operation-parameter-use|4.0.1` from the FHIR Standard
OperationDefinition.parameter:version.type | required | Pattern: string `http://hl7.org/fhir/ValueSet/all-types|4.0.1` from the FHIR Standard
OperationDefinition.parameter:identifier.use | required | Pattern: in `http://hl7.org/fhir/ValueSet/operation-parameter-use|4.0.1` from the FHIR Standard
OperationDefinition.parameter:identifier.type | required | Pattern: string `http://hl7.org/fhir/ValueSet/all-types|4.0.1` from the FHIR Standard
OperationDefinition.parameter:identifier.searchType | required | Pattern: token `http://hl7.org/fhir/ValueSet/search-param-type|4.0.1` from the FHIR Standard
OperationDefinition.parameter:resource.use | required | Pattern: in `http://hl7.org/fhir/ValueSet/operation-parameter-use|4.0.1` from the FHIR Standard
OperationDefinition.parameter:resource.type | required | ArtifactResourceTypes `http://terminology.hl7.org/ValueSet/artifact-resource-types` from this IG

#### Constraints

Id | Grade | Path(s) | Details | Requirements
crmi-artifact-operation-1 | error | OperationDefinition.parameter:url | Parameter url type is uri or canonical : type='uri' or type='canonical' |
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() |
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, OperationDefinition.parameter:url, OperationDefinition.parameter:version, OperationDefinition.parameter:identifier, OperationDefinition.parameter:resource | Either a type must be provided, or parts : type.exists() or part.exists() |
opd-2 | error | OperationDefinition.parameter, OperationDefinition.parameter:url, OperationDefinition.parameter:version, OperationDefinition.parameter:identifier, OperationDefinition.parameter:resource | A search type can only be specified for parameters of type string : searchType.exists() implies type = 'string' |
opd-3 | error | OperationDefinition.parameter, OperationDefinition.parameter:url, OperationDefinition.parameter:version, OperationDefinition.parameter:identifier, OperationDefinition.parameter:resource | A targetProfile can only be specified for parameters of type Reference or Canonical : targetProfile.exists() implies (type = 'Reference' or type = 'canonical') |

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
id | Σ | 0..1 | id | Logical id of this artifact
meta | Σ | 0..1 | Meta | Metadata about the resource
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
extension |  | 0..* | Extension | Additional content defined by implementations
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 | Σ | 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 | Σ | 0..1 | boolean | Whether content is changed by the operation
code | Σ | 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 | Σ | 1..1 | boolean | Invoke at the system level?
type | Σ | 1..1 | boolean | Invoke at the type level?
instance | Σ | 1..1 | boolean | Invoke on an instance?
inputProfile |  | 0..1 | canonical(StructureDefinition) | Validation information for in parameters
outputProfile |  | 0..1 | canonical(StructureDefinition) | Validation information for out parameters
Slices for parameter | C | 0..* | BackboneElement | Parameters for the operation/query Slice: Unordered, Open by value:name 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
parameter:All Slices |  |  |  | Content/Rules for all slices
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
parameter:url | S C | 0..1 | 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 crmi-artifact-operation-1: Parameter url type is uri 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 Fixed Value: url
use |  | 1..1 | code | in | out Binding: OperationParameterUse (required): Whether an operation parameter is an input or an output parameter. Required Pattern: in
min |  | 1..1 | integer | Minimum Cardinality Required Pattern: 0
max |  | 1..1 | string | Maximum Cardinality (a number or *) Required Pattern: 1
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
parameter:version | S C | 0..1 | 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 Fixed Value: version
use |  | 1..1 | code | in | out Binding: OperationParameterUse (required): Whether an operation parameter is an input or an output parameter. Required Pattern: in
min |  | 1..1 | integer | Minimum Cardinality Required Pattern: 0
max |  | 1..1 | string | Maximum Cardinality (a number or *) Required Pattern: 1
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. Required Pattern: string
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
parameter:identifier | S C | 0..1 | 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 Fixed Value: identifier
use |  | 1..1 | code | in | out Binding: OperationParameterUse (required): Whether an operation parameter is an input or an output parameter. Required Pattern: in
min |  | 1..1 | integer | Minimum Cardinality Required Pattern: 0
max |  | 1..1 | string | Maximum Cardinality (a number or *) Required Pattern: 1
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. Required Pattern: string
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. Required Pattern: token
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
parameter:resource | S C | 0..1 | 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 Fixed Value: resource
use |  | 1..1 | code | in | out Binding: OperationParameterUse (required): Whether an operation parameter is an input or an output parameter. Required Pattern: in
min |  | 1..1 | integer | Minimum Cardinality Required Pattern: 0
max |  | 1..1 | string | Maximum Cardinality (a number or *) Required Pattern: 1
documentation |  | 0..1 | string | Description of meaning/use
type | C | 0..1 | code | What type this parameter has Binding: Artifact Resource Types (required)
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 / Code | URI
OperationDefinition.language | preferred | CommonLanguages
Additional Bindings | Purpose
AllLanguages | Max Binding
`http://hl7.org/fhir/ValueSet/languages` from the FHIR Standard
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
OperationDefinition.parameter:url.use | required | Pattern: in `http://hl7.org/fhir/ValueSet/operation-parameter-use|4.0.1` from the FHIR Standard
OperationDefinition.parameter:url.type | required | FHIRAllTypes `http://hl7.org/fhir/ValueSet/all-types|4.0.1` from the FHIR Standard
OperationDefinition.parameter:url.searchType | required | SearchParamType `http://hl7.org/fhir/ValueSet/search-param-type|4.0.1` from the FHIR Standard
OperationDefinition.parameter:url.binding.strength | required | BindingStrength `http://hl7.org/fhir/ValueSet/binding-strength|4.0.1` from the FHIR Standard
OperationDefinition.parameter:version.use | required | Pattern: in `http://hl7.org/fhir/ValueSet/operation-parameter-use|4.0.1` from the FHIR Standard
OperationDefinition.parameter:version.type | required | Pattern: string `http://hl7.org/fhir/ValueSet/all-types|4.0.1` from the FHIR Standard
OperationDefinition.parameter:version.searchType | required | SearchParamType `http://hl7.org/fhir/ValueSet/search-param-type|4.0.1` from the FHIR Standard
OperationDefinition.parameter:version.binding.strength | required | BindingStrength `http://hl7.org/fhir/ValueSet/binding-strength|4.0.1` from the FHIR Standard
OperationDefinition.parameter:identifier.use | required | Pattern: in `http://hl7.org/fhir/ValueSet/operation-parameter-use|4.0.1` from the FHIR Standard
OperationDefinition.parameter:identifier.type | required | Pattern: string `http://hl7.org/fhir/ValueSet/all-types|4.0.1` from the FHIR Standard
OperationDefinition.parameter:identifier.searchType | required | Pattern: token `http://hl7.org/fhir/ValueSet/search-param-type|4.0.1` from the FHIR Standard
OperationDefinition.parameter:identifier.binding.strength | required | BindingStrength `http://hl7.org/fhir/ValueSet/binding-strength|4.0.1` from the FHIR Standard
OperationDefinition.parameter:resource.use | required | Pattern: in `http://hl7.org/fhir/ValueSet/operation-parameter-use|4.0.1` from the FHIR Standard
OperationDefinition.parameter:resource.type | required | ArtifactResourceTypes `http://terminology.hl7.org/ValueSet/artifact-resource-types` from this IG
OperationDefinition.parameter:resource.searchType | required | SearchParamType `http://hl7.org/fhir/ValueSet/search-param-type|4.0.1` from the FHIR Standard
OperationDefinition.parameter:resource.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
crmi-artifact-operation-1 | error | OperationDefinition.parameter:url | Parameter url type is uri or canonical : type='uri' or type='canonical' |
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() |
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, OperationDefinition.parameter:url, OperationDefinition.parameter:version, OperationDefinition.parameter:identifier, OperationDefinition.parameter:resource | Either a type must be provided, or parts : type.exists() or part.exists() |
opd-2 | error | OperationDefinition.parameter, OperationDefinition.parameter:url, OperationDefinition.parameter:version, OperationDefinition.parameter:identifier, OperationDefinition.parameter:resource | A search type can only be specified for parameters of type string : searchType.exists() implies type = 'string' |
opd-3 | error | OperationDefinition.parameter, OperationDefinition.parameter:url, OperationDefinition.parameter:version, OperationDefinition.parameter:identifier, OperationDefinition.parameter:resource | 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: 4 elements
Fixed: 4 elements

Slices

This structure defines the following Slices:

- The element 1 is sliced based on the value of OperationDefinition.parameter

Differential View

This structure is derived from OperationDefinition

Name | Flags | Card. | Type | Description & Constraints
--- | --- | --- | --- | ---
OperationDefinition |  | 0..* | OperationDefinition | Definition of an operation or a named query
Slices for parameter |  | 0..* | BackboneElement | Parameters for the operation/query Slice: Unordered, Open by value:name
parameter:url | S C | 0..1 | BackboneElement | Parameters for the operation/query crmi-artifact-operation-1: Parameter url type is uri or canonical
name |  | 1..1 | code | Name in Parameters.parameter.name or in URL Fixed Value: url
use |  | 1..1 | code | in | out Required Pattern: in
min |  | 1..1 | integer | Minimum Cardinality Required Pattern: 0
max |  | 1..1 | string | Maximum Cardinality (a number or *) Required Pattern: 1
parameter:version | S | 0..1 | BackboneElement | Parameters for the operation/query
name |  | 1..1 | code | Name in Parameters.parameter.name or in URL Fixed Value: version
use |  | 1..1 | code | in | out Required Pattern: in
min |  | 1..1 | integer | Minimum Cardinality Required Pattern: 0
max |  | 1..1 | string | Maximum Cardinality (a number or *) Required Pattern: 1
type |  | 0..1 | code | What type this parameter has Required Pattern: string
parameter:identifier | S | 0..1 | BackboneElement | Parameters for the operation/query
name |  | 1..1 | code | Name in Parameters.parameter.name or in URL Fixed Value: identifier
use |  | 1..1 | code | in | out Required Pattern: in
min |  | 1..1 | integer | Minimum Cardinality Required Pattern: 0
max |  | 1..1 | string | Maximum Cardinality (a number or *) Required Pattern: 1
type |  | 0..1 | code | What type this parameter has Required Pattern: string
searchType |  | 0..1 | code | number | date | string | token | reference | composite | quantity | uri | special Required Pattern: token
parameter:resource | S | 0..1 | BackboneElement | Parameters for the operation/query
name |  | 1..1 | code | Name in Parameters.parameter.name or in URL Fixed Value: resource
use |  | 1..1 | code | in | out Required Pattern: in
min |  | 1..1 | integer | Minimum Cardinality Required Pattern: 0
max |  | 1..1 | string | Maximum Cardinality (a number or *) Required Pattern: 1
type |  | 0..1 | code | What type this parameter has Binding: Artifact Resource Types (required)
Documentation for this format

#### Terminology Bindings (Differential)

Path | Conformance | ValueSet | URI
OperationDefinition.parameter:resource.type | required | ArtifactResourceTypes `http://terminology.hl7.org/ValueSet/artifact-resource-types` from this IG

#### Constraints

Id | Grade | Path(s) | Details | Requirements
crmi-artifact-operation-1 | error | OperationDefinition.parameter:url | Parameter url type is uri or canonical : type='uri' or type='canonical' |

Key Elements 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
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored
name | Σ C | 1..1 | string | Name for this operation definition (computer friendly)
status | ?!Σ | 1..1 | code | draft | active | retired | unknown Binding: PublicationStatus (required): The lifecycle status of an artifact.
kind | Σ | 1..1 | code | operation | query Binding: OperationKind (required): Whether an operation is a normal operation or a query.
code | Σ | 1..1 | code | Name used to invoke the operation
system | Σ | 1..1 | boolean | Invoke at the system level?
type | Σ | 1..1 | boolean | Invoke at the type level?
instance | Σ | 1..1 | boolean | Invoke on an instance?
Slices for parameter | C | 0..* | BackboneElement | Parameters for the operation/query Slice: Unordered, Open by value:name 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
parameter:All Slices |  |  |  | Content/Rules for all slices
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 *)
parameter:url | S C | 0..1 | 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 crmi-artifact-operation-1: Parameter url type is uri or canonical
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
name |  | 1..1 | code | Name in Parameters.parameter.name or in URL Fixed Value: url
use |  | 1..1 | code | in | out Binding: OperationParameterUse (required): Whether an operation parameter is an input or an output parameter. Required Pattern: in
min |  | 1..1 | integer | Minimum Cardinality Required Pattern: 0
max |  | 1..1 | string | Maximum Cardinality (a number or *) Required Pattern: 1
parameter:version | S C | 0..1 | 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
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
name |  | 1..1 | code | Name in Parameters.parameter.name or in URL Fixed Value: version
use |  | 1..1 | code | in | out Binding: OperationParameterUse (required): Whether an operation parameter is an input or an output parameter. Required Pattern: in
min |  | 1..1 | integer | Minimum Cardinality Required Pattern: 0
max |  | 1..1 | string | Maximum Cardinality (a number or *) Required Pattern: 1
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. Required Pattern: string
parameter:identifier | S C | 0..1 | 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
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
name |  | 1..1 | code | Name in Parameters.parameter.name or in URL Fixed Value: identifier
use |  | 1..1 | code | in | out Binding: OperationParameterUse (required): Whether an operation parameter is an input or an output parameter. Required Pattern: in
min |  | 1..1 | integer | Minimum Cardinality Required Pattern: 0
max |  | 1..1 | string | Maximum Cardinality (a number or *) Required Pattern: 1
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. Required Pattern: string
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. Required Pattern: token
parameter:resource | S C | 0..1 | 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
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
name |  | 1..1 | code | Name in Parameters.parameter.name or in URL Fixed Value: resource
use |  | 1..1 | code | in | out Binding: OperationParameterUse (required): Whether an operation parameter is an input or an output parameter. Required Pattern: in
min |  | 1..1 | integer | Minimum Cardinality Required Pattern: 0
max |  | 1..1 | string | Maximum Cardinality (a number or *) Required Pattern: 1
type | C | 0..1 | code | What type this parameter has Binding: Artifact Resource Types (required)
Documentation for this format

#### Terminology Bindings

Path | Conformance | ValueSet / Code | 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
OperationDefinition.parameter.use | required | OperationParameterUse `http://hl7.org/fhir/ValueSet/operation-parameter-use|4.0.1` from the FHIR Standard
OperationDefinition.parameter:url.use | required | Pattern: in `http://hl7.org/fhir/ValueSet/operation-parameter-use|4.0.1` from the FHIR Standard
OperationDefinition.parameter:version.use | required | Pattern: in `http://hl7.org/fhir/ValueSet/operation-parameter-use|4.0.1` from the FHIR Standard
OperationDefinition.parameter:version.type | required | Pattern: string `http://hl7.org/fhir/ValueSet/all-types|4.0.1` from the FHIR Standard
OperationDefinition.parameter:identifier.use | required | Pattern: in `http://hl7.org/fhir/ValueSet/operation-parameter-use|4.0.1` from the FHIR Standard
OperationDefinition.parameter:identifier.type | required | Pattern: string `http://hl7.org/fhir/ValueSet/all-types|4.0.1` from the FHIR Standard
OperationDefinition.parameter:identifier.searchType | required | Pattern: token `http://hl7.org/fhir/ValueSet/search-param-type|4.0.1` from the FHIR Standard
OperationDefinition.parameter:resource.use | required | Pattern: in `http://hl7.org/fhir/ValueSet/operation-parameter-use|4.0.1` from the FHIR Standard
OperationDefinition.parameter:resource.type | required | ArtifactResourceTypes `http://terminology.hl7.org/ValueSet/artifact-resource-types` from this IG

#### Constraints

Id | Grade | Path(s) | Details | Requirements
crmi-artifact-operation-1 | error | OperationDefinition.parameter:url | Parameter url type is uri or canonical : type='uri' or type='canonical' |
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() |
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, OperationDefinition.parameter:url, OperationDefinition.parameter:version, OperationDefinition.parameter:identifier, OperationDefinition.parameter:resource | Either a type must be provided, or parts : type.exists() or part.exists() |
opd-2 | error | OperationDefinition.parameter, OperationDefinition.parameter:url, OperationDefinition.parameter:version, OperationDefinition.parameter:identifier, OperationDefinition.parameter:resource | A search type can only be specified for parameters of type string : searchType.exists() implies type = 'string' |
opd-3 | error | OperationDefinition.parameter, OperationDefinition.parameter:url, OperationDefinition.parameter:version, OperationDefinition.parameter:identifier, OperationDefinition.parameter:resource | A targetProfile can only be specified for parameters of type Reference or Canonical : targetProfile.exists() implies (type = 'Reference' or type = 'canonical') |

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
id | Σ | 0..1 | id | Logical id of this artifact
meta | Σ | 0..1 | Meta | Metadata about the resource
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
extension |  | 0..* | Extension | Additional content defined by implementations
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 | Σ | 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 | Σ | 0..1 | boolean | Whether content is changed by the operation
code | Σ | 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 | Σ | 1..1 | boolean | Invoke at the system level?
type | Σ | 1..1 | boolean | Invoke at the type level?
instance | Σ | 1..1 | boolean | Invoke on an instance?
inputProfile |  | 0..1 | canonical(StructureDefinition) | Validation information for in parameters
outputProfile |  | 0..1 | canonical(StructureDefinition) | Validation information for out parameters
Slices for parameter | C | 0..* | BackboneElement | Parameters for the operation/query Slice: Unordered, Open by value:name 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
parameter:All Slices |  |  |  | Content/Rules for all slices
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
parameter:url | S C | 0..1 | 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 crmi-artifact-operation-1: Parameter url type is uri 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 Fixed Value: url
use |  | 1..1 | code | in | out Binding: OperationParameterUse (required): Whether an operation parameter is an input or an output parameter. Required Pattern: in
min |  | 1..1 | integer | Minimum Cardinality Required Pattern: 0
max |  | 1..1 | string | Maximum Cardinality (a number or *) Required Pattern: 1
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
parameter:version | S C | 0..1 | 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 Fixed Value: version
use |  | 1..1 | code | in | out Binding: OperationParameterUse (required): Whether an operation parameter is an input or an output parameter. Required Pattern: in
min |  | 1..1 | integer | Minimum Cardinality Required Pattern: 0
max |  | 1..1 | string | Maximum Cardinality (a number or *) Required Pattern: 1
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. Required Pattern: string
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
parameter:identifier | S C | 0..1 | 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 Fixed Value: identifier
use |  | 1..1 | code | in | out Binding: OperationParameterUse (required): Whether an operation parameter is an input or an output parameter. Required Pattern: in
min |  | 1..1 | integer | Minimum Cardinality Required Pattern: 0
max |  | 1..1 | string | Maximum Cardinality (a number or *) Required Pattern: 1
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. Required Pattern: string
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. Required Pattern: token
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
parameter:resource | S C | 0..1 | 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 Fixed Value: resource
use |  | 1..1 | code | in | out Binding: OperationParameterUse (required): Whether an operation parameter is an input or an output parameter. Required Pattern: in
min |  | 1..1 | integer | Minimum Cardinality Required Pattern: 0
max |  | 1..1 | string | Maximum Cardinality (a number or *) Required Pattern: 1
documentation |  | 0..1 | string | Description of meaning/use
type | C | 0..1 | code | What type this parameter has Binding: Artifact Resource Types (required)
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 / Code | URI
OperationDefinition.language | preferred | CommonLanguages
Additional Bindings | Purpose
AllLanguages | Max Binding
`http://hl7.org/fhir/ValueSet/languages` from the FHIR Standard
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
OperationDefinition.parameter:url.use | required | Pattern: in `http://hl7.org/fhir/ValueSet/operation-parameter-use|4.0.1` from the FHIR Standard
OperationDefinition.parameter:url.type | required | FHIRAllTypes `http://hl7.org/fhir/ValueSet/all-types|4.0.1` from the FHIR Standard
OperationDefinition.parameter:url.searchType | required | SearchParamType `http://hl7.org/fhir/ValueSet/search-param-type|4.0.1` from the FHIR Standard
OperationDefinition.parameter:url.binding.strength | required | BindingStrength `http://hl7.org/fhir/ValueSet/binding-strength|4.0.1` from the FHIR Standard
OperationDefinition.parameter:version.use | required | Pattern: in `http://hl7.org/fhir/ValueSet/operation-parameter-use|4.0.1` from the FHIR Standard
OperationDefinition.parameter:version.type | required | Pattern: string `http://hl7.org/fhir/ValueSet/all-types|4.0.1` from the FHIR Standard
OperationDefinition.parameter:version.searchType | required | SearchParamType `http://hl7.org/fhir/ValueSet/search-param-type|4.0.1` from the FHIR Standard
OperationDefinition.parameter:version.binding.strength | required | BindingStrength `http://hl7.org/fhir/ValueSet/binding-strength|4.0.1` from the FHIR Standard
OperationDefinition.parameter:identifier.use | required | Pattern: in `http://hl7.org/fhir/ValueSet/operation-parameter-use|4.0.1` from the FHIR Standard
OperationDefinition.parameter:identifier.type | required | Pattern: string `http://hl7.org/fhir/ValueSet/all-types|4.0.1` from the FHIR Standard
OperationDefinition.parameter:identifier.searchType | required | Pattern: token `http://hl7.org/fhir/ValueSet/search-param-type|4.0.1` from the FHIR Standard
OperationDefinition.parameter:identifier.binding.strength | required | BindingStrength `http://hl7.org/fhir/ValueSet/binding-strength|4.0.1` from the FHIR Standard
OperationDefinition.parameter:resource.use | required | Pattern: in `http://hl7.org/fhir/ValueSet/operation-parameter-use|4.0.1` from the FHIR Standard
OperationDefinition.parameter:resource.type | required | ArtifactResourceTypes `http://terminology.hl7.org/ValueSet/artifact-resource-types` from this IG
OperationDefinition.parameter:resource.searchType | required | SearchParamType `http://hl7.org/fhir/ValueSet/search-param-type|4.0.1` from the FHIR Standard
OperationDefinition.parameter:resource.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
crmi-artifact-operation-1 | error | OperationDefinition.parameter:url | Parameter url type is uri or canonical : type='uri' or type='canonical' |
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() |
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, OperationDefinition.parameter:url, OperationDefinition.parameter:version, OperationDefinition.parameter:identifier, OperationDefinition.parameter:resource | Either a type must be provided, or parts : type.exists() or part.exists() |
opd-2 | error | OperationDefinition.parameter, OperationDefinition.parameter:url, OperationDefinition.parameter:version, OperationDefinition.parameter:identifier, OperationDefinition.parameter:resource | A search type can only be specified for parameters of type string : searchType.exists() implies type = 'string' |
opd-3 | error | OperationDefinition.parameter, OperationDefinition.parameter:url, OperationDefinition.parameter:version, OperationDefinition.parameter:identifier, OperationDefinition.parameter:resource | 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: 4 elements
Fixed: 4 elements

Slices

This structure defines the following Slices:

- The element 1 is sliced based on the value of OperationDefinition.parameter

Other representations of profile: CSV, Excel, Schematron