Health Information Standards and Discovery


Research Area: Health Information Standards and Discovery

Researchers: Ye Wang, Paul Lynch, Clem McDonald

LHC-Forms project iconThe LHC-Forms project consists of several components:

  • LHC-Forms, a web widget that renders input forms based on JSON form definitions.
  • Demo applications: Main demo, or the FHIR app demo
  • Form Builder for LHC-Forms a tool for building LHC-Forms definitions, providing a GUI interface to generate the JSON definition file.
  • Clinical Table Search Service, a web API service powering autocompletion lookups in LHC-Forms for things like drug names, medical conditions, ICD-10-CM codes, numerous genetic databases, and more.
  • UCUM tools for unit conversion and validation of units in the Unified Code for Units of Measure  (UCUM) code system created by Regenstrief Institute, Inc.
  • Autocomplete-lhc, a form field autocompleter used by LHC-Forms.

LHC-Forms Widget

LHC-Forms is an open-source JavaScript widget that creates input forms based on JSON form definitions.

It is targeted for, but not limited to, Web-based medical applications, with potential integration into existing electronic health records (EHRs) or personal health records (PHRs) via SMART on FHIR. It is able to show the 2000+ forms already defined in LOINC, for which it is used by LOINC. 

Features include:

  • Sections containing questions
  • Repeating sections and questions (by specifying cardinality)
  • Hiding and showing questions via skip logic based on the user's answers to other questions
  • Scores for answers which update a total score field.
  • Coded answer lists which might require a matching input
  • Answer lists that come from searching an external database such as the Clinical Table Search Service
  • Default values
  • Date fields
  • Help messages for questions

Entered data can be exported as either a JSON structure or as FHIR  resources. For information, see the demo, or visit the package’s documentation web site. One of the interesting features of the demo app is the ability to save to a local file and load from a local file. On the demo site is a Personal Health Record form, which in conjunction with the “save” and “load” buttons, one could use to keep track of one’s health history.

Clinical Table Search Service

The Clinical Table Search Service is a web service that software programs can use for querying clinical data tables, and which LHC-Forms definitions can use for specifying lookups for drug names, medical conditions, ICD-10-CM codes, and many other things. In addition to an API for querying LOINC questions and forms, it also provides an API for retrieving JSON form definitions of LOINC forms that can be displayed in the LHC-Forms widget, as in this demo.


The Autocomplete-lhc JavaScript library is a form-field autocompletion package with a lot of special features to support the needs of the LHC-Forms widget. Features include:

  • Section 508-compliant (i.e., accessible to screen readers)
  • Coded-value lists
  • Headings for groups of items in lists
  • Two-column lists when there is not enough space on the page to show the list in a single column.
  • Numbered list items (optional) with the ability to pick by number.
  • Can require that an entry in the field match the list.
  • Multi-select lists
  • Table-format for list items with multiple fields
  • Event listeners for various things like "list selection".
  • "autofill" option, which fills in the field automatically if there is just one list item
  • Default value (optional), which gets placed in the field when the field gets focus (along with showing the list).
  • A "see more" link which provides an expanded list of items.
  • A results cache for the search autocompleter, so that repeats of AJAX calls for the same list items are not necessary.

UCUM Tools

The project has several tools for working with UCUM (Unified Code for Units of Measure).

  • The UCUM-LHC package is an open-source JavaScript library for validating and converting UCUM units of measure. The library is intended to be included in and used by another program. For documentation, see the README file in the package repository.
  • A web service API for validating and converting UCUM units is also available. Like the UCUM-LHC library, this is also meant to be used by a program, but if the program has internet access, the program can send URLs to the web service to do the validation and conversion without the need for installing a library.
  • Batch validation of units is supported by the UCUM-LHC library’s demo page.
  • An autocompletion web service API is useful for form fields of UCUM units where you want a list of matching UCUM units to appear below as the user types. This is part of the Clinical Table Search Service described above.

Form Builder for LHC-Forms

The Form Builder, which is still password-protected at present, provides a web interface for constructing LHC-Forms definitions, so that one does not have to write the JSON by hand. Features include:

  • Easy imports of LOINC questions and forms, which can been modified or made a part of other forms
  • Drag-and-drop modification of the section/question hierarchical structure of the form
  • Preview of the rendered form in LHC-Forms
  • Export as a FHIR Questionnaire resource