Profile: SetContextOutputParameters

Canonical URL: http://fhir.infoway-inforoute.ca/io/HALO/StructureDefinition/set-context-output-parameters

Simplifier project page: SetContextOutputParameters

Derived from: Parameters (R4)

Formal Views of Profile Content

Description of Profiles, Differentials, Snapshots and how the different presentations work

idΣ0..1string
metaΣ0..1Meta
implicitRulesΣ ?!0..1uri
language0..1codeBinding
id0..1string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
nameΣ1..1string
valueBase64Binarybase64Binary
valueBooleanboolean
valueCanonicalcanonical()
valueCodecode
valueDatedate
valueDateTimedateTime
valueDecimaldecimal
valueIdid
valueInstantinstant
valueIntegerinteger
valueMarkdownmarkdown
valueOidoid
valuePositiveIntpositiveInt
valueStringstring
valueTimetime
valueUnsignedIntunsignedInt
valueUriuri
valueUrlurl
valueUuiduuid
valueAddressAddress
valueAgeAge
valueAnnotationAnnotation
valueAttachmentAttachment
valueCodeableConceptCodeableConcept
valueCodingCoding
valueContactPointContactPoint
valueCountCount
valueDistanceDistance
valueDurationDuration
valueHumanNameHumanName
valueIdentifierIdentifier
valueMoneyMoney
valuePeriodPeriod
valueQuantityQuantity
valueRangeRange
valueRatioRatio
valueSampledDataSampledData
valueSignatureSignature
valueTimingTiming
valueContactDetailContactDetail
valueContributorContributor
valueDataRequirementDataRequirement
valueExpressionExpression
valueParameterDefinitionParameterDefinition
valueRelatedArtifactRelatedArtifact
valueTriggerDefinitionTriggerDefinition
valueUsageContextUsageContext
valueDosageDosage
valueMetaMeta
valueReferenceReference()
resourceΣ C0..1Resource
partΣ0..*see (parameter)
id0..1string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
nameΣ1..1stringFixed Value
valueStringstring
resourceΣ C0..0Resource
partΣ0..0see (parameter)
id0..1string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
nameΣ1..1stringFixed Value
resourceΣ C0..1OperationOutcome
partΣ0..0see (parameter)
id0..1string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
nameΣ1..1stringFixed Value
resourceC1..1SetContextTransactionResponseBundle
partΣ0..0see (parameter)
idΣ0..1string
metaΣ0..1Meta
implicitRulesΣ ?!0..1uri
language0..1codeBinding
id0..1string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
nameΣ1..1string
valueBase64Binarybase64Binary
valueBooleanboolean
valueCanonicalcanonical()
valueCodecode
valueDatedate
valueDateTimedateTime
valueDecimaldecimal
valueIdid
valueInstantinstant
valueIntegerinteger
valueMarkdownmarkdown
valueOidoid
valuePositiveIntpositiveInt
valueStringstring
valueTimetime
valueUnsignedIntunsignedInt
valueUriuri
valueUrlurl
valueUuiduuid
valueAddressAddress
valueAgeAge
valueAnnotationAnnotation
valueAttachmentAttachment
valueCodeableConceptCodeableConcept
valueCodingCoding
valueContactPointContactPoint
valueCountCount
valueDistanceDistance
valueDurationDuration
valueHumanNameHumanName
valueIdentifierIdentifier
valueMoneyMoney
valuePeriodPeriod
valueQuantityQuantity
valueRangeRange
valueRatioRatio
valueSampledDataSampledData
valueSignatureSignature
valueTimingTiming
valueContactDetailContactDetail
valueContributorContributor
valueDataRequirementDataRequirement
valueExpressionExpression
valueParameterDefinitionParameterDefinition
valueRelatedArtifactRelatedArtifact
valueTriggerDefinitionTriggerDefinition
valueUsageContextUsageContext
valueDosageDosage
valueMetaMeta
valueReferenceReference()
resourceΣ C0..1Resource
partΣ0..*see (parameter)
id0..1string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
nameΣ1..1stringFixed Value
valueStringstring
resourceΣ C0..0Resource
partΣ0..0see (parameter)
id0..1string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
nameΣ1..1stringFixed Value
resourceΣ C0..1OperationOutcome
partΣ0..0see (parameter)
id0..1string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
nameΣ1..1stringFixed Value
resourceC1..1SetContextTransactionResponseBundle
partΣ0..0see (parameter)
idΣ0..1string
metaΣ0..1Meta
implicitRulesΣ ?!0..1uri
language0..1codeBinding
id0..1string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
nameΣ1..1string
valueBase64Binarybase64Binary
valueBooleanboolean
valueCanonicalcanonical()
valueCodecode
valueDatedate
valueDateTimedateTime
valueDecimaldecimal
valueIdid
valueInstantinstant
valueIntegerinteger
valueMarkdownmarkdown
valueOidoid
valuePositiveIntpositiveInt
valueStringstring
valueTimetime
valueUnsignedIntunsignedInt
valueUriuri
valueUrlurl
valueUuiduuid
valueAddressAddress
valueAgeAge
valueAnnotationAnnotation
valueAttachmentAttachment
valueCodeableConceptCodeableConcept
valueCodingCoding
valueContactPointContactPoint
valueCountCount
valueDistanceDistance
valueDurationDuration
valueHumanNameHumanName
valueIdentifierIdentifier
valueMoneyMoney
valuePeriodPeriod
valueQuantityQuantity
valueRangeRange
valueRatioRatio
valueSampledDataSampledData
valueSignatureSignature
valueTimingTiming
valueContactDetailContactDetail
valueContributorContributor
valueDataRequirementDataRequirement
valueExpressionExpression
valueParameterDefinitionParameterDefinition
valueRelatedArtifactRelatedArtifact
valueTriggerDefinitionTriggerDefinition
valueUsageContextUsageContext
valueDosageDosage
valueMetaMeta
valueReferenceReference()
resourceΣ C0..1Resource
partΣ0..*see (parameter)
id0..1string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
nameΣ1..1stringFixed Value
valueStringstring
resourceΣ C0..0Resource
partΣ0..0see (parameter)
id0..1string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
nameΣ1..1stringFixed Value
resourceΣ C0..1OperationOutcome
partΣ0..0see (parameter)
id0..1string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
nameΣ1..1stringFixed Value
resourceC1..1SetContextTransactionResponseBundle
partΣ0..0see (parameter)
Parameters..
Parameters.parameter1..
Parameters.parameter:launchID0..1
Parameters.parameter:launchID.name..
Parameters.parameter:launchID.value[x]string1..
Parameters.parameter:launchID.resource..0
Parameters.parameter:launchID.part..0
Parameters.parameter:outcome1..*
Parameters.parameter:outcome.name..
Parameters.parameter:outcome.value[x]..0
Parameters.parameter:outcome.resourceOperationOutcome..
Parameters.parameter:outcome.part..0
Parameters.parameter:resourcesResponse0..1
Parameters.parameter:resourcesResponse.name..
Parameters.parameter:resourcesResponse.value[x]..0
Parameters.parameter:resourcesResponse.resourceSetContextTransactionResponseBundle1..
Parameters.parameter:resourcesResponse.part..0

{
"resourceType": "StructureDefinition",
"id": "set-context-output-parameters",
"text": {
"status": "additional",
--- We have skipped the narrative for better readability of the resource ---
},
"url": "http://fhir.infoway-inforoute.ca/io/HALO/StructureDefinition/set-context-output-parameters",
"name": "SetContextOutputParameters",
"status": "draft",
"description": "A profile capturing more nuanced rules for the output Parameters resource returned by the $set-context operation that cannot be captured within the OperationDefinition itself.",
"fhirVersion": "4.0.1",
"kind": "resource",
"abstract": false,
"type": "Parameters",
"baseDefinition": "http://hl7.org/fhir/StructureDefinition/Parameters",
"derivation": "constraint",
"element": [
{
"id": "Parameters.parameter",
"path": "Parameters.parameter",
"slicing": {
{
"type": "pattern",
"path": "name"
}
],
"ordered": false,
"rules": "open"
},
"min": 1
},
{
"id": "Parameters.parameter:launchID",
"path": "Parameters.parameter",
"sliceName": "launchID",
"min": 0,
"max": "1"
},
{
"id": "Parameters.parameter:launchID.name",
"path": "Parameters.parameter.name",
"fixedString": "launchID"
},
{
"id": "Parameters.parameter:launchID.value[x]",
"path": "Parameters.parameter.value[x]",
"min": 1,
"type": [
{
"code": "string"
}
]
},
{
"id": "Parameters.parameter:launchID.resource",
"path": "Parameters.parameter.resource",
"max": "0"
},
{
"id": "Parameters.parameter:launchID.part",
"path": "Parameters.parameter.part",
"max": "0"
},
{
"id": "Parameters.parameter:outcome",
"path": "Parameters.parameter",
"sliceName": "outcome",
"min": 1,
"max": "*"
},
{
"id": "Parameters.parameter:outcome.name",
"path": "Parameters.parameter.name",
"fixedString": "outcome"
},
{
"id": "Parameters.parameter:outcome.value[x]",
"path": "Parameters.parameter.value[x]",
"max": "0"
},
{
"id": "Parameters.parameter:outcome.resource",
"path": "Parameters.parameter.resource",
"type": [
{
"code": "OperationOutcome"
}
]
},
{
"id": "Parameters.parameter:outcome.part",
"path": "Parameters.parameter.part",
"max": "0"
},
{
"id": "Parameters.parameter:resourcesResponse",
"path": "Parameters.parameter",
"sliceName": "resourcesResponse",
"min": 0,
"max": "1"
},
{
"id": "Parameters.parameter:resourcesResponse.name",
"path": "Parameters.parameter.name",
"fixedString": "resourcesResponse"
},
{
"id": "Parameters.parameter:resourcesResponse.value[x]",
"path": "Parameters.parameter.value[x]",
"max": "0"
},
{
"id": "Parameters.parameter:resourcesResponse.resource",
"path": "Parameters.parameter.resource",
"min": 1,
"type": [
{
"code": "Bundle",
"profile": [
"http://fhir.infoway-inforoute.ca/io/HALO/StructureDefinition/set-context-transaction-response-bundle"
]
}
]
},
{
"id": "Parameters.parameter:resourcesResponse.part",
"path": "Parameters.parameter.part",
"max": "0"
}
]
}
}
<StructureDefinition xmlns="http://hl7.org/fhir">
<id value="set-context-output-parameters" />
<status value="additional" />
--- We have skipped the narrative for better readability of the resource ---
</text>
<url value="http://fhir.infoway-inforoute.ca/io/HALO/StructureDefinition/set-context-output-parameters" />
<name value="SetContextOutputParameters" />
<status value="draft" />
<description value="A profile capturing more nuanced rules for the output Parameters resource returned by the $set-context operation that cannot be captured within the OperationDefinition itself." />
<fhirVersion value="4.0.1" />
<kind value="resource" />
<abstract value="false" />
<type value="Parameters" />
<baseDefinition value="http://hl7.org/fhir/StructureDefinition/Parameters" />
<derivation value="constraint" />
<element id="Parameters.parameter">
<path value="Parameters.parameter" />
<type value="pattern" />
<path value="name" />
</discriminator>
<ordered value="false" />
<rules value="open" />
</slicing>
<min value="1" />
</element>
<element id="Parameters.parameter:launchID">
<path value="Parameters.parameter" />
<sliceName value="launchID" />
<min value="0" />
<max value="1" />
</element>
<element id="Parameters.parameter:launchID.name">
<path value="Parameters.parameter.name" />
<fixedString value="launchID" />
</element>
<element id="Parameters.parameter:launchID.value[x]">
<path value="Parameters.parameter.value[x]" />
<min value="1" />
<code value="string" />
</type>
</element>
<element id="Parameters.parameter:launchID.resource">
<path value="Parameters.parameter.resource" />
<max value="0" />
</element>
<element id="Parameters.parameter:launchID.part">
<path value="Parameters.parameter.part" />
<max value="0" />
</element>
<element id="Parameters.parameter:outcome">
<path value="Parameters.parameter" />
<sliceName value="outcome" />
<min value="1" />
<max value="*" />
</element>
<element id="Parameters.parameter:outcome.name">
<path value="Parameters.parameter.name" />
<fixedString value="outcome" />
</element>
<element id="Parameters.parameter:outcome.value[x]">
<path value="Parameters.parameter.value[x]" />
<max value="0" />
</element>
<element id="Parameters.parameter:outcome.resource">
<path value="Parameters.parameter.resource" />
<code value="OperationOutcome" />
</type>
</element>
<element id="Parameters.parameter:outcome.part">
<path value="Parameters.parameter.part" />
<max value="0" />
</element>
<element id="Parameters.parameter:resourcesResponse">
<path value="Parameters.parameter" />
<sliceName value="resourcesResponse" />
<min value="0" />
<max value="1" />
</element>
<element id="Parameters.parameter:resourcesResponse.name">
<path value="Parameters.parameter.name" />
<fixedString value="resourcesResponse" />
</element>
<element id="Parameters.parameter:resourcesResponse.value[x]">
<path value="Parameters.parameter.value[x]" />
<max value="0" />
</element>
<element id="Parameters.parameter:resourcesResponse.resource">
<path value="Parameters.parameter.resource" />
<min value="1" />
<code value="Bundle" />
<profile value="http://fhir.infoway-inforoute.ca/io/HALO/StructureDefinition/set-context-transaction-response-bundle" />
</type>
</element>
<element id="Parameters.parameter:resourcesResponse.part">
<path value="Parameters.parameter.part" />
<max value="0" />
</element>
</differential>
</StructureDefinition>

Usage

Referenced within the $set-context OperationDefinition in the OperationDefinition.outputProfile element, this profile provides additional constraints on the Parameters resource returned in the response to an invocation of the operation. While the OperationDefinition resource typically allows for sufficient rule definition, FHIR R4 imposes a limitation: Rule: A targetProfile can only be specified for parameters of type Reference or Canonical (i.e., resource-typed parameters cannot be profiled using the OperationDefinition.parameter.targetProfile element). This limitation was addressed in FHIR R5 to accommodate such use cases, but for FHIR R4, the SetContextOutputParameters profile ensures that the resourcesResponse Bundle parameter in the response for $set-context is restricted to Bundles conforming to the SetContextTransactionResponseBundle profile.

For more information regarding the individual usage details for each parameter, please refer to the Operation: $set-context page.