Healthcare-professional-use symptom differential aid. Given patient symptoms and basic demographic context, returns a ranked list of possible conditions with confidence scores -- intended to help narrow a differential for discussion, not to diagnose.
This is not a diagnostic tool. It does not replace clinical judgment. It is not intended for patient self-diagnosis.
- Patient Details -- age, sex, pregnancy status, genetic/family risk factors, collected first.
- Symptom Search -- live autocomplete search across 545 unique symptoms (type "fev" to find fever, high fever, low-grade fever, etc.), click to add, builds a symptom list.
- Ranked Differential -- weighted symptom-overlap scoring, adjusted by demographic modifiers (age range, sex -- both hard anatomical exclusions like prostate cancer and directional epidemiological skew like lupus, pregnancy risk, genetic risk factor matches).
- Red Flags -- symptom combinations matching urgent conditions are surfaced separately, regardless of ranking position.
- New Patient loops back to step 1 without restarting the app.
- 186 diseases, spanning Critical (18) / Severe (32) / Moderate (64) / Mild (72) severity tiers
- 61 diseases marked red_flag (urgent, needs immediate care -- not just "this disease is serious")
- Original dataset, compiled with AI assistance and manually verified by
the author across multiple review passes (symptoms, severity,
demographics, red-flag designation) -- see
LICENSE-DATA.txtfor terms - Sex modifiers split into anatomical (biological certainty, e.g. prostate cancer) and epidemiological skew (directional weighting only, e.g. lupus skewing female -- no fabricated percentage stored)
GUI (recommended):
python src/gui_app.py
CLI:
python src/main.py
Both require typing CONFIRM past the professional-use disclaimer gate
before proceeding -- see the note on this in src/access_gate.py: it's an
honor-system acknowledgment, not real credential verification, and is
described accurately as such (not "verified access") anywhere this project
is discussed.
Standalone Windows .exe: see BUILD_EXE.md.
src/
main.py -- CLI entry point
gui_app.py -- desktop GUI (gate -> patient details -> symptom search -> results)
scoring_engine.py -- core weighted-overlap scoring + demographic modifiers + red-flag detection
access_gate.py -- professional-use disclaimer gate
build_from_csv.py -- builds data/diseases.json from the source CSV
review_diseases.py -- interactive tool for reviewing red_flag/pregnancy/genetic fields per disease
refix_red_flags.py -- targeted re-review tool for a subset of entries
check_progress.py -- data completion/consistency tracker
data/
diseases.json -- final compiled dataset (see LICENSE-DATA.txt)
raw/ -- source CSV
schema_template.json -- field reference for the diseases.json schema
- Edit/extend
data/raw/disease_symptom_dataset_corrected.csv - Run
python src/build_from_csv.pyto rebuilddata/diseases.json - Run
python src/check_progress.pyto see what's reviewed vs. pending - Run
python src/review_diseases.pyto fill in red_flag / pregnancy_risk / genetic_risk_factors for any new or flagged entries
Code and data are licensed separately and both default to a strict, closed license (all rights reserved) while this project is being used for academic admissions and portfolio purposes:
LICENSE-- covers everything insrc/LICENSE-DATA.txt-- coversdata/diseases.jsonand its source CSV
- 186-disease dataset compiled and reviewed
- Weighted scoring engine (symptom overlap + demographic modifiers)
- Red-flag detection, reviewed and corrected for over-flagging
- Desktop GUI with autocomplete symptom search
- Professional-use access gate
- Windows .exe packaging
- Precautions field (currently empty for all entries -- optional for v1)
- Expansion beyond 186 diseases (candidate: larger dataset merge, v1.1/v2)