KankerWijzer is a provenance-first cancer information assistant built on trusted IKNL-aligned sources. It combines structured registry/statistics APIs, trusted content retrieval, safety guardrails, and a FastAPI backend so questions can be answered with source-aware evidence instead of generic LLM guesses.
Warning
Current status: pre-production open-source prototype. This repository is tested and developer-ready, but it is not yet suitable for unsupervised clinical use or medical decision-making.
- FastAPI backend for retrieval, answering, feedback collection, and Lastmeter resources
- Trusted-source adapters for
kanker.nl,nkr-cijfers,kankeratlas,richtlijnendatabase, IKNL reports, and scientific publications - Structured-first routing for statistics and regional questions before vector search
- Guardrails for emergency language, distress routing, source whitelisting, and evidence abstention
- Local evaluation prompts and regression tests for unsafe prompt handling
- Docker Compose stack for Postgres, Qdrant, and Neo4j
.
├── backend/ FastAPI app, retrieval layer, tests, evaluation scripts
├── frontend/ Static UI prototype
├── artifacts/ Evaluation and demo artifacts
├── problem-statement/ Copied hackathon brief and source context
├── docker-compose.yml Local infra stack
├── CHANGELOG.md Release notes
├── CONTRIBUTING.md Contributor workflow
├── SECURITY.md Security and safety reporting process
└── CODE_OF_CONDUCT.md Community expectations
cd backend
uv sync --extra dev
uv run uvicorn app.main:app --reloaddocker compose up -d postgres qdrant neo4jcd backend
python3 -m pytest -q- Approved-source whitelist only
- Refusal on diagnosis-seeking and treatment-decision prompts
- Red-flag routing for crisis and emergency language
- Evidence-threshold abstention when retrieval confidence is too low
- Distress detection with Lastmeter resource routing
- Provenance attached to structured and retrieved evidence
- Startup now degrades gracefully when optional infrastructure dependencies such as Qdrant or Neo4j are absent
- CI-ready import and API smoke coverage has been added
- Atlas routing now uses query-specific cancer group, sex, and postcode granularity instead of a hardcoded sample response
- Open-source project hygiene now includes changelog, contributing guide, code of conduct, security policy, templates, and CI workflow
- Clinical validation with domain experts and documented acceptance criteria
- Authentication, authorization, audit logging, and rate limiting
- Production observability: metrics, tracing, alerting, SLOs, and incident response
- Secret management and hardened deployment configuration
- Broader query-driven guideline coverage and more extensive end-to-end evaluation on real user journeys
- See CONTRIBUTING.md for setup and pull request expectations.
- See CHANGELOG.md for tracked changes.
- See SECURITY.md for responsible disclosure and medical-safety escalation guidance.
This project inherits the hackathon repository's licensing context unless and until the maintainers publish a separate license for the standalone repository.