PackagesCanonicalsLogsProblems
    Packages
    ihe.iti.svcm@1.5.0
    https://profiles.ihe.net/ITI/SVCM/StructureDefinition/IHE.SVCM.Audit.Operation
description: 'A basic AuditEvent profile for when a RESTful Operation action happens successfully.\n\n- Given a RESTful Operation is requested\n- And the request is authorized\n  - Authorization failures should follow [FHIR core Access Denied](http://hl7.org/fhir/security.html#AccessDenied)\n- When successful\n  - Note a failure AuditEvent may follow this pattern, but would not be a successful outcome and should have an OperationOutcome\n  - Note success may result in zero or more results. The number of results and the content of the results are not recorded.\n- Then the AuditEvent recorded will conform\n  - The raw operation parameters is placed in the .contained element. The contained parameters enables preserving exactly what was requested, including possibly malicious patterns. This enables detection of malicious or malformed requests.\n\nNote: the pattern defined in DICOM and IHE have the client is identified as the Source Role ID, and the server is identified as the Destination Role ID. This represents the query parameters are flowing from the client to the server. This may not be so obvious, as the data actually flows the opposite direction. This pattern is established and thus followed here.'
package_name: ihe.iti.svcm
derivation: constraint
name: OperationEvent
type: AuditEvent
elements:
  type:
    pattern:
      type: Coding
      value: {code: rest, system: 'http://terminology.hl7.org/CodeSystem/audit-event-type', display: Restful Operation}
    index: 0
  subtype:
    index: 1
    slicing:
      rules: open
      discriminator:
      - {path: $this, type: value}
      min: 1
      slices:
        operation:
          match: {code: operation, system: 'http://hl7.org/fhir/restful-interaction', display: operation}
          schema:
            pattern:
              type: Coding
              value: {code: operation, system: 'http://hl7.org/fhir/restful-interaction', display: operation}
            _required: true
            index: 2
          min: 1
          max: 1
  action:
    pattern: {type: Code, value: E}
    index: 3
  outcome:
    pattern: {type: Code, value: '0'}
    index: 4
  agent:
    array: true
    min: 2
    index: 5
    slicing:
      rules: open
      discriminator:
      - {path: type, type: pattern}
      min: 2
      slices:
        client:
          match:
            type:
              coding:
              - {code: '110153', system: 'http://dicom.nema.org/resources/ontology/DCM', display: Source Role ID}
          schema:
            _required: true
            index: 6
            elements:
              type:
                pattern:
                  type: CodeableConcept
                  value:
                    coding:
                    - {code: '110153', system: 'http://dicom.nema.org/resources/ontology/DCM', display: Source Role ID}
                index: 7
              who: {index: 8}
              media: {index: 9}
              network: {index: 10}
            required: [who, network, type]
        server:
          match:
            type:
              coding:
              - {code: '110152', system: 'http://dicom.nema.org/resources/ontology/DCM', display: Destination Role ID}
          schema:
            _required: true
            index: 11
            elements:
              type:
                pattern:
                  type: CodeableConcept
                  value:
                    coding:
                    - {code: '110152', system: 'http://dicom.nema.org/resources/ontology/DCM', display: Destination Role ID}
                index: 12
              who: {index: 13}
              media: {index: 14}
              network: {index: 15}
            required: [who, network, type]
        user:
          match:
            type:
              coding:
              - {code: IRCP, system: 'http://terminology.hl7.org/CodeSystem/v3-ParticipationType', display: information recipient}
          schema:
            index: 16
            elements:
              type:
                pattern:
                  type: CodeableConcept
                  value:
                    coding:
                    - {code: IRCP, system: 'http://terminology.hl7.org/CodeSystem/v3-ParticipationType', display: information recipient}
                index: 17
              role: {mustSupport: true, index: 18}
              who: {index: 19}
              name: {mustSupport: true, index: 20}
              requestor:
                pattern: {type: Boolean, value: true}
                index: 21
              media: {index: 22}
              network: {index: 23}
              purposeOfUse: {mustSupport: true, index: 24}
            required: [who, type]
  source: {mustSupport: true, index: 25}
  entity:
    index: 26
    slicing:
      rules: open
      discriminator:
      - {path: type, type: pattern}
      min: 1
      slices:
        transaction:
          match:
            type: {code: XrequestId, system: 'https://profiles.ihe.net/ITI/BALP/CodeSystem/BasicAuditEntityType'}
          schema:
            index: 27
            elements:
              what:
                elements:
                  identifier:
                    elements:
                      value: {short: the value of X-Request-Id, index: 28}
                    required: [value]
              type:
                pattern:
                  type: Coding
                  value: {code: XrequestId, system: 'https://profiles.ihe.net/ITI/BALP/CodeSystem/BasicAuditEntityType'}
                index: 29
            required: [type]
        parameters:
          match:
            type: {code: '2', system: 'http://terminology.hl7.org/CodeSystem/audit-entity-type', display: System Object}
          schema:
            _required: true
            index: 30
            elements:
              what:
                type: Reference
                refers: ['http://hl7.org/fhir/StructureDefinition/Parameters']
                index: 31
              type:
                pattern:
                  type: Coding
                  value: {code: '2', system: 'http://terminology.hl7.org/CodeSystem/audit-entity-type', display: System Object}
                index: 32
              role:
                pattern:
                  type: Coding
                  value: {code: '4', system: 'http://terminology.hl7.org/CodeSystem/object-role', display: Domain Resource}
                index: 33
              lifecycle: {index: 34}
              securityLabel: {short: may contain the security labels on the Bundle search set returned, index: 35}
              query: {index: 36}
              detail: {index: 37}
            required: [what, type]
package_version: 1.5.0
class: profile
kind: resource
url: https://profiles.ihe.net/ITI/SVCM/StructureDefinition/IHE.SVCM.Audit.Operation
base: http://hl7.org/fhir/StructureDefinition/AuditEvent
version: 1.5.0
required: [subtype, entity]