diff --git a/Gemfile.lock b/Gemfile.lock index 53026c16..ac82b850 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -2,31 +2,40 @@ PATH remote: . specs: davinci_dtr_test_kit (0.17.0) - inferno_core (~> 1.0, >= 1.1.2) - jwt (~> 2.6) - smart_app_launch_test_kit (~> 1.0) - tls_test_kit (~> 1.0) - udap_security_test_kit (~> 0.12.0) - us_core_test_kit (~> 1.0) + inferno_core (~> 1.3, >= 1.3.1) + jwt (~> 3.2) + smart_app_launch_test_kit (~> 1.0, >= 1.0.2) + tls_test_kit (~> 1.0, >= 1.0.2) + udap_security_test_kit (~> 0.12, >= 0.12.2) + us_core_test_kit (~> 1.1, >= 1.1.2) GEM remote: https://rubygems.org/ specs: - activesupport (6.1.7.10) - concurrent-ruby (~> 1.0, >= 1.0.2) + activesupport (7.2.3.1) + base64 + benchmark (>= 0.3) + bigdecimal + concurrent-ruby (~> 1.0, >= 1.3.1) + connection_pool (>= 2.2.5) + drb i18n (>= 1.6, < 2) - minitest (>= 5.1) - tzinfo (~> 2.0) - zeitwerk (~> 2.3) - addressable (2.8.9) + logger (>= 1.4.2) + minitest (>= 5.1, < 6) + securerandom (>= 0.3) + tzinfo (~> 2.0, >= 2.0.5) + addressable (2.9.0) public_suffix (>= 2.0.2, < 8.0) aes_key_wrap (1.1.0) ast (2.4.3) + auth-sanitizer (0.1.4) + version_gem (~> 1.1, >= 1.1.9) base62-rb (0.3.1) base64 (0.3.0) bcp47 (0.3.3) i18n - bigdecimal (3.3.1) + benchmark (0.5.0) + bigdecimal (4.1.2) bindata (2.5.1) blueprinter (0.25.2) builder (3.3.0) @@ -100,15 +109,15 @@ GEM faraday-retry (1.0.4) faraday_middleware (1.2.1) faraday (~> 1.0) - fhir_client (6.1.0) + fhir_client (6.2.0) activesupport (>= 3) - addressable (>= 2.3) + addressable (>= 2.9.0) fhir_dstu2_models (>= 1.1.1) - fhir_models (>= 5.0.0) + fhir_models (>= 5.1.0) fhir_stu3_models (>= 3.1.1) - nokogiri (>= 1.10.4) + nokogiri (>= 1.19.1) oauth2 (~> 2.0) - rack (>= 1.5) + rack (>= 2.2.23) rest-client (~> 2.0) tilt (>= 1.1) fhir_dstu2_models (1.2.0) @@ -116,11 +125,11 @@ GEM date_time_precision (>= 0.8) mime-types (>= 3.0) nokogiri (>= 1.11.4) - fhir_models (5.0.0) + fhir_models (5.1.0) bcp47 (>= 0.3) date_time_precision (>= 0.8) mime-types (>= 3.0) - nokogiri (>= 1.11.4) + nokogiri (>= 1.19.1) fhir_stu3_models (3.2.0) bcp47 (>= 0.3) date_time_precision (>= 0.8) @@ -136,8 +145,7 @@ GEM mustermann (~> 1.0) mustermann-contrib (~> 1.0) rack (~> 2.0) - hanami-utils (2.3.0) - bigdecimal (~> 3.1) + hanami-utils (2.2.0) concurrent-ruby (~> 1.0) dry-core (~> 1.0, < 2) dry-transformer (~> 1.0, < 2) @@ -146,14 +154,14 @@ GEM hashie (5.1.0) logger http-accept (1.7.0) - http-cookie (1.1.0) + http-cookie (1.1.6) domain_name (~> 0.5) httpclient (2.9.0) mutex_m i18n (1.14.8) concurrent-ruby (~> 1.0) - inferno_core (1.1.2) - activesupport (~> 6.1.7.5) + inferno_core (1.3.1) + activesupport (~> 7.2.3.1) base62-rb (= 0.3.1) blueprinter (= 0.25.2) concurrent-ruby (= 1.3.4) @@ -164,13 +172,13 @@ GEM dry-core (= 1.0.0) dry-inflector (= 1.0.0) dry-system (= 1.0.0) - faraday (~> 1.2) + faraday (~> 1.10.5) faraday_middleware (~> 1.2) - fhir_client (>= 5.0.3) - fhir_models (>= 4.2.2) + fhir_client (>= 6.2.0) + fhir_models (>= 5.1.0) hanami-controller (= 2.0.0) hanami-router (= 2.0.0) - kramdown (~> 2.5.1) + kramdown (~> 2.5.2) kramdown-parser-gfm (~> 1.1.0) mutex_m (~> 0.3.0) oj (= 3.11.0) @@ -197,7 +205,7 @@ GEM aes_key_wrap bindata httpclient - jwt (2.10.2) + jwt (3.2.0) base64 kramdown (2.5.2) rexml (>= 3.4.4) @@ -210,11 +218,9 @@ GEM mime-types (3.7.0) logger mime-types-data (~> 3.2025, >= 3.2025.0507) - mime-types-data (3.2026.0317) - minitest (6.0.2) - drb (~> 2.0) - prism (~> 1.5) - multi_xml (0.8.1) + mime-types-data (3.2026.0414) + minitest (5.27.0) + multi_xml (0.9.1) bigdecimal (>= 3.1, < 5) multipart-post (2.4.1) mustermann (1.1.2) @@ -225,15 +231,16 @@ GEM mutex_m (0.3.0) netrc (0.11.0) nio4r (2.7.5) - nokogiri (1.19.2-x86_64-linux-gnu) + nokogiri (1.19.3-x86_64-linux-gnu) racc (~> 1.4) - oauth2 (2.0.18) + oauth2 (2.0.20) + auth-sanitizer (~> 0.1, >= 0.1.3) faraday (>= 0.17.3, < 4.0) jwt (>= 1.0, < 4.0) logger (~> 1.2) multi_xml (~> 0.5) rack (>= 1.2, < 4) - snaky_hash (~> 2.0, >= 2.0.3) + snaky_hash (~> 2.0, >= 2.0.4) version_gem (~> 1.1, >= 1.1.9) oj (3.11.0) parallel (1.27.0) @@ -260,16 +267,16 @@ GEM puma (5.6.9) nio4r (~> 2.0) racc (1.8.1) - rack (2.2.22) + rack (2.2.23) rack-test (1.1.0) rack (>= 1.0, < 3) rainbow (3.1.1) - rake (13.3.1) + rake (13.4.2) rdoc (7.2.0) erb psych (>= 4.0.0) tsort - redis-client (0.28.0) + redis-client (0.29.0) connection_pool regexp_parser (2.11.3) reline (0.6.3) @@ -319,18 +326,19 @@ GEM ruby-progressbar (1.13.0) ruby2_keywords (0.0.5) rubyzip (2.4.1) + securerandom (0.4.1) sequel (5.42.0) sidekiq (7.2.4) concurrent-ruby (< 2) connection_pool (>= 2.3.0) rack (>= 2.2.4) redis-client (>= 0.19.0) - smart_app_launch_test_kit (1.0.0) - inferno_core (~> 1.0, >= 1.0.2) + smart_app_launch_test_kit (1.0.2) + inferno_core (~> 1.2, >= 1.2.2) json-jwt (~> 1.15.3) - jwt (~> 2.6) - tls_test_kit (~> 1.0) - snaky_hash (2.0.3) + jwt (~> 3.2) + tls_test_kit (~> 1.0, >= 1.0.2) + snaky_hash (2.0.4) hashie (>= 0.1.0, < 6) version_gem (>= 1.1.8, < 3) sqlite3 (1.7.3-x86_64-linux) @@ -342,8 +350,8 @@ GEM strings-ansi (0.2.0) thor (1.5.0) tilt (2.7.0) - tls_test_kit (1.0.0) - inferno_core (~> 1.0, >= 1.0.2) + tls_test_kit (1.0.2) + inferno_core (~> 1.2, >= 1.2.2) tsort (0.2.0) tty-color (0.6.0) tty-markdown (0.7.2) @@ -356,21 +364,21 @@ GEM tty-screen (0.8.2) tzinfo (2.0.6) concurrent-ruby (~> 1.0) - udap_security_test_kit (0.12.0) - inferno_core (~> 1.0, >= 1.0.2) - jwt (~> 2.3) + udap_security_test_kit (0.12.2) + inferno_core (~> 1.2, >= 1.2.2) + jwt (~> 3.2) unicode-display_width (2.6.0) unicode_utils (1.4.0) - us_core_test_kit (1.1.1) - inferno_core (~> 1.0, >= 1.0.2) - smart_app_launch_test_kit (~> 1.0) - tls_test_kit (~> 1.0) + us_core_test_kit (1.1.3) + inferno_core (~> 1.3, >= 1.3.1) + smart_app_launch_test_kit (~> 1.0, >= 1.0.2) + tls_test_kit (~> 1.0, >= 1.0.2) version_gem (1.1.9) webmock (3.26.2) addressable (>= 2.8.0) crack (>= 0.3.2) hashdiff (>= 0.4.0, < 2.0.0) - zeitwerk (2.7.5) + zeitwerk (2.8.2) PLATFORMS x86_64-linux-gnu diff --git a/davinci_dtr_test_kit.gemspec b/davinci_dtr_test_kit.gemspec index 83ae7e71..9e5b559a 100644 --- a/davinci_dtr_test_kit.gemspec +++ b/davinci_dtr_test_kit.gemspec @@ -8,12 +8,12 @@ Gem::Specification.new do |spec| spec.description = 'Test Kit for the Da Vinci Documentation Templates and Rules (DTR) FHIR Implementation Guide' spec.homepage = 'https://github.com/inferno-framework/davinci-dtr-test-kit' spec.license = 'Apache-2.0' - spec.add_dependency 'inferno_core', '~> 1.0', '>= 1.1.2' - spec.add_dependency 'jwt', '~> 2.6' - spec.add_dependency 'smart_app_launch_test_kit', '~> 1.0' - spec.add_dependency 'tls_test_kit', '~> 1.0' - spec.add_dependency 'udap_security_test_kit', '~> 0.12.0' - spec.add_dependency 'us_core_test_kit', '~> 1.0' + spec.add_dependency 'inferno_core', '~> 1.3', '>= 1.3.1' + spec.add_dependency 'jwt', '~> 3.2' + spec.add_dependency 'smart_app_launch_test_kit', '~> 1.0', '>= 1.0.2' + spec.add_dependency 'tls_test_kit', '~> 1.0', '>= 1.0.2' + spec.add_dependency 'udap_security_test_kit', '~> 0.12', '>= 0.12.2' + spec.add_dependency 'us_core_test_kit', '~> 1.1', '>= 1.1.2' spec.required_ruby_version = Gem::Requirement.new('>= 3.3.6') spec.metadata['inferno_test_kit'] = 'true' spec.metadata['homepage_uri'] = spec.homepage diff --git a/lib/davinci_dtr_test_kit/dtr_full_ehr_suite.rb b/lib/davinci_dtr_test_kit/dtr_full_ehr_suite.rb index fc4fdb92..4a988e8d 100644 --- a/lib/davinci_dtr_test_kit/dtr_full_ehr_suite.rb +++ b/lib/davinci_dtr_test_kit/dtr_full_ehr_suite.rb @@ -70,6 +70,10 @@ class DTRFullEHRSuite < Inferno::TestSuite exclude_message do |message| message.message.match?(/\A\S+: \S+: URL value '.*' does not resolve/) end + + validation_context do + snomedCT '731000124108' + end end allow_cors QUESTIONNAIRE_PACKAGE_PATH, NEXT_PATH diff --git a/lib/davinci_dtr_test_kit/dtr_light_ehr_suite.rb b/lib/davinci_dtr_test_kit/dtr_light_ehr_suite.rb index 30d8bc3d..6b598699 100644 --- a/lib/davinci_dtr_test_kit/dtr_light_ehr_suite.rb +++ b/lib/davinci_dtr_test_kit/dtr_light_ehr_suite.rb @@ -17,6 +17,7 @@ require_relative 'client_groups/light_ehr/dtr_light_ehr_supported_endpoints_group' require 'smart_app_launch/smart_stu1_suite' require 'smart_app_launch/smart_stu2_suite' +require 'us_core_test_kit/generated/v3.1.1/us_core_test_suite' module DaVinciDTRTestKit class DTRLightEHRSuite < Inferno::TestSuite @@ -51,12 +52,23 @@ class DTRLightEHRSuite < Inferno::TestSuite } ) + DTR_MESSAGE_FILTERS = [ + /\A\S+: \S+: URL value '.*' does not resolve/ + ].freeze + + US_CORE_3_MESSAGE_FILTERS = DTR_MESSAGE_FILTERS + + USCoreTestKit::USCoreV311::USCoreTestSuite::VALIDATION_MESSAGE_FILTERS + # Hl7 Validator Wrapper: fhir_resource_validator do igs('hl7.fhir.us.davinci-dtr#2.0.1', 'hl7.fhir.us.davinci-pas#2.0.1', 'hl7.fhir.us.davinci-crd#2.0.1') exclude_message do |message| - message.message.match?(/\A\S+: \S+: URL value '.*' does not resolve/) + US_CORE_3_MESSAGE_FILTERS.any? { |match_template| message.message.match?(match_template) } + end + + validation_context do + snomedCT '731000124108' end end diff --git a/lib/davinci_dtr_test_kit/dtr_payer_server_suite.rb b/lib/davinci_dtr_test_kit/dtr_payer_server_suite.rb index 7246722c..624b2452 100644 --- a/lib/davinci_dtr_test_kit/dtr_payer_server_suite.rb +++ b/lib/davinci_dtr_test_kit/dtr_payer_server_suite.rb @@ -106,6 +106,10 @@ class DTRPayerServerSuite < Inferno::TestSuite exclude_message do |message| message.message.match?(/\A\S+: \S+: URL value '.*' does not resolve/) end + + validation_context do + snomedCT '731000124108' + end end allow_cors QUESTIONNAIRE_PACKAGE_PATH, NEXT_PATH diff --git a/lib/davinci_dtr_test_kit/dtr_smart_app_suite.rb b/lib/davinci_dtr_test_kit/dtr_smart_app_suite.rb index 43b75adb..5aaa1e22 100644 --- a/lib/davinci_dtr_test_kit/dtr_smart_app_suite.rb +++ b/lib/davinci_dtr_test_kit/dtr_smart_app_suite.rb @@ -58,6 +58,10 @@ class DTRSmartAppSuite < Inferno::TestSuite exclude_message do |message| message.message.match?(/\A\S+: \S+: URL value '.*' does not resolve/) end + + validation_context do + snomedCT '731000124108' + end end allow_cors QUESTIONNAIRE_PACKAGE_PATH, QUESTIONNAIRE_RESPONSE_PATH, FHIR_RESOURCE_PATH, FHIR_SEARCH_PATH,