SP6 Task 4 (§7): the "Fillings and restorative" panel's informational
subcaries-summary line — one entry per SELECTED tooth that has recurrent
caries (see subcariesLettersForTooth), in ALL_TEETH order, styled
"{FDI} ({letters})" and joined with ", ". Uses the singular phrasing
(filling.subcariesSummarySingle) for exactly one such tooth, the plural
(filling.subcariesSummaryMultiple) for more than one, and returns "" (no
line — purely informational, hidden when empty) when none of the selected
teeth have a recurrent-caries surface.
Pure/testable: takes the selected tooth numbers and a state lookup instead
of reading the module's selectedTeeth/toothState globals directly.
SP6 Task 4 (§7): the "Fillings and restorative" panel's informational subcaries-summary line — one entry per SELECTED tooth that has recurrent caries (see subcariesLettersForTooth), in
ALL_TEETHorder, styled "{FDI} ({letters})" and joined with ", ". Uses the singular phrasing (filling.subcariesSummarySingle) for exactly one such tooth, the plural (filling.subcariesSummaryMultiple) for more than one, and returns "" (no line — purely informational, hidden when empty) when none of the selected teeth have a recurrent-caries surface.Pure/testable: takes the selected tooth numbers and a state lookup instead of reading the module's
selectedTeeth/toothStateglobals directly.