Remarks Project

From Humanitarian FOSS Summer Institute 2009

Jump to: navigation, search

Contents

Overview of OpenMRS

OpenMRS is a free and open source electronic medical record system designed primarily for use in developing countries. Its development is led by Partners in Health, a Boston-based nonprofit that provides medical care to people around the world, and the Regenstrief Institute, Inc., an informatics and healthcare research organization. OpenMRS is built around the idea of a dictionary of concepts that can represent a variety of types of data. This allows for an easily expandable and extensible system.

Project Overview

An important part of medical records are narrative remarks that allow clinicians to record comments and observations about data. The remarks project consists of two parts. The first is an API/database implementation of remarks that allows threaded remarks to be attached to any data object in OpenMRS. The second is an interface implementation, that uses the remarks API to allow users to create and view remarks for patients, encounters, and observations.

The remarks project will be implemented as a module for OpenMRS 1.5.

Project Goals

Preliminary

  • Get OpenMRS 1.5 installed and working
  • Learn how to use JUnit tests and Hibernate in the context of OpenMRS
  • Set up a module skeleton to use for the project
  • Write a more complete project specification. Specifically: project timeline, api/db changes, and (later) UI mockups

Main Project

  1. Write unit tests for remarks API/DB stuff.
  2. Implement the API/database table for remarks.
  3. Implement a UI for remarks on the Person/Patient dashboard pages.
  4. Implement a UI for remarks on the encounter and observation pages.

Preliminary Timeline

  • Friday, June 19th: Have OpenMRS 1.5 installed/working, understand hibernate/unit tests in the context of OpenMRS, set up a module skeleton, have basic specification written.
  • Thursday, July 2nd: Have the API/DB changes implemented.
  • Friday, July 3rd: Figure out how to create and use portlets, and what needs to be done to attach one to the Person/Patient dashboard.
  • Tuesday, July 28th: Have the Person/Patient dashboard portlet done.
  • Friday, July 10th: Have the UI for encounter/observation display done.

Specification

Database

  1. Remark Table
    • remark_id
    • subject_id
    • subject_class
    • text
    • parent_remark_id
    • creator
    • date_created
    • voided
    • voided_by
    • date_voided
    • void_reason

API

  1. Remark
    • Fields
      • Integer id
      • OpenmrsObject subject
      • Remark parent
      • String text
      • List<OpenmrsObject> children
  2. RemarkService
    • Methods
      • Remark saveRemark(Remark remark)
      • Remark voidRemark(Remark remark, String reason)
      • Remark unvoidRemark(Remark remark)
      • void purgeRemark(Remark remark)
      • List<Remark> getRemarks(OpenmrsObject subject) //returns top-level remarks only
      • List<Remark> getAllRemarks(OpenmrsObject subject) //returns flat list of every remark on subject
      • Remark addRemark(OpenmrsObject subject, String text) //convenience method for adding a remark to 'subject'
      • Remark addReply(Remark parent, String text) //convenience method for adding a reply to 'parent'
  3. Context
    • Methods
      • RemarkService getRemarkService()

Developers

Sam DeFabbia-Kane

Weekly Check Points

Personal tools