Query Dispatch Service
Overview
The Query Dispatch service is primarily responsible for applying a lag period prior to making FHIR resource query requests against a facility endpoint. The current implementation of the Query Dispatch service handles how long Link Cloud should wait before querying for a patient’s FHIR resources after being discharged. To ensure that the encounter related data for the patient has been settled (Medications have been closed, Labs have had their results finalized, etc), tenants are able to customize how long they would like the lag from discharge to querying to be.
flowchart LR
nQueryDispatchService_2EC3D027["Service: Query Dispatch Service"]
nQueryDispatchService_2EC3D027 -->|produces| nAuditableEventOccurred_AF8D6F7["Event: AuditableEventOccurred"]
nPatientEvent_5A657A5A["Event: PatientEvent"] -->|consumed by| nQueryDispatchService_2EC3D027
nReportScheduled_4CB82B8["Event: ReportScheduled"] -->|consumed by| nQueryDispatchService_2EC3D027
nQueryDispatchService_2EC3D027 -->|sends| nDataAcquisitionRequested_2BDBDA78["Command: DataAcquisitionRequested"]
subgraph nCompliance_11EAF98F_domain["Domain: Compliance"]
nAuditableEventOccurred_AF8D6F7
end
subgraph nDataAccess_43BF0C8B_domain["Domain: Data Access"]
nDataAcquisitionRequested_2BDBDA78
end
subgraph nReport_523BC237_domain["Domain: Report"]
nPatientEvent_5A657A5A
nQueryDispatchService_2EC3D027
nReportScheduled_4CB82B8
end
Common Configurations
- Swagger
- Azure App Configuration
- Kafka Configuration
- Kafka Consumer Retry Configuration
- Service Registry Configuration
- CORS Configuration
- Token Service Configuration
- Service Authentication
- SQL Server Database Configuration
Database Schema
| Name | Type | Required? | Length |
|---|---|---|---|
| MigrationId | string | Yes | 150 |
| ProductVersion | string | Yes | 32 |
| Name | Type | Required? | Length |
|---|---|---|---|
| Id | string | Yes | 450 |
| ServiceName | string | Yes | |
| FacilityId | string | Yes | |
| Topic | string | Yes | |
| Key | string | Yes | |
| Value | string | Yes | |
| Headers | string | Yes | |
| ScheduledTrigger | string (date-time) | Yes | |
| RetryCount | integer | Yes | |
| CorrelationId | string | Yes | |
| CreateDate | string (date-time) | Yes |
| Name | Type | Required? | Length |
|---|---|---|---|
| Id | string | Yes | 450 |
| PatientId | string | Yes | |
| TriggerDate | string (date-time) | Yes | |
| ScheduledReportPeriods | string | Yes | |
| CorrelationId | string | Yes | |
| FacilityId | string | Yes | |
| CreateDate | string (date-time) | Yes | |
| ModifyDate | string (date-time) | No |
| Name | Type | Required? | Length |
|---|---|---|---|
| Id | string | Yes | 450 |
| DispatchSchedules | string | Yes | |
| FacilityId | string | Yes | |
| CreateDate | string (date-time) | Yes | |
| ModifyDate | string (date-time) | No |
| Name | Type | Required? | Length |
|---|---|---|---|
| Id | string | Yes | 450 |
| ReportPeriods | string | Yes | |
| FacilityId | string | Yes | |
| CreateDate | string (date-time) | Yes | |
| ModifyDate | string (date-time) | No |
| Name | Type | Required? | Length |
|---|---|---|---|
| SCHED_NAME | string | Yes | 120 |
| TRIGGER_NAME | string | Yes | 150 |
| TRIGGER_GROUP | string | Yes | 150 |
| BLOB_DATA | string | No |
| Name | Type | Required? | Length |
|---|---|---|---|
| SCHED_NAME | string | Yes | 120 |
| CALENDAR_NAME | string | Yes | 200 |
| CALENDAR | string | Yes |
| Name | Type | Required? | Length |
|---|---|---|---|
| SCHED_NAME | string | Yes | 120 |
| TRIGGER_NAME | string | Yes | 150 |
| TRIGGER_GROUP | string | Yes | 150 |
| CRON_EXPRESSION | string | Yes | 120 |
| TIME_ZONE_ID | string | No | 120 |
| Name | Type | Required? | Length |
|---|---|---|---|
| SCHED_NAME | string | Yes | 120 |
| ENTRY_ID | string | Yes | 140 |
| TRIGGER_NAME | string | Yes | 150 |
| TRIGGER_GROUP | string | Yes | 150 |
| INSTANCE_NAME | string | Yes | 150 |
| FIRED_TIME | integer | Yes | |
| SCHED_TIME | integer | Yes | |
| PRIORITY | integer | Yes | |
| STATE | string | Yes | 16 |
| JOB_NAME | string | No | 150 |
| JOB_GROUP | string | No | 150 |
| IS_NONCONCURRENT | boolean | Yes | |
| REQUESTS_RECOVERY | boolean | No |
| Name | Type | Required? | Length |
|---|---|---|---|
| SCHED_NAME | string | Yes | 120 |
| JOB_NAME | string | Yes | 150 |
| JOB_GROUP | string | Yes | 150 |
| DESCRIPTION | string | No | 250 |
| JOB_CLASS_NAME | string | Yes | 250 |
| IS_DURABLE | boolean | Yes | |
| IS_NONCONCURRENT | boolean | Yes | |
| IS_UPDATE_DATA | boolean | Yes | |
| REQUESTS_RECOVERY | boolean | Yes | |
| JOB_DATA | string | No |
| Name | Type | Required? | Length |
|---|---|---|---|
| SCHED_NAME | string | Yes | 120 |
| LOCK_NAME | string | Yes | 40 |
| Name | Type | Required? | Length |
|---|---|---|---|
| SCHED_NAME | string | Yes | 120 |
| TRIGGER_GROUP | string | Yes | 150 |
| Name | Type | Required? | Length |
|---|---|---|---|
| SCHED_NAME | string | Yes | 120 |
| INSTANCE_NAME | string | Yes | 200 |
| LAST_CHECKIN_TIME | integer | Yes | |
| CHECKIN_INTERVAL | integer | Yes |
| Name | Type | Required? | Length |
|---|---|---|---|
| SCHED_NAME | string | Yes | 120 |
| TRIGGER_NAME | string | Yes | 150 |
| TRIGGER_GROUP | string | Yes | 150 |
| REPEAT_COUNT | integer | Yes | |
| REPEAT_INTERVAL | integer | Yes | |
| TIMES_TRIGGERED | integer | Yes |
| Name | Type | Required? | Length |
|---|---|---|---|
| SCHED_NAME | string | Yes | 120 |
| TRIGGER_NAME | string | Yes | 150 |
| TRIGGER_GROUP | string | Yes | 150 |
| STR_PROP_1 | string | Yes | 512 |
| STR_PROP_2 | string | Yes | 512 |
| STR_PROP_3 | string | Yes | 512 |
| INT_PROP_1 | integer | No | |
| INT_PROP_2 | integer | No | |
| LONG_PROP_1 | integer | No | |
| LONG_PROP_2 | integer | No | |
| DEC_PROP_1 | number | No | |
| DEC_PROP_2 | number | No | |
| BOOL_PROP_1 | boolean | No | |
| BOOL_PROP_2 | boolean | No | |
| TIME_ZONE_ID | string | No | 80 |
| Name | Type | Required? | Length |
|---|---|---|---|
| SCHED_NAME | string | Yes | 120 |
| TRIGGER_NAME | string | Yes | 150 |
| TRIGGER_GROUP | string | Yes | 150 |
| JOB_NAME | string | Yes | 150 |
| JOB_GROUP | string | Yes | 150 |
| DESCRIPTION | string | No | 250 |
| NEXT_FIRE_TIME | integer | No | |
| PREV_FIRE_TIME | integer | No | |
| PRIORITY | integer | No | |
| TRIGGER_STATE | string | Yes | 16 |
| TRIGGER_TYPE | string | Yes | 8 |
| START_TIME | integer | Yes | |
| END_TIME | integer | No | |
| CALENDAR_NAME | string | No | 200 |
| MISFIRE_INSTR | integer | No | |
| JOB_DATA | string | No |
OpenAPI Operations
Route Parameters
None
Query Parameters
None
Gets a Query Dispatch facility configuration by facilityId
Route Parameters
| Name | Type | Required? | Description |
|---|---|---|---|
| facilityId | Yes |
Query Parameters
None
Creates a QueryDispatch configuration record.
Route Parameters
None
Query Parameters
None
Deletes a QueryDispatch configuration record.
Route Parameters
| Name | Type | Required? | Description |
|---|---|---|---|
| facilityId | Yes |
Query Parameters
None
Updates a QueryDispatch configuration record.
Route Parameters
| Name | Type | Required? | Description |
|---|---|---|---|
| facilityId | Yes |
Query Parameters
None
Health check endpoint
Route Parameters
None
Query Parameters
None
Relationships
flowchart LR
nQueryDispatchService_2EC3D027["Service: Query Dispatch Service"]
nQueryDispatchService_2EC3D027 -->|produces| nAuditableEventOccurred_AF8D6F7["Event: AuditableEventOccurred"]
nPatientEvent_5A657A5A["Event: PatientEvent"] -->|consumed by| nQueryDispatchService_2EC3D027
nReportScheduled_4CB82B8["Event: ReportScheduled"] -->|consumed by| nQueryDispatchService_2EC3D027
nQueryDispatchService_2EC3D027 -->|sends| nDataAcquisitionRequested_2BDBDA78["Command: DataAcquisitionRequested"]
subgraph nCompliance_11EAF98F_domain["Domain: Compliance"]
nAuditableEventOccurred_AF8D6F7
end
subgraph nDataAccess_43BF0C8B_domain["Domain: Data Access"]
nDataAcquisitionRequested_2BDBDA78
end
subgraph nReport_523BC237_domain["Domain: Report"]
nPatientEvent_5A657A5A
nQueryDispatchService_2EC3D027
nReportScheduled_4CB82B8
end