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..1id
metaΣ0..1Meta
implicitRulesΣ ?!0..1uri
language0..1codeBinding
id0..1string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
nameΣ1..1string
valueAddressAddress
valueAgeAge
valueAnnotationAnnotation
valueAttachmentAttachment
valueBase64Binarybase64Binary
valueBooleanboolean
valueCanonicalcanonical
valueCodecode
valueCodeableConceptCodeableConcept
valueCodingCoding
valueContactDetailContactDetail
valueContactPointContactPoint
valueContributorContributor
valueCountCount
valueDataRequirementDataRequirement
valueDatedate
valueDateTimedateTime
valueDecimaldecimal
valueDistanceDistance
valueDosageDosage
valueDurationDuration
valueExpressionExpression
valueHumanNameHumanName
valueIdid
valueIdentifierIdentifier
valueInstantinstant
valueIntegerinteger
valueMarkdownmarkdown
valueMetaMeta
valueMoneyMoney
valueOidoid
valueParameterDefinitionParameterDefinition
valuePeriodPeriod
valuePositiveIntpositiveInt
valueQuantityQuantity
valueRangeRange
valueRatioRatio
valueReferenceReference
valueRelatedArtifactRelatedArtifact
valueSampledDataSampledData
valueSignatureSignature
valueStringstring
valueTimetime
valueTimingTiming
valueTriggerDefinitionTriggerDefinition
valueUnsignedIntunsignedInt
valueUriuri
valueUrlurl
valueUsageContextUsageContext
valueUuiduuid
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
resourceΣ C1..1SetContextTransactionResponseBundle
partΣ0..0see (parameter)
idΣ0..1id
metaΣ0..1Meta
implicitRulesΣ ?!0..1uri
language0..1codeBinding
id0..1string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
nameΣ1..1string
valueAddressAddress
valueAgeAge
valueAnnotationAnnotation
valueAttachmentAttachment
valueBase64Binarybase64Binary
valueBooleanboolean
valueCanonicalcanonical
valueCodecode
valueCodeableConceptCodeableConcept
valueCodingCoding
valueContactDetailContactDetail
valueContactPointContactPoint
valueContributorContributor
valueCountCount
valueDataRequirementDataRequirement
valueDatedate
valueDateTimedateTime
valueDecimaldecimal
valueDistanceDistance
valueDosageDosage
valueDurationDuration
valueExpressionExpression
valueHumanNameHumanName
valueIdid
valueIdentifierIdentifier
valueInstantinstant
valueIntegerinteger
valueMarkdownmarkdown
valueMetaMeta
valueMoneyMoney
valueOidoid
valueParameterDefinitionParameterDefinition
valuePeriodPeriod
valuePositiveIntpositiveInt
valueQuantityQuantity
valueRangeRange
valueRatioRatio
valueReferenceReference
valueRelatedArtifactRelatedArtifact
valueSampledDataSampledData
valueSignatureSignature
valueStringstring
valueTimetime
valueTimingTiming
valueTriggerDefinitionTriggerDefinition
valueUnsignedIntunsignedInt
valueUriuri
valueUrlurl
valueUsageContextUsageContext
valueUuiduuid
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
resourceΣ C1..1SetContextTransactionResponseBundle
partΣ0..0see (parameter)
idΣ0..1id
metaΣ0..1Meta
implicitRulesΣ ?!0..1uri
language0..1codeBinding
id0..1string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
nameΣ1..1string
valueAddressAddress
valueAgeAge
valueAnnotationAnnotation
valueAttachmentAttachment
valueBase64Binarybase64Binary
valueBooleanboolean
valueCanonicalcanonical
valueCodecode
valueCodeableConceptCodeableConcept
valueCodingCoding
valueContactDetailContactDetail
valueContactPointContactPoint
valueContributorContributor
valueCountCount
valueDataRequirementDataRequirement
valueDatedate
valueDateTimedateTime
valueDecimaldecimal
valueDistanceDistance
valueDosageDosage
valueDurationDuration
valueExpressionExpression
valueHumanNameHumanName
valueIdid
valueIdentifierIdentifier
valueInstantinstant
valueIntegerinteger
valueMarkdownmarkdown
valueMetaMeta
valueMoneyMoney
valueOidoid
valueParameterDefinitionParameterDefinition
valuePeriodPeriod
valuePositiveIntpositiveInt
valueQuantityQuantity
valueRangeRange
valueRatioRatio
valueReferenceReference
valueRelatedArtifactRelatedArtifact
valueSampledDataSampledData
valueSignatureSignature
valueStringstring
valueTimetime
valueTimingTiming
valueTriggerDefinitionTriggerDefinition
valueUnsignedIntunsignedInt
valueUriuri
valueUrlurl
valueUsageContextUsageContext
valueUuiduuid
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
resourceΣ C1..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.