Difference between revisions of "API Method MuMeasuresGet"

From Updox API
Jump to: navigation, search
(Messages)
(Messages)
Line 43: Line 43:
 
== Messages ==
 
== Messages ==
 
=== Core 17 ===
 
=== Core 17 ===
==== Description ====
+
==== MU Official Description ====
Gets unique list of patients within a set time-frame who have sent a message to any provider in the practice. Since all messages that originate on the practice portal are directed to the practice group inbox, any provider in the practice can see (and, thus, claim) the message in their numerator.
+
* <strong>In 2014</strong> -- Count of unique patients (or their authorized representatives) seen by the EP during the EHR reporting period that <strong>sent</strong> a secure message to a provider
<br><br>
+
* <strong>In 2015</strong> -- The capability of patients to send and receive a secure electronic message with the EP was fully enabled during the EHR reporting period
<strong>Note:</strong> The Core 17 response is not a percentage based measure <strong>if the date range is for the year 2015</strong>, however the value is returned as if it was percentage based
+
  Note: The measure is not percentage based <strong>for the year 2015</strong>, however the value is returned as if it was
 +
* <strong>2016 and beyond</strong> -- Count of unique patients (or their authorized representatives) seen by the EP during the EHR reporting period that <strong>received</strong> a secure message from a provider
  
 
==== Destination Address ====
 
==== Destination Address ====

Revision as of 14:28, 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

https://updoxqa.com/io/MuMeasuresGet

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 n/a

Core 7.1

MU Official Description

More than 50 percent 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

https://updoxqa.com/io/MuMeasuresGet

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

More than 5 percent 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

https://updoxqa.com/io/MuMeasuresGet

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