FHIR Release 3 (STU) Current Build

2.45 2.46 Parameters Resource Parameters - Content

http://www.hl7.org/Special/committees/fiwg/index.cfm FHIR Infrastructure Work Group Maturity Level : 5   Normative Compartments : Not linked to any defined compartments

Normative Candidate Note: This page is candidate normative content for R4 in the Infrastructure Package . Once normative, it will lose it's Maturity Level, and breaking changes will no longer be made.

This resource is a non-persisted resource used to pass information into and back from an operation . It has no other use, and there is no RESTful endpoint associated with it.

This special resource type is a non-persisted resource used to represent the pass information into and back from an operation request and response. .

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.

This resource is referenced by GuidanceResponse

Structure

Name Flags Card. Type Description & Constraints doco
. . Parameters Σ N Resource Operation Request or Response
Elements defined in Ancestors: id , meta , implicitRules , language
. . . parameter Σ I 0..* BackboneElement Operation Parameter
+ Rule: A parameter must have one and only one of (value, resource, part)
. . . . name Σ 1..1 string Name from the definition
. . . . value[x] Σ I 0..1 * If parameter is a data type
. . . . resource Σ I 0..1 Resource If parameter is a whole resource
. . . . part Σ 0..* see parameter Named part of a multi-part parameter

doco Documentation for this format

XML Template

<Parameters xmlns="http://hl7.org/fhir"> doco
 <!-- from Resource: id, meta, implicitRules, and language -->
 <parameter>  <!-- 0..* Operation Parameter -->
  <name value="[string]"/><!-- 1..1 Name from the definition -->
  <</value[x]>
  <</resource>

  <value[x]><!-- ?? 0..1 * If parameter is a data type --></value[x]>
  <resource><!-- ?? 0..1 Resource If parameter is a whole resource --></resource>

  <part><!-- 0..* Content as for Parameters.parameter Named part of a multi-part parameter --></part>
 </parameter>
</Parameters>

JSON Template

"resourceType" : "",
{doco
  "resourceType" : "Parameters",

  // from Resource: id, meta, implicitRules, and language
  "parameter" : [{ // Operation Parameter
    "name" : "<string>", // R!  Name from the definition
    
    ">,
    ">,
    ">",

    // value[x]: If parameter is a data type. One of these 49:
    "valueBase64Binary" : "<base64Binary>",
    "valueBoolean" : <boolean>,
    "valueCanonical" : "<canonical>",
    "valueCode" : "<code>",

    "valueDate" : "<date>",
    "valueDateTime" : "<dateTime>",
    "valueDecimal" : <decimal>,
    "valueId" : "<id>",

    "valueInstant" : "<instant>",
    "valueInteger" : <integer>,
    "valueMarkdown" : "<markdown>",
    "valueOid" : "<oid>",
    "valuePositiveInt" : "<positiveInt>",

    "valueString" : "<string>",
    "valueTime" : "<time>",
    "valueUnsignedInt" : "<unsignedInt>",

    "valueUri" : "<uri>",
    ">,
    ">",
    ">",
    " },
    " },

    "valueUrl" : "<url>",
    "valueUuid" : "<uuid>",
    "valueAddress" : { Address },
    "valueAge" : { Age },
    "valueAnnotation" : { Annotation },

    "valueAttachment" : { Attachment },
    "valueCodeableConcept" : { CodeableConcept },
    "valueCoding" : { Coding },
    "valueContactPoint" : { ContactPoint },
    "valueCount" : { Count },
    "valueDistance" : { Distance },
    "valueDuration" : { Duration },
    "valueHumanName" : { HumanName },

    "valueIdentifier" : { Identifier },
    "valueMoney" : { Money },
    "valuePeriod" : { Period },

    "valueQuantity" : { Quantity },
    "valueRange" : { Range },
    " },

    "valueRatio" : { Ratio },
    " },
    " },
    " },
    " },

    "valueReference" : { Reference },
    "

    "valueSampledData" : { SampledData },
    "valueSignature" : { Signature },
    "valueTiming" : { Timing },
    "valueContactDetail" : { ContactDetail },
    "valueContributor" : { Contributor },
    "valueDataRequirement" : { DataRequirement },
    "valueExpression" : { Expression },
    "valueParameterDefinition" : { ParameterDefinition },
    "valueRelatedArtifact" : { RelatedArtifact },
    "valueTriggerDefinition" : { TriggerDefinition },
    "valueUsageContext" : { UsageContext },
    "valueDosage" : { Dosage },
    "resource" : { Resource }, // C? If parameter is a whole resource

    "part" : [{ Content as for Parameters.parameter }] // Named part of a multi-part parameter
  }]
}

Turtle Template

@prefix fhir: <http://hl7.org/fhir/> .
@prefix fhir: <http://hl7.org/fhir/> .doco
[
 # from Element: 

[ a fhir:Parameters;
  fhir:nodeRole fhir:treeRoot; # if this is the parser root
  # from Resource: .id, .meta, .implicitRules, and .language

  fhir:Parameters.parameter [ # 0..* Operation Parameter
    fhir:Parameters.parameter.name [ string ]; # 1..1 Name from the definition
    # . One of these 38

    # Parameters.parameter.value[x] : 0..1 If parameter is a data type. One of these 49

      fhir:Parameters.parameter.valueBase64Binary [ base64Binary ]
      fhir:Parameters.parameter.valueBoolean [ boolean ]
      fhir:Parameters.parameter.valueCanonical [ canonical ]

      fhir:Parameters.parameter.valueCode [ code ]
      fhir:Parameters.parameter.valueDate [ date ]
      fhir:Parameters.parameter.valueDateTime [ dateTime ]
      fhir:Parameters.parameter.valueDecimal [ decimal ]
      fhir:Parameters.parameter.valueId [ id ]
      fhir:Parameters.parameter.valueInstant [ instant ]
      fhir:Parameters.parameter.valueInteger [ integer ]
      fhir:Parameters.parameter.valueMarkdown [ markdown ]
      fhir:Parameters.parameter.valueOid [ oid ]
      fhir:Parameters.parameter.valuePositiveInt [ positiveInt ]
      fhir:Parameters.parameter.valueString [ string ]
      fhir:Parameters.parameter.valueTime [ time ]
      fhir:Parameters.parameter.valueUnsignedInt [ unsignedInt ]
      fhir:Parameters.parameter.valueUri [ uri ]
      fhir:Parameters.parameter.valueUrl [ url ]
      fhir:Parameters.parameter.valueUuid [ uuid ]

      fhir:Parameters.parameter.valueAddress [ Address ]
      fhir:Parameters.parameter.valueAge [ Age ]
      fhir:Parameters.parameter.valueAnnotation [ Annotation ]
      fhir:Parameters.parameter.valueAttachment [ Attachment ]
      fhir:Parameters.parameter.valueCodeableConcept [ CodeableConcept ]
      fhir:Parameters.parameter.valueCoding [ Coding ]
      fhir:Parameters.parameter.valueContactPoint [ ContactPoint ]
      fhir:Parameters.parameter.valueCount [ Count ]
      fhir:Parameters.parameter.valueDistance [ Distance ]
      fhir:Parameters.parameter.valueDuration [ Duration ]
      fhir:Parameters.parameter.valueHumanName [ HumanName ]
      fhir:Parameters.parameter.valueIdentifier [ Identifier ]
      fhir:Parameters.parameter.valueMoney [ Money ]
      fhir:Parameters.parameter.valuePeriod [ Period ]
      fhir:Parameters.parameter.valueQuantity [ Quantity ]
      fhir:Parameters.parameter.valueRange [ Range ]
      fhir:Parameters.parameter.valueRatio [ Ratio ]
      fhir:Parameters.parameter.valueReference [ Reference ]
      fhir:Parameters.parameter.valueSampledData [ SampledData ]
      fhir:Parameters.parameter.valueSignature [ Signature ]
      fhir:Parameters.parameter.valueTiming [ Timing ]
      fhir: ]

      fhir:Parameters.parameter.valueContactDetail [ ContactDetail ]
      fhir:Parameters.parameter.valueContributor [ Contributor ]
      fhir:Parameters.parameter.valueDataRequirement [ DataRequirement ]
      fhir:Parameters.parameter.valueExpression [ Expression ]
      fhir:Parameters.parameter.valueParameterDefinition [ ParameterDefinition ]
      fhir:Parameters.parameter.valueRelatedArtifact [ RelatedArtifact ]
      fhir:Parameters.parameter.valueTriggerDefinition [ TriggerDefinition ]
      fhir:Parameters.parameter.valueUsageContext [ UsageContext ]
      fhir:Parameters.parameter.valueDosage [ Dosage ]

    fhir:Parameters.parameter.resource [ Resource ]; # 0..1 If parameter is a whole resource
    fhir:Parameters.parameter.part [ See Parameters.parameter ], ... ; # 0..* Named part of a multi-part parameter
  ], ...;
]

Changes since R3

Parameters
Parameters.parameter.value[x]
  • Add Types canonical, url, uuid, ContactDetail, Contributor, DataRequirement, Expression, ParameterDefinition, RelatedArtifact, TriggerDefinition, UsageContext, Dosage
  • Remove Type Meta

See the Full Difference for further information

This analysis is available as XML or JSON .

See R3 <--> R4 Conversion Maps (status = 1 test that all execute ok. 1 fail round-trip testing and 1 r3 resources are invalid (0 errors). )

Structure

Name Flags Card. Type Description & Constraints doco
. . Parameters Σ N Resource Operation Request or Response
Elements defined in Ancestors: id , meta , implicitRules , language
. . . parameter Σ I 0..* BackboneElement Operation Parameter
+ Rule: A parameter must have one and only one of (value, resource, part)
. . . . name Σ 1..1 string Name from the definition
. . . . value[x] Σ I 0..1 * If parameter is a data type
. . . . resource Σ I 0..1 Resource If parameter is a whole resource
. . . . part Σ 0..* see parameter Named part of a multi-part parameter

doco Documentation for this format

XML Template

<Parameters xmlns="http://hl7.org/fhir"> doco
 <!-- from Resource: id, meta, implicitRules, and language -->
 <parameter>  <!-- 0..* Operation Parameter -->
  <name value="[string]"/><!-- 1..1 Name from the definition -->
  <</value[x]>
  <</resource>

  <value[x]><!-- ?? 0..1 * If parameter is a data type --></value[x]>
  <resource><!-- ?? 0..1 Resource If parameter is a whole resource --></resource>

  <part><!-- 0..* Content as for Parameters.parameter Named part of a multi-part parameter --></part>
 </parameter>
</Parameters>

JSON Template

"resourceType" : "",
{doco
  "resourceType" : "Parameters",

  // from Resource: id, meta, implicitRules, and language
  "parameter" : [{ // Operation Parameter
    "name" : "<string>", // R!  Name from the definition
    
    ">,
    ">,
    ">",

    // value[x]: If parameter is a data type. One of these 49:
    "valueBase64Binary" : "<base64Binary>",
    "valueBoolean" : <boolean>,
    "valueCanonical" : "<canonical>",
    "valueCode" : "<code>",

    "valueDate" : "<date>",
    "valueDateTime" : "<dateTime>",
    "valueDecimal" : <decimal>,
    "valueId" : "<id>",

    "valueInstant" : "<instant>",
    "valueInteger" : <integer>,
    "valueMarkdown" : "<markdown>",
    "valueOid" : "<oid>",
    "valuePositiveInt" : "<positiveInt>",

    "valueString" : "<string>",
    "valueTime" : "<time>",
    "valueUnsignedInt" : "<unsignedInt>",

    "valueUri" : "<uri>",
    ">,
    ">",
    ">",
    " },
    " },

    "valueUrl" : "<url>",
    "valueUuid" : "<uuid>",
    "valueAddress" : { Address },
    "valueAge" : { Age },
    "valueAnnotation" : { Annotation },

    "valueAttachment" : { Attachment },
    "valueCodeableConcept" : { CodeableConcept },
    "valueCoding" : { Coding },
    "valueContactPoint" : { ContactPoint },
    "valueCount" : { Count },
    "valueDistance" : { Distance },
    "valueDuration" : { Duration },
    "valueHumanName" : { HumanName },

    "valueIdentifier" : { Identifier },
    "valueMoney" : { Money },
    "valuePeriod" : { Period },

    "valueQuantity" : { Quantity },
    "valueRange" : { Range },
    " },

    "valueRatio" : { Ratio },
    " },
    " },
    " },
    " },

    "valueReference" : { Reference },
    "

    "valueSampledData" : { SampledData },
    "valueSignature" : { Signature },
    "valueTiming" : { Timing },
    "valueContactDetail" : { ContactDetail },
    "valueContributor" : { Contributor },
    "valueDataRequirement" : { DataRequirement },
    "valueExpression" : { Expression },
    "valueParameterDefinition" : { ParameterDefinition },
    "valueRelatedArtifact" : { RelatedArtifact },
    "valueTriggerDefinition" : { TriggerDefinition },
    "valueUsageContext" : { UsageContext },
    "valueDosage" : { Dosage },
    "resource" : { Resource }, // C? If parameter is a whole resource

    "part" : [{ Content as for Parameters.parameter }] // Named part of a multi-part parameter
  }]
}

Turtle Template

@prefix fhir: <http://hl7.org/fhir/> .
@prefix fhir: <http://hl7.org/fhir/> .doco
[
 # from Element: 

[ a fhir:Parameters;
  fhir:nodeRole fhir:treeRoot; # if this is the parser root
  # from Resource: .id, .meta, .implicitRules, and .language

  fhir:Parameters.parameter [ # 0..* Operation Parameter
    fhir:Parameters.parameter.name [ string ]; # 1..1 Name from the definition
    # . One of these 38

    # Parameters.parameter.value[x] : 0..1 If parameter is a data type. One of these 49

      fhir:Parameters.parameter.valueBase64Binary [ base64Binary ]
      fhir:Parameters.parameter.valueBoolean [ boolean ]
      fhir:Parameters.parameter.valueCanonical [ canonical ]

      fhir:Parameters.parameter.valueCode [ code ]
      fhir:Parameters.parameter.valueDate [ date ]
      fhir:Parameters.parameter.valueDateTime [ dateTime ]
      fhir:Parameters.parameter.valueDecimal [ decimal ]
      fhir:Parameters.parameter.valueId [ id ]
      fhir:Parameters.parameter.valueInstant [ instant ]
      fhir:Parameters.parameter.valueInteger [ integer ]
      fhir:Parameters.parameter.valueMarkdown [ markdown ]
      fhir:Parameters.parameter.valueOid [ oid ]
      fhir:Parameters.parameter.valuePositiveInt [ positiveInt ]
      fhir:Parameters.parameter.valueString [ string ]
      fhir:Parameters.parameter.valueTime [ time ]
      fhir:Parameters.parameter.valueUnsignedInt [ unsignedInt ]
      fhir:Parameters.parameter.valueUri [ uri ]
      fhir:Parameters.parameter.valueUrl [ url ]
      fhir:Parameters.parameter.valueUuid [ uuid ]

      fhir:Parameters.parameter.valueAddress [ Address ]
      fhir:Parameters.parameter.valueAge [ Age ]
      fhir:Parameters.parameter.valueAnnotation [ Annotation ]
      fhir:Parameters.parameter.valueAttachment [ Attachment ]
      fhir:Parameters.parameter.valueCodeableConcept [ CodeableConcept ]
      fhir:Parameters.parameter.valueCoding [ Coding ]
      fhir:Parameters.parameter.valueContactPoint [ ContactPoint ]
      fhir:Parameters.parameter.valueCount [ Count ]
      fhir:Parameters.parameter.valueDistance [ Distance ]
      fhir:Parameters.parameter.valueDuration [ Duration ]
      fhir:Parameters.parameter.valueHumanName [ HumanName ]
      fhir:Parameters.parameter.valueIdentifier [ Identifier ]
      fhir:Parameters.parameter.valueMoney [ Money ]
      fhir:Parameters.parameter.valuePeriod [ Period ]
      fhir:Parameters.parameter.valueQuantity [ Quantity ]
      fhir:Parameters.parameter.valueRange [ Range ]
      fhir:Parameters.parameter.valueRatio [ Ratio ]
      fhir:Parameters.parameter.valueReference [ Reference ]
      fhir:Parameters.parameter.valueSampledData [ SampledData ]
      fhir:Parameters.parameter.valueSignature [ Signature ]
      fhir:Parameters.parameter.valueTiming [ Timing ]
      fhir: ]

      fhir:Parameters.parameter.valueContactDetail [ ContactDetail ]
      fhir:Parameters.parameter.valueContributor [ Contributor ]
      fhir:Parameters.parameter.valueDataRequirement [ DataRequirement ]
      fhir:Parameters.parameter.valueExpression [ Expression ]
      fhir:Parameters.parameter.valueParameterDefinition [ ParameterDefinition ]
      fhir:Parameters.parameter.valueRelatedArtifact [ RelatedArtifact ]
      fhir:Parameters.parameter.valueTriggerDefinition [ TriggerDefinition ]
      fhir:Parameters.parameter.valueUsageContext [ UsageContext ]
      fhir:Parameters.parameter.valueDosage [ Dosage ]

    fhir:Parameters.parameter.resource [ Resource ]; # 0..1 If parameter is a whole resource
    fhir:Parameters.parameter.part [ See Parameters.parameter ], ... ; # 0..* Named part of a multi-part parameter
  ], ...;
]

Changes since Release 3

Parameters
Parameters.parameter.value[x]
  • Add Types canonical, url, uuid, ContactDetail, Contributor, DataRequirement, Expression, ParameterDefinition, RelatedArtifact, TriggerDefinition, UsageContext, Dosage
  • Remove Type Meta

See the Full Difference for further information

This analysis is available as XML or JSON .

See R3 <--> R4 Conversion Maps (status = 1 test that all execute ok. 1 fail round-trip testing and 1 r3 resources are invalid (0 errors). )

 

See the Profiles & Extensions and the alternate definitions: Master Definition XML + JSON , XML Schema / Schematron + JSON Schema , ShEx (for Turtle ) & the dependency analysis

id Level Location Description Expression
inv-1 : On Parameters.parameter: Rule Parameters.parameter A parameter must have one and only one of (value, resource, part) ( expression on Parameters.parameter: (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.

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 it's general resource resolution methods