Currently

PRD

PRD

Last updated 5/13/2026

Currently Healthcare Data Platform — Product Requirements Document


PRD Metadata

FieldValue
Product NameCurrently
SubtitleAI-Powered HL7/CCDA Processing Pipeline
PRD Versionv1.0
Lifecycle StageGrowth
Document OwnerProduct Strategy
Last Updated2025
Repositorymidwestco/currently
Primary LanguagePython 3.11 (pipeline), TypeScript (web/CLI)
Deployment TargetsVercel (web), GKE / on-premise (pipeline workers), GCP Cloud SQL (data)
Auth ProviderClerk (Organizations, Users, Roles)
StatusActive development — production pipeline wiring stabilized (see commits fc207dd–9df7a3c)

v0.1 Spark — Problem & Outcomes

Problem Statement

Health Information Exchanges (HIEs) and the hospitals that connect to them generate clinical documents in legacy formats — HL7 v2 messages and CDA/CCDA XML — that are structurally inconsistent, heavily encoded in proprietary local terminologies, and incompatible with modern analytics platforms. Translating this data into FHIR R4 or OMOP CDM 5.4 today requires bespoke engineering work at every site, consuming months of integration effort, introducing mapping errors, and producing datasets that cannot be federated across organizations.

No turnkey commercial product resolves all three layers of this problem simultaneously: (1) format normalization from HL7/CDA to FHIR bundles, (2) terminology resolution against standardized vocabularies (LOINC, SNOMED CT, ICD-10-CM, RxNorm), and (3) phenotype-ready OMOP CDM output for real-world evidence and population health use cases.

Desired Outcomes

IDOutcomeMetric
BR-001HIEs can onboard member hospitals and begin processing clinical documents without custom engineeringTime-to-first-processed-record < 1 business day after onboarding completion
BR-002FHIR R4 bundles produced are conformant and pass production FHIR validationZero critical validation failures on FHIR output in production pipeline
BR-003OMOP CDM 5.4 output resolves terminology codes against Athena vocabulary (6.3M concepts)≥ 95% of coded clinical concepts mapped to standard vocabulary
BR-004Platform operators can monitor pipeline health, job status, and data quality from a single UIPipeline job visibility latency < 60 seconds from Celery task completion
BR-005Patients can view and share their own longitudinal clinical recordsPatient portal accessible within 24 hours of invitation acceptance
BR-006Platform generates recurring subscription revenue from HIE and facility organizationsMRR trackable via /api/web/admin/revenue/stats and /api/web/subscriptions/checkout

Constraints

  • HIPAA PHI Isolation: All protected health information is stored exclusively in the PHI Cloud SQL instance. The Platform Cloud SQL instance (orchestrator, 192.168.0.251) contains zero PHI. This boundary is enforced at the schema level and is non-negotiable.
  • Authentication: All user sessions are managed through Clerk. The /api/web/auth/sync-user route synchronizes Clerk identity to the platform database. Custom auth implementations are out of scope.
  • Deployment Flexibility: Pipeline workers must support both GKE-managed deployment and on-premise installation for HIEs with air-gapped or data-residency requirements. Four Dockerfiles (Dockerfile, Dockerfile.nlp, Dockerfile.pipeline, Dockerfile.worker) define the container boundary.
  • HL7 Profile Coverage: Message type support is bounded by the profiles defined under config/hl7_profiles/ — currently ADT A01/A02/A03/A04/A08/A13/A28/A31, DFT P03, MDM T02, ORM O01, ORU R01/R32, RDE O11, SIU S12, VXU V04.
  • Vocabulary Source: Terminology resolution uses OMOP Athena vocabulary loaded into omop_cdm54.concept. Updating this vocabulary outside of a scheduled Athena release is out of scope.

v0.2 Market Definition — ICP & Segments

Ideal Customer Profile

The primary buyer is a Health Information Exchange operating in the United States that needs to deliver standardized clinical data to member hospitals, research sponsors, or payer networks. The secondary buyer is a mid-to-large hospital or health system that connects to one or more HIEs and wants self-service access to their own FHIR and OMOP data without depending on the HIE's timeline.

Segments Table

SegmentDescriptionEntry PointSize Signal
HIE Network OperatorRegional or statewide HIE managing document exchange for 10–500 member facilities. Needs bulk ingestion, network-wide analytics, and member approval workflows./dashboard/network shell; registers via /api/web/registrations/hie~70 operational HIEs in the US
Member Hospital / FacilityIndividual hospital, clinic, urgent care, specialty center, lab, or imaging center connected to a HIE. Uploads HL7/CDA files, monitors processing jobs, accesses cleaned FHIR records./dashboard shell; registers via /api/web/registrations/facilityThousands of facilities across existing HIE networks
Clinical Researcher / Data AnalystIndividual or team consuming OMOP CDM 5.4 output for real-world evidence, cohort analysis, or population health studies. Accesses data via API keys or OMOP CSV export./dashboard/network/export; API key management via cli/src/commands/keys.tsEmbedded within HIE and hospital segments
Patient / Care ConsumerIndividual whose records have been processed by the platform. Views longitudinal health data, controls sharing permissions./portal shell; onboarded via /api/web/admin/invitations/patient and /api/web/onboarding/patientDerived from member facilities' patient populations
Platform AdministratorCurrently employees managing organizations, approvals, billing, and platform health. Not a paying customer./admin shellInternal only

"Not For"

Currently is not designed for:

  • Direct EHR vendors seeking a full-featured EHR replacement or clinical workflow system. Currently produces structured data outputs; it does not manage clinical workflows, orders, or clinical decision support.
  • Single-physician practices with fewer than a few hundred records per month. The infrastructure cost and onboarding complexity are not justified at that scale.
  • International deployments requiring non-US vocabularies as the primary code system. The Athena vocabulary is US-centric (ICD-10-CM, RxNorm, CPT). International vocabulary support is not in the current roadmap.
  • Real-time point-of-care alerting systems requiring sub-second latency. The Celery-based asynchronous pipeline is optimized for throughput, not real-time clinical decision latency.

v0.3 Commercial Model — Pricing & Positioning

Positioning Statement

Currently is the first platform built specifically for HIEs to transform legacy clinical document formats into analytics-ready FHIR R4 and OMOP CDM 5.4 at network scale — with built-in terminology resolution, PHI-safe architecture, and self-service portals for every stakeholder in the care continuum.

Monetization Model

Currently operates a B2B SaaS subscription model. The API surface confirms two commercial primitives:

  1. Organization Subscriptions — HIE network operators and facility organizations subscribe to the platform. Subscription management is handled via:

    • POST /api/web/subscriptions/checkout — initiates checkout for a new subscription tier
    • POST /api/web/subscriptions/cancel — cancels an active subscription
    • GET /api/web/admin/pricing/tiers — returns available pricing tiers for display and selection
  2. Usage-Based API Access — API keys are provisioned per organization and tracked for consumption. Platform-level API key metrics are available at GET /api/web/v1/admin/api-keys/metrics/platform. Individual organization API key management is exposed via GET /api/web/v1/admin/api-keys and the CLI (cli/src/commands/keys.ts, cli/src/commands/billing.ts).

Revenue analytics are surfaced to platform administrators via GET /api/web/admin/revenue/stats and per-organization breakdowns at GET /api/web/v1/admin/analytics/by-org.

Pricing Tiers (Inferred from API surface)

TierTargetKey Capabilities
StarterSmall HIE or pilot facilityFile uploads, FHIR output, basic job monitoring
ProfessionalMid-size HIE with multiple member hospitalsFull OMOP output, network analytics, patient portal, API key access
EnterpriseLarge HIE or health systemOn-premise worker deployment, custom HL7 profiles, dedicated support, Google Workspace integration

Moat Thesis

Currently's durable competitive advantage rests on three compounding assets:

  1. Vocabulary Coverage: The OMOP Athena vocabulary (6.3M concepts) loaded into omop_cdm54.concept is operationally expensive to license, load, and keep current. Competitors must replicate this to match terminology resolution quality.
  2. HL7 Profile Depth: The config/hl7_profiles/ directory contains 18 message-type-specific conformance profiles alongside field definitions and HL7 table lookups across 80+ table IDs. This institutional knowledge of real-world HL7 variance cannot be replicated without extensive production data exposure.
  3. PHI Architecture Pattern: The strict two-database architecture (Platform Cloud SQL + PHI Cloud SQL) with Clerk-managed RBAC creates a compliance posture that is difficult and expensive for new entrants to replicate. Existing customers have already validated their security assessments against this architecture.

v0.4 User Journeys

UJ-001: HIE Onboarding and Network Activation

Actor: HIE Network Administrator
Entry Point: Platform landing page → registration flow

  1. HIE administrator submits registration via POST /api/web/registrations/hie.
  2. Platform admin reviews and approves the registration at /admin using GET /api/web/admin/registrations/hie and approving via GET /api/web/admin/registrations/hie/:id.
  3. Clerk organization is created; webhook triggers sync to organizations table.
  4. HIE administrator completes onboarding (onboarding_completed = TRUE on the organizations record).
  5. HIE administrator accesses the /dashboard/network shell and invites member facility users via POST /api/web/admin/invitations/facility-user.
  6. HIE administrator configures API keys at /dashboard/network/settings/api-keys.

Success Condition: HIE organization is active, at least one member facility is linked, and the HIE can view the network overview at /dashboard/network/page.tsx.


UJ-002: Facility File Upload and Pipeline Processing

Actor: Hospital Data Coordinator
Entry Point: /dashboard → Upload

  1. Facility user authenticates via Clerk; session is synced via POST /api/web/auth/sync-user.
  2. User navigates to the upload interface (/dashboard/network/upload/page.tsx) and selects HL7 or CDA files. Allowed file types are configurable per hospital (allowed_file_types on the hospitals table; defaults to ['hl7', 'cda', 'fhir']).
  3. Files are submitted to POST /api/web/files. The platform registers file metadata in file_registry (file name, type, SHA-256 hash for deduplication, size) and enqueues a pipeline task.
  4. FastAPI + Celery workers pick up the task and execute the Parse → Clean → FHIR → OMOP pipeline stages.
  5. Job status is visible in real time at /dashboard/network/jobs/page.tsx.
  6. On completion, FHIR R4 bundles are stored in PHI Cloud SQL and OMOP CDM 5.4 records are written to omop_cdm54 schema.

Success Condition: file_registry.status transitions from pendingprocessingcompleted; FHIR and OMOP records are queryable.


UJ-003: Clinical Data Exploration and Export

Actor: Health Data Analyst at an HIE or research institution
Entry Point: /dashboard/network/records or API

  1. Analyst authenticates and navigates to /dashboard/network/records/page.tsx to browse processed medical records.
  2. Analyst views patient-level records (de-identified MRN hash) at /dashboard/network/patients/[mrnHash]/page.tsx.
  3. Analyst configures OMOP CDM export at /dashboard/network/export/page.tsx.
  4. For programmatic access, analyst retrieves an API key from /dashboard/network/settings/api-keys or via currently keys CLI command.
  5. CLI commands provide structured access: currently records, currently diagnoses, currently medications, currently allergies, currently encounters.

Success Condition: Analyst can export a complete OMOP CSV round-trip (validated by tests/e2e/test_omop_csv_round_trip.py) and query records programmatically via API key.


UJ-004: Patient Portal Access and Record Sharing

Actor: Patient
Entry Point: Email invitation

  1. Platform or facility admin sends a patient invitation via POST /api/web/admin/invitations/patient.
  2. Patient receives email, follows invitation token link to GET /api/web/invitations/:token.
  3. Patient completes onboarding via POST /api/web/onboarding/patient.
  4. Patient accesses the /portal shell and views their longitudinal health records at /portal/records/page.tsx.
  5. Patient manages data sharing permissions at /portal/sharing/page.tsx.
  6. Patient can generate personal API access tokens at /portal/settings/api-access/page.tsx using the patient-api-access-client.tsx component.

Success Condition: Patient can view all processed records associated with their identity and control sharing with third parties.


UJ-005: Platform Administrator Operations

Actor: Currently Platform Administrator
Entry Point: /admin

  1. Admin monitors platform analytics at /admin/analytics/page.tsx.
  2. Admin reviews and approves pending HIE and facility registrations via GET /api/web/admin/registrations/hie and GET /api/web/admin/registrations/facility.
  3. Admin approves provider credentials via POST /api/web/v1/admin/approve-provider.
  4. Admin reviews PHI access audit logs at GET /api/web/v1/admin/audit/phi-access.
  5. Admin manages org-to-org link approvals at POST /api/web/admin/org-links/approve.
  6. Admin manages facility organization creation at POST /api/web/admin/facility-orgs/create.
  7. Admin reviews revenue statistics at GET /api/web/admin/revenue/stats.

Success Condition: Admin can execute the full approval lifecycle for a new HIE or facility within the /admin shell without direct database access.


v0.5 Red Team Review

Risk Register

IDRiskCategoryLikelihoodImpactMitigation
RISK-001PHI leak via misconfigured query routing to Platform Cloud SQLCompliance / ArchitectureLowCriticalStrict two-database schema boundary enforced at the ORM layer (Drizzle); Platform Cloud SQL is annotated -- no PHI data at the table level; GET /api/web/v1/admin/audit/phi-access provides audit logging
RISK-002Terminology mapping failures produce clinically incorrect OMOP recordsData QualityMediumHightests/e2e/test_omop_full_pipeline.py and test_omop_csv_round_trip.py validate OMOP output; Athena vocabulary in omop_cdm54.concept is the authoritative source; unmapped codes must be routed to a dead-letter queue (DLQ) per tests/e2e/test_dlq_routing.py
RISK-003Malformed HL7 input crashes the pipeline worker and blocks the job queueReliabilityHighMediumProperty-based fuzz testing in tests/conformance/test_fuzz.py and tests/conformance/test_property_based.py; DLQ routing tested in tests/e2e/test_dlq_routing.py; workers run as isolated Celery tasks with Redis broker
RISK-004Clerk webhook delivery failure leaves organization or user records out of syncAuth / Data ConsistencyMediumHighPOST /api/web/auth/sync-user provides a manual sync path; webhook retry logic must be configured in Clerk dashboard
RISK-005GCS file access fails due to workload identity misconfiguration, blocking file syncInfrastructureLowHighRecent fix commit 1ca44ba (workload identity for GCS access); GCS file sync download authenticated per e4b22ee; smoke test workflow (.github/workflows/smoke-test.yml) validates post-deploy connectivity
RISK-006FHIR validation failures in production due to datetime normalization errorsData QualityMediumMediumFix b955f51 addresses _normalize_fhir_datetime for HL7 compact date conversion; production FHIR validation authenticated per 02461e4; tests/e2e/test_fhir_full_pipeline.py covers output conformance
RISK-007A rogue API key holder exfiltrates the entire PHI dataset via bulk API accessSecurityLowCriticalAPI key metrics tracked at GET /api/web/v1/admin/api-keys/metrics/platform; PHI access audit at GET /api/web/v1/admin/audit/phi-access; rate limiting and key scoping must be enforced at the API gateway layer
RISK-008Pipeline enqueue failures are silently dropped, causing undetected data lossReliabilityMediumHighFix commit 1ca44ba surfaces pipeline enqueue failures; tasks enqueued via REST per 2ee79b5; job status visible at /dashboard/network/jobs/page.tsx
RISK-009On-premise worker deployments drift from GKE-managed version, causing parsing discrepanciesOperationsMediumMediumFour Dockerfiles pin the container boundary; .github/workflows/pipeline-deploy.yml and pipeline-worker-deploy.yml enforce consistent deployment; SBOM attestation in CI (2942e46)
RISK-010Subscription checkout flow fails silently, blocking organization activationRevenueLowHighSubscription flow exposed via POST /api/web/subscriptions/checkout; revenue stats monitored at GET /api/web/admin/revenue/stats; requires end-to-end checkout smoke test

v0.6 Architecture

TECH-001: Four-Tier Application Architecture

Currently decomposes into four runtime tiers:

  1. Web Application (TECH-001a): Next.js deployed on Vercel. Four route-group shells handle distinct user roles: (platform)/admin, (hie)/dashboard/network, provider /dashboard, and (patient)/portal. Drizzle ORM connects to Platform Cloud SQL.
  2. Processing Pipeline (TECH-001b): FastAPI (Python 3.11) serving the pipeline API, containerized via Dockerfile.pipeline. Exposes a REST interface consumed by the web app for task enqueueing (per commit 2ee79b5).
  3. Celery Workers (TECH-001c): Async task workers containerized via Dockerfile.worker, using Redis as the message broker. Execute the Parse → Clean → FHIR → OMOP stage sequence for each uploaded file.
  4. NLP Service (TECH-001d): Separate container (Dockerfile.nlp) indicating a natural language processing component, likely for clinical text extraction from unstructured CDA sections.

TECH-002: Data Architecture

DatabaseHostContentsPHI
Platform Cloud SQLGCP (orchestrator, 192.168.0.251)organizations, hospitals, users, file_registry, subscription metadataNo
PHI Cloud SQLGCP (dedicated PHI instance)medical_records, FHIR R4 bundles, omop_cdm54.* including omop_cdm54.concept (6.3M Athena rows)Yes

TECH-003: Authentication and Authorization

Clerk manages the identity plane. Organizations, user memberships, and roles are created in Clerk and synchronized to Platform Cloud SQL via webhook. The users table stores clerk_id, clerk_role, and organization_id. Session validation occurs at GET /api/web/session. NPI verification is performed at POST /api/web/npi/verify as part of facility onboarding.

TECH-004: CLI (cli/)

A TypeScript CLI (cli/bin/currently.ts, distributed as cli/dist/bin/currently.js) provides programmatic access for analysts and integrators. Commands cover the full API surface: auth, billing, config, keys, orgs, patient, pipeline, records, diagnoses, medications, allergies, encounters, analytics, quality, storage, webhooks. Authentication uses a token store at cli/src/auth/store.ts resolved via cli/src/auth/resolve.ts.

API-001: Platform Administration APIs

RouteMethodPurpose
/api/web/admin/facility-orgs/createPOSTCreate a new facility organization
/api/web/admin/registrations/hieGET/POSTList and submit HIE registrations
/api/web/admin/registrations/hie/:idGET/PATCHRetrieve and update a specific HIE registration
/api/web/admin/registrations/facilityGET/POSTList and submit facility registrations
/api/web/admin/registrations/facility/:idGET/PATCHRetrieve and update a specific facility registration
/api/web/admin/registrations/facility/hie-initiatePOSTHIE-initiated facility registration
/api/web/admin/org-links/approvePOSTApprove a facility-to-HIE organization link
/api/web/admin/invitations/facility-userPOSTSend invitation to a facility user
/api/web/admin/invitations/patientPOSTSend invitation to a patient
/api/web/admin/pricing/tiersGETRetrieve available subscription tiers
/api/web/admin/revenue/statsGETPlatform-level revenue statistics
/api/web/v1/admin/approve-providerPOSTApprove a provider credential
/api/web/v1/admin/audit/phi-accessGETPHI access audit log
/api/web/v1/admin/api-keysGET/POSTPlatform API key management
/api/web/v1/admin/api-keys/metrics/platformGETAggregate API key usage metrics
/api/web/v1/admin/analytics/by-orgGETPer-organization analytics

API-002: HIE and Facility APIs

RouteMethodPurpose
/api/web/hiesGET/POSTList HIE organizations
/api/web/hies/:idGET/PATCHRetrieve or update a specific HIE
/api/web/facilitiesGET/POSTList facilities
/api/web/facilities/:idGET/PATCHRetrieve or update a facility
/api/web/facilities/:id/hospitalGETHospital record for a facility
/api/web/facilities/:id/medical-recordsGETMedical records for a facility
/api/web/facility/link-to-hiePOSTLink a facility to an HIE
/api/web/hospital/by-facility-orgGETResolve hospital by facility org
/api/web/filesGET/POSTFile registry — upload and list files
/api/web/organizations/approvedGETList approved organizations
/api/web/organizations/check-hieGETCheck HIE membership status
/api/web/orgs/hieGETList HIE-type organizations
/api/web/registrations/hiePOSTSelf-service HIE registration
/api/web/registrations/facilityPOSTSelf-service facility registration
/api/web/npi/verifyPOSTNPI verification during onboarding

API-003: Auth, Session, and Subscription APIs

RouteMethodPurpose
/api/web/auth/sync-userPOSTSync Clerk user to platform database
/api/web/sessionGETRetrieve current session and role context
/api/web/invitations/:tokenGETResolve and validate invitation token
/api/web/invitationsGETList pending invitations
/api/web/onboarding/patientPOSTComplete patient onboarding
/api/web/subscriptions/checkoutPOSTInitiate subscription checkout
/api/web/subscriptions/cancelPOSTCancel active subscription
/api/web/healthGETPlatform health check

DBT-001: OMOP CDM 5.4 Schema

The PHI Cloud SQL instance hosts the full OMOP CDM 5.4 schema under the omop_cdm54 schema prefix. Key tables populated by the pipeline include:

TableOMOP DomainSource
omop_cdm54.personPersonPatient demographics from HL7 PID segment / CDA recordTarget
omop_cdm54.measurementMeasurementLab results from ORU R01 OBX segments / CDA results section
omop_cdm54.condition_occurrenceConditionDiagnoses from ICD codes in DFT P03, ADT, CDA problems section
omop_cdm54.drug_exposureDrugMedications from RDE O11, CDA medications section; mapped to RxNorm
omop_cdm54.visit_occurrenceVisitEncounter data from ADT A01/A03/A04
omop_cdm54.conceptVocabulary6.3M Athena vocabulary concepts — source of truth for all code mapping

TECH-005: CI/CD Pipeline

Seven GitHub Actions workflows govern the delivery pipeline:

WorkflowFilePurpose
Code Quality.github/workflows/code-quality.ymlLinting, type checking, pre-commit hooks
Pipeline Deploy.github/workflows/pipeline-deploy.ymlDeploy FastAPI pipeline service to GKE
Pipeline Test.github/workflows/pipeline-test.ymlRun Python test suite against pipeline
Worker Deploy.github/workflows/pipeline-worker-deploy.ymlDeploy Celery worker to GKE
Smoke Test.github/workflows/smoke-test.ymlPost-deploy connectivity and health validation
Sync Docs.github/workflows/sync-docs.ymlSynchronize documentation artifacts
Terraform Plan.github/workflows/terraform-plan.ymlInfrastructure plan validation

TECH-006: HL7 Profile Configuration

Eighteen message-type conformance profiles under config/hl7_profiles/ drive the parsing and validation layer. Field definitions are centralized in config/hl7_profiles/field_definitions.json. HL7 table lookups are distributed across 80+ files in config/hl7_tables/ (table IDs 0001–0091 and beyond). FHIR mapping is configured via config/fhir_mappings/message_type_registry.json and config/fhir_mappings/vocabulary_maps.json. De-identification rules are defined in config/deid/default_rules.csv.


v0.7 Build Execution

EPIC Backlog

EPIC-001: Core Pipeline Engine

IDStoryPriority
TECH-101Implement HL7 v2 parser supporting all 18 profiles in config/hl7_profiles/P0
TECH-102Implement CDA/CCDA XML parser for all C-CDA section templatesP0
TECH-103Build FHIR R4 resource generator (Patient, Observation, Condition, MedicationRequest, AllergyIntolerance)P0
TECH-104Build OMOP CDM 5.4 writer for all six core domain tablesP0
TECH-105Implement Athena vocabulary lookup against omop_cdm54.conceptP0
TECH-106Implement _normalize_fhir_datetime for HL7 compact date conversion (fix b955f51)P0
TECH-107Build Celery task queue with Redis broker and DLQ routingP1
TECH-108Implement pipeline enqueue via REST (commit 2ee79b5) with failure surfacingP1
TECH-109Build conformance toggle for HL7 profile enforcement (tests/e2e/test_conformance_toggle.py)P1
TECH-110Implement Y7/Y8/Y9/R2 pipeline stages and corresponding schema changes (commit 9df7a3c)P1

EPIC-002: Platform Web Application

IDStoryPriority
TECH-201Implement four route-group shells: /admin, /dashboard, /dashboard/network, /portalP0
TECH-202Build HIE registration and approval workflow (UJ-001)P0
TECH-203Build facility registration, NPI verification, and HIE linking (UJ-002)P0
TECH-204Build file upload UI at /dashboard/network/upload/page.tsx with file_registry integrationP0
TECH-205Build job monitoring view at /dashboard/network/jobs/page.tsxP1
TECH-206Build patient portal at /portal including records, sharing, and API access pagesP1
TECH-207Build network analytics dashboard at /dashboard/network/analytics/page.tsxP1
TECH-208Build OMOP export UI at /dashboard/network/export/page.tsxP1
TECH-209Build API key management at /dashboard/network/settings/api-keysP1
TECH-210Integrate Clerk webhook sync via POST /api/web/auth/sync-userP0
TECH-211Implement subscription checkout and cancellation flowsP1
TECH-212Build platform admin revenue stats view using /api/web/admin/revenue/statsP2

EPIC-003: CLI

IDStoryPriority
TECH-301Implement auth, config, and profile management (cli/src/auth/, cli/src/config/)P0
TECH-302Implement currently records, currently diagnoses, currently medications, currently allergies, currently encounters commandsP1
TECH-303Implement currently pipeline command for job submission and statusP1
TECH-304Implement currently keys for API key managementP1
TECH-305Implement currently analytics and currently quality commandsP2
TECH-306Implement currently webhooks command for webhook managementP2
TECH-307Build pagination utilities (cli/src/utils/pagination.ts) for large result setsP1

EPIC-004: Infrastructure and Compliance

IDStoryPriority
TECH-401Provision Platform Cloud SQL with non-PHI schemaP0
TECH-402Provision PHI Cloud SQL with OMOP CDM 5.4 schema and Athena vocabulary loadP0
TECH-403Configure GCS workload identity for file sync (commits 1ca44ba, e4b22ee)P0