You are here


The LHC-Forms project consists of several components:

  • LHC-Forms, a web widget that renders input forms based on JSON form definitions.  For more on this see below, or visit the main demo, or the FHIR demo.
  • 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.
  • Autocomplete-lhc, a form field autocompleter used by LHC-Forms
  • UCUM-LHC, a unit conversion and validation library for units in the Unified Code for Units of Measure (UCUM) code system created by Regenstrief Institute, Inc.  In addition to the library itself, there is also a demo application which allows batch validation of the units.
  • Form Builder for LHC-Forms (currently password protected until it is ready), a tool for building LHC-Forms definitions, providing a GUI interface to generate the JSON definition file.

LHC-Forms Widget

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

LHC Forms viewed in iPad


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 (as in this demo).   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 (see below)
  • Default values
  • Unit lists for numeric questions
  • 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.


The UCUM-LHC package is an open-source JavaScript library for validating and converting units of measure from UCUM (Unified Code for 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.  The library also is used by a demo, which among other features offers batch validation of UCUM units, so in that way you can use the library without installing it.

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