PackagesCanonicalsLogsProblems
    Packages
    ihe.iti.basicaudit@1.0.1
    https://profiles.ihe.net/ITI/basicaudit/StructureDefinition/IHE.BasicAudit.PrivacyDisclosure.Source
description: Defines constraints on the AuditEvent Resource to record when a Privacy Disclosure happens at the Source.\n\n- Import event\n- shall have source of itself\n- shall have a source agent\n- shall have a recipient agent\n- may have user, app, organization agent(s)\n  - combine with the Security Token pattern\n- should have the custodian that released the data\n- should have the authorizer that represented the patient (may be the patient)\n- shall have a patient entity\n- shall have the set of data entity(ies)
package_name: ihe.iti.basicaudit
derivation: constraint
name: AuditPrivacyDisclosureSource
type: AuditEvent
elements:
  outcomeDesc: {mustSupport: true, index: 5}
  type:
    pattern:
      type: Coding
      value: {code: '110106', system: 'http://dicom.nema.org/resources/ontology/DCM', display: Export}
    index: 1
  outcome: {index: 4}
  agent:
    array: true
    min: 2
    index: 7
    slicing:
      rules: open
      description: source, recipient, and possibly the user who participated
      discriminator:
      - {path: type, type: pattern}
      min: 2
      slices:
        source:
          match:
            type:
              coding:
              - {code: '110153', system: 'http://dicom.nema.org/resources/ontology/DCM', display: Source Role ID}
          schema:
            constraint:
              val-audit-source: {human: The Audit Source is this agent too., source: 'https://profiles.ihe.net/ITI/basicaudit/StructureDefinition/IHE.BasicAudit.PrivacyDisclosure.Source', severity: error, expression: $this.who = %resource.source.observer}
            _required: true
            index: 8
            elements:
              type:
                pattern:
                  type: CodeableConcept
                  value:
                    coding:
                    - {code: '110153', system: 'http://dicom.nema.org/resources/ontology/DCM', display: Source Role ID}
                index: 9
              who: {index: 10}
              network: {index: 11}
            required: [who, network, type]
        recipient:
          match:
            type:
              coding:
              - {code: '110152', system: 'http://dicom.nema.org/resources/ontology/DCM', display: Destination Role ID}
          schema:
            _required: true
            index: 12
            elements:
              type:
                pattern:
                  type: CodeableConcept
                  value:
                    coding:
                    - {code: '110152', system: 'http://dicom.nema.org/resources/ontology/DCM', display: Destination Role ID}
                index: 13
              who: {index: 14}
              network: {index: 15}
            required: [who, network, type]
        custodian:
          match:
            type:
              coding:
              - {code: '159541003', system: 'http://snomed.info/sct', display: Record keeping/library clerk}
          schema:
            index: 16
            elements:
              type:
                pattern:
                  type: CodeableConcept
                  value:
                    coding:
                    - {code: '159541003', system: 'http://snomed.info/sct', display: Record keeping/library clerk}
                index: 17
              who: {index: 18}
            required: [who, type]
        authorizer:
          match:
            type:
              coding:
              - {code: '429577009', system: 'http://snomed.info/sct', display: Patient Advocate}
          schema:
            index: 19
            elements:
              type:
                pattern:
                  type: CodeableConcept
                  value:
                    coding:
                    - {code: '429577009', system: 'http://snomed.info/sct', display: Patient Advocate}
                index: 20
              who: {index: 21}
            required: [who, type]
  purposeOfEvent: {index: 6}
  action:
    pattern: {type: Code, value: R}
    index: 3
  entity:
    array: true
    min: 2
    index: 22
    slicing:
      rules: closed
      description: patient and submission set involved
      discriminator:
      - {path: type, type: pattern}
      min: 2
      slices:
        patient:
          match:
            type: {code: '1', system: 'http://terminology.hl7.org/CodeSystem/audit-entity-type', display: Person}
          schema:
            _required: true
            index: 23
            elements:
              what:
                type: Reference
                refers: ['http://hl7.org/fhir/StructureDefinition/Patient']
                index: 24
              type:
                pattern:
                  type: Coding
                  value: {code: '1', system: 'http://terminology.hl7.org/CodeSystem/audit-entity-type', display: Person}
                index: 25
              role:
                pattern:
                  type: Coding
                  value: {code: '1', system: 'http://terminology.hl7.org/CodeSystem/object-role', display: Patient}
                index: 26
            required: [what, type]
        data:
          match:
            type: {code: '2', system: 'http://terminology.hl7.org/CodeSystem/audit-entity-type', display: System Object}
          schema:
            array: true
            min: 1
            _required: true
            index: 27
            elements:
              what: {index: 28}
              type:
                pattern:
                  type: Coding
                  value: {code: '2', system: 'http://terminology.hl7.org/CodeSystem/audit-entity-type', display: System Object}
                index: 29
              role:
                pattern:
                  type: Coding
                  value: {code: '3', system: 'http://terminology.hl7.org/CodeSystem/object-role', display: Report}
                index: 30
            required: [what, type]
  modifierExtension: {index: 0}
  subtype:
    pattern:
      type: Coding
      value: {code: disclose, system: 'http://terminology.hl7.org/CodeSystem/iso-21089-lifecycle', display: Disclose Record Lifecycle Event}
    index: 2
package_version: 1.0.1
class: profile
kind: resource
url: https://profiles.ihe.net/ITI/basicaudit/StructureDefinition/IHE.BasicAudit.PrivacyDisclosure.Source
base: http://hl7.org/fhir/StructureDefinition/AuditEvent
version: 1.0.1
required: [purposeOfEvent, outcome]