๐ Full documentation is available per language:
๐ฌ๐ง English ยท ๐ฉ๐ช Deutsch ยท ๐ช๐ธ Espaรฑol ยท ๐ซ๐ท Franรงais ยท ๐ฎ๐น Italiano ยท ๐ญ๐บ Magyar ยท ๐ต๐ฑ Polski ยท ๐ง๐ท Portuguรชs (BR) ยท ๐ธ๐ฐ Slovenฤina ยท ๐ท๐บ ะ ัััะบะธะน ยท ๐ธ๐ฆ ุงูุนุฑุจูุฉ ยท ๐จ๐ณ ็ฎไฝไธญๆ
An interactive, SVG-based dental odontogram (dental chart) editor for React + TypeScript โ with a full periodontal charting module, multi-surface caries/restorations, endodontic/prosthetic states, FDI/Universal/Palmer numbering, HL7 FHIR R4 export/import, optional ICDAS scoring, and a 12-language UI.
๐ Live demo: https://react-advanced-odontogram.vercel.app/
๐ API docs: https://zoliqua.github.io/React-Advanced-Odontogram/
๐
ฐ๏ธ Angular version: an official Angular port, Angular Advanced Odontogram (angular-advanced-odontogram on npm), is available โ JSON and FHIR R4 exports round-trip between the two libraries.

npm install react-advanced-odontogram react react-dom
Requirements: React 18 or 19 (peer dependency); a bundler that supports the exports field and ESM (Vite, webpack 5, Next.js, Rollup, esbuild, Parcel). The package is ESM-only.
Render OdontogramShell and import the stylesheet once:
import { OdontogramShell } from "react-advanced-odontogram";
import "react-advanced-odontogram/style.css";
export function Chart() {
return <OdontogramShell language="en" numberingSystem="FDI" darkMode={false} />;
}
The imperative state API, the standalone PerioChart component, the guided tour, and all public types are named exports from the same entry point (OdontogramShell is also the default export):
import {
OdontogramShell, // also the default export
PerioChart, // standalone periodontal chart
getOdontogramSummary,
exportStatus, importStatus, // JSON state serialization / hydration
exportFhir, exportSvg, exportImage,
setReadOnly, startIntroTour,
} from "react-advanced-odontogram";
SSR: the component is client-only (reads the DOM on mount). In Next.js render it in a Client Component (
"use client") or via a client-only dynamic import. Assets are self-contained โ tooth/icon SVGs are inlined into the bundle; there is no runtime asset fetch to configure. One instance per page in this release (engine state is a module-level singleton).

Per-site probing depth, gingival margin, bleeding on probing (+ suppuration) at the six standard sites, with derived CAL, recession and whole-mouth %BOP; a graphical full-mouth perio chart (CEJ line, mm guide grid, pocket/margin curve, anatomical diamond index tiles), 2017 staging/grading, and per-site FHIR export (LOINC periodontal panel 74029-0). Available as an Odontogram | Periodontal Status view toggle and as a separately-invocable PerioChart component. Periodontal data now round-trips through FHIR import too, not only through the JSON payload โ suppuration is the one exception and stays JSON-only.
Condition export/import round-tripK04.0 Pulpitis) and rows are sorted by code. Each row has an exclude toggle (drops the diagnosis from the FHIR export but keeps it on the chart) and a delete (ร) that removes the diagnosis and its finding on the tooth. Adding a diagnosis from the picker writes the underlying chart finding, so the glyph appears at once.id and an absolute fullUrl (no urn:uuid placeholders), and the Bundle embeds the engine's own CodeSystem so its local codes resolve during validation; the same CodeSystem is published in the repository as fhir/CodeSystem-odontogram.json (pass includeCodeSystem: false in the FHIR export options to omit it).K02 to K02.0 / K02.1 and ICD-10-CM K02.9 to K02.51/.52 (pit-and-fissure) or K02.61/.62 (smooth surface) by surface ร depth. Chronic periodontitis takes its ICD-10-CM code from the 2017 stage and extent (K05.311โK05.329). One Condition per tooth, carrying the deepest involvement.fhir/ folder is a FHIR NPM package (react-advanced-odontogram.fhir, FHIR 4.0.1) holding the engine CodeSystem plus generated ValueSets โ one per clinical-axis value group, one for the finding types and an all-codes set. Point a validator at it with -ig ./fhir.--odon-* CSS variables ยท ๐งฉ plugin system ยท โจ๏ธ keyboard accessibilityPer-language guides are linked at the top of this file. Full API reference (TypeDoc):
๐ https://zoliqua.github.io/React-Advanced-Odontogram/
MIT ยฉ Zoltรกn Dul. If you use this software in research, please cite it โ see CITATION.cff and the Zenodo record.