Create configurable prescreening flows mapped to study UUIDs.
Enterprise Backend & API Lab
FastAPI microservices, PostgreSQL models, JWT auth, PHI scrubbing middleware, and Terraformable infrastructure—ready for diligence.
Average request latency
182 ms
Screeners managed
126
Audit events / day
340k
Failover drills
Pass • 6/6
Core endpoints
Anonymous participant access with rate limiting + eligibility calculators.
Demo-only evaluation path bypassing auth for stakeholder walk-throughs.
Secure participant updates with PHI scrubber middleware.
Live request lab
POST /api/v1/demo/screening/evaluate HTTP/1.1
Host: emeritacrm-production.up.railway.app
Authorization: Bearer demo-token
Content-Type: application/json
{
"age": 29,
"gender": "female",
"dental_history": "regular_checkups",
"fluoride_allergy": "no",
"consent_to_contact": true
}
[12:02:11] ✅ 200 OK /api/v1/screeners/public/87cf
[12:03:08] ✳️ queued risk scoring job jobId=ab17
[12:04:22] 🔐 JWT verified for role=coordinator
[12:05:01] 📁 File asset stored region=us-east
[12:06:44] ⚠️ Rate limit warn for ip=23.18.*.* (auto-mitigated)
Resilience & compliance
Security contract
- Zero-trust JWT auth + rotating refresh tokens
- Field-level encryption & PHI masking pipeline
- Audit_log middleware streaming to Railway
Data contract
- SQLAlchemy models w/ versioned migrations
- Async session handling + typed schemas
- Seed/demo data script for stakeholder trials
Operations contract
- Health/liveness endpoints
- Structured logging + request correlation IDs
- Terraform modules for environments
Sample model definition
class Screener(Base):
__tablename__ = "screeners"
id = Column(UUID(as_uuid=True), primary_key=True, default=uuid4)
study_id = Column(UUID(as_uuid=True), ForeignKey("studies.id"), nullable=False)
title = Column(String, nullable=False)
instructions = Column(Text)
estimated_duration_minutes = Column(Integer)
created_at = Column(DateTime(timezone=True), server_default=func.now())
questions = relationship("ScreenerQuestion", cascade="all, delete-orphan")