Xhuma is a stateless middleware service designed to facilitate the conversion of GP Connect structured records into CCDA (Consolidated Clinical Document Architecture) format. The service acts as an intermediary between Electronic Health Record (EHR) systems and NHS APIs, providing seamless integration and data transformation capabilities.
- Handles incoming ITI (IHE IT Infrastructure) requests
- Manages request/response lifecycle
- Implements REST endpoints for health systems integration
- Provides async operation support for improved performance
- Implements JWT token validation
- Manages API authentication
- Handles request signing for NHS API interactions
- Ensures secure communication channels
- Manages communication with GP Connect APIs
- Handles structured record retrieval
- Implements error handling and retry logic
- Maintains API version compatibility
- Transforms FHIR bundles to CCDA format
- Implements conversion logic for clinical data
- Manages document structure and formatting
- Handles various clinical entry types
- Manages Patient Demographic Service lookups
- Handles patient identity verification
- Implements NHS number validation
- Manages demographic data retrieval
- Processes SOAP requests and responses
- Manages XML transformations
- Implements ITI transaction support
- Handles SOAP fault scenarios
- Implements distributed caching
- Manages temporary data storage
- Optimizes repeated requests
- Handles cache invalidation
-
Endpoint Metrics
- Request counts and rates
- Response times
- Error rates by type
- Status code distribution
-
Cache Metrics
- Hit/miss rates
- Cache size
- Eviction rates
- TTL statistics
-
Resource Metrics
- CPU usage
- Memory utilization
- Network I/O
- Disk operations
-
System Dashboards
- Real-time performance monitoring
- Historical trends analysis
- Resource utilization tracking
- Error rate visualization
-
Business Metrics
- Transaction success rates
- API usage patterns
- Cache efficiency
- Service availability
-
Log Collection
- Application logs
- System logs
- Access logs
- Error logs
-
Log Processing
- Structured log formatting
- Log enrichment
- Pattern detection
- Alert generation
-
Log Storage
- Indexed storage
- Retention policies
- Archival strategy
- Search optimization
-
Trace Collection
- Request tracing
- Service dependencies
- Performance bottlenecks
- Error propagation
-
Trace Analysis
- Latency analysis
- Error tracking
- Service mapping
- Performance optimization
-
Test Organization
- Feature-based test suites
- Integration test suites
- Mock implementations
- Test fixtures
-
Test Coverage
- Code coverage tracking
- Branch coverage
- Integration points
- Error scenarios
-
Service Testing
- API endpoint testing
- Database interactions
- Cache operations
- External service mocks
-
End-to-End Testing
- User flow testing
- Error handling
- Performance validation
- Security testing
-
Load Testing
- Concurrent user simulation
- Resource utilization
- Response time analysis
- Bottleneck identification
-
Stress Testing
- System limits testing
- Recovery testing
- Failover scenarios
- Resource exhaustion
- JWT-based authentication
- NHS API authentication
- Token validation and verification
- TLS 1.2+ for all communications
- Data encryption at rest
- Secure header handling
- Input validation and sanitization
- NHS Digital Standards
- NHS Supplier Conformance Assessment List: Structured Extended Testing, Spine Integration Testing, PDS onboarding
- GDPR requirements
- Health data protection regulations
├── Application Container
│ ├── FastAPI Application
│ ├── Uvicorn Server
│ └── Application Dependencies
└── Redis Container
└── Redis Server
- Internal network for container communication
- Exposed ports:
- 8000: Application API
- 6379: Redis (internal only)
- 9090: Prometheus metrics
- 3000: Grafana dashboards
- NHS API errors
- Conversion failures
- Authentication errors
- Network issues
- Automatic retries
- Fallback mechanisms
- Error reporting
- System recovery
- Cache cleanup
- Log rotation
- Performance monitoring
- Security updates
- Issue tracking
- Version control
- Documentation updates
- Dependency management
- Basic application health
- Critical service checks
- Resource availability
- Error rate monitoring
- Service dependencies
- Cache availability
- External service status
- Resource thresholds
- Initialization checks
- Configuration validation
- Resource allocation
- Service registration