# 舌象识别辨证

提供舌象识别能力的api

# 服务说明

根据要求用户按照覆膜样例,手机患者舌象图片,上传服务器后,可得到就行体质辨证等信息。

# 业务接口列表

更新时间 权重 分类 接口名称 package & class
2024-08-08 核心 上传类 web文件资源下载 igc_base.file_storage.alioss
FETCH_IMG_URL_TO_UPLOAD
2024-08-08 核心 识别类 舌诊-证型体质识别任务 igc_base.ai.tongue
ASYNC_CREATE_ZXTZ_TASK
2024-08-08 重要 识别类 舌诊-报告提取 igc_base.ai.tongue
ASYNC_GET_TONGUE_TASK

# 业务使用说明

  • 识别流程分为三步:

    1. 图片上传到甘草 (jpg,建议压缩图使长边在2048及以内)
    2. 创建识别任务
    3. 异步轮询任务结果。
  • 拍摄照片时,建议使用样例参考蒙版,以保证用户上传的图片符合,近距离拍摄的定位要求。否则面部特征过少会导致识别失败。蒙版图如下: 舌象拍摄参考样图

  • 舌象对焦虚线蒙版图(此为透明背景白色线条,可右击图片在新页面打开可以预览预下载)

    • 1倍图虚线框
      舌象拍摄参考蒙版
    • 2倍图虚线框
      舌象拍摄参考蒙版
    • 3倍图虚线框
      舌象拍摄参考蒙版

# web文件资源下载

  • 使用说明
    • 相同文件会复用
    • 【注意】所有资源都必须带扩展名
    • 【注意】不能下载大文件(5M以上),会出现超时。
  • 入口协议
{
  "img_url":"图片地址 [require | string | max:256]",
  "package":"igc_base.file_storage.alioss",
  "class":"FETCH_IMG_URL_TO_UPLOAD"
}
  • 出口协议
{
  "result":{
    "upload_id":"图片id [require | int]",
    "oss_obj_name":"oss资源名称 [require | string]",
    "file_size":"文件大小 [require | int]",
    "file_md5":"资源的MD5值 [require | string]",
    "mime_type":"资源类型(如:image/jpeg)  [require | string]"
  },
  "status":{
    "code":"status code [string | min:3 | max:5]",
    "msg":"status message [string]",
    "runtime":"api runtime(ms) [double]"
  }
}
  • 业务状态码
10001 ⇒ 缺少必要参数
10101 ⇒ 资源url地址无法下载
10102 ⇒ 图片下载失败
00000 ⇒ 处理成功

# 舌诊-证型体质识别任务

  • 使用说明
    • 【说明】入参oss_obj是上一个接口完成上产后得到的 oss_obj_name参数值。
    • 【注意】接口带 3 秒幂等阻断请求约束。
    • 【注意】当前强制使用甘草服务商识别
    • 【注意】此为异步逻辑接口,先创建任务,再使用报告拉取接口获取报告
    • 【注意】入参callback_url存在时,完成识别后会触发回调,回调由POST方式发起,表单参数code为报告编号,run_type为状态[20成功,21未识别,22故障]
    • 【注意】入参del_mode=1时,原图处理好后会立即移除
    • 【说明】识别后的舌象切图,会持续保留。
  • 入口协议
{
  "oss_obj":"待处理的图片地址(oss链接对象) [required | string]",
  "src_id":"请求来源id [required | integer | in: 2:移动合作对接商]",
  "del_mode":"不保留原图 [required | integer | in: 0保留, 1删除]",
  "callback_url":"报告生成回调触发地址 [sometimes | string | url]",
  "package":"igc_base.ai.tongue",
  "class":"ASYNC_CREATE_ZXTZ_TASK"
}
  • 出口协议
{
  "result":{
    "tongue_code":"舌诊报告编号 [require | string | fixed:17]"
  },
  "status":{
    "code":"status code [string | min:3 | max:5]",
    "msg":"status message [string]",
    "runtime":"api runtime(ms) [double]"
  }
}
  • 业务状态码
10001 ⇒ 输入参数验证失败
10101 ⇒ oss_obj文件对象不存在
10102 ⇒ oss_obj文件md5校验失败
10103 ⇒ md5编码发生重复,请重新拍照上传舌照
00000 ⇒ 处理成功

# 舌诊-报告提取

  • 使用说明
    • 【说明】当识别成功后(出参state=1),报告的内容固定,可以本地只记录报告编号,详情每次需要的时候来提取
    • 【注意】出参report.tizhi9, features, zhengxing, tiaoli没有时为null
    • 【注意】出参report.tizhi9 为九型体质,取出辨识精度最高的,作为用户的体质
  • 入口协议
{
  "tongue_code":"舌诊报告编号 [require | string | fixed:17]",
  "package":"igc_base.ai.tongue",
  "class":"ASYNC_GET_TONGUE_TASK"
}
  • 出口协议
{
  "result":{
    "state":"报告是否生成 [require | int | list: 0处理中, 1处理结束(成功,辨识失败,故障)]",
    "run_type":"报告状态 [require | int]",
    "run_type_name":"报告状态说明 [require | string]",
    "report":{
      "tizhi9_name":"体质类型名称 [require | string | size:2]",
      "tizhi9":[
        {
          "n":"体质名称 [string]",
          "p":"辨识精度(0~1) [double | min:0 | max:1]"
        }
      ],
      "features":[
        {
          "n":"舌象特征名 [string]",
          "p":"辨识精度(0~1) [double | min:0 | max:1]"
        }
      ],
      "zhengxing":[
        {
          "syndrome":"证型类型 [string]",
          "bingjigaiyao":"证型的病机概要 [string]",
          "zhizezhifa":"证型对应的治则治法 [string]",
          "zhongyaofangji":"证型对应的中药方剂 [string]",
          "fangjizucheng":"证型对应的中药方剂组成 [string]",
          "zhenjiuzhuxue":"针灸主穴 [string]",
          "zhenjiupeixue":"针灸配穴 [string]",
          "shiliao":"两种具体的药膳、适合吃的食物和禁忌食物 [string]"
        }
      ],
      "tiaoli":{
        "tizhi_name":"体质名称 [string]",
        "changjianbiaoxian":"常见表现 [string]",
        "fabingqingxiang":"发病倾向 [string]",
        "yuletiaoshe":"娱乐调摄 [string]",
        "sijiyangsheng":"四季养生 [string]",
        "tiyuduanlian":"体育锻炼 [string]",
        "qijutiaoshe":"起居调摄 [string]",
        "yinyuetiaoli":"音乐调理 [string]",
        "jingluobaojian":"经络保健 [string]",
        "yongyaijinji":"用药禁忌 [string]",
        "yaowuyangsheng":"药物养生 [string]"
      }
    }
  },
  "status":{
    "code":"status code [string | min:3 | max:5]",
    "msg":"status message [string]",
    "runtime":"api runtime(ms) [double]"
  }
}
  • 业务状态码
10001 ⇒ 输入参数验证失败
10101 ⇒ tongue_code 报告编号无效
00000 ⇒ 处理成功