| """ |
| GEMEO World Model — Quickstart |
| |
| Minimal example: build a digital twin from a free-text clinical case and |
| inspect each inference mode. |
| |
| ⚠️ Research only — not a medical device. No clinical use. |
| """ |
|
|
| import asyncio |
| import sys |
|
|
| |
| sys.path.insert(0, "src") |
|
|
| from gemeo import build_gemeo |
|
|
|
|
| async def main() -> None: |
| twin = await build_gemeo( |
| case_text=( |
| "Menino, 5 anos, ataxia progressiva desde os 18 meses, " |
| "telangiectasia ocular, AFP sérica 320 ng/mL, " |
| "infecções respiratórias recorrentes." |
| ), |
| patient_info={"age": 5, "sex": "M"}, |
| context={"sus_region": "SP"}, |
| ) |
|
|
| print("=== Diagnostic mode ===") |
| for i, dx in enumerate(twin.diagnoses[:5], 1): |
| print(f" {i}. {dx}") |
|
|
| print("\n=== Cohort retrieval (patients-like-mine) ===") |
| for member in twin.cohort.members[:5]: |
| print(f" - {member}") |
|
|
| print("\n=== Trajectory horizons ===") |
| print(f" 6m: {twin.trajectory.horizons.get('6m')}") |
| print(f" 12m: {twin.trajectory.horizons.get('12m')}") |
| print(f" 24m: {twin.trajectory.horizons.get('24m')}") |
|
|
| print("\n=== Risk / survival ===") |
| sc = twin.risk.survival_curve |
| print(f" 12m alive: {sc.get('12m')}") |
| print(f" 36m alive: {sc.get('36m')}") |
| print(f" 72m alive: {sc.get('72m')}") |
|
|
| print("\n=== Drug repurposing candidates ===") |
| for d in twin.drugs.candidates[:5]: |
| print(f" - {d}") |
|
|
| print("\n=== Active-learning: next best questions ===") |
| for q in twin.next_questions[:3]: |
| print(f" - {q}") |
|
|
| print("\n=== SUS / PCDT compliance ===") |
| print(f" PCDT URL: {twin.sus_check.pcdt_url}") |
|
|
|
|
| if __name__ == "__main__": |
| asyncio.run(main()) |
|
|