Versions Compared

Key

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

Primary mentor

Maimoona K

Backup mentor

Darius Jazayeri

GSoC student

Sharon Varghese

Abstract

The purpose of this project is to improve our ability to capture data for specific households.

The OpenMRS Household Module allows a Household to be represented as a data element in OpenMRS, thereby allowing encounters to be stored for households. This is useful for projects or studies where the household is the key element for population enumeration for example. Since different projects or studies may define a "household" differently, this project proposes (credit to Burke Mamlin for the idea) to create cohort-level encounters and observations. Using this approach we could,

  • Model a household as a cohort of patients
  • Support the added flexibility of defining different cohort of patients (e.g. an arm of study or a group receiving a certain type of treatment)
  • adding encounters and observations for entire Cohorts

This functionality has applications in several areas in health research and delivery.

Requirements

  • Satisfactory Java, Spring and Hibernate skills
  • Familiarity with the OpenMRS data model
  • Soft skills for requirement elicitation across multiple stakeholders

Project champions

Objectives

  • Convert/Extend the Household module to support Cohort-level encounters and observations
  • Expose the ability to create these encounters via a REST interface

Extra credit

  • Develop support for different versions of the OpenMRS data model, with emphasis how patients and encounter domain objects have changed from OpenMRS 1.9 onwards

Resources

...

Introduction:

What's a cohort?

  •  A cohort consists  of a group of patients based on a condition like patients receiving similar kind of treatment which can be monitored over a period of time.

  •  Cohort management system unlike patient management system deals specifically to monitoring  and suggesting possible cures to group of cohort members under a specific cohort unlike separate diagnosis for a particular patient.

  • We can analyze trends and patterns and this helps in research an policy making

Objective of the Project:

  • The purpose is to manage cohort related data

    • cohorts,

    •  cohort types

    •  cohort attributes

    • cohort attribute types

    • cohort members 

    • cohort member attribute 

    • cohort member attribute type

  •  Using REST to allow external system integration with cohort module

  •  Cohort Management can be performed in two ways

    • Simple Cohorts for single entities

    •  Cohorts including groups or collections like households

This document will cover following information :-

  1. Design of the Module

  2. Cohort REST Web Service Integration

  3. Installation Of the Module

  4. User Manual

  5. Potential Improvements

  6. Quick Demonstration

  7. Downloads and Resources

Design of the Module:

Anchor
design-m
design-m

ER Diagram:


Image Added

  • The module deals with creating cohorts and associating it with cohort attributes which are dependent on cohort attribute types

  • Every cohort member who is a patient is associated to the cohort and also it can have cohort member attributes which are dependent on cohort member attribute types.

  • Search operations can be performed based on name under the mange cohorts page

  • Each of the cohort can have many encounters ,visits and observations which are created utilizing the forms from the HTML Form Entry Module

  • The search operation would be based on the cohort unlike in OpenMRS which is based on only patient identifier/names.

  • It is also created utilizing the Rest interface from the Rest Module wherein the resources are identified in requests using URIs as resource identifiers to view cohorts, cohort encounters and cohort observations.


Cohort Web Service Web Integration:

Anchor
rest
rest

  • We would be utilizing REST services in our module so that users who are not accessing OpenMRS can view the available data of the module by sending an HTTP GET or POST request 

  • GET Request can be sent to view the data related to cohorts , cohort members, cohort encounters and cohort observations

  • POST Request can be sent to add data into the database by sending parameters as a JSON object. 

  • To know more about REST MODULE click here : REST Module

  • Modules required 

    1. Cohort Module

    2. REST web services

 

Info
titleExample GET Requests


list the related cohort

GET: http://localhost:8080/openmrs/ws/rest/v1/cohortm/cohort/2baddb64-f4f9-47c4-80c6-404c4b016d12 

list the related cohort member

GET: http://localhost:8080/openmrs/ws/rest/v1/cohortm/cohortmember/2003394e-daa2-4df8-acba-4894460b0624

list the related cohort encounter

GET: http://localhost:8080/openmrs/ws/rest/v1/cohortm/cohortenc/47d7bb8c-c4f2-4d16-978a-a4c7cf0d9556

list the related cohort observation

GET : http://localhost:8080/openmrs/ws/rest/v1/cohortm/cohortobs/34839160-5c8a-4c37-bdf6-e17042d46614

 

 

Info
titleExample POST Requests

POST: http://localhost:8080/openmrs/ws/rest/v1/cohortm/cohort

PARAMETERS:

{"name":"neurologicalrecoverystudy","cohortType":"(list the related cohortType uuid)","cohortProgram":"(list the related cohortProgram uuid)"}

 

POST :http://localhost:8080/openmrs/ws/rest/v1/cohortm/

PARAMETERS 

{"name":"Horatio","person":"(list the related person uuid)","cohort":"(list the related cohort uuid)"}

 

POST: http://localhost:8080/openmrs/ws/rest/v1/cohortm/

PARAMETERS 

{"encounterType":"(list the related encounterType uuid)","visit":"(list the related visit uuid)","cohort":"(list the related cohort uuid)","form":"(list the related form uuid")}

 

POST: http://localhost:8080/openmrs/ws/rest/v1/cohortm/cohortobs

PARAMETERS{"encounterId":"(list the related encounter uuid)","concept":"(list the related concept uuid)","cohort":"(list the related cohort uuid)"}

 

Module Installation: 

Anchor
install
install

Video for Installation Of The Module:

 


Widget Connector
urlhttp://youtube.com/watch?v=Hi1-Ahh1j5w

 

 

User Manual

Anchor
manual
manual

 

Potential Improvements:

Anchor
potential
potential

  • Integrate it with Reporting Module

    • fetch / add members dynamically from reporting query instead of adding one by one.
    • Create reports for cohorts
  • Integrate Cohort Management with core OpenMRS

  • Extend the functionality of Html Form Entry module for cohorts similar to patients which would require refactoring to allow adding  custom tags related to cohorts for more dynamic and complex forms.

    • The original HTML form entry module supports dynamic functionality is saving forms to manage patient related encounters and observations data. In our module , the HTML form functionality has been slightly extended to save cohort level encounters and observations based on cohort data to allow dynamic functionality in the module. This feature can be extended to maintain the module for cohort level encounters and observations

    • Voiding an encounter will void all the observations associated with that encounter.

    • CohortModule doesnt support Obs Group Component

    • The user can create a HTML form under the Manage HTML forms tab and then open the htmlForm under the module, the form created is viewed. 

    • The parameters date, location and provider needs to be included in the form and enter the rest of the fields in the form, the cohort encounters and observations related to the form are inserted into the database

    • To know more about HTML Form Entry Module click here: HTML Form Entry Module

Quick Demonstration

Anchor
demonstrate
demonstrate

Info
titleNote

The demonstration has been done on the legacy UI of this module. The current UI has been changed. However, the essential process remains the same

 

Widget Connector
urlhttp://youtube.com/watch?v=2-mPO2Io9og

 

Downloads and Resources: