{
  "resourceType": "StructureDefinition",
  "id": "set-context-input-parameters",
  "text": {
    "status": "additional",
    "div": "<div xmlns=\"http://www.w3.org/1999/xhtml\"><p>Referenced within the <code>$set-context</code> OperationDefinition in the <a href=\"https://hl7.org/fhir/r4/operationdefinition-definitions.html#OperationDefinition.inputProfile\">OperationDefinition.inputProfile</a> element, this profile provides additional constraints on the <a href=\"https://hl7.org/fhir/r4/Parameters.html\">Parameters</a> resource sent during the operation's invocation. While the <a href=\"https://hl7.org/fhir/r4/OperationDefinition.html\">OperationDefinition</a> resource typically allows for sufficient rule definition, FHIR R4 imposes a limitation: <code>Rule: A targetProfile can only be specified for parameters of type Reference or Canonical</code> (i.e., resource-typed parameters cannot be profiled using the <a href=\"https://hl7.org/fhir/r4/operationdefinition-definitions.html#OperationDefinition.parameter.targetProfile\">OperationDefinition.parameter.targetProfile</a> element). This limitation was addressed in FHIR R5 to accommodate such use cases, but for FHIR R4, the SetContextInputParameters profile ensures that the <code>resources</code> Bundle input parameter in <code>$set-context</code> is restricted to Bundles conforming to the SetContextTransactionBundle profile.</p></div>"
  },
  "url": "http://fhir.infoway-inforoute.ca/io/HALO/StructureDefinition/set-context-input-parameters",
  "name": "SetContextInputParameters",
  "status": "draft",
  "description": "A profile capturing more nuanced rules for the input Parameters resource that is submitted on invocation of 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",
  "differential": {
    "element": [
      {
        "id": "Parameters.parameter",
        "path": "Parameters.parameter",
        "slicing": {
          "discriminator": [
            {
              "type": "pattern",
              "path": "name"
            }
          ],
          "ordered": false,
          "rules": "open"
        }
      },
      {
        "id": "Parameters.parameter:appID",
        "path": "Parameters.parameter",
        "sliceName": "appID",
        "min": 0,
        "max": "1"
      },
      {
        "id": "Parameters.parameter:appID.name",
        "path": "Parameters.parameter.name",
        "fixedString": "appId"
      },
      {
        "id": "Parameters.parameter:appID.value[x]",
        "path": "Parameters.parameter.value[x]",
        "min": 1,
        "type": [
          {
            "code": "string"
          }
        ]
      },
      {
        "id": "Parameters.parameter:patient",
        "path": "Parameters.parameter",
        "sliceName": "patient",
        "min": 0,
        "max": "1"
      },
      {
        "id": "Parameters.parameter:patient.name",
        "path": "Parameters.parameter.name",
        "fixedString": "patient"
      },
      {
        "id": "Parameters.parameter:patient.value[x]",
        "path": "Parameters.parameter.value[x]",
        "min": 1,
        "type": [
          {
            "code": "Reference",
            "targetProfile": [
              "http://hl7.org/fhir/StructureDefinition/Patient"
            ]
          }
        ]
      },
      {
        "id": "Parameters.parameter:encounter",
        "path": "Parameters.parameter",
        "sliceName": "encounter",
        "min": 0,
        "max": "1"
      },
      {
        "id": "Parameters.parameter:encounter.name",
        "path": "Parameters.parameter.name",
        "fixedString": "encounter"
      },
      {
        "id": "Parameters.parameter:encounter.value[x]",
        "path": "Parameters.parameter.value[x]",
        "min": 1,
        "type": [
          {
            "code": "Reference",
            "targetProfile": [
              "http://hl7.org/fhir/StructureDefinition/Encounter"
            ]
          }
        ]
      },
      {
        "id": "Parameters.parameter:fhirContext",
        "path": "Parameters.parameter",
        "sliceName": "fhirContext",
        "min": 0,
        "max": "*"
      },
      {
        "id": "Parameters.parameter:fhirContext.name",
        "path": "Parameters.parameter.name",
        "fixedString": "fhirContext"
      },
      {
        "id": "Parameters.parameter:fhirContext.value[x]",
        "path": "Parameters.parameter.value[x]",
        "min": 1,
        "type": [
          {
            "code": "Reference",
            "targetProfile": [
              "http://hl7.org/fhir/StructureDefinition/Resource"
            ]
          }
        ]
      },
      {
        "id": "Parameters.parameter:fhirUser",
        "path": "Parameters.parameter",
        "sliceName": "fhirUser",
        "min": 0,
        "max": "1"
      },
      {
        "id": "Parameters.parameter:fhirUser.name",
        "path": "Parameters.parameter.name",
        "fixedString": "fhirUser"
      },
      {
        "id": "Parameters.parameter:fhirUser.value[x]",
        "path": "Parameters.parameter.value[x]",
        "min": 1,
        "type": [
          {
            "code": "Reference",
            "targetProfile": [
              "http://hl7.org/fhir/StructureDefinition/PractitionerRole"
            ]
          }
        ]
      },
      {
        "id": "Parameters.parameter:need_patient_banner",
        "path": "Parameters.parameter",
        "sliceName": "need_patient_banner",
        "min": 0,
        "max": "1"
      },
      {
        "id": "Parameters.parameter:need_patient_banner.name",
        "path": "Parameters.parameter.name",
        "fixedString": "need_patient_banner"
      },
      {
        "id": "Parameters.parameter:need_patient_banner.value[x]",
        "path": "Parameters.parameter.value[x]",
        "min": 1,
        "type": [
          {
            "code": "boolean"
          }
        ]
      },
      {
        "id": "Parameters.parameter:intent",
        "path": "Parameters.parameter",
        "sliceName": "intent",
        "min": 0,
        "max": "1"
      },
      {
        "id": "Parameters.parameter:intent.name",
        "path": "Parameters.parameter.name",
        "fixedString": "intent"
      },
      {
        "id": "Parameters.parameter:intent.value[x]",
        "path": "Parameters.parameter.value[x]",
        "min": 1,
        "type": [
          {
            "code": "string"
          }
        ]
      },
      {
        "id": "Parameters.parameter:smart_style_url",
        "path": "Parameters.parameter",
        "sliceName": "smart_style_url",
        "min": 0,
        "max": "1"
      },
      {
        "id": "Parameters.parameter:smart_style_url.name",
        "path": "Parameters.parameter.name",
        "fixedString": "smart_style_url"
      },
      {
        "id": "Parameters.parameter:smart_style_url.value[x]",
        "path": "Parameters.parameter.value[x]",
        "min": 1,
        "type": [
          {
            "code": "url"
          }
        ]
      },
      {
        "id": "Parameters.parameter:tenant",
        "path": "Parameters.parameter",
        "sliceName": "tenant",
        "min": 0,
        "max": "1"
      },
      {
        "id": "Parameters.parameter:tenant.name",
        "path": "Parameters.parameter.name",
        "fixedString": "tenant"
      },
      {
        "id": "Parameters.parameter:tenant.value[x]",
        "path": "Parameters.parameter.value[x]",
        "min": 1,
        "type": [
          {
            "code": "string"
          }
        ]
      },
      {
        "id": "Parameters.parameter:resources",
        "path": "Parameters.parameter",
        "sliceName": "resources",
        "min": 0,
        "max": "1"
      },
      {
        "id": "Parameters.parameter:resources.name",
        "path": "Parameters.parameter.name",
        "fixedString": "resources"
      },
      {
        "id": "Parameters.parameter:resources.value[x]",
        "path": "Parameters.parameter.value[x]",
        "max": "0"
      },
      {
        "id": "Parameters.parameter:resources.resource",
        "path": "Parameters.parameter.resource",
        "min": 1,
        "type": [
          {
            "code": "Bundle",
            "profile": [
              "http://fhir.infoway-inforoute.ca/io/HALO/StructureDefinition/set-context-transaction-bundle"
            ]
          }
        ]
      },
      {
        "id": "Parameters.parameter:resources.part",
        "path": "Parameters.parameter.part",
        "max": "0"
      }
    ]
  }
}