diff --git a/.github/workflows/ruby.yml b/.github/workflows/ruby.yml index fd8824eec..7e849439e 100644 --- a/.github/workflows/ruby.yml +++ b/.github/workflows/ruby.yml @@ -274,14 +274,29 @@ jobs: run: | RUBYOPT="-W0" bin/rails test test/unit/lib/*.rb; + - name: Upload code coverage to codecov.io + uses: codecov/codecov-action@v3 + with: + directory: coverage + name: codecov-unit-2-lib - name: Run Rake test units lib cypress run: | RUBYOPT="-W0" bin/rails test test/unit/lib/cypress/*.rb; + - name: Upload code coverage to codecov.io + uses: codecov/codecov-action@v3 + with: + directory: coverage + name: codecov-unit-2-lib-cypress - name: Run Rake test units lib validators run: | RUBYOPT="-W0" bin/rails test test/unit/lib/validators/*.rb; + - name: Upload code coverage to codecov.io + uses: codecov/codecov-action@v3 + with: + directory: coverage + name: codecov-unit-2-validators - name: Run Rake test models run: | RUBYOPT="-W0" @@ -290,7 +305,7 @@ jobs: uses: codecov/codecov-action@v3 with: directory: coverage - name: codecov-unit-2 + name: codecov-unit-2-models controllers-jobs-helpers-test: strategy: diff --git a/Gemfile b/Gemfile index bc32ccce3..bbfa16872 100644 --- a/Gemfile +++ b/Gemfile @@ -17,8 +17,8 @@ gem 'mustache' ## gem 'os' gem 'cqm-models', '~> 4.2.0' -gem 'cqm-parsers', git: 'https://github.com/projecttacoma/cqm-parsers', branch: 'master' -gem 'cqm-reports', git: 'https://github.com/projecttacoma/cqm-reports', branch: 'master' +gem 'cqm-parsers', '~> 4.1.1.2' +gem 'cqm-reports', '~> 4.1.5' gem 'cqm-validators', '~> 4.0.6' # # Use faker to generate addresses diff --git a/Gemfile.lock b/Gemfile.lock index 11a31a699..0890f04d6 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,42 +1,3 @@ -GIT - remote: https://github.com/projecttacoma/cqm-parsers - revision: 5b7faee19af2c3eb5bb1f98ed9388a1919277af2 - branch: master - specs: - cqm-parsers (4.1.1.1) - activesupport (> 5.0) - builder (~> 3.1) - cqm-models (> 3.0.0) - erubis (~> 2.7.0) - highline (~> 1.7.0) - log4r (~> 1.1.10) - memoist (~> 0.9.1) - mongoid (> 6.0.5, < 10.0.0) - mongoid-tree (~> 2.3.0) - mustache - nokogiri (>= 1.16.2) - rubyzip (~> 1.3) - typhoeus - uuid (~> 2.3.7) - zip-zip (~> 0.3) - -GIT - remote: https://github.com/projecttacoma/cqm-reports - revision: 876e8488e835a853c14b510768926f709947127f - branch: master - specs: - cqm-reports (4.1.4) - cqm-models (~> 4.0) - cqm-validators (~> 4.0) - erubis (~> 2.7) - log4r (~> 1.1) - memoist (~> 0.9) - mongoid-tree (> 2.0) - mustache - nokogiri (>= 1.16.2) - uuid (~> 2.3) - zip-zip (~> 0.3) - GIT remote: https://github.com/turbolinks/turbolinks-classic revision: 80216ce9d89920bf073709405e3fce6d0a3ccd9a @@ -204,6 +165,33 @@ GEM concurrent-ruby (1.3.5) connection_pool (2.5.4) cqm-models (4.2.0) + cqm-parsers (4.1.1.2) + activesupport (> 5.0) + builder (~> 3.1) + cqm-models (> 3.0.0) + erubis (~> 2.7.0) + highline (~> 1.7.0) + log4r (~> 1.1.10) + memoist (~> 0.9.1) + mongoid (> 6.0.5, < 10.0.0) + mongoid-tree (~> 2.3.0) + mustache + nokogiri (>= 1.16.2) + rubyzip (~> 1.3) + typhoeus + uuid (~> 2.3.7) + zip-zip (~> 0.3) + cqm-reports (4.1.5) + cqm-models (~> 4.0) + cqm-validators (~> 4.0) + erubis (~> 2.7) + log4r (~> 1.1) + memoist (~> 0.9) + mongoid-tree (> 2.0) + mustache + nokogiri (>= 1.16.2) + uuid (~> 2.3) + zip-zip (~> 0.3) cqm-validators (4.0.6) nokogiri (>= 1.16.2) crack (1.0.0) @@ -728,8 +716,8 @@ DEPENDENCIES carrierwave-mongoid codecov cqm-models (~> 4.2.0) - cqm-parsers! - cqm-reports! + cqm-parsers (~> 4.1.1.2) + cqm-reports (~> 4.1.5) cqm-validators (~> 4.0.6) csv (~> 3.3, >= 3.3.5) cucumber-rails diff --git a/app/controllers/vendors_controller.rb b/app/controllers/vendors_controller.rb index 824dc723f..ae07e01a1 100644 --- a/app/controllers/vendors_controller.rb +++ b/app/controllers/vendors_controller.rb @@ -99,6 +99,7 @@ def update_preferences # save preferences to vendor preferred_code_systems @vendor.preferred_code_systems = JSON.parse(params['vendor_preferences']) @vendor.preferred_ccn = params['preferred_ccn'] unless params['preferred_ccn'] == '' + @vendor.preferred_tin = params['preferred_tin'] unless params['preferred_tin'] == '' @vendor.save redirect_to vendor_path(@vendor) end diff --git a/app/models/c1_task.rb b/app/models/c1_task.rb index ad1bec1cd..338185cbd 100644 --- a/app/models/c1_task.rb +++ b/app/models/c1_task.rb @@ -12,6 +12,7 @@ class C1Task < Task def validators @validators = if product_test.c1_test [::Validators::CalculatingSmokingGunValidator.new(product_test.measures, product_test.patients, product_test.id), + ::Validators::TinValidator.new, ::Validators::QrdaCat1Validator.new(product_test.bundle, false, product_test.c3_test, true, product_test.measures)] else # A C1 task is created whenever C3 is selected. If C1 isn't also selected, this task doesn't perform any validations diff --git a/app/models/measure_test.rb b/app/models/measure_test.rb index b63243ddb..df553e26e 100644 --- a/app/models/measure_test.rb +++ b/app/models/measure_test.rb @@ -30,7 +30,8 @@ def generate_provider return unless provider.nil? self.provider = Provider.generate_provider(measure_type: measures.first.reporting_program_type, - preferred_ccn: product.vendor.preferred_ccn) + preferred_ccn: product.vendor.preferred_ccn, + preferred_tin: product.vendor.preferred_tin) end # passing only if both c1 and c3_cat1 tasks pass diff --git a/app/models/vendor.rb b/app/models/vendor.rb index a21240098..75a1e05ca 100644 --- a/app/models/vendor.rb +++ b/app/models/vendor.rb @@ -21,6 +21,7 @@ class Vendor field :zip, type: String field :preferred_code_systems, type: Hash, default: {} field :preferred_ccn, type: String + field :preferred_tin, type: String field :favorite_user_ids, type: Array, default: [] field :vendor_patient_analysis, type: Hash, default: {} diff --git a/app/views/vendors/preferences.html.erb b/app/views/vendors/preferences.html.erb index 9a5dd055f..e6639a0e2 100644 --- a/app/views/vendors/preferences.html.erb +++ b/app/views/vendors/preferences.html.erb @@ -27,6 +27,7 @@