OpenMRS Terms and Definitions

Here we list some definitions in an effort to standardize the language used in our community.

Community Roles

Admin

  • A Developer with permissions to access administrator tools from within the site, or make changes to the backend or database of a deployed instance.

Developer

  • A technical member who can make changes to the code base. Typical responsibilities are to modify existing features, create new features, and review code.

Implementor

  • Any member when they are preforming implementation tasks. 

Clinical Terms

Patient

Person

Technical Terms

Component

  • A reusable piece of frontend code used to render some visual effect (text, picture..) on an HTML page. Components should have a clear understanding of when and how they are used as defined in their docstrings. 

  • Examples: Button, Accordion, Checkbox

Distribution

  • A fully functional set of software packages needed to run OpenMRS. This includes a Frontend, Backend, Network or Server, and Database.

Distro

  • See distribution

End 2 End

  • Typically in reference to a test that acts as a user would. Such behavior usually involves multiple technical layers (Frontend, Backend, Networking, Database), all of which must work in unison to accomplish the task and therefore pass the test.

Frontend Module

  • A microfrontend. Commonly one that is intended to be optional within an OpenMRS distro. This can either depend on other frontend modules to work, or be completely autonomous

Implementation

  1. (one distribution) A specific instance of OpenMRS as tangibly deployed and being used by end users

  2. The act of choosing modules and configuring them to become a distribution

Microfrontend

  • An environment agnostic and autonomous widget. This differs from a widget in that a microfrontend can contain all dependencies to use itself by itself, where a widget will rely on other packages already being present (like React or Angular).

  • Microfrontends should contain "good default behavior" and do not rely on direct inputs from other members of a UI to work. If they interact with other microfrontends on the page, they do so through common high level API.

  • Example: Patient Chart, ...

Microfrontend Based Web-App

  • A way to organize a web-app such that a common linking shell does not know before hand which features or functionality will be added to the app.

  • Typically the choice of which microfrontends / frontend modules to include will happen at implementation of a distribution. In theory these could be dynamically loaded.

  • An app shell will then "discover" which microfrontends exist and then place them onto the page accordingly.

Widget

  • A functional component made up of smaller Components that accomplishes a set of UI interactivity for a specific task or set of tasks typically of some complexity

  • Example:

Other Terms, Concepts, Definitions