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

2023/11/01

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.”
— Arek

Explore the Project

Tips

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

Status

  • Pet project 🐶🐱
  • Status: Under construction

Setup
Run:
mvn clean javafx:run

Asserts:
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

  1. Desktop Application

List of All Technologies

Grouped by Category

Category Technologies
FrontendJavaFX
BackendOracle SQL ✦ Docker
ToolJasperReports ✦ Maven
TestingArchUnit ✦ JUnit

Components Specification

Detailed Information Grouped by Components

Table of Contents:

  1. Desktop Application

Details
  1. 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

Thumbnail

Dr.Echo Dashboard