Protocol Subscriptions
Manage protocol subscriptions for individual patients.
List active protocol subscriptions for a patient
Section titled “List active protocol subscriptions for a patient”GET /api/v1/dossiers/:dossier_id/protocol_subscriptions
Parameters
Section titled “Parameters”| Name | Type | Description |
|---|---|---|
dossier_id |
string |
Required. Unique identifier for the patient of interest. |
Success
Section titled “Success”Sample request
GET /api/v1/dossiers/:dossier_id/protocol_subscriptions HTTP/1.1Host: api.example.comAuthorization: Bearer YOUR_API_TOKENDOSSIER_ID="your_dossier_id"curl "https://api.example.com/api/v1/dossiers/$DOSSIER_ID/protocol_subscriptions" \ -u "username:password"$username = "username"$password = "password"$dossierId = "your_dossier_id"$base64AuthInfo = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(("{0}:{1}" -f $username, $password)))
$headers = @{ "Authorization" = "Basic $base64AuthInfo"}
Invoke-RestMethod -Uri "https://api.example.com/api/v1/dossiers/$dossierId/protocol_subscriptions" ` -Method GET ` -Headers $headers[ { "id": 124, "daily_start_time": 32400, "start_at": "2014-02-14T15:43:24+01:00", "stop_at": "2014-03-14T15:43:24+01:00", "protocol_key": "rom", "protocol_name": "ROM", "flags": { "dagboek_roker": false }, "textvars": { "dagboek_hoofdprobleem": "Slaaptekort" } }]Start a protocol subscription
Section titled “Start a protocol subscription”POST /api/v1/dossiers/:dossier_id/protocol_subscriptions/
Parameters
Section titled “Parameters”| Name | Type | Description |
|---|---|---|
dossier_id |
string |
Required. Unique identifier for the patient to be subscribed. |
protocol_key |
string |
Required unless protocol_id given. Key uniquely identifying the protocol of interest as specified in RoQua. |
protocol_id |
integer |
Required unless protocol_key given. Key uniquely identifying the protocol of interest as specified in RoQua. |
start_at |
integer |
The Unix time when the first measurement should be prepared. Defaults to the current time. |
flags |
hash |
Boolean flags that are passed in when a questionnaire is being filled out. |
textvars |
hash |
String textvars that are passed in when a questionnaire is being filled out. |
Success
Section titled “Success”Sample request
POST /api/v1/dossiers/:dossier_id/protocol_subscriptions HTTP/1.1Host: api.example.comContent-Type: application/jsonAuthorization: Bearer YOUR_API_TOKEN
{ "protocol_id": 123, "start_at": 1392389004, "flags": { "dagboek_roker": false }, "textvars": { "dagboek_hoofdprobleem": "Slaaptekort" }}DOSSIER_ID="your_dossier_id"curl -X POST "https://api.example.com/api/v1/dossiers/$DOSSIER_ID/protocol_subscriptions" \ -u "username:password" \ -H "Content-Type: application/json" \ -d '{ "protocol_id": 123, "start_at": 1392389004, "flags": { "dagboek_roker": false }, "textvars": { "dagboek_hoofdprobleem": "Slaaptekort" }}'$username = "username"$password = "password"$dossierId = "your_dossier_id"$base64AuthInfo = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(("{0}:{1}" -f $username, $password)))
$headers = @{ "Authorization" = "Basic $base64AuthInfo" "Content-Type" = "application/json"}
$body = @{ protocol_id = "123" start_at = "1392389004" flags = @{ dagboek_roker = "false" } textvars = @{ dagboek_hoofdprobleem = "Slaaptekort" }} | ConvertTo-Json
Invoke-RestMethod -Uri "https://api.example.com/api/v1/dossiers/$dossierId/protocol_subscriptions" ` -Method POST ` -Headers $headers ` -Body $body{ "id": 124, "daily_start_time": 32400, "start_at": "2014-02-14T15:43:24+01:00", "stop_at": "2014-03-14T15:43:24+01:00", "protocol_key": "rom", "protocol_name": "ROM", "flags": { "dagboek_roker": false }, "textvars": { "dagboek_hoofdprobleem": "Slaaptekort" }, "responses": [ { "id": 2, "name": "OQ-45", "questionnaire_name": "OQ-45", "questionnaire_key": "oq45", "status": "open", "open_from": "2014-11-23T21:40:20+00:00+0200", "open_till": "2014-11-23T22:10:20+00:00+0200", "completer_type": "patient", "started_at": null, "completed_at": null, "completing_url": "https://demo.roqua.nl/login?token=abcdefgh", "values": {}, "outcome": { "scores": {}, "action": null, "actions": {}, "alarm": null, "attention": null, "complete": null } }, { "etc": "etc" } ]}When no protocol exists with the protocol_key provided
Section titled “When no protocol exists with the protocol_key provided”Sample request
POST /api/v1/dossiers/:dossier_id/protocol_subscriptions HTTP/1.1Host: api.example.comAuthorization: Bearer YOUR_API_TOKENDOSSIER_ID="your_dossier_id"curl -X POST "https://api.example.com/api/v1/dossiers/$DOSSIER_ID/protocol_subscriptions" \ -u "username:password"$username = "username"$password = "password"$dossierId = "your_dossier_id"$base64AuthInfo = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(("{0}:{1}" -f $username, $password)))
$headers = @{ "Authorization" = "Basic $base64AuthInfo"}
Invoke-RestMethod -Uri "https://api.example.com/api/v1/dossiers/$dossierId/protocol_subscriptions" ` -Method POST ` -Headers $headersWhen a flag does not exist within the protocol
Section titled “When a flag does not exist within the protocol”Sample request
POST /api/v1/dossiers/:dossier_id/protocol_subscriptions HTTP/1.1Host: api.example.comAuthorization: Bearer YOUR_API_TOKENDOSSIER_ID="your_dossier_id"curl -X POST "https://api.example.com/api/v1/dossiers/$DOSSIER_ID/protocol_subscriptions" \ -u "username:password"$username = "username"$password = "password"$dossierId = "your_dossier_id"$base64AuthInfo = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(("{0}:{1}" -f $username, $password)))
$headers = @{ "Authorization" = "Basic $base64AuthInfo"}
Invoke-RestMethod -Uri "https://api.example.com/api/v1/dossiers/$dossierId/protocol_subscriptions" ` -Method POST ` -Headers $headers{ "errors": { "base": [ "flag_does_not_exist" ] }}When a flag is set to an invalid value
Section titled “When a flag is set to an invalid value”Sample request
POST /api/v1/dossiers/:dossier_id/protocol_subscriptions HTTP/1.1Host: api.example.comAuthorization: Bearer YOUR_API_TOKENDOSSIER_ID="your_dossier_id"curl -X POST "https://api.example.com/api/v1/dossiers/$DOSSIER_ID/protocol_subscriptions" \ -u "username:password"$username = "username"$password = "password"$dossierId = "your_dossier_id"$base64AuthInfo = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(("{0}:{1}" -f $username, $password)))
$headers = @{ "Authorization" = "Basic $base64AuthInfo"}
Invoke-RestMethod -Uri "https://api.example.com/api/v1/dossiers/$dossierId/protocol_subscriptions" ` -Method POST ` -Headers $headers{ "errors": { "base": [ "flag_value_invalid" ] }}Stop a protocol subscription.
Section titled “Stop a protocol subscription.”DELETE /api/v1/dossiers/:dossier_id/protocol_subscriptions/:id
Parameters
Section titled “Parameters”| Name | Type | Description |
|---|---|---|
dossier_id |
string |
Required. Unique identifier for the patient to be subscribed. |
id |
string |
Required. Key uniquely identifying the protocol subscription to be stopped. |
Success
Section titled “Success”Sample request
DELETE /api/v1/dossiers/:dossier_id/protocol_subscriptions/:id HTTP/1.1Host: api.example.comAuthorization: Bearer YOUR_API_TOKENDOSSIER_ID="your_dossier_id"curl -X DELETE "https://api.example.com/api/v1/dossiers/$DOSSIER_ID/protocol_subscriptions/:id" \ -u "username:password"$username = "username"$password = "password"$dossierId = "your_dossier_id"$base64AuthInfo = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(("{0}:{1}" -f $username, $password)))
$headers = @{ "Authorization" = "Basic $base64AuthInfo"}
Invoke-RestMethod -Uri "https://api.example.com/api/v1/dossiers/$dossierId/protocol_subscriptions/:id" ` -Method DELETE ` -Headers $headers{ "id": 124, "daily_start_time": 32400, "start_at": "2014-02-14T15:43:24+01:00", "stop_at": "2014-03-14T15:43:24+01:00", "protocol_key": "rom", "protocol_name": "ROM"}When no protocol subscription exists with the given id
Section titled “When no protocol subscription exists with the given id”Sample request
DELETE /api/v1/dossiers/:dossier_id/protocol_subscriptions/:id HTTP/1.1Host: api.example.comAuthorization: Bearer YOUR_API_TOKENDOSSIER_ID="your_dossier_id"curl -X DELETE "https://api.example.com/api/v1/dossiers/$DOSSIER_ID/protocol_subscriptions/:id" \ -u "username:password"$username = "username"$password = "password"$dossierId = "your_dossier_id"$base64AuthInfo = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(("{0}:{1}" -f $username, $password)))
$headers = @{ "Authorization" = "Basic $base64AuthInfo"}
Invoke-RestMethod -Uri "https://api.example.com/api/v1/dossiers/$dossierId/protocol_subscriptions/:id" ` -Method DELETE ` -Headers $headers