Back to testkits
Developer hub
Testkit | FHIR® Subscriptions
Proactive real-time notifications (R4 Backport IG → R6 compatible): asynchronous, non-blocking, high-performance. SubscriptionTopics define trigger events, the full range of filter and search criteria, as well as payloads. Delivery via REST-hook or NATS JetStream (Pub/Sub streaming from Multi-Cloud to Edge, integration with WebSocket, email, SMS/push). Subscriptions conveniently configurable via standardized tools with SLM/LLM.
89 / 89 = 100.0 %Community compliance
✓ 6 Passed✕ 0 Failed
- ✓ FHIR Subscriptions - Scope and Usage: Subscription can use filterBy to refine notifications
- ✓ FHIR Subscriptions - Scope and Usage: Subscription is an active resource
- ✓ FHIR Subscriptions - Scope and Usage: Subscription references SubscriptionTopic via canonical URL
- ✓ FHIR Subscriptions - Scope and Usage: Subscription.content can be empty
- ✓ FHIR Subscriptions - Scope and Usage: Subscription.content can be full-resource
- ✓ FHIR Subscriptions - Scope and Usage: Subscription.content can be id-only
✓ 5 Passed✕ 0 Failed
- ✓ FHIR Subscriptions - Multi-Resource: Subscription can combine filterBy with and without resourceType
- ✓ FHIR Subscriptions - Multi-Resource: Subscription can use filterBy with resourceType for specific resource
- ✓ FHIR Subscriptions - Multi-Resource: Subscription can use filterBy without resourceType for all resources
- ✓ FHIR Subscriptions - Multi-Resource: Subscription can use multiple filterBy with different resourceTypes
- ✓ FHIR Subscriptions - Multi-Resource: SubscriptionTopic can have multiple resource types in triggers
✓ 25 Passed✕ 0 Failed
- ✓ FHIR Subscriptions - Query Criteria Complex combination with modifiers
- ✓ FHIR Subscriptions - Query Criteria Date Parameter with :ap modifier (approximately)
- ✓ FHIR Subscriptions - Query Criteria Date Parameter with :ge modifier
- ✓ FHIR Subscriptions - Query Criteria Date Parameter with :le modifier
- ✓ FHIR Subscriptions - Query Criteria Different parameter types combined
- ✓ FHIR Subscriptions - Query Criteria Empty filterBy array should be accepted
- ✓ FHIR Subscriptions - Query Criteria Invalid parameter name should be rejected
- ✓ FHIR Subscriptions - Query Criteria missing modifier (false)
- ✓ FHIR Subscriptions - Query Criteria missing modifier (true)
- ✓ FHIR Subscriptions - Query Criteria Multiple conditions (AND)
- ✓ FHIR Subscriptions - Query Criteria Quantity Parameter with :eq modifier
- ✓ FHIR Subscriptions - Query Criteria Quantity Parameter with :gt modifier
- ✓ FHIR Subscriptions - Query Criteria Quantity Parameter with :le modifier
- ✓ FHIR Subscriptions - Query Criteria Reference Parameter with :identifier modifier
- ✓ FHIR Subscriptions - Query Criteria Reference Parameter with :of-type modifier
- ✓ FHIR Subscriptions - Query Criteria Reference Parameter with ResourceType/ID
- ✓ FHIR Subscriptions - Query Criteria String Parameter (default matching)
- ✓ FHIR Subscriptions - Query Criteria String Parameter with :contains modifier
- ✓ FHIR Subscriptions - Query Criteria String Parameter with :exact modifier
- ✓ FHIR Subscriptions - Query Criteria Token Parameter with :text modifier
- ✓ FHIR Subscriptions - Query Criteria Token Parameter with :text-advanced modifier
- ✓ FHIR Subscriptions - Query Criteria Token Parameter with |code (no system)
- ✓ FHIR Subscriptions - Query Criteria Token Parameter with system|code
- ✓ FHIR Subscriptions - Query Criteria URI Parameter with :above modifier
- ✓ FHIR Subscriptions - Query Criteria URI Parameter with :below modifier
✓ 4 Passed✕ 0 Failed
- ✓ FHIR Subscriptions - fhirPathCriteria: Complex expression with AND logic
- ✓ FHIR Subscriptions - fhirPathCriteria: Expression with %current variable
- ✓ FHIR Subscriptions - fhirPathCriteria: Expression with %previous.empty() for create events
- ✓ FHIR Subscriptions - fhirPathCriteria: Simple expression matches resource
✓ 5 Passed✕ 0 Failed
- ✓ FHIR Subscriptions - Event Numbering: eventsSinceSubscriptionStart Extension in SubscriptionStatus
- ✓ FHIR Subscriptions - Event Numbering: First Event Has Event Number 1
- ✓ FHIR Subscriptions - Event Numbering: Multiple Subscriptions Have Independent Counters
- ✓ FHIR Subscriptions - Event Numbering: Notification Bundle Contains Event Number
- ✓ FHIR Subscriptions - Event Numbering: Sequential Event Numbers
✓ 5 Passed✕ 0 Failed
- ✓ FHIR Subscriptions - Missing Event Detection: $events Operation with eventsSinceNumber
- ✓ FHIR Subscriptions - Missing Event Detection: Client Can Detect Missing Events
- ✓ FHIR Subscriptions - Missing Event Detection: Gap Detection Over Multiple Missing Events
- ✓ FHIR Subscriptions - Missing Event Detection: Recovery Workflow
- ✓ FHIR Subscriptions - Missing Event Detection: Sequential Event Numbers Enable Gap Detection
✓ 9 Passed✕ 0 Failed
- ✓ FHIR Subscriptions - $events Operation: Error Handling for Non-Existent Subscription
- ✓ FHIR Subscriptions - $events Operation: eventsSinceNumber Parameter
- ✓ FHIR Subscriptions - $events Operation: Limit Parameter
- ✓ FHIR Subscriptions - $events Operation: Returns Notification Bundles
- ✓ FHIR Subscriptions - $events Operation: Returns Past Events
- ✓ FHIR Subscriptions - $status Operation: Contains eventsSinceSubscriptionStart
- ✓ FHIR Subscriptions - $status Operation: Contains lastEventNumber
- ✓ FHIR Subscriptions - $status Operation: Error Handling for Non-Existent Subscription
- ✓ FHIR Subscriptions - $status Operation: Returns Subscription Status
✓ 7 Passed✕ 0 Failed
- ✓ FHIR Subscriptions - canFilterBy: Subscription with allowed comparator is accepted
- ✓ FHIR Subscriptions - canFilterBy: Subscription with allowed filterParameter is accepted
- ✓ FHIR Subscriptions - canFilterBy: Subscription with allowed modifier is accepted
- ✓ FHIR Subscriptions - canFilterBy: Subscription with multiple allowed filterParameters is accepted
- ✓ FHIR Subscriptions - canFilterBy: Subscription with not-allowed filterParameter is rejected
- ✓ FHIR Subscriptions - canFilterBy: Subscription with not-allowed modifier is rejected
- ✓ FHIR Subscriptions - canFilterBy: Subscription without filterBy is accepted
✓ 4 Passed✕ 0 Failed
- ✓ FHIR Subscriptions - notificationShape: Bundle contains included resources
- ✓ FHIR Subscriptions - notificationShape: Iterative includes are supported
- ✓ FHIR Subscriptions - notificationShape: Multiple includes are processed
- ✓ FHIR Subscriptions - notificationShape: Works without notificationShape
✓ 5 Passed✕ 0 Failed
- ✓ FHIR Subscriptions - resultForCreate: test-fails prevents create events when criteria matches
- ✓ FHIR Subscriptions - resultForCreate: test-passes allows create events when criteria matches
- ✓ FHIR Subscriptions - resultForCreate/resultForDelete: Combined usage
- ✓ FHIR Subscriptions - resultForDelete: test-fails prevents delete events
- ✓ FHIR Subscriptions - resultForDelete: test-passes allows delete events
✓ 7 Passed✕ 0 Failed
- ✓ FHIR Subscriptions - SubscriptionTopic Search: Search by _content (full-text search on title)
- ✓ FHIR Subscriptions - SubscriptionTopic Search: Search by _id
- ✓ FHIR Subscriptions - SubscriptionTopic Search: Search by _lastUpdated
- ✓ FHIR Subscriptions - SubscriptionTopic Search: Search by code (SubscriptionTopic type)
- ✓ FHIR Subscriptions - SubscriptionTopic Search: Search returns only SubscriptionTopic resources
- ✓ FHIR Subscriptions - SubscriptionTopic Search: Search with _count limit
- ✓ FHIR Subscriptions - SubscriptionTopic Search: Search with _sort
✓ 4 Passed✕ 0 Failed
- ✓ FHIR Subscriptions - Trigger Combinations: Only FHIRPath (no Query Criteria)
- ✓ FHIR Subscriptions - Trigger Combinations: Only Query Criteria (no FHIRPath)
- ✓ FHIR Subscriptions - Trigger Combinations: Query Criteria + FHIRPath (both match)
- ✓ FHIR Subscriptions - Trigger Combinations: Query Criteria + FHIRPath (update event with previous/current)
✓ 3 Passed✕ 0 Failed
- ✓ FHIR Subscriptions - Filter Timing: Filters on Create Interactions (after resource created)
- ✓ FHIR Subscriptions - Filter Timing: Filters on Delete Interactions (before resource deleted)
- ✓ FHIR Subscriptions - Filter Timing: Filters on Update Interactions (may be before or after)