A post-visit clinical assistant. A doctor speaks a short summary after a patient visit; Nabd turns that into a structured SOAP note grounded in the patient's real history, lets the doctor ask follow-up questions on demand, and surfaces cross-specialty connections via Nabd Mind — all with a human approval step before anything is finalized.
| Component | Owner |
|---|---|
| STT | Mohammed alzubudi |
| RAG + Vector DB | riyadh almalki |
| LLM · SOAP | turki Abu Haimid |
| Ask Nabd | meshari alodhaylah |
| Nabd Mind | mohammed alshatri |
| Orchestration | Mohammed alzubudi |
pip install -r requirements.txt
Each schema file has a runnable self-check:
python schemas/stt_schema.py
python schemas/rag_schema.py
python schemas/soap_schema.py
Each prints a valid example payload if the schema is well-formed. To
check the actual mock data in /mock_data against the schemas, load it
directly:
import json
from schemas import STTOutput, RAGOutput, SOAPNote
STTOutput.model_validate(json.load(open("mock_data/sample_stt_output.json")))
RAGOutput.model_validate(json.load(open("mock_data/sample_rag_output.json")))
SOAPNote.model_validate(json.load(open("mock_data/sample_soap_output.json")))
If any of these raise a validation error, something in /mock_data no
longer matches /schemas — fix before building anything downstream.
/schemas ← locked Pydantic models (source of truth for interfaces)
/mock_data ← valid sample payloads — build against these in parallel
/stt /rag /llm_soap
/ask_nabd /nabd_mind /orchestration
CLAUDE.md ← shared architecture context for Claude Code
Each component folder has a README.md (the assignment) and a
RESULTS.md (the actual research: what was tested, real numbers, the
decision and why) — see CLAUDE.md's "General Workflow" section.
language_detected field stays for future Arabic/mixed support)Python
44.2%
Jupyter Notebook
30.0%
CSS
10.3%
JavaScript
9.0%
HTML
6.4%
A post-visit clinical assistant. A doctor speaks a short summary after a patient visit; Nabd turns that into a structured SOAP note grounded in the patient's real history, lets the doctor ask follow-up questions on demand, and surfaces cross-specialty connections via Nabd Mind — all with a human approval step before anything is finalized.
| Component | Owner |
|---|---|
| STT | Mohammed alzubudi |
| RAG + Vector DB | riyadh almalki |
| LLM · SOAP | turki Abu Haimid |
| Ask Nabd | meshari alodhaylah |
| Nabd Mind | mohammed alshatri |
| Orchestration | Mohammed alzubudi |
pip install -r requirements.txt
Each schema file has a runnable self-check:
python schemas/stt_schema.py
python schemas/rag_schema.py
python schemas/soap_schema.py
Each prints a valid example payload if the schema is well-formed. To
check the actual mock data in /mock_data against the schemas, load it
directly:
import json
from schemas import STTOutput, RAGOutput, SOAPNote
STTOutput.model_validate(json.load(open("mock_data/sample_stt_output.json")))
RAGOutput.model_validate(json.load(open("mock_data/sample_rag_output.json")))
SOAPNote.model_validate(json.load(open("mock_data/sample_soap_output.json")))
If any of these raise a validation error, something in /mock_data no
longer matches /schemas — fix before building anything downstream.
/schemas ← locked Pydantic models (source of truth for interfaces)
/mock_data ← valid sample payloads — build against these in parallel
/stt /rag /llm_soap
/ask_nabd /nabd_mind /orchestration
CLAUDE.md ← shared architecture context for Claude Code
Each component folder has a README.md (the assignment) and a
RESULTS.md (the actual research: what was tested, real numbers, the
decision and why) — see CLAUDE.md's "General Workflow" section.
language_detected field stays for future Arabic/mixed support)Python
44.2%
Jupyter Notebook
30.0%
CSS
10.3%
JavaScript
9.0%
HTML
6.4%