Base profile: http://hl7.org/fhir/StructureDefinition/OperationDefinition
The OperationDefinition resource provides a formal computable definition of an operation (on the RESTful interface) or a named query (using the search interaction).
Read more on: https://hl7.org/fhir/operationdefinition.html
Sample Response Object:
{
"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 purposes, not 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 }], // Intended jurisdiction for operation definition (if applicable)
"purpose" : "<markdown>", // Why this operation definition is defined
"copyright" : "<markdown>", // Use and/or publishing restrictions
"copyrightLabel" : "<string>", // Copyright holder and year(s)
"affectsState" : <boolean>, // Whether content is changed by the operation
"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" : <integer>, // 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
"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 }] // 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
}]
}