How to Automate Patient History with SurveyJS

Instantly elevate the standard of care of your patients while remaining HIPAA compliant.

By Prithwish Nath

July 11th, 2022

Image of some people smiling

Building a comprehensive patient history is a critical link in the healthcare chain. This helps medical professionals better understand a condition, track its progress, learn risk factors, and ultimately, make informed decisions regarding treatment.

But the conventional way of doing this is inefficient.

Verbal questionnaires are rigid templates that interfere with the natural flow of conversation, and sensitive information might not be discussed freely. Patient history surveys can be a pain point to fill out when patients just want to be helped ASAP, and ultimately, paper still needs to be manually scanned into the system.

Can we do better? Let's take a look at SurveyJS, a JavaScript library that you can easily build interactive, automated, electronic patient surveys with - and host them on your organization's own web portal. This offers an unmatched degree of flexibility and clinical data yield in a fast, powerful, secure, and royalty-free package.

The Need Of The Hour

Our goal is to improve the standard of care provided, by making sure we get as much clinical data as possible using automated patient history surveys. With that in mind, here are our business requirements :

  1. Extremely rapid implementation and fast turn-around times, because every second counts when you're saving lives.
  2. We need surveys to be easy to design, easy to integrate into hospitals' existing EHR (electronic health record) systems from Cerner, MEDITECH, Epic, etc., and easy to modify without developer input.
  3. Listing issues without their severity is traditionally a problem, so we need a system that can create dynamically defined scales on demand for qualitative detection or screening - like the NRS for pain, the WAST for domestic abuse, or the Zung scale for depressive symptoms.
  4. We need to use a patient's answers at certain points in the interview, to determine subsequent questions. This ensures patients only have the most relevant questions so they don't plod through the survey or leave questions unfilled, causing false positives.
  5. Not only do we need to avoid non-disclosure of clinical information on sensitive topics like suicide, psych eval history, drug use, chronic illnesses, etc., but we'd also need to guarantee the security and privacy of this information under HIPAA or GDPR.

Enter: SurveyJS.

Breaking each of these requirements down and viewing them through the lens of software development, here is why SurveyJS fits the meditech industry like a glove.

Time Constraints

When building surveys conventionally- HTML/JavaScript with custom validation logic, HTTP requests, and a database - even something as simple as adding a new question needs separate changes in server, database, and frontend code. This added complexity travels up the dependency chain and if you don't have a proper CI/CD pipeline, changes could take days to weeks.

SurveyJS on the other hand is distributed as client-side libraries, and uses a data-driven approach

  • fully dynamic surveys defined as JSON schemas, with templating for UI elements. Implementation is quicker, maintenance is easier, and changes take *mere seconds *to reflect in the frontend.

Integration and Iteration

SurveyJS optimizes the cycle of design, integration, and subsequent iteration.

  1. On the design side of things, surveys are easy to build, and fully customizable with CSS and prebuilt themes. Support for auto-localization, and third-party JavaScript components such as Datepicker or EasyAutocomplete furthers ease-of-design.
  2. For integration, SurveyJS embraces a* building-blocks* philosophy, shipping as client-side component libraries for React, Angular, Vue.js, Knockout, with full jQuery compatibility. So you could use any server + database combination with it as long as JSON, text, or BLOB data types are supported. Finally, since all data is in industry-standard JSON, you can easily integrate it with existing EHR solutions.
  3. Iterating on surveys is also streamlined, since you define surveys as well-structured, self-documenting JSON documents. Employees without a programming background can easily add or change questions, field types, and implement conditional logic without code, and without waiting on the dev team. No different than regular data entry.

The SurveyJS Library is completely free-and-open-source under the MIT license, but with a nominally priced commercial-use license, you could also get Creator - an easy-to-use GUI solution to build surveys visually - that you can embed in your employee intranet and enable even non-programmers to knock out a professional-looking design in no time flat.

Conditional Logic

Without any code at all, you can implement skip logic and branching in the survey schema itself, to determine questions based on respondents' answers to previous questions. This allows for a personalized survey experience for each patient, leading to higher completion rates and more accurate clinical data.

Plus, you can design any number of predetermined branches of inquiry based on what kind of medical center you are.

Dynamically Created Scales

SurveyJS is extremely versatile with its field types. It ships with support for matrix questionnaires and rating scales out of the box, and you can dynamically define these scales with exact values, limits, and visibility and validation logic, making it possible to not only implement any kind of self-report or observer-rated medical scale imaginable for differential diagnosis, but also make sure the scale is appropriate for the demographic being assessed (e.g., children, adults, older adults, etc.)

To demonstrate how easy it is to build these on demand, here's a Leicester Cough Questionnaire, made (and augmented with conditional logic) using SurveyJS.

Questions pertaining to social distress are only shown when Question 5 is true; Question 9 is dependent on cough severity, and so it is invisible unless certain questions (1, 2, 14 and 15 in this example) have concerning enough responses.


SurveyJS is fully self-hostable on your organizations' own servers, giving you full control over data security. Free from black box third-party solutions, you ensure that sensitive data is stored in a secure location of your choosing, fully administered by your organization, encrypted, regularly backed up, with only authorized personnel having access.

A Day In The Life Of Your Organization Using SurveyJS

It's a rainy Tuesday in July, and Regina, 52, has had a persistent cough for the last week. She books an appointment, and your web portal presents her with the patient history survey, automatically translated to Spanish based on her locale.

She is asked to identify the severity of the cough via your custom Leicester Cough Questionnaire, and then it's on to personal and family history, where she marks down a history of tobacco use.

The output is structured, synced to the hospital's EHR database, and relevant diagnostic labs/imaging suggested - so when Regina checks in for her visit, her physician already has *all *the information he needs.

He suggests a treatment plan, and they finish up by going over her patient history together as a sanity check.

Every stage of this process was streamlined thanks to SurveyJS.

  • The patient could do her part from home, using a survey self-hosted on your hospital's web portal.
  • Thanks to auto-localization, no Spanish-English Interpreters were required, putting them to better use elsewhere in the hospital.
  • The traditional Leicester Cough Questionnaire is a lengthy one, but using conditional logic, it was significantly easier to get through as questions unrelated to her cough were skipped.
  • No printouts or paperwork was involved. All data in or out was seamlessly integrated with the existing EHR system, and secured.


How do you make automated patient history-taking better? Simply put, efficiency, empathy, and privacy.

Being fast, accurate, providing adequate and relevant response options for patients to describe their issues, customizability to minimize potential bias and false positives, and most of all, guaranteeing the privacy of sensitive information - all create a safe, secure, and non-judgmental environment for patients.

Using SurveyJS to implement automated patient history, makes the most sense for overcoming technological challenges concerning all of the above.