From 97e50546d050851dc3ded524911a28d4df759a78 Mon Sep 17 00:00:00 2001 From: tamara-slosarek Date: Mon, 24 Feb 2025 12:53:54 +0100 Subject: [PATCH] feat(app): update FAQ content --- .../included_content_disclaimer_card.dart | 42 +++++ .../disclaimers/cards/pgx_info_card.dart | 22 +++ .../professional_disclaimer_card.dart | 7 +- .../{ => cards}/puzzle_disclaimer_card.dart | 7 +- .../widgets/disclaimers/disclaimer_card.dart | 4 +- .../included_medications_disclaimer_card.dart | 35 ----- app/lib/common/widgets/module.dart | 7 +- app/lib/faq/pages/content.dart | 145 ++++++++---------- app/lib/faq/pages/faq.dart | 4 +- app/lib/l10n/app_en.arb | 42 +++-- app/lib/onboarding/pages/onboarding.dart | 22 +-- docs/User-instructions.html | 16 +- 12 files changed, 172 insertions(+), 181 deletions(-) create mode 100644 app/lib/common/widgets/disclaimers/cards/included_content_disclaimer_card.dart create mode 100644 app/lib/common/widgets/disclaimers/cards/pgx_info_card.dart rename app/lib/common/widgets/disclaimers/{ => cards}/professional_disclaimer_card.dart (56%) rename app/lib/common/widgets/disclaimers/{ => cards}/puzzle_disclaimer_card.dart (71%) delete mode 100644 app/lib/common/widgets/disclaimers/included_medications_disclaimer_card.dart diff --git a/app/lib/common/widgets/disclaimers/cards/included_content_disclaimer_card.dart b/app/lib/common/widgets/disclaimers/cards/included_content_disclaimer_card.dart new file mode 100644 index 00000000..f05acf0a --- /dev/null +++ b/app/lib/common/widgets/disclaimers/cards/included_content_disclaimer_card.dart @@ -0,0 +1,42 @@ +import '../../../module.dart'; + +class IncludedContentDisclaimerCard extends StatelessWidget { + const IncludedContentDisclaimerCard({super.key, required this.type}); + + final ListInclusionDescriptionType type; + + @override + Widget build(BuildContext context) { + final text = type == ListInclusionDescriptionType.genes + ? TextSpan( + text: context.l10n.included_content_disclaimer_text( + context.l10n.included_content_genes, + context.l10n.included_content_inclusion_genes, + ), + ) + : TextSpan( + children: [ + TextSpan( + text: context.l10n.included_content_disclaimer_text( + context.l10n.included_content_medications, + context.l10n.included_content_inclusion_medications, + ), + ), + TextSpan(text: '\n\n'), + TextSpan( + text: context.l10n.included_content_addition, + style: TextStyle(fontStyle: FontStyle.italic), + ), + ] + ); + return DisclaimerCard( + iconWidget: IncludedContentIcon( + type: type, + color: PharMeTheme.onSurfaceText, + size: defaultDisclaimerCardIconSize, + ), + iconPadding: EdgeInsets.all(PharMeTheme.smallSpace * 0.3), + textWidget: Text.rich(text), + ); + } +} \ No newline at end of file diff --git a/app/lib/common/widgets/disclaimers/cards/pgx_info_card.dart b/app/lib/common/widgets/disclaimers/cards/pgx_info_card.dart new file mode 100644 index 00000000..e9bd0071 --- /dev/null +++ b/app/lib/common/widgets/disclaimers/cards/pgx_info_card.dart @@ -0,0 +1,22 @@ +import '../../../module.dart'; + +class PgxInfoCard extends StatelessWidget { + @override + Widget build(BuildContext context) => DisclaimerCard( + icon: Icons.info, + iconPadding: EdgeInsets.all(PharMeTheme.smallSpace * 0.1), + textWidget: Text.rich( + TextSpan( + children: [ + TextSpan( + text: '${context.l10n.pgx_abbreviation} ', + style: TextStyle(fontWeight: FontWeight.bold), + ), + TextSpan( + text: context.l10n.pharmacogenomics_info_box_text, + ), + ] + ), + ), + ); +} \ No newline at end of file diff --git a/app/lib/common/widgets/disclaimers/professional_disclaimer_card.dart b/app/lib/common/widgets/disclaimers/cards/professional_disclaimer_card.dart similarity index 56% rename from app/lib/common/widgets/disclaimers/professional_disclaimer_card.dart rename to app/lib/common/widgets/disclaimers/cards/professional_disclaimer_card.dart index 91677db6..a3b734b9 100644 --- a/app/lib/common/widgets/disclaimers/professional_disclaimer_card.dart +++ b/app/lib/common/widgets/disclaimers/cards/professional_disclaimer_card.dart @@ -1,13 +1,8 @@ -import '../../module.dart'; +import '../../../module.dart'; class ProfessionalDisclaimerCard extends StatelessWidget { - const ProfessionalDisclaimerCard({super.key, this.elevation}); - - final double? elevation; - @override Widget build(BuildContext context) => DisclaimerCard( text: context.l10n.drugs_page_main_disclaimer_text, - elevation: elevation, ); } \ No newline at end of file diff --git a/app/lib/common/widgets/disclaimers/puzzle_disclaimer_card.dart b/app/lib/common/widgets/disclaimers/cards/puzzle_disclaimer_card.dart similarity index 71% rename from app/lib/common/widgets/disclaimers/puzzle_disclaimer_card.dart rename to app/lib/common/widgets/disclaimers/cards/puzzle_disclaimer_card.dart index 003d03df..5ec690c6 100644 --- a/app/lib/common/widgets/disclaimers/puzzle_disclaimer_card.dart +++ b/app/lib/common/widgets/disclaimers/cards/puzzle_disclaimer_card.dart @@ -1,17 +1,12 @@ import 'package:font_awesome_flutter/font_awesome_flutter.dart'; -import '../../module.dart'; +import '../../../module.dart'; class PuzzleDisclaimerCard extends StatelessWidget { - const PuzzleDisclaimerCard({super.key, this.elevation}); - - final double? elevation; - @override Widget build(BuildContext context) => DisclaimerCard( icon: FontAwesomeIcons.puzzlePiece, iconPadding: EdgeInsets.all(PharMeTheme.smallSpace * 0.4), text: context.l10n.drugs_page_puzzle_disclaimer_text, - elevation: elevation, ); } \ No newline at end of file diff --git a/app/lib/common/widgets/disclaimers/disclaimer_card.dart b/app/lib/common/widgets/disclaimers/disclaimer_card.dart index d1a7e0d3..7f90e7fd 100644 --- a/app/lib/common/widgets/disclaimers/disclaimer_card.dart +++ b/app/lib/common/widgets/disclaimers/disclaimer_card.dart @@ -13,7 +13,6 @@ class DisclaimerCard extends StatelessWidget { this.onClick, this.iconPadding, this.color, - this.elevation, }); final IconData? icon; @@ -25,13 +24,12 @@ class DisclaimerCard extends StatelessWidget { final GestureTapCallback? onClick; final EdgeInsets? iconPadding; final Color? color; - final double? elevation; @override Widget build(BuildContext context) { final widget = Card( color: color ?? PharMeTheme.surfaceColor, - elevation: elevation, + elevation: 0, shape: RoundedRectangleBorder( borderRadius: BorderRadius.circular(12), ), diff --git a/app/lib/common/widgets/disclaimers/included_medications_disclaimer_card.dart b/app/lib/common/widgets/disclaimers/included_medications_disclaimer_card.dart deleted file mode 100644 index a4303dae..00000000 --- a/app/lib/common/widgets/disclaimers/included_medications_disclaimer_card.dart +++ /dev/null @@ -1,35 +0,0 @@ -import '../../module.dart'; - -class IncludedMedicationsDisclaimerCard extends StatelessWidget { - const IncludedMedicationsDisclaimerCard({super.key, this.elevation}); - - final double? elevation; - - @override - Widget build(BuildContext context) => DisclaimerCard( - iconWidget: IncludedContentIcon( - type: ListInclusionDescriptionType.medications, - color: PharMeTheme.onSurfaceText, - size: defaultDisclaimerCardIconSize, - ), - iconPadding: EdgeInsets.all(PharMeTheme.smallSpace * 0.3), - textWidget: Text.rich( - TextSpan( - children: [ - TextSpan( - text: context.l10n.included_content_disclaimer_text( - context.l10n.included_content_medications, - context.l10n.included_content_inclusion_medications, - ), - ), - TextSpan(text: '\n\n'), - TextSpan( - text: context.l10n.included_content_addition, - style: TextStyle(fontStyle: FontStyle.italic), - ), - ] - ), - ), - elevation: elevation, - ); -} \ No newline at end of file diff --git a/app/lib/common/widgets/module.dart b/app/lib/common/widgets/module.dart index 27c403ee..04ac8b33 100644 --- a/app/lib/common/widgets/module.dart +++ b/app/lib/common/widgets/module.dart @@ -4,11 +4,12 @@ export 'dialog_action.dart'; export 'dialog_content_text.dart'; export 'dialog_wrapper.dart'; export 'direction_button.dart'; +export 'disclaimers/cards/included_content_disclaimer_card.dart'; +export 'disclaimers/cards/pgx_info_card.dart'; +export 'disclaimers/cards/professional_disclaimer_card.dart'; +export 'disclaimers/cards/puzzle_disclaimer_card.dart'; export 'disclaimers/disclaimer_card.dart'; export 'disclaimers/disclaimer_row.dart'; -export 'disclaimers/included_medications_disclaimer_card.dart'; -export 'disclaimers/professional_disclaimer_card.dart'; -export 'disclaimers/puzzle_disclaimer_card.dart'; export 'drug_activity_selection.dart'; export 'drug_list/builder.dart'; export 'drug_list/cubit.dart'; diff --git a/app/lib/faq/pages/content.dart b/app/lib/faq/pages/content.dart index edb73071..b13d909a 100644 --- a/app/lib/faq/pages/content.dart +++ b/app/lib/faq/pages/content.dart @@ -9,63 +9,64 @@ class FaqSection { final List questions; } -abstract class FaqQuestion { +class FaqQuestion { const FaqQuestion({ required this.question, required this.answer, + this.answerWidgets, + this.widgetsBeforeText = false, }); final String question; - final dynamic answer; -} + final String answer; + final Iterable? answerWidgets; + final bool widgetsBeforeText; -class FaqTextAnswerQuestion extends FaqQuestion { - const FaqTextAnswerQuestion({ - required super.question, - required String super.answer, - }); -} - -class FaqWidgetAnswerQuestion extends FaqQuestion { - const FaqWidgetAnswerQuestion({ - required super.question, - required Widget super.answer, - }); + Widget get answerWidget { + final textContent = LargeMarkdownBody(data: answer); + if (answerWidgets == null) return textContent; + final answerChildren = widgetsBeforeText + ? [ + ...answerWidgets!, + SizedBox(height: PharMeTheme.mediumSpace), + textContent, + ] + : [ + textContent, + SizedBox(height: PharMeTheme.smallSpace), + ...answerWidgets!, + ]; + return Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: answerChildren, + ); + } } List getFaqContent() => [ FaqSection( title: (context) => context.l10n.faq_section_title_pharme, questions: [ - (context) => FaqWidgetAnswerQuestion( + (context) => FaqQuestion( question: context.l10n.faq_question_pharme_function, - answer: Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Text(context.l10n.faq_answer_pharme_function), - SizedBox(height: PharMeTheme.smallSpace), - PuzzleDisclaimerCard(elevation: 0), - SizedBox(height: PharMeTheme.smallSpace * 0.5), - IncludedMedicationsDisclaimerCard(elevation: 0), - ], - ), + answer: context.l10n.faq_answer_pharme_function, + answerWidgets: [ + PuzzleDisclaimerCard(), + IncludedContentDisclaimerCard( + type: ListInclusionDescriptionType.medications, + ), + ], ), - (context) => FaqWidgetAnswerQuestion( + (context) => FaqQuestion( question: context.l10n.faq_question_pharme_hcp, - answer: Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Text(context.l10n.faq_answer_pharme_hcp), - SizedBox(height: PharMeTheme.smallSpace), - ProfessionalDisclaimerCard(elevation: 0), - ], - ), + answer: context.l10n.faq_answer_pharme_hcp, + answerWidgets: [ProfessionalDisclaimerCard()], ), - (context) => FaqTextAnswerQuestion( + (context) => FaqQuestion( question: context.l10n.faq_question_pharme_data_source, answer: context.l10n.faq_answer_pharme_data_source, ), - (context) => FaqTextAnswerQuestion( + (context) => FaqQuestion( question: context.l10n.faq_question_data_security, answer: context.l10n.faq_answer_data_security, ), @@ -74,70 +75,56 @@ List getFaqContent() => [ FaqSection( title: (context) => context.l10n.faq_section_title_pgx, questions: [ - (context) => FaqTextAnswerQuestion( + (context) => FaqQuestion( question: context.l10n.faq_question_pgx_what, answer: context.l10n.faq_answer_pgx_what, + answerWidgets: [PgxInfoCard()], + widgetsBeforeText: true, ), - (context) => FaqTextAnswerQuestion( + (context) => FaqQuestion( question: context.l10n.faq_question_pgx_why, answer: context.l10n.faq_answer_pgx_why, + answerWidgets: [PuzzleDisclaimerCard()], ), - (context) => FaqTextAnswerQuestion( + (context) => FaqQuestion( question: context.l10n.faq_question_adr_factors, answer: context.l10n.faq_answer_adr_factors, ), - (context) => FaqTextAnswerQuestion( + (context) => FaqQuestion( question: context.l10n.faq_question_guidelines_are_developing, answer: context.l10n.faq_answer_guidelines_are_developing, + answerWidgets: [ + IncludedContentDisclaimerCard( + type: ListInclusionDescriptionType.genes, + ), + ], ), - (context) => FaqWidgetAnswerQuestion( + (context) => FaqQuestion( question: context.l10n.faq_question_genetics_info, - answer: Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Text(context.l10n.faq_answer_genetics_info), - SizedBox(height: PharMeTheme.smallSpace * 0.5), - Hyperlink( - text: geneticInformationUrl.toString(), - onTap: openFurtherGeneticInformation, - ), - SizedBox(height: PharMeTheme.smallSpace * 0.5), - Text('\n${context.l10n.consult_text}'), - ], - ), + answer: context.l10n.faq_answer_genetics_info, ), - (context) => FaqWidgetAnswerQuestion( + (context) => FaqQuestion( question: context.l10n.faq_question_which_medications, - answer: Column( - children: [ - Text(context.l10n.faq_answer_which_medications), - SizedBox(height: PharMeTheme.smallSpace * 0.5), - UnorderedList( - context.l10n.faq_answer_which_medications_examples - .split('; ') - .map((example) => example.capitalize()).toList(), - ), - ], - ), + answer: context.l10n.faq_answer_which_medications, + answerWidgets: [ + IncludedContentDisclaimerCard( + type: ListInclusionDescriptionType.medications, + ), + ], + widgetsBeforeText: true, ), - (context) => FaqWidgetAnswerQuestion( + (context) => FaqQuestion( question: context.l10n.faq_question_phenoconversion, - answer: Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Text(context.l10n.faq_answer_phenoconversion), - SizedBox(height: PharMeTheme.smallSpace), - ...inhibitableGenes.map( - (geneName) => GeneModulatorList(geneName: geneName).widget, - ), - ], + answer: context.l10n.faq_answer_phenoconversion, + answerWidgets: inhibitableGenes.map( + (geneName) => GeneModulatorList(geneName: geneName).widget, ), ), - (context) => FaqTextAnswerQuestion( + (context) => FaqQuestion( question: context.l10n.faq_question_family, answer: context.l10n.faq_answer_family, ), - (context) => FaqTextAnswerQuestion( + (context) => FaqQuestion( question: context.l10n.faq_question_share, answer: context.l10n.faq_answer_share, ), diff --git a/app/lib/faq/pages/faq.dart b/app/lib/faq/pages/faq.dart index e93bdd58..df2b0b06 100644 --- a/app/lib/faq/pages/faq.dart +++ b/app/lib/faq/pages/faq.dart @@ -130,9 +130,7 @@ class FaqPage extends HookWidget { right: PharMeTheme.mediumSpace, bottom: PharMeTheme.smallSpace, ), - title: question is FaqTextAnswerQuestion - ? LargeMarkdownBody(data: question.answer) - : question.answer, + title: question.answerWidget, ), ], ), diff --git a/app/lib/l10n/app_en.arb b/app/lib/l10n/app_en.arb index 423864e3..440aea19 100644 --- a/app/lib/l10n/app_en.arb +++ b/app/lib/l10n/app_en.arb @@ -667,47 +667,43 @@ "comprehension_survey_button_text": "Continue to survey", "@comprehension_survey_button_text": {}, - "faq_section_title_pgx": "PGx (Pharmacogenomics)", + "faq_section_title_pgx": "About Gene Testing and PGx (Pharmacogenomics)", "@faq_section_title_pgx": {}, - "faq_question_pgx_what": "What is pharmacogenomics?", + "faq_question_pgx_what": "What is PGx (pharmacogenomics)?", "@faq_question_pgx_what": {}, - "faq_answer_pgx_what": "PGx (pharmacogenomics) is the study of how your genes (DNA) affect your response to medications.\n\nYour DNA is the blueprint that tells your body how to make different enzymes. These enzymes play an important role in how your body processes and responds to medications.\n\nSome enzymes help transport medications through your body, while others make medications more or less strong. Depending on the versions of the genes you have, you may make more or less of certain enzymes, or they function more or less well.", + "faq_answer_pgx_what": "Think of your genes like a recipe book that tells your body how to make important proteins. These proteins help:\n- Move medications through your body\n- Break down medications to digest them to less active versions\n- Activate medications my changing them to make them work in your body\n- Depending on the gene version you carry, these proteins may work faster or slower than expected.\n\nFor example, if a protein that activates a medication works slower than expected, the medication may not work properly for you because you do not have enough working versions of the medication in your body. In such a case, you might need a higher dose of the medication or might need to use a different medication.", "@faq_answer_pgx_what": {}, - "faq_question_pgx_why": "Why is pharmacogenomics important?", + "faq_question_pgx_why": "Why is PGx (pharmacogenomics) important?", "@faq_question_pgx_why": {}, - "faq_answer_pgx_why": "Pharmacogenomics is important because it helps to predict those who will respond well to medications and those who may have side effects. With this information we can better select the right medication and dose to avoid side effects.\n\nHowever, this information ONLY is like one puzzle piece in the big picture of how well a medication works for you.", + "faq_answer_pgx_why": "PGx helps pharmacists and doctors pick the right medications and doses for you. It can help avoid bad reactions to medications before you even take them. But remember:", "@faq_answer_pgx_why": {}, - "faq_question_adr_factors": "Which factors can lead to adverse drug reactions?", + "faq_question_adr_factors": "What can cause bad reactions to medications?", "@faq_question_adr_factors": {}, - "faq_answer_adr_factors": "An adverse drug reaction is a harmful response to a medication.\n\nWhen your immune system mistakes a medication for a threat, it can trigger an allergic reaction, causing symptoms from stomach upset over hives to severe anaphylaxis.\n\nYour genes also play an important role in how your body processes and responds to medications.\n\nWhile some reactions are predictable, others are rare and unexpected. These rare reactions, called idiosyncratic reactions, are individual reactions with not (yet) understood mechanisms that usually do not occur in most patients.\n\nYou can also have multiple types of adverse reactions at the same time, for example a genetic difference that affects how your body processes a drug AND an allergic reaction.\n\nConsult your pharmacist or doctor for more information.", + "faq_answer_adr_factors": "You might have a bad reaction to medication for several reasons:\n- **Allergies**: Sometimes your body thinks a medication is harmful and fights against it. This can cause an upset stomach, itchy skin, or in rare cases, very serious reactions.\n- **Genes**: Your genes affect how your body handles medications.\n- **Unknown causes**: Sometimes people have rare reactions that pharmacists and doctors don't yet understand.\n\nYou can have more than one type of reaction at the same time. For example, you might have both an allergy AND a reaction because of your genes.", "@faq_answer_adr_factors": {}, - "faq_question_guidelines_are_developing": "Do my pharmacogenomic results in PharMe cover all known pharmacogenomic causes of adverse reactions?", + "faq_question_guidelines_are_developing": "Does PharMe show all possible gene-related reactions?", "@faq_question_guidelines_are_developing": {}, - "faq_answer_guidelines_are_developing": "No. Scientists are still discovering new genetic differences that affect medications.\n\nFurther, different labs might interpret genetic test results differently because this science is still developing.\n\nPharMe relies on well-established CPIC® and FDA guidelines to deliver standardized and up-to-date pharmacogenomic information to you.\n\nPlease also note that pharmacogenomics is only one factor that can cause adverse reactions, like like one puzzle piece in the big picture of how well a medication works for you.", + "faq_answer_guidelines_are_developing": "_No. Scientists are still finding new ways that genes affect medications._\n\nDifferent labs might also interpret gene tests differently as this is a new science.\n\nPharMe uses trusted guidelines from medical experts (CPIC and FDA) to give you the most up-to-date information. Therefore:", "@faq_answer_guidelines_are_developing": {}, - "faq_question_genetics_info": "I need help with understanding what my gene results mean.", + "faq_question_genetics_info": "What do my gene results mean?", "@faq_question_genetics_info": {}, - "faq_answer_genetics_info": "Your gene results consist of two types of information:\n\nThe genotype tells you about your DNA and which version of a gene you have. You carry two copies for one gene, called “alleles”, each inherited from one of your parents.\n\nThe phenotype explains how your DNA affects your body. In pharmacogenomics, it usually shows if a gene version might cause a bad reaction to a medication or how fast your body processes a drug. Processing here means your body either breaks down the medication into weaker forms or changes it into a stronger form.\n\nTo learn more about genetics, we recommend MedlinePlus, a service of the National Library of Medicine:", + "faq_answer_genetics_info": "Your results show two things:\n- Your gene versions (called **genotype**): You have two copies for one gene, one from your mom and one from your dad. One gene copy is called an \"allele\".\n- How your genes affect your body (called **phenotype**): in PGx (pharmacogenomics), it usually shows if a gene version might cause a bad reaction to a medication or how fast your body processes a drug.", "@faq_answer_genetics_info": {}, - "faq_question_which_medications": "Which medications are included in PharMe?", + "faq_question_which_medications": "Which medications does PharMe include?", "@faq_question_which_medications": {}, - "faq_answer_which_medications": "PharMe includes medications that are known to have meaningful interactions with genes. This knowledge is science-based, according to CPIC® and FDA guidelines.\n\nExamples of medication types with known gene interactions include:", - "faq_answer_which_medications_examples": "anti-clotting medications (like clopidogrel and warfarin); antidepressants (like sertraline, citalopram, and paroxetine); anti-cholesterol medications (like simvastatin and atorvastatin), acid reducers (like pantoprazole and omeprazole); pain killers (like codeine, tramadol, and ibuprofen); antifungals (like voriconazole); medications that suppress the immune system (like tacrolimus); anti-cancer medications (like fluorouracil and irinotecan)", - "@faq_answer_which_medications_examples": { - "description": "A list separated by semicolon and space; this can be used to split the text in the code to format a list" - }, + "faq_answer_which_medications": "Some examples are medications for:\n- **Blood clots**\n- **Depression**\n- **High cholesterol**\n- **Acid reflux**\n- **Pain**\n- **Fungal infections**\n- **Immune system**\n- **Cancer**", "@faq_answer_which_medications": {}, - "faq_question_phenoconversion": "Why can my results change when I take certain medications?", + "faq_question_phenoconversion": "Can other medications affect how my body processes medications?", "@faq_question_phenoconversion": {}, - "faq_answer_phenoconversion": "Certain medications known as modulators can change how your body responds to medications. Typically, modulators function in two ways: they either slow down the activity of a gene (known as inhibitors) or speed up the activity of a gene (known as inducers).\n\nPharMe currently only supports changing your gene result if you are taking strong modulators. For moderate modulators, a warning is shown that the gene result may need to be adapted.\n\nThe following modulators are included:", + "faq_answer_phenoconversion": "Yes. Some medications can change how your body handles other medications. They can slow down or speed up how your body processes medications.\n\nMedications that slow down how your body processes medications are called _inhibitors_. Medications that speed these processes up are called _inducers_. They can have a strong, moderate, or weak effect on genes.\n\nPharMe will warn you when a current medication has an effect on how your body processes medications.\n\nIf you are taking any of the below medications, PharMe will show an asterisk (*) next to affected gene results and explain how it changes the processing of other medications. Consult your pharmacist or doctor for more information in such cases.\n\nPharMe currently only includes strong and moderate inhibitors:", "@faq_answer_phenoconversion": {}, - "faq_question_family": "Will my results affect my family members?", + "faq_question_family": "Are my results relevant for my family?", "@faq_question_family": {}, - "faq_answer_family": "Yes, since this is a genetic test, it is possible that your results were passed down to you and your siblings from your parents and you will also pass them down to your children.", + "faq_answer_family": "Yes. Since genes run in families:\n- You got your genes from your parents\n- Your children will get some of their genes from you\n- Your brothers and sisters might have similar genes", "@faq_answer_family": {}, - "faq_question_share": "Who can I share my results with?", + "faq_question_share": "Who should I share my results with?", "@faq_question_share": {}, - "faq_answer_share": "We recommend that you share your results with your pharmacists, doctors, and close family members such as parents, siblings, and children.\n\nTo create a PDF that you can share with a healthcare professional, go to a medication page, and use the share button in the upper right corner.", + "faq_answer_share": "Share your results with:\n- Your doctors\n- Your pharmacists\n- Close family members\n\n_To share with healthcare providers, use the share button (top right of medication pages) to create a PDF._", "@faq_answer_share": {}, "faq_section_title_pharme": "About the PharMe App", diff --git a/app/lib/onboarding/pages/onboarding.dart b/app/lib/onboarding/pages/onboarding.dart index 550739ae..923a64ce 100644 --- a/app/lib/onboarding/pages/onboarding.dart +++ b/app/lib/onboarding/pages/onboarding.dart @@ -35,23 +35,7 @@ class OnboardingPage extends HookWidget { header: context.l10n.onboarding_3_header, text: context.l10n.onboarding_3_text, color: PharMeTheme.sinaiPurple, - bottom: DisclaimerCard( - icon: Icons.info, - iconPadding: EdgeInsets.all(PharMeTheme.smallSpace * 0.1), - textWidget: Text.rich( - TextSpan( - children: [ - TextSpan( - text: '${context.l10n.pgx_abbreviation} ', - style: TextStyle(fontWeight: FontWeight.bold), - ), - TextSpan( - text: context.l10n.pharmacogenomics_info_box_text, - ), - ] - ), - ), - ), + bottom: PgxInfoCard(), ), OnboardingSubPage( availableHeight: @@ -60,7 +44,9 @@ class OnboardingPage extends HookWidget { header: context.l10n.onboarding_4_header, text: context.l10n.onboarding_4_already_tested_text, color: Colors.grey.shade600, - bottom: IncludedMedicationsDisclaimerCard(), + bottom: IncludedContentDisclaimerCard( + type: ListInclusionDescriptionType.medications, + ), ), OnboardingSubPage( availableHeight: diff --git a/docs/User-instructions.html b/docs/User-instructions.html index 19c75b68..f7ff9619 100644 --- a/docs/User-instructions.html +++ b/docs/User-instructions.html @@ -676,13 +676,19 @@

1.4 How does PharMe protect my gene information?

-

2. About Gene Testing and PGx (pharmacogenomics)

+

2. About Gene Testing and PGx (Pharmacogenomics)

2.1 What is PGx (pharmacogenomics)?

-

- PGx (short for pharma-co-genomics) explores how your genes affect how - medications work in your body. -

+
+
+ info +
+
+ PGx + (pharma-co-genomics) is the medical field of how your genes + affect how medications work in your body. +
+

Think of your genes like a recipe book that tells your body how to make important proteins. These proteins help: