Skip to content
This repository has been archived by the owner on May 2, 2022. It is now read-only.

Commit

Permalink
SARAALERT-1599: Update Vaccine Products Names to CDC Formatting (#1064)
Browse files Browse the repository at this point in the history
* Update vaccine names to match CDC product names

We are updating vaccine names again to match the names listed here:
https://www2a.cdc.gov/vaccines/iis/iisstandards/vaccines.asp?rpt=tradename

for sake of consistency over time.

* Migration to update vaccine names to match cdc product name

We had previously updated the names of the vaccines and added
new vaccines in a prior migration, but this migration is needed
to update all of the existing vaccines to match the product name
values used by the cdc.

* Update excel guidance and test fixtures to include new vaccine names

* Fix vaccine names in where clauses in migration

Co-authored-by: Tom Strassner <tstrassner@mitre.org>
  • Loading branch information
ngfreiter and tstrass committed Sep 2, 2021
1 parent da9bec1 commit fc3603c
Show file tree
Hide file tree
Showing 14 changed files with 140 additions and 92 deletions.
13 changes: 7 additions & 6 deletions app/javascript/data/advancedFilterOptions.js
Expand Up @@ -371,13 +371,14 @@ export const advancedFilterOptions = [
title: 'product name',
type: 'select',
options: [
'Moderna COVID-19 Vaccine (Non-US tradename: Spikevax)',
'Pfizer-BioNTech COVID-19 Vaccine (Tradename: COMIRNATY)',
'Moderna COVID-19 Vaccine (non-US Spikevax)',
'Pfizer-BioNTech COVID-19 Vaccine (COMIRNATY)',
'Janssen (J&J) COVID-19 Vaccine',
'AstraZeneca COVID-19 Vaccine (Non-US tradenames: VAXZEVRIA, COVISHIELD)',
'Coronavac (Sinovac) COVID-19 Vaccine (Non-US)',
'Sinopharm (BIBP) COVID-19 Vaccine (Non-US)',
'Unknown'],
'AstraZeneca COVID-19 Vaccine (Non-US tradenames include VAXZEVRIA, COVISHIELD)',
'Coronavac (Sinovac) COVID-19 Vaccine',
'Sinopharm (BIBP) COVID-19 Vaccine',
'Unknown',
],
},
{
name: 'administration-date',
Expand Down
10 changes: 5 additions & 5 deletions config/vaccines.yml
Expand Up @@ -6,12 +6,12 @@
- system: 'http://hl7.org/fhir/sid/cvx'
code: '213'
vaccines:
- product_name: 'Moderna COVID-19 Vaccine (Non-US tradename: Spikevax)'
- product_name: 'Moderna COVID-19 Vaccine (non-US Spikevax)'
num_doses: 3
product_codes:
- system: 'http://hl7.org/fhir/sid/cvx'
code: '207'
- product_name: 'Pfizer-BioNTech COVID-19 Vaccine (Tradename: COMIRNATY)'
- product_name: 'Pfizer-BioNTech COVID-19 Vaccine (COMIRNATY)'
num_doses: 3
product_codes:
- system: 'http://hl7.org/fhir/sid/cvx'
Expand All @@ -21,17 +21,17 @@
product_codes:
- system: 'http://hl7.org/fhir/sid/cvx'
code: '212'
- product_name: 'AstraZeneca COVID-19 Vaccine (Non-US tradenames: VAXZEVRIA, COVISHIELD)'
- product_name: 'AstraZeneca COVID-19 Vaccine (Non-US tradenames include VAXZEVRIA, COVISHIELD)'
num_doses: 3
product_codes:
- system: 'http://hl7.org/fhir/sid/cvx'
code: '210'
- product_name: 'Coronavac (Sinovac) COVID-19 Vaccine (Non-US)'
- product_name: 'Coronavac (Sinovac) COVID-19 Vaccine'
num_doses: 3
product_codes:
- system: 'http://hl7.org/fhir/sid/cvx'
code: '511'
- product_name: 'Sinopharm (BIBP) COVID-19 Vaccine (Non-US)'
- product_name: 'Sinopharm (BIBP) COVID-19 Vaccine'
num_doses: 3
product_codes:
- system: 'http://hl7.org/fhir/sid/cvx'
Expand Down
@@ -0,0 +1,47 @@
class UpdateVaccineProductNamesToMatchCdc < ActiveRecord::Migration[6.1]
def up
# Update all vaccine names which have changed
Vaccine.where(product_name: 'Moderna COVID-19 Vaccine (Non-US tradename: Spikevax)').update_all(product_name: 'Moderna COVID-19 Vaccine (non-US Spikevax)')
Vaccine.where(product_name: 'Pfizer-BioNTech COVID-19 Vaccine (Tradename: COMIRNATY)').update_all(product_name: 'Pfizer-BioNTech COVID-19 Vaccine (COMIRNATY)')
Vaccine.where(product_name: 'AstraZeneca COVID-19 Vaccine (Non-US tradenames: VAXZEVRIA, COVISHIELD)').update_all(product_name: 'AstraZeneca COVID-19 Vaccine (Non-US tradenames include VAXZEVRIA, COVISHIELD)')
Vaccine.where(product_name: 'Coronavac (Sinovac) COVID-19 Vaccine (Non-US)').update_all(product_name: 'Coronavac (Sinovac) COVID-19 Vaccine')
Vaccine.where(product_name: 'Sinopharm (BIBP) COVID-19 Vaccine (Non-US)').update_all(product_name: 'Sinopharm (BIBP) COVID-19 Vaccine')

# Update all saved user_export_presets
ActiveRecord::Base.connection.raw_connection.prepare(Arel.sql("UPDATE user_export_presets SET config = REPLACE(config, 'Moderna COVID-19 Vaccine (Non-US tradename: Spikevax)', 'Moderna COVID-19 Vaccine (non-US Spikevax)') WHERE config REGEXP 'Moderna'")).execute
ActiveRecord::Base.connection.raw_connection.prepare(Arel.sql("UPDATE user_export_presets SET config = REPLACE(config, 'Pfizer-BioNTech COVID-19 Vaccine (Tradename: COMIRNATY)', 'Pfizer-BioNTech COVID-19 Vaccine (COMIRNATY)') WHERE config REGEXP 'Pfizer'")).execute
ActiveRecord::Base.connection.raw_connection.prepare(Arel.sql("UPDATE user_export_presets SET config = REPLACE(config, 'AstraZeneca COVID-19 Vaccine (Non-US tradenames: VAXZEVRIA, COVISHIELD)', 'AstraZeneca COVID-19 Vaccine (Non-US tradenames include VAXZEVRIA, COVISHIELD)') WHERE config REGEXP 'AstraZeneca'")).execute
ActiveRecord::Base.connection.raw_connection.prepare(Arel.sql("UPDATE user_export_presets SET config = REPLACE(config, 'Coronavac (Sinovac) COVID-19 Vaccine (Non-US)', 'Coronavac (Sinovac) COVID-19 Vaccine') WHERE config REGEXP 'Coronavac'")).execute
ActiveRecord::Base.connection.raw_connection.prepare(Arel.sql("UPDATE user_export_presets SET config = REPLACE(config, 'Sinopharm (BIBP) COVID-19 Vaccine (Non-US)', 'Sinopharm (BIBP) COVID-19 Vaccine') WHERE config REGEXP 'Sinopharm'")).execute

# Update all saved user_filters
ActiveRecord::Base.connection.raw_connection.prepare(Arel.sql("UPDATE user_filters SET contents = REPLACE(contents, 'Moderna COVID-19 Vaccine (Non-US tradename: Spikevax)', 'Moderna COVID-19 Vaccine (non-US Spikevax)') WHERE contents REGEXP 'Moderna'")).execute
ActiveRecord::Base.connection.raw_connection.prepare(Arel.sql("UPDATE user_filters SET contents = REPLACE(contents, 'Pfizer-BioNTech COVID-19 Vaccine (Tradename: COMIRNATY)', 'Pfizer-BioNTech COVID-19 Vaccine (COMIRNATY)') WHERE contents REGEXP 'Pfizer'")).execute
ActiveRecord::Base.connection.raw_connection.prepare(Arel.sql("UPDATE user_filters SET contents = REPLACE(contents, 'AstraZeneca COVID-19 Vaccine (Non-US tradenames: VAXZEVRIA, COVISHIELD)', 'AstraZeneca COVID-19 Vaccine (Non-US tradenames include VAXZEVRIA, COVISHIELD)') WHERE contents REGEXP 'AstraZeneca'")).execute
ActiveRecord::Base.connection.raw_connection.prepare(Arel.sql("UPDATE user_filters SET contents = REPLACE(contents, 'Coronavac (Sinovac) COVID-19 Vaccine (Non-US)', 'Coronavac (Sinovac) COVID-19 Vaccine') WHERE contents REGEXP 'Coronavac'")).execute
ActiveRecord::Base.connection.raw_connection.prepare(Arel.sql("UPDATE user_filters SET contents = REPLACE(contents, 'Sinopharm (BIBP) COVID-19 Vaccine (Non-US)', 'Sinopharm (BIBP) COVID-19 Vaccine') WHERE contents REGEXP 'Sinopharm'")).execute
end

def down
# Revert the vaccine names which have changed
Vaccine.where(product_name: 'Moderna COVID-19 Vaccine (non-US Spikevax)').update_all(product_name: 'Moderna COVID-19 Vaccine (Non-US tradename: Spikevax)')
Vaccine.where(product_name: 'Pfizer-BioNTech COVID-19 Vaccine (COMIRNATY)').update_all(product_name: 'Pfizer-BioNTech COVID-19 Vaccine (Tradename: COMIRNATY)')
Vaccine.where(product_name: 'AstraZeneca COVID-19 Vaccine (Non-US tradenames include VAXZEVRIA, COVISHIELD)').update_all(product_name: 'AstraZeneca COVID-19 Vaccine (Non-US tradenames: VAXZEVRIA, COVISHIELD)')
Vaccine.where(product_name: 'Coronavac (Sinovac) COVID-19 Vaccine').update_all(product_name: 'Coronavac (Sinovac) COVID-19 Vaccine (Non-US)')
Vaccine.where(product_name: 'Sinopharm (BIBP) COVID-19 Vaccine').update_all(product_name: 'Sinopharm (BIBP) COVID-19 Vaccine (Non-US)')

# Revert the saved user_export_presets
ActiveRecord::Base.connection.raw_connection.prepare(Arel.sql("UPDATE user_export_presets SET config = REPLACE(config, 'Moderna COVID-19 Vaccine (non-US Spikevax)', 'Moderna COVID-19 Vaccine (Non-US tradename: Spikevax)') WHERE config REGEXP 'Moderna'")).execute
ActiveRecord::Base.connection.raw_connection.prepare(Arel.sql("UPDATE user_export_presets SET config = REPLACE(config, 'Pfizer-BioNTech COVID-19 Vaccine (COMIRNATY)', 'Pfizer-BioNTech COVID-19 Vaccine (Tradename: COMIRNATY)') WHERE config REGEXP 'Pfizer'")).execute
ActiveRecord::Base.connection.raw_connection.prepare(Arel.sql("UPDATE user_export_presets SET config = REPLACE(config, 'Coronavac (Sinovac) COVID-19 Vaccine', 'Coronavac (Sinovac) COVID-19 Vaccine (Non-US)') WHERE config REGEXP 'Coronovac'")).execute
ActiveRecord::Base.connection.raw_connection.prepare(Arel.sql("UPDATE user_export_presets SET config = REPLACE(config, 'Sinopharm (BIBP) COVID-19 Vaccine', 'Sinopharm (BIBP) COVID-19 Vaccine (Non-US)') WHERE config REGEXP 'Sinopharm'")).execute
ActiveRecord::Base.connection.raw_connection.prepare(Arel.sql("UPDATE user_export_presets SET config = REPLACE(config, 'AstraZeneca COVID-19 Vaccine (Non-US tradenames include VAXZEVRIA, COVISHIELD)', 'AstraZeneca COVID-19 Vaccine (Non-US tradenames: VAXZEVRIA, COVISHIELD)') WHERE config REGEXP 'AstraZeneca'")).execute

# Revert the saved user_filter_presets
ActiveRecord::Base.connection.raw_connection.prepare(Arel.sql("UPDATE user_filters SET contents = REPLACE(contents, 'Moderna COVID-19 Vaccine (non-US Spikevax)', 'Moderna COVID-19 Vaccine (Non-US tradename: Spikevax)') WHERE contents REGEXP 'Moderna'")).execute
ActiveRecord::Base.connection.raw_connection.prepare(Arel.sql("UPDATE user_filters SET contents = REPLACE(contents, 'Pfizer-BioNTech COVID-19 Vaccine (COMIRNATY)', 'Pfizer-BioNTech COVID-19 Vaccine (Tradename: COMIRNATY)') WHERE contents REGEXP 'Pfizer'")).execute
ActiveRecord::Base.connection.raw_connection.prepare(Arel.sql("UPDATE user_filters SET contents = REPLACE(contents, 'Coronavac (Sinovac) COVID-19 Vaccine', 'Coronavac (Sinovac) COVID-19 Vaccine (Non-US)') WHERE contents REGEXP 'Coronovac'")).execute
ActiveRecord::Base.connection.raw_connection.prepare(Arel.sql("UPDATE user_filters SET contents = REPLACE(contents, 'Sinopharm (BIBP) COVID-19 Vaccine', 'Sinopharm (BIBP) COVID-19 Vaccine (Non-US)') WHERE contents REGEXP 'Sinopharm'")).execute
ActiveRecord::Base.connection.raw_connection.prepare(Arel.sql("UPDATE user_filters SET contents = REPLACE(contents, 'AstraZeneca COVID-19 Vaccine (Non-US tradenames include VAXZEVRIA, COVISHIELD)', 'AstraZeneca COVID-19 Vaccine (Non-US tradenames: VAXZEVRIA, COVISHIELD)') WHERE contents REGEXP 'AstraZeneca'")).execute
end
end
2 changes: 1 addition & 1 deletion db/schema.rb
Expand Up @@ -10,7 +10,7 @@
#
# It's strongly recommended that you check this file into your version control system.

ActiveRecord::Schema.define(version: 2021_08_24_154651) do
ActiveRecord::Schema.define(version: 2021_09_01_192909) do

create_table "active_storage_attachments", charset: "utf8", force: :cascade do |t|
t.string "name", null: false
Expand Down
6 changes: 3 additions & 3 deletions docs/api/fhir-api-specification.md
Expand Up @@ -2540,7 +2540,7 @@ Use this route to retrieve a FHIR Bundle containing the monitoree and all their
"code": "208"
}
],
"text": "Pfizer-BioNTech COVID-19 Vaccine (Tradename: COMIRNATY)"
"text": "Pfizer-BioNTech COVID-19 Vaccine (COMIRNATY)"
}
],
"patient": {
Expand Down Expand Up @@ -3303,7 +3303,7 @@ To create a new monitoree vaccination, simply POST a FHIR Immunization resource
"code": "207"
}
],
"text": "Moderna COVID-19 Vaccine (Non-US tradename: Spikevax)"
"text": "Moderna COVID-19 Vaccine (non-US Spikevax)"
}
],
"patient": {
Expand Down Expand Up @@ -3768,7 +3768,7 @@ On success, the server will update the existing resource given the id.
"code": "207"
}
],
"text": "Moderna COVID-19 Vaccine (Non-US tradename: Spikevax)"
"text": "Moderna COVID-19 Vaccine (non-US Spikevax)"
}
],
"patient": {
Expand Down
4 changes: 2 additions & 2 deletions public/Sara Alert Import Format.xlsx
Git LFS file not shown
10 changes: 5 additions & 5 deletions test/factories/user_filter.rb
Expand Up @@ -23,12 +23,12 @@
'title' => 'product name',
'type' => 'select',
'options' => [
'Moderna COVID-19 Vaccine (Non-US tradename: Spikevax)',
'Pfizer-BioNTech COVID-19 Vaccine (Tradename: COMIRNATY)',
'Moderna COVID-19 Vaccine (non-US Spikevax)',
'Pfizer-BioNTech COVID-19 Vaccine (COMIRNATY)',
'Janssen (J&J) COVID-19 Vaccine',
'AstraZeneca COVID-19 Vaccine (Non-US tradenames: VAXZEVRIA, COVISHIELD)',
'Coronavac (Sinovac) COVID-19 Vaccine (Non-US)',
'Sinopharm (BIBP) COVID-19 Vaccine (Non-US)',
'AstraZeneca COVID-19 Vaccine (Non-US tradenames include VAXZEVRIA, COVISHIELD)',
'Coronavac (Sinovac) COVID-19 Vaccine',
'Sinopharm (BIBP) COVID-19 Vaccine',
'Unknown'
]
}, {
Expand Down
4 changes: 2 additions & 2 deletions test/fixtures/files/Sara-Alert-Format-Exposure-Workflow.xlsx
Git LFS file not shown
4 changes: 2 additions & 2 deletions test/fixtures/files/Sara-Alert-Format-Invalid-Headers.xlsx
Git LFS file not shown
4 changes: 2 additions & 2 deletions test/fixtures/files/Sara-Alert-Format-Isolation-Workflow.xlsx
Git LFS file not shown
Git LFS file not shown
Git LFS file not shown

0 comments on commit fc3603c

Please sign in to comment.