onblog/Doctor
基于知识图谱的医学诊断系统。Medical Diagnosis System Based on Knowledge Map.
What it solves
This project addresses the difficulty of navigating vast amounts of fragmented medical data to provide accurate health assessments. It aims to help patients perform self-evaluations of their conditions and assist doctors in finding optimal treatment plans, thereby improving diagnostic efficiency and quality.
How it works
The system utilizes a medical knowledge graph to connect diseases and symptoms. It operates through the following process:
- Data Acquisition: Medical data is crawled from authoritative sources and stored in a structured format using MySQL, Elastic Search (for fast retrieval), and Neo4j (for graph-based analysis).
- Knowledge Graph Construction: The system creates nodes for symptoms and diseases. By segmenting the symptom attributes of diseases, it establishes direct links between them.
- Diagnostic Algorithm: When a user inputs symptoms, age, gender, and occupation, the system retrieves the relevant sub-graph from Neo4j. It then filters out impossible diseases based on demographic data (e.g., excluding male-specific diseases for female users) and calculates a "relevance score" based on the number of matching symptoms to rank potential diagnoses.
- Architecture: The system is built using a Java-based microservices architecture (Spring Cloud) to ensure high availability and scalability.
Who it’s for
- Individuals: For those seeking quick self-diagnosis and a better understanding of their health conditions.
- Medical Professionals: For researchers and doctors who need a tool to discover associations between symptoms and diseases to support their diagnostic process.
Highlights
- Multi-Database Strategy: Combines MySQL, Elastic Search, and Neo4j to balance structured storage, fast search, and complex relationship analysis.
- Demographic Filtering: Increases accuracy by using a specialized population distribution table to exclude irrelevant diseases based on user profile.
- Relevance Scoring: Employs a two-step sorting process to rank diseases based on symptom match density.
- Microservices Design: Uses a distributed architecture to handle high concurrency and maintainability.
Related
- Project
- Project
- Project
- Project