FHIR Release 3 (STU) CI-Build

This page is part of the FHIR Specification (v3.0.2: STU 3). The current version which supercedes this version is 5.0.0 . For a full list Continuous Integration Build of available versions, see FHIR (will be incorrect/inconsistent at times).
See the Directory of published versions icon . Page versions: R5 R4B R4 R3 R2

5.4 5.5 Resource OperationDefinition - Content

Responsible Owner: FHIR Infrastructure icon Work Group Maturity Level : 4   Normative (from v4.0.0)   Trial Use Security Category : Anonymous Compartments : Not linked to any No defined compartments

A formal computable definition of an operation (on the RESTful interface) or a named query (using the search interaction).

The OperationDefinition resource provides a formal computable definition of an operation or a named query . The OperationDefinition serves two principal purposes:

  • To allow for automatic determination of system compatibility
  • To allow for dynamic generation of forms to drive the operations

See below for further information about these, and about how operations and named queries are executed.

OperationDefinitions are published to define operations that servers can implement in a common fashion. The FHIR specification itself describes some (see below), and other organizations (including IHE, national programs, jurisdictions and vendors) are able to publish additional OperationDefinitions.

OperationDefinition resources are referred to from two different places:

  • From a Capability Statement CapabilityStatement , to declare what operations a system does or should implement
  • From another OperationDefinition resource. This allows for a server to describe a limited implementation of a standard operation, or to allow traceability if the server has to rename the operation due to a name clash

OperationDefinitions can be used to define a custom query (kind = query, discussed below) which functions as a special kind of search. This resource is referenced by different to a SearchParameter because a custom query may define multiple parameters and can define of complex search behavior beyond what SearchParameter can specify. It also typically overrides the behavior of the query functionality, while search parameters can only act as additional filters.

Structure

Logical URI to reference Context Intended jurisdiction for Σ Name used to invoke the Invole 0..* I 0..1 number | date | string | token | reference | composite | quantity | uri Profile on the uri
Name Flags Card. Type Description & Constraints      Filter: Filters doco
. . OperationDefinition N DomainResource Definition of an operation or a named query
+ Warning: Name should be usable as an identifier for the module by machine processing applications such as code generation
+ Rule: A query operation cannot be defined at the instance level
+ Rule: A query operation requires input parameters to have a search type
+ Rule: Named queries always have a single output parameter named 'result' of type Bundle

Elements defined in Ancestors: id , meta , implicitRules , language , text , contained , extension , modifierExtension
Interfaces Implemented: CanonicalResource
. . . url Σ C 0..1 uri Canonical identifier for this operation definition definition, represented as an absolute URI (globally unique)
+ Warning: URL should not contain | or # - these characters make processing canonical references problematic
. . version . identifier Σ 0..* Identifier 0..1 Additional identifier for the implementation guide (business identifier)

. . . version Σ 0..1 string Business version of the operation definition
. . name . versionAlgorithm[x] Σ 0..1 How to compare versions
Binding: Version Algorithm ( Extensible )
.... versionAlgorithmString 1..1 string
. . . . versionAlgorithmCoding Coding
... name Σ C 1..1 string Name for this operation definition (computer friendly)
. . . status title Σ T 0..1 string Name for this operation definition (human friendly)
... status ?! Σ 1..1 code draft | active | retired | unknown
Binding: PublicationStatus ( Required )
. . . kind Σ C 1..1 code operation | query
OperationKind Binding: Operation Kind ( Required )
. . . experimental ?! Σ 0..1 boolean For testing purposes, not only - never for real usage
. . . date Σ 0..1 dateTime Date this was last changed
. . . publisher Σ T 0..1 string Name of the publisher publisher/steward (organization or individual)
. . . contact Σ 0..* ContactDetail Contact details for the publisher

. . . description T 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 Jurisdiction of the authority that maintains the operation definition (if applicable)
Binding: Jurisdiction ValueSet icon ( Extensible )

. . . purpose T 0..1 markdown Why this operation definition is defined
. . idempotent . copyright T Σ 0..1 markdown Notice about intellectual property ownership, can include restrictions on use
. . . copyrightLabel T 0..1 string Copyright holder and year(s)
... affectsState Σ 0..1 boolean Whether content is unchanged changed by the operation
. . . synchronicity Σ 0..1 code synchronous | asynchronous | either
Binding: Operation Synchronicity Control ( Required )
. . . code Σ 1..1 code Recommended name for operation in search url
. . . comment 0..1 string markdown Additional information about use
. . . base Σ 0..1 Reference canonical ( OperationDefinition ) Marks this as a profile of the base
. . . resource Σ 0..* code Types this operation applies to
ResourceType Binding: Version Independent Resource Types (All) ( Required )
Additional Bindings Purpose
All Resource Types UI Binding


. . . system Σ 1..1 boolean Invoke at the system level?
. . . type Σ 1..1 boolean Invoke at the type level?
. . . instance Σ C 1..1 boolean Invoke on an instance?
. . parameter . inputProfile 0..1 I canonical ( StructureDefinition ) Validation information for in parameters
. . . outputProfile 0..1 BackboneElement canonical ( StructureDefinition ) Validation information for out parameters
. . . parameter C 0..* BackboneElement Parameters for the operation/query
+ Rule: Either a type must be provided, or parts
+ Rule: A search type can only be specified for parameters of type string
+ Rule: A targetProfile can only be specified for parameters of type Reference, Canonical, or a Resource
+ Rule: SearchParamType can only be specified on in parameters
+ Rule: Min <= Max

. . . . name C 1..1 code Name in Parameters.parameter.name or in URL
. . . . use C 1..1 code in | out
Binding: Operation Parameter Use ( Required )
OperationParameterUse
. . . . scope 0..* code instance | type | system
Binding: Operation Parameter Scope ( Required )

. . . . min 1..1 integer unsignedInt Minimum Cardinality
. . . . max C 1..1 string Maximum Cardinality (a number or *)
+ Rule: Max SHALL be a number or "*"
. . . . documentation T 0..1 string markdown Description of meaning/use
. . . . type I C 0..1 code What type this parameter has
FHIRAllTypes Binding: All FHIR Types ( Required )
. . . . searchType allowedType 0..* code Allowed sub-type this parameter can have (if type is abstract)
SearchParamType Binding: All FHIR Types ( Required )

. . . profile . targetProfile C 0..1 0..* Reference canonical ( StructureDefinition ) If type is Reference | canonical, allowed targets. If type is 'Resource', then this constrains the allowed resource types

. . . binding . searchType C 0..1 code BackboneElement number | date | string | token | reference | composite | quantity | uri | special | resource
Binding: SearchParamType ( Required )
. . . . binding 0..1 BackboneElement ValueSet details if this is coded
. . . . . strength 1..1 code required | extensible | preferred | example | descriptive
Binding: BindingStrength ( Required )
. . . . valueSet[x] . valueSet 1..1 canonical ( ValueSet ) Source of value set
. . . . referencedFrom valueSetUri 0..* BackboneElement References to this parameter

. . . . . source 1..1 string Referencing parameter
. . . . valueSetReference . sourceId 0..1 Reference ( ValueSet string ) Element id of reference
. . . . part I C 0..* see parameter Parts of a nested Parameter

. . . overload 0..* BackboneElement Define overloaded variants for when generating code

. . . . parameterName 0..* string Name of parameter to include in overload

. . . . comment 0..1 string Comments to go on overload

doco Documentation for this format icon

See the Extensions for this resource

UML Diagram ( Legend )

OperationDefinition ( DomainResource ) + CanonicalResource An absolute URI that is used to identify this operation definition when it is referenced in a specification, model, design or an instance. instance; also called its canonical identifier. This SHALL be a URL, SHOULD be globally unique, unique and SHOULD be an a literal address at which an authoritative instance of this operation definition is (or will be) published. The This URL SHOULD include can be the major version target of a canonical reference. It SHALL remain the same when the operation definition. For more information see [Technical and Business Versions](resource.html#versions) definition is stored on different servers url : uri [0..1] A formal identifier that is used to identify this implementation guide when it is represented in other formats, or referenced in a specification, model, design or an instance identifier : Identifier [0..*] The identifier that is used to identify this version of the operation definition when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the operation definition author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available. There is also no expectation that versions can be placed in a lexicographical sequence version : string [0..1] Indicates the mechanism used to compare versions to determine which is more current versionAlgorithm[x] : DataType [0..1] « string | Coding ; null (Strength=Extensible) VersionAlgorithm + » A natural language name identifying the operation definition. This name should be usable as an identifier for the module by machine processing applications such as code generation name : string [1..1] « This element has or is affected by some invariants C » A short, descriptive, user-friendly title for the operation definition title : string [0..1] The status current state of this operation definition. Enables tracking the life-cycle of the content definition (this element modifies the meaning of other elements) status : code [1..1] « The lifecycle status of a Value Set or Concept Map. null (Strength=Required) PublicationStatus ! » Whether this is an operation or a named query kind : code [1..1] « Whether an operation is a normal operation or a query. null (Strength=Required) OperationKind ! » « This element has or is affected by some invariants C » A boolean Boolean value to indicate that this operation definition is authored for testing purposes (or education/evaluation/marketing), education/evaluation/marketing) and is not intended to no version of this resource will ever be used intended for genuine usage (this element modifies the meaning of other elements) experimental : boolean [0..1] The date (and optionally time) when the operation definition was published. last significantly changed. The date must change if and when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the operation definition changes date : dateTime [0..1] The name of the individual or organization that published or individual responsible for the release and ongoing maintenance of the operation definition publisher : string [0..1] Contact details to assist a user in finding and communicating with the publisher contact : ContactDetail [0..*] A free text natural language description of the operation definition from a consumer's perspective description : markdown [0..1] The content was developed with a focus and intent of supporting the contexts that are listed. These terms contexts may be general categories (gender, age, ...) or may be references to specific programs (insurance plans, studies, ...) and may be used to assist with indexing and searching for appropriate operation definition instances useContext : UsageContext [0..*] A legal or geographic region in which the operation definition authority that maintains the resource is intended to be used operating. In general, the jurisdiction is also found in the useContext. The useContext may reference additional jurisdictions because the defining jurisdiction does not necessarily limit the jurisdictions of use jurisdiction : CodeableConcept [0..*] « Countries and regions within which this artifact is targeted for use null (Strength=Extensible) Jurisdiction ValueSet JurisdictionValueSet + » Explaination Explanation of why this operation definition is needed and why it has been designed as it has purpose : markdown [0..1] Operations that are idempotent (see [HTTP specification A copyright statement relating to the operation definition and/or its contents. Copyright statements are notices of idempotent](http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html)) may be invoked by performing an HTTP GET operation instead intellectual property ownership and can include restrictions on the use and publishing of the operation definition copyright : markdown [0..1] A short string (<50 characters), suitable for inclusion in a POST page footer that identifies the copyright holder, effective period, and optionally whether rights are restricted. (e.g. 'All rights reserved', 'Some rights reserved') idempotent copyrightLabel : string [0..1] Whether the operation affects state. Side effects such as producing audit trail entries do not count as 'affecting state' affectsState : boolean [0..1] Indicates that this operation must always be handled as synchronous or asynchronous, or that the server must provide both options, and clients can choose synchronicity : code [0..1] « null (Strength=Required) OperationSynchronicityControl ! » The name label that is recommended to be used in the URL for this operation. In some cases, servers may need to invoke use a different CapabilityStatement operation.name to differentiate between multiple SearchParameters that happen to have the operation same code code : code [1..1] Additional information about how to use this operation or named query comment : string markdown [0..1] Indicates that this operation definition is a constraining profile on the base base : Reference canonical [0..1] « OperationDefinition » The types on which this operation can be executed resource : code [0..*] « One of the resource types defined as part of FHIR. null (Strength=Required) ResourceType VersionIndependentResourceTyp... ! » Indicates whether this operation or named query can be invoked at the system level (e.g. without needing to choose a resource type for the context) system : boolean [1..1] Indicates whether this operation or named query can be invoked at the resource type level for any given resource type level (e.g. without needing to choose a specific resource id for the context) type : boolean [1..1] Indicates whether this operation can be invoked on a particular instance of one of the given types instance : boolean [1..1] « This element has or is affected by some invariants C » Additional validation information for the in parameters - a single profile that covers all the parameters. The profile is a constraint on the parameters resource as a whole inputProfile : canonical [0..1] « StructureDefinition » Additional validation information for the out parameters - a single profile that covers all the parameters. The profile is a constraint on the parameters resource outputProfile : canonical [0..1] « StructureDefinition » Parameter The name of used to identify the parameter name : code [1..1] « This element has or is affected by some invariants C » Whether this is an input or an output parameter use : code [1..1] « null (Strength=Required) OperationParameterUse ! » « This element has or is affected by some invariants C » Whether an operation If present, indicates that the parameter applies when the operation is an input or an output parameter. being invoked at the specified level scope : code [0..*] « null (Strength=Required) OperationParameterUse OperationParameterScope ! » The minimum number of times this parameter SHALL appear in the request or response min : integer unsignedInt [1..1] The maximum number of times this element is permitted to appear in the request or response max : string [1..1] Describes the meaning or use of this parameter documentation : string markdown [0..1] The type for this parameter type : code [0..1] « Either an abstract type, a resource or a data type. null (Strength=Required) FHIRAllTypes FHIRTypes ! » « This element has or is affected by some invariants C » How Support for polymorphic types. If the parameter type is understood as a search parameter. This is only used if abstract, this element lists allowed sub-types for the parameter type is 'string' searchType allowedType : code [0..1] [0..*] « Data types allowed to be used for search parameters. null (Strength=Required) SearchParamType FHIRTypes ! » A Used when the type is "Reference" or "canonical", and identifies a profile structure or implementation Guide that applies to the specifies target of the rules that reference this parameter refers to. If any profiles are specified, then the content must conform to at least one of them. The URL can be a local reference - to a contained StructureDefinition, or a reference to another StructureDefinition or Implementation Guide by a canonical URL. When an implementation guide is specified, the target resource SHALL conform to at least one profile defined in the implementation guide targetProfile : Reference canonical [0..1] [0..*] « StructureDefinition » « This element has or is affected by some invariants C » How the parameter is understood if/when it used as search parameter. This is only used if the parameter is a string searchType : code [0..1] « null (Strength=Required) SearchParamType ! » « This element has or is affected by some invariants C » Binding Indicates the degree of conformance expectations associated with this binding - that is, the degree to which the provided value set must be adhered to in the instances strength : code [1..1] « Indication of the degree of conformance expectations associated with a binding. null (Strength=Required) BindingStrength ! » Points to the value set or external definition (e.g. implicit value set) that identifies the set of codes to be used valueSet[x] valueSet : Type canonical [1..1] uri | Reference ( « ValueSet ) » ReferencedFrom The name of the parameter or dot-separated path of parameter names pointing to the resource parameter that is expected to contain a reference to this resource source : string [1..1] The id of the element in the referencing resource that is expected to resolve to this resource sourceId : string [0..1] Overload Name of parameter to include in overload parameterName : string [0..*] Comments to go on overload comment : string [0..1] Binds to a value set if this parameter is coded (code, Coding, CodeableConcept) binding [0..1] Identifies other resource parameters within the operation invocation that are expected to resolve to this resource referencedFrom [0..*] The parts of a nested Parameter part [0..*] The parameters for the operation/query parameter [0..*] Defines an appropriate combination of parameters to use when invoking this operation, to help code generators when generating overloaded parameter sets for this operation overload [0..*]

XML Template

<

<OperationDefinition xmlns="http://hl7.org/fhir"> doco

 <!-- from Resource: id, meta, implicitRules, and language -->
 <!-- from DomainResource: text, contained, extension, and modifierExtension -->
 <
 <
 <
 <
 <
 <
 <
 <

 <url value="[uri]"/><!-- 0..1 Canonical identifier for this operation definition, represented as an absolute URI (globally unique) -->
 <identifier><!-- 0..* Identifier Additional identifier for the implementation guide (business identifier) --></identifier>
 <version value="[string]"/><!-- 0..1 Business version of the operation definition -->
 <versionAlgorithm[x]><!-- 0..1 string|Coding How to compare versions --></versionAlgorithm[x]>
 <name value="[string]"/><!-- I 1..1 Name for this operation definition (computer friendly) -->
 <title value="[string]"/><!-- 0..1 Name for this operation definition (human friendly) -->
 <status value="[code]"/><!-- 1..1 draft | active | retired | unknown -->
 <kind value="[code]"/><!-- I 1..1 operation | query -->
 <experimental value="[boolean]"/><!-- 0..1 For testing only - never for real usage -->
 <date value="[dateTime]"/><!-- 0..1 Date last changed -->
 <publisher value="[string]"/><!-- 0..1 Name of the publisher/steward (organization or individual) -->

 <contact><!-- 0..* ContactDetail Contact details for the publisher --></contact>
 <
 <</useContext>
 <</jurisdiction>
 <
 <
 <
 <
 <</base>
 <
 <
 <
 <
 <
  <
  <
  <
  <
  <
  <
  <
  <</profile>

 <description value="[markdown]"/><!-- 0..1 Natural language description of the operation definition -->
 <useContext><!-- 0..* UsageContext The context that the content is intended to support --></useContext>
 <jurisdiction><!-- 0..* CodeableConcept Jurisdiction of the authority that maintains the operation definition (if applicable) icon --></jurisdiction>
 <purpose value="[markdown]"/><!-- 0..1 Why this operation definition is defined -->
 <copyright value="[markdown]"/><!-- 0..1 Notice about intellectual property ownership, can include restrictions on use -->
 <copyrightLabel value="[string]"/><!-- 0..1 Copyright holder and year(s) -->
 <affectsState value="[boolean]"/><!-- 0..1 Whether content is changed by the operation -->
 <synchronicity value="[code]"/><!-- 0..1 synchronous | asynchronous | either -->
 <code value="[code]"/><!-- 1..1 Recommended name for operation in search url -->
 <comment value="[markdown]"/><!-- 0..1 Additional information about use -->
 <base><!-- 0..1 canonical(OperationDefinition) Marks this as a profile of the base --></base>
 <resource value="[code]"/><!-- 0..* Types this operation applies to -->
 <system value="[boolean]"/><!-- 1..1 Invoke at the system level? -->
 <type value="[boolean]"/><!-- 1..1 Invoke at the type level? -->
 <instance value="[boolean]"/><!-- I 1..1 Invoke on an instance? -->
 <inputProfile><!-- 0..1 canonical(StructureDefinition) Validation information for in parameters --></inputProfile>
 <outputProfile><!-- 0..1 canonical(StructureDefinition) Validation information for out parameters --></outputProfile>
 <parameter>  <!-- I 0..* Parameters for the operation/query -->
  <name value="[code]"/><!-- I 1..1 Name in Parameters.parameter.name or in URL -->
  <use value="[code]"/><!-- I 1..1 in | out -->
  <scope value="[code]"/><!-- 0..* instance | type | system -->
  <min value="[unsignedInt]"/><!-- 1..1 Minimum Cardinality -->
  <max value="[string]"/><!-- 1..1 Maximum Cardinality (a number or *) -->
  <documentation value="[markdown]"/><!-- 0..1 Description of meaning/use -->
  <type value="[code]"/><!-- I 0..1 What type this parameter has -->
  <allowedType value="[code]"/><!-- 0..* Allowed sub-type this parameter can have (if type is abstract) -->
  <targetProfile><!-- I 0..* canonical(StructureDefinition) If type is Reference | canonical, allowed targets. If type is 'Resource', then this constrains the allowed resource types --></targetProfile>
  <searchType value="[code]"/><!-- I 0..1 number | date | string | token | reference | composite | quantity | uri | special | resource -->

  <binding>  <!-- 0..1 ValueSet details if this is coded -->
   <
   <</valueSet[x]>

   <strength value="[code]"/><!-- 1..1 required | extensible | preferred | example | descriptive -->
   <valueSet><!-- 1..1 canonical(ValueSet) Source of value set --></valueSet>

  </binding>
  <</part>

  <referencedFrom>  <!-- 0..* References to this parameter -->
   <source value="[string]"/><!-- 1..1 Referencing parameter -->
   <sourceId value="[string]"/><!-- 0..1 Element id of reference -->
  </referencedFrom>
  <part><!-- I 0..* Content as for OperationDefinition.parameter Parts of a nested Parameter --></part>

 </parameter>
 <overload>  <!-- 0..* Define overloaded variants for when  generating code -->
  <
  <

  <parameterName value="[string]"/><!-- 0..* Name of parameter to include in overload -->
  <comment value="[string]"/><!-- 0..1 Comments to go on overload -->

 </overload>
</OperationDefinition>

JSON Template

{doco
  "resourceType" : "",

  "resourceType" : "OperationDefinition",

  // from Resource: id, meta, implicitRules, and language
  // from DomainResource: text, contained, extension, and modifierExtension
  "
  "
  "
  "
  "
  "
  "
  "
  "
  "
  "
  "
  "
  "
  "
  "
  "
  "
  "
  "
  "
  "
    "
    "
    "
    "
    "
    "
    "
    "
    "
      "
      
      ">"
      " }

  "url" : "<uri>", // Canonical identifier for this operation definition, represented as an absolute URI (globally unique)
  "identifier" : [{ Identifier }], // Additional identifier for the implementation guide (business identifier)
  "version" : "<string>", // Business version of the operation definition
  // versionAlgorithm[x]: How to compare versions. One of these 2:

  "versionAlgorithmString" : "<string>",
  "versionAlgorithmCoding" : { Coding },
  "name" : "<string>", // I R!  Name for this operation definition (computer friendly)
  "title" : "<string>", // Name for this operation definition (human friendly)
  "status" : "<code>", // R!  draft | active | retired | unknown
  "kind" : "<code>", // I R!  operation | query
  "experimental" : <boolean>, // For testing only - never for real usage
  "date" : "<dateTime>", // Date last changed
  "publisher" : "<string>", // Name of the publisher/steward (organization or individual)
  "contact" : [{ ContactDetail }], // Contact details for the publisher
  "description" : "<markdown>", // Natural language description of the operation definition
  "useContext" : [{ UsageContext }], // The context that the content is intended to support
  "jurisdiction" : [{ CodeableConcept }], // Jurisdiction of the authority that maintains the operation definition (if applicable) icon
  "purpose" : "<markdown>", // Why this operation definition is defined
  "copyright" : "<markdown>", // Notice about intellectual property ownership, can include restrictions on use
  "copyrightLabel" : "<string>", // Copyright holder and year(s)
  "affectsState" : <boolean>, // Whether content is changed by the operation
  "synchronicity" : "<code>", // synchronous | asynchronous | either
  "code" : "<code>", // R!  Recommended name for operation in search url
  "comment" : "<markdown>", // Additional information about use
  "base" : "<canonical(OperationDefinition)>", // Marks this as a profile of the base
  "resource" : ["<code>"], // Types this operation applies to
  "system" : <boolean>, // R!  Invoke at the system level?
  "type" : <boolean>, // R!  Invoke at the type level?
  "instance" : <boolean>, // I R!  Invoke on an instance?
  "inputProfile" : "<canonical(StructureDefinition)>", // Validation information for in parameters
  "outputProfile" : "<canonical(StructureDefinition)>", // Validation information for out parameters
  "parameter" : [{ // I Parameters for the operation/query
    "name" : "<code>", // I R!  Name in Parameters.parameter.name or in URL
    "use" : "<code>", // I R!  in | out
    "scope" : ["<code>"], // instance | type | system
    "min" : "<unsignedInt>", // R!  Minimum Cardinality
    "max" : "<string>", // R!  Maximum Cardinality (a number or *)
    "documentation" : "<markdown>", // Description of meaning/use
    "type" : "<code>", // I What type this parameter has
    "allowedType" : ["<code>"], // Allowed sub-type this parameter can have (if type is abstract)
    "targetProfile" : ["<canonical(StructureDefinition)>"], // I If type is Reference | canonical, allowed targets. If type is 'Resource', then this constrains the allowed resource types
    "searchType" : "<code>", // I number | date | string | token | reference | composite | quantity | uri | special | resource
    "binding" : { // ValueSet details if this is coded
      "strength" : "<code>", // R!  required | extensible | preferred | example | descriptive
      "valueSet" : "<canonical(ValueSet)>" // R!  Source of value set

    },
    "

    "referencedFrom" : [{ // References to this parameter
      "source" : "<string>", // R!  Referencing parameter
      "sourceId" : "<string>" // Element id of reference
    }],
    "part" : [{ Content as for OperationDefinition.parameter }] // I Parts of a nested Parameter

  }],
  "
    "
    "

  "overload" : [{ // Define overloaded variants for when  generating code
    "parameterName" : ["<string>"], // Name of parameter to include in overload
    "comment" : "<string>" // Comments to go on overload

  }]
}

Turtle Template

@prefix fhir: <http://hl7.org/fhir/> .doco


[ a fhir:OperationDefinition;
  fhir:nodeRole fhir:treeRoot; # if this is the parser root

  # from 
  # from 
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
    fhir:
    fhir:
    fhir:
    fhir:
    fhir:
    fhir:
    fhir:
    fhir:
    fhir:
      fhir:
      # . One of these 2
        fhir: ]
        fhir:) ]
    ];
    fhir:
  ], ...;
  fhir:
    fhir:
    fhir:
  ], ...;

  # from Resource: fhir:id, fhir:meta, fhir:implicitRules, and fhir:language
  # from DomainResource: fhir:text, fhir:contained, fhir:extension, and fhir:modifierExtension
  fhir:url [ uri ] ; # 0..1 Canonical identifier for this operation definition, represented as an absolute URI (globally unique)
  fhir:identifier  ( [ Identifier ] ... ) ; # 0..* Additional identifier for the implementation guide (business identifier)
  fhir:version [ string ] ; # 0..1 Business version of the operation definition
  # versionAlgorithm[x] : 0..1 How to compare versions. One of these 2
    fhir:versionAlgorithm [  a fhir:String ; string ]
    fhir:versionAlgorithm [  a fhir:Coding ; Coding ]
  fhir:name [ string ] ; # 1..1 I Name for this operation definition (computer friendly)
  fhir:title [ string ] ; # 0..1 Name for this operation definition (human friendly)
  fhir:status [ code ] ; # 1..1 draft | active | retired | unknown
  fhir:kind [ code ] ; # 1..1 I operation | query
  fhir:experimental [ boolean ] ; # 0..1 For testing only - never for real usage
  fhir:date [ dateTime ] ; # 0..1 Date last changed
  fhir:publisher [ string ] ; # 0..1 Name of the publisher/steward (organization or individual)
  fhir:contact  ( [ ContactDetail ] ... ) ; # 0..* Contact details for the publisher
  fhir:description [ markdown ] ; # 0..1 Natural language description of the operation definition
  fhir:useContext  ( [ UsageContext ] ... ) ; # 0..* The context that the content is intended to support
  fhir:jurisdiction  ( [ CodeableConcept ] ... ) ; # 0..* Jurisdiction of the authority that maintains the operation definition (if applicable)
  fhir:purpose [ markdown ] ; # 0..1 Why this operation definition is defined
  fhir:copyright [ markdown ] ; # 0..1 Notice about intellectual property ownership, can include restrictions on use
  fhir:copyrightLabel [ string ] ; # 0..1 Copyright holder and year(s)
  fhir:affectsState [ boolean ] ; # 0..1 Whether content is changed by the operation
  fhir:synchronicity [ code ] ; # 0..1 synchronous | asynchronous | either
  fhir:code [ code ] ; # 1..1 Recommended name for operation in search url
  fhir:comment [ markdown ] ; # 0..1 Additional information about use
  fhir:base [ canonical(OperationDefinition) ] ; # 0..1 Marks this as a profile of the base
  fhir:resource  ( [ code ] ... ) ; # 0..* Types this operation applies to
  fhir:system [ boolean ] ; # 1..1 Invoke at the system level?
  fhir:type [ boolean ] ; # 1..1 Invoke at the type level?
  fhir:instance [ boolean ] ; # 1..1 I Invoke on an instance?
  fhir:inputProfile [ canonical(StructureDefinition) ] ; # 0..1 Validation information for in parameters
  fhir:outputProfile [ canonical(StructureDefinition) ] ; # 0..1 Validation information for out parameters
  fhir:parameter ( [ # 0..* I Parameters for the operation/query
    fhir:name [ code ] ; # 1..1 I Name in Parameters.parameter.name or in URL
    fhir:use [ code ] ; # 1..1 I in | out
    fhir:scope  ( [ code ] ... ) ; # 0..* instance | type | system
    fhir:min [ unsignedInt ] ; # 1..1 Minimum Cardinality
    fhir:max [ string ] ; # 1..1 Maximum Cardinality (a number or *)
    fhir:documentation [ markdown ] ; # 0..1 Description of meaning/use
    fhir:type [ code ] ; # 0..1 I What type this parameter has
    fhir:allowedType  ( [ code ] ... ) ; # 0..* Allowed sub-type this parameter can have (if type is abstract)
    fhir:targetProfile  ( [ canonical(StructureDefinition) ] ... ) ; # 0..* I If type is Reference | canonical, allowed targets. If type is 'Resource', then this constrains the allowed resource types
    fhir:searchType [ code ] ; # 0..1 I number | date | string | token | reference | composite | quantity | uri | special | resource
    fhir:binding [ # 0..1 ValueSet details if this is coded
      fhir:strength [ code ] ; # 1..1 required | extensible | preferred | example | descriptive
      fhir:valueSet [ canonical(ValueSet) ] ; # 1..1 Source of value set
    ] ;
    fhir:referencedFrom ( [ # 0..* References to this parameter
      fhir:source [ string ] ; # 1..1 Referencing parameter
      fhir:sourceId [ string ] ; # 0..1 Element id of reference
    ] ... ) ;
    fhir:part  ( [ See OperationDefinition.parameter ] ... ) ; # 0..* I Parts of a nested Parameter
  ] ... ) ;
  fhir:overload ( [ # 0..* Define overloaded variants for when  generating code
    fhir:parameterName  ( [ string ] ... ) ; # 0..* Name of parameter to include in overload
    fhir:comment [ string ] ; # 0..1 Comments to go on overload
  ] ... ) ;

]

Changes since DSTU2 from both R4 and R4B

OperationDefinition
OperationDefinition.status OperationDefinition.identifier
  • Change value set from http://hl7.org/fhir/ValueSet/conformance-resource-status to http://hl7.org/fhir/ValueSet/publication-status Added Element
OperationDefinition.experimental OperationDefinition.versionAlgorithm[x]
  • Now marked as Modifier Added Element
OperationDefinition.contact OperationDefinition.jurisdiction
  • Type changed Change value set from BackboneElement http://hl7.org/fhir/ValueSet/jurisdiction to ContactDetail Jurisdiction ValueSet icon
OperationDefinition.description OperationDefinition.copyright
  • Type changed from string to markdown Added Element
OperationDefinition.useContext OperationDefinition.copyrightLabel
  • Added Element
OperationDefinition.jurisdiction OperationDefinition.synchronicity
  • Added Element
OperationDefinition.purpose OperationDefinition.resource
  • Renamed Change value set from requirements http://hl7.org/fhir/ValueSet/resource-types|4.0.0 to purpose Version Independent Resource Types (All)
  • Type changed from string to markdown Remove codes ChargeItem , ChargeItemDefinition , ClinicalImpression , GraphDefinition , ImmunizationEvaluation , ImmunizationRecommendation , Linkage , MedicationKnowledge , MolecularSequence , SubstanceNucleicAcid , SubstancePolymer , SubstanceProtein , SubstanceReferenceInformation , SubstanceSourceMaterial , SupplyDelivery , SupplyRequest , TestReport , TestScript , VerificationResult
  • Add codes ActorDefinition , AdministrableProductDefinition , ArtifactAssessment , CanonicalResource , ClinicalUseDefinition , DeviceAlert , DeviceAssociation , ImagingSelection , Ingredient , InsuranceProduct , ManufacturedItemDefinition , MedicinalProductDefinition , MetadataResource , NutritionIntake , NutritionProduct , PackagedProductDefinition , Permission , RegulatedAuthorization , RequestOrchestration , Requirements , SubscriptionStatus , SubscriptionTopic , SubstanceDefinition , BodySite , Conformance , DataElement , DeviceComponent , DeviceUseRequest , DiagnosticOrder , EligibilityRequest , EligibilityResponse , ExpansionProfile , ImagingManifest , ImagingObjectSelection , MedicationOrder , MedicationUsage , Order , OrderResponse , ProcedureRequest , ProcessRequest , ProcessResponse , ReferralRequest , Sequence , ServiceDefinition
OperationDefinition.comment OperationDefinition.parameter.scope
  • Renamed from notes to comment Added Element
OperationDefinition.resource OperationDefinition.parameter.min
  • Renamed Type changed from type integer to resource unsignedInt
OperationDefinition.type OperationDefinition.parameter.documentation
    Min Cardinality changed from 0 to 1 Max Cardinality changed from * to 1
  • Type changed from code string to boolean Remove Binding http://hl7.org/fhir/ValueSet/resource-types (required) markdown
OperationDefinition.parameter.type
  • Change value set from http://hl7.org/fhir/ValueSet/operation-parameter-type http://hl7.org/fhir/ValueSet/all-types|4.0.0 to http://hl7.org/fhir/ValueSet/all-types OperationDefinition.parameter.searchType Added Element All FHIR Types
  • OperationDefinition.overload
  • Added Remove codes Address , Age , Annotation , Attachment , BackboneElement , CodeableConcept , Coding , ContactDetail , ContactPoint , Contributor , Count , DataRequirement , Distance , Dosage , Duration , Element , ElementDefinition , Expression , Extension , HumanName , Identifier , MarketingStatus , Meta , Money , MoneyQuantity , Narrative , ParameterDefinition , Period , Population , ProdCharacteristic , ProductShelfLife , Quantity , Range , Ratio , Reference , RelatedArtifact , SampledData , Signature , SimpleQuantity , SubstanceAmount , Timing , TriggerDefinition , UsageContext , base64Binary , boolean , canonical , code , date , dateTime , decimal , id , instant , integer , markdown , oid , positiveInt , string , time , unsignedInt , uri , url , uuid , xhtml , Account , ActivityDefinition , AdverseEvent , AllergyIntolerance , Appointment , AppointmentResponse , AuditEvent , Basic , Binary , BiologicallyDerivedProduct , BodyStructure , Bundle , CapabilityStatement , CarePlan , CareTeam , CatalogEntry , ChargeItem , ChargeItemDefinition , Claim , ClaimResponse , ClinicalImpression , CodeSystem , Communication , CommunicationRequest , CompartmentDefinition , Composition , ConceptMap , Condition , Consent , Contract , Coverage , CoverageEligibilityRequest , CoverageEligibilityResponse , DetectedIssue , Device , DeviceDefinition , DeviceMetric , DeviceRequest , DeviceUseStatement , DiagnosticReport , DocumentManifest , DocumentReference , DomainResource , EffectEvidenceSynthesis , Encounter , Endpoint , EnrollmentRequest , EnrollmentResponse , EpisodeOfCare , EventDefinition , Evidence , EvidenceVariable , ExampleScenario , ExplanationOfBenefit , FamilyMemberHistory , Flag , Goal , GraphDefinition , Group , GuidanceResponse , HealthcareService , ImagingStudy , Immunization , ImmunizationEvaluation , ImmunizationRecommendation , ImplementationGuide , InsurancePlan , Invoice , Library , Linkage , List , Location , Measure , MeasureReport , Media , Medication , MedicationAdministration , MedicationDispense , MedicationKnowledge , MedicationRequest , MedicationStatement , MedicinalProduct , MedicinalProductAuthorization , MedicinalProductContraindication , MedicinalProductIndication , MedicinalProductIngredient , MedicinalProductInteraction , MedicinalProductManufactured , MedicinalProductPackaged , MedicinalProductPharmaceutical , MedicinalProductUndesirableEffect , MessageDefinition , MessageHeader , MolecularSequence , NamingSystem , NutritionOrder , Observation , ObservationDefinition , OperationDefinition , OperationOutcome , Organization , OrganizationAffiliation , Parameters , Patient , PaymentNotice , PaymentReconciliation , Person , PlanDefinition , Practitioner , PractitionerRole , Procedure , Provenance , Questionnaire , QuestionnaireResponse , RelatedPerson , RequestGroup , ResearchDefinition , ResearchElementDefinition , ResearchStudy , ResearchSubject , Resource , RiskAssessment , RiskEvidenceSynthesis , Schedule , SearchParameter , ServiceRequest , Slot , Specimen , SpecimenDefinition , StructureDefinition , StructureMap , Subscription , Substance , SubstanceNucleicAcid , SubstancePolymer , SubstanceProtein , SubstanceReferenceInformation , SubstanceSourceMaterial , SubstanceSpecification , SupplyDelivery , SupplyRequest , Task , TerminologyCapabilities , TestReport , TestScript , ValueSet , VerificationResult , VisionPrescription , Type , Any
  • OperationDefinition.overload.parameterName
  • Added Element Add code Base
OperationDefinition.overload.comment OperationDefinition.parameter.allowedType
  • Added Element
OperationDefinition.contact.name OperationDefinition.parameter.searchType
  • deleted Add code resource
OperationDefinition.contact.telecom OperationDefinition.parameter.binding.strength
  • deleted Add code descriptive

See the Full Difference for further information

This analysis is available for R4 as XML or JSON . See R2 <--> R3 Conversion Maps (status = 18 tests that all execute ok. 1 fail round-trip testing and all r3 resources are valid.). for R4B as XML or JSON .

Structure

Logical URI to reference Context Intended jurisdiction for Σ Name used to invoke the Invole 0..* I 0..1 number | date | string | token | reference | composite | quantity | uri Profile on the
Name Flags Card. Type Description & Constraints      Filter: Filters doco
. . OperationDefinition N DomainResource Definition of an operation or a named query
+ Warning: Name should be usable as an identifier for the module by machine processing applications such as code generation
+ Rule: A query operation cannot be defined at the instance level
+ Rule: A query operation requires input parameters to have a search type
+ Rule: Named queries always have a single output parameter named 'result' of type Bundle

Elements defined in Ancestors: id , meta , implicitRules , language , text , contained , extension , modifierExtension
Interfaces Implemented: CanonicalResource
. . . url Σ C 0..1 uri Canonical identifier for this operation definition definition, represented as an absolute URI (globally unique)
+ Warning: URL should not contain | or # - these characters make processing canonical references problematic
. . version . identifier Σ 0..* Identifier Additional identifier for the implementation guide (business identifier)

0..1
. . . version Σ 0..1 string Business version of the operation definition
. . name . versionAlgorithm[x] Σ 0..1 How to compare versions
Binding: Version Algorithm ( Extensible )
.... versionAlgorithmString 1..1 string
. . . . versionAlgorithmCoding Coding
... name Σ C 1..1 string Name for this operation definition (computer friendly)
. . . status title Σ T 0..1 string Name for this operation definition (human friendly)
... status ?! Σ 1..1 code draft | active | retired | unknown
Binding: PublicationStatus ( Required )
. . . kind Σ C 1..1 code operation | query
OperationKind Binding: Operation Kind ( Required )
. . . experimental ?! Σ 0..1 boolean For testing purposes, not only - never for real usage
. . . date Σ 0..1 dateTime Date this was last changed
. . . publisher Σ T 0..1 string Name of the publisher publisher/steward (organization or individual)
. . . contact Σ 0..* ContactDetail Contact details for the publisher

. . . description T 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 Jurisdiction of the authority that maintains the operation definition (if applicable)
Binding: Jurisdiction ValueSet icon ( Extensible )

. . . purpose T 0..1 markdown Why this operation definition is defined
. . idempotent . copyright T Σ 0..1 markdown Notice about intellectual property ownership, can include restrictions on use
. . . copyrightLabel T 0..1 string Copyright holder and year(s)
... affectsState Σ 0..1 boolean Whether content is unchanged changed by the operation
. . . synchronicity Σ 0..1 code synchronous | asynchronous | either
Binding: Operation Synchronicity Control ( Required )
. . . code Σ 1..1 code Recommended name for operation in search url
. . . comment 0..1 string markdown Additional information about use
. . . base Σ 0..1 Reference canonical ( OperationDefinition ) Marks this as a profile of the base
. . . resource Σ 0..* code Types this operation applies to
ResourceType Binding: Version Independent Resource Types (All) ( Required )
Additional Bindings Purpose
All Resource Types UI Binding


. . . system Σ 1..1 boolean Invoke at the system level?
. . . type Σ 1..1 boolean Invoke at the type level?
. . . instance Σ C 1..1 boolean Invoke on an instance?
. . parameter . inputProfile 0..1 I canonical ( StructureDefinition ) Validation information for in parameters
. . . outputProfile 0..1 BackboneElement canonical ( StructureDefinition ) Validation information for out parameters
. . . parameter C 0..* BackboneElement Parameters for the operation/query
+ Rule: Either a type must be provided, or parts
+ Rule: A search type can only be specified for parameters of type string
+ Rule: A targetProfile can only be specified for parameters of type Reference, Canonical, or a Resource
+ Rule: SearchParamType can only be specified on in parameters
+ Rule: Min <= Max

. . . . name C 1..1 code Name in Parameters.parameter.name or in URL
. . . . use C 1..1 code in | out
Binding: Operation Parameter Use ( Required )
OperationParameterUse
. . . . scope 0..* code instance | type | system
Binding: Operation Parameter Scope ( Required )

. . . . min 1..1 integer unsignedInt Minimum Cardinality
. . . . max C 1..1 string Maximum Cardinality (a number or *)
+ Rule: Max SHALL be a number or "*"
. . . . documentation T 0..1 string markdown Description of meaning/use
. . . . type I C 0..1 code What type this parameter has
FHIRAllTypes Binding: All FHIR Types ( Required )
. . . . searchType allowedType 0..* code Allowed sub-type this parameter can have (if type is abstract)
SearchParamType Binding: All FHIR Types ( Required )

. . . profile . targetProfile C 0..1 0..* Reference canonical ( StructureDefinition ) If type is Reference | canonical, allowed targets. If type is 'Resource', then this constrains the allowed resource types

. . . binding . searchType C 0..1 code BackboneElement number | date | string | token | reference | composite | quantity | uri | special | resource
Binding: SearchParamType ( Required )
. . . . binding 0..1 BackboneElement ValueSet details if this is coded
. . . . . strength 1..1 code required | extensible | preferred | example | descriptive
Binding: BindingStrength ( Required )
. . . . valueSet[x] . valueSet 1..1 canonical ( ValueSet ) Source of value set
. . . . referencedFrom valueSetUri 0..* BackboneElement References to this parameter

uri
. . . . . source 1..1 string Referencing parameter
. . . . valueSetReference . sourceId 0..1 Reference ( ValueSet string ) Element id of reference
. . . . part I C 0..* see parameter Parts of a nested Parameter

. . . overload 0..* BackboneElement Define overloaded variants for when generating code

. . . . parameterName 0..* string Name of parameter to include in overload

. . . . comment 0..1 string Comments to go on overload

doco Documentation for this format icon

See the Extensions for this resource

UML Diagram ( Legend )

OperationDefinition ( DomainResource ) + CanonicalResource An absolute URI that is used to identify this operation definition when it is referenced in a specification, model, design or an instance. instance; also called its canonical identifier. This SHALL be a URL, SHOULD be globally unique, unique and SHOULD be an a literal address at which an authoritative instance of this operation definition is (or will be) published. The This URL SHOULD include can be the major version target of a canonical reference. It SHALL remain the same when the operation definition. For more information see [Technical and Business Versions](resource.html#versions) definition is stored on different servers url : uri [0..1] A formal identifier that is used to identify this implementation guide when it is represented in other formats, or referenced in a specification, model, design or an instance identifier : Identifier [0..*] The identifier that is used to identify this version of the operation definition when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the operation definition author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available. There is also no expectation that versions can be placed in a lexicographical sequence version : string [0..1] Indicates the mechanism used to compare versions to determine which is more current versionAlgorithm[x] : DataType [0..1] « string | Coding ; null (Strength=Extensible) VersionAlgorithm + » A natural language name identifying the operation definition. This name should be usable as an identifier for the module by machine processing applications such as code generation name : string [1..1] « This element has or is affected by some invariants C » A short, descriptive, user-friendly title for the operation definition title : string [0..1] The status current state of this operation definition. Enables tracking the life-cycle of the content definition (this element modifies the meaning of other elements) status : code [1..1] « The lifecycle status of a Value Set or Concept Map. null (Strength=Required) PublicationStatus ! » Whether this is an operation or a named query kind : code [1..1] « Whether an operation is a normal operation or a query. null (Strength=Required) OperationKind ! » « This element has or is affected by some invariants C » A boolean Boolean value to indicate that this operation definition is authored for testing purposes (or education/evaluation/marketing), education/evaluation/marketing) and is not intended to no version of this resource will ever be used intended for genuine usage (this element modifies the meaning of other elements) experimental : boolean [0..1] The date (and optionally time) when the operation definition was published. last significantly changed. The date must change if and when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the operation definition changes date : dateTime [0..1] The name of the individual or organization that published or individual responsible for the release and ongoing maintenance of the operation definition publisher : string [0..1] Contact details to assist a user in finding and communicating with the publisher contact : ContactDetail [0..*] A free text natural language description of the operation definition from a consumer's perspective description : markdown [0..1] The content was developed with a focus and intent of supporting the contexts that are listed. These terms contexts may be general categories (gender, age, ...) or may be references to specific programs (insurance plans, studies, ...) and may be used to assist with indexing and searching for appropriate operation definition instances useContext : UsageContext [0..*] A legal or geographic region in which the operation definition authority that maintains the resource is intended to be used operating. In general, the jurisdiction is also found in the useContext. The useContext may reference additional jurisdictions because the defining jurisdiction does not necessarily limit the jurisdictions of use jurisdiction : CodeableConcept [0..*] « Countries and regions within which this artifact is targeted for use null (Strength=Extensible) Jurisdiction ValueSet JurisdictionValueSet + » Explaination Explanation of why this operation definition is needed and why it has been designed as it has purpose : markdown [0..1] Operations that are idempotent (see [HTTP specification A copyright statement relating to the operation definition and/or its contents. Copyright statements are notices of idempotent](http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html)) may be invoked by performing an HTTP GET operation instead intellectual property ownership and can include restrictions on the use and publishing of the operation definition copyright : markdown [0..1] A short string (<50 characters), suitable for inclusion in a POST page footer that identifies the copyright holder, effective period, and optionally whether rights are restricted. (e.g. 'All rights reserved', 'Some rights reserved') idempotent copyrightLabel : string [0..1] Whether the operation affects state. Side effects such as producing audit trail entries do not count as 'affecting state' affectsState : boolean [0..1] Indicates that this operation must always be handled as synchronous or asynchronous, or that the server must provide both options, and clients can choose synchronicity : code [0..1] « null (Strength=Required) OperationSynchronicityControl ! » The name label that is recommended to be used in the URL for this operation. In some cases, servers may need to invoke use a different CapabilityStatement operation.name to differentiate between multiple SearchParameters that happen to have the operation same code code : code [1..1] Additional information about how to use this operation or named query comment : string markdown [0..1] Indicates that this operation definition is a constraining profile on the base base : Reference canonical [0..1] « OperationDefinition » The types on which this operation can be executed resource : code [0..*] « One of the resource types defined as part of FHIR. null (Strength=Required) ResourceType VersionIndependentResourceTyp... ! » Indicates whether this operation or named query can be invoked at the system level (e.g. without needing to choose a resource type for the context) system : boolean [1..1] Indicates whether this operation or named query can be invoked at the resource type level for any given resource type level (e.g. without needing to choose a specific resource id for the context) type : boolean [1..1] Indicates whether this operation can be invoked on a particular instance of one of the given types instance : boolean [1..1] « This element has or is affected by some invariants C » Additional validation information for the in parameters - a single profile that covers all the parameters. The profile is a constraint on the parameters resource as a whole inputProfile : canonical [0..1] « StructureDefinition » Additional validation information for the out parameters - a single profile that covers all the parameters. The profile is a constraint on the parameters resource outputProfile : canonical [0..1] « StructureDefinition » Parameter The name of used to identify the parameter name : code [1..1] « This element has or is affected by some invariants C » Whether this is an input or an output parameter use : code [1..1] « null (Strength=Required) OperationParameterUse ! » « This element has or is affected by some invariants C » Whether an operation If present, indicates that the parameter applies when the operation is an input or an output parameter. being invoked at the specified level scope : code [0..*] « null (Strength=Required) OperationParameterUse OperationParameterScope ! » The minimum number of times this parameter SHALL appear in the request or response min : integer unsignedInt [1..1] The maximum number of times this element is permitted to appear in the request or response max : string [1..1] Describes the meaning or use of this parameter documentation : string markdown [0..1] The type for this parameter type : code [0..1] « Either an abstract type, a resource or a data type. null (Strength=Required) FHIRAllTypes FHIRTypes ! » « This element has or is affected by some invariants C » How Support for polymorphic types. If the parameter type is understood as a search parameter. This is only used if abstract, this element lists allowed sub-types for the parameter type is 'string' searchType allowedType : code [0..1] [0..*] « Data types allowed to be used for search parameters. null (Strength=Required) SearchParamType FHIRTypes ! » A Used when the type is "Reference" or "canonical", and identifies a profile structure or implementation Guide that applies to the specifies target of the rules that reference this parameter refers to. If any profiles are specified, then the content must conform to at least one of them. The URL can be a local reference - to a contained StructureDefinition, or a reference to another StructureDefinition or Implementation Guide by a canonical URL. When an implementation guide is specified, the target resource SHALL conform to at least one profile defined in the implementation guide targetProfile : Reference canonical [0..1] [0..*] « StructureDefinition » « This element has or is affected by some invariants C » How the parameter is understood if/when it used as search parameter. This is only used if the parameter is a string searchType : code [0..1] « null (Strength=Required) SearchParamType ! » « This element has or is affected by some invariants C » Binding Indicates the degree of conformance expectations associated with this binding - that is, the degree to which the provided value set must be adhered to in the instances strength : code [1..1] « Indication of the degree of conformance expectations associated with a binding. null (Strength=Required) BindingStrength ! » Points to the value set or external definition (e.g. implicit value set) that identifies the set of codes to be used valueSet[x] valueSet : Type canonical [1..1] uri | Reference ( « ValueSet ) » ReferencedFrom The name of the parameter or dot-separated path of parameter names pointing to the resource parameter that is expected to contain a reference to this resource source : string [1..1] The id of the element in the referencing resource that is expected to resolve to this resource sourceId : string [0..1] Overload Name of parameter to include in overload parameterName : string [0..*] Comments to go on overload comment : string [0..1] Binds to a value set if this parameter is coded (code, Coding, CodeableConcept) binding [0..1] Identifies other resource parameters within the operation invocation that are expected to resolve to this resource referencedFrom [0..*] The parts of a nested Parameter part [0..*] The parameters for the operation/query parameter [0..*] Defines an appropriate combination of parameters to use when invoking this operation, to help code generators when generating overloaded parameter sets for this operation overload [0..*]

XML Template

<

<OperationDefinition xmlns="http://hl7.org/fhir"> doco

 <!-- from Resource: id, meta, implicitRules, and language -->
 <!-- from DomainResource: text, contained, extension, and modifierExtension -->
 <
 <
 <
 <
 <
 <
 <
 <

 <url value="[uri]"/><!-- 0..1 Canonical identifier for this operation definition, represented as an absolute URI (globally unique) -->
 <identifier><!-- 0..* Identifier Additional identifier for the implementation guide (business identifier) --></identifier>
 <version value="[string]"/><!-- 0..1 Business version of the operation definition -->
 <versionAlgorithm[x]><!-- 0..1 string|Coding How to compare versions --></versionAlgorithm[x]>
 <name value="[string]"/><!-- I 1..1 Name for this operation definition (computer friendly) -->
 <title value="[string]"/><!-- 0..1 Name for this operation definition (human friendly) -->
 <status value="[code]"/><!-- 1..1 draft | active | retired | unknown -->
 <kind value="[code]"/><!-- I 1..1 operation | query -->
 <experimental value="[boolean]"/><!-- 0..1 For testing only - never for real usage -->
 <date value="[dateTime]"/><!-- 0..1 Date last changed -->
 <publisher value="[string]"/><!-- 0..1 Name of the publisher/steward (organization or individual) -->

 <contact><!-- 0..* ContactDetail Contact details for the publisher --></contact>
 <
 <</useContext>
 <</jurisdiction>
 <
 <
 <
 <
 <</base>
 <
 <
 <
 <
 <
  <
  <
  <
  <
  <
  <
  <
  <</profile>

 <description value="[markdown]"/><!-- 0..1 Natural language description of the operation definition -->
 <useContext><!-- 0..* UsageContext The context that the content is intended to support --></useContext>
 <jurisdiction><!-- 0..* CodeableConcept Jurisdiction of the authority that maintains the operation definition (if applicable) icon --></jurisdiction>
 <purpose value="[markdown]"/><!-- 0..1 Why this operation definition is defined -->
 <copyright value="[markdown]"/><!-- 0..1 Notice about intellectual property ownership, can include restrictions on use -->
 <copyrightLabel value="[string]"/><!-- 0..1 Copyright holder and year(s) -->
 <affectsState value="[boolean]"/><!-- 0..1 Whether content is changed by the operation -->
 <synchronicity value="[code]"/><!-- 0..1 synchronous | asynchronous | either -->
 <code value="[code]"/><!-- 1..1 Recommended name for operation in search url -->
 <comment value="[markdown]"/><!-- 0..1 Additional information about use -->
 <base><!-- 0..1 canonical(OperationDefinition) Marks this as a profile of the base --></base>
 <resource value="[code]"/><!-- 0..* Types this operation applies to -->
 <system value="[boolean]"/><!-- 1..1 Invoke at the system level? -->
 <type value="[boolean]"/><!-- 1..1 Invoke at the type level? -->
 <instance value="[boolean]"/><!-- I 1..1 Invoke on an instance? -->
 <inputProfile><!-- 0..1 canonical(StructureDefinition) Validation information for in parameters --></inputProfile>
 <outputProfile><!-- 0..1 canonical(StructureDefinition) Validation information for out parameters --></outputProfile>
 <parameter>  <!-- I 0..* Parameters for the operation/query -->
  <name value="[code]"/><!-- I 1..1 Name in Parameters.parameter.name or in URL -->
  <use value="[code]"/><!-- I 1..1 in | out -->
  <scope value="[code]"/><!-- 0..* instance | type | system -->
  <min value="[unsignedInt]"/><!-- 1..1 Minimum Cardinality -->
  <max value="[string]"/><!-- 1..1 Maximum Cardinality (a number or *) -->
  <documentation value="[markdown]"/><!-- 0..1 Description of meaning/use -->
  <type value="[code]"/><!-- I 0..1 What type this parameter has -->
  <allowedType value="[code]"/><!-- 0..* Allowed sub-type this parameter can have (if type is abstract) -->
  <targetProfile><!-- I 0..* canonical(StructureDefinition) If type is Reference | canonical, allowed targets. If type is 'Resource', then this constrains the allowed resource types --></targetProfile>
  <searchType value="[code]"/><!-- I 0..1 number | date | string | token | reference | composite | quantity | uri | special | resource -->

  <binding>  <!-- 0..1 ValueSet details if this is coded -->
   <
   <</valueSet[x]>

   <strength value="[code]"/><!-- 1..1 required | extensible | preferred | example | descriptive -->
   <valueSet><!-- 1..1 canonical(ValueSet) Source of value set --></valueSet>

  </binding>
  <</part>

  <referencedFrom>  <!-- 0..* References to this parameter -->
   <source value="[string]"/><!-- 1..1 Referencing parameter -->
   <sourceId value="[string]"/><!-- 0..1 Element id of reference -->
  </referencedFrom>
  <part><!-- I 0..* Content as for OperationDefinition.parameter Parts of a nested Parameter --></part>

 </parameter>
 <overload>  <!-- 0..* Define overloaded variants for when  generating code -->
  <
  <

  <parameterName value="[string]"/><!-- 0..* Name of parameter to include in overload -->
  <comment value="[string]"/><!-- 0..1 Comments to go on overload -->

 </overload>
</OperationDefinition>

JSON Template

{doco
  "resourceType" : "",

  "resourceType" : "OperationDefinition",

  // from Resource: id, meta, implicitRules, and language
  // from DomainResource: text, contained, extension, and modifierExtension
  "
  "
  "
  "
  "
  "
  "
  "
  "
  "
  "
  "
  "
  "
  "
  "
  "
  "
  "
  "
  "
  "
    "
    "
    "
    "
    "
    "
    "
    "
    "
      "
      
      ">"
      " }

  "url" : "<uri>", // Canonical identifier for this operation definition, represented as an absolute URI (globally unique)
  "identifier" : [{ Identifier }], // Additional identifier for the implementation guide (business identifier)
  "version" : "<string>", // Business version of the operation definition
  // versionAlgorithm[x]: How to compare versions. One of these 2:

  "versionAlgorithmString" : "<string>",
  "versionAlgorithmCoding" : { Coding },
  "name" : "<string>", // I R!  Name for this operation definition (computer friendly)
  "title" : "<string>", // Name for this operation definition (human friendly)
  "status" : "<code>", // R!  draft | active | retired | unknown
  "kind" : "<code>", // I R!  operation | query
  "experimental" : <boolean>, // For testing only - never for real usage
  "date" : "<dateTime>", // Date last changed
  "publisher" : "<string>", // Name of the publisher/steward (organization or individual)
  "contact" : [{ ContactDetail }], // Contact details for the publisher
  "description" : "<markdown>", // Natural language description of the operation definition
  "useContext" : [{ UsageContext }], // The context that the content is intended to support
  "jurisdiction" : [{ CodeableConcept }], // Jurisdiction of the authority that maintains the operation definition (if applicable) icon
  "purpose" : "<markdown>", // Why this operation definition is defined
  "copyright" : "<markdown>", // Notice about intellectual property ownership, can include restrictions on use
  "copyrightLabel" : "<string>", // Copyright holder and year(s)
  "affectsState" : <boolean>, // Whether content is changed by the operation
  "synchronicity" : "<code>", // synchronous | asynchronous | either
  "code" : "<code>", // R!  Recommended name for operation in search url
  "comment" : "<markdown>", // Additional information about use
  "base" : "<canonical(OperationDefinition)>", // Marks this as a profile of the base
  "resource" : ["<code>"], // Types this operation applies to
  "system" : <boolean>, // R!  Invoke at the system level?
  "type" : <boolean>, // R!  Invoke at the type level?
  "instance" : <boolean>, // I R!  Invoke on an instance?
  "inputProfile" : "<canonical(StructureDefinition)>", // Validation information for in parameters
  "outputProfile" : "<canonical(StructureDefinition)>", // Validation information for out parameters
  "parameter" : [{ // I Parameters for the operation/query
    "name" : "<code>", // I R!  Name in Parameters.parameter.name or in URL
    "use" : "<code>", // I R!  in | out
    "scope" : ["<code>"], // instance | type | system
    "min" : "<unsignedInt>", // R!  Minimum Cardinality
    "max" : "<string>", // R!  Maximum Cardinality (a number or *)
    "documentation" : "<markdown>", // Description of meaning/use
    "type" : "<code>", // I What type this parameter has
    "allowedType" : ["<code>"], // Allowed sub-type this parameter can have (if type is abstract)
    "targetProfile" : ["<canonical(StructureDefinition)>"], // I If type is Reference | canonical, allowed targets. If type is 'Resource', then this constrains the allowed resource types
    "searchType" : "<code>", // I number | date | string | token | reference | composite | quantity | uri | special | resource
    "binding" : { // ValueSet details if this is coded
      "strength" : "<code>", // R!  required | extensible | preferred | example | descriptive
      "valueSet" : "<canonical(ValueSet)>" // R!  Source of value set

    },
    "

    "referencedFrom" : [{ // References to this parameter
      "source" : "<string>", // R!  Referencing parameter
      "sourceId" : "<string>" // Element id of reference
    }],
    "part" : [{ Content as for OperationDefinition.parameter }] // I Parts of a nested Parameter

  }],
  "
    "
    "

  "overload" : [{ // Define overloaded variants for when  generating code
    "parameterName" : ["<string>"], // Name of parameter to include in overload
    "comment" : "<string>" // Comments to go on overload

  }]
}

Turtle Template

@prefix fhir: <http://hl7.org/fhir/> .doco


[ a fhir:OperationDefinition;
  fhir:nodeRole fhir:treeRoot; # if this is the parser root

  # from 
  # from 
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
    fhir:
    fhir:
    fhir:
    fhir:
    fhir:
    fhir:
    fhir:
    fhir:
    fhir:
      fhir:
      # . One of these 2
        fhir: ]
        fhir:) ]
    ];
    fhir:
  ], ...;
  fhir:
    fhir:
    fhir:
  ], ...;

  # from Resource: fhir:id, fhir:meta, fhir:implicitRules, and fhir:language
  # from DomainResource: fhir:text, fhir:contained, fhir:extension, and fhir:modifierExtension
  fhir:url [ uri ] ; # 0..1 Canonical identifier for this operation definition, represented as an absolute URI (globally unique)
  fhir:identifier  ( [ Identifier ] ... ) ; # 0..* Additional identifier for the implementation guide (business identifier)
  fhir:version [ string ] ; # 0..1 Business version of the operation definition
  # versionAlgorithm[x] : 0..1 How to compare versions. One of these 2
    fhir:versionAlgorithm [  a fhir:String ; string ]
    fhir:versionAlgorithm [  a fhir:Coding ; Coding ]
  fhir:name [ string ] ; # 1..1 I Name for this operation definition (computer friendly)
  fhir:title [ string ] ; # 0..1 Name for this operation definition (human friendly)
  fhir:status [ code ] ; # 1..1 draft | active | retired | unknown
  fhir:kind [ code ] ; # 1..1 I operation | query
  fhir:experimental [ boolean ] ; # 0..1 For testing only - never for real usage
  fhir:date [ dateTime ] ; # 0..1 Date last changed
  fhir:publisher [ string ] ; # 0..1 Name of the publisher/steward (organization or individual)
  fhir:contact  ( [ ContactDetail ] ... ) ; # 0..* Contact details for the publisher
  fhir:description [ markdown ] ; # 0..1 Natural language description of the operation definition
  fhir:useContext  ( [ UsageContext ] ... ) ; # 0..* The context that the content is intended to support
  fhir:jurisdiction  ( [ CodeableConcept ] ... ) ; # 0..* Jurisdiction of the authority that maintains the operation definition (if applicable)
  fhir:purpose [ markdown ] ; # 0..1 Why this operation definition is defined
  fhir:copyright [ markdown ] ; # 0..1 Notice about intellectual property ownership, can include restrictions on use
  fhir:copyrightLabel [ string ] ; # 0..1 Copyright holder and year(s)
  fhir:affectsState [ boolean ] ; # 0..1 Whether content is changed by the operation
  fhir:synchronicity [ code ] ; # 0..1 synchronous | asynchronous | either
  fhir:code [ code ] ; # 1..1 Recommended name for operation in search url
  fhir:comment [ markdown ] ; # 0..1 Additional information about use
  fhir:base [ canonical(OperationDefinition) ] ; # 0..1 Marks this as a profile of the base
  fhir:resource  ( [ code ] ... ) ; # 0..* Types this operation applies to
  fhir:system [ boolean ] ; # 1..1 Invoke at the system level?
  fhir:type [ boolean ] ; # 1..1 Invoke at the type level?
  fhir:instance [ boolean ] ; # 1..1 I Invoke on an instance?
  fhir:inputProfile [ canonical(StructureDefinition) ] ; # 0..1 Validation information for in parameters
  fhir:outputProfile [ canonical(StructureDefinition) ] ; # 0..1 Validation information for out parameters
  fhir:parameter ( [ # 0..* I Parameters for the operation/query
    fhir:name [ code ] ; # 1..1 I Name in Parameters.parameter.name or in URL
    fhir:use [ code ] ; # 1..1 I in | out
    fhir:scope  ( [ code ] ... ) ; # 0..* instance | type | system
    fhir:min [ unsignedInt ] ; # 1..1 Minimum Cardinality
    fhir:max [ string ] ; # 1..1 Maximum Cardinality (a number or *)
    fhir:documentation [ markdown ] ; # 0..1 Description of meaning/use
    fhir:type [ code ] ; # 0..1 I What type this parameter has
    fhir:allowedType  ( [ code ] ... ) ; # 0..* Allowed sub-type this parameter can have (if type is abstract)
    fhir:targetProfile  ( [ canonical(StructureDefinition) ] ... ) ; # 0..* I If type is Reference | canonical, allowed targets. If type is 'Resource', then this constrains the allowed resource types
    fhir:searchType [ code ] ; # 0..1 I number | date | string | token | reference | composite | quantity | uri | special | resource
    fhir:binding [ # 0..1 ValueSet details if this is coded
      fhir:strength [ code ] ; # 1..1 required | extensible | preferred | example | descriptive
      fhir:valueSet [ canonical(ValueSet) ] ; # 1..1 Source of value set
    ] ;
    fhir:referencedFrom ( [ # 0..* References to this parameter
      fhir:source [ string ] ; # 1..1 Referencing parameter
      fhir:sourceId [ string ] ; # 0..1 Element id of reference
    ] ... ) ;
    fhir:part  ( [ See OperationDefinition.parameter ] ... ) ; # 0..* I Parts of a nested Parameter
  ] ... ) ;
  fhir:overload ( [ # 0..* Define overloaded variants for when  generating code
    fhir:parameterName  ( [ string ] ... ) ; # 0..* Name of parameter to include in overload
    fhir:comment [ string ] ; # 0..1 Comments to go on overload
  ] ... ) ;

]

Changes since DSTU2 from both R4 and R4B

OperationDefinition
OperationDefinition.status OperationDefinition.identifier
  • Change value set from http://hl7.org/fhir/ValueSet/conformance-resource-status to http://hl7.org/fhir/ValueSet/publication-status Added Element
OperationDefinition.experimental OperationDefinition.versionAlgorithm[x]
  • Now marked as Modifier Added Element
OperationDefinition.contact OperationDefinition.jurisdiction
  • Type changed Change value set from BackboneElement http://hl7.org/fhir/ValueSet/jurisdiction to ContactDetail Jurisdiction ValueSet icon
OperationDefinition.description OperationDefinition.copyright
  • Type changed from string to markdown Added Element
OperationDefinition.useContext OperationDefinition.copyrightLabel
  • Added Element
OperationDefinition.jurisdiction OperationDefinition.synchronicity
  • Added Element
OperationDefinition.purpose OperationDefinition.resource
  • Renamed Change value set from requirements http://hl7.org/fhir/ValueSet/resource-types|4.0.0 to purpose Version Independent Resource Types (All)
  • Type changed from string to markdown Remove codes ChargeItem , ChargeItemDefinition , ClinicalImpression , GraphDefinition , ImmunizationEvaluation , ImmunizationRecommendation , Linkage , MedicationKnowledge , MolecularSequence , SubstanceNucleicAcid , SubstancePolymer , SubstanceProtein , SubstanceReferenceInformation , SubstanceSourceMaterial , SupplyDelivery , SupplyRequest , TestReport , TestScript , VerificationResult
  • Add codes ActorDefinition , AdministrableProductDefinition , ArtifactAssessment , CanonicalResource , ClinicalUseDefinition , DeviceAlert , DeviceAssociation , ImagingSelection , Ingredient , InsuranceProduct , ManufacturedItemDefinition , MedicinalProductDefinition , MetadataResource , NutritionIntake , NutritionProduct , PackagedProductDefinition , Permission , RegulatedAuthorization , RequestOrchestration , Requirements , SubscriptionStatus , SubscriptionTopic , SubstanceDefinition , BodySite , Conformance , DataElement , DeviceComponent , DeviceUseRequest , DiagnosticOrder , EligibilityRequest , EligibilityResponse , ExpansionProfile , ImagingManifest , ImagingObjectSelection , MedicationOrder , MedicationUsage , Order , OrderResponse , ProcedureRequest , ProcessRequest , ProcessResponse , ReferralRequest , Sequence , ServiceDefinition
OperationDefinition.comment OperationDefinition.parameter.scope
  • Renamed from notes to comment Added Element
OperationDefinition.resource OperationDefinition.parameter.min
  • Renamed Type changed from type integer to resource unsignedInt
OperationDefinition.type OperationDefinition.parameter.documentation
    Min Cardinality changed from 0 to 1 Max Cardinality changed from * to 1
  • Type changed from code string to boolean Remove Binding http://hl7.org/fhir/ValueSet/resource-types (required) markdown
OperationDefinition.parameter.type
  • Change value set from http://hl7.org/fhir/ValueSet/operation-parameter-type http://hl7.org/fhir/ValueSet/all-types|4.0.0 to http://hl7.org/fhir/ValueSet/all-types OperationDefinition.parameter.searchType Added Element All FHIR Types
  • OperationDefinition.overload
  • Added Remove codes Address , Age , Annotation , Attachment , BackboneElement , CodeableConcept , Coding , ContactDetail , ContactPoint , Contributor , Count , DataRequirement , Distance , Dosage , Duration , Element , ElementDefinition , Expression , Extension , HumanName , Identifier , MarketingStatus , Meta , Money , MoneyQuantity , Narrative , ParameterDefinition , Period , Population , ProdCharacteristic , ProductShelfLife , Quantity , Range , Ratio , Reference , RelatedArtifact , SampledData , Signature , SimpleQuantity , SubstanceAmount , Timing , TriggerDefinition , UsageContext , base64Binary , boolean , canonical , code , date , dateTime , decimal , id , instant , integer , markdown , oid , positiveInt , string , time , unsignedInt , uri , url , uuid , xhtml , Account , ActivityDefinition , AdverseEvent , AllergyIntolerance , Appointment , AppointmentResponse , AuditEvent , Basic , Binary , BiologicallyDerivedProduct , BodyStructure , Bundle , CapabilityStatement , CarePlan , CareTeam , CatalogEntry , ChargeItem , ChargeItemDefinition , Claim , ClaimResponse , ClinicalImpression , CodeSystem , Communication , CommunicationRequest , CompartmentDefinition , Composition , ConceptMap , Condition , Consent , Contract , Coverage , CoverageEligibilityRequest , CoverageEligibilityResponse , DetectedIssue , Device , DeviceDefinition , DeviceMetric , DeviceRequest , DeviceUseStatement , DiagnosticReport , DocumentManifest , DocumentReference , DomainResource , EffectEvidenceSynthesis , Encounter , Endpoint , EnrollmentRequest , EnrollmentResponse , EpisodeOfCare , EventDefinition , Evidence , EvidenceVariable , ExampleScenario , ExplanationOfBenefit , FamilyMemberHistory , Flag , Goal , GraphDefinition , Group , GuidanceResponse , HealthcareService , ImagingStudy , Immunization , ImmunizationEvaluation , ImmunizationRecommendation , ImplementationGuide , InsurancePlan , Invoice , Library , Linkage , List , Location , Measure , MeasureReport , Media , Medication , MedicationAdministration , MedicationDispense , MedicationKnowledge , MedicationRequest , MedicationStatement , MedicinalProduct , MedicinalProductAuthorization , MedicinalProductContraindication , MedicinalProductIndication , MedicinalProductIngredient , MedicinalProductInteraction , MedicinalProductManufactured , MedicinalProductPackaged , MedicinalProductPharmaceutical , MedicinalProductUndesirableEffect , MessageDefinition , MessageHeader , MolecularSequence , NamingSystem , NutritionOrder , Observation , ObservationDefinition , OperationDefinition , OperationOutcome , Organization , OrganizationAffiliation , Parameters , Patient , PaymentNotice , PaymentReconciliation , Person , PlanDefinition , Practitioner , PractitionerRole , Procedure , Provenance , Questionnaire , QuestionnaireResponse , RelatedPerson , RequestGroup , ResearchDefinition , ResearchElementDefinition , ResearchStudy , ResearchSubject , Resource , RiskAssessment , RiskEvidenceSynthesis , Schedule , SearchParameter , ServiceRequest , Slot , Specimen , SpecimenDefinition , StructureDefinition , StructureMap , Subscription , Substance , SubstanceNucleicAcid , SubstancePolymer , SubstanceProtein , SubstanceReferenceInformation , SubstanceSourceMaterial , SubstanceSpecification , SupplyDelivery , SupplyRequest , Task , TerminologyCapabilities , TestReport , TestScript , ValueSet , VerificationResult , VisionPrescription , Type , Any
  • OperationDefinition.overload.parameterName
  • Added Element Add code Base
OperationDefinition.overload.comment OperationDefinition.parameter.allowedType
  • Added Element
OperationDefinition.contact.name OperationDefinition.parameter.searchType
  • deleted Add code resource
OperationDefinition.contact.telecom OperationDefinition.parameter.binding.strength
  • deleted Add code descriptive

See the Full Difference for further information

This analysis is available for R4 as XML or JSON . See R2 <--> R3 Conversion Maps (status = 18 tests that all execute ok. 1 fail round-trip testing and all r3 resources are valid.). for R4B as XML or JSON .

 

Alternate Additional definitions: Master Definition ( XML , + JSON ), , XML Schema / Schematron (for ) + JSON Schema , ShEx (for Turtle ) , the spreadsheet version & the dependency analysis

OperationDefinition.status OperationDefinition.jurisdiction
Path Definition ValueSet Type Reference Documentation
OperationDefinition.versionAlgorithm[x] The lifecycle status of a Value Set or Concept Map. VersionAlgorithm Required Extensible

Indicates the mechanism used to compare versions to determine which is more current.

OperationDefinition.status PublicationStatus Required

The lifecycle status of an artifact.

OperationDefinition.kind OperationKind Required

Whether an operation is a normal operation or a query.

OperationDefinition.jurisdiction JurisdictionValueSet icon Required Extensible OperationKind

This value set defines a base set of codes for country, country subdivision and region for indicating where a resource is intended to be used.

Note: The codes for countries and country subdivisions are taken from ISO 3166 icon while the codes for "supra-national" regions are from UN Standard country or area codes for statistical use (M49) icon.

OperationDefinition.synchronicity Countries and regions within which this artifact is targeted for use OperationSynchronicityControl Extensible Required Jurisdiction ValueSet

Indicates that an operation must always be handled as synchronous or asynchronous, or that the server must provide both, and clients can choose

OperationDefinition.resource One of the resource types defined as part of FHIR. VersionIndependentResourceTypesAll Required

Current and past FHIR resource types (deleted or renamed), including abstract types

  All Resource Types ui
OperationDefinition.parameter.use OperationParameterUse Required

Whether an operation parameter is an input or an output parameter.

OperationDefinition.parameter.scope OperationParameterScope (a valid code from Operation Parameter Use ) Required OperationParameterUse

Indicates that a parameter applies when the operation is being invoked at the specified level

OperationDefinition.parameter.type Either an abstract type, a resource or a data type. FHIRTypes (a valid code from All FHIR Types ) Required

All FHIR types

OperationDefinition.parameter.allowedType FHIRTypes (a valid code from All FHIR Types ) Required

All FHIR types

OperationDefinition.parameter.searchType SearchParamType Required

Data types allowed to be used for search parameters.

OperationDefinition.parameter.binding.strength BindingStrength Required SearchParamType OperationDefinition.parameter.binding.strength

Indication of the degree of conformance expectations associated with a binding. Required BindingStrength

5.4.3.3 Operations defined as part of this Specification Delete profiles, tags, and security labels Fetch Code Composition based Find
UniqueKey Base Operations (All resource types) Level Validate a resource Location [base]/[Resource]/$validate | [base]/[Resource]/[id]/$validate Description Access a list of profiles, tags, and security labels Expression [base]/$meta | [base]/[Resource]/$meta | [base]/[Resource]/[id]/$meta
Add profiles, tags, and security labels to a resource img  cnl-0 [base]/[Resource]/[id]/$meta-add Warning (base) Name should be usable as an identifier for a resource the module by machine processing applications such as code generation [base]/[Resource]/[id]/$meta-delete name.exists() implies name.matches('^[A-Z]([A-Za-z0-9_]){1,254}$')
Operations Defined by Resource Types img  cnl-1 Apply Warning OperationDefinition.url [base]/ActivityDefinition/[id]/$apply URL should not contain | or # - these characters make processing canonical references problematic exists() implies matches('^[^|# ]+$')
Data Requirements img  opd-1 [base]/ActivityDefinition/[id]/$data-requirements Rule OperationDefinition.parameter Either a subset of the CapabilityStatement resource type must be provided, or parts [base]/CapabilityStatement/$subset | [base]/CapabilityStatement/[id]/$subset type.exists() or part.exists()
Test if a server implements a client's required operations img  opd-2 [base]/CapabilityStatement/$implements | [base]/CapabilityStatement/[id]/$implements Test if a server implements a client's required operations Rule OperationDefinition.parameter [base]/CapabilityStatement/$conforms A search type can only be specified for parameters of type string searchType.exists() implies type = 'string'
Concept Look Up & Decomposition img  opd-3 Rule OperationDefinition.parameter [base]/CodeSystem/$lookup A targetProfile can only be specified for parameters of type Reference, Canonical, or a Resource targetProfile.exists() implies (type = 'Reference' or type = 'canonical' or type.memberOf('http://hl7.org/fhir/ValueSet/all-resource-types'))
Subsumption Testing img  opd-4 [base]/CodeSystem/$subsumes | [base]/CodeSystem/[id]/$subsumes Rule OperationDefinition.parameter SearchParamType can only be specified on supplied properties in parameters [base]/CodeSystem/$compose | [base]/CodeSystem/[id]/$compose (use = 'out') implies searchType.empty()
Generate a Document img  opd-5 [base]/Composition/$document | [base]/Composition/[id]/$document Concept Translation Rule (base) [base]/ConceptMap/$translate | [base]/ConceptMap/[id]/$translate A query operation cannot be defined at the instance level (kind = 'query') implies (instance = false)
Closure Table Maintenance img  opd-6 [base]/$closure Fetch Encounter Record Rule (base) [base]/Encounter/[id]/$everything A query operation requires input parameters to have a search type (kind = 'query') implies (parameter.all((use = 'in' and searchType.exists()) or (use != 'in')))
Data Requirements img  opd-7 [base]/$data-requirements | [base]/Library/[id]/$data-requirements Rule (base) Named queries always have a functional list single output parameter named 'result' of type Bundle [base]/List/$find (kind = 'query') implies ((parameter.where(use = 'out').count() = 1) and (parameter.where(use = 'out').all(name = 'result' and type = 'Bundle')))
Evaluate Measure img  opd-8 [base]/Measure/$evaluate-measure | [base]/Measure/[id]/$evaluate-measure Data Requirements Rule OperationDefinition.parameter [base]/Measure/[id]/$data-requirements Min <= Max (max = '*') or iif(max != '*', min <= max.toInteger())
Process Message img  opd-9 [base]/$process-message Observation Statistics Rule OperationDefinition.parameter.max [base]/Observation/$stats Max SHALL be a number or "*" empty() or ($this = '*') or (toInteger() >= 0)

Last N Observations Query

OperationDefinitions can describe entirely new operations, but they can also describe a restricted implementation of an existing operation, e.g. when a server implements some but not all the features of an operation defined in another specification. These are called derived operation definitions.

An OperationDefinition does by declaring a base as shown in the example :


{
  "resourceType" : "OperationDefinition",
  "id" : "example",
  "url" : "http://hl7.org/fhir/OperationDefinition/example",
  "name" : "PopulateQuestionnaire",
  // snip
  "code" : "populate",
  "base" : "http://hl7.org/fhir/OperationDefinition/Questionnaire-populate"
  // snip
}

When constraining an existing operation like this, operation definitions can make optional parameters required or not used, introduce new parameters (required or optional), clarify documentation, and even change the code for the operation (see next section). The derived operation can't change the nature of the operation itself, nor can it change add types to parameters or prohibit mandatory parameters.

When deriving from another operation, the following rules SHOULD be followed. Note that these rules are asserted as SHOULD rather than SHALL only because they were introduced after the resource became normative. Systems that fail to follow these rules are likely to result in unsafe interoperability.

  • SHOULD NOT change the value of affectsState from the original OperationDefinition
  • SHOULD have the same kind as the original OperationDefinition
  • SHOULD have the same experimental as the original OperationDefinition
  • SHOULD have a resource that is equivalent to or a subset of the original OperationDefinition target [base]/Patient/$match
  • SHOULD NOT set system , type , or instance to 'true' if they were false in the original OperationDefinition
  • if the original inputProfile is valued, SHOULD have an inputProfile valued such that:
    • the inputProfile is the same as, is a profile of, or imposes icon the original inputProfile , or
    • the inputProfile is otherwise compatible with the original inputProfile (all parameters profiled with min cardinality 1 from the original inputProfile are profiled; all parameters profiled in the original inputProfile are profiled with equivalent or tighter constraints)
  • if the original outputProfile is valued, SHOULD have an outputProfile valued such that:
    • the outputProfile is the same as, is a profile of, or imposes icon the original outputProfile, or
    • the outputProfile is otherwise compatible with the original outputProfile (all parameters profiled with min cardinality 1 from the original outputProfile are profiled; all parameters profiled in the original outputProfile are profiled with equivalent or tighter constraints)
  • SHOULD have a parameter with the same name as any parameter of the original OperationDefinition that has a parameter.min value of greater than zero
  • for any parameter with the same parameter.name as a parameter of the original OperationDefinition,
    • SHOULD have the same use as the original parameter
    • SHOULD have the same or greater min value as the original parameter Fetch Patient Record
    • SHOULD have the same or lesser max value as the original parameter
    • if the original parameter.type is valued, SHOULD have the same type as the original parameter [base]/Patient/$everything | [base]/Patient/[id]/$everything
    • if the original parameter.allowedType is valued, SHOULD have an allowedType that is the same or a subset of the original parameter.allowedType
    • if the original parameter.targetProfile is valued, SHOULD only include targetProfile that are the same as, or profiles of, original parameter.targetProfile entries. It is also possible to reduce the number of allowed targetProfiles.
    • if the original parameter.searchType is valued, SHOULD have a searchType with the same value as the original parameter.searchType
    • if the original parameter.binding is valued, SHOULD have a binding with the same values as, or values meeting the constraints of, the original parameter.binding
    • if the original parameter.referencedFrom is valued, SHOULD have a referencedFrom with the same values.
    • if the original parameter.part is valued,
      • SHOULD have a part with the same name as any part of the original OperationDefinition with a min value of greater than zero
      • for any part with the same name as a part of the original OperationDefinition, SHOULD meet the above derivation rules
  • If parameters are removed, the interpretation is that those parameters SHOULD be ignored, not that they are erroneous to include. Note that unexpected parameters SHOULD generally be ignored by implementations.
  • Additional optional parameters not present in the base observation MAY be added.
    • Such parameters SHOULD be safe to ignore if the operation is invoked on a system that only supports the base definition.
    • It is discouraged to introduce parameters with the same name as a parameter that was removed as part of a higher-level derivation. Behavior in this situation is undefined.
Request for ballot feedback: We would like the 'SHOULD' assertions above to become 'SHALL' assertions. We are invoking our usual implementer outreach process to find out whether anyone else objects, but please file tickets for any rules you do not believe can be enforced that way.
Apply

Operations are invoked by their code, not their name. The name is descriptive, for code generation, e.g. ValueSetExpansion , while the code is what is used in a URL e.g. http://example.org/fhir/ValueSet/$expand . When defining operations, for maximum compatibility, use only lowercase ASCII characters. See Naming Rules & Guidelines icon [base]/PlanDefinition/[id]/$data-requirements for the internal HL7 rules around codes, which are useful additional advice for all implementers.

It is possible for two different organizations to create different operation definitions with the same code or, perhaps more likely, to define equivalent operations that have the same code but incompatible approaches in their parameter lists. Note that HL7 will never define multiple operations with the same code.

It is also possible, though unlikely, that a server will be required to support both of these operations. If this is the case, the server is able to do this by giving one of them a new code and referring to it by definition in the capability statement. To illustrate this, assume that two different organizations, "orgA" and "orgB", both define an operation with a code dothis , and the definitions are incompatible. OrgA publishes its operation definition at http://orga.com/fhir/dothis.xml, and OrgB publishes its operation at http://fhir.orgb.com/meta/OperationDefinition/dothis. The server is able to implement both. Its capability statement will say:


<CapabilityStatement xmlns="http://hl7.org/fhir">
  <!-- snip -->
  <rest>
    <!-- snip -->
    <operation>
      <name value="dothis"/>
      <definition>
        <reference value="http://orga.com/fhir/dothis.xml"/>
      </definition>
    </operation>
    <operation>
      <name value="dothis2"/>
      <definition>
        <reference value="http://fhir.orgb.com/meta/OperationDefinition/dothis"/>
      </definition>
    </operation>
    <!-- snip -->
  </rest>
  <!-- snip -->
</CapabilityStatement>

If a general purpose cross server client is looking for the implementation of the http://fhir.orgb.com/meta/OperationDefinition/dothis operation and wants to be robust against this name clash problem, instead of simply executing the $dothis operation, it can look at the server's CapabilityStatement for the underlying definition URI and then execute with the name given in the capability statement.

Note to implementers: it would be more consistent if CapabilityStatement.rest.operation.name was actually called "code", since it relates to OperationDefinition.code, but the confusion this can cause wasn't appreciated until the resource was normative.

There are 2 ways to describe the input and output parameters for an operation:

  • Using OperationDefinition.parameter to describe the parameters
  • Using OperationDefinition.inputProfile and OperationDefinition.outputProfile

The parameters is a simple list of possible parameters, along with cardinalities and types. The profiles allow a rich set of validation rules etc. to be provided. OperationDefinitions SHALL always define the parameters using OperationDefinition.parameter in the resource, and MAY also provide profiles for the parameters. If present, the profiles SHALL NOT disagree with the parameters defined for the operation.

As an example, consider an operation that defines 3 parameters, 2 in and 1 out:

Build Questionnaire
In Parameters: [base]/Questionnaire/$populate | [base]/Questionnaire/[id]/$populate
Generate HTML for Questionnaire Name [base]/Questionnaire/$populatehtml | [base]/Questionnaire/[id]/$populatehtml Cardinality Type Generate a link to a Questionnaire completion webpage Binding Profile [base]/Questionnaire/$populatelink | [base]/Questionnaire/[id]/$populatelink Documentation
a 0..1 Evaluate integer [base]/ServiceDefinition/[id]/$evaluate

An integer parameter

b 0..1 Data Requirements Patient [base]/ServiceDefinition/[id]/$data-requirements

A patient parameter

Out Parameters: [base]/StructureDefinition/$questionnaire | [base]/StructureDefinition/[id]/$questionnaire
Model Instance Transformation Name [base]/StructureMap/$transform | [base]/StructureMap/[id]/$transform Cardinality Type Value Set Expansion Binding Profile [base]/ValueSet/$expand | [base]/ValueSet/[id]/$expand Documentation
c 1..1 Value Set based Validation decimal [base]/ValueSet/$validate-code | [base]/ValueSet/[id]/$validate-code

A result parameter

In addition to specifying the operation parameters directly, an operation definition can also provide a profile:


 "inputProfile" : "http://example.org/StructureDefinition/op.x.in.profile"

This profile would describe a parameters resource with 2 parameters (using slicing), with the same details as the table above. The operation definition would still list the parameters directly to save applications consuming the definition (e.g. to produce an OpenAPI document icon ) from parsing and interpreting the profile.

5.4.3.4

Operations OperationDefinitions with kind = operation are executed by POSTing to a URL that is as defined by in the operation definition Operations Framework .

Named queries (OperationDefinitions with kind = query ) are executed by performing a search with the value of the search parameter "_query" "_query" set to the name provided in the definition. Named queries are a kind of search: both client and server must conform to all the requirements of search, including regarding the content of the result bundle. From a client's perspective, it's really just a kind of search, though it may have a completely separate processing pipeline. Named queries cannot be invoked using the $[operationname] mechanism.

If the named query is to be performed over the RESTful API, all the parameters must be simple search parameters, so that they can be represented directly in the URL without tricky encoding issues. Named queries always return a bundle containing have a set single output parameter named "result" of resources, so type Bundle.

The order of parameters doesn't matter; a _query parameter anywhere in the query means the entire query will be handled according to the named query OperationDefinition. Parameters may repeat if permitted by the OperationDefinition (or for unlisted common search parameters, as specified in this specification).

For named queries, all the out standard search parameters are automatically in scope. Specifically, all common search parameters (e.g. _id, _text, _count, _sort, etc.) as well as search parameters that pertain to the resources returned by the operation (e.g. name for Patient or Organization) are allowed. "In scope" doesn't mean all servers will support them. If a server wishes to declare which search parameters it supports for a given named query, it must explicitly list these in its OperationDefinition (which might be resources, not data types. a server-specific derived OperationDefinition).

5.4.3.5

There are two ways to pass resources to an operation: directly or by reference. The definition of an operation distinguishes between these two, since they have very different behaviors and consequences.

As an example, take the Questionnaire.$populate ValueSet.$expand operation . This operation takes a questionnaire ValueSet as a direct parameter. The type of the parameter is defined as 'Questionnaire'. 'ValueSet'. In a Parameters resource, it would be represented like this:

  <parameter>
    <name value="questionnaire"/>

    <name value="valueset"/>

    <resource>
      <Questionnaire>
        <!-- Questionnaire contents -->
      </Questionnaire>

      <ValueSet>
        <!-- ValueSet contents -->
      </ValueSet>

    </resource>
  </parameter> 

or, in JSON:

 "parameter": [

 "parameter": [

    {
      "name": "questionnaire",
      "resource": {
        "resourceType": "Questionnaire",
        // Questionnaire contents 

      "name": "valueset",
      "resource": {
        "resourceType": "ValueSet",
        // ValueSet contents 

      }
    }
  ]

Other parameters are passed by reference. For example, $populate the PlanDefinition.$apply operation takes a set more than one parameters of references to other resources type Reference - subject, encounter and organization. The expectation is that should be used to pre-populate the questionnaire. These are passed by reference, and server performing the type operation will resolve those references as part of the parameter is Reference(Any) - a reference to any kind of resource. operation execution. In a parameters resource, it the subject parameter would be represented like this:

  <parameter>
    <name value="content"/>

    <name value="subject"/>

    <valueReference>
      <reference value="Patient/123">
      </Questionnaire>

      <reference value="Patient/123"/>

    </valueReference>
  </parameter> 

or, in JSON:

 "parameter": [

 "parameter": [

    {
      "name": "questionnaire",
      "valueReference" : {
        "reference" : "Patient/123"

      "name": "subject",
      "valueReference" : {
        "reference" : "Patient/123"

      }
    }
  ]

Some operations can take either form; in that case, two distinct parameters must be defined, defined: one for a resource as a direct parameter, and one for a reference.

5.4.3.6 Renaming OperationDefinition.name It is possible for two different organizations to create different operation definitions with the same name or, perhaps more likely, to define equivalent operations that have the same name but incompatible approaches in their parameter lists. It is also possible, though unlikely, that a server will be required to support both of these operations. If this is the case, the server is able to do this by giving one of them a new name and referring to it by definition in the capability statement. To illustrate this, assume that two different organizations, "orgA" and "orgB", both define an operation called "dothis", and the definitions are incompatible. OrgA publishes its operation definition at http://orga.com/fhir/dothis.xml, and OrgB publishes its operation at http://fhir.orgb.com/meta/OperationDefinition/dothis. The server is able to implement both. Its capability statement will say: <CapabilityStatement xmlns="http://hl7.org/fhir"> <!-- snip --> <rest> <!-- snip --> <operation> <name value="dothis"/> <definition> <reference value="http://orga.com/fhir/dothis.xml"/> </definition> </operation> <operation> <name value="dothis2"/> <definition> <reference value="http://fhir.orgb.com/meta/OperationDefinition/dothis"/> </definition> </operation> <!-- snip --> </rest> <!-- snip --> </CapabilityStatement> If a general purpose cross server client is looking for the implementation of the http://fhir.orgb.com/meta/OperationDefinition/dothis operation and wants to be robust against this name clash problem, instead of simply executing the $dothis operation, it can look at the server's CapabilityStatement for the underlying definition URI and then execute the name given in the capability statement.

A client can determine the compatibility of the server by processing its capability statement and ensuring that the server implements the specific operation definitions and parameters required by the client. The client can then report a useful error to the user rather than allowing mystifying operational errors to occur.

However, there are fundamental limitations to this approach because there are many aspects of these operations that are not (or cannot be) defined in a formal fashion using OperationDefinition, for example, co-occurrence constraints among parameters.

In the same sense, a 3rd party tool can examine a server's CapabilityStatement and a client's definition of an acceptable server to determine whether those two system are interoperable or not.

5.4.3.8

Finally, it is possible to generate user interface forms automatically from the OperationDefinition. The documentation in the OperationDefinition.description and OperationDefinition.parameter.documentation should be sufficient to allow moderately technical users to guess at the correct content of the form. For this reason, highly technical documentation should go in OperationDefinition.comment .

It is anticipated that this would be used to automate development processes, rather than to generate end-user forms: such users will usually need more support than can be offered in a generated form.

Base Operations (All resource types)
Validate a resource [base]/$validate | [base]/[Resource]/$validate | [base]/[Resource]/[id]/$validate
Convert from one form to another [base]/$convert
Execute a graphql statement [base]/$graphql | [base]/[Resource]/[id]/$graphql
Fetch the current version of a canonical resource (based on canonical versioning) [base]/$current-canonical | [base]/[CanonicalResource]/$current-canonical
Operations Defined by Resource Types
Apply [base]/ActivityDefinition/$apply | [base]/ActivityDefinition/[id]/$apply
Data Requirements [base]/ActivityDefinition/[id]/$data-requirements
Discover what versions a server supports [base]/$versions
Submit a Claim resource for adjudication [base]/Claim/$submit
Concept Look Up & Decomposition [base]/CodeSystem/$lookup | [base]/CodeSystem/[id]/$lookup
Code System based Validation [base]/CodeSystem/$validate-code | [base]/CodeSystem/[id]/$validate-code
Subsumption Testing [base]/CodeSystem/$subsumes | [base]/CodeSystem/[id]/$subsumes
Generate a Document [base]/Composition/[id]/$document
Concept Translation [base]/ConceptMap/$translate | [base]/ConceptMap/[id]/$translate
Submit an EligibilityRequest resource for assessment [base]/CoverageEligibilityRequest/$submit
Fetch DocumentReference [base]/DocumentReference/$docref
Fetch a group of Patient Records [base]/Group/[id]/$everything
Purge Group Record [base]/Group/[id]/$purge
Data Requirements [base]/$data-requirements | [base]/Library/[id]/$data-requirements
Evaluate [base]/Measure/$evaluate
Evaluate Measure [base]/Measure/$evaluate-measure | [base]/Measure/[id]/$evaluate-measure
Data Requirements [base]/Measure/[id]/$data-requirements
Submit Data [base]/Measure/$submit-data
Collect Data [base]/Measure/$collect-data
Care Gaps [base]/Measure/$care-gaps
Fetch Product Record [base]/MedicinalProductDefinition/$everything | [base]/MedicinalProductDefinition/[id]/$everything
Process Message [base]/$process-message
Fetch Preferred id [base]/NamingSystem/$preferred-id
Translate id [base]/NamingSystem/$translate-id
Observation Statistics [base]/Observation/$stats
Last N Observations Query [base]/Observation/$lastn
Find patient matches using MPI based logic [base]/Patient/$match
Purge Patient Record [base]/Patient/[id]/$purge
Apply [base]/PlanDefinition/$apply | [base]/PlanDefinition/[id]/$apply
Data Requirements [base]/PlanDefinition/[id]/$data-requirements
Generate Snapshot [base]/StructureDefinition/$snapshot | [base]/StructureDefinition/[id]/$snapshot
Model Instance Transformation [base]/StructureMap/$transform | [base]/StructureMap/[id]/$transform
Search and retrieve prior events for a Subscription [base]/Subscription/[id]/$events
Get Current Subscription Status for One or More Subscriptions [base]/Subscription/$status | [base]/Subscription/[id]/$status
Value Set Expansion [base]/ValueSet/$expand | [base]/ValueSet/[id]/$expand
Value Set based Validation [base]/ValueSet/$validate-code | [base]/ValueSet/[id]/$validate-code

Search parameters for this resource. See also the full list of search parameters for this resource , and check the Extensions registry for search parameters on extensions related to this resource. The common parameters also apply. See Searching for more information about searching in REST, messaging, and services.

Name Type Description Expression In Common
base reference Marks this as a profile of the base OperationDefinition.base
( OperationDefinition )
code token Name used to invoke the operation OperationDefinition.code
context token A use context assigned to the operation definition (OperationDefinition.useContext.value.ofType(CodeableConcept)) 24 Resources
context-quantity quantity A quantity- or range-valued use context assigned to the operation definition (OperationDefinition.useContext.value.ofType(Quantity)) | (OperationDefinition.useContext.value.ofType(Range)) 24 Resources
context-type token A type of use context assigned to the operation definition OperationDefinition.useContext.code 24 Resources
context-type-quantity composite A use context type and quantity- or range-based value assigned to the operation definition On OperationDefinition.useContext:
  context-type: code
  context-quantity: value.ofType(Quantity) | value.ofType(Range)
24 Resources
context-type-value composite A use context type and value assigned to the operation definition On OperationDefinition.useContext:
  context-type: code
  context: value.ofType(CodeableConcept)
24 Resources
date date The operation definition publication date OperationDefinition.date 25 Resources
description string The description of the operation definition OperationDefinition.description 23 Resources
experimental token instance Whether the OperationDefinition is experimental OperationDefinition.experimental
identifier token External identifier for the search parameter OperationDefinition.identifier 28 Resources
input-profile reference Validation information for in parameters OperationDefinition.inputProfile
( StructureDefinition )
instance token Invoke on an instance? OperationDefinition.instance
jurisdiction token Intended jurisdiction for Jurisdiction of the authority that maintains the the operation definition OperationDefinition.jurisdiction 21 Resources
kind token operation | query OperationDefinition.kind
name string Computationally friendly name of the operation definition OperationDefinition.name 23 Resources
output-profile param-profile reference Profile on the type Validation information for out parameters OperationDefinition.parameter.profile OperationDefinition.outputProfile
( StructureDefinition )
publisher string Name of the publisher of the operation definition OperationDefinition.publisher 25 Resources
status token The current status of the operation definition OperationDefinition.status 28 Resources
system token Invoke at the system level? OperationDefinition.system
title string The human-friendly name of the operation definition OperationDefinition.title 23 Resources
type token Invole Invoke at the type level? OperationDefinition.type
url uri The uri that identifies the operation definition OperationDefinition.url 29 Resources
version token The business version of the operation definition OperationDefinition.version 26 Resources