The following examples are using a REST client library sourced from http://kong.github.io/unirest-java/. The unirest library is available in Java, Javascript, Ruby, PHP, Python & Objective-C, so chances are the library is available for the language you are developing in. While unirest is available for .NET, we currently recommend http://restsharp.org/ for .NET development. The .NET version of unirest does not currently include all the required features for integrating with the HealthBus REST API. If you are interested in code samples using restsharp please feel free to contact us.
NOTE: RestSharp is provided as a NuGet package, to consume RestSharp in Visual Studio please see this Microsoft article https://www.visualstudio.com/en-us/docs/package/nuget/consume.
For details on how to include, test or use the library in your project please refer to the unirest web site.
Please note the HealthBus services are operated in Production and Test environments. To ensure you are in the correct environment, all you need to change is
Production | Test | |
hostname | api.direct.hispdirect.com api.rosettahealth.net | api.rosettahealth.net |
credentials | usernames and passwords are not shared between environments |
The following code snippets show how to use the unirest Java library to call each of the endpoints provided by the HealthBus REST API. Minor adjustments to the following examples will produce working examples in each of the other languages that unirest supports.
If you are looking for more complete examples please see some of the common use cases we have written up.
Message Management REST API calls
// Retrieve a Bus message HttpResponse<JsonNode> response = Unirest.get("https://api.rosettahealth.net/MailManagement/ws/v3/retrieve/message") .header("accept", "application/json") .basicAuth("username", "password") // provide address and password .queryString("messageID", "") // provide required message ID .queryString("from", "") // provide required from address .asJson(); JsonNode json = response.getBody(); // json response
// Retrieve a raw Bus message HttpResponse<Object> response = Unirest.get("https://api.rosettahealth.net/MailManagement/ws/v3/retrieve/message/raw") .basicAuth("username", "password") // provide address and password .queryString("messageID", "") // provide required message ID .queryString("from", ""); // provide required from address InputStream is = response.getRawBody(); // raw message
// Retrieve an attachment HttpResponse<Object> response = Unirest.get("https://api.rosettahealth.net/MailManagement/ws/v3/retrieve/message/attachment") .basicAuth("username", "password") // provide address and password .queryString("messageID", "") // provide required message ID .queryString("from", "") // provide required from address .queryString("attachmentID", ""); // provide required attachment ID InputStream is = response.getRawBody(); // attachment
In most cases the Retrieve message listing is not the REST API call you want, you should instead call the notification service
// Retrieve a message listing on a queue inbox HttpResponse<JsonNode> response = Unirest.get("https://api.rosettahealth.net/MailManagement/ws/v3/retrieve/message/list") .header("accept", "application/json") .basicAuth("username", "password") // provide address and password .queryString("offset", "0") // provide message list offset .queryString("length", "10") // provide message list length .asJson(); JsonNode json = response.getBody(); // json response
// Send a HealthBus message HttpResponse<JsonNode> response = Unirest.put("https://api.rosettahealth.net/MailManagement/ws/v3/send/message") .header("accept", "application/json") .basicAuth("username", "password") // provide address and password .field("to", "") // provide required recipient address .field("subject", "") // provide required message subject .field("body", "") // provide required message body .asJson(); JsonNode json = response.getBody(); // json response
// Upload an attachment HttpResponse<JsonNode> response = Unirest.put("https://api.rosettahealth.net/MailManagement/ws/v3/send/message/attachment") .header("accept", "application/json") .basicAuth("username", "password") // provide address and password .field("attachment", new File("")) // provide file to upload .asJson(); JsonNode json = response.getBody(); // json response
// Send a HealthBus message with attachment HttpResponse<JsonNode> response = Unirest.put("https://api.rosettahealth.net/MailManagement/ws/v3/send/message") .header("accept", "application/json") .basicAuth("username", "password") // provide address and password .field("to", "") // provide required recipient address .field("subject", "") // provide required message subject .field("body", "") // provide required message body .field("attachmentId", "") // provide attachment id returned when uploading attachment .asJson(); JsonNode json = response.getBody(); // json response
// Remove a HealthBus message HttpResponse<JsonNode> response = Unirest.delete("https://api.rosettahealth.net/MailManagement/ws/v3/remove/message") .header("accept", "application/json") .basicAuth("username", "password") // provide address and password .queryString("messageID", "") // provide required message ID .queryString("from", "") // provide required from address .asJson(); JsonNode json = response.getBody(); // json response
Account Management REST API calls
// Create a HealthBus addressable inbox HttpResponse<JsonNode> response = Unirest.put("https://api.rosettahealth.net/AccountManagement/ws/v2/mail/{address}") .header("accept", "application/json") .basicAuth("username", "password") // provide Admin username and password .routeParam("address", "") // provide address to create .field("new_password", "") // provide password for address .asJson(); JsonNode json = response.getBody(); // json response
// Update a HealthBus address HttpResponse<JsonNode> response = Unirest.post("https://api.rosettahealth.net/AccountManagement/ws/v2/mail/{address}") .header("accept", "application/json") .basicAuth("username", "password") // provide Admin username and password .routeParam("address", "") // provide address to update .field("new_password", "") // provide password for address .asJson(); JsonNode json = response.getBody(); // json response
// Check existence of a HealthBus address HttpResponse<JsonNode> response = Unirest.get("https://api.rosettahealth.net/AccountManagement/ws/v2/mail/{address}") .header("accept", "application/json") .basicAuth("username", "password") // provide Admin username and password .routeParam("address", "") // provide address to check .asJson(); JsonNode json = response.getBody(); // json response
// Remove a HealthBus address HttpResponse<JsonNode> response = Unirest.delete("https://api.rosettahealth.net/AccountManagement/ws/v2/mail/{address}") .header("accept", "application/json") .basicAuth("username", "password") // provide Admin username and password .routeParam("address", "") // provide address to delete .asJson(); JsonNode json = response.getBody(); // json response
// Alter notifications for individual address HttpResponse<JsonNode> response = Unirest.post("https://api.rosettahealth.net/AccountManagement/ws/v2/notify/individual/{address}") .header("accept", "application/json") .basicAuth("username", "password") // provide Admin username and password .routeParam("address", "") // provide address to add a notification to .field("add_email_notification", "") // provide Email address .asJson(); JsonNode json = response.getBody(); // json response
// Check on notifications for individual address HttpResponse<JsonNode> response = Unirest.get("https://api.rosettahealth.net/AccountManagement/ws/v2/notify/individual/{address}") .header("accept", "application/json") .basicAuth("username", "password") // provide Admin username and password .routeParam("address", "") // provide address to add a notification to .asJson(); JsonNode json = response.getBody(); // json response
// Create an admin account HttpResponse<JsonNode> response = Unirest.put("https://api.rosettahealth.net/AccountManagement/ws/v2/domain/admin/{adminname}/FACILITY") .header("accept", "application/json") .basicAuth("username", "password") // provide Domain Admin username and password .routeParam("adminname", "") // provide Facility Admin username to create .field("password", "") // provide Facility Admin password .asJson(); JsonNode json = response.getBody(); // json response
// Update an admin account HttpResponse<JsonNode> response = Unirest.post("https://api.rosettahealth.net/AccountManagement/ws/v2/domain/admin/{adminname}/FACILITY") .header("accept", "application/json") .basicAuth("username", "password") // provide Domain Admin username and password .routeParam("adminname", "") // provide Facility Admin username to update .field("password", "") // provide Facility Admin password .asJson(); JsonNode json = response.getBody(); // json response
// Check an admin account HttpResponse<JsonNode> response = Unirest.get("https://api.rosettahealth.net/AccountManagement/ws/v2/domain/admin/{adminname}/FACILITY") .header("accept", "application/json") .basicAuth("username", "password") // provide Domain Admin username and password .routeParam("adminname", "") // provide Facility Admin username to check .asJson(); JsonNode json = response.getBody(); // json response
// Remove an admin account HttpResponse<JsonNode> response = Unirest.delete("https://api.rosettahealth.net/AccountManagement/ws/v2/domain/admin/{adminname}/FACILITY") .header("accept", "application/json") .basicAuth("username", "password") // provide Domain Admin username and password .routeParam("adminname", "") // provide Facility Admin username to remove .asJson(); JsonNode json = response.getBody(); // json response
// Get account listing as Domain Admin HttpResponse<JsonNode> response = Unirest.get("https://api.rosettahealth.net/AccountManagement/ws/v2/domain/list/admin") .header("accept", "application/json") .basicAuth("username", "password") // provide Domain Admin username and password .asJson(); JsonNode json = response.getBody(); // json response
// Get account listing as Facility Admin HttpResponse<JsonNode> response = Unirest.get("https://api.rosettahealth.net/AccountManagement/ws/v2/list/mail") .header("accept", "application/json") .basicAuth("username", "password") // provide Facility Admin username and password .asJson(); JsonNode json = response.getBody(); // json response
// Poll for new message notifications across an entire domain HttpResponse<JsonNode> response = Unirest.get("https://api.rosettahealth.net/AccountManagement/ws/v2/notify/organization") .header("accept", "application/json") .basicAuth("username", "password") // provide Admin username and password .queryString("domain", "") // provide domain to retrieve notifications for .asJson(); JsonNode json = response.getBody(); // json response
// Poll for new message notifications for a particular address HttpResponse<JsonNode> response = Unirest.get("https://api.rosettahealth.net/AccountManagement/ws/v2/notify/organization") .header("accept", "application/json") .basicAuth("username", "password") // provide Admin username and password .queryString("email", "") // provide address to retrieve notifications for .asJson(); JsonNode json = response.getBody(); // json response