/** * @param Questionnaire $questionnaire */ protected function buildAmberMovingNarrative(Questionnaire $questionnaire) { $prefix = 'moving_amber'; switch (true) { case AmberMovingGreenAerobicRedStrengthSpecification::isSatisfiedBy($questionnaire): $suffix = '_aerobic_green_strength_red'; break; case AmberMovingAmberAerobicLowDaysGreenStrengthSpecification::isSatisfiedBy($questionnaire): $suffix = '_aerobic_amber_days_strength_green'; break; case AmberMovingAmberAerobicLowDurationGreenStrengthSpecification::isSatisfiedBy($questionnaire): $suffix = '_aerobic_amber_duration_strength_green'; break; case AmberMovingAmberAerobicLowDaysRedStrengthSpecification::isSatisfiedBy($questionnaire): $suffix = '_aerobic_amber_days_strength_red'; break; default: $suffix = '_aerobic_amber_duration_strength_red'; break; } $this->narrative->addMessages(self::SECTION_NAME, array($prefix . $suffix)); $symptom = SymptomGenerator::generateRelatedSymptom($questionnaire->getAboutYou()->getFeelings()->getNormalisedValues()); $value = $questionnaire->getAboutYou()->getFeelings()->getNormalisedValues()[$symptom]; $this->generateSymptomMessages($value, self::SECTION_NAME, 'amber', $symptom); }
/** * @param Questionnaire $questionnaire */ protected function buildAmberEatingNarrative(Questionnaire $questionnaire) { $this->narrative->addMessages(self::SECTION_NAME, array('eating_amber')); $symptom = SymptomGenerator::generateRelatedSymptom($questionnaire->getAboutYou()->getFeelings()->getNormalisedValues(), self::$exclusions); $value = $questionnaire->getAboutYou()->getFeelings()->getNormalisedValues()[$symptom]; $this->generateSymptomMessages($value, self::SECTION_NAME, 'amber', $symptom); }
/** * @param Questionnaire $questionnaire */ protected function buildRedSmokingBehaviours(Questionnaire $questionnaire) { $symptom = SymptomGenerator::generateRelatedSymptom($questionnaire->getAboutYou()->getFeelings()->getNormalisedValues()); if (SmokingIsOccasionalSpecification::isSatisfiedBy($questionnaire)) { $this->getMessageForOccasionalSmoker($questionnaire->getAboutYou()->getFeelings()->getNormalisedValues()[$symptom], $symptom); } else { $this->getMessageForSmoker($questionnaire->getAboutYou()->getFeelings()->getNormalisedValues()[$symptom], $symptom); } }
public function testICanExcludeAndGetTheSameSymptom() { $questionnaire = new Questionnaire(new Person()); $possibles = $questionnaire->getAboutYou()->getFeelings()->getNormalisedValues(); $exclusions = array_keys($possibles); array_shift($exclusions); $expected = array_keys($possibles)[0]; $this->assertEquals($expected, SymptomGenerator::generateRelatedSymptom($possibles, $exclusions)); }
/** * @param Questionnaire $questionnaire * @param string $rag * @param string $suffix */ protected function buildDrinkingBehaviours(Questionnaire $questionnaire, $rag, $suffix = '') { $symptom = SymptomGenerator::generateRelatedSymptom($questionnaire->getAboutYou()->getFeelings()->getNormalisedValues()); $value = $questionnaire->getAboutYou()->getFeelings()->getNormalisedValues()[$symptom]; if ($symptom !== 'weight') { $this->generateSymptomMessages($value, self::SECTION_NAME, $rag, $symptom, $suffix); } else { $gender = $suffix . '_' . Person::GENDER_FEMALE; if (RespondentIsMaleSpecification::isSatisfiedBy($questionnaire)) { $gender = $suffix . '_' . Person::GENDER_MALE; } $this->generateSymptomMessages($value, self::SECTION_NAME, $rag, $symptom, $gender); } }