Skip to content

[C4GT] Document upload module in Bahmni to be written in React #571

@gsluthra

Description

@gsluthra

UPDATE: 11-July-2023 The JIRA issue for this and related issues can be seen here: https://bahmni.atlassian.net/browse/BAH-3101?jql=labels%20%3D%20Code4GovTech

Note: Bahmni team tracks all issues in public JIRA repository. But since Code4GovTech requires all project details to be created in Github, we are writing the project details here. But eventually as per Bahmni community process, the actual stories will tracked in JIRA, and issue number in commit messages will need to be of JIRA ticket number (and optionally Github issue number).

Purpose

Write a replacement for the current Bahmni document upload, using React -- with a more user-friendly UX.

Introducing Bahmni

  1. Bahmni is an opensource hospital management system, used in low resource environments and is currently live in 600+ facilities across the world, including India, Nepal, Bangladesh, Uganda, Lesotho, Kenya, Cambodia, etc. It is also recognized as a Digital Public Good (DPG) by DPGA and Digital Square Alliance. For more details on Bahmni please visit: https://bahmni.org
  2. One can try out Bahmni online using our demo servers here: Online Bahmni Demo

Feature details

  1. Bahmni EMR UI was previously written in Angular. For the past 2 years, all new code in Bahmni is being written in React, to move away from legacy Angular.
  2. We would like to replace the current Patient Document upload module, with IBM Carbon Design system and React. To see how the current Document Upload module looks, you can read this documentation, or access our online demo servers.
  3. We have done something similar with the recent Lab Lite module which was newly developed in React/Carbon. See this Wiki Link: Lab Lite Module
  4. As part of this Feature, we would like to rewrite a new Patient Document Upload Module, that will replace the existing module, and be more UX friendly.
  5. Also see this JIRA issue: https://bahmni.atlassian.net/browse/BAH-3006

Learning Path

  1. Complexity: Medium.
  2. Skills Required: Frontend (React, Javascript, CSS, Carbon Design System). Backend (Java, MySQL). Local Install (Docker).
  3. Name of Mentors: @gsluthra @angshu
  4. Project Size: 4-6 weeks

Product Setup

  1. Docker based local setup. See: Running Bahmni on Docker

Acceptance Criteria

  • 1. All existing features of Document Upload functionality replicated in new module in React/Carbon design system.
  • 2. Pull Request reviewed/merged into Bahmni codebase, after feedback from Bahmni core team & mentor has been incorporated.
  • 3. Automation Tests pass on Github Actions CI.
  • 4. New Feature is deployed on our DEV environment.
  • 5. There is configuration which enables this new feature (so customers can choose when they want to switch to the new module).
  • 6. All message strings are added into translation files.
  • 7. A showcase is done of this feature in our public Bahmni PAT call (every Wed evening at 6:30 pm IST).

Milestones

  • 1. Install Bahmni locally.
  • 2. Demo the current document upload functionality, to ensure the contributor has understood the functionality.
  • 3. Work with mentor to create low-fi design/mockup for new screens.
  • 4. Create stories in JIRA (possibly 4-5) which list all requirements to develop this feature.
  • 5. Complete the development (with unit tests), with local showcase from your own machine.
  • 6. Raise PR for each story, and have it reviewed.
  • 7. Merge PRs for all stories.
  • 8. Validate and showcase the feature from our DEV server.
  • 9. Document the new screens in Bahmni public WIKI.
  • 10. Showcase the new feature in Community PAT call over zoom.

C4GT

This issue is nominated for Code for GovTech (C4GT) 2023 edition. C4GT is India's first annual coding program to create a community that can build and contribute to global Digital Public Goods. If you want to use Open Source GovTech to create impact, then this is the opportunity for you! More about C4GT here: https://codeforgovtech.in/

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions