Parameters — detail: operation argument container
Special FHIR resource: not persisted, not searchable, dedicated to carrying input and output arguments of $-prefixed operations.
Resource specificity
Parameters is a volatile resource:
- No server persistence, no
GET /Parameters/123. - No search, no
_lastUpdated. - No
idin the REST FHIR sense. - Strictly transactional: body of a
POST $opor response.
parameter / part / valueX / resource
Each parameter carries:
name— name declared in the corresponding OperationDefinition.valueX— typed value (valueString, valueUri, valueCoding, valueQuantity, ...).resource— embedded FHIR resource (if the OperationDefinition allows).part— sub-parameters (composite parameters).
When to use Parameters
- Always for
POST /[base]/$opwith JSON or XML body. - For operation responses like
$translate,$validate,$everything(if return.type=Parameters). - To pass a FHIR resource without persisting it (e.g.
$validate).
Example: $translate input
{
"resourceType": "Parameters",
"parameter": [{
"name": "url",
"valueUri": "http://example.org/fhir/ConceptMap/icd10-to-snomed-diabetes"
}, {
"name": "system",
"valueUri": "http://hl7.org/fhir/sid/icd-10"
}, {
"name": "code",
"valueCode": "E11"
}, {
"name": "target",
"valueUri": "http://snomed.info/sct"
}, {
"name": "dependency",
"part": [{
"name": "element",
"valueUri": "http://hl7.org/fhir/StructureDefinition/Condition#Condition.severity"
}, {
"name": "concept",
"valueCoding": {
"system": "http://snomed.info/sct",
"code": "24484000",
"display": "Severe"
}
}]
}]
} Common pitfalls
- Persisting Parameters — the spec forbids it. If you need to, serialise elsewhere.
- name misaligned with OperationDefinition — the server ignores unknown parameters.
- valueX + resource on the same parameter — one and only one of the two at a time.
- Cardinality not respected — a missing
min=1on input fails the operation.