@openmrs/esm-framework

The core modules of the OpenMRS Frontend system

Showing:

Popularity

Downloads/wk

1.1K

GitHub Stars

13

Maintenance

Last Commit

4d ago

Contributors

19

Package

Dependencies

7

License

MPL-2.0

Type Definitions

Tree-Shakeable

No?

Categories

Readme

Node.js CI Check documentation

Information for developers about the OpenMRS Frontend system can be found at the following link:

OpenMRS Frontend Developer Documentation

Below is the documentation for this repository.

OpenMRS Frontend Core

This is a Lerna project containing the core packages for the OpenMRS Frontend. These packages handle the "cross-cutting concerns" described in the Domain Decomposition document.

Available Packages

Application

This contains tooling and the app shell.

Framework

The following common libraries have been developed. They may also be used independently of the app shell.

All libraries are aggregated in the @openmrs/esm-framework package:

Frontend modules

A set of frontend modules provide the core technical functionality of the application.

Development

Getting Started

To set up the repository for development, run the following commands:

yarn install
yarn setup

Building

To build all packages in the repository, run the following command:

lerna run build

Verification of the existing packages can also be done in one step using yarn:

yarn verify

Running

The app shell and the framework

yarn run:shell

The frontend modules in apps

cd packages/apps/esm-[xyz]-app
yarn start

The tooling

cd packages/tooling/openmrs
yarn build
./dist/cli.js

Version and release

To increment the version, run the following command:

yarn release

You will need to pick the next version number. We use minor changes (e.g. 3.2.03.3.0) to indicate big new features and breaking changes, and patch changes (e.g. 3.2.03.2.1) otherwise.

Note that this command will not create a new tag, nor publish the packages. After running it, make a PR or merge to master with the resulting changeset.

Once the version bump is merged, go to GitHub and draft a new release. The tag should be prefixed with v (e.g., v3.2.1), while the release title should just be the version number (e.g., 3.2.1). The creation of the GitHub release will cause GitHub Actions to publish the packages, completing the release process.

Don't run npm publish, yarn publish, or lerna publish. Use the above process.

Possibilities

The new architecture offers a couple of interesting possibilities. We go into them one by one.

Proxying OpenMRS Backends

We can now proxy any backend. For instance, using the backend of the demo instance we just run:

npx openmrs debug --backend https://demo.openmrs.org/

There are a couple of interesting public instances:

https://qa-refapp.openmrs.org/
https://demo.openmrs.org/
https://openmrs-spa.org/

Rate & Review

Great Documentation0
Easy to Use0
Performant0
Highly Customizable0
Bleeding Edge0
Responsive Maintainers0
Poor Documentation0
Hard to Use0
Slow0
Buggy0
Abandoned0
Unwelcoming Community0
100
No reviews found
Be the first to rate

Alternatives

No alternatives found

Tutorials

No tutorials found
Add a tutorial