骨密度估计

本文介绍图像分析处理(imageprocess)类目下的骨密度估计CalcBMD的语法及示例。

功能描述

骨密度估计能力可以根据输入的胸部或腹部CT成像进行椎体定位、命名以及骨密度估计。

说明
  • 您可以进入在线咨询获取在线人工帮助。
  • 阿里云视觉智能开放平台视觉AI能力API接入、接口使用或问题咨询等,请通过钉钉群(23109592)加入阿里云视觉智能开放平台咨询群联系我们。

应用场景

医疗体检:骨质疏松筛查。

特色优势

  • 输入胸部CT检测腰椎。
  • 根据腰椎计算骨密度值,以T评分、Z评分和分类方式进行骨密度描述。

接入指引

1. 注册阿里云账号:打开阿里云官网,在阿里云官网右上角,单击立即注册,按照操作提示完成账号注册。

2. 开通能力:请确保您已开通图像分析处理,若未开通服务请立即开通

3. 创建AccessKey:请确保您已创建AccessKey,如果您使用的是子账号AccessKey,您需要给子账号赋予AliyunVIAPIFullAccess权限,具体操作,请参见RAM授权

4. 在线调试(可选):您可以通过OpenAPI Explorer在线调试能力,查看完整的调用示例代码及SDK依赖信息,也可以下载完整的工程。

5. 开发接入步骤:

  • SDK总览中选择您要接入使用的SDK语言。
  • 在对应语言的SDK文档中找到AI类目为图像分析处理(imageprocess)的SDK包进行安装。
  • 参考文档中提供的示例代码进行适当修改后调用。

6. 示例代码:该能力常用语言查询异步任务结果的示例代码,请参见查询异步任务结果示例代码

7. 客户端直接调用:该能力常用的客户端调用方式包括以下几种。

输入限制

URLList长度大于20且小于600(即每个序列的slice张数最少20张,最大支持600张),每个URL需通过HTTP协议可访问。

调用步骤

该能力为异步能力,需分两步进行调用。

第一步调用SegmentLymphNode接口提交任务,请求成功后,得到一个任务ID。

第二步调用GetAsyncJobResult接口查询结果,根据任务ID查询任务执行状态和结果。如果任务还在处理中,可稍等一段时间后再进行查询。

计费说明

骨密度估计能力目前处于公测期,可免费调用。

调试

您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。

请求参数

名称

类型

是否必选

示例值

描述

Action String CalcBMD

系统规定参数。取值:CalcBMD

DataFormat String DICOM

图片的格式。支持DICOM或NIFTI。

OrgName String 测试组织

当前渠道(即主账号)下的子渠道(即机构,如医院)名称。

OrgId String 7ff51bfe-e73d-11ea-827d-506b4b3f3cf6

当前渠道(即主账号)下的子渠道(即机构,如医院)标识。

SourceType String HTTP_FILES

输入数据的类型,支持HTTP_FILES和HTTP_NII。

  • HTTP_FILES为序列文件。
  • HTTP_NII为单个文件。
URLList.N.URL String https://medclients-sh.oss-cn-shanghai.aliyuncs.com/demo/xxx/0001.dcm

DICOM序列文件URL列表或NIFTI文件URL列表["url","url",......]。

推荐使用上海地域的OSS链接,对于文件在本地或者非上海地域OSS链接的情况,请参见文件URL处理

说明 URLList.N.URL中的N为该图像URL在当前List中的顺序(从1开始)。当直接使用API请求时,输入URLList的填充会以URLList.1.URL=url1,URLList.2.URL=url2,......的方式指定参数和参数值,参数对以&连接,其中url1、url2、......等具体值请根据实际情况进行替换;当使用SDK填充URLList时,可直接使用SDK提供的相应的方法。

返回数据

名称

类型

示例值

描述

RequestId String B48DECE6-29FE-1967-92F1-2E072873851A

请求ID。

Data Object

该数据需要在异步任务执行成功后,通过调用GetAsyncJobResult接口,对其Result字段进行JSON反序列化之后得到。

Detections Array of Detections

椎体检出结果。

VertId String L1

椎体编号。

VertBMD Float 0.78

椎体骨密度估计值,单位为g/c㎡。

VertTScore Float -2.5

椎体T评分。

VertZScore Float NaN

椎体Z评分。

VertCategory Float NaN

椎体分类。

  • 0:正常
  • 1:骨质减少
  • 2:骨质疏松
Spacing Array of Float [3.75, 0.576172, 0.576172]

每个像素之间的物理距离间隔。

Origin Array of Float [-325, -155.300003, -146.699997]

像素坐标系原点在物理坐标系中的位置。

ResultURL String http://vibktprfx-prod-prod-aic-med-cn-shanghai.oss-cn-shanghai.aliyuncs.com/calc-bmd/local_test/2023-03-31/7772ECE3-22A7-193F-81B4-B0D6A02B5DAF-result.tgz?Expires=1680486509&OSSAccessKeyId=LTAI4FoLmvQ9urWXgSRp****&Signature=GWi%2BhCCtamefKVYiS9oZJduswH****

NIFTI格式的分割mask文件HTTP地址。

说明 有效时间为5分钟,5分钟后链接失效,需要重新生成。
Message String 该调用为异步调用,任务已提交成功,请以requestId的值作为jobId参数调用同类目下GetAsyncJobResult接口查询任务执行状态和结果。

提交异步任务后的提示信息。

查询结果

该接口为异步接口,当前并未返回真实的请求结果,您需要通过返回的RequestId调用GetAsyncJobResult接口来获取该接口的真实请求结果。详情请参见GetAsyncJobResult

SDK参考

阿里云视觉AI图像分析处理类目下的骨密度估计能力推荐使用SDK调用,支持多种编程语言,调用时请选择AI类目为图像分析处理(imageprocess)的SDK包,文件参数通过SDK调用可支持本地文件及任意URL,具体可参见SDK总览

示例代码

该能力常用语言查询异步任务结果的示例代码,请参见查询异步任务结果示例代码

示例

请求示例

http(s)://imageprocess.cn-shanghai.aliyuncs.com/?Action=CalcBMD      //更多关于访问域名(Endpoint)信息,请参见:https://help.aliyun.com/document_detail/143103.html
&DataFormat=DICOM
&OrgName=测试组织
&OrgId=7ff51bfe-e73d-11ea-827d-506b4b3f3cf6
&SourceType=HTTP_FILES
&URLList.1.URL=https://medclients-sh.oss-cn-shanghai.aliyuncs.com/demo/xxx/0001.dcm
&URLList.2.URL=https://medclients-sh.oss-cn-shanghai.aliyuncs.com/demo/xxx/0002.dcm
&公共请求参数

正常返回示例

XML格式

HTTP/1.1 200 OK
Content-Type:application/xml

<CalcBMDResponse>
    <RequestId>B48DECE6-29FE-1967-92F1-2E072873851A</RequestId>
    <Message>该调用为异步调用,任务已提交成功,请以requestId的值作为jobId参数调用同类目下GetAsyncJobResult接口查询任务执行状态和结果。</Message>
</CalcBMDResponse>

JSON格式

HTTP/1.1 200 OK
Content-Type:application/json

{
  "RequestId" : "B48DECE6-29FE-1967-92F1-2E072873851A",
  "Message" : "该调用为异步调用,任务已提交成功,请以requestId的值作为jobId参数调用同类目下GetAsyncJobResult接口查询任务执行状态和结果。"
}

返回示例补充说明

//查询结果:请求示例
http(s)://imageprocess.cn-shanghai.aliyuncs.com/?Action=GetAsyncJobResult
&JobId=E75FE679-0303-4DD1-8252-1143B4FA8A27
&<公共请求参数>

//查询结果:返回示例
{
  "RequestId" : "43A0AEB6-45F4-4138-8E89-E1A5D63200E3",
  "Data" : {
    "Status" : "PROCESS_SUCCESS",
    "JobId" : "186AC396-0EEC-46F1-AAA1-BF3585227427",
    "Result" : "{\"Detections\" : \"VertId\" : \"L1\",\"VertBMD\" :0.78,\"VertTScore\" : -2.5,\"VertZScore\" : NaN,\"VertCategory\" : NaN,\"Spacing\" : [3.75, 0.576172, 0.576172],\"Origin\" : [-325, -155.300003, -146.699997],\"ResultURL\" : \"http://vibktprfx-prod-prod-aic-med-cn-shanghai.oss-cn-shanghai.aliyuncs.com/calc-bmd/local_test/2023-03-31/7772ECE3-22A7-193F-81B4-B0D6A02B5DAF-result.tgz?Expires=1680486509&amp;OSSAccessKeyId=LTAI4FoLmvQ9urWXgSRp****&amp;Signature=GWi%2BhCCtamefKVYiS9oZJduswH****\"}"
  }
}

//Result反序列化
{
    "Detections" : [ {
      "VertId" : "L1",
      "VertBMD" : 0.78,
      "VertTScore" : -2.5,
      "VertZScore" : NaN,
      "VertCategory" : NaN
    } ]
    "Spacing" : [3.75, 0.576172, 0.576172],
    "Origin" : [-325, -155.300003, -146.699997],
    "ResultURL" : "http://vibktprfx-prod-prod-aic-med-cn-shanghai.oss-cn-shanghai.aliyuncs.com/calc-bmd/local_test/2023-03-31/7772ECE3-22A7-193F-81B4-B0D6A02B5DAF-result.tgz?Expires=1680486509&amp;OSSAccessKeyId=LTAI4FoLmvQ9urWXgSRp****&amp;Signature=GWi%2BhCCtamefKVYiS9oZJduswH****"
}

错误码

关于骨密度估计的错误码。详情请参见常见错误码

安全声明

  • 请确保上传的图片或文件来源符合相应的法律法规。
  • 通过体验调试上传的临时文件有效期为1小时,在24小时后会被系统自动清理删除。