OMRS24 Hackathon

Hackathon Dates: Sep 9, 2024 - Sep 10, 2024 | Location: Argyle Grand Hotel, Nairobi, Kenya


“Good ideas may not want to be free, but they do want to connect, fuse, recombine. They want to reinvent themselves by crossing conceptual borders. They want to complete each other as much as they want to compete.” ― Steven Johnson

The Annual OpenMRS Conference Hackathons, a place where innovation meets rigorous engineering practices! Is usually an opportunity for community members, teams and architects to engage and get their “hands-in” or “on” OpenMRS and related projects, working on exciting and high priority tasks and challenges, as well as having an opportunity to propose low hanging fruit use cases for groups to work on. It has been a place where we can grow existing skills, learn new skills, and build relationships with others in the community.

We look forward to the attendees (that is you, the participant) bringing their technical strengths to the table and bringing their challenges and use cases to engage with others in the field. These sessions are focused at providing the space for the architects, the analysts, the developers, the system integrators, and the implementers within the community to meet and discuss how to solve active problems and develop innovative solutions. We are expecting a combination of the following to emerge:

  • Focused technical discussions around how best to engage with fundamental aspects and architecture of OpenMRS.

  • Bringing your technical questions and projects/code to persons with expertise in these areas and engaging with them and others on how best to architect and develop solution(s).

  • Resolving high priority issues and tackling new features on the OpenMRS roadmap.

  • Bring your development skills to the table and try to help others working on various challenges.


At this year’s OMRS24 Hackathon, as part of our commitment to excellence, we're introducing a new requirement: If there's coding involved, there should be tests!

If there's coding involved, there should be tests!

As we implement the "Tests Required on all PRs" policy, every team working on engineering tasks will be expected to write tests as they develop their solutions. To support this initiative, expert coaches will be on hand to guide you through the process. But that’s not all—teams with the best test coverage will be eligible for a special award. We’ll be looking for:

  • Comprehensive Coverage: How well does your test suite cover the codebase?

  • Diversity of Tests: Are you using a variety of test types to ensure robustness?

  • Quality: How effective and well-structured are your tests?

 

This is more than just a hackathon; it’s a chance to improve your coding practices and showcase your testing prowess!

Teams with the best test coverage will be eligible for a special award

Current Challenges

Please add in any challenges that you might want to pose to the attendees or smaller high priority issues/bugs raised by the community and/or from the core OpenMRS roadmap to be tackled at the Hackathon.

NOTE: If you're proposing a topic because you're looking for help on an issue (as opposed to offering yourself up to work on the issue), please fill in the 'Support Needed'  column with the type of expertise or help you'd require.

 

Title

Description

Support Needed

Notes/ Slides/ Links

Ambassador/ Proposed By

Title

Description

Support Needed

Notes/ Slides/ Links

Ambassador/ Proposed By

O3 Bug Bash

Hack away on some tricky bugs & Design QA tickets!

 

Includes: 

  • Test Writing: Learn how to write tests that will be required on all PRs as of Sept

  1. List of tickets HERE

    1. Label with: omrs24bugbash

  2. August: Improvement to testing framework (how a good PR with test coverage should look - Jayasanka Weerasinghe Dennis Kigen)

  3. Docs: More guidance on how to do mocking

  4. Docs: Recipe showing full example/story of how one would test as they build something

 

Ian Bacher& Veronica Muthee

O3 Form Engine Test coverage

  • The React Form Engine is a mission-critical component of the EMR.

  • Need more test coverage for this! 

List of tickets HERE

 

Jayasanka, Samuel Male

Form Builder

  • The form builder currently supports making a fully fledged form in the JSON schema editor but needs some additional work to add support for it on the interactive builder.

  • Needs more test coverage!

List of tickets HERE

 

Nethmi Rodrigo

Feature area: Order Basket

Make sure everything’s properly aligned from data model through to frontend; walk through all the flows; check for any safety concerns. 

  1. Prep for this with Global Support Team in advance

  2. Burke’s support and user testing

 

Dennis Kigen

Graphical reports

Out of the box graphical reports for the various services offered at the facility. The could include trends against time and pie charts e.g Outpatient/Inpatient dashboards

  1. OpenMRS core support to provide the data to populate these charts

  2. Design support to design the layout of these charts

 

Pius Kariuki- IntelliSOFT

 

 

SMART Guidelines

 

 

 

 

 

 

David Mukungi-IntelliSOFT

Import Export Service

  1. An admin service to seed databases for instance new installations with SQL data.

  2. The export service to backup information selected from a checklist, this might include but not limited to: address information, patient data,  concept dictionary and user roles.

 

We believe that implementing this solution will significantly streamline the data backup process and enhance security measures to protect against data loss.

 

Design support. We have already started working on those features but we would like some design support to help improve the experience on these workflows.

 

Pius Kariuki

Michael Ndula- IntelliSOFT

 

Currently, OpenMRS does not support auto-population

On the React Forms

Picture an instance where you have already filled your date of birth, gender and HIV status in a separate form and now you need to fill a few more forms. 

Currently OpenMRS doesn’t support auto population of observations from different encounter types so you will have to keep filling these details over and over again (docs)

 

https://github.com/openmrs/openmrs-ngx-formentry/blob/main/projects/ngx-formentry/src/form-entry/services/historical-encounter-data.service.ts#L5

 

 

Michael Ndula- IntelliSOFT

Validation of the Ampath forms

Validating the forms to only appear after a certain condition is met or depending on the Patient’s age/gender e.g Pediatric form should not appear for Adults and Adults and adolescent form should not appear for Children

  1. Know how to validate Encounters Types.

 

Michael Ndula- IntelliSOFT

Data Exchange between O3 facilities?

 

 

 

 

New Triage form

How might we improve the interface of a Triage form to better support providers in that role? Could we do this without creating hard-coded form elements but expand a generic set of patterns that could also be reused in other forms / contexts?

 

 

Paul Adams

System use and data quality monitoring report

Can we provide an out-of-the box report that enables implementers to determine if the EMR is being used effectively, and if the data meets basic quality standards.  

Knowledge of data model, ideas for mapping indicators, and building SQL queries to be used for exports or ETLs.

Proposed list of indicators that should be broadly useful across implementations to be provided.

Debbie Munson PIH

Integration of OpenMRS RefApp with Kenya National Health Terminology Service

  1. The Open Concept Lab module prepends “api.” to the subscription URL. Our subscription URL is -> https://knhts.health.go.ke/knhts-api/orgs/MOH-KENYA/collections/CHC/

 

The Open Concept Lab module prepends the URL to be “https://api.knhts.health.go.ke/knhts-api/orgs/MOH-KENYA/collections/CHC/”. — Is this by design? It is easy to change but was there a reason behind this?

 

  1. Our reverse proxy settings at present, has a trailing “/“ in the subscription URL. The module automatically strips this trailing “/“ and fetching concepts fails. Can this be changed to avoid URL manipulation in any way and use the URL as is configured?

 

 

Kevin Ngari & Amos Laboso

University of Nairobi

ICD 11

Make it easier to subscribe to ICD 11 and integrate into your OpenMRS dictionary.

 

 

Antony Ojwang/Samuel Lubwama

Stock management Bugbash

Finding bugs in stock module and fixing them

 

 

Jaba/Makombe/Donald Kibet

Auto-generated TypeScript REST client using Swagger

Since we already have swagger docs for OpenMRS REST resources, we should be able to use swagger-codegen to generate typescript client and data types for our frontend to consume. This should also give us incentive to improve the swagger docs for other server endpoints (FHIR REST resources, Spring controllers)

  • knowledge of Swagger docs

  • knowledge of server-side resources and endpoints to improve typings

  • knowledge of server-side and client-side build / publish process.

Write-up

Chi Bong Ho