diff --git a/app/integration_test/drugs_test.dart b/app/integration_test/drugs_test.dart index 9298de9d..3967a55a 100644 --- a/app/integration_test/drugs_test.dart +++ b/app/integration_test/drugs_test.dart @@ -48,8 +48,8 @@ void main() { implication: 'nothing', warningLevel: WarningLevel.green)) ]); - UserData.instance.geneResults = [ - GeneResult( + UserData.instance.labData = [ + LabResult( gene: 'CYP2C9', phenotype: 'Normal Metabolizer', variant: '*1/*1', @@ -58,10 +58,10 @@ void main() { ]; UserData.instance.genotypeResults = { 'CYP2C9': GenotypeResult( - gene: UserData.instance.geneResults![0].gene, - phenotype: UserData.instance.geneResults![0].phenotype, - variant: UserData.instance.geneResults![0].variant, - allelesTested: UserData.instance.geneResults![0].variant, + gene: UserData.instance.labData![0].gene, + phenotype: UserData.instance.labData![0].phenotype, + variant: UserData.instance.labData![0].variant, + allelesTested: UserData.instance.labData![0].variant, lookupkey: '2', ), }; diff --git a/app/lib/common/models/drug/drug.dart b/app/lib/common/models/drug/drug.dart index e2668130..f7f7453a 100644 --- a/app/lib/common/models/drug/drug.dart +++ b/app/lib/common/models/drug/drug.dart @@ -80,8 +80,8 @@ extension DrugExtension on Drug { Guideline? get userGuideline => guidelines.firstOrNullWhere( (guideline) => guideline.lookupkey.all( - (gene, geneResults) => - geneResults.contains(UserData.lookupFor(gene, drug: name)) + (gene, variants) => + variants.contains(UserData.lookupFor(gene, drug: name)) ), ); diff --git a/app/lib/common/models/module.dart b/app/lib/common/models/module.dart index 29b53cd6..1415b075 100644 --- a/app/lib/common/models/module.dart +++ b/app/lib/common/models/module.dart @@ -5,10 +5,10 @@ export 'drug/drug_inhibitors.dart'; export 'drug/guideline.dart'; export 'drug/warning_level.dart'; export 'metadata.dart'; -export 'userdata/gene_result.dart'; export 'userdata/genotype.dart'; export 'userdata/genotype_key.dart'; export 'userdata/genotype_result.dart'; +export 'userdata/lab_result.dart'; export 'userdata/lookup_information.dart'; export 'userdata/phenotype_information.dart'; export 'userdata/userdata.dart'; diff --git a/app/lib/common/models/userdata/genotype_key.dart b/app/lib/common/models/userdata/genotype_key.dart index 39957703..152b5074 100644 --- a/app/lib/common/models/userdata/genotype_key.dart +++ b/app/lib/common/models/userdata/genotype_key.dart @@ -13,10 +13,10 @@ class GenotypeKey implements Genotype { String variant; String get value { - final geneResults = UserData.instance.geneResults!.where( - (geneResult) => geneResult.gene == gene + final geneData = UserData.instance.labData!.where( + (labData) => labData.gene == gene ); - if (geneResults.length > 1) { + if (geneData.length > 1) { return '$gene ${variant.split(' ').first}'; } return gene; diff --git a/app/lib/common/models/userdata/genotype_result.dart b/app/lib/common/models/userdata/genotype_result.dart index 4dbd1862..ab5ffbfb 100644 --- a/app/lib/common/models/userdata/genotype_result.dart +++ b/app/lib/common/models/userdata/genotype_result.dart @@ -15,7 +15,7 @@ class GenotypeResult implements Genotype { }); factory GenotypeResult.fromGenotypeData( - GeneResult labResult, + LabResult labResult, LookupInformation lookup, ) => GenotypeResult( gene: labResult.gene, diff --git a/app/lib/common/models/userdata/gene_result.dart b/app/lib/common/models/userdata/lab_result.dart similarity index 65% rename from app/lib/common/models/userdata/gene_result.dart rename to app/lib/common/models/userdata/lab_result.dart index 5fd334e5..517542c8 100644 --- a/app/lib/common/models/userdata/gene_result.dart +++ b/app/lib/common/models/userdata/lab_result.dart @@ -5,20 +5,20 @@ import 'package:hive/hive.dart'; import 'package:http/http.dart'; import 'genotype.dart'; -part 'gene_result.g.dart'; +part 'lab_result.g.dart'; @HiveType(typeId: 1) @JsonSerializable() -class GeneResult implements Genotype { - GeneResult({ +class LabResult implements Genotype { + LabResult({ required this.gene, required this.variant, required this.phenotype, required this.allelesTested, }); - factory GeneResult.fromJson(dynamic json) => _$GeneResultFromJson(json); - Map toJson() => _$GeneResultToJson(this); + factory LabResult.fromJson(dynamic json) => _$LabResultFromJson(json); + Map toJson() => _$LabResultToJson(this); @override @HiveField(0) @@ -37,7 +37,7 @@ class GeneResult implements Genotype { } // assumes http reponse from lab server -List geneResultsFromHTTPResponse(Response resp) { +List labDataFromHTTPResponse(Response resp) { final json = jsonDecode(resp.body)['diplotypes'] as List; - return json.map(GeneResult.fromJson).toList(); + return json.map(LabResult.fromJson).toList(); } diff --git a/app/lib/common/models/userdata/userdata.dart b/app/lib/common/models/userdata/userdata.dart index d6bca927..39055653 100644 --- a/app/lib/common/models/userdata/userdata.dart +++ b/app/lib/common/models/userdata/userdata.dart @@ -34,7 +34,7 @@ class UserData { } @HiveField(0) - List? geneResults; + List? labData; @HiveField(1) // hive can't deal with sets so we have to use a list :( List? activeDrugNames; @@ -210,7 +210,7 @@ Future initUserData() async { // session which has not yet been written to local storage. try { Hive.registerAdapter(UserDataAdapter()); - Hive.registerAdapter(GeneResultAdapter()); + Hive.registerAdapter(LabResultAdapter()); Hive.registerAdapter(GenotypeResultAdapter()); } catch (e) { return; diff --git a/app/lib/common/utilities/genome_data.dart b/app/lib/common/utilities/genome_data.dart index 10342703..844fc2fe 100644 --- a/app/lib/common/utilities/genome_data.dart +++ b/app/lib/common/utilities/genome_data.dart @@ -24,12 +24,12 @@ Future _saveDiplotypeAndActiveDrugsResponse( Response response, ActiveDrugs activeDrugs, ) async { - // parse response to list of user's geneResults - final geneResults = - geneResultsFromHTTPResponse(response); + // parse response to list of user's labData + final labData = + labDataFromHTTPResponse(response); final activeDrugList = activeDrugsFromHTTPResponse(response); - UserData.instance.geneResults = geneResults; + UserData.instance.labData = labData; await UserData.save(); await activeDrugs.setList(activeDrugList); // invalidate cached drugs because lookups may have changed and we need to @@ -54,7 +54,7 @@ Future updateGenotypeResults() async { final genotypeResults = {}; // we know that labData is present because we check this in // shouldUpdateGenotypeResults - for (final labResult in UserData.instance.geneResults!) { + for (final labResult in UserData.instance.labData!) { final key = '${labResult.gene}__${labResult.variant}'; final lookup = lookupsHashMap[key]; if (lookup == null) continue; @@ -72,13 +72,13 @@ Future updateGenotypeResults() async { bool shouldUpdateGenotypeResults() { final genotypeResultsPresent = - UserData.instance.geneResults?.isNotEmpty ?? false; - final labDataPresent = UserData.instance.geneResults?.isNotEmpty ?? false; + UserData.instance.labData?.isNotEmpty ?? false; + final labDataPresent = UserData.instance.labData?.isNotEmpty ?? false; return (!genotypeResultsPresent || _isOutDated()) && labDataPresent; } bool shouldFetchDiplotypes() { - return UserData.instance.geneResults == null; + return UserData.instance.labData == null; } bool _isOutDated() {