diff --git a/lib/DataHarmonizer.js b/lib/DataHarmonizer.js index 2e8306e6..7d9c11a0 100644 --- a/lib/DataHarmonizer.js +++ b/lib/DataHarmonizer.js @@ -1597,17 +1597,22 @@ class DataHarmonizer { if (field.sources) { const options = field.sources.flatMap((source) => { - return Object.values(field.permissible_values[source]).reduce( - (acc, item) => { - acc.push({ - label: titleOverText(item), - value: titleOverText(item), - _id: item.text, - }); - return acc; - }, - [] - ); + if (field.permissible_values[source]) + return Object.values(field.permissible_values[source]).reduce( + (acc, item) => { + acc.push({ + label: titleOverText(item), + value: titleOverText(item), + _id: item.text, + }); + return acc; + }, + [] + ); + else { + alert("Schema Error: Slot mentions enumeration " + source + " but this was not found in enumeration dictionary, or it has no selections"); + return []; + } }); col.source = options; @@ -2780,11 +2785,13 @@ class DataHarmonizer { if (field.multivalued === true) { const [, update] = validateValsAgainstVocab(cellVal, field); if (update) { + data[row][col] = update; cellChanges.push([row, col, update, 'thisChange']); } } else { const [, update] = validateValAgainstVocab(cellVal, field); if (update) { + data[row][col] = update; cellChanges.push([row, col, update, 'thisChange']); } } diff --git a/web/templates/influenza/schema.json b/web/templates/influenza/schema.json index e429da81..7d6793e1 100644 --- a/web/templates/influenza/schema.json +++ b/web/templates/influenza/schema.json @@ -301,8 +301,8 @@ "title": "umbrella bioproject accession menu", "from_schema": "https://example.com/Influenza" }, - "null value menu": { - "name": "null value menu", + "NullValueMenu": { + "name": "NullValueMenu", "title": "null value menu", "from_schema": "https://example.com/Influenza", "permissible_values": { @@ -531,7 +531,15 @@ "PresamplingActivityMenu": { "name": "PresamplingActivityMenu", "title": "presampling activity menu", - "from_schema": "https://example.com/Influenza" + "from_schema": "https://example.com/Influenza", + "permissible_values": { + "Post-infection convalescence": { + "text": "Post-infection convalescence" + }, + "Vaccination": { + "text": "Vaccination" + } + } }, "VaccineNameMenu": { "name": "VaccineNameMenu", diff --git a/web/templates/influenza/schema.yaml b/web/templates/influenza/schema.yaml index b226d78e..df9c17f7 100644 --- a/web/templates/influenza/schema.yaml +++ b/web/templates/influenza/schema.yaml @@ -1716,8 +1716,8 @@ enums: name: UmbrellaBioprojectAccessionMenu title: umbrella bioproject accession menu permissible_values: {} - null value menu: - name: null value menu + NullValueMenu: + name: NullValueMenu title: null value menu permissible_values: Not Applicable: @@ -1878,7 +1878,11 @@ enums: PresamplingActivityMenu: name: PresamplingActivityMenu title: presampling activity menu - permissible_values: {} + permissible_values: + Post-infection convalescence: + text: Post-infection convalescence + Vaccination: + text: Vaccination VaccineNameMenu: name: VaccineNameMenu title: vaccine name menu diff --git a/web/templates/influenza/schema_enums.tsv b/web/templates/influenza/schema_enums.tsv index be8143f2..1187fde3 100644 --- a/web/templates/influenza/schema_enums.tsv +++ b/web/templates/influenza/schema_enums.tsv @@ -2,7 +2,7 @@ title name meaning menu_1 menu_2 menu_3 menu_4 menu_5 description EXPORT_GISAID umbrella bioproject accession menu UmbrellaBioprojectAccessionMenu -null value menu GENEPIO:0001619 Not Applicable +null value menu NullValueMenu GENEPIO:0001619 Not Applicable GENEPIO:0001618 Missing GENEPIO:0001620 Not Collected GENEPIO:0001668 Not Provided @@ -60,8 +60,8 @@ Related specimen relationship type menu RelatedSpecimenRelationshipTypeMenu HP:0 Sequencing/bioinformatics methods development/validation Specimen sampling methods testing -presampling activity menu PresamplingActivityMenu Post-infection convalescence - Vaccination +presampling activity menu PresamplingActivityMenu Post-infection convalescence + Vaccination