Skip to content

Commit

Permalink
(readme) Update README (openmrs#582)
Browse files Browse the repository at this point in the history
This commit improves upon the guidance in the existing README, including adding and linking to new READMEs in each of the constituent microfrontends.
  • Loading branch information
denniskigen authored Mar 5, 2022
1 parent 6a859f5 commit d667ffc
Show file tree
Hide file tree
Showing 19 changed files with 135 additions and 25 deletions.
80 changes: 55 additions & 25 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,61 +1,91 @@
:wave: *New to our project? Be sure to review the [OpenMRS 3 Frontend Developer Documentation](https://openmrs.github.io/openmrs-esm-core/#/). You may find the [Map of the Project](https://openmrs.github.io/openmrs-esm-core/#/main/map) especially helpful.* :teacher:


![Node.js CI](https://github.com/openmrs/openmrs-esm-patient-chart/workflows/Node.js%20CI/badge.svg)

# OpenMRS ESM Patient Chart

## What is this?
The `openmrs-esm-patient-chart` is a frontend module for the OpenMRS SPA. It bundles together various microfrontends that constitute widgets in a patient dashboard. These widgets include:

- [Allergies](packages/esm-patient-allergies-app/README.md)
- [Appointments](packages/esm-patient-appointments-app/README.md)
- [Attachments](packages/esm-patient-attachments-app/README.md)
- [Biometrics](packages/esm-patient-biometrics-app/README.md)
- [Conditions](packages/esm-patient-conditions-app/README.md)
- [Forms](packages/esm-patient-forms-app/README.md)
- [Immunizations](packages/esm-patient-immunizations-app/README.md)
- [Medications](packages/esm-patient-medications-app/README.md)
- [Notes](packages/esm-patient-notes-app/README.md)
- [Patient banner](packages/esm-patient-banner-app/README.md)
- [Patient chart](packages/esm-patient-chart-app/README.md)
- [Programs](packages/esm-patient-programs-app/README.md)
- [Test results](packages/esm-patient-test-results-app/README.md)
- [Vitals](packages/esm-patient-vitals-app/README.md)

In addition to these widgets, two other microfrontends exist that encapsulate cross-cutting concerns. These are:

openmrs-esm-patient-chart is the patient chart frontend module and all its widgets. This creates a patient dashboard microfrontend for the OpenMRS SPA. It provides a simple dashboard with cards detailing the
patient's information, such as vitals, demographic and relationships.
- [Common lib](packages/esm-patient-common-lib/README.md)
- [Patient chart](packages/esm-patient-chart-app/README.md)

## Setup

See the guidance in the [Developer Documentation](https://openmrs.github.io/openmrs-esm-core/#/getting_started/setup?id=developing-microfrontends-in-a-lerna-monorepo).
This repository uses Yarn and Lerna.
Check out the developer documentation [here](http://o3-dev.docs.openmrs.org).

To start the dev server for a specific package, run
This monorepo uses [yarn](https://yarnpkg.com) and [lerna](https://github.com/lerna/lerna).

To start a dev server for a specific microfrontend, run:

```bash
yarn start --sources 'packages/esm-patient-<package>-app'
yarn start --sources 'packages/esm-patient-<insert-package-name>-app'
```

This will start a dev server for that package as well as `esm-patient-chart-app`.
This command uses the [openmrs](https://www.npmjs.com/package/openmrs) tooling to fire up a dev server running `esm-patient-chart` as well as the specified microfrontend.

To start a dev server running all the packages, run
To start a dev server running all the packages, run:

```bash
yarn start-all
```

Note that this is extremely resource-intensive.
Note that this is very resource-intensive.

There are two approaches for working on multiple microfrontends simultaneously.

You could run `yarn start` with as many `sources` arguments as you require. For example, to run the biometrics and vitals microfrontends simultaneously, you'd use:

```bash
yarn start --sources 'packages/esm-patient-biometrics-app' --sources 'packages/esm-patient-vitals-app'
```

Alternatively, you could run `yarn serve` from within the individual packages and then use [import map overrides](http://o3-dev.docs.openmrs.org/#/getting_started/setup?id=import-map-overrides).

## Layout

The patient chart consists of the following parts:

## What is the layout of patient chart?
- Navigation menu
- Breadcrumbs menu
- Patient header
- Chart review
- Workspace
- Side menu

openmrs-esm-patient-chart consists of five parts: patient header, primary navigation, chart review, a workspace, and a right menu.
The navigation menu lives on the left side of the screen and provides links to dashboard pages for various widgets in the patient chart.

The patient header contains the patient banner, which displays basic information about the patient,
and patient banner alerts, which sit just below the banner and provide relatively uninvasive reminders.
The breadcrumbs menu gets shown at the top of the page under the navigation bar. It shows the user their current location relative to the information architecture and helps them quickly navigate to a parent level or previous step.

The primary navigation lives on the left side of the screen, in a slot provided by
[esm-primary-navigation-app](https://github.com/openmrs/openmrs-esm-core/tree/master/packages/apps/esm-primary-navigation-app).
A link is created in that slot for each widget attached to `patient-chart-dashboard-slot`.
It provides access to different parts of the chart review.
The patient header contains the [patient banner](packages/esm-patient-banner-app/README.md). Uninvasive notifications also appear in this area following actions such as form submissions.

The chart review is the main part of the screen, which contains all the widgets.
The chart review area is the main part of the screen. It displays all of the widget cards in an easy-to-read layout that is configurable.

The workspace is where data entry takes place. On mobile devices it covers the screen; on desktop it appears in a sidebar.

The right menu provides access to features that do not have their own pages, such as the notifications menu.
The side menu provides access to features that do not have their own pages, such as the notifications menu.

## How do I configure this module?
## Configuration

Please see the [Implementer Documentation](https://wiki.openmrs.org/display/projects/Frontend+3.0+Documentation+for+Implementers#Frontend3.0DocumentationforImplementers-Configuringtheapplication)
for information about configuring modules.

## Deployment

See the
[Frontend Implementer Documentation](https://wiki.openmrs.org/display/projects/Frontend+3.0+Documentation+for+Implementers)
for information about adding microfrontends to a distribution.
See the [Frontend Implementer Documentation](https://wiki.openmrs.org/display/projects/Frontend+3.0+Documentation+for+Implementers) for information about adding microfrontends to a distribution.
3 changes: 3 additions & 0 deletions packages/esm-form-entry-app/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# esm-form-entry-app

This widget encapsulates the form entry capabilities of the AMPATH form engine. It's essentially a wrapper around an Angular application that renders JSON schemas built using the AMPATH form engine as HTML forms. The user can fill and submit forms and receive success or error notifications upon submission. Read the docs [here](https://ampath-forms.vercel.app).
13 changes: 13 additions & 0 deletions packages/esm-generic-patient-widgets-app/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# esm-generic-patient-widgets-app

This is a proof-of-concept for a generic widget that can be added to the patient chart using configuration. It can be made to display any obs in either a tabular view or a chart view. It's intended as a pathway to creating reusable widgets across the application.

## Development

From the root of the project, run:

```bash
yarn run --sources 'packages/esm-generic-patient-widgets-app'
```

This should fire up a development server on port `8081`. You can use `--port` to specify an alternative port.
4 changes: 4 additions & 0 deletions packages/esm-patient-allergies-app/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
# esm-patient-allergies-app

The allergies widget. It provides a tabular overview of the allergies recorded for a patient as well as a form for recording allergies.

4 changes: 4 additions & 0 deletions packages/esm-patient-appointments-app/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
# esm-patient-appointments-app

The appointments widget. It provides a tabular overview of the appointments recorded for a patient as well as a form for recording appointments.

3 changes: 3 additions & 0 deletions packages/esm-patient-attachments-app/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# esm-patient-attachments-app

The attachments widget. It shows a gallery of attachments uploaded for the patient as well as a file uploader for uploading new attachments.
4 changes: 4 additions & 0 deletions packages/esm-patient-banner-app/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
# esm-patient-banner-app

The patient banner widget. It provides a banner that displays the patient's name, their avatar, gender, age and identifiers. It also provides an expandable panel that shows their address, contact details and relationships with other patients. The patient banner can also display custom tags to mark out whether a patient has an active visit ongoing or whether they are deceased.

4 changes: 4 additions & 0 deletions packages/esm-patient-biometrics-app/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
# esm-patient-biometrics-app

The biometrics widget. It provides tabular and chart-based overviews of the biometrics recorded for a patient as well as a form for recording vitals and biometrics.

3 changes: 3 additions & 0 deletions packages/esm-patient-chart-app/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# esm-patient-chart

This microfrontend provides the underlying framework on top of which all the individual widgets are run. It sets up the layout of the patient chart and handles routing between the chart summary and widget dashboards. It also sets up core extensions, the workspace, the side and nav menus, visits functionality as well as offline mode.
4 changes: 4 additions & 0 deletions packages/esm-patient-clinical-view-app/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
# esm-patient-clinical-views-app

The clinical views widget. It provides an overview of the clinical views set up for a user as well as a form for adding clinical views.

6 changes: 6 additions & 0 deletions packages/esm-patient-common-lib/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
# esm-patient-common-lib

This is a library of components and utilities shared across widgets in the patient chart. These include:

- Custom components for card headers, error and empty states and pagination.
- Custom hooks for managing workspaces, concept metadata and pagination.
4 changes: 4 additions & 0 deletions packages/esm-patient-conditions-app/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
# esm-patient-conditions-app

The conditions widget. It provides a tabular overview of the conditions recorded for a patient as well as a form for recording new conditions.

4 changes: 4 additions & 0 deletions packages/esm-patient-forms-app/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
# esm-patient-forms-app

The forms widget. It provides a tabular overview of the clinical forms available for use in the system. Presently, the forms widget is configured to use forms built using the AMPATH form engine. Read the docs [here](https://ampath-forms.vercel.app).

4 changes: 4 additions & 0 deletions packages/esm-patient-immunizations-app/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
# esm-patient-immunizations-app

The immunizations widget. It provides a tabular overview of the immunizations recorded for a patient as well as a form for recording new immunizations.

4 changes: 4 additions & 0 deletions packages/esm-patient-medications-app/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
# esm-patient-medications-app

The medications widget. It provides a tabular overview of the active and past medications recorded for a patient. It also provides the ability to modify, reorder or discontinue medications as well as an order basket for ordering new medications.

4 changes: 4 additions & 0 deletions packages/esm-patient-notes-app/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
# esm-patient-notes-app

The notes widget. It provides a tabular overview of the visit notes recorded for a patient as well as a form for recording new visit notes.

4 changes: 4 additions & 0 deletions packages/esm-patient-programs-app/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
# esm-patient-programs-app

The programs widget. It provides a tabular overview of the programs a patient is enrolled into as well as a form for enrolling the patient into new programs.

4 changes: 4 additions & 0 deletions packages/esm-patient-test-results-app/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
# esm-patient-test-results-app

The test results widget. It provides tabular and chart-based overviews of the test results available for a patient.

4 changes: 4 additions & 0 deletions packages/esm-patient-vitals-app/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
# esm-patient-vitals-app

The vitals widget. It provides tabular and chart-based overviews of the vitals recorded for a patient as well as a form for recording vitals and biometrics. It also provides a vitals header that displays a summary of the most recently recorded vitals.

0 comments on commit d667ffc

Please sign in to comment.