AegisClaim is a fault-tolerant, containerized EDI adjudication engine built in Go and Temporal. It ingests X12 837 medical claims, validates them, calculates pricing, determines routing outcomes, and persists adjudication results.
The system consists of the following components:
- API Gateway: Exposes HTTP endpoints for claim submission, status checks, and system metrics
- Temporal Workflow Engine: Manages the claim adjudication workflow with fault tolerance and state tracking
- EDI Processing: Parses and validates X12 837 claim files according to industry standards
- Validation Activity: Validates incoming claims against business and format rules
- Pricing Activity: Applies complex contract rules to determine claim pricing with line item detail
- Routing Activity: Determines the appropriate routing decision for claims based on diagnosis, procedures, and pricing
- Monitoring Dashboard: Web-based UI for real-time system status and claim processing metrics
- CLI Tools: Command-line utilities for administrators to submit and monitor claims
- Metrics Collector: Tracks system performance and claim statistics for monitoring
/aegisclaim
├── api-gateway/ # HTTP API for claim submission
│ ├── main.go
│ └── metrics.go # System metrics collection
├── cmd/
│ ├── cli/ # Command-line tools
│ │ └── main.go
│ ├── dashboard/ # Dashboard server
│ │ └── main.go
│ └── worker/ # Temporal worker implementation
│ └── main.go
├── dashboard/ # Web-based monitoring UI
│ ├── index.html
│ └── logo.svg
├── docs/ # Documentation
│ └── api.md # API documentation
├── engine/
│ ├── workflows/ # Temporal workflows
│ │ └── claim_workflow.go
│ ├── activities/ # Temporal activities
│ │ ├── validate.go # Claim validation logic
│ │ ├── price.go # Pricing rules engine
│ │ └── route.go # Claim routing decisions
│ ├── models/ # Data models
│ │ └── claim.go # Claim data structures
│ └── utils/ # Utility functions
│ ├── edi_parser.go # EDI segment parsing
│ ├── edi837_parser.go # X12 837 specific parser
│ └── pricing.go # Contract rate calculations
├── examples/ # Example files for testing
│ └── sample_837.edi # Sample EDI 837 healthcare claim
├── internal/seeder/ # Data seeding
│ └── seeder.go
├── seed/ # Sample seed data
│ └── 837_claims.json # Example claims in JSON format
├── test/
│ ├── hypothesis/ # Property-based testing
│ │ └── claim_properties_test.go
│ └── integration/ # Integration tests
│ └── workflow_test.go
├── docker-compose.yml # Container orchestration
├── Dockerfile.api # API Gateway Dockerfile
├── Dockerfile.worker # Worker Dockerfile
├── go.mod # Go module dependencies
├── Makefile # Build and run scripts
└── README.md # Documentation
- Go 1.19 or later
- Docker and Docker Compose
- Make
- Clone the repository
- Run the system in development mode:
make run
-
Access the dashboard at http://localhost:8081
-
Submit a test claim via API:
curl -X POST -H "Content-Type: application/json" -d @seed/837_claims.json http://localhost:8080/api/claims/submit
- Or submit using the CLI tool:
./aegisclaim-cli submit -file seed/837_claims.json
make build
: Build all components of the applicationmake deps
: Download dependenciesmake run
: Run the application in development modemake test
: Run all testsmake test-integration
: Run integration testsmake test-prop
: Run property-based testsmake clean
: Clean build artifactsmake seed
: Initialize the database and seed datamake dashboard
: Start the monitoring dashboard
GET /health
: System health checkGET /metrics
: System performance metricsPOST /api/claims/submit
: Submit a claim for processingGET /api/claims/status/?workflowID={id}
: Check status of a claim
Detailed API documentation is available in docs/api.md
.
The AegisClaim CLI provides administrative functions:
# Submit a claim from JSON or EDI file
./aegisclaim-cli submit -file claim.json
./aegisclaim-cli submit -edi claim.edi
# Check claim status
./aegisclaim-cli status -id claim-123456-1683573814
# List recent claims
./aegisclaim-cli list -limit 10
The dashboard provides real-time monitoring of system health and claim processing:
- Start the dashboard:
make dashboard
- Access at: http://localhost:8081
- Features:
- Claim processing metrics
- Decision distribution charts
- Recent claims table
- System status indicators
- The system implements full X12 837 EDI claim processing logic
- Validation includes comprehensive format and business rule checking
- Pricing applies contract rates with diagnosis code modifiers
- Intelligent routing based on claim characteristics
- All components follow Go engineering discipline standards
- The project uses Temporal for workflow orchestration with automatic retries and fault tolerance
- Property-based testing with Gopter ensures robust contract validation
- Integration tests verify end-to-end system functionality
The application is containerized and can be deployed to any environment that supports Docker containers:
# Build docker images
docker-compose build
# Deploy locally
docker-compose up -d
# Scale workers for higher throughput
docker-compose up -d --scale worker=3
For production deployments, consider using Kubernetes or a managed container service with appropriate resource limits and monitoring.
Copyright © 2025 AegisClaim. All rights reserved.