Skip to content

The core modules of the OpenMRS Frontend system

License

Notifications You must be signed in to change notification settings

larslemos/openmrs-esm-core

 
 

Repository files navigation

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:

Microfrontends

A set of microfrontends 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 microfrontends in apps

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

Version and release

If there are any new packages in the monorepo, first verify that their package.json contains a publishConfig section with "access": "public". Or, if the package should not be published, the package.json should contain the entry "private": true.

To increment the version, run the following command:

yarn ci: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/

About

The core modules of the OpenMRS Frontend system

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • TypeScript 80.0%
  • SCSS 9.4%
  • JavaScript 8.9%
  • Other 1.7%