- Schedule: last column is the Preauth column; "Claim for Column with AI" is now
"Claim/Preauth for Column with AI" — that column's appointments go to PreAuth
(MH, CCA, Tufts SCO, United/DentalHub; other insurances are skipped), the rest
to Claim. Preauthorized appointments (hasPreauth) aren't resubmitted
- PreAuth payloads carry appointmentId; appointment X-rays/attachments are sent
with MH/CCA/UnitedDH/Tufts preauths (shared appendAppointmentFiles helper)
- Patient form: policy holder is searchable from patients in the DB, plus
"Relationship to Policy Holder/Subscriber" (Self, Spouse, Dependent Child,
Other). New Patient columns policyHolderPatientId, policyHolderRelationship;
browser-side schema updated so the fields aren't stripped on save
- ADA form: box 12-14 filled from the linked policy holder's record; box 18
ticks the relationship (Self when the patient is the holder)
- AI notes: a bare "2PA" is an image count, not tooth #2 — restored before CDT
lookup so it maps to D0220 #8 / D0230 #24
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Backend insurance ID check now accepts letters + digits (BCBS IDs have
a letter prefix), matching the frontend schema; create route validates
the normalized body
- Patient.state column (default "MA") with State select on the patient
form; ADA claim form uses the patient's state instead of the office's
- Rebuild stale packages/db compiled .js so the runtime schemas include
new fields (state, office billing NPI fields, Telnyx settings)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Adds an optional Provider (NPI) select to the Edit Appointment form,
sourced from Settings > NPI Providers. The AI "Claim for Column" batch
flow now prefers the appointment's own provider when resolving which
provider Selenium should select on the insurance site (e.g. MassHealth
rendering provider dropdown), falling back to the existing per-procedure
selection, active claim, or first configured provider.
Also resyncs packages/db's committed compiled schema/client artifacts
with their .ts sources — they had drifted out of sync (some untouched
since July), which was silently stripping the new npiProviderId field
via stale .strict() zod schemas.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>