SGTY 4 päivää sitten
vanhempi
commit
546d948fc9
1 muutettua tiedostoa jossa 40 lisäystä ja 1 poistoa
  1. 40 1
      src/knowledge/router/medical_knowledge_api.py

+ 40 - 1
src/knowledge/router/medical_knowledge_api.py

@@ -5,6 +5,8 @@ from ..model.response import StandardResponse
 from ..db.session import get_db
 from sqlalchemy.orm import Session
 import logging
+
+from ..server import app
 from ..service.search_service import SearchBusiness
 
 router = APIRouter(prefix="/medical", tags=["Medical Knowledge API"])
@@ -34,7 +36,44 @@ async def get_symptom_diseases(
         logger.exception(f"获取症状相关疾病失败: {str(e)}")
         raise HTTPException(500, detail=StandardResponse.error(str(e)))
 
-@router.post("/disease_symptoms", response_model=StandardResponse)
+@app.post("/test", operation_id="医疗知识图谱目标节点查询", summary="根据医疗知识图谱获取医疗相关信息",
+         description="""根据三元组的起始节点名称和关系名称,查询目标节点列表。
+         该接口主要用于医疗知识图谱查询场景,例如:通过输入疾病名称和相关关系类型,
+         返回该疾病对应的相关症状、治疗方法等信息。
+         典型应用场景包括:
+         - 症状查询:输入疾病名称和"疾病相关症状"关系
+         - 诊断依据查询:输入疾病名称和"诊断依据"关系
+         - 鉴别诊断查询:输入疾病名称和"疾病相关鉴别诊断"关系""",
+         response_description="""返回目标节点名称的字符串列表,格式为:
+         ["节点名称1", "节点名称2", ...]""")
+async def test(node_name: str = Query(...,
+                  description="""知识图谱三元组的起始节点名称,通常是疾病名称。
+                 示例值:感冒、高血压、糖尿病等""",
+                  example="糖尿病"),
+                node_category: str = Query(...,
+                  description="""知识图谱三元组的起始节点类型,通常是疾病。
+                 示例值:疾病、症状等""",
+                  example="疾病"),
+                relation_name: str= Query(...,
+                  description="""知识图谱三元组的关系名称,描述节点间的关系类型。
+                 常见关系类型包括:
+                 - 疾病相关症状
+                 - 诊断依据
+                 - 疾病相关鉴别诊断""",
+                  example="疾病相关症状"),
+                db: Session = Depends(get_db)) -> list[str]:
+    return None
+
+@router.post("/disease_symptoms", response_model=StandardResponse,operation_id="医疗知识图谱目标节点查询", summary="根据医疗知识图谱获取医疗相关信息",
+         description="""根据三元组的起始节点名称和关系名称,查询目标节点列表。
+         该接口主要用于医疗知识图谱查询场景,例如:通过输入疾病名称和相关关系类型,
+         返回该疾病对应的相关症状、治疗方法等信息。
+         典型应用场景包括:
+         - 症状查询:输入疾病名称和"疾病相关症状"关系
+         - 诊断依据查询:输入疾病名称和"诊断依据"关系
+         - 鉴别诊断查询:输入疾病名称和"疾病相关鉴别诊断"关系""",
+         response_description="""返回目标节点名称的字符串列表,格式为:
+         ["节点名称1", "节点名称2", ...]""")
 async def get_disease_symptoms(
     request: DiseaseSymptomsRequest
 ):