npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

lforms

v36.8.0

Published

[LForms](http://lhncbc.github.io/lforms/), a.k.a. LHC-Forms, is a feature-rich, open-source Web Component that creates input forms, based on definition files, for Web-based applications. In addition to its native form-definition format, it partially sup

Downloads

2,984

Readme

What is LForms?

LForms, a.k.a. LHC-Forms, is a feature-rich, open-source Web Component that creates input forms, based on definition files, for Web-based applications. In addition to its native form-definition format, it partially supports the HL7 FHIR Questionnaire standard (SDC profile), and work is in progress to expand that support.

It is being developed by the Lister Hill National Center for Biomedical Communications (LHNCBC), National Library of Medicine (NLM), part of the National Institutes of Health (NIH), with the collaboration and support from the Regenstrief Institute, Inc. and the LOINC Committee.

For features and demos, please visit the project page.

Licensing and Copyright Notice

See LICENSE.md.

Customizing and Contributing

If you wish to revise this package, the following steps will allow you to make changes and test them:

  • Install Node.js (version 14 is what we are currently using, but it should work with later versions)
  • Clone the lforms repository and cd to its directory
  • source bashrc.lforms (make sure node dir is available at ~/)
  • npm ci
  • source bashrc.lforms # to add node_modules/.bin to your path
  • npm run build # build both FHIR libs and LHC-Forms web component
  • npm run start # starts the app we use for testing
  • npm run test # runs the unit tests and e2e tests

If you are planning to contribute new functionality back to us, please coordinate with us, so that the new code is in the right places, and so that you don't accidentally add something that we are also working on.

Development server

  • Run npm run start for a dev server. Navigate to http://localhost:4200/. The app will automatically reload if you change any of the source files.

  • Run npm run start-public if you need to access to the dev server from a different machine. For example, to run Narrator from a Windows PC.

Build

  • Run npm run build to build the project and generate a production version of the js files, which are much smaller than the development version. It generates an ES2017 version of the js files under dist/lforms. For details on the files to load, see "Usng the LHC-Forms Web Component".
    The dist directory is deleted and recreated during the process.

    The build also concatenates all the js files (except for zone.min.js and the FHIR support files) into a single lhc-forms.js file, and it works, but we don't currently recommend their use because the source maps don't work with these files. Also, there is a dist/webcomponent directory that is created with a copy of the files in dist/lforms, but that is only needed for the tests.

Running tests

  1. Run npm run test to run unit tests and e2e tests, which also copies the FHIR lib files and built files in places for testing.

Running unit tests

  1. Run npm run test:unit to execute the unit tests via Karma.

Running end-to-end tests

  1. Run npm run test:e2e to execute the end-to-end tests via Cypress. The e2e tests are configured to use Chrome.

Using the LHC-Forms Web Component

There are several script files to load. If you are building this, these files will be under dist/lforms. If you are using the pre-built versions from https://clinicaltables.nlm.nih.gov/lforms-versions, then the file paths below are relative to those versioned directories.

  1. webcomponent/styles.css

You need to include the following files in your project:

  1. webcomponent/styles.css
  2. webcomponent/assets/lib/zone.min.js (unless you already have zone.min.js on the page)
  3. webcomponent/runtime.js
  4. webcomponent/polyfills.js
  5. webcomponent/main.js
  6. One of the FHIR support library files, assuming you are planning to use FHIR Questionnaires:
    • fhir/lformsFHIRAll.min.js
    • fhir/R5/lformsFHIR.min.js
    • fhir/R4B/lformsFHIR.min.js
    • fhir/R4/lformsFHIR.min.js
    • fhir/STU3/lformsFHIR.min.js

There is an example of an app using these files at https://lhcforms.nlm.nih.gov/lforms-fhir-app/. For details about how to work with this library, and for information about an announcements list, see the documentation.

lforms npm package

A complete npm package that you can use with import/require statements in your code is not ready yet. The current lforms npm package only contains built files in /dist/lforms directory. You can use those files as described in above section Using the LHC-Forms Web Component.

Related Documents

  • form_definition.md The internal data format of the LHC-Forms widget.
  • changed-features.md The list of features that changes between the new version (v30.0.0) and previous versions.
  • r4-support.md The FHIR R4 features supported by LHC-Forms widget.
  • sdc-support.md The FHIR SDC features supported by LHC-Forms widget.