This is a breakdown of some of the tooling and configuration I use on my local setup to develop OpenMRS:
- zsh - installation guide
- ohmyzsh - installation guide
# 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 |
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 |
This is a breakdown of some of the tooling and configuration I use on my local setup to develop OpenMRS:
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", |
{ | |
"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, |