Canonical Resource Management Infrastructure Implementation Guide
1.0.0-ballot2 - Ballot International flag

This page is part of the Canonical Resource Management Infrastructure Implementation Guide (v1.0.0-ballot2: STU1 Ballot 2) based on FHIR (HL7® FHIR® Standard) R4. . For a full list of available versions, see the Directory of published versions

Resource Profile: CRMI Operation Profile: Artifact Operation

Official URL: http://hl7.org/fhir/uv/crmi/StructureDefinition/crmi-artifact-operation Version: 1.0.0-ballot2
Draft as of 2023-12-20 Computable Name: ArtifactOperation

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* for the resource
  • version: artifact version* for the resource
  • identifier: business identifier for the resource
  • resource: instance of a canonical resource

*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:

Formal Views of Profile Content

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

This structure is derived from OperationDefinition

NameFlagsCard.TypeDescription & Constraintsdoco
.. OperationDefinition 0..*OperationDefinitionDefinition of an operation or a named query
... Slices for parameter 0..*BackboneElementParameters for the operation/query
Slice: Unordered, Open by value:name
.... parameter:url SC0..1BackboneElementParameters for the operation/query
crmi-artifact-operation-1: Parameter url type is uri or canonical
..... name 1..1codeName in Parameters.parameter.name or in URL
Fixed Value: url
..... use 1..1codein | out
Required Pattern: in
..... min 1..1integerMinimum Cardinality
Required Pattern: 0
..... max 1..1stringMaximum Cardinality (a number or *)
Required Pattern: 1
.... parameter:version S0..1BackboneElementParameters for the operation/query
..... name 1..1codeName in Parameters.parameter.name or in URL
Fixed Value: version
..... use 1..1codein | out
Required Pattern: in
..... min 1..1integerMinimum Cardinality
Required Pattern: 0
..... max 1..1stringMaximum Cardinality (a number or *)
Required Pattern: 1
..... type 0..1codeWhat type this parameter has
Required Pattern: string
.... parameter:identifier S0..1BackboneElementParameters for the operation/query
..... name 1..1codeName in Parameters.parameter.name or in URL
Fixed Value: identifier
..... use 1..1codein | out
Required Pattern: in
..... min 1..1integerMinimum Cardinality
Required Pattern: 0
..... max 1..1stringMaximum Cardinality (a number or *)
Required Pattern: 1
..... type 0..1codeWhat type this parameter has
Required Pattern: string
..... searchType 0..1codenumber | date | string | token | reference | composite | quantity | uri | special
Required Pattern: token
.... parameter:resource S0..1BackboneElementParameters for the operation/query
..... name 1..1codeName in Parameters.parameter.name or in URL
Fixed Value: resource
..... use 1..1codein | out
Required Pattern: in
..... min 1..1integerMinimum Cardinality
Required Pattern: 0
..... max 1..1stringMaximum Cardinality (a number or *)
Required Pattern: 1
..... type 0..1codeWhat type this parameter has
Binding: Artifact Resource Types (required)

doco Documentation for this format

Terminology Bindings (Differential)

PathConformanceValueSet
OperationDefinition.parameter:resource.typerequiredArtifactResourceTypes

Constraints

IdGradePath(s)DetailsRequirements
crmi-artifact-operation-1errorOperationDefinition.parameter:urlParameter url type is uri or canonical
: type='uri' or type='canonical'
NameFlagsCard.TypeDescription & Constraintsdoco
.. OperationDefinition C0..*OperationDefinitionDefinition of an operation or a named query
... implicitRules ?!Σ0..1uriA set of rules under which this content was created
... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
... name ΣC1..1stringName for this operation definition (computer friendly)
... kind Σ1..1codeoperation | query
Binding: OperationKind (required): Whether an operation is a normal operation or a query.

... code Σ1..1codeName used to invoke the operation
... system Σ1..1booleanInvoke at the system level?
... type Σ1..1booleanInvoke at the type level?
... instance Σ1..1booleanInvoke on an instance?
... Slices for parameter C0..*BackboneElementParameters for the operation/query
Slice: Unordered, Open by value:name
.... parameter:All Slices Content/Rules for all slices
..... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
..... name 1..1codeName in Parameters.parameter.name or in URL
..... use 1..1codein | out
Binding: OperationParameterUse (required): Whether an operation parameter is an input or an output parameter.

..... min 1..1integerMinimum Cardinality
..... max 1..1stringMaximum Cardinality (a number or *)
.... parameter:url SC0..1BackboneElementParameters for the operation/query
crmi-artifact-operation-1: Parameter url type is uri or canonical
..... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
..... name 1..1codeName in Parameters.parameter.name or in URL
Fixed Value: url
..... use 1..1codein | out
Binding: OperationParameterUse (required): Whether an operation parameter is an input or an output parameter.


Required Pattern: in
..... min 1..1integerMinimum Cardinality
Required Pattern: 0
..... max 1..1stringMaximum Cardinality (a number or *)
Required Pattern: 1
.... parameter:version SC0..1BackboneElementParameters for the operation/query
..... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
..... name 1..1codeName in Parameters.parameter.name or in URL
Fixed Value: version
..... use 1..1codein | out
Binding: OperationParameterUse (required): Whether an operation parameter is an input or an output parameter.


Required Pattern: in
..... min 1..1integerMinimum Cardinality
Required Pattern: 0
..... max 1..1stringMaximum Cardinality (a number or *)
Required Pattern: 1
..... type C0..1codeWhat 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 SC0..1BackboneElementParameters for the operation/query
..... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
..... name 1..1codeName in Parameters.parameter.name or in URL
Fixed Value: identifier
..... use 1..1codein | out
Binding: OperationParameterUse (required): Whether an operation parameter is an input or an output parameter.


Required Pattern: in
..... min 1..1integerMinimum Cardinality
Required Pattern: 0
..... max 1..1stringMaximum Cardinality (a number or *)
Required Pattern: 1
..... type C0..1codeWhat 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 C0..1codenumber | 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 SC0..1BackboneElementParameters for the operation/query
..... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
..... name 1..1codeName in Parameters.parameter.name or in URL
Fixed Value: resource
..... use 1..1codein | out
Binding: OperationParameterUse (required): Whether an operation parameter is an input or an output parameter.


Required Pattern: in
..... min 1..1integerMinimum Cardinality
Required Pattern: 0
..... max 1..1stringMaximum Cardinality (a number or *)
Required Pattern: 1
..... type C0..1codeWhat type this parameter has
Binding: Artifact Resource Types (required)

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet / Code
OperationDefinition.statusrequiredPublicationStatus
OperationDefinition.kindrequiredOperationKind
OperationDefinition.parameter.userequiredOperationParameterUse
OperationDefinition.parameter:url.userequiredPattern: in
OperationDefinition.parameter:version.userequiredPattern: in
OperationDefinition.parameter:version.typerequiredPattern: string
OperationDefinition.parameter:identifier.userequiredPattern: in
OperationDefinition.parameter:identifier.typerequiredPattern: string
OperationDefinition.parameter:identifier.searchTyperequiredPattern: token
OperationDefinition.parameter:resource.userequiredPattern: in
OperationDefinition.parameter:resource.typerequiredArtifactResourceTypes

Constraints

IdGradePath(s)DetailsRequirements
crmi-artifact-operation-1errorOperationDefinition.parameter:urlParameter url type is uri or canonical
: type='uri' or type='canonical'
dom-2errorOperationDefinitionIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorOperationDefinitionIf 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-4errorOperationDefinitionIf 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-5errorOperationDefinitionIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practiceOperationDefinitionA resource should have narrative for robust management
: text.`div`.exists()
ele-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1error**ALL** extensionsMust have either extensions or value[x], not both
: extension.exists() != value.exists()
opd-0warningOperationDefinitionName 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-1errorOperationDefinition.parameter, OperationDefinition.parameter:url, OperationDefinition.parameter:version, OperationDefinition.parameter:identifier, OperationDefinition.parameter:resourceEither a type must be provided, or parts
: type.exists() or part.exists()
opd-2errorOperationDefinition.parameter, OperationDefinition.parameter:url, OperationDefinition.parameter:version, OperationDefinition.parameter:identifier, OperationDefinition.parameter:resourceA search type can only be specified for parameters of type string
: searchType.exists() implies type = 'string'
opd-3errorOperationDefinition.parameter, OperationDefinition.parameter:url, OperationDefinition.parameter:version, OperationDefinition.parameter:identifier, OperationDefinition.parameter:resourceA targetProfile can only be specified for parameters of type Reference or Canonical
: targetProfile.exists() implies (type = 'Reference' or type = 'canonical')
NameFlagsCard.TypeDescription & Constraintsdoco
.. OperationDefinition C0..*OperationDefinitionDefinition of an operation or a named query
... id Σ0..1idLogical id of this artifact
... meta Σ0..1MetaMetadata about the resource
... implicitRules ?!Σ0..1uriA set of rules under which this content was created
... language 0..1codeLanguage of the resource content
Binding: CommonLanguages (preferred): A human language.

Additional BindingsPurpose
AllLanguagesMax Binding
... text 0..1NarrativeText summary of the resource, for human interpretation
... contained 0..*ResourceContained, inline Resources
... extension 0..*ExtensionAdditional content defined by implementations
... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
... url Σ0..1uriCanonical identifier for this operation definition, represented as a URI (globally unique)
... version Σ0..1stringBusiness version of the operation definition
... name ΣC1..1stringName for this operation definition (computer friendly)
... title Σ0..1stringName for this operation definition (human friendly)
... status ?!Σ1..1codedraft | active | retired | unknown
Binding: PublicationStatus (required): The lifecycle status of an artifact.

... kind Σ1..1codeoperation | query
Binding: OperationKind (required): Whether an operation is a normal operation or a query.

... experimental Σ0..1booleanFor testing purposes, not real usage
... date Σ0..1dateTimeDate last changed
... publisher Σ0..1stringName of the publisher (organization or individual)
... contact Σ0..*ContactDetailContact details for the publisher
... description 0..1markdownNatural language description of the operation definition
... useContext Σ0..*UsageContextThe context that the content is intended to support
... jurisdiction Σ0..*CodeableConceptIntended jurisdiction for operation definition (if applicable)
Binding: Jurisdiction ValueSet (extensible): Countries and regions within which this artifact is targeted for use.


... purpose 0..1markdownWhy this operation definition is defined
... affectsState Σ0..1booleanWhether content is changed by the operation
... code Σ1..1codeName used to invoke the operation
... comment 0..1markdownAdditional information about use
... base Σ0..1canonical(OperationDefinition)Marks this as a profile of the base
... resource Σ0..*codeTypes this operation applies to
Binding: ResourceType (required): One of the resource types defined as part of this version of FHIR.


... system Σ1..1booleanInvoke at the system level?
... type Σ1..1booleanInvoke at the type level?
... instance Σ1..1booleanInvoke on an instance?
... inputProfile 0..1canonical(StructureDefinition)Validation information for in parameters
... outputProfile 0..1canonical(StructureDefinition)Validation information for out parameters
... Slices for parameter C0..*BackboneElementParameters for the operation/query
Slice: Unordered, Open by value:name
.... parameter:All Slices Content/Rules for all slices
..... id 0..1stringUnique id for inter-element referencing
..... extension 0..*ExtensionAdditional content defined by implementations
..... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
..... name 1..1codeName in Parameters.parameter.name or in URL
..... use 1..1codein | out
Binding: OperationParameterUse (required): Whether an operation parameter is an input or an output parameter.

..... min 1..1integerMinimum Cardinality
..... max 1..1stringMaximum Cardinality (a number or *)
..... documentation 0..1stringDescription of meaning/use
..... type C0..1codeWhat 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 C0..1codenumber | date | string | token | reference | composite | quantity | uri | special
Binding: SearchParamType (required): Data types allowed to be used for search parameters.

..... binding 0..1BackboneElementValueSet details if this is coded
...... id 0..1stringUnique id for inter-element referencing
...... extension 0..*ExtensionAdditional content defined by implementations
...... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
...... strength 1..1coderequired | extensible | preferred | example
Binding: BindingStrength (required): Indication of the degree of conformance expectations associated with a binding.

...... valueSet 1..1canonical(ValueSet)Source of value set
..... referencedFrom 0..*BackboneElementReferences to this parameter
...... id 0..1stringUnique id for inter-element referencing
...... extension 0..*ExtensionAdditional content defined by implementations
...... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
...... source 1..1stringReferencing parameter
...... sourceId 0..1stringElement id of reference
..... part C0..*See parameter (OperationDefinition)Parts of a nested Parameter
.... parameter:url SC0..1BackboneElementParameters for the operation/query
crmi-artifact-operation-1: Parameter url type is uri or canonical
..... id 0..1stringUnique id for inter-element referencing
..... extension 0..*ExtensionAdditional content defined by implementations
..... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
..... name 1..1codeName in Parameters.parameter.name or in URL
Fixed Value: url
..... use 1..1codein | out
Binding: OperationParameterUse (required): Whether an operation parameter is an input or an output parameter.


Required Pattern: in
..... min 1..1integerMinimum Cardinality
Required Pattern: 0
..... max 1..1stringMaximum Cardinality (a number or *)
Required Pattern: 1
..... documentation 0..1stringDescription of meaning/use
..... type C0..1codeWhat 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 C0..1codenumber | date | string | token | reference | composite | quantity | uri | special
Binding: SearchParamType (required): Data types allowed to be used for search parameters.

..... binding 0..1BackboneElementValueSet details if this is coded
...... id 0..1stringUnique id for inter-element referencing
...... extension 0..*ExtensionAdditional content defined by implementations
...... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
...... strength 1..1coderequired | extensible | preferred | example
Binding: BindingStrength (required): Indication of the degree of conformance expectations associated with a binding.

...... valueSet 1..1canonical(ValueSet)Source of value set
..... referencedFrom 0..*BackboneElementReferences to this parameter
...... id 0..1stringUnique id for inter-element referencing
...... extension 0..*ExtensionAdditional content defined by implementations
...... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
...... source 1..1stringReferencing parameter
...... sourceId 0..1stringElement id of reference
..... part C0..*See parameter (OperationDefinition)Parts of a nested Parameter
.... parameter:version SC0..1BackboneElementParameters for the operation/query
..... id 0..1stringUnique id for inter-element referencing
..... extension 0..*ExtensionAdditional content defined by implementations
..... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
..... name 1..1codeName in Parameters.parameter.name or in URL
Fixed Value: version
..... use 1..1codein | out
Binding: OperationParameterUse (required): Whether an operation parameter is an input or an output parameter.


Required Pattern: in
..... min 1..1integerMinimum Cardinality
Required Pattern: 0
..... max 1..1stringMaximum Cardinality (a number or *)
Required Pattern: 1
..... documentation 0..1stringDescription of meaning/use
..... type C0..1codeWhat 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 C0..1codenumber | date | string | token | reference | composite | quantity | uri | special
Binding: SearchParamType (required): Data types allowed to be used for search parameters.

..... binding 0..1BackboneElementValueSet details if this is coded
...... id 0..1stringUnique id for inter-element referencing
...... extension 0..*ExtensionAdditional content defined by implementations
...... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
...... strength 1..1coderequired | extensible | preferred | example
Binding: BindingStrength (required): Indication of the degree of conformance expectations associated with a binding.

...... valueSet 1..1canonical(ValueSet)Source of value set
..... referencedFrom 0..*BackboneElementReferences to this parameter
...... id 0..1stringUnique id for inter-element referencing
...... extension 0..*ExtensionAdditional content defined by implementations
...... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
...... source 1..1stringReferencing parameter
...... sourceId 0..1stringElement id of reference
..... part C0..*See parameter (OperationDefinition)Parts of a nested Parameter
.... parameter:identifier SC0..1BackboneElementParameters for the operation/query
..... id 0..1stringUnique id for inter-element referencing
..... extension 0..*ExtensionAdditional content defined by implementations
..... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
..... name 1..1codeName in Parameters.parameter.name or in URL
Fixed Value: identifier
..... use 1..1codein | out
Binding: OperationParameterUse (required): Whether an operation parameter is an input or an output parameter.


Required Pattern: in
..... min 1..1integerMinimum Cardinality
Required Pattern: 0
..... max 1..1stringMaximum Cardinality (a number or *)
Required Pattern: 1
..... documentation 0..1stringDescription of meaning/use
..... type C0..1codeWhat 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 C0..1codenumber | 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..1BackboneElementValueSet details if this is coded
...... id 0..1stringUnique id for inter-element referencing
...... extension 0..*ExtensionAdditional content defined by implementations
...... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
...... strength 1..1coderequired | extensible | preferred | example
Binding: BindingStrength (required): Indication of the degree of conformance expectations associated with a binding.

...... valueSet 1..1canonical(ValueSet)Source of value set
..... referencedFrom 0..*BackboneElementReferences to this parameter
...... id 0..1stringUnique id for inter-element referencing
...... extension 0..*ExtensionAdditional content defined by implementations
...... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
...... source 1..1stringReferencing parameter
...... sourceId 0..1stringElement id of reference
..... part C0..*See parameter (OperationDefinition)Parts of a nested Parameter
.... parameter:resource SC0..1BackboneElementParameters for the operation/query
..... id 0..1stringUnique id for inter-element referencing
..... extension 0..*ExtensionAdditional content defined by implementations
..... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
..... name 1..1codeName in Parameters.parameter.name or in URL
Fixed Value: resource
..... use 1..1codein | out
Binding: OperationParameterUse (required): Whether an operation parameter is an input or an output parameter.


Required Pattern: in
..... min 1..1integerMinimum Cardinality
Required Pattern: 0
..... max 1..1stringMaximum Cardinality (a number or *)
Required Pattern: 1
..... documentation 0..1stringDescription of meaning/use
..... type C0..1codeWhat type this parameter has
Binding: Artifact Resource Types (required)
..... targetProfile 0..*canonical(StructureDefinition)If type is Reference | canonical, allowed targets
..... searchType C0..1codenumber | date | string | token | reference | composite | quantity | uri | special
Binding: SearchParamType (required): Data types allowed to be used for search parameters.

..... binding 0..1BackboneElementValueSet details if this is coded
...... id 0..1stringUnique id for inter-element referencing
...... extension 0..*ExtensionAdditional content defined by implementations
...... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
...... strength 1..1coderequired | extensible | preferred | example
Binding: BindingStrength (required): Indication of the degree of conformance expectations associated with a binding.

...... valueSet 1..1canonical(ValueSet)Source of value set
..... referencedFrom 0..*BackboneElementReferences to this parameter
...... id 0..1stringUnique id for inter-element referencing
...... extension 0..*ExtensionAdditional content defined by implementations
...... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
...... source 1..1stringReferencing parameter
...... sourceId 0..1stringElement id of reference
..... part C0..*See parameter (OperationDefinition)Parts of a nested Parameter
... overload 0..*BackboneElementDefine overloaded variants for when generating code
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... parameterName 0..*stringName of parameter to include in overload
.... comment 0..1stringComments to go on overload

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet / Code
OperationDefinition.languagepreferredCommonLanguages
Additional Bindings Purpose
AllLanguages Max Binding
OperationDefinition.statusrequiredPublicationStatus
OperationDefinition.kindrequiredOperationKind
OperationDefinition.jurisdictionextensibleJurisdiction ValueSet
OperationDefinition.resourcerequiredResourceType
OperationDefinition.parameter.userequiredOperationParameterUse
OperationDefinition.parameter.typerequiredFHIRAllTypes
OperationDefinition.parameter.searchTyperequiredSearchParamType
OperationDefinition.parameter.binding.strengthrequiredBindingStrength
OperationDefinition.parameter:url.userequiredPattern: in
OperationDefinition.parameter:url.typerequiredFHIRAllTypes
OperationDefinition.parameter:url.searchTyperequiredSearchParamType
OperationDefinition.parameter:url.binding.strengthrequiredBindingStrength
OperationDefinition.parameter:version.userequiredPattern: in
OperationDefinition.parameter:version.typerequiredPattern: string
OperationDefinition.parameter:version.searchTyperequiredSearchParamType
OperationDefinition.parameter:version.binding.strengthrequiredBindingStrength
OperationDefinition.parameter:identifier.userequiredPattern: in
OperationDefinition.parameter:identifier.typerequiredPattern: string
OperationDefinition.parameter:identifier.searchTyperequiredPattern: token
OperationDefinition.parameter:identifier.binding.strengthrequiredBindingStrength
OperationDefinition.parameter:resource.userequiredPattern: in
OperationDefinition.parameter:resource.typerequiredArtifactResourceTypes
OperationDefinition.parameter:resource.searchTyperequiredSearchParamType
OperationDefinition.parameter:resource.binding.strengthrequiredBindingStrength

Constraints

IdGradePath(s)DetailsRequirements
crmi-artifact-operation-1errorOperationDefinition.parameter:urlParameter url type is uri or canonical
: type='uri' or type='canonical'
dom-2errorOperationDefinitionIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorOperationDefinitionIf 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-4errorOperationDefinitionIf 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-5errorOperationDefinitionIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practiceOperationDefinitionA resource should have narrative for robust management
: text.`div`.exists()
ele-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1error**ALL** extensionsMust have either extensions or value[x], not both
: extension.exists() != value.exists()
opd-0warningOperationDefinitionName 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-1errorOperationDefinition.parameter, OperationDefinition.parameter:url, OperationDefinition.parameter:version, OperationDefinition.parameter:identifier, OperationDefinition.parameter:resourceEither a type must be provided, or parts
: type.exists() or part.exists()
opd-2errorOperationDefinition.parameter, OperationDefinition.parameter:url, OperationDefinition.parameter:version, OperationDefinition.parameter:identifier, OperationDefinition.parameter:resourceA search type can only be specified for parameters of type string
: searchType.exists() implies type = 'string'
opd-3errorOperationDefinition.parameter, OperationDefinition.parameter:url, OperationDefinition.parameter:version, OperationDefinition.parameter:identifier, OperationDefinition.parameter:resourceA 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 Value: 4 elements

Slices

This structure defines the following Slices:

  • The element OperationDefinition.parameter is sliced based on the value of value:name

Differential View

This structure is derived from OperationDefinition

NameFlagsCard.TypeDescription & Constraintsdoco
.. OperationDefinition 0..*OperationDefinitionDefinition of an operation or a named query
... Slices for parameter 0..*BackboneElementParameters for the operation/query
Slice: Unordered, Open by value:name
.... parameter:url SC0..1BackboneElementParameters for the operation/query
crmi-artifact-operation-1: Parameter url type is uri or canonical
..... name 1..1codeName in Parameters.parameter.name or in URL
Fixed Value: url
..... use 1..1codein | out
Required Pattern: in
..... min 1..1integerMinimum Cardinality
Required Pattern: 0
..... max 1..1stringMaximum Cardinality (a number or *)
Required Pattern: 1
.... parameter:version S0..1BackboneElementParameters for the operation/query
..... name 1..1codeName in Parameters.parameter.name or in URL
Fixed Value: version
..... use 1..1codein | out
Required Pattern: in
..... min 1..1integerMinimum Cardinality
Required Pattern: 0
..... max 1..1stringMaximum Cardinality (a number or *)
Required Pattern: 1
..... type 0..1codeWhat type this parameter has
Required Pattern: string
.... parameter:identifier S0..1BackboneElementParameters for the operation/query
..... name 1..1codeName in Parameters.parameter.name or in URL
Fixed Value: identifier
..... use 1..1codein | out
Required Pattern: in
..... min 1..1integerMinimum Cardinality
Required Pattern: 0
..... max 1..1stringMaximum Cardinality (a number or *)
Required Pattern: 1
..... type 0..1codeWhat type this parameter has
Required Pattern: string
..... searchType 0..1codenumber | date | string | token | reference | composite | quantity | uri | special
Required Pattern: token
.... parameter:resource S0..1BackboneElementParameters for the operation/query
..... name 1..1codeName in Parameters.parameter.name or in URL
Fixed Value: resource
..... use 1..1codein | out
Required Pattern: in
..... min 1..1integerMinimum Cardinality
Required Pattern: 0
..... max 1..1stringMaximum Cardinality (a number or *)
Required Pattern: 1
..... type 0..1codeWhat type this parameter has
Binding: Artifact Resource Types (required)

doco Documentation for this format

Terminology Bindings (Differential)

PathConformanceValueSet
OperationDefinition.parameter:resource.typerequiredArtifactResourceTypes

Constraints

IdGradePath(s)DetailsRequirements
crmi-artifact-operation-1errorOperationDefinition.parameter:urlParameter url type is uri or canonical
: type='uri' or type='canonical'

Key Elements View

NameFlagsCard.TypeDescription & Constraintsdoco
.. OperationDefinition C0..*OperationDefinitionDefinition of an operation or a named query
... implicitRules ?!Σ0..1uriA set of rules under which this content was created
... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
... name ΣC1..1stringName for this operation definition (computer friendly)
... kind Σ1..1codeoperation | query
Binding: OperationKind (required): Whether an operation is a normal operation or a query.

... code Σ1..1codeName used to invoke the operation
... system Σ1..1booleanInvoke at the system level?
... type Σ1..1booleanInvoke at the type level?
... instance Σ1..1booleanInvoke on an instance?
... Slices for parameter C0..*BackboneElementParameters for the operation/query
Slice: Unordered, Open by value:name
.... parameter:All Slices Content/Rules for all slices
..... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
..... name 1..1codeName in Parameters.parameter.name or in URL
..... use 1..1codein | out
Binding: OperationParameterUse (required): Whether an operation parameter is an input or an output parameter.

..... min 1..1integerMinimum Cardinality
..... max 1..1stringMaximum Cardinality (a number or *)
.... parameter:url SC0..1BackboneElementParameters for the operation/query
crmi-artifact-operation-1: Parameter url type is uri or canonical
..... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
..... name 1..1codeName in Parameters.parameter.name or in URL
Fixed Value: url
..... use 1..1codein | out
Binding: OperationParameterUse (required): Whether an operation parameter is an input or an output parameter.


Required Pattern: in
..... min 1..1integerMinimum Cardinality
Required Pattern: 0
..... max 1..1stringMaximum Cardinality (a number or *)
Required Pattern: 1
.... parameter:version SC0..1BackboneElementParameters for the operation/query
..... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
..... name 1..1codeName in Parameters.parameter.name or in URL
Fixed Value: version
..... use 1..1codein | out
Binding: OperationParameterUse (required): Whether an operation parameter is an input or an output parameter.


Required Pattern: in
..... min 1..1integerMinimum Cardinality
Required Pattern: 0
..... max 1..1stringMaximum Cardinality (a number or *)
Required Pattern: 1
..... type C0..1codeWhat 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 SC0..1BackboneElementParameters for the operation/query
..... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
..... name 1..1codeName in Parameters.parameter.name or in URL
Fixed Value: identifier
..... use 1..1codein | out
Binding: OperationParameterUse (required): Whether an operation parameter is an input or an output parameter.


Required Pattern: in
..... min 1..1integerMinimum Cardinality
Required Pattern: 0
..... max 1..1stringMaximum Cardinality (a number or *)
Required Pattern: 1
..... type C0..1codeWhat 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 C0..1codenumber | 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 SC0..1BackboneElementParameters for the operation/query
..... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
..... name 1..1codeName in Parameters.parameter.name or in URL
Fixed Value: resource
..... use 1..1codein | out
Binding: OperationParameterUse (required): Whether an operation parameter is an input or an output parameter.


Required Pattern: in
..... min 1..1integerMinimum Cardinality
Required Pattern: 0
..... max 1..1stringMaximum Cardinality (a number or *)
Required Pattern: 1
..... type C0..1codeWhat type this parameter has
Binding: Artifact Resource Types (required)

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet / Code
OperationDefinition.statusrequiredPublicationStatus
OperationDefinition.kindrequiredOperationKind
OperationDefinition.parameter.userequiredOperationParameterUse
OperationDefinition.parameter:url.userequiredPattern: in
OperationDefinition.parameter:version.userequiredPattern: in
OperationDefinition.parameter:version.typerequiredPattern: string
OperationDefinition.parameter:identifier.userequiredPattern: in
OperationDefinition.parameter:identifier.typerequiredPattern: string
OperationDefinition.parameter:identifier.searchTyperequiredPattern: token
OperationDefinition.parameter:resource.userequiredPattern: in
OperationDefinition.parameter:resource.typerequiredArtifactResourceTypes

Constraints

IdGradePath(s)DetailsRequirements
crmi-artifact-operation-1errorOperationDefinition.parameter:urlParameter url type is uri or canonical
: type='uri' or type='canonical'
dom-2errorOperationDefinitionIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorOperationDefinitionIf 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-4errorOperationDefinitionIf 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-5errorOperationDefinitionIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practiceOperationDefinitionA resource should have narrative for robust management
: text.`div`.exists()
ele-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1error**ALL** extensionsMust have either extensions or value[x], not both
: extension.exists() != value.exists()
opd-0warningOperationDefinitionName 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-1errorOperationDefinition.parameter, OperationDefinition.parameter:url, OperationDefinition.parameter:version, OperationDefinition.parameter:identifier, OperationDefinition.parameter:resourceEither a type must be provided, or parts
: type.exists() or part.exists()
opd-2errorOperationDefinition.parameter, OperationDefinition.parameter:url, OperationDefinition.parameter:version, OperationDefinition.parameter:identifier, OperationDefinition.parameter:resourceA search type can only be specified for parameters of type string
: searchType.exists() implies type = 'string'
opd-3errorOperationDefinition.parameter, OperationDefinition.parameter:url, OperationDefinition.parameter:version, OperationDefinition.parameter:identifier, OperationDefinition.parameter:resourceA targetProfile can only be specified for parameters of type Reference or Canonical
: targetProfile.exists() implies (type = 'Reference' or type = 'canonical')

Snapshot View

NameFlagsCard.TypeDescription & Constraintsdoco
.. OperationDefinition C0..*OperationDefinitionDefinition of an operation or a named query
... id Σ0..1idLogical id of this artifact
... meta Σ0..1MetaMetadata about the resource
... implicitRules ?!Σ0..1uriA set of rules under which this content was created
... language 0..1codeLanguage of the resource content
Binding: CommonLanguages (preferred): A human language.

Additional BindingsPurpose
AllLanguagesMax Binding
... text 0..1NarrativeText summary of the resource, for human interpretation
... contained 0..*ResourceContained, inline Resources
... extension 0..*ExtensionAdditional content defined by implementations
... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
... url Σ0..1uriCanonical identifier for this operation definition, represented as a URI (globally unique)
... version Σ0..1stringBusiness version of the operation definition
... name ΣC1..1stringName for this operation definition (computer friendly)
... title Σ0..1stringName for this operation definition (human friendly)
... status ?!Σ1..1codedraft | active | retired | unknown
Binding: PublicationStatus (required): The lifecycle status of an artifact.

... kind Σ1..1codeoperation | query
Binding: OperationKind (required): Whether an operation is a normal operation or a query.

... experimental Σ0..1booleanFor testing purposes, not real usage
... date Σ0..1dateTimeDate last changed
... publisher Σ0..1stringName of the publisher (organization or individual)
... contact Σ0..*ContactDetailContact details for the publisher
... description 0..1markdownNatural language description of the operation definition
... useContext Σ0..*UsageContextThe context that the content is intended to support
... jurisdiction Σ0..*CodeableConceptIntended jurisdiction for operation definition (if applicable)
Binding: Jurisdiction ValueSet (extensible): Countries and regions within which this artifact is targeted for use.


... purpose 0..1markdownWhy this operation definition is defined
... affectsState Σ0..1booleanWhether content is changed by the operation
... code Σ1..1codeName used to invoke the operation
... comment 0..1markdownAdditional information about use
... base Σ0..1canonical(OperationDefinition)Marks this as a profile of the base
... resource Σ0..*codeTypes this operation applies to
Binding: ResourceType (required): One of the resource types defined as part of this version of FHIR.


... system Σ1..1booleanInvoke at the system level?
... type Σ1..1booleanInvoke at the type level?
... instance Σ1..1booleanInvoke on an instance?
... inputProfile 0..1canonical(StructureDefinition)Validation information for in parameters
... outputProfile 0..1canonical(StructureDefinition)Validation information for out parameters
... Slices for parameter C0..*BackboneElementParameters for the operation/query
Slice: Unordered, Open by value:name
.... parameter:All Slices Content/Rules for all slices
..... id 0..1stringUnique id for inter-element referencing
..... extension 0..*ExtensionAdditional content defined by implementations
..... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
..... name 1..1codeName in Parameters.parameter.name or in URL
..... use 1..1codein | out
Binding: OperationParameterUse (required): Whether an operation parameter is an input or an output parameter.

..... min 1..1integerMinimum Cardinality
..... max 1..1stringMaximum Cardinality (a number or *)
..... documentation 0..1stringDescription of meaning/use
..... type C0..1codeWhat 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 C0..1codenumber | date | string | token | reference | composite | quantity | uri | special
Binding: SearchParamType (required): Data types allowed to be used for search parameters.

..... binding 0..1BackboneElementValueSet details if this is coded
...... id 0..1stringUnique id for inter-element referencing
...... extension 0..*ExtensionAdditional content defined by implementations
...... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
...... strength 1..1coderequired | extensible | preferred | example
Binding: BindingStrength (required): Indication of the degree of conformance expectations associated with a binding.

...... valueSet 1..1canonical(ValueSet)Source of value set
..... referencedFrom 0..*BackboneElementReferences to this parameter
...... id 0..1stringUnique id for inter-element referencing
...... extension 0..*ExtensionAdditional content defined by implementations
...... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
...... source 1..1stringReferencing parameter
...... sourceId 0..1stringElement id of reference
..... part C0..*See parameter (OperationDefinition)Parts of a nested Parameter
.... parameter:url SC0..1BackboneElementParameters for the operation/query
crmi-artifact-operation-1: Parameter url type is uri or canonical
..... id 0..1stringUnique id for inter-element referencing
..... extension 0..*ExtensionAdditional content defined by implementations
..... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
..... name 1..1codeName in Parameters.parameter.name or in URL
Fixed Value: url
..... use 1..1codein | out
Binding: OperationParameterUse (required): Whether an operation parameter is an input or an output parameter.


Required Pattern: in
..... min 1..1integerMinimum Cardinality
Required Pattern: 0
..... max 1..1stringMaximum Cardinality (a number or *)
Required Pattern: 1
..... documentation 0..1stringDescription of meaning/use
..... type C0..1codeWhat 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 C0..1codenumber | date | string | token | reference | composite | quantity | uri | special
Binding: SearchParamType (required): Data types allowed to be used for search parameters.

..... binding 0..1BackboneElementValueSet details if this is coded
...... id 0..1stringUnique id for inter-element referencing
...... extension 0..*ExtensionAdditional content defined by implementations
...... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
...... strength 1..1coderequired | extensible | preferred | example
Binding: BindingStrength (required): Indication of the degree of conformance expectations associated with a binding.

...... valueSet 1..1canonical(ValueSet)Source of value set
..... referencedFrom 0..*BackboneElementReferences to this parameter
...... id 0..1stringUnique id for inter-element referencing
...... extension 0..*ExtensionAdditional content defined by implementations
...... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
...... source 1..1stringReferencing parameter
...... sourceId 0..1stringElement id of reference
..... part C0..*See parameter (OperationDefinition)Parts of a nested Parameter
.... parameter:version SC0..1BackboneElementParameters for the operation/query
..... id 0..1stringUnique id for inter-element referencing
..... extension 0..*ExtensionAdditional content defined by implementations
..... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
..... name 1..1codeName in Parameters.parameter.name or in URL
Fixed Value: version
..... use 1..1codein | out
Binding: OperationParameterUse (required): Whether an operation parameter is an input or an output parameter.


Required Pattern: in
..... min 1..1integerMinimum Cardinality
Required Pattern: 0
..... max 1..1stringMaximum Cardinality (a number or *)
Required Pattern: 1
..... documentation 0..1stringDescription of meaning/use
..... type C0..1codeWhat 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 C0..1codenumber | date | string | token | reference | composite | quantity | uri | special
Binding: SearchParamType (required): Data types allowed to be used for search parameters.

..... binding 0..1BackboneElementValueSet details if this is coded
...... id 0..1stringUnique id for inter-element referencing
...... extension 0..*ExtensionAdditional content defined by implementations
...... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
...... strength 1..1coderequired | extensible | preferred | example
Binding: BindingStrength (required): Indication of the degree of conformance expectations associated with a binding.

...... valueSet 1..1canonical(ValueSet)Source of value set
..... referencedFrom 0..*BackboneElementReferences to this parameter
...... id 0..1stringUnique id for inter-element referencing
...... extension 0..*ExtensionAdditional content defined by implementations
...... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
...... source 1..1stringReferencing parameter
...... sourceId 0..1stringElement id of reference
..... part C0..*See parameter (OperationDefinition)Parts of a nested Parameter
.... parameter:identifier SC0..1BackboneElementParameters for the operation/query
..... id 0..1stringUnique id for inter-element referencing
..... extension 0..*ExtensionAdditional content defined by implementations
..... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
..... name 1..1codeName in Parameters.parameter.name or in URL
Fixed Value: identifier
..... use 1..1codein | out
Binding: OperationParameterUse (required): Whether an operation parameter is an input or an output parameter.


Required Pattern: in
..... min 1..1integerMinimum Cardinality
Required Pattern: 0
..... max 1..1stringMaximum Cardinality (a number or *)
Required Pattern: 1
..... documentation 0..1stringDescription of meaning/use
..... type C0..1codeWhat 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 C0..1codenumber | 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..1BackboneElementValueSet details if this is coded
...... id 0..1stringUnique id for inter-element referencing
...... extension 0..*ExtensionAdditional content defined by implementations
...... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
...... strength 1..1coderequired | extensible | preferred | example
Binding: BindingStrength (required): Indication of the degree of conformance expectations associated with a binding.

...... valueSet 1..1canonical(ValueSet)Source of value set
..... referencedFrom 0..*BackboneElementReferences to this parameter
...... id 0..1stringUnique id for inter-element referencing
...... extension 0..*ExtensionAdditional content defined by implementations
...... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
...... source 1..1stringReferencing parameter
...... sourceId 0..1stringElement id of reference
..... part C0..*See parameter (OperationDefinition)Parts of a nested Parameter
.... parameter:resource SC0..1BackboneElementParameters for the operation/query
..... id 0..1stringUnique id for inter-element referencing
..... extension 0..*ExtensionAdditional content defined by implementations
..... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
..... name 1..1codeName in Parameters.parameter.name or in URL
Fixed Value: resource
..... use 1..1codein | out
Binding: OperationParameterUse (required): Whether an operation parameter is an input or an output parameter.


Required Pattern: in
..... min 1..1integerMinimum Cardinality
Required Pattern: 0
..... max 1..1stringMaximum Cardinality (a number or *)
Required Pattern: 1
..... documentation 0..1stringDescription of meaning/use
..... type C0..1codeWhat type this parameter has
Binding: Artifact Resource Types (required)
..... targetProfile 0..*canonical(StructureDefinition)If type is Reference | canonical, allowed targets
..... searchType C0..1codenumber | date | string | token | reference | composite | quantity | uri | special
Binding: SearchParamType (required): Data types allowed to be used for search parameters.

..... binding 0..1BackboneElementValueSet details if this is coded
...... id 0..1stringUnique id for inter-element referencing
...... extension 0..*ExtensionAdditional content defined by implementations
...... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
...... strength 1..1coderequired | extensible | preferred | example
Binding: BindingStrength (required): Indication of the degree of conformance expectations associated with a binding.

...... valueSet 1..1canonical(ValueSet)Source of value set
..... referencedFrom 0..*BackboneElementReferences to this parameter
...... id 0..1stringUnique id for inter-element referencing
...... extension 0..*ExtensionAdditional content defined by implementations
...... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
...... source 1..1stringReferencing parameter
...... sourceId 0..1stringElement id of reference
..... part C0..*See parameter (OperationDefinition)Parts of a nested Parameter
... overload 0..*BackboneElementDefine overloaded variants for when generating code
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... parameterName 0..*stringName of parameter to include in overload
.... comment 0..1stringComments to go on overload

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet / Code
OperationDefinition.languagepreferredCommonLanguages
Additional Bindings Purpose
AllLanguages Max Binding
OperationDefinition.statusrequiredPublicationStatus
OperationDefinition.kindrequiredOperationKind
OperationDefinition.jurisdictionextensibleJurisdiction ValueSet
OperationDefinition.resourcerequiredResourceType
OperationDefinition.parameter.userequiredOperationParameterUse
OperationDefinition.parameter.typerequiredFHIRAllTypes
OperationDefinition.parameter.searchTyperequiredSearchParamType
OperationDefinition.parameter.binding.strengthrequiredBindingStrength
OperationDefinition.parameter:url.userequiredPattern: in
OperationDefinition.parameter:url.typerequiredFHIRAllTypes
OperationDefinition.parameter:url.searchTyperequiredSearchParamType
OperationDefinition.parameter:url.binding.strengthrequiredBindingStrength
OperationDefinition.parameter:version.userequiredPattern: in
OperationDefinition.parameter:version.typerequiredPattern: string
OperationDefinition.parameter:version.searchTyperequiredSearchParamType
OperationDefinition.parameter:version.binding.strengthrequiredBindingStrength
OperationDefinition.parameter:identifier.userequiredPattern: in
OperationDefinition.parameter:identifier.typerequiredPattern: string
OperationDefinition.parameter:identifier.searchTyperequiredPattern: token
OperationDefinition.parameter:identifier.binding.strengthrequiredBindingStrength
OperationDefinition.parameter:resource.userequiredPattern: in
OperationDefinition.parameter:resource.typerequiredArtifactResourceTypes
OperationDefinition.parameter:resource.searchTyperequiredSearchParamType
OperationDefinition.parameter:resource.binding.strengthrequiredBindingStrength

Constraints

IdGradePath(s)DetailsRequirements
crmi-artifact-operation-1errorOperationDefinition.parameter:urlParameter url type is uri or canonical
: type='uri' or type='canonical'
dom-2errorOperationDefinitionIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorOperationDefinitionIf 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-4errorOperationDefinitionIf 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-5errorOperationDefinitionIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practiceOperationDefinitionA resource should have narrative for robust management
: text.`div`.exists()
ele-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1error**ALL** extensionsMust have either extensions or value[x], not both
: extension.exists() != value.exists()
opd-0warningOperationDefinitionName 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-1errorOperationDefinition.parameter, OperationDefinition.parameter:url, OperationDefinition.parameter:version, OperationDefinition.parameter:identifier, OperationDefinition.parameter:resourceEither a type must be provided, or parts
: type.exists() or part.exists()
opd-2errorOperationDefinition.parameter, OperationDefinition.parameter:url, OperationDefinition.parameter:version, OperationDefinition.parameter:identifier, OperationDefinition.parameter:resourceA search type can only be specified for parameters of type string
: searchType.exists() implies type = 'string'
opd-3errorOperationDefinition.parameter, OperationDefinition.parameter:url, OperationDefinition.parameter:version, OperationDefinition.parameter:identifier, OperationDefinition.parameter:resourceA 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 Value: 4 elements

Slices

This structure defines the following Slices:

  • The element OperationDefinition.parameter is sliced based on the value of value:name

 

Other representations of profile: CSV, Excel, Schematron