This
page
is
part
of
the
FHIR
Specification
(v5.0.0:
R5
(v4.0.1:
R4
-
Mixed
Normative
and
STU
).
This
is
the
)
in
it's
permanent
home
(it
will
always
be
available
at
this
URL).
The
current
published
version.
version
which
supercedes
this
version
is
5.0.0
.
For
a
full
list
of
available
versions,
see
the
Directory
of
published
versions
.
Page
versions:
R5
R4B
R4
R3
R2
FHIR
Infrastructure
Work
Group
|
Maturity Level : N | Normative (from v4.0.0) | Security Category : Anonymous |
Compartments
:
|
|
|
This
page
has
been
approved
as
part
of
an
ANSI
standard.
See
the
Conformance
Package
for
further
details.
|
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:
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:
OperationDefinitions
can
be
used
to
define
a
custom
query
(kind
=
query,
discussed
below)
which
functions
as
a
special
kind
of
search.
This
resource
is
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.
5.5.3
References
to
this
Resource
Implements:
Definition
Resource
References:
referenced
by
CapabilityStatement
,
CarePlan
,
Communication
,
FamilyMemberHistory
,
itself
and
Procedure
Extension
References:
Complies
with
,
Shall
comply
with
,
Triggered
by
and
adheres
to
Structure
| Name | Flags | Card. | Type |
Description
&
Constraints
|
|---|---|---|---|---|
|
I 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 |
|
|
Σ
|
0..1 | uri |
Canonical
identifier
for
this
operation
definition,
represented
as
|
|
Σ
|
|
string |
Business
version
of
the
operation
definition
|
|
Σ
|
1..1 | string | Name for this operation definition (computer friendly) |
|
Σ
|
0..1 | string | Name for this operation definition (human friendly) |
|
?! Σ | 1..1 | code |
draft
|
active
|
retired
|
unknown
|
|
Σ
|
1..1 | code |
operation
|
query
|
|
Σ | 0..1 | boolean | For testing purposes, not real usage |
|
Σ | 0..1 | dateTime | Date last changed |
|
Σ
|
0..1 | string |
Name
of
the
|
|
Σ | 0..* | ContactDetail |
Contact
details
for
the
publisher
|
|
|
0..1 | markdown | Natural language description of the operation definition |
|
Σ TU | 0..* | UsageContext |
The
context
that
the
content
is
intended
to
support
|
|
Σ
|
0..* | CodeableConcept |
Intended
jurisdiction
for
operation
definition
(if
applicable)
|
|
|
0..1 | markdown | Why this operation definition is defined |
|
Σ | 0..1 | boolean | Whether content is changed by the operation |
|
Σ | 1..1 | code |
|
|
0..1 | markdown | Additional information about use | |
|
Σ | 0..1 | canonical ( OperationDefinition ) | Marks this as a profile of the base |
|
Σ | 0..* | code |
Types
this
operation
applies
to
|
|
Σ | 1..1 | boolean | Invoke at the system level? |
|
Σ | 1..1 | boolean | Invoke at the type level? |
|
Σ
|
1..1 | boolean | Invoke on an instance? |
|
0..1 | canonical ( StructureDefinition ) | Validation information for in parameters | |
|
0..1 | canonical ( StructureDefinition ) | Validation information for out parameters | |
|
|
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 |
|
|
1..1 | code | Name in Parameters.parameter.name or in URL |
|
|
1..1 | code |
in
|
out
|
|
|
|
|
|
|
|
|
string |
Maximum
Cardinality
(a
number
or
*)
|
|
|
0..1 |
|
|
|
|
|
code |
|
|
|
0..* | canonical ( StructureDefinition ) |
If
type
is
Reference
|
canonical,
allowed
|
|
|
0..1 | code |
number
|
date
|
string
|
token
|
reference
|
composite
|
quantity
|
uri
|
special
|
|
0..1 | BackboneElement | ValueSet details if this is coded | |
|
1..1 | code |
required
|
extensible
|
preferred
|
example
|
|
|
1..1 | canonical ( ValueSet ) | Source of value set | |
|
TU | 0..* | BackboneElement |
References
to
this
parameter
|
|
1..1 | string | Referencing parameter | |
|
0..1 | string | Element id of reference | |
|
|
0..* | see parameter |
Parts
of
a
nested
Parameter
|
|
0..* | BackboneElement |
Define
overloaded
variants
for
when
generating
code
|
|
|
0..* | string |
Name
of
parameter
to
include
in
overload
|
|
|
0..1 | string | Comments to go on overload | |
Documentation
for
this
format
|
||||
UML Diagram ( Legend )
XML Template
<OperationDefinition xmlns="http://hl7.org/fhir"><!-- from Resource: id, meta, implicitRules, and language --> <!-- from DomainResource: text, contained, extension, and modifierExtension -->
< <</identifier><url value="[uri]"/><!-- 0..1 Canonical identifier for this operation definition, represented as a URI (globally unique) --> <version value="[string]"/><!-- 0..1 Business version of the operation definition --><</versionAlgorithm[x]> <<name value="[string]"/><!--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]"/><!-- 1..1 operation | query --> <experimental value="[boolean]"/><!-- 0..1 For testing purposes, not real usage --> <date value="[dateTime]"/><!-- 0..1 Date last changed --> <publisher value="[string]"/><!-- 0..1 Name of the publisher (organization or individual) --> <contact><!-- 0..* ContactDetail Contact details for the publisher --></contact> <description value="[markdown]"/><!-- 0..1 Natural language description of the operation definition --><</useContext><useContext><!-- 0..* UsageContext The context that the content is intended to support --></useContext> <jurisdiction><!-- 0..* CodeableConcept Intended jurisdiction for operation definition (if applicable) --></jurisdiction> <purpose value="[markdown]"/><!-- 0..1 Why this operation definition is defined -->< <<affectsState value="[boolean]"/><!-- 0..1 Whether content is changed by the operation --><<code value="[code]"/><!-- 1..1 Name used to invoke the operation --> <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]"/><!-- 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> <!-- 0..* Parameters for the operation/query --> <name value="[code]"/><!-- 1..1 Name in Parameters.parameter.name or in URL --> <use value="[code]"/><!-- 1..1 in | out --> <min value="[integer]"/><!-- 1..1 Minimum Cardinality --> <max value="[string]"/><!-- 1..1 Maximum Cardinality (a number or *) -->< < < <</targetProfile> <<documentation value="[string]"/><!-- 0..1 Description of meaning/use --> <type value="[code]"/><!--0..1 What type this parameter has --> <targetProfile><!-- 0..* canonical(StructureDefinition) If type is Reference | canonical, allowed targets --></targetProfile> <searchType value="[code]"/><!--
0..1 number | date | string | token | reference | composite | quantity | uri | special --> <binding> <!-- 0..1 ValueSet details if this is coded --> <strength value="[code]"/><!-- 1..1 required | extensible | preferred | example --> <valueSet><!-- 1..1 canonical(ValueSet) Source of value set --></valueSet> </binding> <referencedFrom> <!-- 0..* References to this parameter --> <source value="[string]"/><!-- 1..1 Referencing parameter --> <sourceId value="[string]"/><!-- 0..1 Element id of reference --> </referencedFrom>
<</part><part><!--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
{
"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 a URI (globally unique)
"version" : "<string>", // Business version of the operation definition
">",
" },
"
"name" : "<string>", // C? 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>", // R! operation | query
"experimental" : <boolean>, // For testing purposes, not real usage
"date" : "<dateTime>", // Date last changed
"publisher" : "<string>", // Name of the publisher (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 }], // Intended jurisdiction for operation definition (if applicable)
"purpose" : "<markdown>", // Why this operation definition is defined
"
"
"affectsState" : <boolean>, // Whether content is changed by the operation
"
"code" : "<code>", // R! Name used to invoke the operation
"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>, // R! Invoke on an instance?
"inputProfile" : { canonical(StructureDefinition) }, // Validation information for in parameters
"outputProfile" : { canonical(StructureDefinition) }, // Validation information for out parameters
"parameter" : [{ // Parameters for the operation/query
"name" : "<code>", // R! Name in Parameters.parameter.name or in URL
"use" : "<code>", // R! in | out
"min" : <integer>, // R! Minimum Cardinality
"max" : "<string>", // R! Maximum Cardinality (a number or *)
"
"
"
"
"
"documentation" : "<string>", // Description of meaning/use
"type" : "<code>", // C? What type this parameter has
"targetProfile" : [{ canonical(StructureDefinition) }], // If type is Reference | canonical, allowed targets
"searchType" : "<code>", // C? number | date | string | token | reference | composite | quantity | uri | special
"binding" : { // ValueSet details if this is coded
"strength" : "<code>", // R! required | extensible | preferred | example
"
"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 }] // C? 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/> .[ a fhir:OperationDefinition; fhir:nodeRole fhir:treeRoot; # if this is the parser root # from Resource: .id, .meta, .implicitRules, and .language # from DomainResource: .text, .contained, .extension, and .modifierExtension
fhir: fhir: fhir: # . One of these 2 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: fhir: fhir: fhir: fhir: fhir: fhir: fhir: fhir: ] ; fhir: fhir: fhir: ] ... ) ; fhir: ] ... ) ; fhir: fhir: fhir: ] ... ) ;fhir:OperationDefinition.url [ uri ]; # 0..1 Canonical identifier for this operation definition, represented as a URI (globally unique) fhir:OperationDefinition.version [ string ]; # 0..1 Business version of the operation definition fhir:OperationDefinition.name [ string ]; # 1..1 Name for this operation definition (computer friendly) fhir:OperationDefinition.title [ string ]; # 0..1 Name for this operation definition (human friendly) fhir:OperationDefinition.status [ code ]; # 1..1 draft | active | retired | unknown fhir:OperationDefinition.kind [ code ]; # 1..1 operation | query fhir:OperationDefinition.experimental [ boolean ]; # 0..1 For testing purposes, not real usage fhir:OperationDefinition.date [ dateTime ]; # 0..1 Date last changed fhir:OperationDefinition.publisher [ string ]; # 0..1 Name of the publisher (organization or individual) fhir:OperationDefinition.contact [ ContactDetail ], ... ; # 0..* Contact details for the publisher fhir:OperationDefinition.description [ markdown ]; # 0..1 Natural language description of the operation definition fhir:OperationDefinition.useContext [ UsageContext ], ... ; # 0..* The context that the content is intended to support fhir:OperationDefinition.jurisdiction [ CodeableConcept ], ... ; # 0..* Intended jurisdiction for operation definition (if applicable) fhir:OperationDefinition.purpose [ markdown ]; # 0..1 Why this operation definition is defined fhir:OperationDefinition.affectsState [ boolean ]; # 0..1 Whether content is changed by the operation fhir:OperationDefinition.code [ code ]; # 1..1 Name used to invoke the operation fhir:OperationDefinition.comment [ markdown ]; # 0..1 Additional information about use fhir:OperationDefinition.base [ canonical(OperationDefinition) ]; # 0..1 Marks this as a profile of the base fhir:OperationDefinition.resource [ code ], ... ; # 0..* Types this operation applies to fhir:OperationDefinition.system [ boolean ]; # 1..1 Invoke at the system level? fhir:OperationDefinition.type [ boolean ]; # 1..1 Invoke at the type level? fhir:OperationDefinition.instance [ boolean ]; # 1..1 Invoke on an instance? fhir:OperationDefinition.inputProfile [ canonical(StructureDefinition) ]; # 0..1 Validation information for in parameters fhir:OperationDefinition.outputProfile [ canonical(StructureDefinition) ]; # 0..1 Validation information for out parameters fhir:OperationDefinition.parameter [ # 0..* Parameters for the operation/query fhir:OperationDefinition.parameter.name [ code ]; # 1..1 Name in Parameters.parameter.name or in URL fhir:OperationDefinition.parameter.use [ code ]; # 1..1 in | out fhir:OperationDefinition.parameter.min [ integer ]; # 1..1 Minimum Cardinality fhir:OperationDefinition.parameter.max [ string ]; # 1..1 Maximum Cardinality (a number or *) fhir:OperationDefinition.parameter.documentation [ string ]; # 0..1 Description of meaning/use fhir:OperationDefinition.parameter.type [ code ]; # 0..1 What type this parameter has fhir:OperationDefinition.parameter.targetProfile [ canonical(StructureDefinition) ], ... ; # 0..* If type is Reference | canonical, allowed targets fhir:OperationDefinition.parameter.searchType [ code ]; # 0..1 number | date | string | token | reference | composite | quantity | uri | special fhir:OperationDefinition.parameter.binding [ # 0..1 ValueSet details if this is coded fhir:OperationDefinition.parameter.binding.strength [ code ]; # 1..1 required | extensible | preferred | example fhir:OperationDefinition.parameter.binding.valueSet [ canonical(ValueSet) ]; # 1..1 Source of value set ]; fhir:OperationDefinition.parameter.referencedFrom [ # 0..* References to this parameter fhir:OperationDefinition.parameter.referencedFrom.source [ string ]; # 1..1 Referencing parameter fhir:OperationDefinition.parameter.referencedFrom.sourceId [ string ]; # 0..1 Element id of reference ], ...; fhir:OperationDefinition.parameter.part [ See OperationDefinition.parameter ], ... ; # 0..* Parts of a nested Parameter ], ...; fhir:OperationDefinition.overload [ # 0..* Define overloaded variants for when generating code fhir:OperationDefinition.overload.parameterName [ string ], ... ; # 0..* Name of parameter to include in overload fhir:OperationDefinition.overload.comment [ string ]; # 0..1 Comments to go on overload ], ...; ]
Changes
from
both
R4
and
R4B
since
R3
| OperationDefinition | |
|
|
|
|
|
|
|
|
|
|
|
|
| OperationDefinition.affectsState |
|
| OperationDefinition.comment |
|
| OperationDefinition.base |
|
| OperationDefinition.resource |
|
| OperationDefinition.inputProfile |
|
|
|
|
|
|
|
| OperationDefinition.parameter.type |
|
| OperationDefinition.parameter.targetProfile |
|
| OperationDefinition.parameter.searchType |
|
| OperationDefinition.parameter.binding.strength |
|
| OperationDefinition.parameter.binding.valueSet |
|
|
|
|
| OperationDefinition.parameter.referencedFrom.source |
|
| OperationDefinition.parameter.referencedFrom.sourceId |
|
See the Full Difference for further information
This
analysis
is
available
for
R4
as
XML
or
JSON
and
for
R4B
as
XML
or
JSON
.
See
R4
R3
<-->
R5
R4
Conversion
Maps
(status
=
See
Conversions
Summary
.)
37
tests
that
all
execute
ok.
All
tests
pass
round-trip
testing
and
34
r3
resources
are
invalid
(0
errors).
)
Structure
| Name | Flags | Card. | Type |
Description
&
Constraints
|
|---|---|---|---|---|
|
I 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 |
|
|
Σ
|
0..1 | uri |
Canonical
identifier
for
this
operation
definition,
represented
as
|
|
Σ
|
|
string |
Business
version
of
the
operation
definition
|
|
Σ
|
1..1 | string | Name for this operation definition (computer friendly) |
|
Σ
|
0..1 | string | Name for this operation definition (human friendly) |
|
?! Σ | 1..1 | code |
draft
|
active
|
retired
|
unknown
|
|
Σ
|
1..1 | code |
operation
|
query
|
|
Σ | 0..1 | boolean | For testing purposes, not real usage |
|
Σ | 0..1 | dateTime | Date last changed |
|
Σ
|
0..1 | string |
Name
of
the
|
|
Σ | 0..* | ContactDetail |
Contact
details
for
the
publisher
|
|
|
0..1 | markdown | Natural language description of the operation definition |
|
Σ TU | 0..* | UsageContext |
The
context
that
the
content
is
intended
to
support
|
|
Σ
|
0..* | CodeableConcept |
Intended
jurisdiction
for
operation
definition
(if
applicable)
|
|
|
0..1 | markdown |
Why
this
operation
definition
is
defined
|
|
Σ | 0..1 | boolean | Whether content is changed by the operation |
|
Σ | 1..1 | code |
|
|
0..1 | markdown | Additional information about use | |
|
Σ | 0..1 | canonical ( OperationDefinition ) | Marks this as a profile of the base |
|
Σ | 0..* | code |
Types
this
operation
applies
to
|
|
Σ | 1..1 | boolean | Invoke at the system level? |
|
Σ | 1..1 | boolean | Invoke at the type level? |
|
Σ
|
1..1 | boolean | Invoke on an instance? |
|
0..1 | canonical ( StructureDefinition ) | Validation information for in parameters | |
|
0..1 | canonical ( StructureDefinition ) | Validation information for out parameters | |
|
|
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 |
|
|
1..1 | code | Name in Parameters.parameter.name or in URL |
|
|
1..1 | code |
in
|
out
|
|
|
|
|
|
|
|
|
string |
Maximum
Cardinality
(a
number
or
*)
|
|
|
0..1 |
|
|
|
|
|
code |
|
|
|
0..* | canonical ( StructureDefinition ) |
If
type
is
Reference
|
canonical,
allowed
|
|
|
0..1 | code |
number
|
date
|
string
|
token
|
reference
|
composite
|
quantity
|
uri
|
special
|
|
0..1 | BackboneElement | ValueSet details if this is coded | |
|
1..1 | code |
required
|
extensible
|
preferred
|
example
|
|
|
1..1 | canonical ( ValueSet ) | Source of value set | |
|
TU | 0..* | BackboneElement |
References
to
this
parameter
|
|
1..1 | string | Referencing parameter | |
|
0..1 | string | Element id of reference | |
|
|
0..* | see parameter |
Parts
of
a
nested
Parameter
|
|
0..* | BackboneElement |
Define
overloaded
variants
for
when
generating
code
|
|
|
0..* | string |
Name
of
parameter
to
include
in
overload
|
|
|
0..1 | string | Comments to go on overload | |
Documentation
for
this
format
|
||||
XML Template
<OperationDefinition xmlns="http://hl7.org/fhir"><!-- from Resource: id, meta, implicitRules, and language --> <!-- from DomainResource: text, contained, extension, and modifierExtension -->
< <</identifier><url value="[uri]"/><!-- 0..1 Canonical identifier for this operation definition, represented as a URI (globally unique) --> <version value="[string]"/><!-- 0..1 Business version of the operation definition --><</versionAlgorithm[x]> <<name value="[string]"/><!--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]"/><!-- 1..1 operation | query --> <experimental value="[boolean]"/><!-- 0..1 For testing purposes, not real usage --> <date value="[dateTime]"/><!-- 0..1 Date last changed --> <publisher value="[string]"/><!-- 0..1 Name of the publisher (organization or individual) --> <contact><!-- 0..* ContactDetail Contact details for the publisher --></contact> <description value="[markdown]"/><!-- 0..1 Natural language description of the operation definition --><</useContext><useContext><!-- 0..* UsageContext The context that the content is intended to support --></useContext> <jurisdiction><!-- 0..* CodeableConcept Intended jurisdiction for operation definition (if applicable) --></jurisdiction> <purpose value="[markdown]"/><!-- 0..1 Why this operation definition is defined -->< <<affectsState value="[boolean]"/><!-- 0..1 Whether content is changed by the operation --><<code value="[code]"/><!-- 1..1 Name used to invoke the operation --> <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]"/><!-- 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> <!-- 0..* Parameters for the operation/query --> <name value="[code]"/><!-- 1..1 Name in Parameters.parameter.name or in URL --> <use value="[code]"/><!-- 1..1 in | out --> <min value="[integer]"/><!-- 1..1 Minimum Cardinality --> <max value="[string]"/><!-- 1..1 Maximum Cardinality (a number or *) -->< < < <</targetProfile> <<documentation value="[string]"/><!-- 0..1 Description of meaning/use --> <type value="[code]"/><!--0..1 What type this parameter has --> <targetProfile><!-- 0..* canonical(StructureDefinition) If type is Reference | canonical, allowed targets --></targetProfile> <searchType value="[code]"/><!--
0..1 number | date | string | token | reference | composite | quantity | uri | special --> <binding> <!-- 0..1 ValueSet details if this is coded --> <strength value="[code]"/><!-- 1..1 required | extensible | preferred | example --> <valueSet><!-- 1..1 canonical(ValueSet) Source of value set --></valueSet> </binding> <referencedFrom> <!-- 0..* References to this parameter --> <source value="[string]"/><!-- 1..1 Referencing parameter --> <sourceId value="[string]"/><!-- 0..1 Element id of reference --> </referencedFrom>
<</part><part><!--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
{
"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 a URI (globally unique)
"version" : "<string>", // Business version of the operation definition
">",
" },
"
"name" : "<string>", // C? 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>", // R! operation | query
"experimental" : <boolean>, // For testing purposes, not real usage
"date" : "<dateTime>", // Date last changed
"publisher" : "<string>", // Name of the publisher (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 }], // Intended jurisdiction for operation definition (if applicable)
"purpose" : "<markdown>", // Why this operation definition is defined
"
"
"affectsState" : <boolean>, // Whether content is changed by the operation
"
"code" : "<code>", // R! Name used to invoke the operation
"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>, // R! Invoke on an instance?
"inputProfile" : { canonical(StructureDefinition) }, // Validation information for in parameters
"outputProfile" : { canonical(StructureDefinition) }, // Validation information for out parameters
"parameter" : [{ // Parameters for the operation/query
"name" : "<code>", // R! Name in Parameters.parameter.name or in URL
"use" : "<code>", // R! in | out
"min" : <integer>, // R! Minimum Cardinality
"max" : "<string>", // R! Maximum Cardinality (a number or *)
"
"
"
"
"
"documentation" : "<string>", // Description of meaning/use
"type" : "<code>", // C? What type this parameter has
"targetProfile" : [{ canonical(StructureDefinition) }], // If type is Reference | canonical, allowed targets
"searchType" : "<code>", // C? number | date | string | token | reference | composite | quantity | uri | special
"binding" : { // ValueSet details if this is coded
"strength" : "<code>", // R! required | extensible | preferred | example
"
"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 }] // C? 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/> .[ a fhir:OperationDefinition; fhir:nodeRole fhir:treeRoot; # if this is the parser root # from Resource: .id, .meta, .implicitRules, and .language # from DomainResource: .text, .contained, .extension, and .modifierExtension
fhir: fhir: fhir: # . One of these 2 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: fhir: fhir: fhir: fhir: fhir: fhir: fhir: fhir: ] ; fhir: fhir: fhir: ] ... ) ; fhir: ] ... ) ; fhir: fhir: fhir: ] ... ) ;fhir:OperationDefinition.url [ uri ]; # 0..1 Canonical identifier for this operation definition, represented as a URI (globally unique) fhir:OperationDefinition.version [ string ]; # 0..1 Business version of the operation definition fhir:OperationDefinition.name [ string ]; # 1..1 Name for this operation definition (computer friendly) fhir:OperationDefinition.title [ string ]; # 0..1 Name for this operation definition (human friendly) fhir:OperationDefinition.status [ code ]; # 1..1 draft | active | retired | unknown fhir:OperationDefinition.kind [ code ]; # 1..1 operation | query fhir:OperationDefinition.experimental [ boolean ]; # 0..1 For testing purposes, not real usage fhir:OperationDefinition.date [ dateTime ]; # 0..1 Date last changed fhir:OperationDefinition.publisher [ string ]; # 0..1 Name of the publisher (organization or individual) fhir:OperationDefinition.contact [ ContactDetail ], ... ; # 0..* Contact details for the publisher fhir:OperationDefinition.description [ markdown ]; # 0..1 Natural language description of the operation definition fhir:OperationDefinition.useContext [ UsageContext ], ... ; # 0..* The context that the content is intended to support fhir:OperationDefinition.jurisdiction [ CodeableConcept ], ... ; # 0..* Intended jurisdiction for operation definition (if applicable) fhir:OperationDefinition.purpose [ markdown ]; # 0..1 Why this operation definition is defined fhir:OperationDefinition.affectsState [ boolean ]; # 0..1 Whether content is changed by the operation fhir:OperationDefinition.code [ code ]; # 1..1 Name used to invoke the operation fhir:OperationDefinition.comment [ markdown ]; # 0..1 Additional information about use fhir:OperationDefinition.base [ canonical(OperationDefinition) ]; # 0..1 Marks this as a profile of the base fhir:OperationDefinition.resource [ code ], ... ; # 0..* Types this operation applies to fhir:OperationDefinition.system [ boolean ]; # 1..1 Invoke at the system level? fhir:OperationDefinition.type [ boolean ]; # 1..1 Invoke at the type level? fhir:OperationDefinition.instance [ boolean ]; # 1..1 Invoke on an instance? fhir:OperationDefinition.inputProfile [ canonical(StructureDefinition) ]; # 0..1 Validation information for in parameters fhir:OperationDefinition.outputProfile [ canonical(StructureDefinition) ]; # 0..1 Validation information for out parameters fhir:OperationDefinition.parameter [ # 0..* Parameters for the operation/query fhir:OperationDefinition.parameter.name [ code ]; # 1..1 Name in Parameters.parameter.name or in URL fhir:OperationDefinition.parameter.use [ code ]; # 1..1 in | out fhir:OperationDefinition.parameter.min [ integer ]; # 1..1 Minimum Cardinality fhir:OperationDefinition.parameter.max [ string ]; # 1..1 Maximum Cardinality (a number or *) fhir:OperationDefinition.parameter.documentation [ string ]; # 0..1 Description of meaning/use fhir:OperationDefinition.parameter.type [ code ]; # 0..1 What type this parameter has fhir:OperationDefinition.parameter.targetProfile [ canonical(StructureDefinition) ], ... ; # 0..* If type is Reference | canonical, allowed targets fhir:OperationDefinition.parameter.searchType [ code ]; # 0..1 number | date | string | token | reference | composite | quantity | uri | special fhir:OperationDefinition.parameter.binding [ # 0..1 ValueSet details if this is coded fhir:OperationDefinition.parameter.binding.strength [ code ]; # 1..1 required | extensible | preferred | example fhir:OperationDefinition.parameter.binding.valueSet [ canonical(ValueSet) ]; # 1..1 Source of value set ]; fhir:OperationDefinition.parameter.referencedFrom [ # 0..* References to this parameter fhir:OperationDefinition.parameter.referencedFrom.source [ string ]; # 1..1 Referencing parameter fhir:OperationDefinition.parameter.referencedFrom.sourceId [ string ]; # 0..1 Element id of reference ], ...; fhir:OperationDefinition.parameter.part [ See OperationDefinition.parameter ], ... ; # 0..* Parts of a nested Parameter ], ...; fhir:OperationDefinition.overload [ # 0..* Define overloaded variants for when generating code fhir:OperationDefinition.overload.parameterName [ string ], ... ; # 0..* Name of parameter to include in overload fhir:OperationDefinition.overload.comment [ string ]; # 0..1 Comments to go on overload ], ...; ]
Changes
from
both
R4
and
R4B
since
Release
3
| OperationDefinition | |
|
|
|
|
|
|
|
|
|
|
|
|
| OperationDefinition.affectsState |
|
| OperationDefinition.comment |
|
| OperationDefinition.base |
|
| OperationDefinition.resource |
|
| OperationDefinition.inputProfile |
|
|
|
|
|
|
|
| OperationDefinition.parameter.type |
|
| OperationDefinition.parameter.targetProfile |
|
| OperationDefinition.parameter.searchType |
|
| OperationDefinition.parameter.binding.strength |
|
| OperationDefinition.parameter.binding.valueSet |
|
|
|
|
| OperationDefinition.parameter.referencedFrom.source |
|
| OperationDefinition.parameter.referencedFrom.sourceId |
|
See the Full Difference for further information
This
analysis
is
available
for
R4
as
XML
or
JSON
and
for
R4B
as
XML
or
JSON
.
See
R4
R3
<-->
R5
R4
Conversion
Maps
(status
=
See
Conversions
Summary
.)
37
tests
that
all
execute
ok.
All
tests
pass
round-trip
testing
and
34
r3
resources
are
invalid
(0
errors).
)
Additional
See
the
Profiles
&
Extensions
and
the
alternate
definitions:
Master
Definition
XML
+
JSON
,
XML
Schema
/
Schematron
+
JSON
Schema
,
ShEx
(for
Turtle
)
,
+
see
the
spreadsheet
version
extensions
&
the
dependency
analysis
| Path |
|
Type |
|
|---|---|---|---|
| OperationDefinition.status |
|
Required |
|
| OperationDefinition.kind |
|
Required |
|
| OperationDefinition.jurisdiction |
|
Extensible |
|
| OperationDefinition.resource | One of the resource types defined as part of this version of FHIR. | Required |
|
| OperationDefinition.parameter.use |
|
Required |
|
| OperationDefinition.parameter.type |
|
Required |
|
| OperationDefinition.parameter.searchType |
|
Required |
|
| OperationDefinition.parameter.binding.strength |
|
Required |
|
|
|
Level | Location | Description | Expression |
|
|
Warning | (base) | Name should be usable as an identifier for the module by machine processing applications such as code generation |
|
|
|
Rule | OperationDefinition.parameter | Either a type must be provided, or parts | type.exists() or part.exists() |
|
|
Rule | OperationDefinition.parameter | A search type can only be specified for parameters of type string | searchType.exists() implies type = 'string' |
|
|
Rule | OperationDefinition.parameter |
A
targetProfile
can
only
be
specified
for
parameters
of
type
|
targetProfile.exists()
implies
(type
=
'Reference'
or
type
=
|
| Base Operations (All resource types) | |
|
Validate
a
resource
|
[base]/[Resource]/$validate | [base]/[Resource]/[id]/$validate |
|
|
|
|
| [base]/[Resource]/[id]/$meta-add |
|
|
[base]/[Resource]/[id]/$meta-delete |
|
Convert
from
one
form
to
another
|
[base]/$convert |
|
|
|
|
|
[base]/[Resource]/[id]/$graph |
| Operations Defined by Resource Types | |
| Apply | [base]/ActivityDefinition/$apply | [base]/ActivityDefinition/[id]/$apply |
|
Data
Requirements
|
[base]/ActivityDefinition/[id]/$data-requirements |
|
|
|
|
|
[base]/CapabilityStatement/$implements | [base]/CapabilityStatement/[id]/$implements |
| Test if a server implements a client's required operations | [base]/CapabilityStatement/$conforms |
|
Discover
what
versions
a
server
supports
|
[base]/$versions |
|
|
|
|
|
[base]/Claim/$submit |
| Concept Look Up & Decomposition | [base]/CodeSystem/$lookup |
| Code System based Validation | [base]/CodeSystem/$validate-code | [base]/CodeSystem/[id]/$validate-code |
|
Subsumption
Testing
|
[base]/CodeSystem/$subsumes | [base]/CodeSystem/[id]/$subsumes |
|
Finding
codes
based
on
supplied
properties
|
[base]/CodeSystem/$find-matches | [base]/CodeSystem/[id]/$find-matches |
|
Generate
a
| [base]/Composition/$document | [base]/Composition/[id]/$document |
| Concept Translation | [base]/ConceptMap/$translate | [base]/ConceptMap/[id]/$translate |
| Closure Table Maintenance | [base]/$closure |
|
Submit
an
| [base]/CoverageEligibilityRequest/$submit |
| Fetch Encounter Record | [base]/Encounter/[id]/$everything |
|
Fetch
a
| [base]/Group/[id]/$everything |
| Data Requirements | [base]/$data-requirements | [base]/Library/[id]/$data-requirements |
|
Find
a
| [base]/List/$find |
| Evaluate Measure | [base]/Measure/$evaluate-measure | [base]/Measure/[id]/$evaluate-measure |
|
Data
Requirements
|
[base]/Measure/[id]/$data-requirements |
|
Submit
Data
|
[base]/Measure/$submit-data | [base]/Measure/[id]/$submit-data |
|
Collect
Data
|
[base]/Measure/$collect-data | [base]/Measure/[id]/$collect-data |
|
Care
Gaps
|
[base]/Measure/$care-gaps |
| Fetch Product Record | [base]/MedicinalProduct/$everything | [base]/MedicinalProduct/[id]/$everything |
| Process Message | [base]/$process-message |
|
Fetch
Preferred
it
|
[base]/NamingSystem/$preferred-id |
| Observation Statistics | [base]/Observation/$stats |
| Last N Observations Query | [base]/Observation/$lastn |
| Find patient matches using MPI based logic | [base]/Patient/$match |
| Fetch Patient Record | [base]/Patient/$everything | [base]/Patient/[id]/$everything |
| Apply | [base]/PlanDefinition/$apply | [base]/PlanDefinition/[id]/$apply |
| Data Requirements | [base]/PlanDefinition/[id]/$data-requirements |
| Build Questionnaire | [base]/StructureDefinition/$questionnaire | [base]/StructureDefinition/[id]/$questionnaire |
| Generate Snapshot | [base]/StructureDefinition/$snapshot | [base]/StructureDefinition/[id]/$snapshot |
| Model Instance Transformation | [base]/StructureMap/$transform | [base]/StructureMap/[id]/$transform |
| Value Set Expansion | [base]/ValueSet/$expand | [base]/ValueSet/[id]/$expand |
| Value Set based Validation | [base]/ValueSet/$validate-code | [base]/ValueSet/[id]/$validate-code |
There are 2 ways to describe the input and output parameters for an operation:
OperationDefinition.parameter
to
describe
the
parameters
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:
| In Parameters: | |||||
| Name | Cardinality | Type | Binding | Profile | Documentation |
| a | 0..1 | integer |
An integer parameter |
||
| b | 0..1 | Patient |
A patient parameter |
||
| Out Parameters: | |||||
| Name | Cardinality | Type | Binding | Profile | Documentation |
| c | 1..1 | decimal |
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
)
from
parsing
and
interpreting
the
profile.
OperationDefinitions
with
kind
=
operation
are
executed
as
defined
in
the
Operations
Framework
.
Named
queries
(OperationDefinitions
with
kind
=
query
)
are
executed
by
performing
a
search
with
the
value
of
the
search
parameter
"_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
have
return
a
single
output
parameter
named
"result"
of
type
Bundle.
The
order
of
parameters
doesn't
matter;
bundle
containing
a
_query
parameter
anywhere
in
the
query
means
set
of
resources,
so
all
the
entire
query
will
out
parameters
must
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).
resources,
not
data
types.
For
named
queries,
all
the
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
scope
(though
servers
will
support
them.
If
a
server
wishes
do
not
need
to
declare
which
search
parameters
it
supports
for
a
given
named
query,
it
must
support
them
unless
explicitly
list
these
in
its
OperationDefinition
(which
might
be
a
server-specific
derived
OperationDefinition).
documented).
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 ValueSet.$expand operation . This operation takes a valueset as a direct parameter. The type of the parameter is defined as 'ValueSet'. In a Parameters resource, it would be represented like this:
<parameter>
<name value="valueset"/>
<resource>
<ValueSet>
<!-- ValueSet contents -->
<!-- Valueset contents -->
</ValueSet>
</resource>
</parameter>
or, in JSON:
"parameter": [
{
"name": "valueset",
"resource": {
"resourceType": "ValueSet",
// ValueSet contents
// Valueset contents
}
}
]
Other
parameters
are
passed
by
reference.
For
example,
the
ChargeItemDefinition.$apply
operation
takes
two
parameters
of
type
Reference
-
one
to
the
chargeItem
and
the
other
to
the
account.
The
type
of
the
parameters
is
Reference(Charge)
and
Reference(Account)
,
respectively.
The
expectation
is
that
the
server
performing
the
operation
will
resolve
those
references
as
part
of
the
operation
execution.
In
a
parameters
resource,
the
chargeItem
parameter
would
be
represented
like
this:
<parameter>
<name value="chargeItem"/>
<valueReference>
<reference value="ChargeItem/123"/>
</valueReference>
</parameter>
or, in JSON:
"parameter": [
{
"name": "chargeItem",
"valueReference" : {
"reference" : "ChargeItem/123"
}
}
]
Some operations can take either form; in that case, two distinct parameters must be defined: one for a resource as a direct parameter, and one for a reference.
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.
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.
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 TU | reference | Marks this as a profile of the base |
OperationDefinition.base
( OperationDefinition ) |
|
| code TU | token | Name used to invoke the operation | OperationDefinition.code | |
| context TU | token | A use context assigned to the operation definition |
|
|
| context-quantity TU | quantity | A quantity- or range-valued use context assigned to the operation definition |
|
|
| context-type TU | token | A type of use context assigned to the operation definition | OperationDefinition.useContext.code |
|
| context-type-quantity TU | composite | A use context type and quantity- or range-based value assigned to the operation definition |
On
OperationDefinition.useContext:
context-type: code context-quantity: |
|
| context-type-value TU | composite | A use context type and value assigned to the operation definition |
On
OperationDefinition.useContext:
context-type: code context: |
|
| date TU | date | The operation definition publication date | OperationDefinition.date |
|
| description TU | string | The description of the operation definition | OperationDefinition.description |
|
| input-profile TU | reference | Validation information for in parameters |
OperationDefinition.inputProfile
( StructureDefinition ) |
|
| instance TU | token | Invoke on an instance? | OperationDefinition.instance | |
| jurisdiction TU | token | Intended jurisdiction for the operation definition | OperationDefinition.jurisdiction |
|
| kind TU | token | operation | query | OperationDefinition.kind | |
| name TU | string | Computationally friendly name of the operation definition | OperationDefinition.name |
|
| output-profile TU | reference | Validation information for out parameters |
OperationDefinition.outputProfile
( StructureDefinition ) |
|
| publisher TU | string | Name of the publisher of the operation definition | OperationDefinition.publisher |
|
| status TU | token | The current status of the operation definition | OperationDefinition.status |
|
| system TU | token | Invoke at the system level? | OperationDefinition.system | |
| title TU | string | The human-friendly name of the operation definition | OperationDefinition.title |
|
| type TU | token | Invoke at the type level? | OperationDefinition.type | |
| url TU | uri | The uri that identifies the operation definition | OperationDefinition.url |
|
| version TU | token | The business version of the operation definition | OperationDefinition.version |
|