https://github.com/dermatologist/openmrs-esm-dhti
Communityβdriven microfrontends that bring modular GenAI capabilities to OpenMRS.
https://github.com/dermatologist/openmrs-esm-dhti
conch dhti ehr emr health-informatics openmrs
Last synced: 4 months ago
JSON representation
Communityβdriven microfrontends that bring modular GenAI capabilities to OpenMRS.
- Host: GitHub
- URL: https://github.com/dermatologist/openmrs-esm-dhti
- Owner: dermatologist
- License: other
- Created: 2026-01-11T21:20:39.000Z (5 months ago)
- Default Branch: develop
- Last Pushed: 2026-01-27T20:44:57.000Z (4 months ago)
- Last Synced: 2026-01-28T07:41:25.434Z (4 months ago)
- Topics: conch, dhti, ehr, emr, health-informatics, openmrs
- Language: TypeScript
- Homepage: https://github.com/dermatologist/dhti
- Size: 1.85 MB
- Stars: 2
- Watchers: 0
- Forks: 0
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Agents: AGENTS.md
Awesome Lists containing this project
README
# OpenMRS ESM [DHTI](https://github.com/dermatologist/dhti) (GenAI)
- π *Healing begins with a single, sacred vibration!*
## About
This is a monorepo for [DHTI](https://github.com/dermatologist/dhti) conches (OpenMRS ESM microfrontends) for communicating with [DHTI](https://github.com/dermatologist/dhti) elixirs (Langserve **Gen AI** apps for healthcare), providing context and displaying results within [OpenMRS EMR](https://openmrs.org/). DHTI elixirs can also be tested with any FHIR and CDS Hooks compatible EHR system.
[DHTI](https://github.com/dermatologist/dhti) provides command-line tools (`dhti-cli`) for installation and management of DHTI elixirs and conches using docker containers. [DHTI](https://github.com/dermatologist/dhti) [Vidhis](https://github.com/dermatologist/dhti/blob/develop/vidhi/README.md) (receipes) provides a set of shell commands that you can used to easily spin up a complete DHTI environment with elixirs and conches supporting modules such as the *Chatbot Agent (with patient chart context), RAG, Imaging Report widget, Orthanc DICOM viewer,* and more. Additionally, there is a browser extension that allows you to capture webpage content and send it to the DHTI elixir.
**The best way to start using these microfrontends is by following the [DHTI Vidhis](https://github.com/dermatologist/dhti/blob/develop/vidhi/README.md).** Also see the [](https://github.com/dermatologist/dhti/wiki). Individual packages also have their own README files with more details.
## Starting with dhti (Example)
```bash
npx dhti-cli conch install
npx dhti-cli conch start -s packages/esm-chatbot-agent -n esm-chatbot-agent
```
## Available Packages
This monorepo contains the following packages:
### Frontend Modules
- **[esm-chatbot-agent](packages/esm-chatbot-agent/README.md)** - Conversational AI interface for patient interactions
- **[esm-generic-display](packages/esm-generic-display/README.md)** - Generic display widget for AI-powered insights
- **[esm-starter-app](packages/esm-starter-app/README.md)** - Template application demonstrating OpenMRS ESM best practices
- **[esm-dhti-upload](packages/esm-dhti-upload/README.md)** - Module for uploading files for RAG.
- **[esm-dhti-imaging-report](packages/esm-dhti-imaging-report/README.md)** - GenAI-powered imaging report widget.
- **[esm-dhti-orthanc-viewer](packages/esm-dhti-orthanc-viewer/README.md)** - Orthanc DICOM viewer integration (Dermatology/Pathology workflows in combination with imaging-report).
### Utilities
- β¨ **[dhti-screen-grabber](packages/dhti-screen-grabber/README.md)** - Browser extension to capture webpage content and send to DHTI server
### Shared Libraries
- **[esm-dhti-utils](packages/esm-dhti-utils/README.md)** - Shared utilities, hooks, and models used across DHTI packages
## Architecture
The monorepo is structured to reduce code duplication and promote code reuse:
```
openmrs-esm-dhti/
βββ packages/
β βββ esm-chatbot-agent/ # Conversational AI interface
β βββ esm-generic-display/ # AI-powered display widget
β βββ esm-starter-app/ # Template/example app
β βββ esm-dhti-utils/ # Shared utilities (hooks, models)
β β βββ hooks/ # Reusable React hooks
β β β βββ usePatient.ts # Patient search hook
β β β βββ useDhti.ts # DHTI service integration hook
β β βββ models/ # TypeScript models
β β βββ card.ts # CDS Hooks Card model
β β βββ request.ts # CDS Hooks Request model
β βββ esm-dhti-upload/ # File upload for RAG
β βββ esm-dhti-imaging-report/ # GenAI imaging report widget
β βββ esm-dhti-orthanc-viewer/ # Orthanc DICOM viewer integration
β
βββ dhti-screen-grabber/ # Browser extension for screen capture
β βββ background.js
β βββ content.js
β βββ manifest.json
β βββ ...
βββ ...
```
### Shared Utilities
The `esm-dhti-utils` package provides:
- **usePatient**: React hook for searching patients via FHIR API (by name or identifier)
- **useDhti**: React hook for integrating with DHTI CDS Hooks services (AI/decision support)
- **CDSHookCard**: TypeScript model for CDS Hooks response cards
- **CDSHookRequest**: TypeScript model for CDS Hooks request payloads
- **ScreenCapture**: Utility for capturing images for VLMs.
- **useOrthanc**: React hook for interacting with Orthanc DICOM server.
## Give us a star βοΈ
If you find this project useful, give us a star. It helps others discover the project.
## Configuring in OpenMRS
REF: https://o3-docs.openmrs.org/docs/configure-o3/overview
You can make changes to frontend module configurations through the built-in implementer tools panel. Once you log into OpenMRS, clicking on the wrench icon π§ in the top right navbar. Then you can click on the "Configuration tab" and add JSON as below. To make permanent changes to the configuration, you will need to commit those changes to your module configuration. The implementer tools allow you to download a temporary config file containing your changes by clicking the Download config button. The standard easy approach to configuration overrides to frontend modules is to create a JSON configuration that you can paste into the json editor of the implementers tools. For example:
```json
{
"@openmrs/esm-starter-app": {
"exampleSetting": "exampleValue"
}
}
```
## [Generic Instructions for OpenMRS ESM modules](/notes/setup.md)
## Contributing
Please see the [Contributing Guide](CONTRIBUTING.md) for information about contributing to this project. WIP
## Contributors
* [Bell Eapen](https://nuchange.ca) ([UIS](https://www.uis.edu/directory/bell-punneliparambil-eapen)) | [Contact](https://nuchange.ca/contact) | [](https://twitter.com/beapen)