From 9b1be295aacd03d917f83b884e8a9a2a290a87f1 Mon Sep 17 00:00:00 2001 From: tamslo Date: Fri, 29 Nov 2024 00:09:04 +0100 Subject: [PATCH] feat(app): check for currently shown genes if inhibitor --- app/lib/report/pages/report.dart | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/app/lib/report/pages/report.dart b/app/lib/report/pages/report.dart index dfbdbfd6..09c3e820 100644 --- a/app/lib/report/pages/report.dart +++ b/app/lib/report/pages/report.dart @@ -56,16 +56,20 @@ class ReportPage extends HookWidget { } return allAffectedDrugs; } - - List _buildGeneCards({ List? drugsToFilterBy }) { - final userGenotypes = drugsToFilterBy != null + + Iterable _getRelevantGenotypes(List? drugSubset) { + return drugSubset != null ? UserData.instance.genotypeResults!.values.filter((genotypeResult) => _getAffectedDrugs( genotypeResult.key.value, - drugSubset: drugsToFilterBy, + drugSubset: drugSubset, ).isNotEmpty ) : UserData.instance.genotypeResults!.values; + } + + List _buildGeneCards({ List? drugsToFilterBy }) { + final userGenotypes = _getRelevantGenotypes(drugsToFilterBy); final warningLevelCounts = {}; for (final genotypeResult in userGenotypes) { warningLevelCounts[genotypeResult.key.value] = {}; @@ -122,8 +126,8 @@ class ReportPage extends HookWidget { final geneCards = _buildGeneCards( drugsToFilterBy: currentListOption.drugSubset, ); - // TODO: only for currently shown genes - final hasActiveInhibitors = activeDrugs.names.any(isInhibitor); + final relevantGenes = _getRelevantGenotypes(currentListOption.drugSubset); + final hasActiveInhibitors = relevantGenes.any((genotypeResult) => activeDrugs.names.any((drug) => isInhibited(genotypeResult, drug: drug))); return PopScope( canPop: false, child: unscrollablePageScaffold(