Difference between revisions of "API Method MuMeasuresGet"

From Updox API
Jump to: navigation, search
(MU Official Description)
(MU Official Description)
Line 134: Line 134:
  
 
==== MU Official Description ====
 
==== 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.
+
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 ====
 
==== How Updox Helps ====

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

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

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

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

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