The project described here has not had any usable work done on it, largely because the use cases described are too complex.

We are going to try a simpler approach to building a Concept Proposal module, that can be successfully completed, and we can then iterate on further.

See Concept Proposal Client and Server.

Functional Requirements

Actor Goal List

Actor

Goals

Priority

Data Manager (Eldoret)

  • Propose new clinical content (forms + concepts)
  • Edit and re-propose rejected clinical content
  • Propose changes to existing approved content
  • Be notified of proposed clinical content lifecycle changes (ie. submitted by me). For example,
    • Under consideration
    • Rejected
    • In production
    • Approved - waiting for publishing to prod
    • Needs editing (with comments attached)
    • etc
  • View all proposed clinical content
  • Send proposed clinical content to Indianapolis OpenMRS Dev instance

 

Data Manager (Indianapolis)

  • Propose new clinical content (forms + concepts)
  • Edit and re-propose rejected clinical content
  • Propose changes to existing approved content
  • Be notified of proposed clinical content lifecycle changes (ie. submitted by me). For example,
    • Under consideration
    • Rejected
    • In production
    • Approved - waiting for publishing to prod
    • Needs editing (with comments attached)
    • etc
  • View all proposed clinical content
  • Send proposed clinical content to Indianapolis OpenMRS Dev instance
  • Prevent content updates on Eldoret OpenMRS Dev instance during a certain timeframe
  • View all proposed content by:
    • Not viewed by me yet (new)
    • Under review (waiting for an Indianapolis Data Manager to take some action)
    • Approved - waiting for publishing
    • In production
    • Retired
    • Rejected
    • Awaiting re-submission
  • Change the lifecyle status of clinical content:
    • Approve content
    • Reject
    • Comment on proposed content
    • Request that the submitter updated and re-propose some content
  • Push content updates back to Eldoret OpenMRS Dev Instance
  • Push content approvals to Eldoret OpenMRS Prod Instance
  • Receive email/message notifications of all new proposed content and lifecycle status changes.


1
7
2
9






3
4
11
8







5




6
12
10

Use Cases ( Need review and Updating)

UC 01 Create Full Concept Proposal

UC 02 Create Concept Proposal during data entry

UC 03 View all Concept Proposals

UC 04 Receive Concept Proposal Notifications

UC 05 Take Action on Concept Proposals

UC 06 Edit and Re-submit Concept Proposal

Concept Proposal State Workflow

States

New
In Progress
In Review
Published
Retired
Deleted

Non-Functional Requirements

Deployment Architecture

Assumptions

  1. Assumed that the same module will be deployed to all 3 instances of OpenMRS

Issues

  1. Concepts should not be modified. Editing and modifying a concept changes the context in which previous clinical data was captured. A concept that needs updating should be published as a new version with a reference to a retired previous version.
  2. Synchronizing concepts based on ID versus GUID. If this is done based on a simple auto-increment integer primary key then there will be collisions.