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_31DDE349["Service: Query Dispatch Service"]
nQueryDispatchService_31DDE349 -->|produces| nAuditableEventOccurred_2E7ED8D7["Event: AuditableEventOccurred"]
nPatientEvent_34D33665["Event: PatientEvent"] -->|consumed by| nQueryDispatchService_31DDE349
nReportScheduled_BC6D32E["Event: ReportScheduled"] -->|consumed by| nQueryDispatchService_31DDE349
nQueryDispatchService_31DDE349 -->|sends| nDataAcquisitionRequested_4BBEB8F8["Command: DataAcquisitionRequested"]
subgraph nCompliance_DBAE25D_domain["Domain: Compliance"]
nAuditableEventOccurred_2E7ED8D7
end
subgraph nDataAccess_2A523756_domain["Domain: Data Access"]
nDataAcquisitionRequested_4BBEB8F8
end
subgraph nReport_4D4FBBDA_domain["Domain: Report"]
nPatientEvent_34D33665
nQueryDispatchService_31DDE349
nReportScheduled_BC6D32E
end
Common Configurations
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 | |