自然语言医学检查解析接口文档

注意: 本系统支持多患者医学检查解析,使用严格语义匹配技术从自然语言描述中识别检查项目。
技术特点: 严格语义分析,支持历史记录追踪和批量处理。

接口概览

接口名称 方法 端点 描述
医学检查解析 POST /aie_parse 核心解析接口,使用严格语义匹配识别检查项目
获取用户历史 POST /aie_user_history 获取用户的医学检查解析历史记录
清除历史记录 POST /aie_clear_history 清除指定用户的医学检查历史记录
获取患者列表 GET /aie_patients 获取系统支持的所有患者列表
获取序号历史 POST /aie_exam_index_history 获取用户的检查项目序号历史记录
状态检查 GET /aie 系统状态检查接口
对话医学检查解析 POST /aie_parse_conversation 从对话记录中解析医学检查项目

接口1: 医学检查解析

POST https://aicds.micplatform.top/aie_parse

请求参数 (JSON格式)

参数 类型 必填 描述
sentence 字符串 医学检查描述语句
userid 字符串 用户唯一标识,默认为"anonymous"
patient_id 字符串 患者ID,默认为"likuoran"

请求示例

{
  "sentence": "测量一下身高体重,检查皮肤情况",
  "userid": "user001",
  "patient_id": "likuoran"
}

响应示例 (成功)

{
  "success": true,
  "userid": "user001",
  "patient_id": "likuoran",
  "patient_name": "李廓然",
  "original_sentence": "测量一下身高体重,检查皮肤情况",
  "physical_exam_data_available": true,
  "matched_exam_indexes": [1, 3],
  "matched_exam_names": ["身高体重测量", "皮肤检查"],
  "new_exam_indexes": [1, 3],
  "total_exam_indexes": [1, 3],
  "matched_exam_details": [
    {
      "检查项目序号": 1,
      "检查项目名称": "身高体重测量",
      "检查项目分类": "一般检查",
      "检查关注点": "身高、体重、BMI",
      "检查目的": "评估生长发育和营养状况"
    },
    {
      "检查项目序号": 3,
      "检查项目名称": "皮肤检查",
      "检查项目分类": "皮肤黏膜检查",
      "检查关注点": "皮肤颜色、湿度、弹性、皮疹",
      "检查目的": "评估皮肤健康状况"
    }
  ],
  "timestamp": "2025-04-23T08:48:49.632866"
}

响应示例 (失败)

{
  "success": false,
  "error": "不支持的患者ID: unknown_patient",
  "userid": "user001",
  "patient_id": "unknown_patient",
  "timestamp": "2025-04-23T08:48:49.632866"
}
说明: 从自然语言描述中精确匹配检查项目。 返回匹配的检查项目序号、名称数组、详细信息,并自动保存到用户历史记录中。

接口2: 获取用户历史记录

POST https://aicds.micplatform.top/aie_user_history

请求参数 (JSON格式)

参数 类型 必填 描述
userid 字符串 用户唯一标识
patient_id 字符串 患者ID,不传则返回所有历史
limit 整数 返回记录数量限制,默认10

请求示例

{
  "userid": "user001",
  "patient_id": "likuoran",
  "limit": 5
}

响应示例 (指定患者)

{
  "userid": "user001",
  "patient_id": "likuoran",
  "patient_name": "李廓然",
  "exam_history": [
    {
      "timestamp": "2025-04-23T08:48:49.632866",
      "exam_type": "strict_semantic_parse",
      "content": {
        "original_sentence": "测量身高体重",
        "patient_info": {
          "name": "李廓然",
          "gender": "男"
        },
        "physical_exam_data_used": true,
        "matched_exam_indexes": [1],
        "matched_exam_names": ["身高体重测量"],
        "new_exam_indexes": [1],
        "total_exam_indexes": [1],
        "timestamp": "2025-04-23T08:48:49.632866"
      }
    }
  ],
  "exam_index_history": [1, 3]
}

响应示例 (所有历史)

{
  "userid": "user001",
  "all_histories": [
    {
      "userid": "user001",
      "patient_id": "likuoran",
      "patient_name": "李廓然",
      "exam_history": [],
      "exam_index_history": [1, 3]
    },
    {
      "userid": "user001",
      "patient_id": "lvruolan",
      "patient_name": "吕若兰",
      "exam_history": [],
      "exam_index_history": [2, 4]
    }
  ]
}
说明: 返回指定用户的医学检查解析历史记录,包含时间戳和详细内容。 可以获取特定患者的历史或所有患者的历史记录。

接口3: 清除历史记录

POST https://aicds.micplatform.top/aie_clear_history

请求参数 (JSON格式)

参数 类型 必填 描述
userid 字符串 用户唯一标识
patient_id 字符串 患者ID,不传则清除所有历史

请求示例

{
  "userid": "user001",
  "patient_id": "likuoran"
}

响应示例

{
  "message": "已清除用户 user001 患者 likuoran 的医学检查历史记录",
  "userid": "user001",
  "patient_id": "likuoran"
}
说明: 清除指定用户的医学检查历史记录。可以清除特定患者的历史或所有患者的历史记录。

接口4: 获取患者列表

GET https://aicds.micplatform.top/aie_patients

响应示例

{
  "patients": [
    {
      "patient_id": "likuoran",
      "name": "李廓然",
      "gender": "男",
      "has_physical_exam_data": true,
      "physical_exam_file": "config/physical_exam_likuoran.json"
    },
    {
      "patient_id": "lvruolan",
      "name": "吕若兰",
      "gender": "女",
      "has_physical_exam_data": true,
      "physical_exam_file": "config/physical_exam_lvruolan.json"
    },
    {
      "patient_id": "wangkexin",
      "name": "王可馨",
      "gender": "女",
      "has_physical_exam_data": false,
      "physical_exam_file": ""
    }
  ]
}
说明: 返回系统支持的所有患者列表,包含患者ID、姓名、性别和体格检查数据可用性信息。

接口5: 获取检查项目序号历史(获取历史的简化版)

POST https://aicds.micplatform.top/aie_exam_index_history

请求参数 (JSON格式)

参数 类型 必填 描述
userid 字符串 用户唯一标识
patient_id 字符串 患者ID,默认为"likuoran"

请求示例

{
  "userid": "user001",
  "patient_id": "likuoran"
}

响应示例

{
  "success": true,
  "userid": "user001",
  "patient_id": "likuoran",
  "patient_name": "李廓然",
  "exam_index_history": [1, 3, 5],
  "total_count": 3,
  "timestamp": "2025-04-23T08:48:49.632866"
}
说明: 获取用户的历史检查项目序号记录,用于追踪已执行的检查项目。

接口6: 状态检查

GET https://aicds.micplatform.top/aie

响应示例

{
  "message": "Micube AI - 自然语言医学检查解析系统"
}
说明: 系统状态检查接口,用于验证服务是否正常运行。

接口7: 对话医学检查解析

POST https://aicds.micplatform.top/aie_parse_conversation

请求参数 (JSON格式)

参数 类型 必填 描述
userid 字符串 用户唯一标识
patient_id 字符串 患者ID
records 对象 对话记录,按会话ID分组
physicalExamData 对象 体格检查数据,按会话ID分组

请求示例

{
  "userid": "0001",
  "patient_id": "likuoran",
  "records": {
    "BZ_0_0000000003": [
      {
        "groupId": null,
        "content": "基于目前已经了解到情况,你觉得初步诊断是什么?",
        "senderId": 0,
        "senderName": "AI带教",
        "sendTime": "2025-10-23 14:48:47",
        "relativeTime": "00:00"
      }
    ],
    "BZ_0_0000000004": [
      {
        "groupId": null,
        "content": "基于目前已经了解到情况,你觉得初步诊断是什么?",
        "senderId": 0,
        "senderName": "AI带教",
        "sendTime": "2025-10-23 17:15:58",
        "relativeTime": "01:07"
      },
      {
        "groupId": null,
        "content": "心肌梗死,主动脉夹层,心包炎,或者急性肺栓塞",
        "senderId": 16,
        "senderName": "王云",
        "sendTime": "2025-10-23 17:23:54",
        "relativeTime": "09:03"
      },
      {
        "groupId": null,
        "content": "诊断依据是什么?",
        "senderId": 0,
        "senderName": "AI带教",
        "sendTime": "2025-10-23 17:35:49",
        "relativeTime": "20:58"
      },
      {
        "groupId": null,
        "content": "患者主诉胸痛和呼吸困难,并且呼吸和疼痛程度相关",
        "senderId": 16,
        "senderName": "王云",
        "sendTime": "2025-10-23 17:49:40",
        "relativeTime": "34:49"
      },
      {
        "groupId": null,
        "content": "需要做哪些体格检查项目?",
        "senderId": 0,
        "senderName": "AI带教",
        "sendTime": "2025-10-23 18:22:04",
        "relativeTime": "07:13"
      },
      {
        "groupId": null,
        "content": "检查基本状况,胸部的触诊,测量两侧血压,还有体温",
        "senderId": 16,
        "senderName": "王云",
        "sendTime": "2025-10-23 19:16:28",
        "relativeTime": "01:37"
      }
    ]
  },
  "physicalExamData": {
    "BZ_0_0000000003": [
      {
        "id": "CSID_9_9999999991",
        "name": "心脏检查",
        "combination": "心脏听诊",
        "casecode": "1200064",
        "baseonecode": "BZ_0_0000000003",
        "item1basecode": "TGJC_1_0000000007",
        "item1basename": "人型背面",
        "item2basecode": "RXBM_2_0000000005",
        "item2basename": "运动检查",
        "answer": "心率116次/分,节律规整,心音减低。心尖部可闻及Ⅱ/6级收缩期吹风样杂音,向腋下传导不明显。肺动脉瓣区(P2)及主动脉瓣区(A2)心音强度正常,未闻及杂音。无心包摩擦音及额外心音。"
      },
      {
        "id": "CSID_9_9999999992",
        "name": "触诊胸部",
        "combination": "胸部触诊",
        "casecode": "1200064",
        "baseonecode": "BZ_0_0000000003",
        "item1basecode": "TGJC_1_0000000007",
        "item1basename": "人型背面",
        "item2basecode": "RXBM_2_0000000005",
        "item2basename": "运动检查",
        "answer": "胸部无肿块,无压痛。乳房无红肿、压痛、肿块。"
      },
      {
        "id": "YDJCB_3_0000000001",
        "name": "脊柱",
        "combination": "脊柱运动检查",
        "casecode": "1200064",
        "baseonecode": "BZ_0_0000000003",
        "item1basecode": "TGJC_1_0000000007",
        "item1basename": "人型背面",
        "item2basecode": "RXBM_2_0000000005",
        "item2basename": "运动检查",
        "answer": "脊柱正常,活动自如。"
      },
      {
        "id": "KZC_3_0000000001",
        "name": "脊柱",
        "combination": "脊柱叩诊锤",
        "casecode": "1200064",
        "baseonecode": "BZ_0_0000000003",
        "item1basecode": "TGJC_1_0000000007",
        "item1basename": "人型背面",
        "item2basecode": "RXBM_2_0000000006",
        "item2basename": "叩诊锤",
        "answer": "无叩击痛。"
      },
      {
        "id": "WDJ_3_0000000002",
        "name": "左腋下",
        "combination": "体温测量(左腋温)",
        "casecode": "1200064",
        "baseonecode": "BZ_0_0000000003",
        "item1basecode": "TGJC_1_0000000006",
        "item1basename": "人型正面",
        "item2basecode": "RXZM_2_0000000005",
        "item2basename": "温度计",
        "answer": "体温:36.9°C"
      },
      {
        "id": "WDJ_3_0000000001",
        "name": "口",
        "combination": "体温测量(口温)",
        "casecode": "1200064",
        "baseonecode": "BZ_0_0000000003",
        "item1basecode": "TGJC_1_0000000006",
        "item1basename": "人型正面",
        "item2basecode": "RXZM_2_0000000005",
        "item2basename": "温度计",
        "answer": "体温:36.9°C"
      },
      {
        "id": "XYJ_3_0000000001",
        "name": "左上臂",
        "combination": "血压测量(左上肢)",
        "casecode": "1200064",
        "baseonecode": "BZ_0_0000000003",
        "item1basecode": "TGJC_1_0000000006",
        "item1basename": "人型正面",
        "item2basecode": "RXZM_2_0000000002",
        "item2basename": "血压计",
        "answer": "血压:165/90 mmHg"
      },
      {
        "id": "XYJ_3_0000000002",
        "name": "右上臂",
        "combination": "血压测量(右上肢)",
        "casecode": "1200064",
        "baseonecode": "BZ_0_0000000003",
        "item1basecode": "TGJC_1_0000000006",
        "item1basename": "人型正面",
        "item2basecode": "RXZM_2_0000000002",
        "item2basename": "血压计",
        "answer": "血压:165/90 mmHg"
      },
      {
        "id": "WDJ_3_0000000003",
        "name": "右腋下",
        "combination": "体温测量(右腋温)",
        "casecode": "1200064",
        "baseonecode": "BZ_0_0000000003",
        "item1basecode": "TGJC_1_0000000006",
        "item1basename": "人型正面",
        "item2basecode": "RXZM_2_0000000005",
        "item2basename": "温度计",
        "answer": "体温:36.9°C"
      }
    ],
    "BZ_0_0000000004": [
      {
        "id": "LCSHJC_3_0000000137",
        "name": "肌钙蛋白Ⅰ(TnI)测定",
        "combination": null,
        "casecode": "1200064",
        "baseonecode": "BZ_0_0000000004",
        "item1basecode": "FZJC_1_0000000001",
        "item1basename": "实验室检查",
        "item2basecode": "SYSJC_2_0000000004",
        "item2basename": "临床生化检查",
        "answer": ""
      },
      {
        "id": "LCPXWHFMWJC_3_0000000057",
        "name": "大便常规+隐血试验",
        "combination": null,
        "casecode": "1200064",
        "baseonecode": "BZ_0_0000000004",
        "item1basecode": "FZJC_1_0000000001",
        "item1basename": "实验室检查",
        "item2basecode": "SYSJC_2_0000000003",
        "item2basename": "临床排泄物和分泌物检查",
        "answer": ""
      }
    ]
  }
}

响应示例

{
  "physical_exam_matches": [
    {
      "answer": "胸部无肿块,无压痛。乳房无红肿、压痛、肿块。",
      "baseonecode": "BZ_0_0000000003",
      "casecode": "1200064",
      "combination": "胸部触诊",
      "id": "CSID_9_9999999992",
      "matched_keyword": "胸部触诊",
      "name": "触诊胸部"
    },
    {
      "answer": "血压:165/90 mmHg",
      "baseonecode": "BZ_0_0000000003",
      "casecode": "1200064",
      "combination": "血压测量(左上肢)",
      "id": "XYJ_3_0000000001",
      "matched_keyword": "血压测量(左上肢)",
      "name": "左上臂"
    },
    {
      "answer": "血压:165/90 mmHg",
      "baseonecode": "BZ_0_0000000003",
      "casecode": "1200064",
      "combination": "血压测量(右上肢)",
      "id": "XYJ_3_0000000002",
      "matched_keyword": "血压测量(右上肢)",
      "name": "右上臂"
    },
    {
      "answer": "体温:36.9°C",
      "baseonecode": "BZ_0_0000000003",
      "casecode": "1200064",
      "combination": "体温测量(右腋温)",
      "id": "WDJ_3_0000000003",
      "matched_keyword": "体温测量(右腋温)",
      "name": "右腋下"
    }
  ],
  "success": true
}
说明: 从对话记录中解析医学检查项目,返回匹配的体格检查数据。 该接口专门处理包含对话内容和体格检查数据的复杂结构。