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
942 943 944 945 946 947 948 949 950 951 |
# File 'lib/inferno/dsl/fhir_resource_validation.rb', line 942 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
920 921 922 |
# File 'lib/inferno/dsl/fhir_resource_validation.rb', line 920 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
961 962 963 964 965 966 967 968 969 970 971 972 |
# File 'lib/inferno/dsl/fhir_resource_validation.rb', line 961 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 |