OperationDefinition
A formal computable definition of an operation (on the RESTful interface) or a named query (using the search interaction).
Columns
Header row
# |
path |
type |
required |
description |
0 |
resourceType |
string |
* |
Resource type identifier. Must be string "OperationDefinition" |
1 |
|
integer |
* |
Number of subrows |
2 |
id |
string |
* |
Logical id of this artifact |
3 |
url |
uri |
|
Canonical identifier for this operation definition, represented as a URI (globally unique) |
4 |
version |
string |
|
Business version of the operation definition |
5 |
name |
string |
|
Name for this operation definition (computer friendly) |
6 |
title |
string |
|
Name for this operation definition (human friendly) |
7 |
status |
code |
|
draft | active | retired | unknown |
8 |
kind |
code |
|
operation | query |
9 |
experimental |
boolean |
|
For testing purposes, not real usage |
10 |
date |
dateTime |
|
Date last changed |
11 |
publisher |
string |
|
Name of the publisher (organization or individual) |
12 |
description |
markdown |
|
Natural language description of the operation definition |
13 |
purpose |
markdown |
|
Why this operation definition is defined |
14 |
affectsState |
boolean |
|
Whether content is changed by the operation |
15 |
code |
code |
|
Name used to invoke the operation |
16 |
comment |
markdown |
|
Additional information about use |
17 |
base |
canonical |
|
Marks this as a profile of the base |
18 |
system |
boolean |
|
Invoke at the system level? |
19 |
type |
boolean |
|
Invoke at the type level? |
20 |
instance |
boolean |
|
Invoke on an instance? |
21 |
inputProfile |
canonical |
|
Validation information for in parameters |
22 |
outputProfile |
canonical |
|
Validation information for out parameters |
Row contact
# |
path |
type |
required |
description |
0 |
|
string |
* |
Subrow identifier. Must be string "contact" |
|
contact |
ContactDetail |
|
Contact details for the publisher |
1 |
contact.name |
string |
|
Name of an individual to contact |
|
contact.telecom |
ContactPoint |
|
Contact details for individual or organization |
2 |
contact.telecom.system |
code |
|
phone | fax | email | pager | url | sms | other |
3 |
contact.telecom.value |
string |
|
The actual contact point details |
4 |
contact.telecom.use |
code |
|
home | work | temp | old | mobile - purpose of this contact point |
5 |
contact.telecom.rank |
positiveInt |
|
Specify preferred order of use (1 = highest) |
|
contact.telecom.period |
Period |
|
Time period when the contact point was/is in use |
6 |
contact.telecom.period.start |
dateTime |
|
Starting time with inclusive boundary |
7 |
contact.telecom.period.end |
dateTime |
|
End time with inclusive boundary, if not ongoing |
Row useContext
# |
path |
type |
required |
description |
0 |
|
string |
* |
Subrow identifier. Must be string "useContext" |
|
useContext |
UsageContext |
|
The context that the content is intended to support |
|
useContext.code |
Coding |
|
Type of context being specified |
1 |
useContext.code.system |
uri |
|
Identity of the terminology system |
2 |
useContext.code.version |
string |
|
Version of the system - if relevant |
3 |
useContext.code.code |
code |
|
Symbol in syntax defined by the system |
4 |
useContext.code.display |
string |
|
Representation defined by the system |
5 |
useContext.code.userSelected |
boolean |
|
If this coding was chosen directly by the user |
|
useContext.value[x] |
|
|
Value that defines the context |
|
useContext.valueCodeableConcept |
CodeableConcept |
|
|
|
useContext.valueCodeableConcept.coding |
Coding |
|
Code defined by a terminology system |
6 |
useContext.valueCodeableConcept.coding.system |
uri |
|
Identity of the terminology system |
7 |
useContext.valueCodeableConcept.coding.version |
string |
|
Version of the system - if relevant |
8 |
useContext.valueCodeableConcept.coding.code |
code |
|
Symbol in syntax defined by the system |
9 |
useContext.valueCodeableConcept.coding.display |
string |
|
Representation defined by the system |
10 |
useContext.valueCodeableConcept.coding.userSelected |
boolean |
|
If this coding was chosen directly by the user |
11 |
useContext.valueCodeableConcept.text |
string |
|
Plain text representation of the concept |
|
useContext.valueQuantity |
Quantity |
|
|
12 |
useContext.valueQuantity.value |
decimal |
|
Numerical value (with implicit precision) |
13 |
useContext.valueQuantity.comparator |
code |
|
< | <= | >= | > - how to understand the value |
14 |
useContext.valueQuantity.unit |
string |
|
Unit representation |
15 |
useContext.valueQuantity.system |
uri |
|
System that defines coded unit form |
16 |
useContext.valueQuantity.code |
code |
|
Coded form of the unit |
|
useContext.valueRange |
Range |
|
|
|
useContext.valueRange.low |
Quantity |
|
Low limit |
17 |
useContext.valueRange.low.value |
decimal |
|
Numerical value (with implicit precision) |
18 |
useContext.valueRange.low.unit |
string |
|
Unit representation |
19 |
useContext.valueRange.low.system |
uri |
|
System that defines coded unit form |
20 |
useContext.valueRange.low.code |
code |
|
Coded form of the unit |
|
useContext.valueRange.high |
Quantity |
|
High limit |
21 |
useContext.valueRange.high.value |
decimal |
|
Numerical value (with implicit precision) |
22 |
useContext.valueRange.high.unit |
string |
|
Unit representation |
23 |
useContext.valueRange.high.system |
uri |
|
System that defines coded unit form |
24 |
useContext.valueRange.high.code |
code |
|
Coded form of the unit |
|
useContext.valueReference |
Reference |
|
|
25 |
useContext.valueReference.reference |
string |
|
Literal reference, Relative, internal or absolute URL |
26 |
useContext.valueReference.type |
uri |
|
Type the reference refers to (e.g. "Patient") |
|
useContext.valueReference.identifier |
Identifier |
|
Logical reference, when literal reference is not known |
27 |
useContext.valueReference.identifier.use |
code |
|
usual | official | temp | secondary | old (If known) |
|
useContext.valueReference.identifier.type |
CodeableConcept |
|
Description of identifier |
|
useContext.valueReference.identifier.type.coding |
Coding |
|
Code defined by a terminology system |
28 |
useContext.valueReference.identifier.type.coding.system |
uri |
|
Identity of the terminology system |
29 |
useContext.valueReference.identifier.type.coding.version |
string |
|
Version of the system - if relevant |
30 |
useContext.valueReference.identifier.type.coding.code |
code |
|
Symbol in syntax defined by the system |
31 |
useContext.valueReference.identifier.type.coding.display |
string |
|
Representation defined by the system |
32 |
useContext.valueReference.identifier.type.coding.userSelected |
boolean |
|
If this coding was chosen directly by the user |
33 |
useContext.valueReference.identifier.type.text |
string |
|
Plain text representation of the concept |
34 |
useContext.valueReference.identifier.system |
uri |
|
The namespace for the identifier value |
35 |
useContext.valueReference.identifier.value |
string |
|
The value that is unique |
|
useContext.valueReference.identifier.period |
Period |
|
Time period when id is/was valid for use |
36 |
useContext.valueReference.identifier.period.start |
dateTime |
|
Starting time with inclusive boundary |
37 |
useContext.valueReference.identifier.period.end |
dateTime |
|
End time with inclusive boundary, if not ongoing |
38 |
useContext.valueReference.display |
string |
|
Text alternative for the resource |
Row jurisdiction
# |
path |
type |
required |
description |
0 |
|
string |
* |
Subrow identifier. Must be string "jurisdiction" |
|
jurisdiction |
CodeableConcept |
|
Intended jurisdiction for operation definition (if applicable) |
|
jurisdiction.coding |
Coding |
|
Code defined by a terminology system |
1 |
jurisdiction.coding.system |
uri |
|
Identity of the terminology system |
2 |
jurisdiction.coding.version |
string |
|
Version of the system - if relevant |
3 |
jurisdiction.coding.code |
code |
|
Symbol in syntax defined by the system |
4 |
jurisdiction.coding.display |
string |
|
Representation defined by the system |
5 |
jurisdiction.coding.userSelected |
boolean |
|
If this coding was chosen directly by the user |
6 |
jurisdiction.text |
string |
|
Plain text representation of the concept |
Row resource
# |
path |
type |
required |
description |
0 |
|
string |
* |
Subrow identifier. Must be string "resource" |
1 |
resource |
code |
|
Types this operation applies to |
Row parameter
# |
path |
type |
required |
description |
0 |
|
string |
* |
Subrow identifier. Must be string "parameter" |
|
parameter |
|
|
Parameters for the operation/query |
1 |
parameter.name |
code |
|
Name in Parameters.parameter.name or in URL |
2 |
parameter.use |
code |
|
in | out |
3 |
parameter.min |
integer |
|
Minimum Cardinality |
4 |
parameter.max |
string |
|
Maximum Cardinality (a number or *) |
5 |
parameter.documentation |
string |
|
Description of meaning/use |
6 |
parameter.type |
code |
|
What type this parameter has |
7 |
parameter.targetProfile |
canonical |
|
If type is Reference | canonical, allowed targets |
8 |
parameter.searchType |
code |
|
number | date | string | token | reference | composite | quantity | uri | special |
|
parameter.binding |
|
|
ValueSet details if this is coded |
9 |
parameter.binding.strength |
code |
|
required | extensible | preferred | example |
10 |
parameter.binding.valueSet |
canonical |
|
Source of value set |
|
parameter.referencedFrom |
|
|
References to this parameter |
11 |
parameter.referencedFrom.source |
string |
|
Referencing parameter |
12 |
parameter.referencedFrom.sourceId |
string |
|
Element id of reference |
Row overload
# |
path |
type |
required |
description |
0 |
|
string |
* |
Subrow identifier. Must be string "overload" |
|
overload |
|
|
Define overloaded variants for when generating code |
1 |
overload.parameterName |
string |
|
Name of parameter to include in overload |
2 |
overload.comment |
string |
|
Comments to go on overload |
Examples
Example #1
Input CSV
OperationDefinition,14,"CodeSystem-lookup","http://hl7.org/fhir/OperationDefinition/CodeSystem-lookup","4.0.1","Concept Look Up & Decomposition",,"draft","operation",,"2019-11-01T09:29:23+11:00","HL7 (FHIR Project)","Given a code/system, or a Coding, get additional details about the concept, including definition, status, designations, and properties. One of the products of this operation is a full decomposition of a code from a structured terminology.
When invoking this operation, a client SHALL provide both a system and a code, either using the system+code parameters, or in the coding parameter. Other parameters are optional",,,"lookup","Note that the $lookup operation is more than just a code system search - the server finds the concept, and gathers the return information from the underlying code system definitions.",,false,true,false,,
contact,,"url","http://hl7.org/fhir",,,,
resource,"CodeSystem"
parameter,"code","in",0,"1","The code that is to be located. If a code is provided, a system must be provided","code",,,,,,
parameter,"system","in",0,"1","The system for the code that is to be located","uri",,,,,,
parameter,"version","in",0,"1","The version of the system, if one was provided in the source data","string",,,,,,
parameter,"coding","in",0,"1","A coding to look up","Coding",,,,,,
parameter,"date","in",0,"1","The date for which the information should be returned. Normally, this is the current conditions (which is the default value) but under some circumstances, systems need to acccess this information as it would have been in the past. A typical example of this would be where code selection is constrained to the set of codes that were available when the patient was treated, not when the record is being edited. Note that which date is appropriate is a matter for implementation policy.","dateTime",,,,,,
parameter,"displayLanguage","in",0,"1","The requested language for display (see $expand.displayLanguage)","code",,,,,,
parameter,"property","in",0,"*","A property that the client wishes to be returned in the output. If no properties are specified, the server chooses what to return. The following properties are defined for all code systems: url, name, version (code system info) and code information: display, definition, designation, parent and child, and for designations, lang.X where X is a designation language code. Some of the properties are returned explicit in named parameters (when the names match), and the rest (except for lang.X) in the property parameter group","code",,,,,,
parameter,"name","out",1,"1","A display name for the code system","string",,,,,,
parameter,"version","out",0,"1","The version that these details are based on","string",,,,,,
parameter,"display","out",1,"1","The preferred display for this concept","string",,,,,,
parameter,"designation","out",0,"*","Additional representations for this concept",,,,,,,
parameter,"property","out",0,"*","One or more properties that contain additional information about the code, including status. For complex terminologies (e.g. SNOMED CT, LOINC, medications), these properties serve to decompose the code",,,,,,,
Resulting resource
{
"resourceType": "OperationDefinition",
"id": "CodeSystem-lookup",
"url": "http://hl7.org/fhir/OperationDefinition/CodeSystem-lookup",
"version": "4.0.1",
"name": "Concept Look Up & Decomposition",
"status": "draft",
"kind": "operation",
"date": "2019-11-01T09:29:23+11:00",
"publisher": "HL7 (FHIR Project)",
"contact": [
{
"telecom": [
{
"system": "url",
"value": "http://hl7.org/fhir"
},
{
"system": "email",
"value": "fhir@lists.hl7.org"
}
]
}
],
"description": "Given a code/system, or a Coding, get additional details about the concept, including definition, status, designations, and properties. One of the products of this operation is a full decomposition of a code from a structured terminology.\n\nWhen invoking this operation, a client SHALL provide both a system and a code, either using the system+code parameters, or in the coding parameter. Other parameters are optional",
"code": "lookup",
"comment": "Note that the $lookup operation is more than just a code system search - the server finds the concept, and gathers the return information from the underlying code system definitions.",
"resource": [
"CodeSystem"
],
"system": false,
"type": true,
"instance": false,
"parameter": [
{
"name": "code",
"use": "in",
"min": 0,
"max": "1",
"documentation": "The code that is to be located. If a code is provided, a system must be provided",
"type": "code"
},
{
"name": "system",
"use": "in",
"min": 0,
"max": "1",
"documentation": "The system for the code that is to be located",
"type": "uri"
},
{
"name": "version",
"use": "in",
"min": 0,
"max": "1",
"documentation": "The version of the system, if one was provided in the source data",
"type": "string"
},
{
"name": "coding",
"use": "in",
"min": 0,
"max": "1",
"documentation": "A coding to look up",
"type": "Coding"
},
{
"name": "date",
"use": "in",
"min": 0,
"max": "1",
"documentation": "The date for which the information should be returned. Normally, this is the current conditions (which is the default value) but under some circumstances, systems need to acccess this information as it would have been in the past. A typical example of this would be where code selection is constrained to the set of codes that were available when the patient was treated, not when the record is being edited. Note that which date is appropriate is a matter for implementation policy.",
"type": "dateTime"
},
{
"name": "displayLanguage",
"use": "in",
"min": 0,
"max": "1",
"documentation": "The requested language for display (see $expand.displayLanguage)",
"type": "code"
},
{
"name": "property",
"use": "in",
"min": 0,
"max": "*",
"documentation": "A property that the client wishes to be returned in the output. If no properties are specified, the server chooses what to return. The following properties are defined for all code systems: url, name, version (code system info) and code information: display, definition, designation, parent and child, and for designations, lang.X where X is a designation language code. Some of the properties are returned explicit in named parameters (when the names match), and the rest (except for lang.X) in the property parameter group",
"type": "code"
},
{
"name": "name",
"use": "out",
"min": 1,
"max": "1",
"documentation": "A display name for the code system",
"type": "string"
},
{
"name": "version",
"use": "out",
"min": 0,
"max": "1",
"documentation": "The version that these details are based on",
"type": "string"
},
{
"name": "display",
"use": "out",
"min": 1,
"max": "1",
"documentation": "The preferred display for this concept",
"type": "string"
},
{
"name": "designation",
"use": "out",
"min": 0,
"max": "*",
"documentation": "Additional representations for this concept"
},
{
"name": "property",
"use": "out",
"min": 0,
"max": "*",
"documentation": "One or more properties that contain additional information about the code, including status. For complex terminologies (e.g. SNOMED CT, LOINC, medications), these properties serve to decompose the code"
}
]
}
Example #2
Input CSV
OperationDefinition,6,"ConceptMap-closure","http://hl7.org/fhir/OperationDefinition/ConceptMap-closure","4.0.1","Closure Table Maintenance",,"draft","operation",,"2019-11-01T09:29:23+11:00","HL7 (FHIR Project)","This operation provides support for ongoing maintenance of a client-side [transitive closure table](https://en.wikipedia.org/wiki/Transitive_closure#In_graph_theory) based on server-side terminological logic. For details of how this is used, see [Maintaining a Closure Table](terminology-service.html#closure)",,,"closure",,,true,false,false,,
contact,,"url","http://hl7.org/fhir",,,,
resource,"ConceptMap"
parameter,"name","in",1,"1","The name that defines the particular context for the subsumption based closure table","string",,,,,,
parameter,"concept","in",0,"*","Concepts to add to the closure table","Coding",,,,,,
parameter,"version","in",0,"1","A request to resynchronise - request to send all new entries since the nominated version was sent by the server","string",,,,,,
parameter,"return","out",1,"1","A list of new entries (code / system --> code/system) that the client should add to its closure table. The only kind of entry mapping equivalences that can be returned are equal, specializes, subsumes and unmatched","ConceptMap",,,,,,
Resulting resource
{
"resourceType": "OperationDefinition",
"id": "ConceptMap-closure",
"url": "http://hl7.org/fhir/OperationDefinition/ConceptMap-closure",
"version": "4.0.1",
"name": "Closure Table Maintenance",
"status": "draft",
"kind": "operation",
"date": "2019-11-01T09:29:23+11:00",
"publisher": "HL7 (FHIR Project)",
"contact": [
{
"telecom": [
{
"system": "url",
"value": "http://hl7.org/fhir"
},
{
"system": "email",
"value": "fhir@lists.hl7.org"
}
]
}
],
"description": "This operation provides support for ongoing maintenance of a client-side [transitive closure table](https://en.wikipedia.org/wiki/Transitive_closure#In_graph_theory) based on server-side terminological logic. For details of how this is used, see [Maintaining a Closure Table](terminology-service.html#closure)",
"code": "closure",
"resource": [
"ConceptMap"
],
"system": true,
"type": false,
"instance": false,
"parameter": [
{
"name": "name",
"use": "in",
"min": 1,
"max": "1",
"documentation": "The name that defines the particular context for the subsumption based closure table",
"type": "string"
},
{
"name": "concept",
"use": "in",
"min": 0,
"max": "*",
"documentation": "Concepts to add to the closure table",
"type": "Coding"
},
{
"name": "version",
"use": "in",
"min": 0,
"max": "1",
"documentation": "A request to resynchronise - request to send all new entries since the nominated version was sent by the server",
"type": "string"
},
{
"name": "return",
"use": "out",
"min": 1,
"max": "1",
"documentation": "A list of new entries (code / system --> code/system) that the client should add to its closure table. The only kind of entry mapping equivalences that can be returned are equal, specializes, subsumes and unmatched",
"type": "ConceptMap"
}
]
}
Example #3
Input CSV
OperationDefinition,18,"ConceptMap-translate","http://hl7.org/fhir/OperationDefinition/ConceptMap-translate","4.0.1","Concept Translation",,"draft","operation",,"2019-11-01T09:29:23+11:00","HL7 (FHIR Project)","Translate a code from one value set to another, based on the existing value set and concept maps resources, and/or other additional knowledge available to the server.
One (and only one) of the in parameters (code, coding, codeableConcept) must be provided, to identify the code that is to be translated.
The operation returns a set of parameters including a 'result' for whether there is an acceptable match, and a list of possible matches. Note that the list of matches may include notes of codes for which mapping is specifically excluded, so implementers have to check the match.equivalence for each match",,,"translate",,,false,true,true,,
contact,,"url","http://hl7.org/fhir",,,,
resource,"ConceptMap"
parameter,"url","in",0,"1","A canonical URL for a concept map. The server must know the concept map (e.g. it is defined explicitly in the server's concept maps, or it is defined implicitly by some code system known to the server.","uri",,,,,,
parameter,"conceptMap","in",0,"1","The concept map is provided directly as part of the request. Servers may choose not to accept concept maps in this fashion.","ConceptMap",,,,,,
parameter,"conceptMapVersion","in",0,"1","The identifier that is used to identify a specific version of the concept map to be used for the translation. This is an arbitrary value managed by the concept map 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.","string",,,,,,
parameter,"code","in",0,"1","The code that is to be translated. If a code is provided, a system must be provided","code",,,,,,
parameter,"system","in",0,"1","The system for the code that is to be translated","uri",,,,,,
parameter,"version","in",0,"1","The version of the system, if one was provided in the source data","string",,,,,,
parameter,"source","in",0,"1","Identifies the value set used when the concept (system/code pair) was chosen. May be a logical id, or an absolute or relative location. The source value set is an optional parameter because in some cases, the client cannot know what the source value set is. However, without a source value set, the server may be unable to safely identify an applicable concept map, and would return an error. For this reason, a source value set SHOULD always be provided. Note that servers may be able to identify an appropriate concept map without a source value set if there is a full mapping for the entire code system in the concept map, or by manual intervention","uri",,,,,,
parameter,"coding","in",0,"1","A coding to translate","Coding",,,,,,
parameter,"codeableConcept","in",0,"1","A full codeableConcept to validate. The server can translate any of the coding values (e.g. existing translations) as it chooses","CodeableConcept",,,,,,
parameter,"target","in",0,"1","Identifies the value set in which a translation is sought. May be a logical id, or an absolute or relative location. If there's no target specified, the server should return all known translations, along with their source","uri",,,,,,
parameter,"targetsystem","in",0,"1","identifies a target code system in which a mapping is sought. This parameter is an alternative to the target parameter - only one is required. Searching for any translation to a target code system irrespective of the context (e.g. target valueset) may lead to unsafe results, and it is at the discretion of the server to decide when to support this operation","uri",,,,,,
parameter,"dependency","in",0,"*","Another element that may help produce the correct mapping",,,,,,,
parameter,"reverse","in",0,"1","if this is true, then the operation should return all the codes that might be mapped to this code. This parameter reverses the meaning of the source and target parameters","boolean",,,,,,
parameter,"result","out",1,"1","True if the concept could be translated successfully. The value can only be true if at least one returned match has an equivalence which is not unmatched or disjoint","boolean",,,,,,
parameter,"message","out",0,"1","Error details, for display to a human. If this is provided when result = true, the message carries hints and warnings (e.g. a note that the matches could be improved by providing additional detail)","string",,,,,,
parameter,"match","out",0,"*","A concept in the target value set with an equivalence. Note that there may be multiple matches of equal or differing equivalence, and the matches may include equivalence values that mean that there is no match",,,,,,,
Resulting resource
{
"resourceType": "OperationDefinition",
"id": "ConceptMap-translate",
"url": "http://hl7.org/fhir/OperationDefinition/ConceptMap-translate",
"version": "4.0.1",
"name": "Concept Translation",
"status": "draft",
"kind": "operation",
"date": "2019-11-01T09:29:23+11:00",
"publisher": "HL7 (FHIR Project)",
"contact": [
{
"telecom": [
{
"system": "url",
"value": "http://hl7.org/fhir"
},
{
"system": "email",
"value": "fhir@lists.hl7.org"
}
]
}
],
"description": "Translate a code from one value set to another, based on the existing value set and concept maps resources, and/or other additional knowledge available to the server. \r\n\r\n One (and only one) of the in parameters (code, coding, codeableConcept) must be provided, to identify the code that is to be translated. \r\n\r\n The operation returns a set of parameters including a 'result' for whether there is an acceptable match, and a list of possible matches. Note that the list of matches may include notes of codes for which mapping is specifically excluded, so implementers have to check the match.equivalence for each match",
"code": "translate",
"resource": [
"ConceptMap"
],
"system": false,
"type": true,
"instance": true,
"parameter": [
{
"name": "url",
"use": "in",
"min": 0,
"max": "1",
"documentation": "A canonical URL for a concept map. The server must know the concept map (e.g. it is defined explicitly in the server's concept maps, or it is defined implicitly by some code system known to the server.",
"type": "uri"
},
{
"name": "conceptMap",
"use": "in",
"min": 0,
"max": "1",
"documentation": "The concept map is provided directly as part of the request. Servers may choose not to accept concept maps in this fashion.",
"type": "ConceptMap"
},
{
"name": "conceptMapVersion",
"use": "in",
"min": 0,
"max": "1",
"documentation": "The identifier that is used to identify a specific version of the concept map to be used for the translation. This is an arbitrary value managed by the concept map 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.",
"type": "string"
},
{
"name": "code",
"use": "in",
"min": 0,
"max": "1",
"documentation": "The code that is to be translated. If a code is provided, a system must be provided",
"type": "code"
},
{
"name": "system",
"use": "in",
"min": 0,
"max": "1",
"documentation": "The system for the code that is to be translated",
"type": "uri"
},
{
"name": "version",
"use": "in",
"min": 0,
"max": "1",
"documentation": "The version of the system, if one was provided in the source data",
"type": "string"
},
{
"name": "source",
"use": "in",
"min": 0,
"max": "1",
"documentation": "Identifies the value set used when the concept (system/code pair) was chosen. May be a logical id, or an absolute or relative location. The source value set is an optional parameter because in some cases, the client cannot know what the source value set is. However, without a source value set, the server may be unable to safely identify an applicable concept map, and would return an error. For this reason, a source value set SHOULD always be provided. Note that servers may be able to identify an appropriate concept map without a source value set if there is a full mapping for the entire code system in the concept map, or by manual intervention",
"type": "uri"
},
{
"name": "coding",
"use": "in",
"min": 0,
"max": "1",
"documentation": "A coding to translate",
"type": "Coding"
},
{
"name": "codeableConcept",
"use": "in",
"min": 0,
"max": "1",
"documentation": "A full codeableConcept to validate. The server can translate any of the coding values (e.g. existing translations) as it chooses",
"type": "CodeableConcept"
},
{
"name": "target",
"use": "in",
"min": 0,
"max": "1",
"documentation": "Identifies the value set in which a translation is sought. May be a logical id, or an absolute or relative location. If there's no target specified, the server should return all known translations, along with their source",
"type": "uri"
},
{
"name": "targetsystem",
"use": "in",
"min": 0,
"max": "1",
"documentation": "identifies a target code system in which a mapping is sought. This parameter is an alternative to the target parameter - only one is required. Searching for any translation to a target code system irrespective of the context (e.g. target valueset) may lead to unsafe results, and it is at the discretion of the server to decide when to support this operation",
"type": "uri"
},
{
"name": "dependency",
"use": "in",
"min": 0,
"max": "*",
"documentation": "Another element that may help produce the correct mapping"
},
{
"name": "reverse",
"use": "in",
"min": 0,
"max": "1",
"documentation": "if this is true, then the operation should return all the codes that might be mapped to this code. This parameter reverses the meaning of the source and target parameters",
"type": "boolean"
},
{
"name": "result",
"use": "out",
"min": 1,
"max": "1",
"documentation": "True if the concept could be translated successfully. The value can only be true if at least one returned match has an equivalence which is not unmatched or disjoint",
"type": "boolean"
},
{
"name": "message",
"use": "out",
"min": 0,
"max": "1",
"documentation": "Error details, for display to a human. If this is provided when result = true, the message carries hints and warnings (e.g. a note that the matches could be improved by providing additional detail)",
"type": "string"
},
{
"name": "match",
"use": "out",
"min": 0,
"max": "*",
"documentation": "A concept in the target value set with an equivalence. Note that there may be multiple matches of equal or differing equivalence, and the matches may include equivalence values that mean that there is no match"
}
]
}
Example #4
Input CSV
OperationDefinition,9,"example","http://h7.org/fhir/OperationDefinition/example","B","Populate Questionnaire",,"draft","operation",,"2015-08-04","Acme Healthcare Services","Limited implementation of the Populate Questionnaire implementation",,,"populate","Only implemented for Labs and Medications so far","OperationDefinition/Questionnaire-populate",false,false,true,,
contact,"System Administrator","email","beep@coyote.acme.com",,,,
useContext,"http://build.fhir.org/codesystem-usage-context-type",,"venue","Clinical Venue",,"http://terminology.hl7.org/CodeSystem/v3-ActCode",,"IMP","inpatient encounter",,,,,,,,,,,,,,,,,,,,,,,,,,,,,
jurisdiction,"urn:iso:std:iso:3166",,"GB","United Kingdom of Great Britain and Northern Ireland (the)",,
resource,"Questionnaire"
parameter,"subject","in",1,"1","The resource that is to be the *QuestionnaireResponse.subject*. The [[[QuestionnaireResponse]]] instance will reference the provided subject. In addition, if the *local* parameter is set to true, server information about the specified subject will be used to populate the instance.","Reference",,,,,,
parameter,"local","in",0,"1","If the *local* parameter is set to true, server information about the specified subject will be used to populate the instance.","Reference",,,,,,
parameter,"return","out",1,"1","The partially (or fully)-populated set of answers for the specified Questionnaire","QuestionnaireResponse",,,,,,
overload,"subject",
overload,"subject","local defaults to false when not passed as a parameter"
Resulting resource
{
"resourceType": "OperationDefinition",
"id": "example",
"url": "http://h7.org/fhir/OperationDefinition/example",
"version": "B",
"name": "Populate Questionnaire",
"status": "draft",
"kind": "operation",
"date": "2015-08-04",
"publisher": "Acme Healthcare Services",
"contact": [
{
"name": "System Administrator",
"telecom": [
{
"system": "email",
"value": "beep@coyote.acme.com"
}
]
}
],
"description": "Limited implementation of the Populate Questionnaire implementation",
"useContext": [
{
"code": {
"system": "http://build.fhir.org/codesystem-usage-context-type",
"code": "venue",
"display": "Clinical Venue"
},
"valueCodeableConcept": {
"coding": [
{
"system": "http://terminology.hl7.org/CodeSystem/v3-ActCode",
"code": "IMP",
"display": "inpatient encounter"
}
]
}
}
],
"jurisdiction": [
{
"coding": [
{
"system": "urn:iso:std:iso:3166",
"code": "GB",
"display": "United Kingdom of Great Britain and Northern Ireland (the)"
}
]
}
],
"code": "populate",
"comment": "Only implemented for Labs and Medications so far",
"base": "OperationDefinition/Questionnaire-populate",
"resource": [
"Questionnaire"
],
"system": false,
"type": false,
"instance": true,
"parameter": [
{
"name": "subject",
"use": "in",
"min": 1,
"max": "1",
"documentation": "The resource that is to be the *QuestionnaireResponse.subject*. The [[[QuestionnaireResponse]]] instance will reference the provided subject. In addition, if the *local* parameter is set to true, server information about the specified subject will be used to populate the instance.",
"type": "Reference"
},
{
"name": "local",
"use": "in",
"min": 0,
"max": "1",
"documentation": "If the *local* parameter is set to true, server information about the specified subject will be used to populate the instance.",
"type": "Reference"
},
{
"name": "return",
"use": "out",
"min": 1,
"max": "1",
"documentation": "The partially (or fully)-populated set of answers for the specified Questionnaire",
"type": "QuestionnaireResponse"
}
],
"overload": [
{
"parameterName": [
"subject",
"local"
]
},
{
"parameterName": [
"subject"
],
"comment": "local defaults to false when not passed as a parameter"
}
]
}
Example #5
Input CSV
OperationDefinition,4,"Library-data-requirements","http://hl7.org/fhir/OperationDefinition/Library-data-requirements","4.0.1","Data Requirements",,"draft","operation",,"2019-11-01T09:29:23+11:00","HL7 (FHIR Project)","The data-requirements operation aggregates and returns the parameters and data requirements for a resource and all its dependencies as a single module definition",,,"data-requirements","The effect of invoking this operation is to determine the aggregate set of data requirements and dependencies for a given target resource. The result is a Library resource with a type of module-definition that contains all the parameter definitions and data requirements of the target resource and any libraries referenced by it. Implementations SHOULD aggregate data requirements intelligently (i.e. by collapsing overlapping data requirements)",,true,false,true,,
contact,,"url","http://hl7.org/fhir",,,,
resource,"Library"
parameter,"target","in",0,"1","The target of the data requirements operation","string",,,,,,
parameter,"return","out",1,"1","The result of the requirements gathering","Library",,,,,,
Resulting resource
{
"resourceType": "OperationDefinition",
"id": "Library-data-requirements",
"url": "http://hl7.org/fhir/OperationDefinition/Library-data-requirements",
"version": "4.0.1",
"name": "Data Requirements",
"status": "draft",
"kind": "operation",
"date": "2019-11-01T09:29:23+11:00",
"publisher": "HL7 (FHIR Project)",
"contact": [
{
"telecom": [
{
"system": "url",
"value": "http://hl7.org/fhir"
},
{
"system": "email",
"value": "fhir@lists.hl7.org"
}
]
}
],
"description": "The data-requirements operation aggregates and returns the parameters and data requirements for a resource and all its dependencies as a single module definition",
"code": "data-requirements",
"comment": "The effect of invoking this operation is to determine the aggregate set of data requirements and dependencies for a given target resource. The result is a Library resource with a type of module-definition that contains all the parameter definitions and data requirements of the target resource and any libraries referenced by it. Implementations SHOULD aggregate data requirements intelligently (i.e. by collapsing overlapping data requirements)",
"resource": [
"Library"
],
"system": true,
"type": false,
"instance": true,
"parameter": [
{
"name": "target",
"use": "in",
"min": 0,
"max": "1",
"documentation": "The target of the data requirements operation",
"type": "string"
},
{
"name": "return",
"use": "out",
"min": 1,
"max": "1",
"documentation": "The result of the requirements gathering",
"type": "Library"
}
]
}