Reducing friction in patient engagement: an (unconventional) case study

Participate_SCDM_SurveyOur quest for frictionless, electronic patient reported outcomes (ePRO) data capture has us looking for novel ways to engage patients and streamline process. I’d like to share a fun and interesting example of this work, in which we used Participate (the OpenClinica ePRO solution) to engage study subjects at the recent SCDM annual conference.

Our goal at the SCDM conference was to get as many attendees to try OpenClinica Participate as possible. With the vast array of vendors, eye candy, and giveaways, it’s a big challenge to cut through the noise and offer a simple, fun way to engage an audience. The same holds true when engaging patients. With the enormous number of daily distractions, ensuring that your patients can quickly access, fill out and submit well-constructed, simple forms is key to compliance and ultimately, better data.

I built the form, shown here, in OpenClinica and enabled access to it via a custom URL, a new feature in our latest release.

Attendees filled out the form, sprinkled with fun health habit questions, then captured information to allow us to draw their names to win Fitbits and other giveaways. We were able to use this data and update our graphs to give the participant a view of how they stacked up with their peers—cool!

Imagine if patients could view a visual representation of the study they are enrolled in – see the parallels and possibilities?

Graphs_SCDM

Who says ePRO and patient engagement can’t be fun?

HTML Tips to Enhance Your eCRF

In some cases, the display of your OpenClinica eCRF may not be exactly what you had in mind. You may want to highlight key words or phrases, create a bullet point list, or insert a URL or image. Using HTML tags, you can make some simple manipulations to change the look and feel of your case report forms and make them more inviting for data entry.

Using HTML tags to enhance your eCRF

The HTML tags described in this document can be used in the following columns in the CRF Excel template:

  • Items Tab: LEFT_ITEM_TEXT
  • Items Tab: RIGHT_ITEM_TEXT
  • Items Tab: HEADER
  • Items Tab: SUBHEADER
  • Sections Tab: INSTRUCTIONS

What are HTML tags?

HTML, or Hyper Text Markup Language, is a markup language that is commonly used for web page development. HTML is written using “tags” that surround text or elements. These tags typically come in pairs, with a start tag and an end tag:

<start tag>Text to format</end tag>

To insert an HTML tag, simply surround the text you want to format with the desired tag. Below are the HTML tags that work in OpenClinica:

Table

You can download this HTML Tags Knowledge Article to help you to get started.

Inserting URLs and Images

HTML also allows you to insert a URL or Image into your CRF, which may be used to provide users with additional information or references.

Insert a URL

A URL may be inserted into a CRF in order to provide a link to further instructions or protocol information. To insert a URL into your CRF, use the following format:

Inserting images - using HTML tags to optimize your eCRF

Simply replace the areas highlighted in yellow with (a) your URL (inside the quotation marks) and (b) the hyperlinked text that you want to display to the user.

The following example will prompt the user to “Click Here!” and will open the OpenClinica website in a new browser tab:

<a href=”https://www.openclinica.com” target=”_blank”>Click Here!</a>

Inserting an image - using HTML tags to optimize your eCRF

Insert an Image

Similarly, HTML can be used to insert an image into your CRF. You might consider using an image to display a pain scale (or other reference image), or even to display your company’s logo.

Inserting an image - using HTML tags in OpenClinica

To insert an image into your CRF, use the following format:

<img src=”images/ImageName”>

Again, simply replace the highlighted text with your image name. You can use PNG, JPG, or GIF image extensions. You can control the height and width of the image using the following format:

<img src=”images/ImageName” width=“n” height=“n”>

The highlighted n corresponds to the desired width and height of the image in pixels.

The following example will insert an image (image1.png) with a width of 300 and a height of 150:

<img src=”images/image1.png” width=”300″ height=”150″>

You can download this Images & URLs Example CRF to help you practice.

The examples included in the above CRF Excel template will insert an image that already exists in the images directory of your OpenClinica application. To insert a custom image, community users will need to place the image in the following directory of the OpenClinica application:

tomcatwebappsOpenClinicaimages

OpenClinica Enterprise customers can request an image be placed on the application server by reaching out to the OpenClinica Enterprise Support team via the Issue Tracker.

Have you used HTML in your CRFs? Let us know if you have any other suggestions or tips!


IMPORTANT NOTES:

 The RESPONSE_OPTIONS_TEXT field is not included in the list above, as HTML tags are currently not supported for response options.

 The QUESTION_NUMBER field will display the text properly, but has been known to cause issues when extracting data. Therefore, HTML should not be used in this column.

Engineering OpenClinica’s Future

We recently introduced OpenClinica Participate™.

We believe all research participants—patients, clinicians, researchers, should have technology that meets the ‘anytime, anywhere’ expectations of a mobile, smartphone enabled world. Based on conversations with the OpenClinica community, many of you share this view as well. We are committed to making sure, at minimum, that OpenClinica’s patient engagement technology ‘just works’ in mobile, real world environments. Wherever possible, we will go beyond that and work to make the participant experience engaging, fun, and inspiring.

As transformational as these patient engagement capabilities can be, what we’ve been working on is about more than that. This is about a foundation for the future of the OpenClinica project.

EnketoAs I briefly pointed out in an earlier post, OpenClinica Participate forms are powered by the new enketo-express app that was built around the widely used enketo-core form engine (both available on GitHub).

OpenROSA_LogoOpenClinica will soon natively support the OpenRosa API, which will let you run Enketo, ODK Collect, or any of a number of OpenRosa-compliant data capture clients. Eventually, we envision the Enketo forms engine will replace the current CRF engine in the OpenClinica code base.

odk_medium_squareIf you’re not familiar with Enketo, ODK, or OpenRosa, here’s a primer. Most important is understanding there is a rich global ecosystem of technology, developers and users around the OpenRosa Xform standard. The resultant solutions have been battle tested in diverse health care and field-based data collection settings over many years. In keeping with the open source principles of flexibility and choice, aligning the OpenClinica ecosystem with this community will provide new features and options that you can use.

As my 5 year-old son has taught me when we watch Spider-Man cartoons, with great power comes great responsibility. So it is with open source software. Tapping in to the richness and variety of the OpenRosa community creates new possibilities, but it can add complexity too by expanding the options you have to choose from. OpenClinica is released under an open source license so that many developers can improve, combine, and share their code in a way that enhances quality, usability, and features, and we believe that this richness will drive the next cycle of innovation.

With this goal of better encouraging code contributions, the focus of the repositories and downloads will be easy-to-use open-source libraries: building blocks for developers to create their own OpenClinica-powered apps and modules.

If you are developing on the OpenClinica code base to add features or build custom solutions, you’ll have a greater ability to mix and match just the pieces you need, and to share back your improvements in a modular fashion. It will be much easier for developers to use the libraries and share their experience and contributions back with the community. We will gladly help out if you experience issues. Our own engineers will be able to focus more of their time on improving quality, usability, and functionality, rather than on packaging, testing, and supporting so many different environments. We hope to build a strong collaboration with the Enketo and OpenRosa communities that spawns new ideas and developments.

So try it out! Check out OpenClinica Participate or get started by hooking up OpenClinica with Enketo.

And need I say, you’ll certainly be able to learn more about these OpenClinica innovations at the upcoming OC15 conference in Amsterdam, May 31-June 1.

Introducing OpenClinica Participate

In clinical research, we all work towards better evidence-based, patient-centered health interventions. We all understand the importance of evidence. But how about patient-centered? We hear this phrase perhaps too often nowadays, but it’s more than just a buzzword. A patient-centered approach directs research toward questions that are important to patients so they can make more informed healthcare decisions. It measures the outcomes that are noticeable and important to patients, and produces results that help them weigh the value of healthcare.

At OpenClinica, we think increasing the patient-centeredness of research is vital. Industry, NIH, FDA, and the general public seem to agree, and furthermore share our view that technology can increase patient engagement. This can happen by designing highly accessible, mobile technology to:

  • Improve patient participation, motivation, and adherence
  • Increase ability to meet recruitment goals, budget, and completion timelines
  • Enable new designs that better target populations and/or more closely align with real-world use

HTCPhoneI’d like to introduce our upcoming product, OpenClinica Participate, a tool tightly integrated with OpenClinica for engaging patients and collecting data directly from study participants.

If you took our recent survey, you got a glimpse of what your forms for patient-reported outcomes could look like in OpenClinica Participate. Driven by a powerful forms engine based on proven open-source technology, the participant forms are simple, dynamic, mobile-focused, and platform-independent.

But it’s about a lot more than mobile-friendly forms. Patient expectations are rising while trial participation is shrinking. Clinical trials need to engage ‘Subjects’ as ‘Participants’ — by recruiting and retaining through real-time engagement and meeting the ‘anytime, anywhere’ expectations of a mobile, smartphone enabled world. It starts with an intuitive, action-oriented dashboard. Participants are greeted with a simple interface that motivates and focuses them on what they need to do today. The layout is responsive and knows whether you are using your phone, a tablet, or a traditional browser. Communication with the participant can occur through multiple channels — via the dashboard, through SMS, or via email, with options to help you make sure the right balance is struck between security and accessibility.

Participate_OCUILast, and perhaps most important, Participate is tightly integrated with the OpenClinica EDC platform. The Participate solution allows you to design your study and forms using the OpenClinica study build tools you already know, while seamlessly capturing all your clinical and participant-reported outcomes in a single database. You can build skip patterns, repeats, and other logic into your participant forms just as you do with traditional OpenClinica CRFs, using the same rules engine. You can use scheduling rules to identify the next time participant feedback is required. As data is submitted by study participants, their activities become part of the same audit trail that tracks what your clinical users do. The data they submit can immediately be reviewed and extracted along with CRF data from other sources.

Participate is extremely easy to adopt. As a modular add-on to your hosted OpenClinica Enterprise instance, it can be activated for any new study from within your study build screen. Forms are powered by the widely used open source enketo-express library and all editions of OpenClinica will support the widely-used OpenRosa API to let you run Enketo, ODK Collect, or any of a number of OpenRosa-compliant data capture clients. Participate utilizes a cloud-based Software-as-a-Service (SaaS) delivery model, so there is no costly and delay-inducing software deployment to worry about.

 

Visit the OpenClinica Participate Website

 

OpenClinica CRF Features – Everything But the Kitchen Sink

Whenever I teach case report form (CRF) design in the OpenClinica Central User Training class, the thought that always comes to mind is, “so many features, so little time.”  OpenClinica has so many features available for building your CRFs, that there is no way to cover every possibility within the limited timeframe of a training class. Fortunately, there are other ways of getting information out to users, so here I am to introduce you to additional features you may want to incorporate into your CRFs.

Some of these features use JQuery, a cross-platform JavaScript library designed to simplify scripting HTML. The JQuery code in the attached CRF template was tested on Firefox 35.0.1; it may function differently in different browsers or different languages. As with anything you set up for your study, if you decide to use any of the features presented here, be sure to test them in your test environment prior to using them in production.

Click to download: Kitchen Sink CRF and Associated Rules (zip file)

The attached CRF has 10 sections, and each section focuses on different feature sets. To see a list of all the Sections, click the drop-down arrow in the “Jump” box and then click the appropriate Section topic to see the features included within that topic.

CRF tabs

Throughout the CRF, each feature is labeled so you can easily recognize it and locate it in the CRF template. For example, “Left Item Text” is not a prompt you would ever include on your CRF, but it is the feature being demonstrated and is labeled as such so you can easily see where Left Item Text appears on any CRF you design. Each  Section of the CRF is listed below with a brief description as well as a screenshot so you can see how the features are represented.

1. Text

The Text Section illustrates various text features such as bold, italics, colors, and displaying images or a URL.  This section also covers the positioning of left item text, right item text, header, subheader, title, subtitle, and instruction text. The Instruction area of this section includes many text options that you can apply. If you would like to include blue text on your CRF, simply reference “Text color can be changed” in the Instructions cell of the Section worksheet of the attached CRF template and copy the formatting into your CRF.

CRF Text Tab
Click to enlarge

2. Response Options

This Section illustrates the various means of displaying responses on your CRF. It also provides additional features such as the “undo” button for deselecting a radio button, and an example of how to include a Visual Analog Scale. Again, simply reference the associated items in the Response Options section of the attached CRF template and copy the features you’d like into your CRF.

CRF Response Options
Click to enlarge

3. Layouts

The Layouts Section features different layout options such as column positions, horizontal vs. vertical checkboxes, and grid displays.

CRF Layouts
Click to enlarge

4. Required Items, Show/Hide, Decimals

This section demonstrates show and hide functionality, shows how real numbers (decimals) are displayed, and illustrates how required items are represented.

CRF Required Items
Click to enlarge

5. Validations This section demonstrates the various simple validations that are possible within the CRF template (less than, greater than, ranges, etc.). It also includes examples of some regular expressions.

CRF Validations
Click to enlarge

6. Calculations I

This is the first of two calculation sections. In this section, you’ll see examples of calculations and group calculations. You’ll have to upload the CRF, associate it with an event, and enter data to see the calculations in action.

CRF Calculations1
Click to enlarge

7. Calculations II

This second calculation section shows additional calculations and includes JQuery code for including a “calculate” button and for doing instant calculations. As above, you’ll have to upload the CRF, associate it with an event, and  enter data to see the calculations in action.

CRF Calculations2
Click to enlarge

8. Discrepancy Note*

The Discrepancy Note Section illustrates the effect of a Discrepancy Note Action Rule.

CRF Discrepancy Note
Click to enlarge

9. Show and Insert Actions*

This Section illustrates the effect of  Show and Insert Action Rules.

Before the rule is fired:                                            After the rule is fired:

CRF Action1                                CRF Action2
Click to enlarge

10. Email Action*

This Section illustrates the effect of an Email Action Rule.

CRF Email Action
Click to enlarge

*These last three Sections listed have Rules associated with them, and the Rules must be uploaded in order to experience the full functionality of these Sections. The Rules are also attached to this post.  If you want to use these Rules in your Study, be aware that you’ll have to edit them to reference the correct Object IDs for your Study.

So there you have it – one CRF, with everything but the kitchen sink. Check out the features and use them as you like. Just keep in mind that when designing CRFs, keeping it simple is always the best approach. There are times, however, when adding a little style to a form can help clarify things for data entry and may even help reduce discrepancies.

Happy designing!

Laura

Acknowledgements: Special thanks to Gerben Rienk Visser of Trial Data Solutions for many of these ideas, and to OpenClinica Application Support Engineer Jessica Gosselin for creating the Kitchen Sink CRF – we hope you find it useful!

Demystifying the Decode() Function

When I started learning to use OpenClinica, I was mystified by all of the things there were to learn. One year later, I continue to be surprised by the number of new skills and tricks I am discovering – whether in the form of existing functionality, new features (EventAction Rules!) or community contributions.

In May, I was putting together a workshop for OC14, OpenClinica’s Global Conference, on best practices for building studies in OpenClinica, and a colleague suggested I spend some time explaining all of the functions in our platform that can be used for calculations.

Alright, I thought, that should be easy. Functions for calculations in OpenClinica, while useful, are pretty simple. After reviewing the information found in the CRF Excel template for calculations, this is what I found:

Decode() screenshot

Sum()? Got it.

Min() and max()? Easy.

Stdev()? Fine.

Decode()? … wait, what?

A vague memory of our trainer’s explanation of the decode() function at OpenClinica’s Central User Training flashed through my mind. My guess is that there are users out there who don’t even know this little gem exists. Some of you may have seen it and simply dismissed it.

So what exactly is the decode() function?

The decode() function allows you to create an IF-THEN-ELSE type of statement. An item is compared to a list of search values, one by one. If the item matches a search value, then a corresponding result value is returned.

Here is your basic format:

decode(ComparatorItem, SearchVal1, ResultVal1, SearchVal2, ResultVal2, … DefaultValue)

The ComparatorItem is compared to each SearchVal in the list, one at a time:

  • The ComparatorItem is first compared to SearchVal1.
    • If the ComparatorItem = SearchVal1, return ResultVal1.
    • Otherwise, if ComparatorItem = SearchVal2, return Result2
    • And so on…
  • If none of the values in the Search List match the ComparatorItem, then the DefaultValue is returned.
    • The DefaultValue is optional, and can be omitted entirely.

The decode() function is probably best explained using an example. I will start by illustrating the general format of the function, and then move on to a few examples that may prove useful in your OpenClinica studies.

Let’s say users are entering a cardinal direction initial (i.e. N, S, E, W) and you want to decode the initial to the actual cardinal direction name (i.e. North, South, East, West). Your decode function would resemble the following:

decode(DirectionInitial, N, North, S, South, E, East, W, West, Unknown)

decode() function

Upon clicking save, the entry in the DirectionInitial Item will first be compared to “N” and if there is a match, “North” is returned. Otherwise, the DirectionInitial Item is compared to “E” and if there is a match, “East” is returned, and so on. If DirectionInitial Item does not match any of the options (N, S, E, or W), then “Unknown” will be returned.

Let’s look at a few examples that may be more applicable to your OpenClinica studies…

Temperature

If you have a Vital Signs or Physical Exam CRF, you may be capturing the Subject’s temperature. In the case report form, there can be two options for temperature units (Celsius or Fahrenheit), but the statistician may be interested only in a final temperature in degrees Celsius. To please both your data entry person and your statistician, you can create a field to capture the Temperature, and then create another Units field to record either Celsius or Fahrenheit. The final Temperature item will contain the decode function, which would resemble the following:

decode(TemperatureUnits, Celsius, Temperature, Fahrenheit, ((Temperature-32)*(5/9)) )

If TemperatureUnits is equal to “Celsius,” then return the value recorded in the Temperature Item. Otherwise, if TemperatureUnits is equal to “Fahrenheit,” then convert the value recorded in the Temperature Item to Celsius.

decode() function example

Scoring

Additionally, the decode() function is a great tool when scoring responses. For example, you may have an eligibility questionnaire with response options Yes, No, and NA, corresponding to response values 1, 0, and 99. You would like to count the number of ‘Yes’ responses. However, a simple sum() function will not work because if ‘NA’ is selected, ‘99’ will be included in the calculation. This can be solved by combining the decode() function with the sum() function.

First, you will need to determine the decode function for each item. In this case your function would be as follows:

decode(ItemName,1,1,0,0,99,0)

If Yes is selected (value of 1), then 1 will be returned. If No is selected (value of 0) then 0 will be returned. If NA is selected (value of 99) then 0 will be returned.

Note: We only want to calculate the number of ‘Yes’ responses.

This can then be combined into a sum() function. If you have three eligibility items in your CRF, then your decode function would be as follows:

sum(decode(Item1, 1,1,0,0,99,0), decode(Item2, 1,1,0,0,99,0), decode(Item3, 1,1,0,0,99,0)

decode() function examples

Interested in seeing any of these examples in action?
You can download this CRF Excel template which includes each of the three above examples.

Also, if you found another useful way to use this function, feel free to comment and share your tips with us!

Video Demos: Printing Subject Casebooks, Blank Casebooks and Blank CRFs

We’re in the process of updating our documentation to include video demos of various OpenClinica features. Take a look at the video links below on printing subject casebooks and CRFs for a taste of what’s to come – and learn something cool in the process!

Printing a Subject Casebook is a great, though much overlooked feature of OpenClinica. First introduced in OpenClinica 3.2, this feature allows you to print a Subject’s entire casebook, including all the data entered for that Subject. You have various output formats and options to include the audit history and notes and discrepancies in the results. The Subject’s data, metadata, and provenance data – it’s all there, from start to finish. It’s easy to view online, and formatted beautifully for printing. Just for fun, we tossed in demos on printing blank casebooks and blank CRF pages as well.

Check out the videos below and…happy printing!

Laura

Let’s get social about code!

The move to Github is a powerful one, and one that we know will foster a strong, active community.

github2When we started building OpenClinica more than eight years ago we wanted to build a community around it and one has really emerged. I’ve personally been able to interact with hundreds of users over the years and I’ve learned a lot from them. People have been pushing the boundaries; starting their own user groups (all over the world!) and building cool tools and add-ons for OpenClinica. The only downside is that I don’t think there has been enough visibility into what other people have been building – but why? Perhaps the right tools for sharing weren’t in place.

Github lets you fork, pull request and merge! Not only that, but you’ll get credit on your Github profile for pull requests that get merged. It’s like the social networking of code contributing. We really want to lower the barriers to solid contributions. In the past two months we’ve gotten five pull requests and two are in the process of being merged and will be in the next release (3.4). Of course, we’re really excited about this and look forward to more contributions. We really want this process to be simple, transparent and fun. Let us know what you think!

You can find us on Github here: https://github.com/OpenClinica/OpenClinica

And for more info on our road map, you can check here:

https://docs.openclinica.com/release-notes

Cheers!

Alicia

Automatic Event Scheduling with OpenClinica 3.3

An exciting new feature that has been at the top of the request list is Event Scheduling. Using the flexible and powerful Rules Designer in version 3.3, you can now build rules to automatically schedule events.

There are several workflow methods which offer a customized way of handling your study calendar.

Method 1 – Manual Reschedule

In Method 1, a series of study events can be scheduled at once off a given event date.  Any subsequent changes to event dates will not be automatically rescheduled. You can use arithmetic to generate future event dates (e.g. Visit 2 date = Visit 1 + 7).  OpenClinica also supports use of static dates and the system’s “current date” variable.

MethodOne

Method 2 – Auto Reschedule

In Method 2, a given event date generates all future visits and any changes to an event date in the chain will automatically update subsequent event dates.

MethodTwo

Method 3 – Auto Reschedule Based on Event Status

OpenClinica also allows you to write EventAction rules using the event STATUS. This opens the door to more calendaring power! Here, you can schedule an Event based on the status of another Event. For example, if a critical visit is skipped the system can auto-schedule the End of Study visit. Or let’s say you only want the next event to be scheduled when the current event is “Completed” (or “Started”). This is all possible–it’s really up to you.

MethodThree

Rule Designer Example

See the following example of scheduling the next event with Rule Designer.

EventActions_Rules

If you haven’t heard, the OpenClinica Rule Designer is now freely available. See http://wp.me/p6ydw-rE for more details.
Learn more about Event Scheduling with Rule Designer HERE.

EDC Scandinavia uses OpenClinica for BYOD ePRO

Krister Kristianson, PhD.
EDC Scandinavia AB, Stockholm

RESTful web services with OpenClinicaIn a recent study involving several hundreds patients, we decided to offer patients the ability to collect their diary data using their own smart phones instead of the traditional paper diary. The patients who decided to participate in the study downloaded the app to their smart phone or could use their desktop to access the application.

The apps were developed for iPhones and Androids with a reminder function that notified them when to report their symptoms. The data was then transferred to OpenClinica using the RESTful web services immediately upon entry. The patients ID and pin code were tested before data was added to the database to avoid any illegitimate entries.

About 80% of the patients decided to use the electronic diary – 65% using iPhones and 35% using various Android devices. They could also download the app to iPads or other tablets and if they preferred, they could use the application on desktops.

Outcomes:

  • Paper CRFsOf the patients who used the traditional method of reporting diary data on paper, 2.5 times more patients failed to report at scheduled time points compared to the patients using the app.
  • The app recorded the date and time automatically. When using paper, you can never be sure that the diary has not been completed at the time listed.
  • The addition of simple edit checks mitigated data entry errors, greatly contributing to the increased quality of the data.
  • It further reduced the manpower needed to manually enter data on to the eCRF and enabled us to monitor the patients in real-time and contact them if anything went wrong.

Although the patient population was relatively young, in this part of the world, even elderly patients are likely to use smart phones or desktops and would to be willing to use electronic data capture (EDC) for reporting diary data. The easy configuration of web services in OpenClinica and the ability to query data upon arrival made it an easy task to set up and validate the study.