iris-CliniNote : Modern Full-Stack Application for Clinical Data & Doctor Notes + Vector Search
Hi Community,
In this article, I will introduce my application iris-CliniNote .
CliniNote is a full-featured clinical notes application that combines classic CRUD operations with **real-time AI-assisted notes matching** powered by **InterSystems IRIS native vector search**. The standout feature: while a doctor is writing or editing a clinical note, a side panel shows the **top 5 most similar notes** based on the semantic content of the note being written — **excluding the current patient** to avoid trivial matches. This gives clinicians immediate access to "patients like this one" — helping with differential diagnosis, treatment pattern recognition, and rare presentation detection.
Application Features
-
🏥Patient Management — CRUD operations (create, read, update, delete)
-
📆Episode Tracking — episodes linked to patients with type, dates, and reason
-
🩺Clinical Notes — doctor notes attached to episodes
-
🔍Top 5 matching notes panel showing semantically similar notes against the selected note
-
🧠Semantic Vector Search — search notes by meaning (not just keywords) using IRIS native vector search + sentence-transformers embeddings
-
⬇️Searchable dropdowns for linked entities (Patient → Episode, Episode → Note) using Tom Select
-
🖥️Responsive Design — works great on desktop and mobile
-
🖼️Professional UI — Bootstrap 5 + clean sidebar navigation
Application Workflow Process
🛡️Login Page
The application automatically generates synthetic test data during setup, including sample patients, episodes, notes, users, and roles. For initial login, use the default credentials admin/admin (full access); you can later create your own accounts via the Users screen.
🏥Patients Page
The Patients page provides a clean, read-only grid view of all registered patients, displaying key details such as name, date of birth, gender, address, and country. The application automatically generates synthetic test data during setup, including sample patients with realistic demographics. You can double-click any patient row to open the edit dialog for viewing or updating details, or use the "Add New Patient" button to create new records. The grid supports searching across all columns for quick navigation.
📆 Episode Page
The Episode page displays a read-only grid of all patient episodes, showing details such as patient name (with ID), start date, end date, episode type, and reason. The application generates synthetic test data during setup, including realistic sample episodes linked to patients. You can double-click any episode row to open the edit dialog for viewing or updating details, or use the "Add New Episode" button to create a new record. The grid supports searching across all columns for quick filtering. When adding or editing an episode, the Patient field uses a searchable dropdown populated with all patients, allowing easy selection by name or ID.
🩺Notes Page
The Notes page presents a grid of all clinical notes, displaying key details such as episode ID, doctor, content preview, and note date. You can double-click any note row to open the edit dialog for viewing or updating details, or use the "Add New Note" button to create a new record. The grid supports searching across all columns for quick filtering. When adding or editing a note, the Episode field uses a searchable dropdown populated with all episodes, allowing easy selection by episode ID, date, type, or patient name.
Additionally, while editing or adding a note, a "Top 5 Matching Patients" button in the dialog footer enables real-time semantic search — displaying a side panel with the top 5 most similar patients based on the current note content (excluding the current patient if applicable).
🧠Search Patient Notes
The Vector Search screen is a dedicated semantic search interface for finding clinically similar notes across the entire database. The application generates synthetic test data during setup, including realistic sample notes with varied content. Enter a descriptive query (e.g., "chest pain after eating spicy food" or "shortness of breath with fatigue") in the large search box, then click "Search" or press Enter to retrieve the top matching notes ranked by cosine similarity of their vector embeddings. Results display note ID, similarity score, and a note of the matching content, with a "View Note" button to open the full note in a modal for detailed review. This feature leverages InterSystems IRIS native vector search to provide meaningful, context-aware results without relying on exact keyword matches.
For more details, please visit iris-CliniNote open exchange application page.
Thanks