Difference between revisions of "API Method MuMeasuresGet"
(→Response JSON) |
(→Request JSON) |
||
Line 55: | Line 55: | ||
==== Request JSON ==== | ==== Request JSON ==== | ||
− | < | + | <code>beginning</code> and <code>ending</code> are both required. |
− | If the start of the date range is >= 2016, then both the < | + | If the start of the date range is >= 2016, then both the <code>beginning</code> and <code>ending</code> must be for the same year |
<div style="width:500px;"> | <div style="width:500px;"> | ||
{{Json Request MuMeasureGetCore17}} | {{Json Request MuMeasureGetCore17}} |
Latest revision as of 13:50, 2 December 2015
Contents |
Description
The following code samples describe the processes involved in obtaining Mu Measures
Prerequisites
1 This API call requires Vendor-level credentials. The credentials should be populated into the applicationId
and applicationPassword
fields of the auth
block:
{ ... "auth": { "applicationId": "vendorId", "applicationPassword": "vendorPassword", "accountId": "", "userId": "" } }
2 This API call requires a Practice/Account-level identifier. The identifier should be populated into the accountId
field of the auth
block:
{
...
"auth": {
"applicationId": "vendorId",
"applicationPassword": "vendorPassword",
"accountId": "practiceId",
"userId": ""
}
}
3 This API call requires a User-level identifier. The identifier should be populated into the userId
field of the auth
block:
{
...
"auth": {
"applicationId": "vendorId",
"applicationPassword": "vendorPassword",
"accountId": "practiceId",
"userId": "userId"
}
}
Code Samples
Language | Source Code Examples |
---|---|
C# | public void TalkToUpdox() { string json = new JavaScriptSerializer().Serialize(new { measureIds = [ "core:17" ], beginning = 1449073961000, ending = 1455073961000, auth = new { applicationId = "vendorId", applicationPassword = "vendorPassword", accountId : "accountId", userId: "userId" } }); string url = "https://updoxqa.com/io/MuMeasuresGet"; SendReceiveJSON(json, url); } private void SendReceiveJSON(string json, string url) { var httpWebRequest = WebRequest.Create(url); httpWebRequest.ContentType = "application/json"; httpWebRequest.Method = "POST"; using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream())) { streamWriter.Write(json); streamWriter.Flush(); streamWriter.Close(); var httpResponse = (HttpWebResponse) httpWebRequest.GetResponse(); using (var streamReader = new StreamReader(httpResponse.GetResponseStream())) { var result = streamReader.ReadToEnd(); } } } |
Java |
public void TalkToUpdox() throws Exception { String uri = "https://updoxqa.com/io/MuMeasuresGet"; ObjectMapper mapper = new ObjectMapper(); Map<String,Object> messageData = BuildMessage(); String jsonData = mapper.writeValueAsString(messageData); HttpResponse httpResponse = SendReceiveJSON(jsonData, uri); HttpEntity responseEntity = httpResponse.getEntity(); String response = EntityUtils.toString(responseEntity); JsonNode actualObj = mapper.readTree(response); System.out.println(actualObj.get("responseCode")); System.out.println(actualObj.get("responseMessage")); } private Map<String,Object> BuildMessage() throws Exception { Map<String,Object> messageData = new HashMap(); List<String> measures = new ArrayList(); measures.add("core:17"); messageData.put("measureIds", measures); final long beginning = 1449073961000; final long ending = 1455073961000; messageData.put("beginning", beginning); messageData.put("ending", ending); Map<String,Object> authData = new HashMap(); authData.put("applicationId", "vendorId"); authData.put("applicationPassword", "vendorPassword"); authData.put("accountId", "accountId"); authData.put("userId", "userId"); messageData.put("auth", authData); return messageData; } private HttpResponse SendReceiveJSON(String jsonData, String uri) throws Exception { HttpClient httpClient = new DefaultHttpClient(); HttpResponse response = null; StringEntity params = new StringEntity(jsonData); try { HttpPost request = new HttpPost(uri); request.addHeader("content-type", "application/json"); request.setEntity(params); response = httpClient.execute(request); } catch (Exception ex) { // handle exception here } finally { httpClient.getConnectionManager().shutdown(); } return response; } |
Messages
Core 17
MU Official Description
- In 2014 -- Count of unique patients (or their authorized representatives) seen by the EP during the EHR reporting period that sent a secure message to a provider
- In 2015 -- The capability of patients to send and receive a secure electronic message with the EP was fully enabled during the EHR reporting period
Note: The measure is not percentage based for the year 2015, however the value is returned as if it was
- 2016 and beyond -- Count of unique patients (or their authorized representatives) seen by the EP during the EHR reporting period that received a secure message from a provider
Destination Address
Request JSON
beginning
and ending
are both required.
If the start of the date range is >= 2016, then both the beginning
and ending
must be for the same year
{ "measureIds": [ "core:17" ], "beginning": 1449073961000, "ending": 1490073961000, "auth": { "applicationId": "vendorId", "applicationPassword": "vendorPassword", "accountId": "accountId", "userId": "userId" } }
HTTP Response Status
200 OK
Response JSON
{
"successful": true, "responseMessage": "OK", "responseCode": 2000, "measures": { "core:17": { "numerator": 5, "denominator": -1, "thresholdMet": false, "excluded": false, "includedPatientIds": [ "103005", "103018", "103024", "120005", "120019" ], "includedPatientDates": null // Only included if date range >= 2016 } } }
Field List | Description |
---|---|
numerator |
number of patients that have sent a message to any provider in the practice |
denominator |
-1 since there is no way for this system know the total number of patients |
thresholdMet |
n/a |
excluded |
n/a |
includedPatientIds |
list of patientIds that were counted when totaling the numerator |
includedPatientDates |
This is included only if the date range is >= 2016 |
Core 7.1
MU Official Description
Count of all unique patients seen by the EP during the EHR reporting period are provided timely (available to the patient within 4 business days after the information is available to the EP) online access to their health information, with the ability to view, download, and transmit to a third party.
How Updox Helps
Since our system does not track visits for the patients, the most information it can return is a list of PatientIds and Timestamps when their CCDA was sent to their Portal account. It is then up to the API consumer to match visits to CCDAs within the appropriate 4-day window. Note that an entry is made in the response list for each time a CCDA was sent to the patient's portal account - this means that it is possible (even likely) that a given PatientId will be listed more than once.
Destination Address
Request JSON
{ "measureIds": [ "core:7.1" ], "auth": { "applicationId": "vendorId", "applicationPassword": "vendorPassword", "accountId": "accountId", "userId": "userId" } }
HTTP Response Status
200 OK
Response JSON
{ "successful": true, "responseMessage": "OK", "responseCode": 2000, "measures": { "core:7.1": { "numerator": 5, "denominator": -1, "thresholdMet": false, "excluded": false, "includedPatientIds": null, "includedPatientDates": [ { "patientId": "153", "date": 1391615821000 }, { "patientId": "153", "date": 1391615821000 }, { "patientId": "153", "date": 1394464574000 }, { "patientId": "154", "date": 1392025290000 }, { "patientId": "155", "date": 1392033412000 } ] } } }
Field List | Description |
---|---|
numerator |
-1 since patients can be listed more than once, simply counting them is insufficient |
denominator |
-1 since there is no way for this system know the total number of patients |
thresholdMet |
n/a |
excluded |
n/a |
includedPatientIds |
n/a |
includedPatientDates |
Core 7.2
MU Official Description
Count of all unique patients seen by the EP during the EHR reporting period (or their authorized representatives) view, download, or transmit to a third party their health information.
How Updox Helps
Gets a unique list of patients within a set time-frame who have viewed, downloaded, or transmitted a CCD* document, and stores that count as numerator.
Destination Address
Request JSON
{ "measureIds": [ "core:7.2" ], "auth": { "applicationId": "vendorId", "applicationPassword": "vendorPassword", "accountId": "accountId", "userId": "userId" } }
HTTP Response Status
200 OK
Response JSON
{ "successful": true, "responseMessage": "OK", "responseCode": 2000, "measures": { "core:7.2": { "numerator": 5, "denominator": -1, "thresholdMet": false, "excluded": false, "includedPatientIds": [ "103005", "103018", "103024", "120005", "120019" ], "includedPatientDates": null } } }
Field List | Description |
---|---|
numerator |
count of unique patients within a set time-frame who have viewed, downloaded, or transmitted a CCD* document |
denominator |
-1 since there is no way for this system know the total number of patients |
thresholdMet |
n/a |
excluded |
n/a |
includedPatientIds |
list of patientIds that were counted when totaling the numerator |
includedPatientDates |
list of unique patients within a set time-frame who have viewed, downloaded, or transmitted a CCD* document |