Nine bounded contexts. One system of record.
.NET 8. Blazor Server portal. Microservices behind a YARP gateway. Shared contracts, a clean-room X12 library, and a Service Bus for events.
Infrastructure that runs the practice.
Cloud Dental Office holds patients, the calendar, claims, eligibility, and remittance. Websites and marketplace partners stay at the edge.
Portal
Blazor Server, MudBlazor, dark theme. Dashboard, patients, scheduling, claims, e-prescribing, AI vision. Staff tokens only.
Gateway
YARP reverse proxy on the private network. Routes to every PHI-bearing service. Not exposed to the internet.
Public edge
IntakeService only. TLS plus API key. Disabled until you turn it on. Rate-limited. Isolated inbox.
Each service owns its database.
Independent deployables, shared contracts, events over Service Bus.
PatientService
:5101
Demographics, insurance and subscriber data, search. Per-service PostgreSQL. No public surface.
SchedulingService
:5102
Appointments, operatories, provider calendars. Owns ISchedulingAvailabilityService — the only availability engine. Staff APIs require a signed tenant token.
ClaimsService
:5103
Claim lifecycle from draft through submit. Clean-room 837D generation. Practice-facing intelligence is read from Cloud Health Office, not reinvented here.
EligibilityService
:5104
270/271 eligibility verification. Payer routing is in progress; the contract is already in the solution.
EraService
:5105
835 ERA file processing, claim matching, posting to the patient ledger.
AuthService
:5106
Tenant-aware identity, membership-derived roles, password verification, short-lived JWT issuance.
PrescriptionService
:5107
e-Prescribing with DoseSpot. EPCS. Surescripts-certified path.
VisionService
:5108
privaseeAI edge devices, insurance-card OCR via Azure AI Vision, cabinet monitoring, consent recording, clinical note generation.
IntakeService
:5109
The only internet-facing component. Public availability and booking intent. Isolated inbox database. No read access to patient, clinical, or scheduling data.
Contracts, EDI, messaging.
CloudDentalOffice.Contracts
DTOs, integration events, API contracts shared across services.
CloudDentalOffice.EdiCommon
Clean-room X12 parser and generators for 837D, 270/271, and 835.
CloudDentalOffice.Messaging
Service Bus publishing behind IEventPublisher. Topics, not hidden queues.
Stack: .NET 8, EF Core (PostgreSQL, SQL Server, SQLite), Docker, Kubernetes, Azure Bicep. Architecture →
Read the services. Then talk.
Source-available under BSL 1.1. github.com/aurelianware/clouddentaloffice