React Advanced Odontogram - v2.2.1
    Preparing search index...

    Function getToothRecessionType

    • SP-perio PG-C Task 1: the Cairo 2011 recession-TYPE classification, DERIVED purely from the already-charted per-site CAL (getToothCal) plus the buccal gingival margin (perio.gm.get("B")) — never stored, no new state/payload/FHIR axis (parity byte-identical). Pure + read-only: this is the single source of truth for a tooth's RT, mirroring how getToothCal is the single source of truth for CAL.

      Cairo classifies BUCCAL recession by comparing it to the WORSE (deeper) of the two adjacent interproximal (mesio-/disto-buccal) attachment losses:

      • "none": no buccal recession — gm.B is <= 0 (the margin is at/ coronal to the CEJ, i.e. a pseudopocket, not recession) OR the buccal site simply isn't charted (gm.B undefined). Absence is treated the same as "no recession", not "unknown", since RT is a display-only derivation with no "uncharted" state of its own to represent.
      • "rt1": buccal recession present, but the interproximal CAL (max(CAL[MB], CAL[DB])) is below CAIRO_RT1_INTERPROX_THRESHOLD_MM — essentially no interproximal attachment/papilla loss. An uncharted MB/DB site contributes 0 to that max (the most conservative/least severe reading), so "buccal recession + nothing charted interproximally" also reads as RT1.
      • "rt2": interproximal CAL loss is <= the buccal CAL loss — the papilla still reaches (or nearly reaches) the contact point.
      • "rt3": interproximal CAL loss EXCEEDS the buccal CAL loss — severe papilla loss, apical to the buccal margin.

      Parameters

      • toothNo: number

      Returns RecessionType