Skip to content

Instantly share code, notes, and snippets.

@denniskigen
denniskigen / eng-updates-week-of-25th-july
Last active July 31, 2025 13:00
O3 engineering updates from the week of 24th Jul - 31st Jul
# Engineering updates 24th Jul - 31st Jul
1. Core Framework:
- Added a new DateRangePicker component to the OpenMRS styleguide, enabling applications to capture date ranges (start and end dates) with a consistent Carbon Design System interface. This component is based on React Aria's DateRangePicker and includes support for RTL languages, making it suitable for international deployments. The implementation provides a standardized way for applications to implement date range filtering and selection functionality, with comprehensive testing including Amharic language support. [PR #1428](https://github.com/openmrs/openmrs-esm-core/pull/1428)
- Enhanced the authentication redirect handling in `openmrsFetch()` to use the `Location` header from HTTP responses when the frontend config URL is blank. This improvement allows servers to specify custom redirect locations for authentication failures (401 errors), making the authentication flow more flexible and configurable. The change maintains backward compatibility w
@denniskigen
denniskigen / eng-updates-week-of-24th-july
Created July 24, 2025 12:57
O3 engineering updates from the week of 17th - 24 July 2025
O3 Engineering Updates 17th Jul - 24th Jul
1. Release Planning & Readiness
Release cut planned for next week with consensus on priority items for inclusion. The platform is currently at 3.5.0-SNAPSHOT with active
development across core modules:
- Core Platform: OpenMRS Core 2.7.5-SNAPSHOT, FHIR2 2.6.0-SNAPSHOT
- Quality Assurance: Comprehensive E2E testing pipeline with Playwright covering 6 major frontend modules
- Infrastructure: Docker-based integration testing with automated validation processes
- Priority Items: https://openmrs.atlassian.net/wiki/spaces/docs/pages/479199233/Release+Notes+3.5+Goal+2025-08
Engineering updates 10th Jul - 17th Jul
1. Distro reference application: Added the ability to retire bed types to the bed management module. Previously, the module's API only allowed deleting bed types completely. This change is particularly important for our IPD end-to-end test suites, where test setup requires creating new bed types and associating them with beds. When attempting to delete a bed type via the API, the system would try to perform a hard delete using session.delete(bedType) in the data access layer. However, this operation would fail due to foreign key constraints - meaning the bed type couldn't be deleted because existing beds were still referencing it. The solution is to retire bed types instead of deleting them entirely. This approach maintains referential integrity for existing beds while still enabling test cleanup to run successfully. https://github.com/openmrs/openmrs-module-bedmanagement/pull/83 https://github.com/openmrs/openmrs-esm-patient-management/pull/1726 https://github.com/ope
@denniskigen
denniskigen / dev-setup.md
Created February 20, 2024 08:20
My O3 dev setup

My O3 dev setup

This is a breakdown of some of the tooling and configuration I use on my local setup to develop OpenMRS:

Tooling

import swr from 'useSWR';
const useEncounters = (patientUuid: string) => {
const url = `/ws/rest/v1/encounter`;
}
{
"name": "oncology_poc_breast_screening_form_v1.4",
"uuid": "xxxx",
"processor": "EncounterFormProcessor",
"referencedForms": [
{
"formName": "component_oncology-preclinic-review-v1.1",
"alias": "preReview",
"ref": {
"uuid": "b0fc7dac-5d1d-4a04-b238-e1976f6cb8c0",

Oncology POC Breast Cancer Screening Form v1.3

  • encounter_purpose
  • other_encounter_purpose
  • menstruation_before_age_12
  • menses_stopped_permanently
  • menses_stop_age
  • hrt_use
  • hrt_start_age
  • hrt_end_age
  • hrt_use_years
@denniskigen
denniskigen / list.json
Last active October 15, 2020 08:17
Updated regions list
{
"counties": [
{
"name": "Bomet",
"subcounties": [
{
"name": "",
"wards": []
}
]
'use strict';
const departmentProgramsConfig = require('./department-programs-config.json');
const _ = require('lodash');
var serviceDefinition = {
getAllDepartmentsConfig: getAllDepartmentsConfig,
getDepartmentPrograms: getDepartmentPrograms,
getDepartmentProgramUuids: getDepartmentProgramUuids
};
class Fibonacci implements IterableIterator<number> {
protected f1 = 0;
protected f2 = 1;
constructor(protected maxValue?: number) {}
public next(): IteratorResult<number> {
if (this.maxValue != null && current >= this.maxValue) {
return {
done: true,