GSoC 2021: Clinical Data Management

 

Primary mentor

@Dennis Kigen (Unlicensed) 

Backup mentor

@Pahonsi Bebeto Achile @Herbert Yiga

Assigned to

@Vineet Sharma 

 

Description

Porting administration functions for managing clinical data within OpenMRS to OpenMRS 3.0: A Frontend Framework. This project focuses on visits, encounters, and observations.

The primary goal of this project is to creating working micro frontend module(s) for these administration functions that can plug into the Administration Dashboard, meaning these functions will be expected to be developed using the best practices defined by the OpenMRS 3.0 Frontend Framework (Carbon Design, React/TypeScript) and register with the administration dashboard (mechanism to be determined), providing a title and a React component to render the administration function(s). The dashboard project will be responsible for organizing available administration functions, overall screen layout, and navigation between administration functions.

This project may include writing Java code to extend the REST Module to create needed REST endpoints. Those functions that have been implemented as Open Web Apps (OWAs) likely have the necessary REST endpoints, but functions that exist only in the legacy UI may not have yet been exposed as REST endpoints. The REST of Administration project can help in filling these gaps.

"OWA" refers to Mozilla's Open Web Apps (OWA), a legacy standard from 2010 that existed before frontend frameworks like React, Angular, Vue, etc. were popular. In the early 2010s, OWAs were an attempt in the OpenMRS community to use a standard to create client-side applications. OWAs are not recommended for new development; new development is encouraged to adopt conventions of the new Frontend Framework.

Project Champions

  • @Burke Mamlin

  • @Daniel Kayiwa

Skills Needed

  • Familiarity with Java and JavaScript

  • Familiarity with React and TypeScript

  • Good understanding of REST

  • HTML/CSS

Objectives

  • Create a "Hello World" ESM module to plug into the Administration Dashboard following conventions of the Frontend Framework (React, TypeScript, Carbon Design). See this page for an overview of the plan. The module should register itself as an administration function and, when selected, display it's "Hello World" within the Administration Dashboard's content pane.

  • Implement the following administration functions as ESM module(s), each registering as an administration function.

  • For those administration features that do not have existing REST endpoints, create (or coordinate with the GSoC 2021: The REST of Administration project to create) those endpoints by extending the REST Module.

Below are the administration functions to be recreated in the new frontend framework. Examples of existing versions of each functions (in the Reference Application, as an OWA, or in the Legacy UI of OpenMRS 1.x) are provided for reference.

Visits

Provides functions for managing visits resources within OpenMRS as well as configuring how visits are used. A visit can contain 0-to-n encounters.

  • Reference Application 2.x implementation in Configure Metadata - github

  • Legacy UI implementation in Reference Application Advanced Configuration - github

Manage Visit Types

List/search, add, edit, retire, and delete visit types.


Implementation in Reference Application 2.x Configure Metadata


Legacy UI implementation

Manage Visit Attribute Types

List/search, add, edit, retire, and delete visit attribute types.


Implementation in Reference Application 2.x Configure Metadata


Legacy UI implementation

Configure Visits

Control visit behavior within the system (e.g., auto-closing of visits and how encounters are assigned to a visit).

  • REST API endpoints will need to be created to configure visit behavior.


Legacy UI implementation

 

Encounters*

Provides functions for managing clinical encounters within OpenMRS.

  • Reference Application 2.x implementation in Configure Metadata - github

  • Legacy UI implementation - github

Manage Encounters

Allows the creation and editing of clinical encounters. These are relatively complex resources comprising encounter details (patient, location, date, type, associated visit), provider(s) involved in the encounter, and any observations collected within the encounter. There are several types of observations, so making an interface to view and/or edit any observations is non-trivial.


Legacy UI implementation

Manage Encounter Types

List/search, add, edit, retire, and delete encounter types.

  • REST API endpoints exist


Implementation in Reference Application 2.x Configure Metadata


Legacy UI implementation

Manage Encounter Roles

List/search, add, edit, retire, and delete encounter roles.

  • REST API endpoints exist


Implementation in Reference Application 2.x Configure Metadata


Legacy UI implementation

 

Observations

Provides features for system administration of clinical observations collected within OpenMRS.

  • Legacy UI implementation - github

Manage Observations

Find observations by person & concept OR by encounter, then redirects to Encounter management for editing.

  • We might be able to provide these features under Encounter management.


Legacy UI implementation

Extra Credit

  • TBD

Resources

 

 

 

Primary mentor

 

Backup mentor

@Pahonsi Bebeto Achile

Assigned to

TBD

 

Description

Porting administration functions for managing clinical data within OpenMRS to OpenMRS 3.0: A Frontend Framework. This project focuses on visits, encounters, and observations.

The primary goal of this project is to creating working micro frontend module(s) for these administration functions that can plug into the Administration Dashboard, meaning these functions will be expected to be developed using the best practices defined by the OpenMRS 3.0 Frontend Framework (Carbon Design, React/TypeScript) and register with the administration dashboard (mechanism to be determined), providing a title and a React component to render the administration function(s). The dashboard project will be responsible for organizing available administration functions, overall screen layout, and navigation between administration functions.

This project may include writing Java code to extend the REST Module to create needed REST endpoints. Those functions that have been implemented as Open Web Apps (OWAs) likely have the necessary REST endpoints, but functions that exist only in the legacy UI may not have yet been exposed as REST endpoints. The REST of Administration project can help in filling these gaps.

Project Champions

  • @Burke Mamlin

  • @Daniel Kayiwa

Skills Needed

  • Familiarity with Java and JavaScript

  • Familiarity with React and TypeScript

  • Good understanding of REST

  • HTML/CSS

Objectives

  • Create a "Hello World" ESM module to plug into the Administration Dashboard following conventions of the Frontend Framework (React, TypeScript, Carbon Design). See this page for an overview of the plan. The module should register itself as an administration function and, when selected, display it's "Hello World" within the Administration Dashboard's content pane.

  • Implement the following administration functions as ESM module(s), each registering as an administration function.

  • For those administration features that do not have existing REST endpoints, create (or coordinate with the GSoC 2021: The REST of Administration project to create) those endpoints by extending the REST Module.

Below are the administration functions to be recreated in the new frontend framework. Examples of existing versions of each functions (in the Reference Application, as an OWA, or in the Legacy UI of OpenMRS 1.x) are provided for reference.

Visits

Provides functions for managing visits resources within OpenMRS as well as configuring how visits are used. A visit can contain 0-to-n encounters.

  • Reference Application 2.x implementation in Configure Metadata - github

  • Legacy UI implementation in Reference Application Advanced Configuration - github

Manage Visit Types

List/search, add, edit, retire, and delete visit types.


Implementation in Reference Application 2.x Configure Metadata


Legacy UI implementation

Manage Visit Attribute Types

List/search, add, edit, retire, and delete visit attribute types.


Implementation in Reference Application 2.x Configure Metadata


Legacy UI implementation

Configure Visits

Control visit behavior within the system (e.g., auto-closing of visits and how encounters are assigned to a visit).

  • REST API endpoints will need to be created to configure visit behavior.


Legacy UI implementation

 

Encounters*

Provides functions for managing clinical encounters within OpenMRS.

  • Reference Application 2.x implementation in Configure Metadata - github

  • Legacy UI implementation - github

Manage Encounters

Allows the creation and editing of clinical encounters. These are relatively complex resources comprising encounter details (patient, location, date, type, associated visit), provider(s) involved in the encounter, and any observations collected within the encounter. There are several types of observations, so making an interface to view and/or edit any observations is non-trivial.


Legacy UI implementation

Manage Encounter Types

List/search, add, edit, retire, and delete encounter types.

  • REST API endpoints exist


Implementation in Reference Application 2.x Configure Metadata


Legacy UI implementation

Manage Encounter Roles

List/search, add, edit, retire, and delete encounter roles.

  • REST API endpoints exist


Implementation in Reference Application 2.x Configure Metadata


Legacy UI implementation

 

Observations

Provides features for system administration of clinical observations collected within OpenMRS.

  • Legacy UI implementation - github

Manage Observations

Find observations by person & concept OR by encounter, then redirects to Encounter management for editing.

  • We might be able to provide these features under Encounter management.


Legacy UI implementation

Extra Credit

  • TBD

Resources