Dental Teeth Selector ๐Ÿฆท

Flutter widget to select teeth for dental and medical use.

Supports Universal (ADA, 1โ€“32) and European (FDI / ISO 3950) numbering, plus fallen / missing teeth.

Preview ๐Ÿ“ธ

Universal numbering
Universal numbering preview
European numbering
European numbering preview

Fallen teeth preview ๐Ÿฆท

Fallen teeth preview

Install โฌ‡๏ธ

flutter pub add dental_teeth_selector

Usage ๐Ÿš€

Universal (default)

import 'package:dental_teeth_selector/dental_teeth_selector.dart';

DentalTeethSelector(
  numberingSystem: TeethNumberingSystem.universal, // default
  initiallySelected: const ['8', '9'],
  selectedColor: Colors.teal,
  toothColor: Colors.black,
  numberColor: Colors.black,
  rightLabel: 'Right', // between teeth 1 and 32
  leftLabel: 'Left',   // between teeth 16 and 17
  labelColor: Colors.black54,
  width: 320,
  height: 480,
  onSelected: (teeth) {
    // List<String> => ['8', '9']
  },
)

European (FDI)

DentalTeethSelector(
  numberingSystem: TeethNumberingSystem.european,
  initiallySelected: const ['11', '21'],
  onSelected: (teeth) {
    // List<String> => ['11', '21']
  },
)

Fallen teeth

DentalTeethSelector(
  showFallenTeeth: true,
  fallenTeeth: const ['1', '16'], // requires showFallenTeeth: true
  selectingFallenTeeth: markFallenMode, // determine of we are selecting falling teeth or not
  initiallySelected: const ['8', '9'], // must not overlap fallenTeeth
  fallenColor: Colors.red,
  onSelected: (teeth) { /* normal selection */ },
  onFallenChanged: (fallen) { /* updated fallen ids */ },
)

Numbering systems ๐Ÿ”ข

System Enum value Ids
Universal (ADA) TeethNumberingSystem.universal "1" โ€ฆ "32"
European (FDI / ISO 3950) TeethNumberingSystem.european "11"โ€“"18", "21"โ€“"28", "31"โ€“"38", "41"โ€“"48"

Helpers convertToothId / convertToothIds map between systems.

API โš™๏ธ

Parameter Description
numberingSystem universal (default) or european (FDI)
onSelected Callback with the current selected tooth ids
initiallySelected Tooth ids selected on first load (match numberingSystem)
showFallenTeeth Enable fallen / missing teeth (default false)
fallenTeeth Fallen tooth ids (requires showFallenTeeth)
selectingFallenTeeth Tap toggles fallen instead of selection
onFallenChanged Callback when fallen set changes
fallenColor Fill for fallen teeth (default red)
selectedColor Fill for selected teeth
toothColor SVG tooth outline stroke color
numberColor Tooth number color
rightLabel Text on patient's right (Universal 1/32, European 18/48)
leftLabel Text on patient's left (Universal 16/17, European 28/38)
labelColor Color for the jaw side labels
width / height Chart size
multiSelect Allow multiple teeth (default true)

Author ๐Ÿงก

Made With love by Emad Beltaje

Libraries

dental_teeth_selector
Interactive dental teeth selection widgets and helpers.