@@ -280,7 +280,7 @@ export const getHealthAnswers = (vaccine, healthCondition) => {
280280 * @returns {string } Triage note
281281 */
282282export const getTriageNote = ( healthAnswers , healthCondition ) => {
283- if ( hasAnswersNeedingTriage ( healthAnswers ) ) {
283+ if ( countAnswersNeedingTriage ( healthAnswers ) ) {
284284 return healthConditions [ healthCondition ] . triageNote
285285 }
286286}
@@ -338,19 +338,17 @@ export const getRefusalReason = (type, decision) => {
338338 * Has health answers needing triage
339339 *
340340 * @param {object } healthAnswers - Health answers
341- * @returns {boolean } Has health answers needing triage
341+ * @returns {number } Number of health answers needing triage
342342 */
343- export const hasAnswersNeedingTriage = ( healthAnswers ) => {
343+ export const countAnswersNeedingTriage = ( healthAnswers ) => {
344344 if ( ! healthAnswers ) {
345- return false
345+ return 0
346346 }
347347
348- // Ignore answer to asthma question, as only its sub-questions get triaged
349- const nonConditionalAnswers = Object . fromEntries (
350- Object . entries ( healthAnswers ) . filter ( ( [ key ] ) => key !== 'asthma' )
351- )
348+ const ignoredKeys = new Set ( [ 'asthma' ] )
352349
353- return Object . values ( nonConditionalAnswers ) . find (
354- ( answer ) => answer . answer === 'Yes'
355- )
350+ return Object . entries ( healthAnswers )
351+ . filter ( ( [ key ] ) => ! ignoredKeys . has ( key ) )
352+ . flatMap ( ( [ , answer ] ) => ( Array . isArray ( answer ) ? answer : [ answer ] ) )
353+ . filter ( ( answer ) => answer . answer === 'Yes' ) . length
356354}
0 commit comments