Sha256: 22009e9941c023a2cd7c7b018e61d8c7a1b4951e8f4219490119d8288770e803

Contents?: true

Size: 1.01 KB

Versions: 14

Compression:

Stored size: 1.01 KB

Contents

module USCoreTestKit
  class ProvenanceValidator
    include FHIRResourceNavigation

    def self.validate(...)
      new(...).validate
    end

    attr_reader :resource, :validation_messages

    def initialize(resource)
      @resource = resource
      @validation_messages = []
    end

    def validate
      # Invariant provenance-1 in US Core 5 causes validation error. See FHIR-39518
      return validation_messages unless resource.instance_of?(FHIR::Provenance)

      failed_provenance =
        find_a_value_at(resource, 'agent') do |agent|
          ['Practitioner', 'Device'].any? { |resource_type| agent.who.reference&.include?(resource_type) } &&
          agent.onBehalfOf.nil?
        end


      if failed_provenance.present?
        validation_messages << {
          type: 'error',
          message: "#{resource.resourceType}/#{resource.id}: Rule provenance-1: 'onBehalfOf SHALL be present when Provenance.agent.who is a Practitioner or Device' Failed"
        }
      end

      validation_messages
    end
  end
end

Version data entries

14 entries across 14 versions & 1 rubygems

Version Path
us_core_test_kit-0.7.0 lib/us_core_test_kit/provenance_validator.rb
us_core_test_kit-0.6.5 lib/us_core_test_kit/provenance_validator.rb
us_core_test_kit-0.6.4 lib/us_core_test_kit/provenance_validator.rb
us_core_test_kit-0.6.3 lib/us_core_test_kit/provenance_validator.rb
us_core_test_kit-0.6.2 lib/us_core_test_kit/provenance_validator.rb
us_core_test_kit-0.6.1 lib/us_core_test_kit/provenance_validator.rb
us_core_test_kit-0.6.0 lib/us_core_test_kit/provenance_validator.rb
us_core_test_kit-0.5.0 lib/us_core_test_kit/provenance_validator.rb
us_core_test_kit-0.4.7 lib/us_core_test_kit/provenance_validator.rb
us_core_test_kit-0.4.6 lib/us_core_test_kit/provenance_validator.rb
us_core_test_kit-0.4.5 lib/us_core_test_kit/provenance_validator.rb
us_core_test_kit-0.4.4 lib/us_core_test_kit/provenance_validator.rb
us_core_test_kit-0.4.3 lib/us_core_test_kit/provenance_validator.rb
us_core_test_kit-0.4.2 lib/us_core_test_kit/provenance_validator.rb