Configuring Service Queues
Service Queues is one of the most configurable modules in O3, allowing you to customize queue tables, priorities, statuses, vitals, biometrics, and more. This guide covers all configuration options for the Service Queues module.
Overview
The Service Queues module manages patient queues in outpatient settings. You can configure:
- Dashboard title and default service queue
- Priority tags with colors and styles
- Queue table columns and layouts (per queue/status)
- Concept UUIDs for vitals, diagnoses, and other clinical data
- Vitals and biometrics configuration
- Visit queue numbers
- Patient chart URLs
- Recommended visit types
Dashboard Title
Configure the title displayed on the service queues dashboard:
{
"@openmrs/esm-service-queues-app": {
"dashboardTitle": {
"key": "serviceQueues",
"value": "Service queues"
}
}
}key- Translation key for the titlevalue- Default text if translation is not found
Default Service Queue
Set the default service queue selected when opening the start visit form:
{
"@openmrs/esm-service-queues-app": {
"defaultInitialServiceQueue": "Outpatient Triage"
}
}The default is "Outpatient Triage".
Priority Configuration
Configure priority tags with colors and styles:
{
"@openmrs/esm-service-queues-app": {
"priorityConfigs": [
{
"conceptUuid": "04f6f7e0-e3cb-4e13-a133-4479f759574e",
"color": "red",
"style": null
},
{
"conceptUuid": "f4620bfa-3625-4883-bd3f-84c2cce14470",
"color": "green",
"style": null
},
{
"conceptUuid": "dc3492ef-24a5-4fd9-b58d-4fd2acf7071f",
"color": "orange",
"style": null
}
]
}
}Available colors: red, magenta, purple, blue, teal, cyan, gray, orange, green, warm-gray, cool-gray, high-contrast, outline
Available styles: bold (or null for no special style)
conceptUuid- UUID of the priority concept to configurecolor- Color of the priority tagstyle- Style to apply (currently onlyboldornull)
Concept UUIDs
Configure concept UUIDs used throughout the service queues module:
{
"@openmrs/esm-service-queues-app": {
"concepts": {
"defaultPriorityConceptUuid": "f4620bfa-3625-4883-bd3f-84c2cce14470",
"defaultStatusConceptUuid": "51ae5e4d-b72b-4912-bf31-a17efb690aeb",
"defaultTransitionStatus": "ca7494ae-437f-4fd0-8aae-b88b9a2ba47d",
"emergencyPriorityConceptUuid": "04f6f7e0-e3cb-4e13-a133-4479f759574e",
"systolicBloodPressureUuid": "5085AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
"diastolicBloodPressureUuid": "5086AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
"pulseUuid": "5087AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
"temperatureUuid": "5088AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
"oxygenSaturationUuid": "5092AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
"heightUuid": "5090AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
"weightUuid": "5089AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
"respiratoryRateUuid": "5242AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
"generalPatientNoteConceptUuid": "162169AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
"problemListConceptUuid": "1284AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
"visitDiagnosesConceptUuid": "159947AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
"historicalObsConceptUuid": ["161643AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"]
}
}
}Key concepts:
defaultPriorityConceptUuid- Default priority (e.g., "Not urgent")defaultStatusConceptUuid- Default status (e.g., "Waiting")defaultTransitionStatus- Status when attending service (e.g., "In Service")emergencyPriorityConceptUuid- Highest priority (e.g., "Emergency")- Vitals concepts (systolic/diastolic BP, pulse, temperature, oxygen saturation, height, weight, respiratory rate)
generalPatientNoteConceptUuid- Free text note fieldproblemListConceptUuid- Problem list conceptvisitDiagnosesConceptUuid- Visit diagnoses concepthistoricalObsConceptUuid- Observations displayed in previous visit modal (array)
Queue Tables
Configure queue table columns and layouts. This is a powerful feature that allows you to customize table columns per queue and status.
Column Definitions
Define custom columns or override built-in columns:
{
"@openmrs/esm-service-queues-app": {
"queueTables": {
"columnDefinitions": [
{
"id": "patient-name",
"columnType": "patient-name",
"header": "Patient Name"
},
{
"id": "custom-identifier",
"columnType": "patient-identifier",
"header": "National ID",
"config": {
"identifierTypeUuid": "f85081e2-b4be-4e48-b3a4-7994b69bb101"
}
},
{
"id": "status",
"columnType": "status",
"header": "Status",
"config": {
"statusConfigs": [
{
"conceptUuid": "51ae5e4d-b72b-4912-bf31-a17efb690aeb",
"iconComponent": "Group"
},
{
"conceptUuid": "ca7494ae-437f-4fd0-8aae-b88b9a2ba47d",
"iconComponent": "InProgress"
}
]
}
},
{
"id": "actions",
"columnType": "actions",
"config": {
"actions": {
"buttons": ["call"],
"overflowMenu": ["move", "transition", "edit", "remove", "undo"]
}
}
},
{
"id": "queue-number",
"columnType": "queue-number",
"config": {
"visitQueueNumberAttributeUuid": "c61ce16f-272a-41e7-9924-4c555d3f18b5"
}
}
]
}
}
}Built-in column types:
patient-name- Patient namepatient-identifier- Patient identifier (requiresidentifierTypeUuidin config)patient-age- Patient agecoming-from- Where patient came frompriority- Priority tagstatus- Status with icons (requiresstatusConfigsin config)queue- Queue namequeue-number- Queue number (requiresvisitQueueNumberAttributeUuid)visit-start-time- Visit start timewait-time- Wait timeactions- Action buttons (requiresactionsconfig)
Status icons: Group, InProgress
Action types: move, call, edit, transition, remove, delete, undo
Column configuration options:
id- Unique identifier for the columncolumnType- Type of column (if different from ID)header- Header text (will be translated if it's a valid translation key)config- Column-specific configuration:- For
patient-identifier:identifierTypeUuid- UUID of identifier type - For
status:statusConfigs- Array of status icon configurations - For
actions:actions.buttonsandactions.overflowMenu- Arrays of action types - For
queue-number:visitQueueNumberAttributeUuid- UUID of visit attribute containing queue number
- For
Table Definitions
Define which columns appear in which tables:
{
"@openmrs/esm-service-queues-app": {
"queueTables": {
"tableDefinitions": [
{
"columns": [
"patient-name",
"coming-from",
"priority",
"status",
"queue",
"wait-time",
"actions"
],
"appliedTo": [
{
"queue": "",
"status": ""
}
]
},
{
"columns": [
"patient-name",
"custom-identifier",
"priority",
"status",
"actions"
],
"appliedTo": [
{
"queue": "some-queue-uuid",
"status": "some-status-uuid"
}
]
}
]
}
}
}columns- Array of column IDs (fromcolumnDefinitionsor built-in columns)appliedTo- (Optional) Array of conditions specifying which queues/statuses this table applies to- If omitted, applies to all tables
- Empty
queueorstatusstring means "all queues" or "all statuses" - If multiple table definitions match, the first one is used
Example: The first table definition applies to all queues and statuses (default). The second applies only to a specific queue and status combination.
Visit Queue Number Attribute
Configure the visit attribute that contains the queue number:
{
"@openmrs/esm-service-queues-app": {
"visitQueueNumberAttributeUuid": "c61ce16f-272a-41e7-9924-4c555d3f18b5"
}
}Note: This must be set if you use a queue-number column in any table definition (unless set per-column in columnDefinitions).
Default Identifier Types
Configure identifier types displayed in queue tables:
{
"@openmrs/esm-service-queues-app": {
"defaultIdentifierTypes": [
"05ee9cf4-7242-4a17-b4d4-00f707265c8a",
"f85081e2-b4be-4e48-b3a4-7994b69bb101"
]
}
}These identifier types are displayed on patient search result pages.
Contact Attribute Type
Configure the person attribute type for contact information (e.g., "Next of kin contact details"):
{
"@openmrs/esm-service-queues-app": {
"contactAttributeType": "some-attribute-type-uuid"
}
}Patient Chart URL
Configure where users are redirected when clicking a patient name:
{
"@openmrs/esm-service-queues-app": {
"customPatientChartUrl": "${openmrsSpaBase}/patient/${patientUuid}/chart"
}
}The URL template supports:
${openmrsSpaBase}- Base URL for the SPA${patientUuid- UUID of the patient${openBase}- Base URL (also available)
Vitals Configuration
Configure vitals form settings:
{
"@openmrs/esm-service-queues-app": {
"vitals": {
"formUuid": "a000cb34-9ec1-4344-a1c8-f692232f6edd",
"encounterTypeUuid": "67a71486-1a54-468f-ac3e-7091a9a79584"
}
}
}formUuid- UUID of the vitals formencounterTypeUuid- UUID of the encounter type for vitals encounters
Biometrics Configuration
Configure biometrics display:
{
"@openmrs/esm-service-queues-app": {
"biometrics": {
"bmiUnit": "kg / m²"
}
}
}bmiUnit- Unit for BMI display (default:"kg / m²")
Recommended Visit Types
Enable recommended visit types tab:
{
"@openmrs/esm-service-queues-app": {
"showRecommendedVisitTypeTab": true,
"visitTypeResourceUrl": "/etl-latest/etl/patient/"
}
}showRecommendedVisitTypeTab- Whether to display recommended visit type tabvisitTypeResourceUrl- Custom URL to load resources for recommended visit types (required ifshowRecommendedVisitTypeTabistrue)
Appointment Statuses
Configure appointment statuses (shared with appointments app):
{
"@openmrs/esm-service-queues-app": {
"appointmentStatuses": [
"Requested",
"Scheduled",
"CheckedIn",
"Completed",
"Cancelled",
"Missed"
]
}
}The default statuses are: Requested, Scheduled, CheckedIn, Completed, Cancelled, Missed.