This resource is used to pass information into and back from an operation (whether invoked directly from REST or within a messaging environment). It is not persisted or allowed to be referenced by other resources.
2.11.1 Scope and Usage
This resource is used to pass information into and back from an operation
(whether invoked directly from REST or within a messaging environment). It is not persisted or allowed
to be referenced by other resources except as described below.
Because Parameters does not reflect a persistent healthcare-related entity but rather just a collection
of data passed into or out of an operation, there is generally no need to have a RESTful endpoint at
which such instances can be created, updated, queried, etc. However, there are a few limited cases
where this can make sense:
Parameters instances can be stored to record inbound and/or outbound information in support of
an AuditEvent instance
Parameters instances might be persisted either on their own or as part of a Bundle to support
documentation of examples for an ImplementationGuide
and/or test data for a TestScript
Technically, Parameters is a specialization of Resource and as such could potentially appear anywhere
that 'Resource' is permitted and could be referenced anywhere an element has an unconstrained type of
Reference. For example, it could appear in FHIR documents, as contained resources, referenced by
extensions, in elements like Observation.focus, etc. However, such use is prohibited unless the
element containing the Resource or Reference type explicitly indicates that Parameters is permitted.
If there is a requirement to exchange arbitrary collections of data elements, this need should typically
be met using Basic.
2.11.2 Boundaries and Relationships
This special resource has no other use than for operation parameters, and there is no RESTful end-point associated with it.
For further information, see the operations page.
OperationDefinition defines constraints on the Parameters resource instances that are used to convey the inputs and outputs of the operation.
A parameter must have one and only one of (value, resource, part)
(part.exists() and value.empty() and resource.empty()) or (part.empty() and (value.exists() xor resource.exists()))
Note: for technical compatibility reasons, the Parameters resource inherits from
Resource, but since the parameter exchange format has no
end-point and/or persistence, it never has an id, a versionId, or a lastUpdated.
The other features of Resource (tags, profiles, security labels, language etc.) may
have use when operations are executed.
2.11.4.2 Names and Identifiers
The following rules apply to name and identifier uniqueness within a Parameters resource:
Parameter Names
Parameter names can be repeated at any level. The meaning of duplicate parameter names - and whether it is valid to
repeat any given parameter name - depends on the context. Typically, operation definitions
define what parameters can be used, and whether they can repeat. The order of parameters with different names is not considered significant
Resources
Resources in parameter.resource do not need to be unique, though the interpretation of
non-unique resources, or different versions of the same resource, may be ambiguous in cases where
the parameter names do not clearly differentiate the purpose of the parameter. For
additional commentary, see the notes about about resource uniqueness in Bundles,
though be aware that those rules do not apply to the Parameters resource unless the fullUrl extension is present on parameters with resources.
Internal References
When internal references are resolved in a resource in a parameter.resource, the
resolution stops at parameter.resource. This allows resources to appear more than
once in a Parameters resource, and also means that resources cannot reference content in another
resource using an internal reference (except for references inside contained resources)
References
When resolving references in resources, the applicable Operation Definition may
specify how references may be resolved between parameters. If a reference cannot be resolved between the parameters, the application should fall back to its
general resource resolution methods