PackagesCanonicalsLogsProblems
    Packages
    ihe.iti.balp@1.1.4
    https://profiles.ihe.net/ITI/BALP/StructureDefinition/IHE.BasicAudit.SAMLaccessTokenUse.Comprehensive
description: A basic AuditEvent profile for when an activity was authorized by an SAML access token. This profile is expected to be used with some other detail that explains the activity. This profile only covers the SAML access token. \n\nThe following table uses a short-hand for the SAML fields and FHIR AuditEvent elements to keep the table compact. It is presumed the reader can understand the SAML field and the FHIR AuditEvent element given. Note the `~` character represents attributes under the SAML `AttributeStatement`. \n\n**Builds upon the Minimal**\n\n| SAML field                   | Comprehensive AuditEvent\n|------------------------------|-----------------------------------|\n| ID                           | agent[user].policy\n| Issuer                       | agent[user].who.identifier.system\n| Subject.NameID               | agent[user].who.identifier.value\n| AuthnContextClassRef         | agent[user].extension[assuranceLevel]\n| ~subject:role                | agent[user].role\n| ~subject:purposeofuse        | agent[user].purposeOfUse\n| ~subject:subject-id          | agent[user].extension[otherId][subject-id].value\n| ~subject:npi                 | agent[user].extension[otherId][npi].value\n| ~subject:provider-identifier | agent[user].extension[otherId][provider-id].value\n| ~subject:organization        | agent[userorg].who.display\n| ~subject:organization-id     | agent[userorg].who.identifier.value\n| ~homeCommunityId             | agent[homeCommunityId].who.identifier.value \n| ~bppc:2007:docid             | entity[consent].what.identifier.value \n| ~xua:2012:acp                | entity[consent].detail.valueString \n| ~resource:resource-id        | entity[consent-patient].what.identifier.value
package_name: ihe.iti.balp
derivation: constraint
name: SAMLaccessTokenUseComprehensive
type: AuditEvent
elements:
  agent:
    index: 0
    slicing:
      slices:
        user:
          match: {}
          schema:
            index: 0
            extensions:
              assuranceLevel: {url: 'https://profiles.ihe.net/ITI/BALP/StructureDefinition/ihe-assuranceLevel', min: 0, type: Extension, mustSupport: true, index: 2}
              otherId: {url: 'https://profiles.ihe.net/ITI/BALP/StructureDefinition/ihe-otherId', min: 0, type: Extension, mustSupport: true, index: 3}
              otherId/subject-id:
                url: null
                array: true
                index: 4
                elements:
                  value[x]:
                    elements:
                      type:
                        pattern:
                          type: CodeableConcept
                          value:
                            coding:
                            - {code: SAML-subject-id, system: 'https://profiles.ihe.net/ITI/BALP/CodeSystem/OtherIdentifierTypes'}
                        index: 5
                      value: {short: SAML Attribute subject-id, index: 6}
              otherId/npi:
                url: null
                array: true
                index: 7
                elements:
                  value[x]:
                    elements:
                      type:
                        pattern:
                          type: CodeableConcept
                          value:
                            coding:
                            - {code: NPI, system: 'http://terminology.hl7.org/CodeSystem/v2-0203'}
                        index: 8
                      value: {short: SAML Attribute npi, index: 9}
              otherId/provider-id:
                url: null
                array: true
                index: 10
                elements:
                  value[x]:
                    elements:
                      type:
                        pattern:
                          type: CodeableConcept
                          value:
                            coding:
                            - {code: PRN, system: 'http://terminology.hl7.org/CodeSystem/v2-0203'}
                        index: 11
                      value: {short: SAML Attribute provider-identifier, index: 12}
            elements:
              extension:
                index: 1
                slicing:
                  rules: open
                  ordered: false
                  discriminator:
                  - {path: url, type: value}
                  - {path: value.ofType(Identifier).type, type: value}
                  min: null
                  slices:
                    assuranceLevel:
                      match:
                        url: null
                        value:
                          ofType(Identifier): {type: null}
                      schema: {type: Extension, mustSupport: true, url: 'https://profiles.ihe.net/ITI/BALP/StructureDefinition/ihe-assuranceLevel', index: 2}
                      min: 0
                    otherId:
                      match:
                        url: null
                        value:
                          ofType(Identifier): {type: null}
                      schema: {type: Extension, mustSupport: true, url: 'https://profiles.ihe.net/ITI/BALP/StructureDefinition/ihe-otherId', index: 3}
                      min: 0
                    otherId/subject-id:
                      match:
                        url: null
                        value:
                          ofType(Identifier): {type: null}
                      schema:
                        array: true
                        index: 4
                        elements:
                          value[x]:
                            elements:
                              type:
                                pattern:
                                  type: CodeableConcept
                                  value:
                                    coding:
                                    - {code: SAML-subject-id, system: 'https://profiles.ihe.net/ITI/BALP/CodeSystem/OtherIdentifierTypes'}
                                index: 5
                              value: {short: SAML Attribute subject-id, index: 6}
                    otherId/npi:
                      match:
                        url: null
                        value:
                          ofType(Identifier): {type: null}
                      schema:
                        array: true
                        index: 7
                        elements:
                          value[x]:
                            elements:
                              type:
                                pattern:
                                  type: CodeableConcept
                                  value:
                                    coding:
                                    - {code: NPI, system: 'http://terminology.hl7.org/CodeSystem/v2-0203'}
                                index: 8
                              value: {short: SAML Attribute npi, index: 9}
                    otherId/provider-id:
                      match:
                        url: null
                        value:
                          ofType(Identifier): {type: null}
                      schema:
                        array: true
                        index: 10
                        elements:
                          value[x]:
                            elements:
                              type:
                                pattern:
                                  type: CodeableConcept
                                  value:
                                    coding:
                                    - {code: PRN, system: 'http://terminology.hl7.org/CodeSystem/v2-0203'}
                                index: 11
                              value: {short: SAML Attribute provider-identifier, index: 12}
              role: {short: 'SAML subject:role(s)', mustSupport: true, index: 13}
        userorg:
          match: {}
          schema:
            array: true
            index: 14
            elements:
              role: {index: 16}
              requestor:
                pattern: {type: Boolean, value: false}
                index: 21
              who:
                elements:
                  identifier:
                    elements:
                      value: {short: 'SAML Attribute urn:oasis:names:tc:xspa:1.0:subject:organization-id', index: 17}
                    required: [value]
                  display: {short: 'SAML Attribute urn:oasis:names:tc:xspa:1.0:subject:organization', index: 18}
                required: [display]
              altId: {index: 19}
              name: {index: 20}
              type:
                pattern:
                  type: CodeableConcept
                  value:
                    coding:
                    - {code: PROV, system: 'http://terminology.hl7.org/CodeSystem/v3-RoleClass'}
                index: 15
              policy: {index: 23}
              purposeOfUse: {index: 26}
              network: {index: 25}
              location: {index: 22}
              media: {index: 24}
            required: [type]
        homeCommunityId:
          match: {}
          schema:
            array: true
            index: 27
            elements:
              role: {index: 29}
              requestor:
                pattern: {type: Boolean, value: false}
                index: 33
              who:
                elements:
                  identifier: {short: homeCommunityId, index: 30}
                required: [identifier]
              altId: {index: 31}
              name: {index: 32}
              type:
                pattern:
                  type: CodeableConcept
                  value:
                    coding:
                    - {code: homeCommunityId, system: 'urn:ihe:iti:xca:2010'}
                index: 28
              policy: {index: 35}
              purposeOfUse: {index: 38}
              network: {index: 37}
              location: {index: 34}
              media: {index: 36}
            required: [type]
  entity:
    index: 39
    slicing:
      rules: open
      discriminator:
      - {path: type, type: value}
      min: null
      slices:
        consent:
          match:
            type: {code: Consent, system: 'http://hl7.org/fhir/resource-types'}
          schema:
            array: true
            index: 40
            elements:
              what:
                elements:
                  identifier: {short: BPPC Patient Privacy Policy Acknowledgement Document unique id, mustSupport: true, index: 41}
              type:
                pattern:
                  type: Coding
                  value: {code: Consent, system: 'http://hl7.org/fhir/resource-types'}
                index: 42
              detail:
                index: 43
                slicing:
                  rules: open
                  discriminator:
                  - {path: type, type: value}
                  min: null
                  slices:
                    acp:
                      match: {type: 'urn:ihe:iti:xua:2012:acp'}
                      schema:
                        short: Home Community ID where the Consent is.
                        index: 44
                        elements:
                          type:
                            pattern: {type: String, value: 'urn:ihe:iti:xua:2012:acp'}
                            index: 45
                          value:
                            choices: [valueString]
                            index: 47
                          valueString: {type: string, choiceOf: value, index: 48}
                    patient-id:
                      match: {type: 'urn:oasis:names:tc:xacml:2.0:resource:resource-id'}
                      schema:
                        short: The Patient Identity where the Consent is.
                        index: 49
                        elements:
                          type:
                            pattern: {type: String, value: 'urn:oasis:names:tc:xacml:2.0:resource:resource-id'}
                            index: 50
                          value:
                            choices: [valueString]
                            index: 52
                          valueString: {type: string, choiceOf: value, index: 53}
            required: [type]
package_version: 1.1.4
class: profile
kind: resource
url: https://profiles.ihe.net/ITI/BALP/StructureDefinition/IHE.BasicAudit.SAMLaccessTokenUse.Comprehensive
base: https://profiles.ihe.net/ITI/BALP/StructureDefinition/IHE.BasicAudit.SAMLaccessTokenUse.Minimal
version: 1.1.4