Dr.Echo - Cardiology EHR Desktop Application
A modern EHR application designed for cardiologists, with a focus on clean code and UX/UI.
Project info
Software Engineering
Introduction
A brief project description or quote to summarize its goals.
“A modern EHR application designed for cardiologists, built with a modern architecture and technologies.”
Explore the Project
Tech details - Go to general technical info about components (on this page)
GitHub - View the project repository
Docs - Open detailed documentation
ADR - Access the detailed ADR documentation
About
DrEcho - Cardiology EHR System
DrEcho is an advanced Electronic Health Record (EHR) system tailored for cardiology departments. It is built with JavaFX and follows a loosely coupled architecture, allowing it to integrate seamlessly with different backend systems such as standalone or client-server environments.
This project serves as a sandbox for practicing clean architecture, OOP, and design patterns, inspired by the works of Uncle Bob, Martin Fowler, and my own coding challenges. It is a platform for experimenting with best practices from books, courses, and real-world experience.
Key Features
- Patient Registration and Management
- Visit Scheduling
- Examinations Module with complex forms for validation and calculations
- Customizable UI with dark mode and focus on good user experience (UX)
- Internationalization support for multiple languages
- Planned Features:
- PDF Printer
- HL7 Integration
Architecture & Design
- MVVM architecture for separation of UI and business logic
- Loose-coupled backend connectors for flexible integration
- OOP, SOLID, and Clean Code principles
- Onion Architecture for separating business logic and infrastructure
- Command & Query pattern for separating read and write operations
- Custom Dependency Injection
Technical Stack
- Frontend: JavaFX, MVVM
- Backend: Oracle SQL, Docker, Shell Scripting
- Testing: ArchUnit, Unit Tests, InMemory Repositories
- Design Patterns: Factory, Builder, Dependency Injection, Command & Query
System Architecture
- Client Application - Modern MVVM architecture
- Data Model - Configurable and loosely coupled model layer with repository pattern
- Standalone Model with In-Memory Demo Repository
- Remote Database Integration [in progress]
- Report Generation Server - Utilizing JasperReports
Self-Hosted Tools
- Project Page https://drecho.nvl.ovh
- Issue Tracking (Redmine)
- Knowledge Base (Wiki.js)
Status
- Pet project 🐶🐱
- Status: Under construction
Setup
Run:
mvn clean javafx:runAsserts:
mvn clean javafx:run -DargLine="-ea"Stack tags
#MVVM
#OOP
#Java
#JavaFx
#JasperSoft
#PackageByFeature
#Docker
AtlantaFx
Docs
Documentation for the project will be available soon.
Documentation (Coming soon)
Project Overview
In General
Components
Quick Summary
- Desktop Application
List of All Technologies
Grouped by Category
Category | Technologies |
---|---|
Frontend | JavaFX |
Backend | Oracle SQL ✦ Docker |
Tool | JasperReports ✦ Maven |
Testing | ArchUnit ✦ JUnit |
Components Specification
Detailed Information Grouped by Components
Table of Contents:
- Desktop Application
Details
-
Desktop Application
DrEcho is an advanced Electronic Health Record (EHR) system made for cardiology departments. The system is built with JavaFX and a loosely coupled architecture. This design allows it to easily connect with different backends, making it flexible for various environments like standalone or client-server setups. Beyond its functionality, DrEcho is a personal learning project where I integrate best practices from books and courses, while improving through my own mistakes and successes.
Tech Stack
Category Description Frontend JavaFX Backend Oracle SQL Backend Docker Tool JasperReports Tool Maven Testing ArchUnit Testing JUnit Docs
- ADR documentation available in the repository.
Architecture & Design
- MVVM pattern for separating UI and business logic.
- Loose-coupled backend connectors for flexible integration.
- Frontend logic easily changeable with backend facades.
- Follows OOP and SOLID principles.
- Package-by-feature structure for better modularity.
- Testable design with dependency abstraction.
- Custom dependency injection.
- Onion Architecture for separating core layers.
- Command & Query pattern for clear separation of operations.
- Repository abstractions, including in-memory for tests.
- ViewModel to Domain object mapping.
- DTOs for data transfer between ViewModel and Connectors.
Implementation
- Factory and Builder patterns for object creation.
- Structured exception handling.
- Clean Code principles.
- Immutable Value Objects.
- Modern Java practices.
Tests
- ArchUnit for architectural rule validation.
- Unit tests for component behavior.
Features & UseCases
- Patient Registration and Management.
- Visit Scheduling.
- Examinations Module with validation and calculations.
- Customizable UI with dark mode and good UX.
- Internationalization support.
- PDF Printer #TODO.
- HL7 Integration #TODO.
Additional Information
- Domain: Healthcare IT, Software Development
- Status: 0
- Keywords: Java 21 JavaFX MVVM UI/UX