Module: Inferno::DSL::FHIRResourceValidation::ClassMethods
- Defined in:
- lib/inferno/dsl/fhir_resource_validation.rb
Instance Method Summary collapse
-
#fhir_resource_validator(name = :default, required_suite_options: nil) ⇒ Object
Define a validator.
- #fhir_validators ⇒ Object
-
#find_ig_and_profile(profile_url, validator_name) ⇒ Array
Find a particular profile StructureDefinition and the IG it belongs to.
Instance Method Details
#fhir_resource_validator(name = :default, required_suite_options: nil) ⇒ Object
Define a validator
856 857 858 859 860 861 862 863 864 865 |
# File 'lib/inferno/dsl/fhir_resource_validation.rb', line 856 def fhir_resource_validator(name = :default, required_suite_options: nil, &) current_validators = fhir_validators[name] || [] new_validator = Inferno::DSL::FHIRResourceValidation::Validator.new(name, id, , &) current_validators.reject! { |validator| validator.requirements == } current_validators << new_validator fhir_validators[name] = current_validators end |
#fhir_validators ⇒ Object
834 835 836 |
# File 'lib/inferno/dsl/fhir_resource_validation.rb', line 834 def fhir_validators @fhir_validators ||= {} end |
#find_ig_and_profile(profile_url, validator_name) ⇒ Array
Find a particular profile StructureDefinition and the IG it belongs to. Looks through validators to find the profile by looking through their defined igs.
Note: Requires find_validator method which is defined elsewhere in the codebase
875 876 877 878 879 880 881 882 883 884 885 886 |
# File 'lib/inferno/dsl/fhir_resource_validation.rb', line 875 def find_ig_and_profile(profile_url, validator_name) validator = find_validator(validator_name) if validator.is_a? Inferno::DSL::FHIRResourceValidation::Validator validator.igs.each do |ig_id| ig = Inferno::Repositories::IGs.new.find_or_load(ig_id) profile = ig.profile_by_url(profile_url) return ig, profile if profile end end raise "Unable to find profile #{profile_url} in any IG defined for validator #{validator_name}" end |