IgnitronDevCLINICAL UI / DOCS
ALPHA 0.1GitHub
ALPHA 0.1

Ignitron Clinical UI

Open-source React components for clinical software with explicit data contracts, predictable interaction states, and no backend dependency—starting with Odontogram.

Early development

This package has not completed clinical validation. APIs may change before the first stable release.

INSTALLATION

Start with one package.

The package owns rendering and domain values. Your application keeps authentication, storage, audit history, and signatures.

TERMINAL
$ npm install @ignitrondev/odontogram@alpha
RUNTIMEReact 18 or 19

Distributed as an ESM package with React as a peer dependency.

LANGUAGETypeScript first

Domain models and component contracts ship with generated declarations.

BACKENDBring your own

No hidden persistence, identity provider, or proprietary API requirement.

COMPONENT / 01

Odontogram

IN DEVELOPMENTREACT0.1.0-ALPHA

A controlled dental chart for whole-tooth findings across permanent, primary, and mixed dentition.

FDI numberingUniversal numberingPalmer notationEdit / read-only / print
Assessment.tsxReact + TypeScript
<Odontogram
  value={value}
  onChange={setValue}
  numberingSystem="FDI"
  dentition="PERMANENT"
  conditions={conditions}
/>
Value stays in your application
INTERACTIVE DEMO

Test the contract, not a screenshot.

Choose a finding, select teeth, switch numbering systems, and inspect the structured value emitted by the component.

Dental chart

Odontogram

FDIPERMANENTedit
Finding to apply
CCariesFFilledXMissingRRoot remains
LIVE VALUE3 findings
{
  "schemaVersion": 1,
  "findings": [
    {
      "id": "finding-16-caries",
      "toothId": "PERMANENT:MAXILLARY:RIGHT:6",
      "conditionCode": "CARIES"
    },
    {
      "id": "finding-24-filled",
      "toothId": "PERMANENT:MAXILLARY:LEFT:4",
      "conditionCode": "FILLED"
    },
    {
      "id": "finding-36-missing",
      "toothId": "PERMANENT:MANDIBULAR:LEFT:6",
      "conditionCode": "MISSING"
    }
  ]
}
REACT API

Small surface. Explicit ownership.

PropTypeDefaultDescription
valueOdontogramValueRequiredStructured, controlled clinical value.
onChange(value, event) => voidOptionalReceives the next value and domain event.
conditionsOdontogramCondition[]RequiredTerminology, symbols, and visual accents.
numberingSystemFDI | UNIVERSAL | PALMERFDIVisible tooth numbering convention.
dentitionPRIMARY | PERMANENT | MIXEDPERMANENTDentition rendered by the chart.
modeedit | readOnly | printeditInteraction and output mode.
DATA CONTRACT

The visual is not the record.

Every mark shown in the chart is derived from a serializable clinical value. Colors and paths never become the source of truth.

OdontogramValueschemaVersion: 1
type OdontogramValue = {
  schemaVersion: 1;
  findings: {
    id: string;
    toothId: CanonicalToothId;
    conditionCode: string;
    surface?: ToothSurface;
    note?: string;
  }[];
};
Canonical identity

Tooth IDs do not change when the visible numbering convention changes.

Clinical codes

Findings persist a condition code, never a presentation color alone.

Versioned schema

Stored values declare their contract version for future migrations.

!
CLINICAL SAFETY

Early software. Human review required.

This alpha package has not completed clinical validation. It is not a medical device and must not replace clinical review, organizational policy, or integration testing.