feat: United/DentalHub claim submission automation and patient list sync

- Add full Selenium automation for United/DentalHub claim submission
  (steps 1-8: login, OTP, patient search, practitioner page, code entry,
  other coverage No, attachments, submit, Status & History PDF)
- Consolidate UnitedDH siteKey to UNITED_SCO throughout app
- Fix procedure date overwrite with Ctrl+A+Delete before typing service date
- Fix OTP popup reliability: emit every poll (no throttle)
- Fix Chrome session persistence: only clear cookies on startup
- Add touchPatient() to storage: claim submission now pushes patient to
  top of list across eligibility, claims, and documents pages

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Gitead
2026-05-25 00:29:04 -04:00
co-authored by Claude Sonnet 4.6
parent cd1381e9c6
commit 1e581c193c
14 changed files with 2100 additions and 95 deletions
@@ -127,6 +127,13 @@ export async function runDDMAClaimProcessor(
if (claimNumber) updates.claimNumber = claimNumber;
await storage.updateClaim(claimId, updates);
log("ddma-claim-processor", "claim record updated", { claimId, claimNumber });
// Touch patient so they rise to top of the list across all pages
const claim = await storage.getClaim(claimId);
if (claim?.patientId) {
await storage.touchPatient(claim.patientId);
log("ddma-claim-processor", "patient touched", { patientId: claim.patientId });
}
} catch (e) {
log("ddma-claim-processor", "failed to update claim record (non-fatal)", { error: e });
}