|
| 1 | +# Queue |
| 2 | + |
| 3 | +## Queue Overview |
| 4 | + |
| 5 | +* A queue in OpenMRS represents a line of patients waiting for a particular service in a specific location. For example, queues might be used for services such as triage, clinical consultation, lab or pharmacy. |
| 6 | + |
| 7 | +## Available operations for Queues |
| 8 | + |
| 9 | +1. [List queues](#list-queues) |
| 10 | +2. [Create queue](#create-queue) |
| 11 | +3. [Update queue](#update-queue) |
| 12 | +4. [Void queue](#void-queue) |
| 13 | + |
| 14 | +## List queues |
| 15 | + |
| 16 | +> List queues |
| 17 | +
|
| 18 | +```shell |
| 19 | +GET / |
| 20 | +``` |
| 21 | + |
| 22 | +```java |
| 23 | + |
| 24 | +OkHttpClient client = new OkHttpClient().newBuilder() |
| 25 | + .build(); |
| 26 | +Request request = new Request.Builder() |
| 27 | + .url("/openmrs/ws/rest/v1/queue) |
| 28 | + .method("GET", null) |
| 29 | + .addHeader("Authorization", "Basic YWRtaW46QWRtaW4xMjM=") |
| 30 | + .addHeader("Cookie", "JSESSIONID=1B06650EB0428F51EC119C909F58327C") |
| 31 | + .build(); |
| 32 | +Response response = client.newCall(request).execute(); |
| 33 | +
|
| 34 | +``` |
| 35 | +
|
| 36 | +```javascript |
| 37 | +
|
| 38 | +var requestHeaders = new Headers(); |
| 39 | +requestHeaders.append("Authorization", "Basic YWRtaW46QWRtaW4xMjM="); |
| 40 | +requestHeaders.append("Cookie", "JSESSIONID=1B06650EB0428F51EC119C909F58327C"); |
| 41 | +
|
| 42 | +var requestOptions = { |
| 43 | + method: 'GET', |
| 44 | + headers: requestHeaders, |
| 45 | + redirect: 'follow' |
| 46 | +}; |
| 47 | +
|
| 48 | +fetch("/openmrs/ws/rest/v1/queue, requestOptions) |
| 49 | + .then(response => response.text()) |
| 50 | + .then(result => console.log(result)) |
| 51 | + .catch(error => console.log('error', error)); |
| 52 | + |
| 53 | +``` |
| 54 | + |
| 55 | +> Success Response |
| 56 | +
|
| 57 | +```response |
| 58 | +{ |
| 59 | + "results": [ |
| 60 | + { |
| 61 | + "uuid": "4890b934-73c3-4c91-a93b-ce48f728b520", |
| 62 | + "display": "Clinical consultation", |
| 63 | + "name": "Clinical consultation", |
| 64 | + "description": "Clinical consultation", |
| 65 | + "links": [ |
| 66 | + { |
| 67 | + "rel": "self", |
| 68 | + "uri": "http://qa-refapp.openmrs.org/openmrs/ws/rest/v1/queue/4890b934-73c3-4c91-a93b-ce48f728b520" |
| 69 | + }, |
| 70 | + { |
| 71 | + "rel": "full", |
| 72 | + "uri": "http://qa-refapp.openmrs.org/openmrs/ws/rest/v1/queue/4890b934-73c3-4c91-a93b-ce48f728b520?v=full" |
| 73 | + } |
| 74 | + ] |
| 75 | + }, |
| 76 | + { |
| 77 | + "uuid": "ae0e1ad7-08ba-4a3d-aeed-a757591faf83", |
| 78 | + "display": "Triage service", |
| 79 | + "name": "Triage service", |
| 80 | + "description": "Triage service", |
| 81 | + "links": [ |
| 82 | + { |
| 83 | + "rel": "self", |
| 84 | + "uri": "http://qa-refapp.openmrs.org/openmrs/ws/rest/v1/queue/ae0e1ad7-08ba-4a3d-aeed-a757591faf83" |
| 85 | + }, |
| 86 | + { |
| 87 | + "rel": "full", |
| 88 | + "uri": "http://qa-refapp.openmrs.org/openmrs/ws/rest/v1/queue/ae0e1ad7-08ba-4a3d-aeed-a757591faf83?v=full" |
| 89 | + } |
| 90 | + ] |
| 91 | + }, |
| 92 | + { |
| 93 | + "uuid": "501b135b-1733-445e-9616-a4a05cee1bdd", |
| 94 | + "display": "Lab service", |
| 95 | + "name": "Lab service", |
| 96 | + "description": "Lab service", |
| 97 | + "links": [ |
| 98 | + { |
| 99 | + "rel": "self", |
| 100 | + "uri": "http://qa-refapp.openmrs.org/openmrs/ws/rest/v1/queue/501b135b-1733-445e-9616-a4a05cee1bdd" |
| 101 | + }, |
| 102 | + { |
| 103 | + "rel": "full", |
| 104 | + "uri": "http://qa-refapp.openmrs.org/openmrs/ws/rest/v1/queue/501b135b-1733-445e-9616-a4a05cee1bdd?v=full" |
| 105 | + } |
| 106 | + ] |
| 107 | + } |
| 108 | + ] |
| 109 | +} |
| 110 | +``` |
| 111 | + |
| 112 | +- If user not logged in to perform this action, a `401 Unauthorized` status returned. |
| 113 | + |
| 114 | +## List queue by UUID |
| 115 | + |
| 116 | +> List queue by UUID |
| 117 | +
|
| 118 | +```shell |
| 119 | +GET /queue/:target_queue_uuid |
| 120 | +``` |
| 121 | + |
| 122 | +```java |
| 123 | + |
| 124 | +OkHttpClient client = new OkHttpClient().newBuilder() |
| 125 | + .build(); |
| 126 | +Request request = new Request.Builder() |
| 127 | + .url("/openmrs/ws/rest/v1/queue/36475629-6652-44e9-a42b-c2b3b7438f72") |
| 128 | + .method("GET", null) |
| 129 | + .addHeader("Authorization", "Basic YWRtaW46QWRtaW4xMjM=") |
| 130 | + .addHeader("Cookie", "JSESSIONID=1B06650EB0428F51EC119C909F58327C") |
| 131 | + .build(); |
| 132 | +Response response = client.newCall(request).execute(); |
| 133 | + |
| 134 | +``` |
| 135 | + |
| 136 | +```javascript |
| 137 | +var requestHeaders = new Headers(); |
| 138 | +requestHeaders.append("Authorization", "Basic YWRtaW46QWRtaW4xMjM="); |
| 139 | +requestHeaders.append("Cookie", "JSESSIONID=1B06650EB0428F51EC119C909F58327C"); |
| 140 | + |
| 141 | +var requestOptions = { |
| 142 | + method: "GET", |
| 143 | + headers: requestHeaders, |
| 144 | + redirect: "follow", |
| 145 | +}; |
| 146 | + |
| 147 | +fetch( |
| 148 | + "/openmrs/ws/rest/v1/queue/36475629-6652-44e9-a42b-c2b3b7438f72", |
| 149 | + requestOptions |
| 150 | +) |
| 151 | + .then((response) => response.text()) |
| 152 | + .then((result) => console.log(result)) |
| 153 | + .catch((error) => console.log("error", error)); |
| 154 | +``` |
| 155 | + |
| 156 | +- Retrieve a queue by its UUID. Returns a `404 Not Found` if queue to be retrieved not exist. If user not logged in to perform this action, a `401 Unauthorized` status returned. |
| 157 | + |
| 158 | +## Create queue |
| 159 | + |
| 160 | +> Create queue |
| 161 | +
|
| 162 | +```shell |
| 163 | +POST /queue |
| 164 | +{ |
| 165 | + "name": "Triage queue", |
| 166 | + "description": "This triage queue description", |
| 167 | + "service": { |
| 168 | + "uuid": "d3db3805-2b90-4330-9064-eb6d42cbf582" |
| 169 | + }, |
| 170 | + "location": { |
| 171 | + "uuid": "8d6c993e-c2cc-11de-8d13-0010c6dffd0f" |
| 172 | + } |
| 173 | +} |
| 174 | +``` |
| 175 | + |
| 176 | +```java |
| 177 | + |
| 178 | +OkHttpClient client = new OkHttpClient().newBuilder() |
| 179 | + .build(); |
| 180 | +MediaType mediaType = MediaType.parse("application/json"); |
| 181 | +RequestBody body = RequestBody.create(mediaType, "{\n \"name\": \"Triage queue\",\n \"description\": \"This triage queue description\",\n \"service\": {\n \"uuid\": \"d3db3805-2b90-4330-9064-eb6d42cbf582\"\n },\n \"location\": {\n \"uuid\": \"8d6c993e-c2cc-11de-8d13-0010c6dffd0f\"\n }\n}"); |
| 182 | +Request request = new Request.Builder() |
| 183 | + .url("/openmrs/ws/rest/v1/queue") |
| 184 | + .method("POST", body) |
| 185 | + .addHeader("Authorization", "Basic YWRtaW46QWRtaW4xMjM=") |
| 186 | + .addHeader("Content-Type", "application/json") |
| 187 | + .addHeader("Cookie", "JSESSIONID=1B06650EB0428F51EC119C909F58327C") |
| 188 | + .build(); |
| 189 | +Response response = client.newCall(request).execute(); |
| 190 | + |
| 191 | +``` |
| 192 | + |
| 193 | +```javascript |
| 194 | +var requestHeaders = new Headers(); |
| 195 | +requestHeaders.append("Authorization", "Basic YWRtaW46QWRtaW4xMjM="); |
| 196 | +requestHeaders.append("Content-Type", "application/json"); |
| 197 | +requestHeaders.append("Cookie", "JSESSIONID=1B06650EB0428F51EC119C909F58327C"); |
| 198 | + |
| 199 | +var raw = JSON.stringify({ |
| 200 | + name: "Triage queue", |
| 201 | + description: "This triage queue description", |
| 202 | + service: { |
| 203 | + uuid: "d3db3805-2b90-4330-9064-eb6d42cbf582", |
| 204 | + }, |
| 205 | + location: { |
| 206 | + uuid: "8d6c993e-c2cc-11de-8d13-0010c6dffd0f", |
| 207 | + }, |
| 208 | +}); |
| 209 | + |
| 210 | +var requestOptions = { |
| 211 | + method: "POST", |
| 212 | + headers: requestHeaders, |
| 213 | + body: raw, |
| 214 | + redirect: "follow", |
| 215 | +}; |
| 216 | + |
| 217 | +fetch("/openmrs/ws/rest/v1/queue", requestOptions) |
| 218 | + .then((response) => response.text()) |
| 219 | + .then((result) => console.log(result)) |
| 220 | + .catch((error) => console.log("error", error)); |
| 221 | +``` |
| 222 | + |
| 223 | +- To create a queue you need to specify below attributes in the request body. If you are not logged in to perform this action, a `401 Unauthorized` status returned. |
| 224 | + |
| 225 | +### Attributes |
| 226 | + |
| 227 | + Parameter | Type | Description |
| 228 | + --- | --- | --- |
| 229 | + *name* | `String` | Name of the queue |
| 230 | + *description* | `String` | Description of the queue |
| 231 | + *service* | `Concept_UUID` |Concept UUID describing this queue/service |
| 232 | + *[location](#location)* | `Location UUID` | Location resource UUID |
| 233 | + |
| 234 | +## Update queue |
| 235 | + |
| 236 | +> Update queue |
| 237 | +
|
| 238 | +```shell |
| 239 | +POST /queue/:target_queue_uuid |
| 240 | +{ |
| 241 | + "name": "TRIAGE QUEUE (updated)", |
| 242 | + "description": "Queue for patients waiting for triage(updated)" |
| 243 | +} |
| 244 | +``` |
| 245 | + |
| 246 | +```java |
| 247 | + |
| 248 | +OkHttpClient client = new OkHttpClient().newBuilder() |
| 249 | + .build(); |
| 250 | +MediaType mediaType = MediaType.parse("application/json"); |
| 251 | +RequestBody body = RequestBody.create(mediaType, "{\n \"name\": \"TRIAGE QUEUE (updated)\",\n \"description\": \"Queue for patients waiting for triage(updated)\"\n}"); |
| 252 | +Request request = new Request.Builder() |
| 253 | + .url("/openmrs/ws/rest/v1/queue/c298d3e1-6def-422a-9d0a-e18906a4ae73") |
| 254 | + .method("POST", body) |
| 255 | + .addHeader("Authorization", "Basic YWRtaW46QWRtaW4xMjM=") |
| 256 | + .addHeader("Content-Type", "application/json") |
| 257 | + .addHeader("Cookie", "JSESSIONID=1B06650EB0428F51EC119C909F58327C") |
| 258 | + .build(); |
| 259 | +Response response = client.newCall(request).execute(); |
| 260 | + |
| 261 | +``` |
| 262 | + |
| 263 | +```javascript |
| 264 | +var requestHeaders = new Headers(); |
| 265 | +requestHeaders.append("Authorization", "Basic YWRtaW46QWRtaW4xMjM="); |
| 266 | +requestHeaders.append("Content-Type", "application/json"); |
| 267 | +requestHeaders.append("Cookie", "JSESSIONID=1B06650EB0428F51EC119C909F58327C"); |
| 268 | + |
| 269 | +var raw = JSON.stringify({ |
| 270 | + name: "TRIAGE QUEUE (updated)", |
| 271 | + description: "Queue for patients waiting for triage(updated)", |
| 272 | +}); |
| 273 | + |
| 274 | +var requestOptions = { |
| 275 | + method: "POST", |
| 276 | + headers: requestHeaders, |
| 277 | + body: raw, |
| 278 | + redirect: "follow", |
| 279 | +}; |
| 280 | + |
| 281 | +fetch( |
| 282 | + "/openmrs/ws/rest/v1/queue/c298d3e1-6def-422a-9d0a-e18906a4ae73", |
| 283 | + requestOptions |
| 284 | +) |
| 285 | + .then((response) => response.text()) |
| 286 | + .then((result) => console.log(result)) |
| 287 | + .catch((error) => console.log("error", error)); |
| 288 | +``` |
| 289 | + |
| 290 | +- Updates the queue record. Only modifies the properties specified in the request. Returns a 404 Not found status if the queue(to be updated) doesn't exist. If not authenticated, 401 Unauthorized status is returned. |
| 291 | + |
| 292 | +### Attributes |
| 293 | + |
| 294 | +| Parameter | Type | Description | |
| 295 | +| --------- | ------------ | --------------------------- | |
| 296 | +| UUID | `Queue UUID` | UUID of queue to be updated | |
| 297 | + |
| 298 | +## Delete queue |
| 299 | + |
| 300 | +> Delete the target queue |
| 301 | +
|
| 302 | +```shell |
| 303 | +DELETE /queue/<UUID>?purge=false |
| 304 | +``` |
| 305 | + |
| 306 | +```java |
| 307 | + |
| 308 | +OkHttpClient client = new OkHttpClient().newBuilder() |
| 309 | + .build(); |
| 310 | +MediaType mediaType = MediaType.parse("text/plain"); |
| 311 | +RequestBody body = RequestBody.create(mediaType, ""); |
| 312 | +Request request = new Request.Builder() |
| 313 | + .url("/openmrs/ws/rest/v1/queue/c298d3e1-6def-422a-9d0a-e18906a4ae73?purge=false") |
| 314 | + .method("DELETE", body) |
| 315 | + .addHeader("Authorization", "Basic YWRtaW46QWRtaW4xMjM=") |
| 316 | + .addHeader("Cookie", "JSESSIONID=1B06650EB0428F51EC119C909F58327C") |
| 317 | + .build(); |
| 318 | +Response response = client.newCall(request).execute(); |
| 319 | + |
| 320 | +``` |
| 321 | + |
| 322 | +```javascript |
| 323 | +var requestHeaders = new Headers(); |
| 324 | +requestHeaders.append("Authorization", "Basic YWRtaW46QWRtaW4xMjM="); |
| 325 | +requestHeaders.append("Cookie", "JSESSIONID=1B06650EB0428F51EC119C909F58327C"); |
| 326 | + |
| 327 | +var requestOptions = { |
| 328 | + method: "DELETE", |
| 329 | + headers: requestHeaders, |
| 330 | + redirect: "follow", |
| 331 | +}; |
| 332 | + |
| 333 | +fetch( |
| 334 | + "/openmrs/ws/rest/v1/queue/c298d3e1-6def-422a-9d0a-e18906a4ae73?purge=false", |
| 335 | + requestOptions |
| 336 | +) |
| 337 | + .then((response) => response.text()) |
| 338 | + .then((result) => console.log(result)) |
| 339 | + .catch((error) => console.log("error", error)); |
| 340 | +``` |
| 341 | + |
| 342 | +- Voids or delete the target queue. Returns a 404 Not found status if the queue(to be voided) doesn't exist. If not authenticated, 401 Unauthorized status is returned. |
| 343 | + |
| 344 | +### Query Parameters |
| 345 | + |
| 346 | + Parameter | Type | Description |
| 347 | + --- | --- | --- |
| 348 | + *purge* | `Boolean` | The resource will be voided/retired unless purge = ‘true’ |
| 349 | + UUID | `Queue UUID` | Queue resource UUID |
0 commit comments