{
  "resourceType": "StructureDefinition",
  "id": "nexus-privacy-directive",
  "extension": [
    {
      "url": "https://fhir.apps.health/StructureDefinition/effective-date",
      "extension": [
        {
          "url": "paths",
          "valueString": "provision.period.start | dateTime"
        }
      ]
    },
    {
      "url": "https://fhir.apps.health/StructureDefinition/smart-exposed",
      "extension": [
        {
          "url": "read",
          "valueString": "consent:read"
        }
      ]
    }
  ],
  "url": "https://fhir.apps.health/StructureDefinition/nexus-privacy-directive",
  "name": "NexusPrivacyDirective",
  "title": "Privacy Directive Profile",
  "status": "draft",
  "experimental": true,
  "description": "A patient's standing restriction on the collection, use or disclosure of their own personal\nhealth information -- the instruction PHIPA calls a lockbox.\n\nThe decision is `provision.type` on the ROOT provision -- `deny` for a lockbox -- and `status` says\nonly whether the record is operative. That is the same reading as every other Consent profile in\nthis guide, so a consumer does not need to know which family it holds to read a decision.\n\n**Required on the root, which diverges from R4's element text.** R4 says `type` is \"not permitted in\nroot rule\". IHE Privacy Consent on FHIR and Ontario's Provincial Consent Override Interface both\nrequire it there anyway, because a consent whose base rule states no decision states none where a\nreader looks first. A directive carrying no root type is malformed: do not infer `permit`, fail\nclosed.\n\n`category` carries a required, searchable family code. It says WHAT a decision governs -- an\napplication, a catalogue item, or the record itself -- and is no longer needed to read the decision\nitself.\n\n⚠ FIRST PASS. This profile defines how a restriction is RECORDED. It does not implement one: no\nrelease path in this estate currently consults a directive before disclosing. What a consumer\nmust do with a directive is set out in the handbook.",
  "fhirVersion": "4.0.1",
  "mapping": [
    {
      "identity": "workflow",
      "uri": "http://hl7.org/fhir/workflow",
      "name": "Workflow Pattern"
    },
    {
      "identity": "v2",
      "uri": "http://hl7.org/v2",
      "name": "HL7 v2 Mapping"
    },
    {
      "identity": "rim",
      "uri": "http://hl7.org/v3",
      "name": "RIM Mapping"
    },
    {
      "identity": "w5",
      "uri": "http://hl7.org/fhir/fivews",
      "name": "FiveWs Pattern Mapping"
    }
  ],
  "kind": "resource",
  "abstract": false,
  "type": "Consent",
  "baseDefinition": "http://hl7.org/fhir/StructureDefinition/Consent",
  "derivation": "constraint",
  "snapshot": {
    "element": [
      {
        "id": "Consent",
        "path": "Consent",
        "short": "A patient's standing restriction on their own record (lockbox)",
        "definition": "Records an instruction from the patient, or from a person authorized to instruct on their behalf,\nrestricting what may be done with their personal health information.\n\n**One directive per instruction, superseded rather than edited.** Unlike item consent, which keeps\none resource per item and updates it in place, a directive is a statement made at a moment. When\nthe patient changes their instruction, the prior directive moves to `inactive` and a NEW directive\nrecords the new instruction. The reason is evidentiary: a directive is the thing an auditor holds\nup to justify or condemn a disclosure decision, and \"what did this say on the day we released the\nrecord\" must be answerable without reconstructing it from version history.\n\n**Absence of a directive is not permission.** It means no restriction has been recorded. Whether\na disclosure is lawful without one is a question for the applicable policy and the purpose of the\ndisclosure, not a question this resource answers. A consumer MUST NOT treat \"no directive found\"\nas an authorization; it is the absence of one input to a decision that has other inputs.\n\n**Finding a patient's directives.** Select the family, then filter on status:\n\n```\nGET Consent?patient={id}&category=https://fhir.apps.health/CodeSystem/nexus-consent-family|privacy-directive&status=active\n```\n\nOmitting the category returns app consents and item consents alongside directives, and all three\ncarry `scope = patient-privacy`, so scope will not separate them.",
        "comment": "Broadly, there are 3 key areas of consent for patients: Consent around sharing information (aka Privacy Consent Directive - Authorization to Collect, Use, or Disclose information), consent for specific treatment, or kinds of treatment, and general advance care directives.",
        "min": 0,
        "max": "*",
        "base": {
          "path": "Consent",
          "min": 0,
          "max": "*"
        },
        "constraint": [
          {
            "key": "dom-2",
            "severity": "error",
            "human": "If the resource is contained in another resource, it SHALL NOT contain nested Resources",
            "expression": "contained.contained.empty()",
            "xpath": "not(parent::f:contained and f:contained)",
            "source": "http://hl7.org/fhir/StructureDefinition/DomainResource"
          },
          {
            "key": "dom-3",
            "severity": "error",
            "human": "If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource",
            "expression": "contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()",
            "xpath": "not(exists(for $id in f:contained/*/f:id/@value return $contained[not(parent::*/descendant::f:reference/@value=concat('#', $contained/*/id/@value) or descendant::f:reference[@value='#'])]))",
            "source": "http://hl7.org/fhir/StructureDefinition/DomainResource"
          },
          {
            "key": "dom-4",
            "severity": "error",
            "human": "If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated",
            "expression": "contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()",
            "xpath": "not(exists(f:contained/*/f:meta/f:versionId)) and not(exists(f:contained/*/f:meta/f:lastUpdated))",
            "source": "http://hl7.org/fhir/StructureDefinition/DomainResource"
          },
          {
            "key": "dom-5",
            "severity": "error",
            "human": "If a resource is contained in another resource, it SHALL NOT have a security label",
            "expression": "contained.meta.security.empty()",
            "xpath": "not(exists(f:contained/*/f:meta/f:security))",
            "source": "http://hl7.org/fhir/StructureDefinition/DomainResource"
          },
          {
            "extension": [
              {
                "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bestpractice",
                "valueBoolean": true
              },
              {
                "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bestpractice-explanation",
                "valueMarkdown": "When a resource has no narrative, only systems that fully understand the data can display the resource to a human safely. Including a human readable representation in the resource makes for a much more robust eco-system and cheaper handling of resources by intermediary systems. Some ecosystems restrict distribution of resources to only those systems that do fully understand the resources, and as a consequence implementers may believe that the narrative is superfluous. However experience shows that such eco-systems often open up to new participants over time."
              }
            ],
            "key": "dom-6",
            "severity": "warning",
            "human": "A resource should have narrative for robust management",
            "expression": "text.`div`.exists()",
            "xpath": "exists(f:text/h:div)",
            "source": "http://hl7.org/fhir/StructureDefinition/DomainResource"
          },
          {
            "key": "ppc-1",
            "severity": "error",
            "human": "Either a Policy or PolicyRule",
            "expression": "policy.exists() or policyRule.exists()",
            "xpath": "exists(f:policy) or exists(f:policyRule)"
          },
          {
            "key": "ppc-2",
            "severity": "error",
            "human": "IF Scope=privacy, there must be a patient",
            "expression": "patient.exists() or scope.coding.where(system='something' and code='patient-privacy').exists().not()",
            "xpath": "exists(f:patient) or not(exists(f:scope/f:coding[f:system/@value='something' and f:code/@value='patient-privacy'])))"
          },
          {
            "key": "ppc-3",
            "severity": "error",
            "human": "IF Scope=research, there must be a patient",
            "expression": "patient.exists() or scope.coding.where(system='something' and code='research').exists().not()",
            "xpath": "exists(f:patient) or not(exists(f:scope/f:coding[f:system/@value='something' and f:code/@value='research'])))"
          },
          {
            "key": "ppc-4",
            "severity": "error",
            "human": "IF Scope=adr, there must be a patient",
            "expression": "patient.exists() or scope.coding.where(system='something' and code='adr').exists().not()",
            "xpath": "exists(f:patient) or not(exists(f:scope/f:coding[f:system/@value='something' and f:code/@value='adr'])))"
          },
          {
            "key": "ppc-5",
            "severity": "error",
            "human": "IF Scope=treatment, there must be a patient",
            "expression": "patient.exists() or scope.coding.where(system='something' and code='treatment').exists().not()",
            "xpath": "exists(f:patient) or not(exists(f:scope/f:coding[f:system/@value='something' and f:code/@value='treatment'])))"
          },
          {
            "key": "privacy-directive-exception-states-a-purpose",
            "severity": "warning",
            "human": "A nested exception on a privacy directive SHOULD name the purpose it exists for. Without one, a standing break-glass carve-out cannot be distinguished from an ordinary permission, and the two carry different review obligations",
            "expression": "provision.provision.all(purpose.exists())",
            "source": "https://fhir.apps.health/StructureDefinition/nexus-privacy-directive"
          }
        ],
        "isModifier": false,
        "isSummary": false,
        "mapping": [
          {
            "identity": "rim",
            "map": "Entity. Role, or Act"
          },
          {
            "identity": "workflow",
            "map": "Event"
          },
          {
            "identity": "v2",
            "map": "CON"
          },
          {
            "identity": "rim",
            "map": "FinancialConsent"
          }
        ]
      },
      {
        "id": "Consent.id",
        "path": "Consent.id",
        "short": "Logical id of this artifact",
        "definition": "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.",
        "comment": "The only time that a resource does not have an id is when it is being submitted to the server using a create operation.",
        "min": 0,
        "max": "1",
        "base": {
          "path": "Resource.id",
          "min": 0,
          "max": "1"
        },
        "type": [
          {
            "code": "http://hl7.org/fhirpath/System.String",
            "extension": [
              {
                "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-fhir-type",
                "valueUrl": "string"
              }
            ]
          }
        ],
        "isModifier": false,
        "isSummary": true
      },
      {
        "id": "Consent.meta",
        "path": "Consent.meta",
        "short": "Metadata about the resource",
        "definition": "The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.",
        "min": 0,
        "max": "1",
        "base": {
          "path": "Resource.meta",
          "min": 0,
          "max": "1"
        },
        "type": [
          {
            "code": "Meta"
          }
        ],
        "constraint": [
          {
            "key": "ele-1",
            "severity": "error",
            "human": "All FHIR elements must have a @value or children",
            "expression": "hasValue() or (children().count() > id.count())",
            "xpath": "@value|f:*|h:div",
            "source": "http://hl7.org/fhir/StructureDefinition/Element"
          }
        ],
        "isModifier": false,
        "isSummary": true
      },
      {
        "id": "Consent.meta.id",
        "path": "Consent.meta.id",
        "representation": [
          "xmlAttr"
        ],
        "short": "Unique id for inter-element referencing",
        "definition": "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.",
        "min": 0,
        "max": "1",
        "base": {
          "path": "Element.id",
          "min": 0,
          "max": "1"
        },
        "type": [
          {
            "code": "http://hl7.org/fhirpath/System.String",
            "extension": [
              {
                "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-fhir-type",
                "valueUrl": "string"
              }
            ]
          }
        ],
        "isModifier": false,
        "isSummary": false,
        "mapping": [
          {
            "identity": "rim",
            "map": "n/a"
          }
        ]
      },
      {
        "id": "Consent.meta.extension",
        "path": "Consent.meta.extension",
        "slicing": {
          "discriminator": [
            {
              "type": "value",
              "path": "url"
            }
          ],
          "description": "Extensions are always sliced by (at least) url",
          "rules": "open"
        },
        "short": "Additional content defined by implementations",
        "definition": "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.",
        "comment": "There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions.  The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.",
        "alias": [
          "extensions",
          "user content"
        ],
        "min": 0,
        "max": "*",
        "base": {
          "path": "Element.extension",
          "min": 0,
          "max": "*"
        },
        "type": [
          {
            "code": "Extension"
          }
        ],
        "constraint": [
          {
            "key": "ele-1",
            "severity": "error",
            "human": "All FHIR elements must have a @value or children",
            "expression": "hasValue() or (children().count() > id.count())",
            "xpath": "@value|f:*|h:div",
            "source": "http://hl7.org/fhir/StructureDefinition/Element"
          },
          {
            "key": "ext-1",
            "severity": "error",
            "human": "Must have either extensions or value[x], not both",
            "expression": "extension.exists() != value.exists()",
            "xpath": "exists(f:extension)!=exists(f:*[starts-with(local-name(.), \"value\")])",
            "source": "http://hl7.org/fhir/StructureDefinition/Extension"
          }
        ],
        "isModifier": false,
        "isSummary": false,
        "mapping": [
          {
            "identity": "rim",
            "map": "n/a"
          }
        ]
      },
      {
        "id": "Consent.meta.versionId",
        "path": "Consent.meta.versionId",
        "short": "Version specific identifier",
        "definition": "The version specific identifier, as it appears in the version portion of the URL. This value changes when the resource is created, updated, or deleted.",
        "comment": "The server assigns this value, and ignores what the client specifies, except in the case that the server is imposing version integrity on updates/deletes.",
        "min": 0,
        "max": "1",
        "base": {
          "path": "Meta.versionId",
          "min": 0,
          "max": "1"
        },
        "type": [
          {
            "code": "id"
          }
        ],
        "constraint": [
          {
            "key": "ele-1",
            "severity": "error",
            "human": "All FHIR elements must have a @value or children",
            "expression": "hasValue() or (children().count() > id.count())",
            "xpath": "@value|f:*|h:div",
            "source": "http://hl7.org/fhir/StructureDefinition/Element"
          }
        ],
        "isModifier": false,
        "isSummary": true
      },
      {
        "id": "Consent.meta.lastUpdated",
        "path": "Consent.meta.lastUpdated",
        "short": "When the resource version last changed",
        "definition": "When the resource last changed - e.g. when the version changed.",
        "comment": "This value is always populated except when the resource is first being created. The server / resource manager sets this value; what a client provides is irrelevant. This is equivalent to the HTTP Last-Modified and SHOULD have the same value on a [read](http.html#read) interaction.",
        "min": 0,
        "max": "1",
        "base": {
          "path": "Meta.lastUpdated",
          "min": 0,
          "max": "1"
        },
        "type": [
          {
            "code": "instant"
          }
        ],
        "constraint": [
          {
            "key": "ele-1",
            "severity": "error",
            "human": "All FHIR elements must have a @value or children",
            "expression": "hasValue() or (children().count() > id.count())",
            "xpath": "@value|f:*|h:div",
            "source": "http://hl7.org/fhir/StructureDefinition/Element"
          }
        ],
        "isModifier": false,
        "isSummary": true
      },
      {
        "id": "Consent.meta.source",
        "path": "Consent.meta.source",
        "short": "Identifies EMR instance & pipeline version the resource came from",
        "definition": "A URI that identifies the EMR pipeline and version from which this resource originated.  This tells you which EMR instance (recommend using the instance identifier), and the version of the pipeline code/transformations.",
        "comment": "In the provenance resource, this corresponds to Provenance.entity.what[x]. The exact use of the source (and the implied Provenance.entity.role) is left to implementer discretion. Only one nominated source is allowed; for additional provenance details, a full Provenance resource should be used. \n\nThis element can be used to indicate where the current master source of a resource that has a canonical URL if the resource is no longer hosted at the canonical URL.",
        "min": 0,
        "max": "1",
        "base": {
          "path": "Meta.source",
          "min": 0,
          "max": "1"
        },
        "type": [
          {
            "code": "uri"
          }
        ],
        "constraint": [
          {
            "key": "ele-1",
            "severity": "error",
            "human": "All FHIR elements must have a @value or children",
            "expression": "hasValue() or (children().count() > id.count())",
            "xpath": "@value|f:*|h:div",
            "source": "http://hl7.org/fhir/StructureDefinition/Element"
          }
        ],
        "mustSupport": true,
        "isModifier": false,
        "isSummary": true
      },
      {
        "id": "Consent.meta.profile",
        "path": "Consent.meta.profile",
        "short": "Profiles this resource claims to conform to",
        "definition": "A list of profiles (references to [StructureDefinition](structuredefinition.html#) resources) that this resource claims to conform to. The URL is a reference to [StructureDefinition.url](structuredefinition-definitions.html#StructureDefinition.url).",
        "comment": "It is up to the server and/or other infrastructure of policy to determine whether/how these claims are verified and/or updated over time.  The list of profile URLs is a set.",
        "min": 0,
        "max": "*",
        "base": {
          "path": "Meta.profile",
          "min": 0,
          "max": "*"
        },
        "type": [
          {
            "code": "canonical",
            "targetProfile": [
              "http://hl7.org/fhir/StructureDefinition/StructureDefinition"
            ]
          }
        ],
        "constraint": [
          {
            "key": "ele-1",
            "severity": "error",
            "human": "All FHIR elements must have a @value or children",
            "expression": "hasValue() or (children().count() > id.count())",
            "xpath": "@value|f:*|h:div",
            "source": "http://hl7.org/fhir/StructureDefinition/Element"
          }
        ],
        "isModifier": false,
        "isSummary": true
      },
      {
        "id": "Consent.meta.security",
        "path": "Consent.meta.security",
        "short": "Security Labels applied to this resource",
        "definition": "Security labels applied to this resource. These tags connect specific resources to the overall security policy and infrastructure.",
        "comment": "The security labels can be updated without changing the stated version of the resource. The list of security labels is a set. Uniqueness is based the system/code, and version and display are ignored.",
        "min": 0,
        "max": "*",
        "base": {
          "path": "Meta.security",
          "min": 0,
          "max": "*"
        },
        "type": [
          {
            "code": "Coding"
          }
        ],
        "constraint": [
          {
            "key": "ele-1",
            "severity": "error",
            "human": "All FHIR elements must have a @value or children",
            "expression": "hasValue() or (children().count() > id.count())",
            "xpath": "@value|f:*|h:div",
            "source": "http://hl7.org/fhir/StructureDefinition/Element"
          }
        ],
        "isModifier": false,
        "isSummary": true,
        "binding": {
          "extension": [
            {
              "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName",
              "valueString": "SecurityLabels"
            },
            {
              "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-isCommonBinding",
              "valueBoolean": true
            }
          ],
          "strength": "extensible",
          "description": "Security Labels from the Healthcare Privacy and Security Classification System.",
          "valueSet": "http://hl7.org/fhir/ValueSet/security-labels"
        }
      },
      {
        "id": "Consent.meta.tag",
        "path": "Consent.meta.tag",
        "short": "Tags applied to this resource",
        "definition": "Tags applied to this resource. Tags are intended to be used to identify and relate resources to process and workflow, and applications are not required to consider the tags when interpreting the meaning of a resource.",
        "comment": "The tags can be updated without changing the stated version of the resource. The list of tags is a set. Uniqueness is based the system/code, and version and display are ignored.",
        "min": 0,
        "max": "*",
        "base": {
          "path": "Meta.tag",
          "min": 0,
          "max": "*"
        },
        "type": [
          {
            "code": "Coding"
          }
        ],
        "constraint": [
          {
            "key": "ele-1",
            "severity": "error",
            "human": "All FHIR elements must have a @value or children",
            "expression": "hasValue() or (children().count() > id.count())",
            "xpath": "@value|f:*|h:div",
            "source": "http://hl7.org/fhir/StructureDefinition/Element"
          }
        ],
        "isModifier": false,
        "isSummary": true,
        "binding": {
          "extension": [
            {
              "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName",
              "valueString": "Tags"
            }
          ],
          "strength": "example",
          "description": "Codes that represent various types of tags, commonly workflow-related; e.g. \"Needs review by Dr. Jones\".",
          "valueSet": "http://hl7.org/fhir/ValueSet/common-tags"
        }
      },
      {
        "id": "Consent.implicitRules",
        "path": "Consent.implicitRules",
        "short": "A set of rules under which this content was created",
        "definition": "A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.",
        "comment": "Asserting this rule set restricts the content to be only understood by a limited set of trading partners. This inherently limits the usefulness of the data in the long term. However, the existing health eco-system is highly fractured, and not yet ready to define, collect, and exchange data in a generally computable sense. Wherever possible, implementers and/or specification writers should avoid using this element. Often, when used, the URL is a reference to an implementation guide that defines these special rules as part of it's narrative along with other profiles, value sets, etc.",
        "min": 0,
        "max": "1",
        "base": {
          "path": "Resource.implicitRules",
          "min": 0,
          "max": "1"
        },
        "type": [
          {
            "code": "uri"
          }
        ],
        "constraint": [
          {
            "key": "ele-1",
            "severity": "error",
            "human": "All FHIR elements must have a @value or children",
            "expression": "hasValue() or (children().count() > id.count())",
            "xpath": "@value|f:*|h:div",
            "source": "http://hl7.org/fhir/StructureDefinition/Element"
          }
        ],
        "isModifier": true,
        "isModifierReason": "This element is labeled as a modifier because the implicit rules may provide additional knowledge about the resource that modifies it's meaning or interpretation",
        "isSummary": true
      },
      {
        "id": "Consent.language",
        "path": "Consent.language",
        "short": "Language of the resource content",
        "definition": "The base language in which the resource is written.",
        "comment": "Language is provided to support indexing and accessibility (typically, services such as text to speech use the language tag). The html language tag in the narrative applies  to the narrative. The language tag on the resource may be used to specify the language of other presentations generated from the data in the resource. Not all the content has to be in the base language. The Resource.language should not be assumed to apply to the narrative automatically. If a language is specified, it should it also be specified on the div element in the html (see rules in HTML5 for information about the relationship between xml:lang and the html lang attribute).",
        "min": 0,
        "max": "1",
        "base": {
          "path": "Resource.language",
          "min": 0,
          "max": "1"
        },
        "type": [
          {
            "code": "code"
          }
        ],
        "constraint": [
          {
            "key": "ele-1",
            "severity": "error",
            "human": "All FHIR elements must have a @value or children",
            "expression": "hasValue() or (children().count() > id.count())",
            "xpath": "@value|f:*|h:div",
            "source": "http://hl7.org/fhir/StructureDefinition/Element"
          }
        ],
        "isModifier": false,
        "isSummary": false,
        "binding": {
          "extension": [
            {
              "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-maxValueSet",
              "valueCanonical": "http://hl7.org/fhir/ValueSet/all-languages"
            },
            {
              "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName",
              "valueString": "Language"
            },
            {
              "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-isCommonBinding",
              "valueBoolean": true
            }
          ],
          "strength": "preferred",
          "description": "A human language.",
          "valueSet": "http://hl7.org/fhir/ValueSet/languages"
        }
      },
      {
        "id": "Consent.text",
        "path": "Consent.text",
        "short": "Text summary of the resource, for human interpretation",
        "definition": "A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it \"clinically safe\" for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.",
        "comment": "Contained resources do not have narrative. Resources that are not contained SHOULD have a narrative. In some cases, a resource may only have text with little or no additional discrete data (as long as all minOccurs=1 elements are satisfied).  This may be necessary for data from legacy systems where information is captured as a \"text blob\" or where text is additionally entered raw or narrated and encoded information is added later.",
        "alias": [
          "narrative",
          "html",
          "xhtml",
          "display"
        ],
        "min": 0,
        "max": "1",
        "base": {
          "path": "DomainResource.text",
          "min": 0,
          "max": "1"
        },
        "type": [
          {
            "code": "Narrative"
          }
        ],
        "constraint": [
          {
            "key": "ele-1",
            "severity": "error",
            "human": "All FHIR elements must have a @value or children",
            "expression": "hasValue() or (children().count() > id.count())",
            "xpath": "@value|f:*|h:div",
            "source": "http://hl7.org/fhir/StructureDefinition/Element"
          }
        ],
        "isModifier": false,
        "isSummary": false,
        "mapping": [
          {
            "identity": "rim",
            "map": "Act.text?"
          }
        ]
      },
      {
        "id": "Consent.contained",
        "path": "Consent.contained",
        "short": "Contained, inline Resources",
        "definition": "These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope.",
        "comment": "This should never be done when the content can be identified properly, as once identification is lost, it is extremely difficult (and context dependent) to restore it again. Contained resources may have profiles and tags In their meta elements, but SHALL NOT have security labels.",
        "alias": [
          "inline resources",
          "anonymous resources",
          "contained resources"
        ],
        "min": 0,
        "max": "*",
        "base": {
          "path": "DomainResource.contained",
          "min": 0,
          "max": "*"
        },
        "type": [
          {
            "code": "Resource"
          }
        ],
        "isModifier": false,
        "isSummary": false,
        "mapping": [
          {
            "identity": "rim",
            "map": "N/A"
          }
        ]
      },
      {
        "id": "Consent.extension",
        "path": "Consent.extension",
        "short": "Additional content defined by implementations",
        "definition": "May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.",
        "comment": "There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions.  The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.",
        "alias": [
          "extensions",
          "user content"
        ],
        "min": 0,
        "max": "*",
        "base": {
          "path": "DomainResource.extension",
          "min": 0,
          "max": "*"
        },
        "type": [
          {
            "code": "Extension"
          }
        ],
        "constraint": [
          {
            "key": "ele-1",
            "severity": "error",
            "human": "All FHIR elements must have a @value or children",
            "expression": "hasValue() or (children().count() > id.count())",
            "xpath": "@value|f:*|h:div",
            "source": "http://hl7.org/fhir/StructureDefinition/Element"
          },
          {
            "key": "ext-1",
            "severity": "error",
            "human": "Must have either extensions or value[x], not both",
            "expression": "extension.exists() != value.exists()",
            "xpath": "exists(f:extension)!=exists(f:*[starts-with(local-name(.), \"value\")])",
            "source": "http://hl7.org/fhir/StructureDefinition/Extension"
          }
        ],
        "isModifier": false,
        "isSummary": false,
        "mapping": [
          {
            "identity": "rim",
            "map": "N/A"
          }
        ]
      },
      {
        "id": "Consent.modifierExtension",
        "path": "Consent.modifierExtension",
        "short": "Extensions that cannot be ignored",
        "definition": "May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).",
        "comment": "There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions.  The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.",
        "requirements": "Modifier extensions allow for extensions that *cannot* be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored.  This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the [definition of modifier extensions](extensibility.html#modifierExtension).",
        "alias": [
          "extensions",
          "user content"
        ],
        "min": 0,
        "max": "*",
        "base": {
          "path": "DomainResource.modifierExtension",
          "min": 0,
          "max": "*"
        },
        "type": [
          {
            "code": "Extension"
          }
        ],
        "constraint": [
          {
            "key": "ele-1",
            "severity": "error",
            "human": "All FHIR elements must have a @value or children",
            "expression": "hasValue() or (children().count() > id.count())",
            "xpath": "@value|f:*|h:div",
            "source": "http://hl7.org/fhir/StructureDefinition/Element"
          },
          {
            "key": "ext-1",
            "severity": "error",
            "human": "Must have either extensions or value[x], not both",
            "expression": "extension.exists() != value.exists()",
            "xpath": "exists(f:extension)!=exists(f:*[starts-with(local-name(.), \"value\")])",
            "source": "http://hl7.org/fhir/StructureDefinition/Extension"
          }
        ],
        "isModifier": true,
        "isModifierReason": "Modifier extensions are expected to modify the meaning or interpretation of the resource that contains them",
        "isSummary": false,
        "mapping": [
          {
            "identity": "rim",
            "map": "N/A"
          }
        ]
      },
      {
        "id": "Consent.identifier",
        "path": "Consent.identifier",
        "short": "Business identifier(s) for the directive",
        "definition": "Stable identifier for the instruction, carried so that a directive can be correlated with the\npaper or portal request that created it, with a superseding directive, and with an audit entry\nthat names the directive a decision relied on.\n\nDeliberately NOT a deterministic key derived from patient and type. Item consent uses such a key\nbecause exactly one resource exists per pair and a writer needs to create-or-update in one call.\nA directive is the opposite case: several may be active for one patient at once, and a\nconditional update keyed on the patient would overwrite an unrelated restriction.",
        "comment": "This identifier identifies this copy of the consent. Where this identifier is also used elsewhere as the identifier for a consent record (e.g. a CDA consent document) then the consent details are expected to be the same.",
        "min": 0,
        "max": "*",
        "base": {
          "path": "Consent.identifier",
          "min": 0,
          "max": "*"
        },
        "type": [
          {
            "code": "Identifier"
          }
        ],
        "example": [
          {
            "label": "General",
            "valueIdentifier": {
              "system": "urn:ietf:rfc:3986",
              "value": "Local eCMS identifier"
            }
          }
        ],
        "constraint": [
          {
            "key": "ele-1",
            "severity": "error",
            "human": "All FHIR elements must have a @value or children",
            "expression": "hasValue() or (children().count() > id.count())",
            "xpath": "@value|f:*|h:div",
            "source": "http://hl7.org/fhir/StructureDefinition/Element"
          }
        ],
        "mustSupport": true,
        "isModifier": false,
        "isSummary": true,
        "mapping": [
          {
            "identity": "workflow",
            "map": "Event.identifier"
          },
          {
            "identity": "w5",
            "map": "FiveWs.identifier"
          },
          {
            "identity": "rim",
            "map": ".id"
          }
        ]
      },
      {
        "id": "Consent.identifier.id",
        "path": "Consent.identifier.id",
        "representation": [
          "xmlAttr"
        ],
        "short": "Unique id for inter-element referencing",
        "definition": "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.",
        "min": 0,
        "max": "1",
        "base": {
          "path": "Element.id",
          "min": 0,
          "max": "1"
        },
        "type": [
          {
            "code": "http://hl7.org/fhirpath/System.String",
            "extension": [
              {
                "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-fhir-type",
                "valueUrl": "string"
              }
            ]
          }
        ],
        "isModifier": false,
        "isSummary": false,
        "mapping": [
          {
            "identity": "rim",
            "map": "n/a"
          }
        ]
      },
      {
        "id": "Consent.identifier.extension",
        "path": "Consent.identifier.extension",
        "slicing": {
          "discriminator": [
            {
              "type": "value",
              "path": "url"
            }
          ],
          "description": "Extensions are always sliced by (at least) url",
          "rules": "open"
        },
        "short": "Additional content defined by implementations",
        "definition": "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.",
        "comment": "There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions.  The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.",
        "alias": [
          "extensions",
          "user content"
        ],
        "min": 0,
        "max": "*",
        "base": {
          "path": "Element.extension",
          "min": 0,
          "max": "*"
        },
        "type": [
          {
            "code": "Extension"
          }
        ],
        "constraint": [
          {
            "key": "ele-1",
            "severity": "error",
            "human": "All FHIR elements must have a @value or children",
            "expression": "hasValue() or (children().count() > id.count())",
            "xpath": "@value|f:*|h:div",
            "source": "http://hl7.org/fhir/StructureDefinition/Element"
          },
          {
            "key": "ext-1",
            "severity": "error",
            "human": "Must have either extensions or value[x], not both",
            "expression": "extension.exists() != value.exists()",
            "xpath": "exists(f:extension)!=exists(f:*[starts-with(local-name(.), \"value\")])",
            "source": "http://hl7.org/fhir/StructureDefinition/Extension"
          }
        ],
        "isModifier": false,
        "isSummary": false,
        "mapping": [
          {
            "identity": "rim",
            "map": "n/a"
          }
        ]
      },
      {
        "id": "Consent.identifier.use",
        "path": "Consent.identifier.use",
        "short": "usual | official | temp | secondary | old (If known)",
        "definition": "The purpose of this identifier.",
        "comment": "Applications can assume that an identifier is permanent unless it explicitly says that it is temporary.",
        "requirements": "Allows the appropriate identifier for a particular context of use to be selected from among a set of identifiers.",
        "min": 0,
        "max": "1",
        "base": {
          "path": "Identifier.use",
          "min": 0,
          "max": "1"
        },
        "type": [
          {
            "code": "code"
          }
        ],
        "constraint": [
          {
            "key": "ele-1",
            "severity": "error",
            "human": "All FHIR elements must have a @value or children",
            "expression": "hasValue() or (children().count() > id.count())",
            "xpath": "@value|f:*|h:div",
            "source": "http://hl7.org/fhir/StructureDefinition/Element"
          }
        ],
        "isModifier": true,
        "isModifierReason": "This is labeled as \"Is Modifier\" because applications should not mistake a temporary id for a permanent one.",
        "isSummary": true,
        "binding": {
          "extension": [
            {
              "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName",
              "valueString": "IdentifierUse"
            }
          ],
          "strength": "required",
          "description": "Identifies the purpose for this identifier, if known .",
          "valueSet": "http://hl7.org/fhir/ValueSet/identifier-use|4.0.1"
        },
        "mapping": [
          {
            "identity": "v2",
            "map": "N/A"
          },
          {
            "identity": "rim",
            "map": "Role.code or implied by context"
          }
        ]
      },
      {
        "id": "Consent.identifier.type",
        "path": "Consent.identifier.type",
        "short": "Description of identifier",
        "definition": "A coded type for the identifier that can be used to determine which identifier to use for a specific purpose.",
        "comment": "This element deals only with general categories of identifiers.  It SHOULD not be used for codes that correspond 1..1 with the Identifier.system. Some identifiers may fall into multiple categories due to common usage.   Where the system is known, a type is unnecessary because the type is always part of the system definition. However systems often need to handle identifiers where the system is not known. There is not a 1:1 relationship between type and system, since many different systems have the same type.",
        "requirements": "Allows users to make use of identifiers when the identifier system is not known.",
        "min": 0,
        "max": "1",
        "base": {
          "path": "Identifier.type",
          "min": 0,
          "max": "1"
        },
        "type": [
          {
            "code": "CodeableConcept"
          }
        ],
        "constraint": [
          {
            "key": "ele-1",
            "severity": "error",
            "human": "All FHIR elements must have a @value or children",
            "expression": "hasValue() or (children().count() > id.count())",
            "xpath": "@value|f:*|h:div",
            "source": "http://hl7.org/fhir/StructureDefinition/Element"
          }
        ],
        "isModifier": false,
        "isSummary": true,
        "binding": {
          "extension": [
            {
              "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName",
              "valueString": "IdentifierType"
            },
            {
              "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-isCommonBinding",
              "valueBoolean": true
            }
          ],
          "strength": "extensible",
          "description": "A coded type for an identifier that can be used to determine which identifier to use for a specific purpose.",
          "valueSet": "http://hl7.org/fhir/ValueSet/identifier-type"
        },
        "mapping": [
          {
            "identity": "v2",
            "map": "CX.5"
          },
          {
            "identity": "rim",
            "map": "Role.code or implied by context"
          }
        ]
      },
      {
        "id": "Consent.identifier.system",
        "path": "Consent.identifier.system",
        "short": "The namespace for the identifier value",
        "definition": "Establishes the namespace for the value - that is, a URL that describes a set values that are unique.",
        "comment": "Identifier.system is always case sensitive.",
        "requirements": "There are many sets  of identifiers.  To perform matching of two identifiers, we need to know what set we're dealing with. The system identifies a particular set of unique identifiers.",
        "min": 1,
        "max": "1",
        "base": {
          "path": "Identifier.system",
          "min": 0,
          "max": "1"
        },
        "type": [
          {
            "code": "uri"
          }
        ],
        "example": [
          {
            "label": "General",
            "valueUri": "http://www.acme.com/identifiers/patient"
          }
        ],
        "constraint": [
          {
            "key": "ele-1",
            "severity": "error",
            "human": "All FHIR elements must have a @value or children",
            "expression": "hasValue() or (children().count() > id.count())",
            "xpath": "@value|f:*|h:div",
            "source": "http://hl7.org/fhir/StructureDefinition/Element"
          }
        ],
        "isModifier": false,
        "isSummary": true,
        "mapping": [
          {
            "identity": "v2",
            "map": "CX.4 / EI-2-4"
          },
          {
            "identity": "rim",
            "map": "II.root or Role.id.root"
          },
          {
            "identity": "servd",
            "map": "./IdentifierType"
          }
        ]
      },
      {
        "id": "Consent.identifier.value",
        "path": "Consent.identifier.value",
        "short": "The value that is unique",
        "definition": "The portion of the identifier typically relevant to the user and which is unique within the context of the system.",
        "comment": "If the value is a full URI, then the system SHALL be urn:ietf:rfc:3986.  The value's primary purpose is computational mapping.  As a result, it may be normalized for comparison purposes (e.g. removing non-significant whitespace, dashes, etc.)  A value formatted for human display can be conveyed using the [Rendered Value extension](extension-rendered-value.html). Identifier.value is to be treated as case sensitive unless knowledge of the Identifier.system allows the processer to be confident that non-case-sensitive processing is safe.",
        "min": 1,
        "max": "1",
        "base": {
          "path": "Identifier.value",
          "min": 0,
          "max": "1"
        },
        "type": [
          {
            "code": "string"
          }
        ],
        "example": [
          {
            "label": "General",
            "valueString": "123456"
          }
        ],
        "constraint": [
          {
            "key": "ele-1",
            "severity": "error",
            "human": "All FHIR elements must have a @value or children",
            "expression": "hasValue() or (children().count() > id.count())",
            "xpath": "@value|f:*|h:div",
            "source": "http://hl7.org/fhir/StructureDefinition/Element"
          }
        ],
        "isModifier": false,
        "isSummary": true,
        "mapping": [
          {
            "identity": "v2",
            "map": "CX.1 / EI.1"
          },
          {
            "identity": "rim",
            "map": "II.extension or II.root if system indicates OID or GUID (Or Role.id.extension or root)"
          },
          {
            "identity": "servd",
            "map": "./Value"
          }
        ]
      },
      {
        "id": "Consent.identifier.period",
        "path": "Consent.identifier.period",
        "short": "Time period when id is/was valid for use",
        "definition": "Time period during which identifier is/was valid for use.",
        "min": 0,
        "max": "1",
        "base": {
          "path": "Identifier.period",
          "min": 0,
          "max": "1"
        },
        "type": [
          {
            "code": "Period"
          }
        ],
        "constraint": [
          {
            "key": "ele-1",
            "severity": "error",
            "human": "All FHIR elements must have a @value or children",
            "expression": "hasValue() or (children().count() > id.count())",
            "xpath": "@value|f:*|h:div",
            "source": "http://hl7.org/fhir/StructureDefinition/Element"
          }
        ],
        "isModifier": false,
        "isSummary": true,
        "mapping": [
          {
            "identity": "v2",
            "map": "CX.7 + CX.8"
          },
          {
            "identity": "rim",
            "map": "Role.effectiveTime or implied by context"
          },
          {
            "identity": "servd",
            "map": "./StartDate and ./EndDate"
          }
        ]
      },
      {
        "id": "Consent.identifier.assigner",
        "path": "Consent.identifier.assigner",
        "short": "Organization that issued id (may be just text)",
        "definition": "Organization that issued/manages the identifier.",
        "comment": "The Identifier.assigner may omit the .reference element and only contain a .display element reflecting the name or other textual information about the assigning organization.",
        "min": 0,
        "max": "1",
        "base": {
          "path": "Identifier.assigner",
          "min": 0,
          "max": "1"
        },
        "type": [
          {
            "code": "Reference",
            "targetProfile": [
              "http://hl7.org/fhir/StructureDefinition/Organization"
            ]
          }
        ],
        "constraint": [
          {
            "key": "ele-1",
            "severity": "error",
            "human": "All FHIR elements must have a @value or children",
            "expression": "hasValue() or (children().count() > id.count())",
            "xpath": "@value|f:*|h:div",
            "source": "http://hl7.org/fhir/StructureDefinition/Element"
          }
        ],
        "isModifier": false,
        "isSummary": true,
        "mapping": [
          {
            "identity": "v2",
            "map": "CX.4 / (CX.4,CX.9,CX.10)"
          },
          {
            "identity": "rim",
            "map": "II.assigningAuthorityName but note that this is an improper use by the definition of the field.  Also Role.scoper"
          },
          {
            "identity": "servd",
            "map": "./IdentifierIssuingAuthority"
          }
        ]
      },
      {
        "id": "Consent.status",
        "path": "Consent.status",
        "short": "active (in force) | inactive (superseded or withdrawn) | entered-in-error",
        "definition": "Whether this directive is currently operative. **It is not the decision.** The decision -- what is\nrestricted, from whom -- is in the provision tree.\n\n- `active` — **in force**. The restriction stated in the provisions applies now, subject to\n  `provision.period` where one is given.\n- `inactive` — **no longer operative**. R4 defines this as terminated or replaced, which is\n  exactly right here: the patient withdrew the restriction, or a superseding directive replaced\n  it. Both are recoverable from `identifier` and version history.\n- `entered-in-error` — recorded wrongly. Ignore it; it was never an instruction.\n\n`draft` and `proposed` are legal against the required base binding and carry no meaning in this\nprofile. `rejected` is legal too and MUST NOT be written here: on the item-consent profile it\nmeans the patient declined, and a reader who has seen that family will carry the wrong reading\nacross.\n\n**Why `inactive` here and `rejected` there.** The two profiles take opposite readings of the same\nvocabulary, deliberately. Item consent keeps one resource per item and updates it in place, so it\nneeds one current-state code meaning \"not permitted\" whether the patient declined or withdrew;\n`rejected` carries that. A directive is superseded rather than updated, so a withdrawn restriction\nis a terminated one, which is what `inactive` means. Neither profile is reading the vocabulary\nloosely; they are modelling different lifecycles and the codes follow.",
        "comment": "This element is labeled as a modifier because the status contains the codes rejected and entered-in-error that mark the Consent as not currently valid.",
        "requirements": "The Consent Directive that is pointed to might be in various lifecycle states, e.g., a revoked Consent Directive.",
        "min": 1,
        "max": "1",
        "base": {
          "path": "Consent.status",
          "min": 1,
          "max": "1"
        },
        "type": [
          {
            "code": "code"
          }
        ],
        "constraint": [
          {
            "key": "ele-1",
            "severity": "error",
            "human": "All FHIR elements must have a @value or children",
            "expression": "hasValue() or (children().count() > id.count())",
            "xpath": "@value|f:*|h:div",
            "source": "http://hl7.org/fhir/StructureDefinition/Element"
          }
        ],
        "mustSupport": true,
        "isModifier": true,
        "isModifierReason": "This element is labelled as a modifier because it is a status element that contains status entered-in-error which means that the resource should not be treated as valid",
        "isSummary": true,
        "binding": {
          "strength": "required",
          "valueSet": "http://hl7.org/fhir/ValueSet/consent-state-codes"
        },
        "mapping": [
          {
            "identity": "workflow",
            "map": "Event.status"
          },
          {
            "identity": "w5",
            "map": "FiveWs.status"
          },
          {
            "identity": "v2",
            "map": "HL7 Table 0498 - Consent Status"
          },
          {
            "identity": "rim",
            "map": ".statusCode"
          }
        ]
      },
      {
        "id": "Consent.scope",
        "path": "Consent.scope",
        "short": "patient-privacy - Privacy consent",
        "definition": "Fixed to `patient-privacy`. Required by R4 and correct here, but it is NOT a discriminator: app\nconsent and item consent fix the same value, so a consumer separating families on scope will\nseparate nothing. Use the `category` family slice.",
        "min": 1,
        "max": "1",
        "base": {
          "path": "Consent.scope",
          "min": 1,
          "max": "1"
        },
        "type": [
          {
            "code": "CodeableConcept"
          }
        ],
        "fixedCodeableConcept": {
          "coding": [
            {
              "system": "http://terminology.hl7.org/CodeSystem/consentscope",
              "code": "patient-privacy",
              "display": "Privacy Consent"
            }
          ]
        },
        "constraint": [
          {
            "key": "ele-1",
            "severity": "error",
            "human": "All FHIR elements must have a @value or children",
            "expression": "hasValue() or (children().count() > id.count())",
            "xpath": "@value|f:*|h:div",
            "source": "http://hl7.org/fhir/StructureDefinition/Element"
          }
        ],
        "mustSupport": true,
        "isModifier": true,
        "isModifierReason": "Allows changes to codes based on scope selection",
        "isSummary": true,
        "binding": {
          "strength": "required",
          "valueSet": "http://hl7.org/fhir/ValueSet/consent-scope"
        }
      },
      {
        "id": "Consent.category",
        "path": "Consent.category",
        "slicing": {
          "discriminator": [
            {
              "type": "pattern",
              "path": "coding.system"
            }
          ],
          "rules": "open",
          "description": "Slice the family-identifying category by code system"
        },
        "short": "MUST carry the privacy-directive family code; this is how a reader knows what `status` means",
        "definition": "Required. Carries the family code that tells a consumer which interpretation contract applies\nbefore it reads any other element.\n\nSlicing is open, so a deployment may carry additional classifications alongside — a jurisdictional\ncode, a workflow bin — but only the `family` slice identifies the family, and a consumer MUST NOT\ninfer the family from any other category, from `scope`, or from the shape of the provision tree.",
        "comment": "The family coding sits outside HL7's consent-category value set on purpose, for the same reason\nthe item-consent catalogue does: that value set classifies consent DOCUMENTS (advance directive,\nnotice of privacy practices, research information access) and holds no concept for \"which\ninterpretation contract governs this resource\", which is what this element answers.\nTerminology-aware validators may note that the base extensible binding is unmet. That note is\nexpected.",
        "min": 1,
        "max": "*",
        "base": {
          "path": "Consent.category",
          "min": 1,
          "max": "*"
        },
        "type": [
          {
            "code": "CodeableConcept"
          }
        ],
        "constraint": [
          {
            "key": "ele-1",
            "severity": "error",
            "human": "All FHIR elements must have a @value or children",
            "expression": "hasValue() or (children().count() > id.count())",
            "xpath": "@value|f:*|h:div",
            "source": "http://hl7.org/fhir/StructureDefinition/Element"
          }
        ],
        "mustSupport": true,
        "isModifier": false,
        "isSummary": true,
        "binding": {
          "extension": [
            {
              "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName",
              "valueString": "ConsentCategory"
            }
          ],
          "strength": "extensible",
          "description": "A classification of the type of consents found in a consent statement.",
          "valueSet": "http://hl7.org/fhir/ValueSet/consent-category"
        },
        "mapping": [
          {
            "identity": "workflow",
            "map": "Event.code"
          },
          {
            "identity": "w5",
            "map": "FiveWs.class"
          },
          {
            "identity": "v2",
            "map": "HL7 Table 0497 - Consent Type"
          },
          {
            "identity": "rim",
            "map": "CNTRCT"
          }
        ]
      },
      {
        "id": "Consent.category:family",
        "path": "Consent.category",
        "sliceName": "family",
        "short": "Fixed: this Consent is a privacy directive",
        "definition": "Required. Carries the family code that tells a consumer which interpretation contract applies\nbefore it reads any other element.\n\nSlicing is open, so a deployment may carry additional classifications alongside — a jurisdictional\ncode, a workflow bin — but only the `family` slice identifies the family, and a consumer MUST NOT\ninfer the family from any other category, from `scope`, or from the shape of the provision tree.",
        "comment": "The family coding sits outside HL7's consent-category value set on purpose, for the same reason\nthe item-consent catalogue does: that value set classifies consent DOCUMENTS (advance directive,\nnotice of privacy practices, research information access) and holds no concept for \"which\ninterpretation contract governs this resource\", which is what this element answers.\nTerminology-aware validators may note that the base extensible binding is unmet. That note is\nexpected.",
        "min": 1,
        "max": "1",
        "base": {
          "path": "Consent.category",
          "min": 1,
          "max": "*"
        },
        "type": [
          {
            "code": "CodeableConcept"
          }
        ],
        "constraint": [
          {
            "key": "ele-1",
            "severity": "error",
            "human": "All FHIR elements must have a @value or children",
            "expression": "hasValue() or (children().count() > id.count())",
            "xpath": "@value|f:*|h:div",
            "source": "http://hl7.org/fhir/StructureDefinition/Element"
          }
        ],
        "mustSupport": true,
        "isModifier": false,
        "isSummary": true,
        "binding": {
          "strength": "required",
          "valueSet": "https://fhir.apps.health/ValueSet/nexus-consent-families"
        },
        "mapping": [
          {
            "identity": "workflow",
            "map": "Event.code"
          },
          {
            "identity": "w5",
            "map": "FiveWs.class"
          },
          {
            "identity": "v2",
            "map": "HL7 Table 0497 - Consent Type"
          },
          {
            "identity": "rim",
            "map": "CNTRCT"
          }
        ]
      },
      {
        "id": "Consent.category:family.id",
        "path": "Consent.category.id",
        "representation": [
          "xmlAttr"
        ],
        "short": "Unique id for inter-element referencing",
        "definition": "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.",
        "min": 0,
        "max": "1",
        "base": {
          "path": "Element.id",
          "min": 0,
          "max": "1"
        },
        "type": [
          {
            "code": "http://hl7.org/fhirpath/System.String",
            "extension": [
              {
                "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-fhir-type",
                "valueUrl": "string"
              }
            ]
          }
        ],
        "isModifier": false,
        "isSummary": false,
        "mapping": [
          {
            "identity": "rim",
            "map": "n/a"
          }
        ]
      },
      {
        "id": "Consent.category:family.extension",
        "path": "Consent.category.extension",
        "slicing": {
          "discriminator": [
            {
              "type": "value",
              "path": "url"
            }
          ],
          "description": "Extensions are always sliced by (at least) url",
          "rules": "open"
        },
        "short": "Additional content defined by implementations",
        "definition": "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.",
        "comment": "There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions.  The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.",
        "alias": [
          "extensions",
          "user content"
        ],
        "min": 0,
        "max": "*",
        "base": {
          "path": "Element.extension",
          "min": 0,
          "max": "*"
        },
        "type": [
          {
            "code": "Extension"
          }
        ],
        "constraint": [
          {
            "key": "ele-1",
            "severity": "error",
            "human": "All FHIR elements must have a @value or children",
            "expression": "hasValue() or (children().count() > id.count())",
            "xpath": "@value|f:*|h:div",
            "source": "http://hl7.org/fhir/StructureDefinition/Element"
          },
          {
            "key": "ext-1",
            "severity": "error",
            "human": "Must have either extensions or value[x], not both",
            "expression": "extension.exists() != value.exists()",
            "xpath": "exists(f:extension)!=exists(f:*[starts-with(local-name(.), \"value\")])",
            "source": "http://hl7.org/fhir/StructureDefinition/Extension"
          }
        ],
        "isModifier": false,
        "isSummary": false,
        "mapping": [
          {
            "identity": "rim",
            "map": "n/a"
          }
        ]
      },
      {
        "id": "Consent.category:family.coding",
        "path": "Consent.category.coding",
        "short": "Code defined by a terminology system",
        "definition": "A reference to a code defined by a terminology system.",
        "comment": "Codes may be defined very casually in enumerations, or code lists, up to very formal definitions such as SNOMED CT - see the HL7 v3 Core Principles for more information.  Ordering of codings is undefined and SHALL NOT be used to infer meaning. Generally, at most only one of the coding values will be labeled as UserSelected = true.",
        "requirements": "Allows for alternative encodings within a code system, and translations to other code systems.",
        "min": 1,
        "max": "1",
        "base": {
          "path": "CodeableConcept.coding",
          "min": 0,
          "max": "*"
        },
        "type": [
          {
            "code": "Coding"
          }
        ],
        "constraint": [
          {
            "key": "ele-1",
            "severity": "error",
            "human": "All FHIR elements must have a @value or children",
            "expression": "hasValue() or (children().count() > id.count())",
            "xpath": "@value|f:*|h:div",
            "source": "http://hl7.org/fhir/StructureDefinition/Element"
          }
        ],
        "isModifier": false,
        "isSummary": true,
        "mapping": [
          {
            "identity": "v2",
            "map": "C*E.1-8, C*E.10-22"
          },
          {
            "identity": "rim",
            "map": "union(., ./translation)"
          },
          {
            "identity": "orim",
            "map": "fhir:CodeableConcept.coding rdfs:subPropertyOf dt:CD.coding"
          }
        ]
      },
      {
        "id": "Consent.category:family.coding.id",
        "path": "Consent.category.coding.id",
        "representation": [
          "xmlAttr"
        ],
        "short": "Unique id for inter-element referencing",
        "definition": "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.",
        "min": 0,
        "max": "1",
        "base": {
          "path": "Element.id",
          "min": 0,
          "max": "1"
        },
        "type": [
          {
            "code": "http://hl7.org/fhirpath/System.String",
            "extension": [
              {
                "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-fhir-type",
                "valueUrl": "string"
              }
            ]
          }
        ],
        "isModifier": false,
        "isSummary": false,
        "mapping": [
          {
            "identity": "rim",
            "map": "n/a"
          }
        ]
      },
      {
        "id": "Consent.category:family.coding.extension",
        "path": "Consent.category.coding.extension",
        "slicing": {
          "discriminator": [
            {
              "type": "value",
              "path": "url"
            }
          ],
          "description": "Extensions are always sliced by (at least) url",
          "rules": "open"
        },
        "short": "Additional content defined by implementations",
        "definition": "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.",
        "comment": "There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions.  The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.",
        "alias": [
          "extensions",
          "user content"
        ],
        "min": 0,
        "max": "*",
        "base": {
          "path": "Element.extension",
          "min": 0,
          "max": "*"
        },
        "type": [
          {
            "code": "Extension"
          }
        ],
        "constraint": [
          {
            "key": "ele-1",
            "severity": "error",
            "human": "All FHIR elements must have a @value or children",
            "expression": "hasValue() or (children().count() > id.count())",
            "xpath": "@value|f:*|h:div",
            "source": "http://hl7.org/fhir/StructureDefinition/Element"
          },
          {
            "key": "ext-1",
            "severity": "error",
            "human": "Must have either extensions or value[x], not both",
            "expression": "extension.exists() != value.exists()",
            "xpath": "exists(f:extension)!=exists(f:*[starts-with(local-name(.), \"value\")])",
            "source": "http://hl7.org/fhir/StructureDefinition/Extension"
          }
        ],
        "isModifier": false,
        "isSummary": false,
        "mapping": [
          {
            "identity": "rim",
            "map": "n/a"
          }
        ]
      },
      {
        "id": "Consent.category:family.coding.system",
        "path": "Consent.category.coding.system",
        "short": "Identity of the terminology system",
        "definition": "The identification of the code system that defines the meaning of the symbol in the code.",
        "comment": "The URI may be an OID (urn:oid:...) or a UUID (urn:uuid:...).  OIDs and UUIDs SHALL be references to the HL7 OID registry. Otherwise, the URI should come from HL7's list of FHIR defined special URIs or it should reference to some definition that establishes the system clearly and unambiguously.",
        "requirements": "Need to be unambiguous about the source of the definition of the symbol.",
        "min": 1,
        "max": "1",
        "base": {
          "path": "Coding.system",
          "min": 0,
          "max": "1"
        },
        "type": [
          {
            "code": "uri"
          }
        ],
        "fixedUri": "https://fhir.apps.health/CodeSystem/nexus-consent-family",
        "constraint": [
          {
            "key": "ele-1",
            "severity": "error",
            "human": "All FHIR elements must have a @value or children",
            "expression": "hasValue() or (children().count() > id.count())",
            "xpath": "@value|f:*|h:div",
            "source": "http://hl7.org/fhir/StructureDefinition/Element"
          }
        ],
        "isModifier": false,
        "isSummary": true,
        "mapping": [
          {
            "identity": "v2",
            "map": "C*E.3"
          },
          {
            "identity": "rim",
            "map": "./codeSystem"
          },
          {
            "identity": "orim",
            "map": "fhir:Coding.system rdfs:subPropertyOf dt:CDCoding.codeSystem"
          }
        ]
      },
      {
        "id": "Consent.category:family.coding.version",
        "path": "Consent.category.coding.version",
        "short": "Version of the system - if relevant",
        "definition": "The version of the code system which was used when choosing this code. Note that a well-maintained code system does not need the version reported, because the meaning of codes is consistent across versions. However this cannot consistently be assured, and when the meaning is not guaranteed to be consistent, the version SHOULD be exchanged.",
        "comment": "Where the terminology does not clearly define what string should be used to identify code system versions, the recommendation is to use the date (expressed in FHIR date format) on which that version was officially published as the version date.",
        "min": 0,
        "max": "1",
        "base": {
          "path": "Coding.version",
          "min": 0,
          "max": "1"
        },
        "type": [
          {
            "code": "string"
          }
        ],
        "constraint": [
          {
            "key": "ele-1",
            "severity": "error",
            "human": "All FHIR elements must have a @value or children",
            "expression": "hasValue() or (children().count() > id.count())",
            "xpath": "@value|f:*|h:div",
            "source": "http://hl7.org/fhir/StructureDefinition/Element"
          }
        ],
        "isModifier": false,
        "isSummary": true,
        "mapping": [
          {
            "identity": "v2",
            "map": "C*E.7"
          },
          {
            "identity": "rim",
            "map": "./codeSystemVersion"
          },
          {
            "identity": "orim",
            "map": "fhir:Coding.version rdfs:subPropertyOf dt:CDCoding.codeSystemVersion"
          }
        ]
      },
      {
        "id": "Consent.category:family.coding.code",
        "path": "Consent.category.coding.code",
        "short": "Symbol in syntax defined by the system",
        "definition": "A symbol in syntax defined by the system. The symbol may be a predefined code or an expression in a syntax defined by the coding system (e.g. post-coordination).",
        "requirements": "Need to refer to a particular code in the system.",
        "min": 1,
        "max": "1",
        "base": {
          "path": "Coding.code",
          "min": 0,
          "max": "1"
        },
        "type": [
          {
            "code": "code"
          }
        ],
        "fixedCode": "privacy-directive",
        "constraint": [
          {
            "key": "ele-1",
            "severity": "error",
            "human": "All FHIR elements must have a @value or children",
            "expression": "hasValue() or (children().count() > id.count())",
            "xpath": "@value|f:*|h:div",
            "source": "http://hl7.org/fhir/StructureDefinition/Element"
          }
        ],
        "isModifier": false,
        "isSummary": true,
        "mapping": [
          {
            "identity": "v2",
            "map": "C*E.1"
          },
          {
            "identity": "rim",
            "map": "./code"
          },
          {
            "identity": "orim",
            "map": "fhir:Coding.code rdfs:subPropertyOf dt:CDCoding.code"
          }
        ]
      },
      {
        "id": "Consent.category:family.coding.display",
        "extension": [
          {
            "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-translatable",
            "valueBoolean": true
          }
        ],
        "path": "Consent.category.coding.display",
        "short": "Representation defined by the system",
        "definition": "A representation of the meaning of the code in the system, following the rules of the system.",
        "requirements": "Need to be able to carry a human-readable meaning of the code for readers that do not know  the system.",
        "min": 0,
        "max": "1",
        "base": {
          "path": "Coding.display",
          "min": 0,
          "max": "1"
        },
        "type": [
          {
            "code": "string"
          }
        ],
        "constraint": [
          {
            "key": "ele-1",
            "severity": "error",
            "human": "All FHIR elements must have a @value or children",
            "expression": "hasValue() or (children().count() > id.count())",
            "xpath": "@value|f:*|h:div",
            "source": "http://hl7.org/fhir/StructureDefinition/Element"
          }
        ],
        "isModifier": false,
        "isSummary": true,
        "mapping": [
          {
            "identity": "v2",
            "map": "C*E.2 - but note this is not well followed"
          },
          {
            "identity": "rim",
            "map": "CV.displayName"
          },
          {
            "identity": "orim",
            "map": "fhir:Coding.display rdfs:subPropertyOf dt:CDCoding.displayName"
          }
        ]
      },
      {
        "id": "Consent.category:family.coding.userSelected",
        "path": "Consent.category.coding.userSelected",
        "short": "If this coding was chosen directly by the user",
        "definition": "Indicates that this coding was chosen by a user directly - e.g. off a pick list of available items (codes or displays).",
        "comment": "Amongst a set of alternatives, a directly chosen code is the most appropriate starting point for new translations. There is some ambiguity about what exactly 'directly chosen' implies, and trading partner agreement may be needed to clarify the use of this element and its consequences more completely.",
        "requirements": "This has been identified as a clinical safety criterium - that this exact system/code pair was chosen explicitly, rather than inferred by the system based on some rules or language processing.",
        "min": 0,
        "max": "1",
        "base": {
          "path": "Coding.userSelected",
          "min": 0,
          "max": "1"
        },
        "type": [
          {
            "code": "boolean"
          }
        ],
        "constraint": [
          {
            "key": "ele-1",
            "severity": "error",
            "human": "All FHIR elements must have a @value or children",
            "expression": "hasValue() or (children().count() > id.count())",
            "xpath": "@value|f:*|h:div",
            "source": "http://hl7.org/fhir/StructureDefinition/Element"
          }
        ],
        "isModifier": false,
        "isSummary": true,
        "mapping": [
          {
            "identity": "v2",
            "map": "Sometimes implied by being first"
          },
          {
            "identity": "rim",
            "map": "CD.codingRationale"
          },
          {
            "identity": "orim",
            "map": "fhir:Coding.userSelected fhir:mapsTo dt:CDCoding.codingRationale. fhir:Coding.userSelected fhir:hasMap fhir:Coding.userSelected.map. fhir:Coding.userSelected.map a fhir:Map;   fhir:target dt:CDCoding.codingRationale. fhir:Coding.userSelected\\#true a [     fhir:source \"true\";     fhir:target dt:CDCoding.codingRationale\\#O   ]"
          }
        ]
      },
      {
        "id": "Consent.category:family.text",
        "extension": [
          {
            "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-translatable",
            "valueBoolean": true
          }
        ],
        "path": "Consent.category.text",
        "short": "Plain text representation of the concept",
        "definition": "A human language representation of the concept as seen/selected/uttered by the user who entered the data and/or which represents the intended meaning of the user.",
        "comment": "Very often the text is the same as a displayName of one of the codings.",
        "requirements": "The codes from the terminologies do not always capture the correct meaning with all the nuances of the human using them, or sometimes there is no appropriate code at all. In these cases, the text is used to capture the full meaning of the source.",
        "min": 0,
        "max": "1",
        "base": {
          "path": "CodeableConcept.text",
          "min": 0,
          "max": "1"
        },
        "type": [
          {
            "code": "string"
          }
        ],
        "constraint": [
          {
            "key": "ele-1",
            "severity": "error",
            "human": "All FHIR elements must have a @value or children",
            "expression": "hasValue() or (children().count() > id.count())",
            "xpath": "@value|f:*|h:div",
            "source": "http://hl7.org/fhir/StructureDefinition/Element"
          }
        ],
        "isModifier": false,
        "isSummary": true,
        "mapping": [
          {
            "identity": "v2",
            "map": "C*E.9. But note many systems use C*E.2 for this"
          },
          {
            "identity": "rim",
            "map": "./originalText[mediaType/code=\"text/plain\"]/data"
          },
          {
            "identity": "orim",
            "map": "fhir:CodeableConcept.text rdfs:subPropertyOf dt:CD.originalText"
          }
        ]
      },
      {
        "id": "Consent.patient",
        "path": "Consent.patient",
        "short": "The patient whose record is restricted",
        "definition": "The patient/healthcare consumer to whom this consent applies.",
        "comment": "Required by this profile rather than inherited. R4's `ppc-2` invariant is meant to require a\npatient whenever scope is privacy, but its published expression tests `system='something'` and\ntherefore never fires. Do not rely on it.",
        "min": 1,
        "max": "1",
        "base": {
          "path": "Consent.patient",
          "min": 0,
          "max": "1"
        },
        "type": [
          {
            "code": "Reference",
            "targetProfile": [
              "https://fhir.apps.health/StructureDefinition/nexus-emr-core-patient"
            ]
          }
        ],
        "constraint": [
          {
            "key": "ele-1",
            "severity": "error",
            "human": "All FHIR elements must have a @value or children",
            "expression": "hasValue() or (children().count() > id.count())",
            "xpath": "@value|f:*|h:div",
            "source": "http://hl7.org/fhir/StructureDefinition/Element"
          }
        ],
        "mustSupport": true,
        "isModifier": false,
        "isSummary": true,
        "mapping": [
          {
            "identity": "workflow",
            "map": "Event.subject"
          },
          {
            "identity": "w5",
            "map": "FiveWs.subject[x]"
          },
          {
            "identity": "rim",
            "map": "Role"
          },
          {
            "identity": "w5",
            "map": "FiveWs.subject"
          }
        ]
      },
      {
        "id": "Consent.dateTime",
        "path": "Consent.dateTime",
        "short": "When the instruction was given",
        "definition": "When the patient gave this instruction — not when the resource was stored, and not when the\nrestriction takes effect. Effect is `provision.period.start`, which may be later.\n\nThree different times matter to an auditor reconstructing a decision and they must not be\nconflated: when the patient said it (here), when it started applying (`provision.period.start`),\nand when the server learned about it (`meta.lastUpdated`). A directive given on Monday, effective\nWednesday, entered Friday is an ordinary and lawful record.",
        "comment": "This is not the time of the original consent, but the time that this statement was made or derived.",
        "min": 1,
        "max": "1",
        "base": {
          "path": "Consent.dateTime",
          "min": 0,
          "max": "1"
        },
        "type": [
          {
            "code": "dateTime"
          }
        ],
        "constraint": [
          {
            "key": "ele-1",
            "severity": "error",
            "human": "All FHIR elements must have a @value or children",
            "expression": "hasValue() or (children().count() > id.count())",
            "xpath": "@value|f:*|h:div",
            "source": "http://hl7.org/fhir/StructureDefinition/Element"
          }
        ],
        "mustSupport": true,
        "isModifier": false,
        "isSummary": true,
        "mapping": [
          {
            "identity": "workflow",
            "map": "Event.occurrence[x]"
          },
          {
            "identity": "w5",
            "map": "FiveWs.recorded"
          },
          {
            "identity": "v2",
            "map": "Field 13/ Consent Decision Date"
          },
          {
            "identity": "rim",
            "map": "FinancialConsent effectiveTime"
          }
        ]
      },
      {
        "id": "Consent.performer",
        "path": "Consent.performer",
        "short": "Who gave the instruction -- the patient, or a substitute decision-maker",
        "definition": "Who made this decision. The patient, or the RelatedPerson authorized to decide on their behalf.\n\n**A substitute decision-maker is a RelatedPerson, never the Patient.** The tender requires access\nand correction rights to be exercisable by an individual \"and their Substitute Decision Makers\",\nand recording an SDM's instruction as though the patient gave it destroys the fact that authority\nwas delegated — which is the fact a privacy office checks when the instruction is challenged.\n\nPractitioner and PractitionerRole are permitted for the staff member who RECORDED the instruction.\nBoth may appear together, and where they do the reading is that the patient decided and the staff\nmember wrote it down.\n\nA resource naming ONLY staff is not malformed. A restriction is applied by an administrator acting on\nwhat the patient asked for, and a deployment that captures the administrator without separately\nidentifying the patient as decision-maker is recording what it actually knows. What it costs is the\nability to show, later, that the instruction came from the individual rather than from the clinic --\nwhich is worth capturing where the workflow can.",
        "comment": "Commonly, the patient the consent pertains to is the consentor, but particularly for young and old people, it may be some other person - e.g. a legal guardian.",
        "alias": [
          "consentor"
        ],
        "min": 0,
        "max": "*",
        "base": {
          "path": "Consent.performer",
          "min": 0,
          "max": "*"
        },
        "type": [
          {
            "code": "Reference",
            "targetProfile": [
              "https://fhir.apps.health/StructureDefinition/nexus-emr-core-patient",
              "https://fhir.apps.health/StructureDefinition/nexus-emr-core-relatedperson",
              "https://fhir.apps.health/StructureDefinition/nexus-emr-core-practitioner",
              "https://fhir.apps.health/StructureDefinition/nexus-emr-core-practitionerrole"
            ]
          }
        ],
        "constraint": [
          {
            "key": "ele-1",
            "severity": "error",
            "human": "All FHIR elements must have a @value or children",
            "expression": "hasValue() or (children().count() > id.count())",
            "xpath": "@value|f:*|h:div",
            "source": "http://hl7.org/fhir/StructureDefinition/Element"
          }
        ],
        "mustSupport": true,
        "isModifier": false,
        "isSummary": true,
        "mapping": [
          {
            "identity": "workflow",
            "map": "Event.performer"
          },
          {
            "identity": "w5",
            "map": "FiveWs.actor"
          },
          {
            "identity": "v2",
            "map": "Field 24/ ConsenterID"
          }
        ]
      },
      {
        "id": "Consent.organization",
        "path": "Consent.organization",
        "short": "The custodian whose records this directive restricts",
        "definition": "The health information custodian this instruction is addressed to.\n\nLoad-bearing where it is present, because a restriction on one custodian's records says nothing\nabout another's. A patient who locks their record at this clinic has not thereby locked the\nprovincial EHR, and a patient who restricts the provincial EHR has not restricted this clinic. A\ndirective that names no organization is scoped by the deployment's own policy, which must state\nwhat that scope is rather than leaving a reader to assume it means \"everywhere\".",
        "alias": [
          "custodian"
        ],
        "min": 0,
        "max": "*",
        "base": {
          "path": "Consent.organization",
          "min": 0,
          "max": "*"
        },
        "type": [
          {
            "code": "Reference",
            "targetProfile": [
              "https://fhir.apps.health/StructureDefinition/nexus-emr-core-organization"
            ]
          }
        ],
        "constraint": [
          {
            "key": "ele-1",
            "severity": "error",
            "human": "All FHIR elements must have a @value or children",
            "expression": "hasValue() or (children().count() > id.count())",
            "xpath": "@value|f:*|h:div",
            "source": "http://hl7.org/fhir/StructureDefinition/Element"
          }
        ],
        "mustSupport": true,
        "isModifier": false,
        "isSummary": true,
        "mapping": [
          {
            "identity": "workflow",
            "map": "Event.performer"
          },
          {
            "identity": "w5",
            "map": "FiveWs.witness"
          }
        ]
      },
      {
        "id": "Consent.source[x]",
        "path": "Consent.source[x]",
        "slicing": {
          "discriminator": [
            {
              "type": "type",
              "path": "$this"
            }
          ],
          "ordered": false,
          "rules": "open"
        },
        "short": "Source from which this consent is taken",
        "definition": "The source on which this consent statement is based. The source might be a scanned original paper form, or a reference to a consent that links back to such a source, a reference to a document repository (e.g. XDS) that stores the original consent document.",
        "comment": "The source can be contained inline (Attachment), referenced directly (Consent), referenced in a consent repository (DocumentReference), or simply by an identifier (Identifier), e.g. a CDA document id.",
        "min": 0,
        "max": "1",
        "base": {
          "path": "Consent.source[x]",
          "min": 0,
          "max": "1"
        },
        "type": [
          {
            "code": "Reference",
            "targetProfile": [
              "https://fhir.apps.health/StructureDefinition/nexus-emr-core-documentreference"
            ]
          }
        ],
        "constraint": [
          {
            "key": "ele-1",
            "severity": "error",
            "human": "All FHIR elements must have a @value or children",
            "expression": "hasValue() or (children().count() > id.count())",
            "xpath": "@value|f:*|h:div",
            "source": "http://hl7.org/fhir/StructureDefinition/Element"
          }
        ],
        "isModifier": false,
        "isSummary": true,
        "mapping": [
          {
            "identity": "v2",
            "map": "Field 19 Informational Material Supplied Indicator"
          }
        ]
      },
      {
        "id": "Consent.source[x]:sourceReference",
        "path": "Consent.source[x]",
        "sliceName": "sourceReference",
        "short": "The signed instruction, where one was captured",
        "definition": "The document the patient signed, or the portal submission that recorded the instruction.\n\nRouted through DocumentReference rather than carried inline so that DocumentReference read\npermission gates the document itself: a reader entitled to know THAT a restriction exists is not\nautomatically entitled to read the patient's written explanation of why.",
        "comment": "The source can be contained inline (Attachment), referenced directly (Consent), referenced in a consent repository (DocumentReference), or simply by an identifier (Identifier), e.g. a CDA document id.",
        "min": 0,
        "max": "1",
        "base": {
          "path": "Consent.source[x]",
          "min": 0,
          "max": "1"
        },
        "type": [
          {
            "code": "Reference",
            "targetProfile": [
              "https://fhir.apps.health/StructureDefinition/nexus-emr-core-documentreference"
            ]
          }
        ],
        "constraint": [
          {
            "key": "ele-1",
            "severity": "error",
            "human": "All FHIR elements must have a @value or children",
            "expression": "hasValue() or (children().count() > id.count())",
            "xpath": "@value|f:*|h:div",
            "source": "http://hl7.org/fhir/StructureDefinition/Element"
          }
        ],
        "mustSupport": true,
        "isModifier": false,
        "isSummary": true,
        "mapping": [
          {
            "identity": "v2",
            "map": "Field 19 Informational Material Supplied Indicator"
          }
        ]
      },
      {
        "id": "Consent.policy",
        "path": "Consent.policy",
        "short": "The policy or statutory provision this directive is made under",
        "definition": "A URI identifying the policy under which this instruction is given and must be honoured — a\nPHIPA provision, an Ontario Health EHR policy, or the custodian's own published privacy policy.\n\nRequired here, and it is what satisfies R4's `ppc-1` invariant (\"Either a Policy or PolicyRule\").\n\n**`policyRule` is deliberately NOT used on this profile.** Its binding is to\n`consentpolicycodes`, a code system that contains no Canadian policy concept at all — its 27\ncodes are US federal and state instruments plus Netherlands, Austria and Switzerland. There is no\ncode in it that means \"a restriction under PHIPA\", and the nearest-looking one, `cric`, is\n45 CFR 46: the US Common Rule for human-subjects research. A privacy directive is not research\nconsent, and a policy element that pointed at one would be a false statement about the legal basis\nof the restriction, made in the resource an auditor reads to check exactly that.\n\nCarrying the actual policy URI says the true thing and stays machine-readable. Where a Canadian\npolicy code system emerges, `policyRule` becomes available without this element changing.",
        "min": 1,
        "max": "*",
        "base": {
          "path": "Consent.policy",
          "min": 0,
          "max": "*"
        },
        "type": [
          {
            "code": "BackboneElement"
          }
        ],
        "constraint": [
          {
            "key": "ele-1",
            "severity": "error",
            "human": "All FHIR elements must have a @value or children",
            "expression": "hasValue() or (children().count() > id.count())",
            "xpath": "@value|f:*|h:div",
            "source": "http://hl7.org/fhir/StructureDefinition/Element"
          }
        ],
        "mustSupport": true,
        "isModifier": false,
        "isSummary": false
      },
      {
        "id": "Consent.policy.id",
        "path": "Consent.policy.id",
        "representation": [
          "xmlAttr"
        ],
        "short": "Unique id for inter-element referencing",
        "definition": "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.",
        "min": 0,
        "max": "1",
        "base": {
          "path": "Element.id",
          "min": 0,
          "max": "1"
        },
        "type": [
          {
            "code": "http://hl7.org/fhirpath/System.String",
            "extension": [
              {
                "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-fhir-type",
                "valueUrl": "string"
              }
            ]
          }
        ],
        "isModifier": false,
        "isSummary": false,
        "mapping": [
          {
            "identity": "rim",
            "map": "n/a"
          }
        ]
      },
      {
        "id": "Consent.policy.extension",
        "path": "Consent.policy.extension",
        "short": "Additional content defined by implementations",
        "definition": "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.",
        "comment": "There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions.  The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.",
        "alias": [
          "extensions",
          "user content"
        ],
        "min": 0,
        "max": "*",
        "base": {
          "path": "Element.extension",
          "min": 0,
          "max": "*"
        },
        "type": [
          {
            "code": "Extension"
          }
        ],
        "constraint": [
          {
            "key": "ele-1",
            "severity": "error",
            "human": "All FHIR elements must have a @value or children",
            "expression": "hasValue() or (children().count() > id.count())",
            "xpath": "@value|f:*|h:div",
            "source": "http://hl7.org/fhir/StructureDefinition/Element"
          },
          {
            "key": "ext-1",
            "severity": "error",
            "human": "Must have either extensions or value[x], not both",
            "expression": "extension.exists() != value.exists()",
            "xpath": "exists(f:extension)!=exists(f:*[starts-with(local-name(.), \"value\")])",
            "source": "http://hl7.org/fhir/StructureDefinition/Extension"
          }
        ],
        "isModifier": false,
        "isSummary": false,
        "mapping": [
          {
            "identity": "rim",
            "map": "n/a"
          }
        ]
      },
      {
        "id": "Consent.policy.modifierExtension",
        "path": "Consent.policy.modifierExtension",
        "short": "Extensions that cannot be ignored even if unrecognized",
        "definition": "May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).",
        "comment": "There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions.  The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.",
        "requirements": "Modifier extensions allow for extensions that *cannot* be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored.  This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the [definition of modifier extensions](extensibility.html#modifierExtension).",
        "alias": [
          "extensions",
          "user content",
          "modifiers"
        ],
        "min": 0,
        "max": "*",
        "base": {
          "path": "BackboneElement.modifierExtension",
          "min": 0,
          "max": "*"
        },
        "type": [
          {
            "code": "Extension"
          }
        ],
        "constraint": [
          {
            "key": "ele-1",
            "severity": "error",
            "human": "All FHIR elements must have a @value or children",
            "expression": "hasValue() or (children().count() > id.count())",
            "xpath": "@value|f:*|h:div",
            "source": "http://hl7.org/fhir/StructureDefinition/Element"
          },
          {
            "key": "ext-1",
            "severity": "error",
            "human": "Must have either extensions or value[x], not both",
            "expression": "extension.exists() != value.exists()",
            "xpath": "exists(f:extension)!=exists(f:*[starts-with(local-name(.), \"value\")])",
            "source": "http://hl7.org/fhir/StructureDefinition/Extension"
          }
        ],
        "isModifier": true,
        "isModifierReason": "Modifier extensions are expected to modify the meaning or interpretation of the element that contains them",
        "isSummary": true,
        "mapping": [
          {
            "identity": "rim",
            "map": "N/A"
          }
        ]
      },
      {
        "id": "Consent.policy.authority",
        "path": "Consent.policy.authority",
        "short": "Enforcement source for policy",
        "definition": "Entity or Organization having regulatory jurisdiction or accountability for  enforcing policies pertaining to Consent Directives.",
        "min": 0,
        "max": "1",
        "base": {
          "path": "Consent.policy.authority",
          "min": 0,
          "max": "1"
        },
        "type": [
          {
            "code": "uri"
          }
        ],
        "condition": [
          "ppc-1"
        ],
        "constraint": [
          {
            "key": "ele-1",
            "severity": "error",
            "human": "All FHIR elements must have a @value or children",
            "expression": "hasValue() or (children().count() > id.count())",
            "xpath": "@value|f:*|h:div",
            "source": "http://hl7.org/fhir/StructureDefinition/Element"
          }
        ],
        "isModifier": false,
        "isSummary": false
      },
      {
        "id": "Consent.policy.uri",
        "path": "Consent.policy.uri",
        "short": "Specific policy covered by this consent",
        "definition": "The references to the policies that are included in this consent scope. Policies may be organizational, but are often defined jurisdictionally, or in law.",
        "comment": "This element is for discoverability / documentation and does not modify or qualify the policy rules.",
        "min": 1,
        "max": "1",
        "base": {
          "path": "Consent.policy.uri",
          "min": 0,
          "max": "1"
        },
        "type": [
          {
            "code": "uri"
          }
        ],
        "condition": [
          "ppc-1"
        ],
        "constraint": [
          {
            "key": "ele-1",
            "severity": "error",
            "human": "All FHIR elements must have a @value or children",
            "expression": "hasValue() or (children().count() > id.count())",
            "xpath": "@value|f:*|h:div",
            "source": "http://hl7.org/fhir/StructureDefinition/Element"
          }
        ],
        "isModifier": false,
        "isSummary": false
      },
      {
        "id": "Consent.policyRule",
        "path": "Consent.policyRule",
        "short": "Regulation that this consents to",
        "definition": "A reference to the specific base computable regulation or policy.",
        "comment": "If the policyRule is absent, computable consent would need to be constructed from the elements of the Consent resource.",
        "requirements": "Might be a unique identifier of a policy set in XACML, or other rules engine.",
        "min": 0,
        "max": "1",
        "base": {
          "path": "Consent.policyRule",
          "min": 0,
          "max": "1"
        },
        "type": [
          {
            "code": "CodeableConcept"
          }
        ],
        "condition": [
          "ppc-1"
        ],
        "constraint": [
          {
            "key": "ele-1",
            "severity": "error",
            "human": "All FHIR elements must have a @value or children",
            "expression": "hasValue() or (children().count() > id.count())",
            "xpath": "@value|f:*|h:div",
            "source": "http://hl7.org/fhir/StructureDefinition/Element"
          }
        ],
        "isModifier": false,
        "isSummary": true,
        "binding": {
          "extension": [
            {
              "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName",
              "valueString": "ConsentPolicyRule"
            }
          ],
          "strength": "extensible",
          "description": "Regulatory policy examples.",
          "valueSet": "http://hl7.org/fhir/ValueSet/consent-policy"
        }
      },
      {
        "id": "Consent.verification",
        "path": "Consent.verification",
        "short": "Consent Verified by patient or family",
        "definition": "Whether a treatment instruction (e.g. artificial respiration yes or no) was verified with the patient, his/her family or another authorized person.",
        "min": 0,
        "max": "*",
        "base": {
          "path": "Consent.verification",
          "min": 0,
          "max": "*"
        },
        "type": [
          {
            "code": "BackboneElement"
          }
        ],
        "constraint": [
          {
            "key": "ele-1",
            "severity": "error",
            "human": "All FHIR elements must have a @value or children",
            "expression": "hasValue() or (children().count() > id.count())",
            "xpath": "@value|f:*|h:div",
            "source": "http://hl7.org/fhir/StructureDefinition/Element"
          }
        ],
        "isModifier": false,
        "isSummary": true
      },
      {
        "id": "Consent.verification.id",
        "path": "Consent.verification.id",
        "representation": [
          "xmlAttr"
        ],
        "short": "Unique id for inter-element referencing",
        "definition": "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.",
        "min": 0,
        "max": "1",
        "base": {
          "path": "Element.id",
          "min": 0,
          "max": "1"
        },
        "type": [
          {
            "code": "http://hl7.org/fhirpath/System.String",
            "extension": [
              {
                "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-fhir-type",
                "valueUrl": "string"
              }
            ]
          }
        ],
        "isModifier": false,
        "isSummary": false,
        "mapping": [
          {
            "identity": "rim",
            "map": "n/a"
          }
        ]
      },
      {
        "id": "Consent.verification.extension",
        "path": "Consent.verification.extension",
        "short": "Additional content defined by implementations",
        "definition": "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.",
        "comment": "There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions.  The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.",
        "alias": [
          "extensions",
          "user content"
        ],
        "min": 0,
        "max": "*",
        "base": {
          "path": "Element.extension",
          "min": 0,
          "max": "*"
        },
        "type": [
          {
            "code": "Extension"
          }
        ],
        "constraint": [
          {
            "key": "ele-1",
            "severity": "error",
            "human": "All FHIR elements must have a @value or children",
            "expression": "hasValue() or (children().count() > id.count())",
            "xpath": "@value|f:*|h:div",
            "source": "http://hl7.org/fhir/StructureDefinition/Element"
          },
          {
            "key": "ext-1",
            "severity": "error",
            "human": "Must have either extensions or value[x], not both",
            "expression": "extension.exists() != value.exists()",
            "xpath": "exists(f:extension)!=exists(f:*[starts-with(local-name(.), \"value\")])",
            "source": "http://hl7.org/fhir/StructureDefinition/Extension"
          }
        ],
        "isModifier": false,
        "isSummary": false,
        "mapping": [
          {
            "identity": "rim",
            "map": "n/a"
          }
        ]
      },
      {
        "id": "Consent.verification.modifierExtension",
        "path": "Consent.verification.modifierExtension",
        "short": "Extensions that cannot be ignored even if unrecognized",
        "definition": "May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).",
        "comment": "There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions.  The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.",
        "requirements": "Modifier extensions allow for extensions that *cannot* be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored.  This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the [definition of modifier extensions](extensibility.html#modifierExtension).",
        "alias": [
          "extensions",
          "user content",
          "modifiers"
        ],
        "min": 0,
        "max": "*",
        "base": {
          "path": "BackboneElement.modifierExtension",
          "min": 0,
          "max": "*"
        },
        "type": [
          {
            "code": "Extension"
          }
        ],
        "constraint": [
          {
            "key": "ele-1",
            "severity": "error",
            "human": "All FHIR elements must have a @value or children",
            "expression": "hasValue() or (children().count() > id.count())",
            "xpath": "@value|f:*|h:div",
            "source": "http://hl7.org/fhir/StructureDefinition/Element"
          },
          {
            "key": "ext-1",
            "severity": "error",
            "human": "Must have either extensions or value[x], not both",
            "expression": "extension.exists() != value.exists()",
            "xpath": "exists(f:extension)!=exists(f:*[starts-with(local-name(.), \"value\")])",
            "source": "http://hl7.org/fhir/StructureDefinition/Extension"
          }
        ],
        "isModifier": true,
        "isModifierReason": "Modifier extensions are expected to modify the meaning or interpretation of the element that contains them",
        "isSummary": true,
        "mapping": [
          {
            "identity": "rim",
            "map": "N/A"
          }
        ]
      },
      {
        "id": "Consent.verification.verified",
        "path": "Consent.verification.verified",
        "short": "Has been verified",
        "definition": "Has the instruction been verified.",
        "min": 1,
        "max": "1",
        "base": {
          "path": "Consent.verification.verified",
          "min": 1,
          "max": "1"
        },
        "type": [
          {
            "code": "boolean"
          }
        ],
        "constraint": [
          {
            "key": "ele-1",
            "severity": "error",
            "human": "All FHIR elements must have a @value or children",
            "expression": "hasValue() or (children().count() > id.count())",
            "xpath": "@value|f:*|h:div",
            "source": "http://hl7.org/fhir/StructureDefinition/Element"
          }
        ],
        "isModifier": false,
        "isSummary": true
      },
      {
        "id": "Consent.verification.verifiedWith",
        "path": "Consent.verification.verifiedWith",
        "short": "Person who verified",
        "definition": "Who verified the instruction (Patient, Relative or other Authorized Person).",
        "min": 0,
        "max": "1",
        "base": {
          "path": "Consent.verification.verifiedWith",
          "min": 0,
          "max": "1"
        },
        "type": [
          {
            "code": "Reference",
            "targetProfile": [
              "http://hl7.org/fhir/StructureDefinition/Patient",
              "http://hl7.org/fhir/StructureDefinition/RelatedPerson"
            ]
          }
        ],
        "constraint": [
          {
            "key": "ele-1",
            "severity": "error",
            "human": "All FHIR elements must have a @value or children",
            "expression": "hasValue() or (children().count() > id.count())",
            "xpath": "@value|f:*|h:div",
            "source": "http://hl7.org/fhir/StructureDefinition/Element"
          }
        ],
        "isModifier": false,
        "isSummary": false
      },
      {
        "id": "Consent.verification.verificationDate",
        "path": "Consent.verification.verificationDate",
        "short": "When consent verified",
        "definition": "Date verification was collected.",
        "min": 0,
        "max": "1",
        "base": {
          "path": "Consent.verification.verificationDate",
          "min": 0,
          "max": "1"
        },
        "type": [
          {
            "code": "dateTime"
          }
        ],
        "constraint": [
          {
            "key": "ele-1",
            "severity": "error",
            "human": "All FHIR elements must have a @value or children",
            "expression": "hasValue() or (children().count() > id.count())",
            "xpath": "@value|f:*|h:div",
            "source": "http://hl7.org/fhir/StructureDefinition/Element"
          }
        ],
        "isModifier": false,
        "isSummary": false
      },
      {
        "id": "Consent.provision",
        "path": "Consent.provision",
        "short": "The restriction: `type` states the decision, and nested provisions carve out exceptions",
        "definition": "The base rule. `type = deny` for a lockbox: the patient is restricting something.\n\nExceptions are NESTED provisions with `type = permit`, describing what the restriction does not\nreach -- a care team that may still see the record, or a standing break-glass carve-out.",
        "min": 1,
        "max": "1",
        "base": {
          "path": "Consent.provision",
          "min": 0,
          "max": "1"
        },
        "type": [
          {
            "code": "BackboneElement"
          }
        ],
        "constraint": [
          {
            "key": "ele-1",
            "severity": "error",
            "human": "All FHIR elements must have a @value or children",
            "expression": "hasValue() or (children().count() > id.count())",
            "xpath": "@value|f:*|h:div",
            "source": "http://hl7.org/fhir/StructureDefinition/Element"
          }
        ],
        "mustSupport": true,
        "isModifier": false,
        "isSummary": true
      },
      {
        "id": "Consent.provision.id",
        "path": "Consent.provision.id",
        "representation": [
          "xmlAttr"
        ],
        "short": "Unique id for inter-element referencing",
        "definition": "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.",
        "min": 0,
        "max": "1",
        "base": {
          "path": "Element.id",
          "min": 0,
          "max": "1"
        },
        "type": [
          {
            "code": "http://hl7.org/fhirpath/System.String",
            "extension": [
              {
                "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-fhir-type",
                "valueUrl": "string"
              }
            ]
          }
        ],
        "isModifier": false,
        "isSummary": false,
        "mapping": [
          {
            "identity": "rim",
            "map": "n/a"
          }
        ]
      },
      {
        "id": "Consent.provision.extension",
        "path": "Consent.provision.extension",
        "short": "Additional content defined by implementations",
        "definition": "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.",
        "comment": "There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions.  The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.",
        "alias": [
          "extensions",
          "user content"
        ],
        "min": 0,
        "max": "*",
        "base": {
          "path": "Element.extension",
          "min": 0,
          "max": "*"
        },
        "type": [
          {
            "code": "Extension"
          }
        ],
        "constraint": [
          {
            "key": "ele-1",
            "severity": "error",
            "human": "All FHIR elements must have a @value or children",
            "expression": "hasValue() or (children().count() > id.count())",
            "xpath": "@value|f:*|h:div",
            "source": "http://hl7.org/fhir/StructureDefinition/Element"
          },
          {
            "key": "ext-1",
            "severity": "error",
            "human": "Must have either extensions or value[x], not both",
            "expression": "extension.exists() != value.exists()",
            "xpath": "exists(f:extension)!=exists(f:*[starts-with(local-name(.), \"value\")])",
            "source": "http://hl7.org/fhir/StructureDefinition/Extension"
          }
        ],
        "isModifier": false,
        "isSummary": false,
        "mapping": [
          {
            "identity": "rim",
            "map": "n/a"
          }
        ]
      },
      {
        "id": "Consent.provision.modifierExtension",
        "path": "Consent.provision.modifierExtension",
        "short": "Extensions that cannot be ignored even if unrecognized",
        "definition": "May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).",
        "comment": "There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions.  The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.",
        "requirements": "Modifier extensions allow for extensions that *cannot* be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored.  This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the [definition of modifier extensions](extensibility.html#modifierExtension).",
        "alias": [
          "extensions",
          "user content",
          "modifiers"
        ],
        "min": 0,
        "max": "*",
        "base": {
          "path": "BackboneElement.modifierExtension",
          "min": 0,
          "max": "*"
        },
        "type": [
          {
            "code": "Extension"
          }
        ],
        "constraint": [
          {
            "key": "ele-1",
            "severity": "error",
            "human": "All FHIR elements must have a @value or children",
            "expression": "hasValue() or (children().count() > id.count())",
            "xpath": "@value|f:*|h:div",
            "source": "http://hl7.org/fhir/StructureDefinition/Element"
          },
          {
            "key": "ext-1",
            "severity": "error",
            "human": "Must have either extensions or value[x], not both",
            "expression": "extension.exists() != value.exists()",
            "xpath": "exists(f:extension)!=exists(f:*[starts-with(local-name(.), \"value\")])",
            "source": "http://hl7.org/fhir/StructureDefinition/Extension"
          }
        ],
        "isModifier": true,
        "isModifierReason": "Modifier extensions are expected to modify the meaning or interpretation of the element that contains them",
        "isSummary": true,
        "mapping": [
          {
            "identity": "rim",
            "map": "N/A"
          }
        ]
      },
      {
        "id": "Consent.provision.type",
        "path": "Consent.provision.type",
        "short": "deny for a lockbox | permit for a base consent",
        "definition": "The decision this directive states. `deny` restricts; `permit` grants.\n\n**Required on the root, which diverges from R4's element text.** R4 says `type` is \"Not permitted in\nroot rule, required in all nested rules\". IHE PCF and Ontario's PCOI both require it on the root\nanyway, and this guide follows them: a directive whose base rule states no decision states none\nwhere a reader looks first, and every reader of this family will be looking there.\n\nA consumer reading a directive that carries no root type MUST NOT infer `permit`. Treat it as\nmalformed and fail closed.",
        "min": 1,
        "max": "1",
        "base": {
          "path": "Consent.provision.type",
          "min": 0,
          "max": "1"
        },
        "type": [
          {
            "code": "code"
          }
        ],
        "constraint": [
          {
            "key": "ele-1",
            "severity": "error",
            "human": "All FHIR elements must have a @value or children",
            "expression": "hasValue() or (children().count() > id.count())",
            "xpath": "@value|f:*|h:div",
            "source": "http://hl7.org/fhir/StructureDefinition/Element"
          }
        ],
        "mustSupport": true,
        "isModifier": false,
        "isSummary": true,
        "binding": {
          "strength": "required",
          "valueSet": "http://hl7.org/fhir/ValueSet/consent-provision-type"
        }
      },
      {
        "id": "Consent.provision.period",
        "path": "Consent.provision.period",
        "short": "When the restriction is effective, if it is time-bounded",
        "definition": "The window in which this restriction applies. An absent period means the restriction applies for\nas long as the directive is `active`, with no end.\n\nAn absent `period.end` means the same thing and must be read that way. A consumer that treats a\nmissing end as \"expired\" or as \"unknown, therefore ignore\" will release restricted information.",
        "min": 0,
        "max": "1",
        "base": {
          "path": "Consent.provision.period",
          "min": 0,
          "max": "1"
        },
        "type": [
          {
            "code": "Period"
          }
        ],
        "constraint": [
          {
            "key": "ele-1",
            "severity": "error",
            "human": "All FHIR elements must have a @value or children",
            "expression": "hasValue() or (children().count() > id.count())",
            "xpath": "@value|f:*|h:div",
            "source": "http://hl7.org/fhir/StructureDefinition/Element"
          }
        ],
        "mustSupport": true,
        "isModifier": false,
        "isSummary": true
      },
      {
        "id": "Consent.provision.actor",
        "path": "Consent.provision.actor",
        "short": "Whom the restriction is against, where it names anyone",
        "definition": "The recipient, agent or class of agents the restriction applies to.\n\n`actor.reference` names an individual practitioner, an organization, or a Group standing for a\nclass of recipients. `actor.role` says how they are involved. The tender requires restrictions\nnaming \"specific HIC's, agents, classes of HICs or agents, or individual providers\", and a class\nis expressed as a Group rather than as a bare code, because a consumer has to be able to test\nmembership at decision time rather than interpret a label.\n\n**An absent actor restricts EVERYONE**, on the same fail-closed reasoning as `action`.\n\n**A first-pass limit, stated because the tender asks for the case this does not yet cover.** The\nrequirement names restrictions against \"classes of HICs or agents\", and a class is properly a Group\nwhose membership a consumer can test at decision time. `Reference(Group)` is permitted here, but\nthis guide does not profile Group and publishes no example of one, so a deployment naming a class\ntoday is pointing at a resource with no agreed shape. Naming an Organization instead works and is\ncoarser: it covers everyone at that custodian rather than a named subset. What would settle it is a\nGroup profile and a decision about who maintains membership.",
        "min": 0,
        "max": "*",
        "base": {
          "path": "Consent.provision.actor",
          "min": 0,
          "max": "*"
        },
        "type": [
          {
            "code": "BackboneElement"
          }
        ],
        "meaningWhenMissing": "There is no specific actor associated with the exception",
        "constraint": [
          {
            "key": "ele-1",
            "severity": "error",
            "human": "All FHIR elements must have a @value or children",
            "expression": "hasValue() or (children().count() > id.count())",
            "xpath": "@value|f:*|h:div",
            "source": "http://hl7.org/fhir/StructureDefinition/Element"
          }
        ],
        "mustSupport": true,
        "isModifier": false,
        "isSummary": false
      },
      {
        "id": "Consent.provision.actor.id",
        "path": "Consent.provision.actor.id",
        "representation": [
          "xmlAttr"
        ],
        "short": "Unique id for inter-element referencing",
        "definition": "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.",
        "min": 0,
        "max": "1",
        "base": {
          "path": "Element.id",
          "min": 0,
          "max": "1"
        },
        "type": [
          {
            "code": "http://hl7.org/fhirpath/System.String",
            "extension": [
              {
                "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-fhir-type",
                "valueUrl": "string"
              }
            ]
          }
        ],
        "isModifier": false,
        "isSummary": false,
        "mapping": [
          {
            "identity": "rim",
            "map": "n/a"
          }
        ]
      },
      {
        "id": "Consent.provision.actor.extension",
        "path": "Consent.provision.actor.extension",
        "short": "Additional content defined by implementations",
        "definition": "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.",
        "comment": "There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions.  The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.",
        "alias": [
          "extensions",
          "user content"
        ],
        "min": 0,
        "max": "*",
        "base": {
          "path": "Element.extension",
          "min": 0,
          "max": "*"
        },
        "type": [
          {
            "code": "Extension"
          }
        ],
        "constraint": [
          {
            "key": "ele-1",
            "severity": "error",
            "human": "All FHIR elements must have a @value or children",
            "expression": "hasValue() or (children().count() > id.count())",
            "xpath": "@value|f:*|h:div",
            "source": "http://hl7.org/fhir/StructureDefinition/Element"
          },
          {
            "key": "ext-1",
            "severity": "error",
            "human": "Must have either extensions or value[x], not both",
            "expression": "extension.exists() != value.exists()",
            "xpath": "exists(f:extension)!=exists(f:*[starts-with(local-name(.), \"value\")])",
            "source": "http://hl7.org/fhir/StructureDefinition/Extension"
          }
        ],
        "isModifier": false,
        "isSummary": false,
        "mapping": [
          {
            "identity": "rim",
            "map": "n/a"
          }
        ]
      },
      {
        "id": "Consent.provision.actor.modifierExtension",
        "path": "Consent.provision.actor.modifierExtension",
        "short": "Extensions that cannot be ignored even if unrecognized",
        "definition": "May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).",
        "comment": "There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions.  The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.",
        "requirements": "Modifier extensions allow for extensions that *cannot* be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored.  This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the [definition of modifier extensions](extensibility.html#modifierExtension).",
        "alias": [
          "extensions",
          "user content",
          "modifiers"
        ],
        "min": 0,
        "max": "*",
        "base": {
          "path": "BackboneElement.modifierExtension",
          "min": 0,
          "max": "*"
        },
        "type": [
          {
            "code": "Extension"
          }
        ],
        "constraint": [
          {
            "key": "ele-1",
            "severity": "error",
            "human": "All FHIR elements must have a @value or children",
            "expression": "hasValue() or (children().count() > id.count())",
            "xpath": "@value|f:*|h:div",
            "source": "http://hl7.org/fhir/StructureDefinition/Element"
          },
          {
            "key": "ext-1",
            "severity": "error",
            "human": "Must have either extensions or value[x], not both",
            "expression": "extension.exists() != value.exists()",
            "xpath": "exists(f:extension)!=exists(f:*[starts-with(local-name(.), \"value\")])",
            "source": "http://hl7.org/fhir/StructureDefinition/Extension"
          }
        ],
        "isModifier": true,
        "isModifierReason": "Modifier extensions are expected to modify the meaning or interpretation of the element that contains them",
        "isSummary": true,
        "mapping": [
          {
            "identity": "rim",
            "map": "N/A"
          }
        ]
      },
      {
        "id": "Consent.provision.actor.role",
        "path": "Consent.provision.actor.role",
        "short": "How the actor is involved",
        "definition": "How the individual is involved in the resources content that is described in the exception.",
        "min": 1,
        "max": "1",
        "base": {
          "path": "Consent.provision.actor.role",
          "min": 1,
          "max": "1"
        },
        "type": [
          {
            "code": "CodeableConcept"
          }
        ],
        "constraint": [
          {
            "key": "ele-1",
            "severity": "error",
            "human": "All FHIR elements must have a @value or children",
            "expression": "hasValue() or (children().count() > id.count())",
            "xpath": "@value|f:*|h:div",
            "source": "http://hl7.org/fhir/StructureDefinition/Element"
          }
        ],
        "isModifier": false,
        "isSummary": false,
        "binding": {
          "extension": [
            {
              "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName",
              "valueString": "ConsentActorRole"
            }
          ],
          "strength": "extensible",
          "description": "How an actor is involved in the consent considerations.",
          "valueSet": "http://hl7.org/fhir/ValueSet/security-role-type"
        }
      },
      {
        "id": "Consent.provision.actor.reference",
        "path": "Consent.provision.actor.reference",
        "short": "Resource for the actor (or group, by role)",
        "definition": "The resource that identifies the actor. To identify actors by type, use group to identify a set of actors by some property they share (e.g. 'admitting officers').",
        "min": 1,
        "max": "1",
        "base": {
          "path": "Consent.provision.actor.reference",
          "min": 1,
          "max": "1"
        },
        "type": [
          {
            "code": "Reference",
            "targetProfile": [
              "https://fhir.apps.health/StructureDefinition/nexus-emr-core-practitioner",
              "https://fhir.apps.health/StructureDefinition/nexus-emr-core-practitionerrole",
              "https://fhir.apps.health/StructureDefinition/nexus-emr-core-organization",
              "https://fhir.apps.health/StructureDefinition/nexus-emr-core-appdevice",
              "http://hl7.org/fhir/StructureDefinition/Group"
            ]
          }
        ],
        "constraint": [
          {
            "key": "ele-1",
            "severity": "error",
            "human": "All FHIR elements must have a @value or children",
            "expression": "hasValue() or (children().count() > id.count())",
            "xpath": "@value|f:*|h:div",
            "source": "http://hl7.org/fhir/StructureDefinition/Element"
          }
        ],
        "isModifier": false,
        "isSummary": false
      },
      {
        "id": "Consent.provision.action",
        "path": "Consent.provision.action",
        "short": "Which acts are restricted: collect | access | use | disclose",
        "definition": "The acts this directive restricts, matching PHIPA's collection / use / disclosure triad plus\n`access` for retrieval that permits none of them.\n\n**A deliberate divergence from IHE PCF, which prohibits this element entirely** (`0..0` in all\nthree of its tiers). PCF targets document-sharing environments, where disclosure is effectively the\nonly act in play, so the axis buys nothing there. A primary-care EMR is the case it does not cover:\na restriction on internal USE of a record by staff who already hold it is a different instruction\nfrom a restriction on DISCLOSING it outward, and Ontario requires both to be expressible. A\ndirective exported toward a PCF-conformant system loses this element, and what it meant has to be\ncarried some other way or declared unsupported at the boundary.\n\n**An absent action restricts EVERY action.** This is stated rather than left to inference because\nthe opposite reading — an unnamed action is unrestricted — fails open, and a privacy control that\nfails open is not a control. A writer who means to restrict only disclosure must say `disclose`.",
        "comment": "Note that this is the direct action (not the grounds for the action covered in the purpose element). At present, the only action in the understood and tested scope of this resource is 'read'.",
        "min": 0,
        "max": "*",
        "base": {
          "path": "Consent.provision.action",
          "min": 0,
          "max": "*"
        },
        "type": [
          {
            "code": "CodeableConcept"
          }
        ],
        "meaningWhenMissing": "all actions",
        "constraint": [
          {
            "key": "ele-1",
            "severity": "error",
            "human": "All FHIR elements must have a @value or children",
            "expression": "hasValue() or (children().count() > id.count())",
            "xpath": "@value|f:*|h:div",
            "source": "http://hl7.org/fhir/StructureDefinition/Element"
          }
        ],
        "mustSupport": true,
        "isModifier": false,
        "isSummary": true,
        "binding": {
          "strength": "extensible",
          "valueSet": "https://fhir.apps.health/ValueSet/nexus-privacy-restriction-actions"
        }
      },
      {
        "id": "Consent.provision.securityLabel",
        "path": "Consent.provision.securityLabel",
        "short": "Restrict by sensitivity class -- read the high-water-mark warning first",
        "definition": "Restricts records carrying a given security label rather than records named individually.\n\n**R4 matching here is not equality, and the difference is dangerous.** The specification states:\n\"If the consent specifies a security label of 'R' then it applies to all resources that are\nlabeled 'R' or lower. E.g. for Confidentiality, it's a high water mark.\" So a directive written\nto restrict only `restricted` material also restricts everything `normal`, `moderate`, `low` and\n`unrestricted` — which, in a chart where most resources carry no elevated label at all, is very\nclose to restricting the entire record.\n\nA writer meaning \"restrict the sensitive material\" and reaching for `R` will get a far broader\nrestriction than intended. Because that error over-restricts rather than over-discloses it will\nnot cause a privacy breach, but it will cause a clinician to be denied information they are\nentitled to, at a moment when they may need it.\n\nPrefer explicit `provision.data` selectors for a first implementation. Use this element only where\nthe deployment has tested subsumption behaviour against both a higher and a lower classification\nthan the one it names.",
        "comment": "If the consent specifies a security label of \"R\" then it applies to all resources that are labeled \"R\" or lower. E.g. for Confidentiality, it's a high water mark. For other kinds of security labels, subsumption logic applies. When the purpose of use tag is on the data, access request purpose of use shall not conflict.",
        "min": 0,
        "max": "*",
        "base": {
          "path": "Consent.provision.securityLabel",
          "min": 0,
          "max": "*"
        },
        "type": [
          {
            "code": "Coding"
          }
        ],
        "constraint": [
          {
            "key": "ele-1",
            "severity": "error",
            "human": "All FHIR elements must have a @value or children",
            "expression": "hasValue() or (children().count() > id.count())",
            "xpath": "@value|f:*|h:div",
            "source": "http://hl7.org/fhir/StructureDefinition/Element"
          }
        ],
        "mustSupport": true,
        "isModifier": false,
        "isSummary": true,
        "binding": {
          "extension": [
            {
              "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName",
              "valueString": "SecurityLabels"
            },
            {
              "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-isCommonBinding",
              "valueBoolean": true
            }
          ],
          "strength": "extensible",
          "description": "Security Labels from the Healthcare Privacy and Security Classification System.",
          "valueSet": "http://hl7.org/fhir/ValueSet/security-labels"
        }
      },
      {
        "id": "Consent.provision.purpose",
        "path": "Consent.provision.purpose",
        "short": "Context of activities covered by this rule",
        "definition": "The context of the activities a user is taking - why the user is accessing the data - that are controlled by this rule.",
        "comment": "When the purpose of use tag is on the data, access request purpose of use shall not conflict.",
        "min": 0,
        "max": "*",
        "base": {
          "path": "Consent.provision.purpose",
          "min": 0,
          "max": "*"
        },
        "type": [
          {
            "code": "Coding"
          }
        ],
        "constraint": [
          {
            "key": "ele-1",
            "severity": "error",
            "human": "All FHIR elements must have a @value or children",
            "expression": "hasValue() or (children().count() > id.count())",
            "xpath": "@value|f:*|h:div",
            "source": "http://hl7.org/fhir/StructureDefinition/Element"
          }
        ],
        "isModifier": false,
        "isSummary": true,
        "binding": {
          "extension": [
            {
              "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName",
              "valueString": "PurposeOfUse"
            }
          ],
          "strength": "extensible",
          "description": "What purposes of use are controlled by this exception. If more than one label is specified, operations must have all the specified labels.",
          "valueSet": "http://terminology.hl7.org/ValueSet/v3-PurposeOfUse"
        }
      },
      {
        "id": "Consent.provision.class",
        "path": "Consent.provision.class",
        "short": "e.g. Resource Type, Profile, CDA, etc.",
        "definition": "The class of information covered by this rule. The type can be a FHIR resource type, a profile on a type, or a CDA document, or some other type that indicates what sort of information the consent relates to.",
        "comment": "Multiple types are or'ed together. The intention of the contentType element is that the codes refer to profiles or document types defined in a standard or an implementation guide somewhere.",
        "min": 0,
        "max": "*",
        "base": {
          "path": "Consent.provision.class",
          "min": 0,
          "max": "*"
        },
        "type": [
          {
            "code": "Coding"
          }
        ],
        "constraint": [
          {
            "key": "ele-1",
            "severity": "error",
            "human": "All FHIR elements must have a @value or children",
            "expression": "hasValue() or (children().count() > id.count())",
            "xpath": "@value|f:*|h:div",
            "source": "http://hl7.org/fhir/StructureDefinition/Element"
          }
        ],
        "isModifier": false,
        "isSummary": true,
        "binding": {
          "extension": [
            {
              "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName",
              "valueString": "ConsentContentClass"
            }
          ],
          "strength": "extensible",
          "description": "The class (type) of information a consent rule covers.",
          "valueSet": "http://hl7.org/fhir/ValueSet/consent-content-class"
        }
      },
      {
        "id": "Consent.provision.code",
        "path": "Consent.provision.code",
        "short": "e.g. LOINC or SNOMED CT code, etc. in the content",
        "definition": "If this code is found in an instance, then the rule applies.",
        "comment": "Typical use of this is a Document code with class = CDA.",
        "min": 0,
        "max": "*",
        "base": {
          "path": "Consent.provision.code",
          "min": 0,
          "max": "*"
        },
        "type": [
          {
            "code": "CodeableConcept"
          }
        ],
        "constraint": [
          {
            "key": "ele-1",
            "severity": "error",
            "human": "All FHIR elements must have a @value or children",
            "expression": "hasValue() or (children().count() > id.count())",
            "xpath": "@value|f:*|h:div",
            "source": "http://hl7.org/fhir/StructureDefinition/Element"
          }
        ],
        "isModifier": false,
        "isSummary": true,
        "binding": {
          "extension": [
            {
              "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName",
              "valueString": "ConsentContentCode"
            }
          ],
          "strength": "example",
          "description": "If this code is found in an instance, then the exception applies.",
          "valueSet": "http://hl7.org/fhir/ValueSet/consent-content-code"
        }
      },
      {
        "id": "Consent.provision.dataPeriod",
        "path": "Consent.provision.dataPeriod",
        "short": "Timeframe for data controlled by this rule",
        "definition": "Clinical or Operational Relevant period of time that bounds the data controlled by this rule.",
        "comment": "This has a different sense to the Consent.period - that is when the consent agreement holds. This is the time period of the data that is controlled by the agreement.",
        "min": 0,
        "max": "1",
        "base": {
          "path": "Consent.provision.dataPeriod",
          "min": 0,
          "max": "1"
        },
        "type": [
          {
            "code": "Period"
          }
        ],
        "constraint": [
          {
            "key": "ele-1",
            "severity": "error",
            "human": "All FHIR elements must have a @value or children",
            "expression": "hasValue() or (children().count() > id.count())",
            "xpath": "@value|f:*|h:div",
            "source": "http://hl7.org/fhir/StructureDefinition/Element"
          }
        ],
        "isModifier": false,
        "isSummary": true
      },
      {
        "id": "Consent.provision.data",
        "path": "Consent.provision.data",
        "short": "Which records are restricted, where the directive names records",
        "definition": "The specific records this restriction covers. Absent means the restriction covers the patient's\nwhole record, which is the ordinary lockbox case.\n\n`data.meaning` is required by R4 and decides how far the reference reaches: `instance` is that\nresource alone, `related` includes what it points at, `dependents` includes what points at it,\n`authoredby` covers everything authored by the referenced actor. Choosing `instance` where the\npatient meant \"this visit and everything from it\" under-restricts, and it under-restricts\nsilently.\n\n**A first-pass limit worth knowing before designing against it.** These selectors enumerate\nrecords that exist NOW. A directive meant to cover future information — \"nothing from this clinic,\never\" — cannot be expressed as a list, and this release does not define a criteria-based selector.\nExpress a whole-record restriction by naming no data at all; that reading does extend to future\nrecords. A directive naming a data list does NOT.",
        "min": 0,
        "max": "*",
        "base": {
          "path": "Consent.provision.data",
          "min": 0,
          "max": "*"
        },
        "type": [
          {
            "code": "BackboneElement"
          }
        ],
        "meaningWhenMissing": "all data",
        "constraint": [
          {
            "key": "ele-1",
            "severity": "error",
            "human": "All FHIR elements must have a @value or children",
            "expression": "hasValue() or (children().count() > id.count())",
            "xpath": "@value|f:*|h:div",
            "source": "http://hl7.org/fhir/StructureDefinition/Element"
          }
        ],
        "mustSupport": true,
        "isModifier": false,
        "isSummary": true,
        "mapping": [
          {
            "identity": "rim",
            "map": "Role"
          }
        ]
      },
      {
        "id": "Consent.provision.data.id",
        "path": "Consent.provision.data.id",
        "representation": [
          "xmlAttr"
        ],
        "short": "Unique id for inter-element referencing",
        "definition": "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.",
        "min": 0,
        "max": "1",
        "base": {
          "path": "Element.id",
          "min": 0,
          "max": "1"
        },
        "type": [
          {
            "code": "http://hl7.org/fhirpath/System.String",
            "extension": [
              {
                "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-fhir-type",
                "valueUrl": "string"
              }
            ]
          }
        ],
        "isModifier": false,
        "isSummary": false,
        "mapping": [
          {
            "identity": "rim",
            "map": "n/a"
          }
        ]
      },
      {
        "id": "Consent.provision.data.extension",
        "path": "Consent.provision.data.extension",
        "short": "Additional content defined by implementations",
        "definition": "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.",
        "comment": "There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions.  The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.",
        "alias": [
          "extensions",
          "user content"
        ],
        "min": 0,
        "max": "*",
        "base": {
          "path": "Element.extension",
          "min": 0,
          "max": "*"
        },
        "type": [
          {
            "code": "Extension"
          }
        ],
        "constraint": [
          {
            "key": "ele-1",
            "severity": "error",
            "human": "All FHIR elements must have a @value or children",
            "expression": "hasValue() or (children().count() > id.count())",
            "xpath": "@value|f:*|h:div",
            "source": "http://hl7.org/fhir/StructureDefinition/Element"
          },
          {
            "key": "ext-1",
            "severity": "error",
            "human": "Must have either extensions or value[x], not both",
            "expression": "extension.exists() != value.exists()",
            "xpath": "exists(f:extension)!=exists(f:*[starts-with(local-name(.), \"value\")])",
            "source": "http://hl7.org/fhir/StructureDefinition/Extension"
          }
        ],
        "isModifier": false,
        "isSummary": false,
        "mapping": [
          {
            "identity": "rim",
            "map": "n/a"
          }
        ]
      },
      {
        "id": "Consent.provision.data.modifierExtension",
        "path": "Consent.provision.data.modifierExtension",
        "short": "Extensions that cannot be ignored even if unrecognized",
        "definition": "May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).",
        "comment": "There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions.  The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.",
        "requirements": "Modifier extensions allow for extensions that *cannot* be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored.  This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the [definition of modifier extensions](extensibility.html#modifierExtension).",
        "alias": [
          "extensions",
          "user content",
          "modifiers"
        ],
        "min": 0,
        "max": "*",
        "base": {
          "path": "BackboneElement.modifierExtension",
          "min": 0,
          "max": "*"
        },
        "type": [
          {
            "code": "Extension"
          }
        ],
        "constraint": [
          {
            "key": "ele-1",
            "severity": "error",
            "human": "All FHIR elements must have a @value or children",
            "expression": "hasValue() or (children().count() > id.count())",
            "xpath": "@value|f:*|h:div",
            "source": "http://hl7.org/fhir/StructureDefinition/Element"
          },
          {
            "key": "ext-1",
            "severity": "error",
            "human": "Must have either extensions or value[x], not both",
            "expression": "extension.exists() != value.exists()",
            "xpath": "exists(f:extension)!=exists(f:*[starts-with(local-name(.), \"value\")])",
            "source": "http://hl7.org/fhir/StructureDefinition/Extension"
          }
        ],
        "isModifier": true,
        "isModifierReason": "Modifier extensions are expected to modify the meaning or interpretation of the element that contains them",
        "isSummary": true,
        "mapping": [
          {
            "identity": "rim",
            "map": "N/A"
          }
        ]
      },
      {
        "id": "Consent.provision.data.meaning",
        "path": "Consent.provision.data.meaning",
        "short": "instance | related | dependents | authoredby",
        "definition": "How the resource reference is interpreted when testing consent restrictions.",
        "min": 1,
        "max": "1",
        "base": {
          "path": "Consent.provision.data.meaning",
          "min": 1,
          "max": "1"
        },
        "type": [
          {
            "code": "code"
          }
        ],
        "constraint": [
          {
            "key": "ele-1",
            "severity": "error",
            "human": "All FHIR elements must have a @value or children",
            "expression": "hasValue() or (children().count() > id.count())",
            "xpath": "@value|f:*|h:div",
            "source": "http://hl7.org/fhir/StructureDefinition/Element"
          }
        ],
        "isModifier": false,
        "isSummary": true,
        "binding": {
          "extension": [
            {
              "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName",
              "valueString": "ConsentDataMeaning"
            }
          ],
          "strength": "required",
          "description": "How a resource reference is interpreted when testing consent restrictions.",
          "valueSet": "http://hl7.org/fhir/ValueSet/consent-data-meaning|4.0.1"
        }
      },
      {
        "id": "Consent.provision.data.reference",
        "path": "Consent.provision.data.reference",
        "short": "The actual data reference",
        "definition": "A reference to a specific resource that defines which resources are covered by this consent.",
        "min": 1,
        "max": "1",
        "base": {
          "path": "Consent.provision.data.reference",
          "min": 1,
          "max": "1"
        },
        "type": [
          {
            "code": "Reference",
            "targetProfile": [
              "http://hl7.org/fhir/StructureDefinition/Resource"
            ]
          }
        ],
        "constraint": [
          {
            "key": "ele-1",
            "severity": "error",
            "human": "All FHIR elements must have a @value or children",
            "expression": "hasValue() or (children().count() > id.count())",
            "xpath": "@value|f:*|h:div",
            "source": "http://hl7.org/fhir/StructureDefinition/Element"
          }
        ],
        "isModifier": false,
        "isSummary": true
      },
      {
        "id": "Consent.provision.provision",
        "path": "Consent.provision.provision",
        "short": "Exceptions: what the restriction does NOT reach",
        "definition": "Carve-outs from the base rule, each with an explicit `type` (R4 requires one here and so does this\nprofile). On a `deny` directive these are the permissions that survive the restriction.\n\n**This is where break-glass lives.** A standing exception naming the users who may reach the record\nin an emergency is a nested permit whose `purpose` is `BTG` and whose `actor` names the privileged\ngroup:\n\n```\nprovision.type                = deny\n  provision.provision.type    = permit\n  provision.provision.actor   = Group/privileged-users   (role: IRCP)\n  provision.provision.purpose = BTG\n```\n\nThat shape is IHE PCF's, adopted rather than reinvented. **It says who MAY break the glass. It never\nsays that anybody did** -- the record of an actual override, by whom, when, on what lawful ground\nand reaching what, is an AuditEvent following IHE BALP's authorization pattern. A deployment that\nrecorded override events by editing this resource would rewrite the patient's instruction every time\na clinician acted on it, and would make \"what did the patient actually ask for\" unanswerable.\n\nNested exceptions do not nest further. R4 permits deeper trees and PCF forbids them; this profile\nfollows PCF, because a rule whose meaning depends on three levels of precedence is one nobody\nimplements the same way twice.",
        "min": 0,
        "max": "*",
        "base": {
          "path": "Consent.provision.provision",
          "min": 0,
          "max": "*"
        },
        "type": [
          {
            "code": "BackboneElement"
          }
        ],
        "constraint": [
          {
            "key": "ele-1",
            "severity": "error",
            "human": "All FHIR elements must have a @value or children",
            "expression": "hasValue() or (children().count() > id.count())",
            "xpath": "@value|f:*|h:div",
            "source": "http://hl7.org/fhir/StructureDefinition/Element"
          }
        ],
        "mustSupport": true,
        "isModifier": false,
        "isSummary": false
      },
      {
        "id": "Consent.provision.provision.id",
        "path": "Consent.provision.provision.id",
        "representation": [
          "xmlAttr"
        ],
        "short": "Unique id for inter-element referencing",
        "definition": "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.",
        "min": 0,
        "max": "1",
        "base": {
          "path": "Element.id",
          "min": 0,
          "max": "1"
        },
        "type": [
          {
            "code": "http://hl7.org/fhirpath/System.String",
            "extension": [
              {
                "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-fhir-type",
                "valueUrl": "string"
              }
            ]
          }
        ],
        "isModifier": false,
        "isSummary": false,
        "mapping": [
          {
            "identity": "rim",
            "map": "n/a"
          }
        ]
      },
      {
        "id": "Consent.provision.provision.extension",
        "path": "Consent.provision.provision.extension",
        "short": "Additional content defined by implementations",
        "definition": "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.",
        "comment": "There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions.  The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.",
        "alias": [
          "extensions",
          "user content"
        ],
        "min": 0,
        "max": "*",
        "base": {
          "path": "Element.extension",
          "min": 0,
          "max": "*"
        },
        "type": [
          {
            "code": "Extension"
          }
        ],
        "constraint": [
          {
            "key": "ele-1",
            "severity": "error",
            "human": "All FHIR elements must have a @value or children",
            "expression": "hasValue() or (children().count() > id.count())",
            "xpath": "@value|f:*|h:div",
            "source": "http://hl7.org/fhir/StructureDefinition/Element"
          },
          {
            "key": "ext-1",
            "severity": "error",
            "human": "Must have either extensions or value[x], not both",
            "expression": "extension.exists() != value.exists()",
            "xpath": "exists(f:extension)!=exists(f:*[starts-with(local-name(.), \"value\")])",
            "source": "http://hl7.org/fhir/StructureDefinition/Extension"
          }
        ],
        "isModifier": false,
        "isSummary": false,
        "mapping": [
          {
            "identity": "rim",
            "map": "n/a"
          }
        ]
      },
      {
        "id": "Consent.provision.provision.modifierExtension",
        "path": "Consent.provision.provision.modifierExtension",
        "short": "Extensions that cannot be ignored even if unrecognized",
        "definition": "May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).",
        "comment": "There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions.  The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.",
        "requirements": "Modifier extensions allow for extensions that *cannot* be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored.  This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the [definition of modifier extensions](extensibility.html#modifierExtension).",
        "alias": [
          "extensions",
          "user content",
          "modifiers"
        ],
        "min": 0,
        "max": "*",
        "base": {
          "path": "BackboneElement.modifierExtension",
          "min": 0,
          "max": "*"
        },
        "type": [
          {
            "code": "Extension"
          }
        ],
        "constraint": [
          {
            "key": "ele-1",
            "severity": "error",
            "human": "All FHIR elements must have a @value or children",
            "expression": "hasValue() or (children().count() > id.count())",
            "xpath": "@value|f:*|h:div",
            "source": "http://hl7.org/fhir/StructureDefinition/Element"
          },
          {
            "key": "ext-1",
            "severity": "error",
            "human": "Must have either extensions or value[x], not both",
            "expression": "extension.exists() != value.exists()",
            "xpath": "exists(f:extension)!=exists(f:*[starts-with(local-name(.), \"value\")])",
            "source": "http://hl7.org/fhir/StructureDefinition/Extension"
          }
        ],
        "isModifier": true,
        "isModifierReason": "Modifier extensions are expected to modify the meaning or interpretation of the element that contains them",
        "isSummary": true,
        "mapping": [
          {
            "identity": "rim",
            "map": "N/A"
          }
        ]
      },
      {
        "id": "Consent.provision.provision.type",
        "path": "Consent.provision.provision.type",
        "short": "permit (an exception to a deny directive) | deny",
        "definition": "Action  to take - permit or deny - when the rule conditions are met.  Not permitted in root rule, required in all nested rules.",
        "min": 1,
        "max": "1",
        "base": {
          "path": "Consent.provision.type",
          "min": 0,
          "max": "1"
        },
        "type": [
          {
            "code": "code"
          }
        ],
        "constraint": [
          {
            "key": "ele-1",
            "severity": "error",
            "human": "All FHIR elements must have a @value or children",
            "expression": "hasValue() or (children().count() > id.count())",
            "xpath": "@value|f:*|h:div",
            "source": "http://hl7.org/fhir/StructureDefinition/Element"
          }
        ],
        "mustSupport": true,
        "isModifier": false,
        "isSummary": true,
        "binding": {
          "extension": [
            {
              "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName",
              "valueString": "ConsentProvisionType"
            }
          ],
          "strength": "required",
          "description": "How a rule statement is applied, such as adding additional consent or removing consent.",
          "valueSet": "http://hl7.org/fhir/ValueSet/consent-provision-type|4.0.1"
        }
      },
      {
        "id": "Consent.provision.provision.period",
        "path": "Consent.provision.provision.period",
        "short": "Timeframe for this rule",
        "definition": "The timeframe in this rule is valid.",
        "min": 0,
        "max": "1",
        "base": {
          "path": "Consent.provision.period",
          "min": 0,
          "max": "1"
        },
        "type": [
          {
            "code": "Period"
          }
        ],
        "constraint": [
          {
            "key": "ele-1",
            "severity": "error",
            "human": "All FHIR elements must have a @value or children",
            "expression": "hasValue() or (children().count() > id.count())",
            "xpath": "@value|f:*|h:div",
            "source": "http://hl7.org/fhir/StructureDefinition/Element"
          }
        ],
        "isModifier": false,
        "isSummary": true
      },
      {
        "id": "Consent.provision.provision.actor",
        "path": "Consent.provision.provision.actor",
        "short": "Who|what controlled by this rule (or group, by role)",
        "definition": "Who or what is controlled by this rule. Use group to identify a set of actors by some property they share (e.g. 'admitting officers').",
        "min": 0,
        "max": "*",
        "base": {
          "path": "Consent.provision.actor",
          "min": 0,
          "max": "*"
        },
        "type": [
          {
            "code": "BackboneElement"
          }
        ],
        "meaningWhenMissing": "There is no specific actor associated with the exception",
        "constraint": [
          {
            "key": "ele-1",
            "severity": "error",
            "human": "All FHIR elements must have a @value or children",
            "expression": "hasValue() or (children().count() > id.count())",
            "xpath": "@value|f:*|h:div",
            "source": "http://hl7.org/fhir/StructureDefinition/Element"
          }
        ],
        "isModifier": false,
        "isSummary": false
      },
      {
        "id": "Consent.provision.provision.actor.id",
        "path": "Consent.provision.provision.actor.id",
        "representation": [
          "xmlAttr"
        ],
        "short": "Unique id for inter-element referencing",
        "definition": "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.",
        "min": 0,
        "max": "1",
        "base": {
          "path": "Element.id",
          "min": 0,
          "max": "1"
        },
        "type": [
          {
            "code": "http://hl7.org/fhirpath/System.String",
            "extension": [
              {
                "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-fhir-type",
                "valueUrl": "string"
              }
            ]
          }
        ],
        "isModifier": false,
        "isSummary": false,
        "mapping": [
          {
            "identity": "rim",
            "map": "n/a"
          }
        ]
      },
      {
        "id": "Consent.provision.provision.actor.extension",
        "path": "Consent.provision.provision.actor.extension",
        "short": "Additional content defined by implementations",
        "definition": "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.",
        "comment": "There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions.  The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.",
        "alias": [
          "extensions",
          "user content"
        ],
        "min": 0,
        "max": "*",
        "base": {
          "path": "Element.extension",
          "min": 0,
          "max": "*"
        },
        "type": [
          {
            "code": "Extension"
          }
        ],
        "constraint": [
          {
            "key": "ele-1",
            "severity": "error",
            "human": "All FHIR elements must have a @value or children",
            "expression": "hasValue() or (children().count() > id.count())",
            "xpath": "@value|f:*|h:div",
            "source": "http://hl7.org/fhir/StructureDefinition/Element"
          },
          {
            "key": "ext-1",
            "severity": "error",
            "human": "Must have either extensions or value[x], not both",
            "expression": "extension.exists() != value.exists()",
            "xpath": "exists(f:extension)!=exists(f:*[starts-with(local-name(.), \"value\")])",
            "source": "http://hl7.org/fhir/StructureDefinition/Extension"
          }
        ],
        "isModifier": false,
        "isSummary": false,
        "mapping": [
          {
            "identity": "rim",
            "map": "n/a"
          }
        ]
      },
      {
        "id": "Consent.provision.provision.actor.modifierExtension",
        "path": "Consent.provision.provision.actor.modifierExtension",
        "short": "Extensions that cannot be ignored even if unrecognized",
        "definition": "May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).",
        "comment": "There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions.  The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.",
        "requirements": "Modifier extensions allow for extensions that *cannot* be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored.  This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the [definition of modifier extensions](extensibility.html#modifierExtension).",
        "alias": [
          "extensions",
          "user content",
          "modifiers"
        ],
        "min": 0,
        "max": "*",
        "base": {
          "path": "BackboneElement.modifierExtension",
          "min": 0,
          "max": "*"
        },
        "type": [
          {
            "code": "Extension"
          }
        ],
        "constraint": [
          {
            "key": "ele-1",
            "severity": "error",
            "human": "All FHIR elements must have a @value or children",
            "expression": "hasValue() or (children().count() > id.count())",
            "xpath": "@value|f:*|h:div",
            "source": "http://hl7.org/fhir/StructureDefinition/Element"
          },
          {
            "key": "ext-1",
            "severity": "error",
            "human": "Must have either extensions or value[x], not both",
            "expression": "extension.exists() != value.exists()",
            "xpath": "exists(f:extension)!=exists(f:*[starts-with(local-name(.), \"value\")])",
            "source": "http://hl7.org/fhir/StructureDefinition/Extension"
          }
        ],
        "isModifier": true,
        "isModifierReason": "Modifier extensions are expected to modify the meaning or interpretation of the element that contains them",
        "isSummary": true,
        "mapping": [
          {
            "identity": "rim",
            "map": "N/A"
          }
        ]
      },
      {
        "id": "Consent.provision.provision.actor.role",
        "path": "Consent.provision.provision.actor.role",
        "short": "How the actor is involved",
        "definition": "How the individual is involved in the resources content that is described in the exception.",
        "min": 1,
        "max": "1",
        "base": {
          "path": "Consent.provision.actor.role",
          "min": 1,
          "max": "1"
        },
        "type": [
          {
            "code": "CodeableConcept"
          }
        ],
        "constraint": [
          {
            "key": "ele-1",
            "severity": "error",
            "human": "All FHIR elements must have a @value or children",
            "expression": "hasValue() or (children().count() > id.count())",
            "xpath": "@value|f:*|h:div",
            "source": "http://hl7.org/fhir/StructureDefinition/Element"
          }
        ],
        "isModifier": false,
        "isSummary": false,
        "binding": {
          "extension": [
            {
              "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName",
              "valueString": "ConsentActorRole"
            }
          ],
          "strength": "extensible",
          "description": "How an actor is involved in the consent considerations.",
          "valueSet": "http://hl7.org/fhir/ValueSet/security-role-type"
        }
      },
      {
        "id": "Consent.provision.provision.actor.reference",
        "path": "Consent.provision.provision.actor.reference",
        "short": "Resource for the actor (or group, by role)",
        "definition": "The resource that identifies the actor. To identify actors by type, use group to identify a set of actors by some property they share (e.g. 'admitting officers').",
        "min": 1,
        "max": "1",
        "base": {
          "path": "Consent.provision.actor.reference",
          "min": 1,
          "max": "1"
        },
        "type": [
          {
            "code": "Reference",
            "targetProfile": [
              "http://hl7.org/fhir/StructureDefinition/Device",
              "http://hl7.org/fhir/StructureDefinition/Group",
              "http://hl7.org/fhir/StructureDefinition/CareTeam",
              "http://hl7.org/fhir/StructureDefinition/Organization",
              "http://hl7.org/fhir/StructureDefinition/Patient",
              "http://hl7.org/fhir/StructureDefinition/Practitioner",
              "http://hl7.org/fhir/StructureDefinition/RelatedPerson",
              "http://hl7.org/fhir/StructureDefinition/PractitionerRole"
            ]
          }
        ],
        "constraint": [
          {
            "key": "ele-1",
            "severity": "error",
            "human": "All FHIR elements must have a @value or children",
            "expression": "hasValue() or (children().count() > id.count())",
            "xpath": "@value|f:*|h:div",
            "source": "http://hl7.org/fhir/StructureDefinition/Element"
          }
        ],
        "isModifier": false,
        "isSummary": false
      },
      {
        "id": "Consent.provision.provision.action",
        "path": "Consent.provision.provision.action",
        "short": "Actions controlled by this rule",
        "definition": "Actions controlled by this Rule.",
        "comment": "Note that this is the direct action (not the grounds for the action covered in the purpose element). At present, the only action in the understood and tested scope of this resource is 'read'.",
        "min": 0,
        "max": "*",
        "base": {
          "path": "Consent.provision.action",
          "min": 0,
          "max": "*"
        },
        "type": [
          {
            "code": "CodeableConcept"
          }
        ],
        "meaningWhenMissing": "all actions",
        "constraint": [
          {
            "key": "ele-1",
            "severity": "error",
            "human": "All FHIR elements must have a @value or children",
            "expression": "hasValue() or (children().count() > id.count())",
            "xpath": "@value|f:*|h:div",
            "source": "http://hl7.org/fhir/StructureDefinition/Element"
          }
        ],
        "isModifier": false,
        "isSummary": true,
        "binding": {
          "extension": [
            {
              "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName",
              "valueString": "ConsentAction"
            }
          ],
          "strength": "example",
          "description": "Detailed codes for the consent action.",
          "valueSet": "http://hl7.org/fhir/ValueSet/consent-action"
        }
      },
      {
        "id": "Consent.provision.provision.securityLabel",
        "path": "Consent.provision.provision.securityLabel",
        "short": "Security Labels that define affected resources",
        "definition": "A security label, comprised of 0..* security label fields (Privacy tags), which define which resources are controlled by this exception.",
        "comment": "If the consent specifies a security label of \"R\" then it applies to all resources that are labeled \"R\" or lower. E.g. for Confidentiality, it's a high water mark. For other kinds of security labels, subsumption logic applies. When the purpose of use tag is on the data, access request purpose of use shall not conflict.",
        "min": 0,
        "max": "*",
        "base": {
          "path": "Consent.provision.securityLabel",
          "min": 0,
          "max": "*"
        },
        "type": [
          {
            "code": "Coding"
          }
        ],
        "constraint": [
          {
            "key": "ele-1",
            "severity": "error",
            "human": "All FHIR elements must have a @value or children",
            "expression": "hasValue() or (children().count() > id.count())",
            "xpath": "@value|f:*|h:div",
            "source": "http://hl7.org/fhir/StructureDefinition/Element"
          }
        ],
        "isModifier": false,
        "isSummary": true,
        "binding": {
          "extension": [
            {
              "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName",
              "valueString": "SecurityLabels"
            },
            {
              "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-isCommonBinding",
              "valueBoolean": true
            }
          ],
          "strength": "extensible",
          "description": "Security Labels from the Healthcare Privacy and Security Classification System.",
          "valueSet": "http://hl7.org/fhir/ValueSet/security-labels"
        }
      },
      {
        "id": "Consent.provision.provision.purpose",
        "path": "Consent.provision.provision.purpose",
        "short": "Why this exception exists -- `BTG` marks the break-glass carve-out",
        "definition": "The context of the activities a user is taking - why the user is accessing the data - that are controlled by this rule.",
        "comment": "When the purpose of use tag is on the data, access request purpose of use shall not conflict.",
        "min": 0,
        "max": "*",
        "base": {
          "path": "Consent.provision.purpose",
          "min": 0,
          "max": "*"
        },
        "type": [
          {
            "code": "Coding"
          }
        ],
        "constraint": [
          {
            "key": "ele-1",
            "severity": "error",
            "human": "All FHIR elements must have a @value or children",
            "expression": "hasValue() or (children().count() > id.count())",
            "xpath": "@value|f:*|h:div",
            "source": "http://hl7.org/fhir/StructureDefinition/Element"
          }
        ],
        "mustSupport": true,
        "isModifier": false,
        "isSummary": true,
        "binding": {
          "strength": "extensible",
          "valueSet": "https://fhir.apps.health/ValueSet/nexus-privacy-exception-purposes"
        }
      },
      {
        "id": "Consent.provision.provision.class",
        "path": "Consent.provision.provision.class",
        "short": "e.g. Resource Type, Profile, CDA, etc.",
        "definition": "The class of information covered by this rule. The type can be a FHIR resource type, a profile on a type, or a CDA document, or some other type that indicates what sort of information the consent relates to.",
        "comment": "Multiple types are or'ed together. The intention of the contentType element is that the codes refer to profiles or document types defined in a standard or an implementation guide somewhere.",
        "min": 0,
        "max": "*",
        "base": {
          "path": "Consent.provision.class",
          "min": 0,
          "max": "*"
        },
        "type": [
          {
            "code": "Coding"
          }
        ],
        "constraint": [
          {
            "key": "ele-1",
            "severity": "error",
            "human": "All FHIR elements must have a @value or children",
            "expression": "hasValue() or (children().count() > id.count())",
            "xpath": "@value|f:*|h:div",
            "source": "http://hl7.org/fhir/StructureDefinition/Element"
          }
        ],
        "isModifier": false,
        "isSummary": true,
        "binding": {
          "extension": [
            {
              "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName",
              "valueString": "ConsentContentClass"
            }
          ],
          "strength": "extensible",
          "description": "The class (type) of information a consent rule covers.",
          "valueSet": "http://hl7.org/fhir/ValueSet/consent-content-class"
        }
      },
      {
        "id": "Consent.provision.provision.code",
        "path": "Consent.provision.provision.code",
        "short": "e.g. LOINC or SNOMED CT code, etc. in the content",
        "definition": "If this code is found in an instance, then the rule applies.",
        "comment": "Typical use of this is a Document code with class = CDA.",
        "min": 0,
        "max": "*",
        "base": {
          "path": "Consent.provision.code",
          "min": 0,
          "max": "*"
        },
        "type": [
          {
            "code": "CodeableConcept"
          }
        ],
        "constraint": [
          {
            "key": "ele-1",
            "severity": "error",
            "human": "All FHIR elements must have a @value or children",
            "expression": "hasValue() or (children().count() > id.count())",
            "xpath": "@value|f:*|h:div",
            "source": "http://hl7.org/fhir/StructureDefinition/Element"
          }
        ],
        "isModifier": false,
        "isSummary": true,
        "binding": {
          "extension": [
            {
              "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName",
              "valueString": "ConsentContentCode"
            }
          ],
          "strength": "example",
          "description": "If this code is found in an instance, then the exception applies.",
          "valueSet": "http://hl7.org/fhir/ValueSet/consent-content-code"
        }
      },
      {
        "id": "Consent.provision.provision.dataPeriod",
        "path": "Consent.provision.provision.dataPeriod",
        "short": "Timeframe for data controlled by this rule",
        "definition": "Clinical or Operational Relevant period of time that bounds the data controlled by this rule.",
        "comment": "This has a different sense to the Consent.period - that is when the consent agreement holds. This is the time period of the data that is controlled by the agreement.",
        "min": 0,
        "max": "1",
        "base": {
          "path": "Consent.provision.dataPeriod",
          "min": 0,
          "max": "1"
        },
        "type": [
          {
            "code": "Period"
          }
        ],
        "constraint": [
          {
            "key": "ele-1",
            "severity": "error",
            "human": "All FHIR elements must have a @value or children",
            "expression": "hasValue() or (children().count() > id.count())",
            "xpath": "@value|f:*|h:div",
            "source": "http://hl7.org/fhir/StructureDefinition/Element"
          }
        ],
        "isModifier": false,
        "isSummary": true
      },
      {
        "id": "Consent.provision.provision.data",
        "path": "Consent.provision.provision.data",
        "short": "Data controlled by this rule",
        "definition": "The resources controlled by this rule if specific resources are referenced.",
        "min": 0,
        "max": "*",
        "base": {
          "path": "Consent.provision.data",
          "min": 0,
          "max": "*"
        },
        "type": [
          {
            "code": "BackboneElement"
          }
        ],
        "meaningWhenMissing": "all data",
        "constraint": [
          {
            "key": "ele-1",
            "severity": "error",
            "human": "All FHIR elements must have a @value or children",
            "expression": "hasValue() or (children().count() > id.count())",
            "xpath": "@value|f:*|h:div",
            "source": "http://hl7.org/fhir/StructureDefinition/Element"
          }
        ],
        "isModifier": false,
        "isSummary": true,
        "mapping": [
          {
            "identity": "rim",
            "map": "Role"
          }
        ]
      },
      {
        "id": "Consent.provision.provision.data.id",
        "path": "Consent.provision.provision.data.id",
        "representation": [
          "xmlAttr"
        ],
        "short": "Unique id for inter-element referencing",
        "definition": "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.",
        "min": 0,
        "max": "1",
        "base": {
          "path": "Element.id",
          "min": 0,
          "max": "1"
        },
        "type": [
          {
            "code": "http://hl7.org/fhirpath/System.String",
            "extension": [
              {
                "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-fhir-type",
                "valueUrl": "string"
              }
            ]
          }
        ],
        "isModifier": false,
        "isSummary": false,
        "mapping": [
          {
            "identity": "rim",
            "map": "n/a"
          }
        ]
      },
      {
        "id": "Consent.provision.provision.data.extension",
        "path": "Consent.provision.provision.data.extension",
        "short": "Additional content defined by implementations",
        "definition": "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.",
        "comment": "There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions.  The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.",
        "alias": [
          "extensions",
          "user content"
        ],
        "min": 0,
        "max": "*",
        "base": {
          "path": "Element.extension",
          "min": 0,
          "max": "*"
        },
        "type": [
          {
            "code": "Extension"
          }
        ],
        "constraint": [
          {
            "key": "ele-1",
            "severity": "error",
            "human": "All FHIR elements must have a @value or children",
            "expression": "hasValue() or (children().count() > id.count())",
            "xpath": "@value|f:*|h:div",
            "source": "http://hl7.org/fhir/StructureDefinition/Element"
          },
          {
            "key": "ext-1",
            "severity": "error",
            "human": "Must have either extensions or value[x], not both",
            "expression": "extension.exists() != value.exists()",
            "xpath": "exists(f:extension)!=exists(f:*[starts-with(local-name(.), \"value\")])",
            "source": "http://hl7.org/fhir/StructureDefinition/Extension"
          }
        ],
        "isModifier": false,
        "isSummary": false,
        "mapping": [
          {
            "identity": "rim",
            "map": "n/a"
          }
        ]
      },
      {
        "id": "Consent.provision.provision.data.modifierExtension",
        "path": "Consent.provision.provision.data.modifierExtension",
        "short": "Extensions that cannot be ignored even if unrecognized",
        "definition": "May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).",
        "comment": "There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions.  The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.",
        "requirements": "Modifier extensions allow for extensions that *cannot* be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored.  This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the [definition of modifier extensions](extensibility.html#modifierExtension).",
        "alias": [
          "extensions",
          "user content",
          "modifiers"
        ],
        "min": 0,
        "max": "*",
        "base": {
          "path": "BackboneElement.modifierExtension",
          "min": 0,
          "max": "*"
        },
        "type": [
          {
            "code": "Extension"
          }
        ],
        "constraint": [
          {
            "key": "ele-1",
            "severity": "error",
            "human": "All FHIR elements must have a @value or children",
            "expression": "hasValue() or (children().count() > id.count())",
            "xpath": "@value|f:*|h:div",
            "source": "http://hl7.org/fhir/StructureDefinition/Element"
          },
          {
            "key": "ext-1",
            "severity": "error",
            "human": "Must have either extensions or value[x], not both",
            "expression": "extension.exists() != value.exists()",
            "xpath": "exists(f:extension)!=exists(f:*[starts-with(local-name(.), \"value\")])",
            "source": "http://hl7.org/fhir/StructureDefinition/Extension"
          }
        ],
        "isModifier": true,
        "isModifierReason": "Modifier extensions are expected to modify the meaning or interpretation of the element that contains them",
        "isSummary": true,
        "mapping": [
          {
            "identity": "rim",
            "map": "N/A"
          }
        ]
      },
      {
        "id": "Consent.provision.provision.data.meaning",
        "path": "Consent.provision.provision.data.meaning",
        "short": "instance | related | dependents | authoredby",
        "definition": "How the resource reference is interpreted when testing consent restrictions.",
        "min": 1,
        "max": "1",
        "base": {
          "path": "Consent.provision.data.meaning",
          "min": 1,
          "max": "1"
        },
        "type": [
          {
            "code": "code"
          }
        ],
        "constraint": [
          {
            "key": "ele-1",
            "severity": "error",
            "human": "All FHIR elements must have a @value or children",
            "expression": "hasValue() or (children().count() > id.count())",
            "xpath": "@value|f:*|h:div",
            "source": "http://hl7.org/fhir/StructureDefinition/Element"
          }
        ],
        "isModifier": false,
        "isSummary": true,
        "binding": {
          "extension": [
            {
              "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName",
              "valueString": "ConsentDataMeaning"
            }
          ],
          "strength": "required",
          "description": "How a resource reference is interpreted when testing consent restrictions.",
          "valueSet": "http://hl7.org/fhir/ValueSet/consent-data-meaning|4.0.1"
        }
      },
      {
        "id": "Consent.provision.provision.data.reference",
        "path": "Consent.provision.provision.data.reference",
        "short": "The actual data reference",
        "definition": "A reference to a specific resource that defines which resources are covered by this consent.",
        "min": 1,
        "max": "1",
        "base": {
          "path": "Consent.provision.data.reference",
          "min": 1,
          "max": "1"
        },
        "type": [
          {
            "code": "Reference",
            "targetProfile": [
              "http://hl7.org/fhir/StructureDefinition/Resource"
            ]
          }
        ],
        "constraint": [
          {
            "key": "ele-1",
            "severity": "error",
            "human": "All FHIR elements must have a @value or children",
            "expression": "hasValue() or (children().count() > id.count())",
            "xpath": "@value|f:*|h:div",
            "source": "http://hl7.org/fhir/StructureDefinition/Element"
          }
        ],
        "isModifier": false,
        "isSummary": true
      },
      {
        "id": "Consent.provision.provision.provision",
        "path": "Consent.provision.provision.provision",
        "short": "Not used -- exceptions do not nest further, matching IHE PCF",
        "definition": "Rules which provide exceptions to the base rule or subrules.",
        "min": 0,
        "max": "0",
        "base": {
          "path": "Consent.provision.provision",
          "min": 0,
          "max": "*"
        },
        "contentReference": "#Consent.provision",
        "constraint": [
          {
            "key": "ele-1",
            "severity": "error",
            "human": "All FHIR elements must have a @value or children",
            "expression": "hasValue() or (children().count() > id.count())",
            "xpath": "@value|f:*|h:div",
            "source": "http://hl7.org/fhir/StructureDefinition/Element"
          }
        ],
        "isModifier": false,
        "isSummary": false
      }
    ]
  },
  "differential": {
    "element": [
      {
        "id": "Consent",
        "path": "Consent",
        "short": "A patient's standing restriction on their own record (lockbox)",
        "definition": "Records an instruction from the patient, or from a person authorized to instruct on their behalf,\nrestricting what may be done with their personal health information.\n\n**One directive per instruction, superseded rather than edited.** Unlike item consent, which keeps\none resource per item and updates it in place, a directive is a statement made at a moment. When\nthe patient changes their instruction, the prior directive moves to `inactive` and a NEW directive\nrecords the new instruction. The reason is evidentiary: a directive is the thing an auditor holds\nup to justify or condemn a disclosure decision, and \"what did this say on the day we released the\nrecord\" must be answerable without reconstructing it from version history.\n\n**Absence of a directive is not permission.** It means no restriction has been recorded. Whether\na disclosure is lawful without one is a question for the applicable policy and the purpose of the\ndisclosure, not a question this resource answers. A consumer MUST NOT treat \"no directive found\"\nas an authorization; it is the absence of one input to a decision that has other inputs.\n\n**Finding a patient's directives.** Select the family, then filter on status:\n\n```\nGET Consent?patient={id}&category=https://fhir.apps.health/CodeSystem/nexus-consent-family|privacy-directive&status=active\n```\n\nOmitting the category returns app consents and item consents alongside directives, and all three\ncarry `scope = patient-privacy`, so scope will not separate them.",
        "constraint": [
          {
            "key": "privacy-directive-exception-states-a-purpose",
            "severity": "warning",
            "human": "A nested exception on a privacy directive SHOULD name the purpose it exists for. Without one, a standing break-glass carve-out cannot be distinguished from an ordinary permission, and the two carry different review obligations",
            "expression": "provision.provision.all(purpose.exists())",
            "source": "https://fhir.apps.health/StructureDefinition/nexus-privacy-directive"
          }
        ]
      },
      {
        "id": "Consent.meta.source",
        "path": "Consent.meta.source",
        "short": "Identifies EMR instance & pipeline version the resource came from",
        "definition": "A URI that identifies the EMR pipeline and version from which this resource originated.  This tells you which EMR instance (recommend using the instance identifier), and the version of the pipeline code/transformations.",
        "mustSupport": true
      },
      {
        "id": "Consent.identifier",
        "path": "Consent.identifier",
        "short": "Business identifier(s) for the directive",
        "definition": "Stable identifier for the instruction, carried so that a directive can be correlated with the\npaper or portal request that created it, with a superseding directive, and with an audit entry\nthat names the directive a decision relied on.\n\nDeliberately NOT a deterministic key derived from patient and type. Item consent uses such a key\nbecause exactly one resource exists per pair and a writer needs to create-or-update in one call.\nA directive is the opposite case: several may be active for one patient at once, and a\nconditional update keyed on the patient would overwrite an unrelated restriction.",
        "mustSupport": true
      },
      {
        "id": "Consent.identifier.system",
        "path": "Consent.identifier.system",
        "min": 1
      },
      {
        "id": "Consent.identifier.value",
        "path": "Consent.identifier.value",
        "min": 1
      },
      {
        "id": "Consent.status",
        "path": "Consent.status",
        "short": "active (in force) | inactive (superseded or withdrawn) | entered-in-error",
        "definition": "Whether this directive is currently operative. **It is not the decision.** The decision -- what is\nrestricted, from whom -- is in the provision tree.\n\n- `active` — **in force**. The restriction stated in the provisions applies now, subject to\n  `provision.period` where one is given.\n- `inactive` — **no longer operative**. R4 defines this as terminated or replaced, which is\n  exactly right here: the patient withdrew the restriction, or a superseding directive replaced\n  it. Both are recoverable from `identifier` and version history.\n- `entered-in-error` — recorded wrongly. Ignore it; it was never an instruction.\n\n`draft` and `proposed` are legal against the required base binding and carry no meaning in this\nprofile. `rejected` is legal too and MUST NOT be written here: on the item-consent profile it\nmeans the patient declined, and a reader who has seen that family will carry the wrong reading\nacross.\n\n**Why `inactive` here and `rejected` there.** The two profiles take opposite readings of the same\nvocabulary, deliberately. Item consent keeps one resource per item and updates it in place, so it\nneeds one current-state code meaning \"not permitted\" whether the patient declined or withdrew;\n`rejected` carries that. A directive is superseded rather than updated, so a withdrawn restriction\nis a terminated one, which is what `inactive` means. Neither profile is reading the vocabulary\nloosely; they are modelling different lifecycles and the codes follow.",
        "mustSupport": true,
        "binding": {
          "strength": "required",
          "valueSet": "http://hl7.org/fhir/ValueSet/consent-state-codes"
        }
      },
      {
        "id": "Consent.scope",
        "path": "Consent.scope",
        "short": "patient-privacy - Privacy consent",
        "definition": "Fixed to `patient-privacy`. Required by R4 and correct here, but it is NOT a discriminator: app\nconsent and item consent fix the same value, so a consumer separating families on scope will\nseparate nothing. Use the `category` family slice.",
        "fixedCodeableConcept": {
          "coding": [
            {
              "system": "http://terminology.hl7.org/CodeSystem/consentscope",
              "code": "patient-privacy",
              "display": "Privacy Consent"
            }
          ]
        },
        "mustSupport": true,
        "binding": {
          "strength": "required",
          "valueSet": "http://hl7.org/fhir/ValueSet/consent-scope"
        }
      },
      {
        "id": "Consent.category",
        "path": "Consent.category",
        "slicing": {
          "discriminator": [
            {
              "type": "pattern",
              "path": "coding.system"
            }
          ],
          "rules": "open",
          "description": "Slice the family-identifying category by code system"
        },
        "short": "MUST carry the privacy-directive family code; this is how a reader knows what `status` means",
        "definition": "Required. Carries the family code that tells a consumer which interpretation contract applies\nbefore it reads any other element.\n\nSlicing is open, so a deployment may carry additional classifications alongside — a jurisdictional\ncode, a workflow bin — but only the `family` slice identifies the family, and a consumer MUST NOT\ninfer the family from any other category, from `scope`, or from the shape of the provision tree.",
        "comment": "The family coding sits outside HL7's consent-category value set on purpose, for the same reason\nthe item-consent catalogue does: that value set classifies consent DOCUMENTS (advance directive,\nnotice of privacy practices, research information access) and holds no concept for \"which\ninterpretation contract governs this resource\", which is what this element answers.\nTerminology-aware validators may note that the base extensible binding is unmet. That note is\nexpected.",
        "mustSupport": true
      },
      {
        "id": "Consent.category:family",
        "path": "Consent.category",
        "sliceName": "family",
        "short": "Fixed: this Consent is a privacy directive",
        "min": 1,
        "max": "1",
        "mustSupport": true,
        "binding": {
          "strength": "required",
          "valueSet": "https://fhir.apps.health/ValueSet/nexus-consent-families"
        }
      },
      {
        "id": "Consent.category:family.coding",
        "path": "Consent.category.coding",
        "min": 1,
        "max": "1"
      },
      {
        "id": "Consent.category:family.coding.system",
        "path": "Consent.category.coding.system",
        "min": 1,
        "fixedUri": "https://fhir.apps.health/CodeSystem/nexus-consent-family"
      },
      {
        "id": "Consent.category:family.coding.code",
        "path": "Consent.category.coding.code",
        "min": 1,
        "fixedCode": "privacy-directive"
      },
      {
        "id": "Consent.patient",
        "path": "Consent.patient",
        "short": "The patient whose record is restricted",
        "comment": "Required by this profile rather than inherited. R4's `ppc-2` invariant is meant to require a\npatient whenever scope is privacy, but its published expression tests `system='something'` and\ntherefore never fires. Do not rely on it.",
        "min": 1,
        "type": [
          {
            "code": "Reference",
            "targetProfile": [
              "https://fhir.apps.health/StructureDefinition/nexus-emr-core-patient"
            ]
          }
        ],
        "mustSupport": true
      },
      {
        "id": "Consent.dateTime",
        "path": "Consent.dateTime",
        "short": "When the instruction was given",
        "definition": "When the patient gave this instruction — not when the resource was stored, and not when the\nrestriction takes effect. Effect is `provision.period.start`, which may be later.\n\nThree different times matter to an auditor reconstructing a decision and they must not be\nconflated: when the patient said it (here), when it started applying (`provision.period.start`),\nand when the server learned about it (`meta.lastUpdated`). A directive given on Monday, effective\nWednesday, entered Friday is an ordinary and lawful record.",
        "min": 1,
        "mustSupport": true
      },
      {
        "id": "Consent.performer",
        "path": "Consent.performer",
        "short": "Who gave the instruction -- the patient, or a substitute decision-maker",
        "definition": "Who made this decision. The patient, or the RelatedPerson authorized to decide on their behalf.\n\n**A substitute decision-maker is a RelatedPerson, never the Patient.** The tender requires access\nand correction rights to be exercisable by an individual \"and their Substitute Decision Makers\",\nand recording an SDM's instruction as though the patient gave it destroys the fact that authority\nwas delegated — which is the fact a privacy office checks when the instruction is challenged.\n\nPractitioner and PractitionerRole are permitted for the staff member who RECORDED the instruction.\nBoth may appear together, and where they do the reading is that the patient decided and the staff\nmember wrote it down.\n\nA resource naming ONLY staff is not malformed. A restriction is applied by an administrator acting on\nwhat the patient asked for, and a deployment that captures the administrator without separately\nidentifying the patient as decision-maker is recording what it actually knows. What it costs is the\nability to show, later, that the instruction came from the individual rather than from the clinic --\nwhich is worth capturing where the workflow can.",
        "type": [
          {
            "code": "Reference",
            "targetProfile": [
              "https://fhir.apps.health/StructureDefinition/nexus-emr-core-patient",
              "https://fhir.apps.health/StructureDefinition/nexus-emr-core-relatedperson",
              "https://fhir.apps.health/StructureDefinition/nexus-emr-core-practitioner",
              "https://fhir.apps.health/StructureDefinition/nexus-emr-core-practitionerrole"
            ]
          }
        ],
        "mustSupport": true
      },
      {
        "id": "Consent.organization",
        "path": "Consent.organization",
        "short": "The custodian whose records this directive restricts",
        "definition": "The health information custodian this instruction is addressed to.\n\nLoad-bearing where it is present, because a restriction on one custodian's records says nothing\nabout another's. A patient who locks their record at this clinic has not thereby locked the\nprovincial EHR, and a patient who restricts the provincial EHR has not restricted this clinic. A\ndirective that names no organization is scoped by the deployment's own policy, which must state\nwhat that scope is rather than leaving a reader to assume it means \"everywhere\".",
        "type": [
          {
            "code": "Reference",
            "targetProfile": [
              "https://fhir.apps.health/StructureDefinition/nexus-emr-core-organization"
            ]
          }
        ],
        "mustSupport": true
      },
      {
        "id": "Consent.source[x]",
        "path": "Consent.source[x]",
        "slicing": {
          "discriminator": [
            {
              "type": "type",
              "path": "$this"
            }
          ],
          "ordered": false,
          "rules": "open"
        },
        "type": [
          {
            "code": "Reference",
            "targetProfile": [
              "https://fhir.apps.health/StructureDefinition/nexus-emr-core-documentreference"
            ]
          }
        ]
      },
      {
        "id": "Consent.source[x]:sourceReference",
        "path": "Consent.source[x]",
        "sliceName": "sourceReference",
        "short": "The signed instruction, where one was captured",
        "definition": "The document the patient signed, or the portal submission that recorded the instruction.\n\nRouted through DocumentReference rather than carried inline so that DocumentReference read\npermission gates the document itself: a reader entitled to know THAT a restriction exists is not\nautomatically entitled to read the patient's written explanation of why.",
        "min": 0,
        "max": "1",
        "type": [
          {
            "code": "Reference",
            "targetProfile": [
              "https://fhir.apps.health/StructureDefinition/nexus-emr-core-documentreference"
            ]
          }
        ],
        "mustSupport": true
      },
      {
        "id": "Consent.policy",
        "path": "Consent.policy",
        "short": "The policy or statutory provision this directive is made under",
        "definition": "A URI identifying the policy under which this instruction is given and must be honoured — a\nPHIPA provision, an Ontario Health EHR policy, or the custodian's own published privacy policy.\n\nRequired here, and it is what satisfies R4's `ppc-1` invariant (\"Either a Policy or PolicyRule\").\n\n**`policyRule` is deliberately NOT used on this profile.** Its binding is to\n`consentpolicycodes`, a code system that contains no Canadian policy concept at all — its 27\ncodes are US federal and state instruments plus Netherlands, Austria and Switzerland. There is no\ncode in it that means \"a restriction under PHIPA\", and the nearest-looking one, `cric`, is\n45 CFR 46: the US Common Rule for human-subjects research. A privacy directive is not research\nconsent, and a policy element that pointed at one would be a false statement about the legal basis\nof the restriction, made in the resource an auditor reads to check exactly that.\n\nCarrying the actual policy URI says the true thing and stays machine-readable. Where a Canadian\npolicy code system emerges, `policyRule` becomes available without this element changing.",
        "min": 1,
        "mustSupport": true
      },
      {
        "id": "Consent.policy.uri",
        "path": "Consent.policy.uri",
        "min": 1
      },
      {
        "id": "Consent.provision",
        "path": "Consent.provision",
        "short": "The restriction: `type` states the decision, and nested provisions carve out exceptions",
        "definition": "The base rule. `type = deny` for a lockbox: the patient is restricting something.\n\nExceptions are NESTED provisions with `type = permit`, describing what the restriction does not\nreach -- a care team that may still see the record, or a standing break-glass carve-out.",
        "min": 1,
        "mustSupport": true
      },
      {
        "id": "Consent.provision.type",
        "path": "Consent.provision.type",
        "short": "deny for a lockbox | permit for a base consent",
        "definition": "The decision this directive states. `deny` restricts; `permit` grants.\n\n**Required on the root, which diverges from R4's element text.** R4 says `type` is \"Not permitted in\nroot rule, required in all nested rules\". IHE PCF and Ontario's PCOI both require it on the root\nanyway, and this guide follows them: a directive whose base rule states no decision states none\nwhere a reader looks first, and every reader of this family will be looking there.\n\nA consumer reading a directive that carries no root type MUST NOT infer `permit`. Treat it as\nmalformed and fail closed.",
        "min": 1,
        "mustSupport": true,
        "binding": {
          "strength": "required",
          "valueSet": "http://hl7.org/fhir/ValueSet/consent-provision-type"
        }
      },
      {
        "id": "Consent.provision.period",
        "path": "Consent.provision.period",
        "short": "When the restriction is effective, if it is time-bounded",
        "definition": "The window in which this restriction applies. An absent period means the restriction applies for\nas long as the directive is `active`, with no end.\n\nAn absent `period.end` means the same thing and must be read that way. A consumer that treats a\nmissing end as \"expired\" or as \"unknown, therefore ignore\" will release restricted information.",
        "mustSupport": true
      },
      {
        "id": "Consent.provision.actor",
        "path": "Consent.provision.actor",
        "short": "Whom the restriction is against, where it names anyone",
        "definition": "The recipient, agent or class of agents the restriction applies to.\n\n`actor.reference` names an individual practitioner, an organization, or a Group standing for a\nclass of recipients. `actor.role` says how they are involved. The tender requires restrictions\nnaming \"specific HIC's, agents, classes of HICs or agents, or individual providers\", and a class\nis expressed as a Group rather than as a bare code, because a consumer has to be able to test\nmembership at decision time rather than interpret a label.\n\n**An absent actor restricts EVERYONE**, on the same fail-closed reasoning as `action`.\n\n**A first-pass limit, stated because the tender asks for the case this does not yet cover.** The\nrequirement names restrictions against \"classes of HICs or agents\", and a class is properly a Group\nwhose membership a consumer can test at decision time. `Reference(Group)` is permitted here, but\nthis guide does not profile Group and publishes no example of one, so a deployment naming a class\ntoday is pointing at a resource with no agreed shape. Naming an Organization instead works and is\ncoarser: it covers everyone at that custodian rather than a named subset. What would settle it is a\nGroup profile and a decision about who maintains membership.",
        "mustSupport": true
      },
      {
        "id": "Consent.provision.actor.reference",
        "path": "Consent.provision.actor.reference",
        "type": [
          {
            "code": "Reference",
            "targetProfile": [
              "https://fhir.apps.health/StructureDefinition/nexus-emr-core-practitioner",
              "https://fhir.apps.health/StructureDefinition/nexus-emr-core-practitionerrole",
              "https://fhir.apps.health/StructureDefinition/nexus-emr-core-organization",
              "https://fhir.apps.health/StructureDefinition/nexus-emr-core-appdevice",
              "http://hl7.org/fhir/StructureDefinition/Group"
            ]
          }
        ]
      },
      {
        "id": "Consent.provision.action",
        "path": "Consent.provision.action",
        "short": "Which acts are restricted: collect | access | use | disclose",
        "definition": "The acts this directive restricts, matching PHIPA's collection / use / disclosure triad plus\n`access` for retrieval that permits none of them.\n\n**A deliberate divergence from IHE PCF, which prohibits this element entirely** (`0..0` in all\nthree of its tiers). PCF targets document-sharing environments, where disclosure is effectively the\nonly act in play, so the axis buys nothing there. A primary-care EMR is the case it does not cover:\na restriction on internal USE of a record by staff who already hold it is a different instruction\nfrom a restriction on DISCLOSING it outward, and Ontario requires both to be expressible. A\ndirective exported toward a PCF-conformant system loses this element, and what it meant has to be\ncarried some other way or declared unsupported at the boundary.\n\n**An absent action restricts EVERY action.** This is stated rather than left to inference because\nthe opposite reading — an unnamed action is unrestricted — fails open, and a privacy control that\nfails open is not a control. A writer who means to restrict only disclosure must say `disclose`.",
        "mustSupport": true,
        "binding": {
          "strength": "extensible",
          "valueSet": "https://fhir.apps.health/ValueSet/nexus-privacy-restriction-actions"
        }
      },
      {
        "id": "Consent.provision.securityLabel",
        "path": "Consent.provision.securityLabel",
        "short": "Restrict by sensitivity class -- read the high-water-mark warning first",
        "definition": "Restricts records carrying a given security label rather than records named individually.\n\n**R4 matching here is not equality, and the difference is dangerous.** The specification states:\n\"If the consent specifies a security label of 'R' then it applies to all resources that are\nlabeled 'R' or lower. E.g. for Confidentiality, it's a high water mark.\" So a directive written\nto restrict only `restricted` material also restricts everything `normal`, `moderate`, `low` and\n`unrestricted` — which, in a chart where most resources carry no elevated label at all, is very\nclose to restricting the entire record.\n\nA writer meaning \"restrict the sensitive material\" and reaching for `R` will get a far broader\nrestriction than intended. Because that error over-restricts rather than over-discloses it will\nnot cause a privacy breach, but it will cause a clinician to be denied information they are\nentitled to, at a moment when they may need it.\n\nPrefer explicit `provision.data` selectors for a first implementation. Use this element only where\nthe deployment has tested subsumption behaviour against both a higher and a lower classification\nthan the one it names.",
        "mustSupport": true
      },
      {
        "id": "Consent.provision.data",
        "path": "Consent.provision.data",
        "short": "Which records are restricted, where the directive names records",
        "definition": "The specific records this restriction covers. Absent means the restriction covers the patient's\nwhole record, which is the ordinary lockbox case.\n\n`data.meaning` is required by R4 and decides how far the reference reaches: `instance` is that\nresource alone, `related` includes what it points at, `dependents` includes what points at it,\n`authoredby` covers everything authored by the referenced actor. Choosing `instance` where the\npatient meant \"this visit and everything from it\" under-restricts, and it under-restricts\nsilently.\n\n**A first-pass limit worth knowing before designing against it.** These selectors enumerate\nrecords that exist NOW. A directive meant to cover future information — \"nothing from this clinic,\never\" — cannot be expressed as a list, and this release does not define a criteria-based selector.\nExpress a whole-record restriction by naming no data at all; that reading does extend to future\nrecords. A directive naming a data list does NOT.",
        "mustSupport": true
      },
      {
        "id": "Consent.provision.provision",
        "path": "Consent.provision.provision",
        "short": "Exceptions: what the restriction does NOT reach",
        "definition": "Carve-outs from the base rule, each with an explicit `type` (R4 requires one here and so does this\nprofile). On a `deny` directive these are the permissions that survive the restriction.\n\n**This is where break-glass lives.** A standing exception naming the users who may reach the record\nin an emergency is a nested permit whose `purpose` is `BTG` and whose `actor` names the privileged\ngroup:\n\n```\nprovision.type                = deny\n  provision.provision.type    = permit\n  provision.provision.actor   = Group/privileged-users   (role: IRCP)\n  provision.provision.purpose = BTG\n```\n\nThat shape is IHE PCF's, adopted rather than reinvented. **It says who MAY break the glass. It never\nsays that anybody did** -- the record of an actual override, by whom, when, on what lawful ground\nand reaching what, is an AuditEvent following IHE BALP's authorization pattern. A deployment that\nrecorded override events by editing this resource would rewrite the patient's instruction every time\na clinician acted on it, and would make \"what did the patient actually ask for\" unanswerable.\n\nNested exceptions do not nest further. R4 permits deeper trees and PCF forbids them; this profile\nfollows PCF, because a rule whose meaning depends on three levels of precedence is one nobody\nimplements the same way twice.",
        "type": [
          {
            "code": "BackboneElement"
          }
        ],
        "mustSupport": true
      },
      {
        "id": "Consent.provision.provision.type",
        "path": "Consent.provision.provision.type",
        "short": "permit (an exception to a deny directive) | deny",
        "min": 1,
        "mustSupport": true
      },
      {
        "id": "Consent.provision.provision.purpose",
        "path": "Consent.provision.provision.purpose",
        "short": "Why this exception exists -- `BTG` marks the break-glass carve-out",
        "mustSupport": true,
        "binding": {
          "strength": "extensible",
          "valueSet": "https://fhir.apps.health/ValueSet/nexus-privacy-exception-purposes"
        }
      },
      {
        "id": "Consent.provision.provision.provision",
        "path": "Consent.provision.provision.provision",
        "short": "Not used -- exceptions do not nest further, matching IHE PCF",
        "max": "0"
      }
    ]
  }
}
