Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Yes,

we've

we’ve been changing!

OpenMRS 3
Our exciting new direction

Image Modified

OpenMRS 3, aka O3, is our community’s next-generation of the OpenMRS EMR.

O3 uses modern technology and user interface design. This new frontend for OpenMRS leverages modern frontend technologies that enable users and developers around the world to share more frontend functionality, reduce duplicated effort, and have a better user experience. Learn more about the O3 story here

OpenMRS 2
Our historic application

Image Modified

OpenMRS 2 remains a widely-used version of the OpenMRS user interface. 

Table of Contents

On this Page

Table of Contents
minLevel1
maxLevel2
outlinefalse
stylenone
typelist
printabletrue

In This Section (Below This Page)

Child pages (Children Display)
allChildrentrue

O3 Resources to Know 🧠

Connect With Us 📞

You have multiple options for where to seek help or have discussions on matters related to OpenMRS v3:

Online Discussions & Help

Daily "Coffee Chats" ☕️

  • What: O3 Troubleshooting for Frontend Developers

  • When: Monday-thru-Thursday. Calendar info with times and call links here: om.rs/cal 📆

Weekly 3.x Squad Call (all-hands) 👥

  • What: Our weekly 3.x initiative all-hands. Everyone (Devs, Designers, BAs/PMs) shares their updates, and a short design showcase is shared to keep everyone current on the latest design thinking and user feedback. 

  • When: Calendar info with times and call links here: om.rs/cal 📆

Bi-Weekly 3.x Product Design Call 🎨

  • What: A weekly gathering of BAs, PMs, Designers and stakeholders co-designing 3.x workflows and features. We share emerging ideas, detailed requirements, discuss concerns, and review the latest design outputs and user testing results. 

  • When: Calendar info with times and call links here: om.rs/cal 📆

Join a Squad 🤝

  • What: A squad is a group of community members, kind of like a “feature team”, working autonomously on specific, discrete solutions to a shared problem(s).

  • When: Each squad is different - some meet on a video call several times a month; some work exclusively over Slack. Check out the current Squads on our Squad Dashboard: om.rs/squads

Want to contribute? Join us! 

  • Review the high-level guidance on this page

  • How to Start Contributing 

    1. Dev Guide: Use our Dev Guide to get started. Look for answers there. : om.rs/o3dev

    2. Intro: Introduce yourself at our #openmrs3 Squad #microfrontends Slack channel (Note: You will first need to create an OpenMRS Slack account by going to slack.openmrs.org)

    3. Please assign tickets to yourself before starting work

      Find Intro Tickets: Intro tickets you can use to start contributing are available here: ________

      This dashboard shows the latest Intro and Non-Intro tickets that need to be taken on to support the MicroFrontend work. This also shows the different features (via Epics) that are currently underway. 

    4. Note: To view the designs in detail, you'll need an invite to our Zeplin account. Ask Grace Potma& Eric Achillah for help - @grace & @Eric on Slack. Make sure you also review our short How to Use Zeplin video.

    5. om.rs/intro

      1. Assign tickets to yourself before starting work, but only if you are going to try to complete the ticket. This helps avoid confusion and accidental duplication of work. Double-check the ticket's Epic for other related work before working on things outside the described scope of the ticket - you may accidentally be replicating a feature someone else is already working on.

      2. Please only take 1-2 tickets at a time. This helps you to focus on getting 1-2 things done at a time. If you assign yourself to multiple tickets, this prevents others from working on them, so please be considerate of others and only pick up 1-2 tasks at a time. When those are done, you can assign yourself another 1-2 other tasks. If you have submitted your PR for 2 tickets and are still waiting for feedback, it is okay to pick up another ticket, so long as you promptly respond to the feedback on your original tickets so that work can be merged promptly. (smile)

      3. Note:For tickets that require using a design hosted in Zeplin: to view designs in detail, you'll need an invite to our Zeplin account. Ask Grace Potma for help - @grace on Slack. Make sure you also review our short How to Use Zeplin video.

    6. Meet Us! Join our weekly Squad calls on Thursdays - Calendar info with times and call links here: om.rs/cal 📆

    More

    Other Information

    Background Color

    colorcyan
    (1) Plug & Play Architecture: The frontend stack we're building on using Micro Frontends

    Goal: Frontend architecture designed for extensible and configurable apps and widgets.

    What are Microfrontends? Microfrontends are in-browser javascript modules (ESMs) that provide application UI. They make it possible to have extensible, configurable and independently deployable frontend features. It means you can get your frontend live and updated fast

    Our MF Framework is Single-SPA: We chose to use single-spa, the most popular microfrontends framework, as the basis upon which to build this new frontend architecture.

    Our MF Tech Stack: Primarily React, HTML and CSS, but it's not unfeasible that one could choose to develop in a JavaScript framework of their choosing - that's the whole premise behind microfrontends after all.

    Auibutton
    custom-iconvideo-filled
    iconcustom
    titleTutorial
    typeprimary
    urlhttps://www.youtube.com/watch?v=KDC8DwPWwjc&ab_channel=FlorianRappl
    targettrue
    AuibuttoniconconfiguretitleGitHub: esm-coretypeprimaryurlhttps://github.com/openmrs/openmrs-esm-coretargettrue
    Auibutton
    iconinfo
    titleDev Guide
    typeprimary
    urlhttps://github.com/openmrs/openmrs-esm-core/tree/master/docs
    targettrue

    Background Color

    colorcyan
    (2) Implementer Tooling: Tooling we're building to make MFE easier for implementers to configure

    Goal: Enable both developers and non-developers to easily configure their distribution, and re-use that configuration rapidly. 

    Auibutton
    custom-iconvideo-filled
    iconcustom
    titleDemo
    typeprimary
    urlhttps://www.youtube.com/watch?v=xhtVoNnZoec&list=PL5jj7JoBifSnuNkGytL6m4IQ2OuV9lbq1&index=7&ab_channel=OpenMRS
    targettrue
    Auibutton
    iconconfigure
    titleImplementer Tool App on GitHub
    typeprimary
    urlhttps://github.com/openmrs/openmrs-esm-core/tree/master/packages/esm-implementer-tools-app
    targettrue

      openmrs-esm
    • openOpenMRS-implementer-tools-app is an in-browser javascript module provides a UI for viewing and editing configurations, and viewing other administrative information about the frontend application. It is part of the Extension System.

    AuibuttoniconconfiguretitleImplementer Config Library on GitHub
    typeprimaryurlhttps://github.com/openmrs/openmrs-esm-core/tree/master/packages/esm-configtargettrue

    This is the configuration library for OpenMRS Microfrontends. It makes configurability easier for developers and configuring easier for implementers.

    Background Color

    colorcyan
    (3) Building a Friendly, Modern UX in RefApp v3.0

    Goal: Create a better means for building out a shared UI. Modernizing the entire RefApp frontend, using Carbon Design System for UI consistency and faster dev value. Our OpenMRS Reference Application needs to become a Point of Care application, that’s modern, friendly, and works well on tablets. 

    We are working on a re-design of the patient chart, starting with end-to-end support for HIV Outpatient Workflows.

    We're currently in the process of implementing new designs that leverage the carbon design system for our reference application. (More on why we chose carbon here).

    We're not starting from scratch though. Rather, we're migrating from an old set of designs (and an old style guide) to the new designs (and now migrating to use Carbon Design System as well - not all the Carbonizing work is done). As such, it should not be unexpected that gaps will be found in documentation, incomplete implementations, broken functionality and so on as we move to get everything back in order.

    Our Design System:

    Auibutton
    iconinfo
    titleCarbon Design System
    typeprimary
    urlhttps://www.carbondesignsystem.com/components/overview
    targettrue
    Auibutton
    iconinfo
    titleRationale for Carbon
    typeprimary
    urlhttps://openmrs.atlassian.net/wiki/pages/viewpage.action?pageId=22572872
    targettrue

    Our Simple Style Guide for reference:

    Auibutton
    custom-iconcamera
    iconcustom
    titleStyleguide (Re-useable Styled Components)
    typestandard
    urlhttps://app.zeplin.io/project/5f7223cfda10f94d67cec6d0/styleguide/components
    targettrue
    Auibutton
    custom-iconvideo-filled
    iconcustom
    titleHow to Use Zeplin in Dev Work
    typeprimary
    urlhttps://youtu.be/SjluEGDH4LU
    targettrue
    Info

    Documentation in this project

    Child pages (Children Display)depth1