{"id":27302361,"url":"https://github.com/openmrs/openmrs-esm-patient-chart","last_synced_at":"2025-04-12T02:18:05.677Z","repository":{"id":37406294,"uuid":"213561684","full_name":"openmrs/openmrs-esm-patient-chart","owner":"openmrs","description":"This repo houses all EMR patient chart components for OpenMRS v3","archived":false,"fork":false,"pushed_at":"2025-04-11T19:34:59.000Z","size":23258,"stargazers_count":50,"open_issues_count":39,"forks_count":273,"subscribers_count":60,"default_branch":"main","last_synced_at":"2025-04-12T02:17:47.221Z","etag":null,"topics":["fhir","healthcare","microfrontend","openmrs","react","spa","typescript"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/openmrs.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-10-08T06:09:27.000Z","updated_at":"2025-04-10T18:32:51.000Z","dependencies_parsed_at":"2023-10-20T22:12:31.299Z","dependency_job_id":"c2e0b98c-1849-42d9-9240-948207b6f567","html_url":"https://github.com/openmrs/openmrs-esm-patient-chart","commit_stats":{"total_commits":1971,"total_committers":121,"mean_commits":"16.289256198347108","dds":0.7468290208016235,"last_synced_commit":"cf1e746c0d80285e4a401f9f1bb4899a87426472"},"previous_names":[],"tags_count":34,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openmrs%2Fopenmrs-esm-patient-chart","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openmrs%2Fopenmrs-esm-patient-chart/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openmrs%2Fopenmrs-esm-patient-chart/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openmrs%2Fopenmrs-esm-patient-chart/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/openmrs","download_url":"https://codeload.github.com/openmrs/openmrs-esm-patient-chart/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248505917,"owners_count":21115354,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["fhir","healthcare","microfrontend","openmrs","react","spa","typescript"],"created_at":"2025-04-12T02:18:05.189Z","updated_at":"2025-04-12T02:18:05.660Z","avatar_url":"https://github.com/openmrs.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":":wave: **New to our project?** Be sure to review the [OpenMRS 3 Frontend Developer Documentation](https://o3-docs.openmrs.org) :teacher:\t\n\n![OpenMRS CI](https://github.com/openmrs/openmrs-esm-patient-chart/actions/workflows/ci.yml/badge.svg)\n\n# OpenMRS ESM Patient Chart\n\nThe `openmrs-esm-patient-chart` is a frontend module for the OpenMRS SPA. It contains various microfrontends that constitute widgets in a patient dashboard. These widgets include:\n\n- [Allergies](packages/esm-patient-allergies-app/README.md)\n- [Attachments](packages/esm-patient-attachments-app/README.md)\n- [Biometrics](packages/esm-patient-biometrics-app/README.md)\n- [Conditions](packages/esm-patient-conditions-app/README.md)\n- [Forms](packages/esm-patient-forms-app/README.md)\n- [Immunizations](packages/esm-patient-immunizations-app/README.md)\n- [Medications](packages/esm-patient-medications-app/README.md)\n- [Notes](packages/esm-patient-notes-app/README.md)\n- [Patient banner](packages/esm-patient-banner-app/README.md)\n- [Patient chart](packages/esm-patient-chart-app/README.md)\n- [Programs](packages/esm-patient-programs-app/README.md)\n- [Tests](packages/esm-patient-tests-app/README.md)\n- [Vitals](packages/esm-patient-vitals-app/README.md)\n\nIn addition to these widgets, two other microfrontends exist that encapsulate cross-cutting concerns. These are:\n\n- [Common lib](packages/esm-patient-common-lib/README.md)\n- [Patient chart](packages/esm-patient-chart-app/README.md)\n\n## Setup\n\nCheck out the developer documentation [here](http://o3-dev.docs.openmrs.org).\n\nThis monorepo uses [yarn](https://yarnpkg.com).\n\nTo install the dependencies, run:\n\n```bash\nyarn\n```\n\nTo start a dev server for a specific microfrontend, run:\n\n```bash\nyarn start --sources 'packages/esm-patient-\u003cinsert-package-name\u003e-app'\n```\n\nThis 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.\n\nThere are two approaches for working on multiple microfrontends simultaneously.\n\nYou 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:\n\n```bash\nyarn start --sources 'packages/esm-patient-biometrics-app' --sources 'packages/esm-patient-vitals-app'\n```\n\nAlternatively, 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).\n\n## Running tests\n\nTo run tests for all packages, run:\n\n```bash\nyarn turbo run test\n```\n\nTo run tests in `watch` mode, run:\n\n```bash\nyarn turbo run test:watch\n```\n\nTo run tests for a specific package, pass the package name to the `--filter` flag. For example, to run tests for `esm-patient-conditions-app`, run:\n\n```bash\nyarn turbo run test --filter=@openmrs/esm-patient-conditions-app\n```\n\nTo run a specific test file, run:\n\n```bash\nyarn turbo run test -- visit-notes-form\n```\n\nThe above command will only run tests in the file or files that match the provided string.\n\nYou can also run the matching tests from above in watch mode by running:\n\n```bash\nyarn turbo run test:watch -- visit-notes-form\n```\n\nTo generate a `coverage` report, run:\n\n```bash\nyarn turbo run coverage\n```\n\nBy default, `turbo` will cache test runs. This means that re-running tests wihout changing any of the related files will return the cached logs from the last run. To bypass the cache, run tests with the `force` flag, as follows:\n\n```bash\nyarn turbo run test --force\n```\n\nTo run end-to-end tests, run:\n\n```bash\nyarn test-e2e\n```\n\nRead the [e2e testing guide](https://o3-docs.openmrs.org/docs/frontend-modules/end-to-end-testing) to learn more about End-to-End tests in this project.\n\n### Updating Playwright\n\nThe Playwright version in the [Bamboo e2e Dockerfile](e2e/support/bamboo/playwright.Dockerfile#L2) and the `package.json` file must match. If you update the Playwright version in one place, you must update it in the other.\n\n## Troubleshooting\n\nIf you notice that your local version of the application is not working or that there's a mismatch between what you see locally versus what's in [dev3](https://dev3.openmrs.org/openmrs/spa), you likely have outdated versions of core libraries. To update core libraries, run the following commands:\n\n```bash\n# Upgrade core libraries\nyarn up openmrs@next @openmrs/esm-framework@next\n\n# Reset version specifiers to `next`. Don't commit actual version numbers.\ngit checkout package.json\n\n# Run `yarn` to recreate the lockfile\nyarn\n```\n\n## Layout\n\nThe patient chart consists of the following parts:\n\n- Navigation menu\n- Patient header\n- Chart review / Dashboards\n- Workspace\n- Side menu\n\nThe **navigation menu** lives on the left side of the screen and provides links to dashboards in the patient chart.\n\nThe **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.\n\nThe **chart review** area is the main part of the screen. It displays whatever dashboard is active.\n\nA **dashboard** is a collection of widgets.\n\nThe **workspace** is where data entry takes place. On mobile devices it covers the screen; on desktop it appears in a sidebar.\n\nThe **side menu** provides access to features that do not have their own pages, such as the notifications menu.\n\n## Design Patterns\n\nFor documentation about our design patterns, please visit our [design system](https://zeroheight.com/23a080e38/p/880723--introduction) documentation website.\n\n## Configuration\n\nPlease see the [Implementer Documentation](https://wiki.openmrs.org/pages/viewpage.action?pageId=224527013) for information about configuring modules.\n\n## Deployment\n\nSee [Creating a Distribution](http://o3-dev.docs.openmrs.org/#/main/distribution?id=creating-a-distribution) for information about adding microfrontends to a distribution.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopenmrs%2Fopenmrs-esm-patient-chart","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fopenmrs%2Fopenmrs-esm-patient-chart","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopenmrs%2Fopenmrs-esm-patient-chart/lists"}