Harvest + OpenMRS

Explore a subset of the OpenMRS demo data with Harvest

To The Demo!


Harvest enables and builds upon the iterative nature of data discovery, and ultimately, hypothesis-driven research. To get you started, follow this step-by-step example or feel free to dive in and explore yourself!


Open the Demo

To get started, click To the Demo! to open the demo in a new tab/window. There is a "Tutorial" link at the top-left corner of the page that will bring up a dialog for reference if your prefer to not switch back and forth between windows/tabs.

Tour of the Data Concept

A data concept is a conceptual representation (hence the name) of one or more discrete fields. One of the core philosophies of Harvest is to ensure when users look at their data, the context makes sense. Data concepts provide this context for the fields that are contained within it.

Let's get started by exploring the interface a bit. On the left side of the page you will see a list of categories. Click on one of the categories to expand it and see the available data concepts, or just concepts for short. Click on any concept that you'd like to view. Upon clicking on the concept, a box will appear in the middle area of the page. This is called the concept view.

The concept view itself has a few descriptive areas and buttons to note.

Concept Name
The name of the concept is displayed at the top left.
The name of the category is displayed to the right of the concept name.
The button can be clicked to expand and show additional information about the concept.
Concept views remain in the middle of the page unless you click on the button.

Each Data Concept has one or more queryable fields contained within it. These fields are generally always related and this arrangment makes it easier to see all the available queryable fields in one place. Each one of these queryable fields have a form control that is used to enter and add a query condition. Depending on the type of data, the most appropriate form control will be available.


Form Controls

There are two main types of data, text-based and numerical. To accomondate thinking about and querying these types, different form controls are used for filling out the query conditions. Let's view an example of each.

Text-based Form Control

Click on EncounterDiagnosis (on the left). The concept view will appear in the middle area, but now let's focus our attention to input box form control. Something that looks like this..

As you start typing, a list of choices appear that you can choose from. Certain data (like Diagnosis) have quite a few choices to choose from, so it's not practical to wade through all of them manually or feel like you're scrolling an infinite list of choices.

Numerical Form Control

Click on Lab MeasurementsHemoglobin (HGB) to view an example. You will be presented with a different set of form controls appropriate for querying on numerical data. There is a dropdown list of common operators and an input box to put a numerical value.

To help you get a sense of the data, you will notice a few statistics displayed, including Avg, Min and Max. An even more useful visual is the chart which displays the distribution of the data. In this particular example, you will immediately see the outliers on the far right of the chart.

The remaining components you will see in the concept view are specific to each field control.

The definition of the field is provided below the form controls.
Numerical data will display various stats including min, max and average and categorical data will display the distinct count of values for the field.
A real-time look at the dataset to help you get a sense of the data to make educated decisions on the query conditions you want to apply. If there are too many discrete values (as is often the case with numeric values) a clustered histogram will be presented. If this is the case, Clustered will be shown at the top of the chart.

The final elements to notice are the couple of buttons and . These buttons are used to actually add a condition to your query. Clicking on exclude will exclude the data that matches your condition, while clicking on include will only include the data that matches your condition. In the next section, we will make use of these buttons.


Example Query

Now that you know what you're looking at, let's add a few query conditions!

For our example, we're going to look for "female patients who are not classified as having an Asymptomatic HIV infection or as HIV CDC Category A and have a CD4 Count less than 300". Let's begin by selecting the concept Gender under Patient Details.

First, let's look at the components for our example:

Concept Name
Category Name
Patient Details
Form Controls
F and M are the only acceptable answer options. You can view all of the options by selecting the box, or begin typing to see whether any options match your search criteria. Answers matching your criteria can be selected from the auto-generated list.
"Self-identified gender where gender is the assemblage of properties that distinguish people on the basis of the societal roles (ORDR;HLF Table 0001 (with additions))"
Distinct Count
3 (Unavailable, F, M)
3 bars indicating Unavailable, F, and M are shown along with their frequency of appearance in the dataset.

For our example, we'll type "F" into the search box, then hit return to select the auto-populated option. Next, click on the button. The filter now appears on the right side under Applied Filters. This filters the dataset from 5.3K patients to 3.5K patients which is displayed in the upper left corner, below the site name. Note that the button has now appeared to the left of the other buttons.

For the HIV category classification, we click on the HIV CDC Category under Disease Management. In the search box, start typing "Asymptomatic HIV Infection, CDC Category A", click on the correct choice and click on . The dataset is now reduced to 3.3K patients.

Finally, to filter based on CD4 count, we click on the CD4 Count under Lab Measurements (located under the "Other" section). Select "is less than" in the numerical operator dropdown and type "300" into the text box. Click . The dataset is now reduced to 540 patients.

In our Applied Filters panel we now have the following:

  • Patient Gender includes F
  • CD4 Count is less than 300

View Your Results

Now that we have filters in place, let's start looking at our data. To begin, click on at the bottom of the list of Applied Filters. Alternatively, you can click the "Review" link at the top of the page.

The data will load and a table will be displayed with a few default columns including: MRN, Current Age, Gender, Diagnosis, Medication, and Review of Systems. To see more results of the query, simply continue to scroll down and additional records will be loaded.

The next couple sections explain how to order your data and change which columns you are viewing.


Order the Data

The data can be ordered by simply clicking on any of the column names. Clicking the column once will order the data ascending by that field and clicking the field again will order the data descending by that field. Clicking a third time will remove the ordering for that column.


Customize Your View

It is possible to customize the view of the data by clicking the button at the top right of the page. All available data concepts for display are provided. To add a concept for view, click the button on the items on the left. To remove items from view, click the button next to the concept name. You can reorder the list of chosen items by clicking on an item and dragging and dropping it to create the preferred order. Select to save the view and return to the data.


Patient Summary

If you'd like to look at a patient summary, select the MRN of the patient. This view contains the MRN, gender, birthday, and current age of the patient as well as details about each encounter that the patients has had. The most recent encounter appears at the top of the encounter descriptions and is identified by the date and patient age at encounter. The encounter record displays the information available for that encounter.

When you're done exploring the data, click the "Discover" link at the top of the page to return to the query interface. Apply some new filters and keep exploring!