Signal: Proactive Healthcare Infrastructure starting with DMEPOS suppliers dispensing CGM supplies for T1D patients. https://git.forgejo.sttilsolutions.com/sttil/Signal/
Find a file
sososttil c810e82450 Flag the Real PHI blocked row as disputed
The readiness table warning named only the login row. The "Real PHI blocked
PASS" row rests on the same architecture reading flagged DISPUTED thirty
lines above it, and a reader told "one row is stale" will trust the rest.
Sound as "no supplier data loaded", unsound as "the design excludes PHI".

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011bZhDfpTgToFvDX1CDE8oh
2026-07-27 05:15:40 -04:00
.claude Update Signal brand language and add pitch/build artifacts 2026-05-28 10:14:16 -04:00
context state: auto-push current-state.md on session stop [hook] 2026-07-26 15:05:09 -04:00
docs state-sync + ledger: Signal readiness-model build complete P1-P6 [CC] 2026-07-07 06:39:23 -04:00
n8n-workflows update CLAUDE.md and coverage calculator; add n8n content radar workflow, vercel SPA rewrite, and ui workspace config 2026-06-02 00:41:49 -04:00
pitch Apply Kisa's legal-bundle rulings: Clyde Mathes, Florida, arbitration, verified vs executed LOI 2026-07-07 06:40:27 -04:00
python-backend feat: patient-nested worklist — the true-green display (plan 02, P6) 2026-07-07 06:37:04 -04:00
research feat: add reason strings per patient, fix export headers, add signal-ui source 2026-05-26 09:45:02 -04:00
scripts security: rotate leaked Signal API key, remove it from frontend + source 2026-06-21 14:00:54 -04:00
signal-ui feat: patient-nested worklist — the true-green display (plan 02, P6) 2026-07-07 06:37:04 -04:00
test-data feat: plan-type enforcement in the live path (plan 02, P5) 2026-07-07 05:46:03 -04:00
tests feat: patient-nested worklist — the true-green display (plan 02, P6) 2026-07-07 06:37:04 -04:00
.gitignore chore(state): clean-start current-state.md, ignore context recovery artifacts, add workflow-consolidation brief for Pi 2026-06-23 21:22:31 -04:00
CLAUDE.md Flag the Real PHI blocked row as disputed 2026-07-27 05:15:40 -04:00
Dockerfile feat: FastAPI backend + full deployment stack (Railway + Vercel) 2026-05-18 19:01:35 -04:00
LICENSE.md feat: Signal CGM Level 1 foundation — calculator, audit logger, payer rules, license 2026-04-11 19:48:31 -04:00
mempalace.yaml refactor: reorganize repo structure — flatten CGM-Denial-Prevention/ and Projects/ into docs/ pitch/ research/ 2026-05-12 05:10:00 -04:00
railway.toml feat: FastAPI backend + full deployment stack (Railway + Vercel) 2026-05-18 19:01:35 -04:00
README.md Update Signal brand language and add pitch/build artifacts 2026-05-28 10:14:16 -04:00
requirements.txt Add Phase 3: Clerk auth with org-scoped data isolation 2026-05-29 12:12:17 -04:00
TERAX.md Update Signal brand language and add pitch/build artifacts 2026-05-28 10:14:16 -04:00
vercel.json feat: FastAPI backend + full deployment stack (Railway + Vercel) 2026-05-18 19:01:35 -04:00

Signal CGM powered by STTIL Solutions

B2B CGM documentation worklist tool for DMEPOS suppliers. Ingests CSV shipment data (Brightree/WellSky exports), calculates coverage expiration per patient using device wear-day rules, and produces a prioritized worklist for proactive outreach — so small DME teams act before claims deny, not after.

Self-hosted. Data never leaves the supplier network.


What It Does

Most DMEPOS suppliers manage CGM coverage reactively: a claim denies, then staff scramble to appeal. Signal CGM flips that. The system watches coverage windows continuously and surfaces patients approaching expiration before the denial condition exists.

  • Ingests shipment CSV from Brightree or WellSky
  • Calculates coverage expiration per patient per device using payer-specific wear-day rules
  • Flags each patient: REFILL_WINDOW, VISIT_DUE, OUT_OF_COVERAGE, or OK
  • Delivers a prioritized worklist to DME staff via encrypted email
  • Staff handle outreach locally — Signal CGM never contacts patients directly

Stack

Layer Technology
Backend Python / FastAPI
Database PostgreSQL (encrypted at rest)
Orchestration n8n (self-hosted, 24-hour batch trigger)
Notifications Mailcow (self-hosted SMTP — staff email only)
Hosting Hostinger VPS — data stays on-prem

PHI Architecture

Signal CGM is designed to minimize PHI surface area:

  • Sole crosswalk key: patient_id (the supplier's internal MRN or account number). No names, SSNs, DOBs, or contact information enter the system.
  • DME staff maintain the patient_id ↔ real identity mapping in their own systems (Brightree, EHR, etc.).
  • The calculation layer sees: patient_id, device_type, shipment_date, quantity, payer — nothing else.
  • All audit logs hash patient_id before storage. Raw identifiers never appear in logs.

Coverage Flag Logic

Flag Meaning
REFILL_WINDOW Patient is within the refillable window — safe to ship
VISIT_DUE Physician visit renewal is approaching (Medicare: 180 days)
OUT_OF_COVERAGE Coverage has lapsed — outreach required before next shipment
OK No action needed at this time

Directory Structure

signal-cgm/
├── python-backend/
│   ├── core/
│   │   ├── coverage_calculator.py   # Coverage clock logic
│   │   ├── audit_logger.py          # PHI-safe audit logging
│   │   └── db_models.py             # PostgreSQL models
│   └── config/
│       └── payer_rules.json         # Wear-day rules by device and payer
├── n8n-workflows/                   # n8n batch trigger exports
└── CLAUDE.md                        # Active dev context

BAA Status (Level 1)

Vendor BAA Required Status
Hostinger VPS Yes — PHI host Pending
Anthropic API Only if AI layer touches PHI Not applicable (Level 1)
All other components Self-hosted — operator is STTIL N/A

© 2026 STTIL Solutions LLC. Proprietary software — see LICENSE.md.