# DR
[toc]
## 1 环境变量
### 远程开发环境
| 参数名 | 字段值 |
| ------ | ------ |
|baseUrl|http://101.43.219.60:7700|
### 本地开发本环境
| 参数名 | 字段值 |
| ------ | ------ |
|baseUrl|http://192.168.110.13:6001|
## 2 获取软件信息
> GET /dr/api/v1/pub/software_info
### 接口说明
> 公开接口
### 响应体
● 200: OK 响应数据格式:JSON
```json
{
"code": "0x000000",
"data": {
"FPD": "Physics",
"GEN": "Physics",
"current_locale": "zh_CN",
"default_locale": "zh_CN",
"guest": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3NjA0OTc2NDksImlkIjoyLCJuYW1lIjoiZ3Vlc3QifQ.hUV5_GOzlWKDeFioJCsHMG2IXa0oJPfNNlPsr69ypqc",
"language": [
"en",
"zh"
],
"product": "VETDROS",
"server": {
"auth": {
"build": "2025-10-08 11:06:08",
"desc": "Authentication Server repo",
"submodule": [
"0baa8db0[rpc_idl]"
],
"version": "0.4.0-21-g4a37cc7"
},
"dcmtk": {
"build": "2025-09-29 16:35:39",
"desc": "Dcmtk Server repo",
"submodule": [
"c2039235[rpc_idl]"
],
"version": "0.4.0-2-g36bc18f"
},
"imgProc": {
"build": "2025-09-29 16:36:36",
"desc": "Img Proc Server repo",
"submodule": [
"d00bfca5[auto_wwwl]",
"89fd9218[collimator_circle]",
"c9582bbe[collimator_rect]",
"98c510bd[enhance]",
"6f9bf7de[enhance_v3]",
"5905e001[rpc_idl]"
],
"version": "0.4.0-7-gca1c8a4"
},
"protocol": {
"build": "2025-10-08 11:06:13",
"desc": "Protocol Server repo",
"submodule": [
"0baa8db0[rpc_idl]"
],
"version": "0.4.0-8-g47990eb"
},
"resource": {
"build": "2025-10-08 11:06:17",
"desc": "Resource Server repo",
"submodule": [
"9725e654[rpc_idl]"
],
"version": "0.4.0-9-g10766e8"
},
"study": {
"build": "2025-10-08 11:06:15",
"desc": "Study Server repo",
"submodule": [
"8595ea2d[rpc_idl]"
],
"version": "0.5.0-1-g7620712"
},
"task": {
"build": "2025-10-08 11:06:19",
"desc": "Task Server repo",
"submodule": [
"8595ea2d[rpc_idl]"
],
"version": "0.4.0-11-g494849d"
}
},
"sn": "19d5d2eb-8b720370-7d617b19-670dd1ae"
},
"description": "Success",
"solution": ""
}
```
## 3 获取前端翻译文件
> GET /dr/api/v1/pub/trans/zh_CN/zh.js
### 接口说明
> 公开接口 en_US/en.js 或 zh_CN/zh.js
### 响应体
● 200: OK 响应数据格式:JSON
```json
export default {
greeting: '你好,世界!',
name: '张三',
patient: '患者管理',
register: '注册',
tasklist: '任务清单',
historylist: '历史清单',
archivelist: '归档清单',
bin: '回收站',
outputlist: '传输清单',
exam: '检查',
examlist: '检查清单',
process: '处理',
print: '打印',
printlist: '打印清单',
worklist: '任务清单',
'worklist.operationPanel': '操作面板',
'register.basicInfoPanel': '基本信息表单区域',
'register.protocolListPanel': '待选择协议列表区域',
'register.selectedProtocolListPanel': '已选择协议列表区域',
'worklistTable.patientId': '患者编号22',
'worklistTable.name': '患者姓名',
'worklistTable.alias': '曾用名',
'worklistTable.englishName': '英文名',
'worklistTable.registrationId': '登记号',
'worklistTable.birthDate': '出生日期',
'worklistTable.age': '年龄',
'worklistTable.gender': '性别',
'worklistTable.bodyType': '病人体型',
'worklistTable.weight': '体重',
'worklistTable.height': '身高',
'worklistTable.pregnancyStatus': '怀孕状态',
'worklistTable.referringDoctor': '转诊医师',
'searchPanel.name': '按姓名查询',
'searchPanel.patientId': '按患者编号查询',
'searchPanel.registrationId': '按登记号查询',
'searchPanel.startDate': '开始日期',
'searchPanel.endDate': '结束日期',
'searchPanel.search': '查询',
// register.form
'register.patientId': '患者编号',
'register.patientId.placeholder': '请输入患者编号',
'register.patientName': '患者姓名',
'register.patientName.placeholder': '请输入患者姓名',
'register.previousName': '曾用名',
'register.previousName.placeholder': '请输入曾用名',
'register.englishName': '英文名',
'register.englishName.placeholder': '请输入英文名',
'register.registrationNo': '登记号',
'register.registrationNo.placeholder': '请输入登记号',
'register.dateOfBirth': '出生日期',
'register.age': '年龄',
'register.gender': '性别',
'register.gender.male': '男',
'register.gender.female': '女',
'register.bodyType': '病人体型',
'register.bodyType.slim': '瘦',
'register.bodyType.average': '平均',
'register.bodyType.fat': '重',
'register.weight': '体重',
'register.height': '身高',
'register.pregnancyStatus': '怀孕状态',
'register.pregnancyStatus.yes': '是',
'register.pregnancyStatus.no': '否',
'register.pregnancyStatus.na': '不适用',
'register.referringPhysician': '转诊医师',
'register.referringPhysician.placeholder': '请输入转诊医师姓名',
'register.bodyPart': '身体部位',
'register.bodyPart.head': '头部',
'register.bodyPart.chest': '胸部',
'register.accessionNumber': '登记号',
'register.accessionNumber.placeholder': '请输入登记号',
// 协议列表
'register.protocol.A': '协议A',
'register.protocol.B': '协议B',
'register.protocol.C': '协议C',
'register.protocol.D': '协议D',
'register.protocol.E': '协议E',
'register.protocol.F': '协议F',
// 已选协议
'register.selectedProtocol.A': '已选协议A',
'register.selectedProtocol.B': '已选协议B',
'register.selectedProtocol.C': '已选协议C',
'register.selectedProtocol.remove': '移除',
// OutputTable
'outputTable.name': '病人姓名',
'outputTable.id': '病人ID',
'outputTable.priority': '优先级',
'outputTable.status': '状态',
'outputTable.retryCount': '重试次数',
'outputTable.target': '目标',
// OutputActionPanel
'outputAction.retry': '重试',
'outputAction.delete': '删除',
// BinActionPanel
'bin.diskCapacity': '磁盘容量:',
'bin.freeSpace': '剩余空间:',
'bin.binCapacity': '回收站容量:',
'bin.delete': '删除',
'bin.restore': '恢复',
'bin.empty': '清空',
// DicomNodeDetailPanel
'dicomNodeDetail.title': 'DICOM节点详情',
'dicomNodeDetail.nodeList': 'DICOM节点列表',
'dicomNodeDetail.selectNode': '请选择DICOM节点',
'dicomNodeDetail.host': '主机名称',
'dicomNodeDetail.ip': '主机IP',
'dicomNodeDetail.port': '主机端口',
'dicomNodeDetail.calledAET': '被叫实体名',
'dicomNodeDetail.callingAET': '主叫实体名',
'dicomNodeDetail.testConnection': '测试连接状态',
'dicomNodeDetail.archive': '归档',
// ActionPanel
'actionPanel.deleteTask': '删除检查任务',
'actionPanel.editPatient': '编辑患者信息',
'actionPanel.lockTask': '锁定任务',
'actionPanel.risSync': 'RIS同步',
'actionPanel.reRegister': '再登记',
'actionPanel.saveLocal': '保存本地',
'actionPanel.importXLS': '从XLS导入',
'actionPanel.sortList': '列表排序',
'actionPanel.cloudShare': '云分享',
'actionPanel.imageExchange': '图像交换',
'actionPanel.qrPrint': '二维码打印',
'actionPanel.send': '发送',
'actionPanel.burn': '刻录',
'actionPanel.export': '导出',
'actionPanel.import': '导入',
'Small': '小',
'Medium': '中',
'Large': '大',
'workstation.free': '自由位',
'workstation.direct': '传统位',
'workstation.table': '卧位',
'workstation.wall': '立位',
// 'register.patientId': '患者编号',
// 'register.patientId.placeholder': '请输入患者编号',
// 'register.patientName': '患者姓名',
// 'register.patientName.placeholder': '请输入患者姓名',
'register.patientSize': '患者体型',
'register.patientSize.placeholder': '请输入患者体型',
// 'register.age': '年龄',
// 'register.dateOfBirth': '出生日期',
// 'register.gender': '性别',
'register.sexNeutered': '性别绝育',
'register.sexNeutered.placeholder': '请输入性别绝育',
// 'register.pregnancyStatus': '怀孕状态',
'register.chipNumber': '芯片编号',
'register.chipNumber.placeholder': '请输入芯片编号',
'register.variety': '品种',
'register.variety.placeholder': '请输入品种',
'register.patientType': '患者类型',
'register.patientType.placeholder': '请输入患者类型',
// 'register.referringPhysician': '转诊医师',
// 'register.referringPhysician.placeholder': '请输入转诊医师姓名',
'register.operatorId': '操作员ID',
'register.operatorId.placeholder': '请输入操作员ID',
'register.modality': '物理疗法',
'register.modality.placeholder': '请输入物理疗法',
// 'register.weight': '体重',
'register.thickness': '厚度',
// 'register.height': '身高',
'register.studyType': '检查类型',
'register.studyType.placeholder': '请输入检查类型',
'register.comment': '备注',
'register.comment.placeholder': '请输入备注',
'worklistTable.StudyInstanceUID': '检查实例UID',
'worklistTable.StudyID': '检查ID',
'worklistTable.SpecificCharacterSet': '特定字符集',
'worklistTable.AccessionNumber': '登记号',
'worklistTable.PatientID': '患者ID',
'worklistTable.PatientName': '患者姓名',
'worklistTable.DisplayPatientName': '显示患者姓名',
'worklistTable.PatientSize': '患者体型',
'worklistTable.PatientAge': '患者年龄',
'worklistTable.PatientSex': '患者性别',
'worklistTable.AdmittingTime': '入院时间',
'worklistTable.RegSource': '登记来源',
'worklistTable.StudyStatus': '检查状态',
'worklistTable.RequestedProcedureID': '请求的程序ID',
'worklistTable.PerformedProtocolCodeValue': '执行的协议代码值',
'worklistTable.PerformedProtocolCodeMeaning': '执行的协议代码含义',
'worklistTable.PerformedProcedureStepID': '执行的程序步骤ID',
'worklistTable.StudyDescription': '检查描述',
'worklistTable.StudyStartDatetime': '检查开始日期时间',
'worklistTable.ScheduledProcedureStepStartDate': '计划的程序步骤开始日期',
'worklistTable.StudyLock': '检查锁定',
'worklistTable.OperatorID': '操作员ID',
'worklistTable.Modality': '模态',
'worklistTable.Views': '视图',
'worklistTable.Thickness': '厚度',
'worklistTable.PatientType': '患者类型',
'worklistTable.StudyType': '检查类型',
'worklistTable.QRCode': '二维码',
'worklistTable.IsExported': '是否已导出',
'worklistTable.IsEdited': '是否已编辑',
'worklistTable.WorkRef': '工作参考',
'worklistTable.IsAppended': '是否已附加',
'worklistTable.CreationTime': '创建时间',
'worklistTable.MappedStatus': '映射状态',
'worklistTable.IsDelete': '是否已删除',
};
```
## 4 获取多语言列表
> GET /dr/api/v1/pub/language
### 接口说明
> 公开接口
### 响应体
● 200: OK 响应数据格式:JSON
```json
{
"code": "0x000000",
"data": [
{
"language": "en_US",
"display": "English"
},
{
"language": "zh_CN",
"display": "简体中文"
}
],
"description": "Success",
"solution": ""
}
```
## 5 获取用户列表
> GET /dr/api/v1/pub/users
### 接口说明
> 公开接口
### 响应体
● 200: OK 响应数据格式:JSON
```json
{
"code": "0x000000",
"data": [
"service",
"admin",
"mgr",
"tech"
],
"description": "Success",
"solution": ""
}
```
## 6 获取示意图
> GET /dr/api/v1/pub/Image/xxx/xxx/xxx
### 接口说明
> 公开接口
### 响应体
● 200: OK 响应数据格式:File
```json
图片数据
```
## 7 登陆
> POST /dr/api/v1/pub/login
### 请求头
| 参数名称 | 默认值 | 描述 |
| ------ | ------ | ------ |
|Authorization|Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3NTAwNTU5MzYsImlkIjoxLCJuYW1lIjoiYWRtaW4ifQ.LLveItQ_K0vvcmyN4qLQHxaOcz3EzY7ZeUQ97hR9R9w||
|Language||en_US 或 zh_CN|
|Product|DROS|DROS 或 VETDROS|
|Source|Electron|Electron 或 Browser 或 Android|
### 请求体(Request Body)
| 参数名称 | 数据类型 | 默认值 | 不为空 | 描述 |
| ------ | ------ | ------ | ------ | ------ |
| username|string|admin|true||
| password|string|123456|true||
### 响应体
● 200: OK 响应数据格式:JSON
```json
{
"code": "0x000000",
"description": "Success",
"solution": "",
"data": {
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3NTEyNzc1ODgsImlkIjoxLCJuYW1lIjoiYWRtaW4ifQ.0qIzacOIf0-YluwAlrkaNJ9lf9w8IKneWEXh_mjUoN4",
"expire": 1751277588,
"uid": 1,
"name": "admin",
"avatar": ""
}
}
```
## 8 修改密码
> POST /api/v1/auth/settings/password
### 接口说明
> 修改当前用户自己的密码
### 请求头
| 参数名称 | 默认值 | 描述 |
| ------ | ------ | ------ |
|Authorization|Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3NTEyNzc5NzAsImlkIjoxLCJuYW1lIjoiYWRtaW4ifQ.ooTGwBXaNhtunbKbpqteWbjDwJLjnRmSIl80r5dp1pY||
|Language||en_US 或 zh_CN|
|Product|DROS|DROS 或 VETDROS|
|Source|Electron|Electron 或 Browser 或 Android|
### 请求体(Request Body)
| 参数名称 | 数据类型 | 默认值 | 不为空 | 描述 |
| ------ | ------ | ------ | ------ | ------ |
| old_password|object||true|旧密码|
| new_password|string||true|新密码|
| confirm_new_password|string||true|确认密码|
### 响应体
● 200: OK 响应数据格式:JSON
```json
{
"code": "0x000000",
"description": "Success",
"solution": "",
"data": {}
}
```
## 9 获取选项
> GET /dr/api/v1/auth/resource/options
### 请求头
| 参数名称 | 默认值 | 描述 |
| ------ | ------ | ------ |
|Authorization|Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3NTEyNzc5NzAsImlkIjoxLCJuYW1lIjoiYWRtaW4ifQ.ooTGwBXaNhtunbKbpqteWbjDwJLjnRmSIl80r5dp1pY||
|Language||en_US 或 zh_CN|
|Product|DROS|DROS 或 VETDROS|
|Source|Electron|Electron 或 Browser 或 Android|
### 请求参数(Query Param)
| 参数名称 | 默认值 | 描述 |
| ------ | ------ | ------ |
|group|basic|可选项
basic
apr_cbo|
|flag|sex_full|basic:
---- sex_full
---- patient_size
|
### 响应体
● 200: OK 响应数据格式:JSON
```json
{
"code": "0x000000",
"description": "Success",
"solution": "",
"data": {
"@type": "type.googleapis.com/dr.resource.OptionReply",
"option": [
{
"text": "Male",
"value": "M"
},
{
"text": "Female",
"value": "F"
},
{
"text": "Other",
"value": "O"
},
{
"text": "CM",
"value": "CM"
},
{
"text": "SF",
"value": "SF"
}
]
}
}
```
## 10 获取配额
> GET /dr/api/v1/pub/quota
### 请求头
| 参数名称 | 默认值 | 描述 |
| ------ | ------ | ------ |
|Authorization|Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3NTEyNzc5NzAsImlkIjoxLCJuYW1lIjoiYWRtaW4ifQ.ooTGwBXaNhtunbKbpqteWbjDwJLjnRmSIl80r5dp1pY||
|Language||en_US 或 zh_CN|
|Product|DROS|DROS 或 VETDROS|
|Source|Electron|Electron 或 Browser 或 Android|
### 响应体
● 200: OK 响应数据格式:JSON
```json
{
"code": "0x000000",
"data": {
"total": 50,
"available": 50,
"online": true,
"overdue": false
},
"description": "Success",
"solution": ""
}
```
total: 总配额
available: 可用配额
online: 是否可连通云端
overdue: 是否超过一个月未连通云端
## 11 修改系统语言
> POST /api/v1/auth/manage/language
### 接口说明
> 修改系统语言
### 请求头
| 参数名称 | 默认值 | 描述 |
| ------ | ------ | ------ |
|Authorization|Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3NTEyNzc5NzAsImlkIjoxLCJuYW1lIjoiYWRtaW4ifQ.ooTGwBXaNhtunbKbpqteWbjDwJLjnRmSIl80r5dp1pY||
|Language||en_US 或 zh_CN|
|Product|DROS|DROS 或 VETDROS|
|Source|Electron|Electron 或 Browser 或 Android|
### 请求体(Request Body)
| 参数名称 | 数据类型 | 默认值 | 不为空 | 描述 |
| ------ | ------ | ------ | ------ | ------ |
| lang|string||true||
### 响应体
● 200: OK 响应数据格式:JSON
```json
{
"code": "0x000000",
"description": "Success",
"solution": "",
"data": {}
}
```
lang可选项:
en_US
zh_CN
## 12 获取配置项
> GET /dr/api/v1/auth/resource/config
### 接口说明
> 获取全局配置项
### 请求头
| 参数名称 | 默认值 | 描述 |
| ------ | ------ | ------ |
|Authorization|Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3NTEyNzc5NzAsImlkIjoxLCJuYW1lIjoiYWRtaW4ifQ.ooTGwBXaNhtunbKbpqteWbjDwJLjnRmSIl80r5dp1pY||
|Language|en|en_US 或 zh_CN|
|Product|DROS|DROS 或 VETDROS|
|Source|Electron|Electron 或 Browser 或 Android|
### 请求参数(Query Param)
| 参数名称 | 默认值 | 描述 |
| ------ | ------ | ------ |
|uri|||
### 响应体
● 200: OK 响应数据格式:JSON
```json
{
"code": "0x000000",
"description": "Success",
"solution": "",
"data": {
"@type": "type.googleapis.com/dr.resource.OptionReply",
"option": [
{
"text": "Male",
"value": "M"
},
{
"text": "Female",
"value": "F"
},
{
"text": "Other",
"value": "O"
},
{
"text": "CM",
"value": "CM"
},
{
"text": "SF",
"value": "SF"
}
]
}
}
```
###### uri可用值
- System/SimulatorGEN 发生器仿真模式
- System/SimulatorFPD 探测器仿真模式
## 13 获取文件
## 13.1 获取缩略图文件(pub)
> GET /api/v1/pub/thumbnail/{filename}
### 接口说明
> 获取缩略图文件
### 地址参数(Path Variable)
| 参数名称 | 默认值 | 描述 |
| ------ | ------ | ------ |
|filename||缩略图文件名|
### 请求头
| 参数名称 | 默认值 | 描述 |
| ------ | ------ | ------ |
|Authorization|Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3NTEyNzc5NzAsImlkIjoxLCJuYW1lIjoiYWRtaW4ifQ.ooTGwBXaNhtunbKbpqteWbjDwJLjnRmSIl80r5dp1pY||
|Language||en_US 或 zh_CN|
|Product|DROS|DROS 或 VETDROS|
|Source|Electron|Electron 或 Browser 或 Android|
### 响应体
● 200: OK 响应数据格式:File
```json
文件
```
## 13.2 获取缩略图文件
> GET /api/v1/auth/f/thumbnail/{filename}
### 接口说明
> 获取缩略图文件
### 地址参数(Path Variable)
| 参数名称 | 默认值 | 描述 |
| ------ | ------ | ------ |
|filename||缩略图文件名|
### 请求头
| 参数名称 | 默认值 | 描述 |
| ------ | ------ | ------ |
|Authorization|Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3NTEyNzc5NzAsImlkIjoxLCJuYW1lIjoiYWRtaW4ifQ.ooTGwBXaNhtunbKbpqteWbjDwJLjnRmSIl80r5dp1pY||
|Language||en_US 或 zh_CN|
|Product|DROS|DROS 或 VETDROS|
|Source|Electron|Electron 或 Browser 或 Android|
### 响应体
● 200: OK 响应数据格式:File
```json
文件
```
## 13.3 获取dcm文件(pub)
> GET /api/v1/pub/dcm/{dcmfilename}
### 接口说明
> 获取dcm文件
### 地址参数(Path Variable)
| 参数名称 | 默认值 | 描述 |
| ------ | ------ | ------ |
|dcmfilename||dcm文件名|
### 请求头
| 参数名称 | 默认值 | 描述 |
| ------ | ------ | ------ |
|Authorization|Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3NTEyNzc5NzAsImlkIjoxLCJuYW1lIjoiYWRtaW4ifQ.ooTGwBXaNhtunbKbpqteWbjDwJLjnRmSIl80r5dp1pY||
|Language||en_US 或 zh_CN|
|Product|DROS|DROS 或 VETDROS|
|Source|Electron|Electron 或 Browser 或 Android|
### 响应体
● 200: OK 响应数据格式:File
```json
文件
```
## 13.4 获取dcm文件
> GET /api/v1/auth/f/dcm/{dcmfilename}
### 接口说明
> 获取dcm文件
### 地址参数(Path Variable)
| 参数名称 | 默认值 | 描述 |
| ------ | ------ | ------ |
|dcmfilename||dcm文件名|
### 请求头
| 参数名称 | 默认值 | 描述 |
| ------ | ------ | ------ |
|Authorization|Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3NTEyNzc5NzAsImlkIjoxLCJuYW1lIjoiYWRtaW4ifQ.ooTGwBXaNhtunbKbpqteWbjDwJLjnRmSIl80r5dp1pY||
|Language||en_US 或 zh_CN|
|Product|DROS|DROS 或 VETDROS|
|Source|Electron|Electron 或 Browser 或 Android|
### 响应体
● 200: OK 响应数据格式:File
```json
文件
```
## 13.5 获取图像(pub)
> GET /api/v1/pub/capture/{filename}
### 接口说明
> 获取图像
### 地址参数(Path Variable)
| 参数名称 | 默认值 | 描述 |
| ------ | ------ | ------ |
|filename||图像文件名|
### 请求头
| 参数名称 | 默认值 | 描述 |
| ------ | ------ | ------ |
|Authorization|Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3NTEyNzc5NzAsImlkIjoxLCJuYW1lIjoiYWRtaW4ifQ.ooTGwBXaNhtunbKbpqteWbjDwJLjnRmSIl80r5dp1pY||
|Language||en_US 或 zh_CN|
|Product|DROS|DROS 或 VETDROS|
|Source|Electron|Electron 或 Browser 或 Android|
### 响应体
● 200: OK 响应数据格式:File
```json
文件
```
## 13.6 获取图像
> GET /api/v1/auth/f/capture/{filename}
### 接口说明
> 获取图像
### 地址参数(Path Variable)
| 参数名称 | 默认值 | 描述 |
| ------ | ------ | ------ |
|filename||图像文件名|
### 请求头
| 参数名称 | 默认值 | 描述 |
| ------ | ------ | ------ |
|Authorization|Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3NTEyNzc5NzAsImlkIjoxLCJuYW1lIjoiYWRtaW4ifQ.ooTGwBXaNhtunbKbpqteWbjDwJLjnRmSIl80r5dp1pY||
|Language||en_US 或 zh_CN|
|Product|DROS|DROS 或 VETDROS|
|Source|Electron|Electron 或 Browser 或 Android|
### 响应体
● 200: OK 响应数据格式:File
```json
文件
```
## 14 管理平台
## 14.1 获取PACS节点列表
> GET /api/v1/auth/manage/pacs
### 接口说明
> 获取PACS节点列表
### 请求头
| 参数名称 | 默认值 | 描述 |
| ------ | ------ | ------ |
|Authorization|Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3NTEyNzc5NzAsImlkIjoxLCJuYW1lIjoiYWRtaW4ifQ.ooTGwBXaNhtunbKbpqteWbjDwJLjnRmSIl80r5dp1pY||
|Language||en_US 或 zh_CN|
|Product|DROS|DROS 或 VETDROS|
|Source|Electron|Electron 或 Browser 或 Android|
### 响应体
● 200: OK 响应数据格式:JSON
```json
{
"code": "0x000000",
"description": "Success",
"solution": "",
"data": {
"@type": "type.googleapis.com/dr.study.ScpList",
"scp": [
{
"id": 3,
"name": "pacs2",
"type": "PACS",
"address": "192.168.1.4",
"port": 6299,
"aet": "testscp",
"aec": "testscu",
"is_enabled": true,
"is_default": false,
"params": {
"a": "b"
}
},
{
"id": 1,
"name": "pacs1",
"type": "PACS",
"address": "192.168.1.3",
"port": 6299,
"aet": "testscp",
"aec": "testscu",
"is_enabled": true,
"is_default": false,
"params": {
"a": "b"
}
}
]
}
}
```
请求示例
## 14.2 增加PACS节点
> POST /api/v1/auth/manage/pacs
### 接口说明
> 增加PACS节点
### 请求头
| 参数名称 | 默认值 | 描述 |
| ------ | ------ | ------ |
|Authorization|Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3NTEyNzc5NzAsImlkIjoxLCJuYW1lIjoiYWRtaW4ifQ.ooTGwBXaNhtunbKbpqteWbjDwJLjnRmSIl80r5dp1pY||
|Language||en_US 或 zh_CN|
|Product|DROS|DROS 或 VETDROS|
|Source|Electron|Electron 或 Browser 或 Android|
### 请求体(Request Body)
| 参数名称 | 数据类型 | 默认值 | 不为空 | 描述 |
| ------ | ------ | ------ | ------ | ------ |
| name|string||true|长度3~16|
| type|string|PACS|true|固定值 PACS|
| address|string||true|IPv4地址,且不能为0.0.0.0|
| port|number||true|端口,1~65536|
| aet|string||true|被叫节点名,长度1~16|
| aec|string||true|主叫节点名,长度1~16|
| is_enabled|boolean||true||
| is_default|boolean||true||
### 响应体
● 200: OK 响应数据格式:JSON
```json
{
"code": "0x000000",
"description": "Success",
"solution": "",
"data": {}
}
```
请求示例

## 14.3 修改PACS节点
> PUT /api/v1/auth/manage/pacs/{id}
### 接口说明
> 修改PACS节点
### 地址参数(Path Variable)
| 参数名称 | 默认值 | 描述 |
| ------ | ------ | ------ |
|id||节点id|
### 请求头
| 参数名称 | 默认值 | 描述 |
| ------ | ------ | ------ |
|Authorization|Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3NTEyNzc5NzAsImlkIjoxLCJuYW1lIjoiYWRtaW4ifQ.ooTGwBXaNhtunbKbpqteWbjDwJLjnRmSIl80r5dp1pY||
|Language||en_US 或 zh_CN|
|Product|DROS|DROS 或 VETDROS|
|Source|Electron|Electron 或 Browser 或 Android|
### 请求体(Request Body)
| 参数名称 | 数据类型 | 默认值 | 不为空 | 描述 |
| ------ | ------ | ------ | ------ | ------ |
| name|string||true|长度3~16|
| type|string|PACS|true|固定值 PACS|
| address|string||true|IPv4地址,且不能为0.0.0.0|
| port|number||true|端口,1~65536|
| aet|string||true|被叫节点名,长度1~16|
| aec|string||true|主叫节点名,长度1~16|
| is_enabled|boolean||true||
| is_default|boolean||true||
### 响应体
● 200: OK 响应数据格式:JSON
```json
{
"code": "0x000000",
"description": "Success",
"solution": "",
"data": {}
}
```
请求示例

## 14.4 删除PACS节点
> DELETE /api/v1/auth/manage/pacs/{id}
### 接口说明
> 删除PACS节点
### 地址参数(Path Variable)
| 参数名称 | 默认值 | 描述 |
| ------ | ------ | ------ |
|id||节点id|
### 请求头
| 参数名称 | 默认值 | 描述 |
| ------ | ------ | ------ |
|Authorization|Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3NTEyNzc5NzAsImlkIjoxLCJuYW1lIjoiYWRtaW4ifQ.ooTGwBXaNhtunbKbpqteWbjDwJLjnRmSIl80r5dp1pY||
|Language||en_US 或 zh_CN|
|Product|DROS|DROS 或 VETDROS|
|Source|Electron|Electron 或 Browser 或 Android|
### 响应体
● 200: OK 响应数据格式:JSON
```json
{
"code": "0x000000",
"description": "Success",
"solution": "",
"data": {}
}
```

## 15 协议
## 15.1 获取患者类型
> GET /dr/api/v1/auth/protocol/patient_type
### 请求头
| 参数名称 | 默认值 | 描述 |
| ------ | ------ | ------ |
|Authorization|Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3NTEyNzc5NzAsImlkIjoxLCJuYW1lIjoiYWRtaW4ifQ.ooTGwBXaNhtunbKbpqteWbjDwJLjnRmSIl80r5dp1pY||
|Language||en_US 或 zh_CN|
|Product|DROS|DROS 或 VETDROS|
|Source|Electron|Electron 或 Browser 或 Android|
### 请求参数(Query Param)
| 参数名称 | 默认值 | 描述 |
| ------ | ------ | ------ |
|is_enabled||true 或 false|
### 响应体
● 200: OK 响应数据格式:JSON
```json
{
"code": "0x000000",
"description": "Success",
"solution": "",
"data": {
"patient_type_list": [
{
"id": "1",
"patient_type_id": "Human",
"patient_type_name": "Human",
"patient_type_local": "Human",
"patient_type_description": "Human",
"sort": 1,
"is_enabled": true,
"product": "DROC",
"is_pre_install": true
},
{
"id": "2",
"patient_type_id": "SpecialType",
"patient_type_name": "SpecialType",
"patient_type_local": "SpecialType",
"patient_type_description": "SpecialType",
"sort": 2,
"is_enabled": false,
"product": "DROC",
"is_pre_install": true
}
]
}
}
```
## 15.2 获取身体部位
> GET /dr/api/v1/auth/protocol/body_part
### 接口说明
> 根据患者类型获取支持的身体部位
### 请求头
| 参数名称 | 默认值 | 描述 |
| ------ | ------ | ------ |
|Authorization|Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3NTEyNzc5NzAsImlkIjoxLCJuYW1lIjoiYWRtaW4ifQ.ooTGwBXaNhtunbKbpqteWbjDwJLjnRmSIl80r5dp1pY||
|Language||en_US 或 zh_CN|
|Product|DROS|DROS 或 VETDROS|
|Source|Electron|Electron 或 Browser 或 Android|
### 请求参数(Query Param)
| 参数名称 | 默认值 | 描述 |
| ------ | ------ | ------ |
|patient_type||从患者类型接口获取|
|modality||暂时只有DX|
|is_enabled||true 或 false|
### 响应体
● 200: OK 响应数据格式:JSON
```json
{
"code": "0x000000",
"description": "Success",
"solution": "",
"data": {
"body_part_list": [
{
"id": "1",
"body_part_id": "Human_SKULL",
"body_part_name": "颅骨",
"body_part_local": "颅骨",
"body_part_description": "Skull",
"patient_type": "Human",
"category": "DX",
"sort": 1,
"is_enabled": true,
"product": "DROC",
"is_pre_install": true
},
{
"id": "2",
"body_part_id": "Human_NECK",
"body_part_name": "颈部",
"body_part_local": "颈部",
"body_part_description": "Neck",
"patient_type": "Human",
"category": "DX",
"sort": 2,
"is_enabled": true,
"product": "DROC",
"is_pre_install": true
}
]
}
}
```
## 15.3 获取协议列表
> GET /dr/api/v1/auth/protocol/procedure
### 接口说明
> 根据身体部位获取协议列表
### 请求头
| 参数名称 | 默认值 | 描述 |
| ------ | ------ | ------ |
|Authorization|Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3NTEyNzc5NzAsImlkIjoxLCJuYW1lIjoiYWRtaW4ifQ.ooTGwBXaNhtunbKbpqteWbjDwJLjnRmSIl80r5dp1pY||
|Language||en_US 或 zh_CN|
|Product|DROS|DROS 或 VETDROS|
|Source|Electron|Electron 或 Browser 或 Android|
### 请求参数(Query Param)
| 参数名称 | 默认值 | 描述 |
| ------ | ------ | ------ |
|patient_type||从患者类型接口获取|
|body_part||从身体部位接口获取|
|procedure_type||NORMAL 或 EMERGENCY|
|is_enabled||true 或 false|
|page||页码
取值范围:>0|
|page_size||行数
取值范围:1-10000|
### 响应体
● 200: OK 响应数据格式:JSON
```json
{
"code": "0x000000",
"description": "Success",
"solution": "",
"data": {
"@type": "type.googleapis.com/dr.protocol.ProcedureList",
"count": 179,
"procedures": [
{
"id": "2",
"procedure_id": "P0-0002",
"procedure_code": "P0-0002",
"procedure_name": "颅骨前后位 + 侧位",
"procedure_name_local": "颅骨前后位 + 侧位",
"procedure_other_name": "Skull AP + LAT",
"procedure_description": "颅骨前后位 + 侧位",
"procedure_description_local": "颅骨前后位 + 侧位",
"patient_type": "Human",
"body_part_id": "Human_SKULL",
"procedure_type": "NORMAL",
"fast_search": false,
"protocol_laterality": "U",
"procedure_category": "Adult",
"modality": "DX",
"sort": 1,
"is_enabled": true,
"product": "DROS",
"is_pre_install": true
},
{
"id": "3",
"procedure_id": "P0-0003",
"procedure_code": "P0-0003",
"procedure_name": "颅骨后前位 + 侧位",
"procedure_name_local": "颅骨后前位 + 侧位",
"procedure_other_name": "Skull PA + LAT",
"procedure_description": "颅骨后前位 + 侧位",
"procedure_description_local": "颅骨后前位 + 侧位",
"patient_type": "Human",
"body_part_id": "Human_SKULL",
"procedure_type": "NORMAL",
"fast_search": false,
"protocol_laterality": "U",
"procedure_category": "Adult",
"modality": "DX",
"sort": 1,
"is_enabled": true,
"product": "DROS",
"is_pre_install": true
},
{
"id": "4",
"procedure_id": "P0-0004",
"procedure_code": "P0-0004",
"procedure_name": "颅骨前后位",
"procedure_name_local": "颅骨前后位",
"procedure_other_name": "Skull AP",
"procedure_description": "颅骨前后位",
"procedure_description_local": "颅骨前后位",
"patient_type": "Human",
"body_part_id": "Human_SKULL",
"procedure_type": "NORMAL",
"fast_search": false,
"protocol_laterality": "U",
"procedure_category": "Adult",
"modality": "DX",
"sort": 1,
"is_enabled": true,
"product": "DROS",
"is_pre_install": true
},
{
"id": "1",
"procedure_id": "P0-0001",
"procedure_code": "P0-0001",
"procedure_name": "颅骨汤氏位",
"procedure_name_local": "颅骨汤氏位",
"procedure_other_name": "Skull Townes View",
"procedure_description": "颅骨汤氏位",
"procedure_description_local": "颅骨汤氏位",
"patient_type": "Human",
"body_part_id": "Human_SKULL",
"procedure_type": "NORMAL",
"fast_search": false,
"protocol_laterality": "U",
"procedure_category": "Adult",
"modality": "DX",
"sort": 1,
"is_enabled": true,
"product": "DROS",
"is_pre_install": true
}
]
}
}
```
## 15.4 获取体位列表
> GET /dr/api/v1/auth/protocol/view
### 接口说明
> 获取体位列表
### 请求头
| 参数名称 | 默认值 | 描述 |
| ------ | ------ | ------ |
|Authorization|Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3NTEyNzc5NzAsImlkIjoxLCJuYW1lIjoiYWRtaW4ifQ.ooTGwBXaNhtunbKbpqteWbjDwJLjnRmSIl80r5dp1pY||
|Language||en_US 或 zh_CN|
|Product|DROS|DROS 或 VETDROS|
|Source|Electron|Electron 或 Browser 或 Android|
### 请求参数(Query Param)
| 参数名称 | 默认值 | 描述 |
| ------ | ------ | ------ |
|patient_type||从患者类型接口获取|
|body_part||从身体部位接口获取|
|is_enabled||true 或 false|
|page|1|页码
取值范围:>0|
|page_size|10|行数
取值范围:1-10000|
### 响应体
● 200: OK 响应数据格式:JSON
```json
{
"code": "0x000000",
"description": "Success",
"solution": "",
"data": {
"@type": "type.googleapis.com/dr.protocol.ViewList",
"count": 149,
"views": [
{
"internal_id": "View_DX_T_A_SK_Axial_00",
"view_id": "View_DX_T_A_SK_Axial_00",
"view_name": "颅骨前后轴位",
"view_name_local": "",
"view_other_name": "Skull AP Axial",
"view_description": "颅骨前后轴位",
"view_position": "AP",
"application": "RAD",
"anatomic_region": "SKULL",
"patient_type": "Human",
"body_part_id": "Human_SKULL",
"view_icon_name": "/Image/Position/Human/m20-063.gif",
"view_big_icon_name": "/Image/Position/Human/m20-063.large.gif",
"view_coach_name": "/Image/Position/Human/m20-063.large.gif",
"modality": "DX",
"work_station_id": 0,
"apr_id": "View_DX_T_A_SK_Axial_00",
"img_proc_id": "View_DX_T_A_SK_Axial_00",
"config_object": {
"DX": {
"CollimatorCenter": "1",
"CollimatorFilter": "0",
"CollimatorNoChange": false,
"CollimatorSize": "14IN(35CM)X17IN(43CM)",
"CollimatorSizeLength": "17IN",
"CollimatorSizeWidth": "14IN",
"ImageHorizontalFlip": "NO",
"ImageLaterality": "U",
"ImageRotate": "0",
"LabelPosition": "LEFT TOP",
"LabelStyle": "",
"PatientOrientationColumn": "R",
"PatientOrientationRow": "L",
"RatioFactorLength": 0,
"RatioFactorSize": 0,
"RatioFactorThickness": 0,
"RatioFactorWeight": 0,
"StandPos": "43",
"TargetEXI": 250,
"ViewID": "View_DX_T_A_SK_Axial_00"
}
},
"sort": 1,
"is_enabled": true,
"product": "DROS",
"is_pre_install": true
},
{
"internal_id": "View_DX_T_A_SK_AP_00",
"view_id": "View_DX_T_A_SK_AP_00",
"view_name": "颅骨前后位",
"view_name_local": "",
"view_other_name": "Skull AP",
"view_description": "颅骨前后位",
"view_position": "AP",
"application": "RAD",
"anatomic_region": "SKULL",
"patient_type": "Human",
"body_part_id": "Human_SKULL",
"view_icon_name": "/Image/Position/Human/skull.ap.table.x.png",
"view_big_icon_name": "/Image/Position/Human/skull.ap.table.x.png",
"view_coach_name": "/Image/Position/Human/skull.ap.table.x.png",
"modality": "DX",
"work_station_id": 0,
"apr_id": "View_DX_T_A_SK_AP_00",
"img_proc_id": "View_DX_T_A_SK_AP_00",
"config_object": {
"DX": {
"CollimatorCenter": "1",
"CollimatorFilter": "0",
"CollimatorNoChange": false,
"CollimatorSize": "14IN(35CM)X17IN(43CM)",
"CollimatorSizeLength": "17IN",
"CollimatorSizeWidth": "14IN",
"ImageHorizontalFlip": "NO",
"ImageLaterality": "U",
"ImageRotate": "0",
"LabelPosition": "LEFT TOP",
"LabelStyle": "",
"PatientOrientationColumn": "R",
"PatientOrientationRow": "L",
"RatioFactorLength": 0,
"RatioFactorSize": 0,
"RatioFactorThickness": 0,
"RatioFactorWeight": 0,
"StandPos": "43",
"TargetEXI": 250,
"ViewID": "View_DX_T_A_SK_AP_00"
}
},
"sort": 1,
"is_enabled": true,
"product": "DROS",
"is_pre_install": true
}
]
}
}
```
## 15.5 获取体位列表(通过procedure_id)
> GET /dr/api/v1/auth/protocol/procedure/{id}/view
### 接口说明
> 获取体位列表(通过procedure_id)
### 地址参数(Path Variable)
| 参数名称 | 默认值 | 描述 |
| ------ | ------ | ------ |
|id|||
### 请求头
| 参数名称 | 默认值 | 描述 |
| ------ | ------ | ------ |
|Authorization|Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3NTEyNzc5NzAsImlkIjoxLCJuYW1lIjoiYWRtaW4ifQ.ooTGwBXaNhtunbKbpqteWbjDwJLjnRmSIl80r5dp1pY||
|Language||en_US 或 zh_CN|
|Product|DROS|DROS 或 VETDROS|
|Source|Electron|Electron 或 Browser 或 Android|
### 响应体
● 200: OK 响应数据格式:JSON
```json
{
"code": "0x000000",
"description": "Success",
"solution": "",
"data": {
"@type": "type.googleapis.com/dr.protocol.ViewList",
"count": 2,
"views": [
{
"internal_id": "View_DX_T_A_SK_AP_00",
"view_id": "View_DX_T_A_SK_AP_00",
"view_name": "颅骨前后位",
"view_name_local": "",
"view_other_name": "Skull AP",
"view_description": "颅骨前后位",
"view_position": "AP",
"application": "RAD",
"anatomic_region": "SKULL",
"patient_type": "Human",
"body_part_id": "Human_SKULL",
"view_icon_name": "/Image/Position/Human/skull.ap.table.x.png",
"view_big_icon_name": "/Image/Position/Human/skull.ap.table.x.png",
"view_coach_name": "/Image/Position/Human/skull.ap.table.x.png",
"modality": "DX",
"work_station_id": 0,
"apr_id": "View_DX_T_A_SK_AP_00",
"img_proc_id": "View_DX_T_A_SK_AP_00",
"config_object": {
"DX": {
"CollimatorCenter": "1",
"CollimatorFilter": "0",
"CollimatorNoChange": false,
"CollimatorSize": "14IN(35CM)X17IN(43CM)",
"CollimatorSizeLength": "17IN",
"CollimatorSizeWidth": "14IN",
"ImageHorizontalFlip": "NO",
"ImageLaterality": "U",
"ImageRotate": "0",
"LabelPosition": "LEFT TOP",
"LabelStyle": "",
"PatientOrientationColumn": "R",
"PatientOrientationRow": "L",
"RatioFactorLength": 0,
"RatioFactorSize": 0,
"RatioFactorThickness": 0,
"RatioFactorWeight": 0,
"StandPos": "43",
"TargetEXI": 250,
"ViewID": "View_DX_T_A_SK_AP_00"
}
},
"sort": 1,
"is_enabled": true,
"product": "DROS",
"is_pre_install": true
},
{
"internal_id": "View_DX_T_A_SK_LAT_00",
"view_id": "View_DX_T_A_SK_LAT_00",
"view_name": "颅骨左侧位",
"view_name_local": "",
"view_other_name": "Skull LAT,left",
"view_description": "颅骨左侧位",
"view_position": "LAT",
"application": "RAD",
"anatomic_region": "SKULL",
"patient_type": "Human",
"body_part_id": "Human_SKULL",
"view_icon_name": "/Image/Position/Human/Skull_T_lat_left.gif",
"view_big_icon_name": "/Image/Position/Human/Skull_T_lat_left.x.gif",
"view_coach_name": "/Image/Position/Human/Skull_T_lat_left.x.gif",
"modality": "DX",
"work_station_id": 0,
"apr_id": "View_DX_T_A_SK_LAT_00",
"img_proc_id": "View_DX_T_A_SK_LAT_00",
"config_object": {
"DX": {
"CollimatorCenter": "1",
"CollimatorFilter": "0",
"CollimatorNoChange": false,
"CollimatorSize": "8IN(20CM)X10IN(25CM)",
"CollimatorSizeLength": "10IN",
"CollimatorSizeWidth": "8IN",
"ImageHorizontalFlip": "NO",
"ImageLaterality": "U",
"ImageRotate": "0",
"LabelPosition": "RIGHT TOP",
"LabelStyle": "",
"PatientOrientationColumn": "R",
"PatientOrientationRow": "L",
"RatioFactorLength": 0,
"RatioFactorSize": 0,
"RatioFactorThickness": 0,
"RatioFactorWeight": 0,
"StandPos": "43",
"TargetEXI": 250,
"ViewID": "View_DX_T_A_SK_LAT_00"
}
},
"sort": 1,
"is_enabled": true,
"product": "DROS",
"is_pre_install": true
}
]
}
}
```
## 15.6 获取体位详情
> GET /dr/api/v1/auth/protocol/view/{id}
### 接口说明
> 根据ID获取体位详情
### 地址参数(Path Variable)
| 参数名称 | 默认值 | 描述 |
| ------ | ------ | ------ |
|id|||
### 请求头
| 参数名称 | 默认值 | 描述 |
| ------ | ------ | ------ |
|Authorization|Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3NTEyNzc5NzAsImlkIjoxLCJuYW1lIjoiYWRtaW4ifQ.ooTGwBXaNhtunbKbpqteWbjDwJLjnRmSIl80r5dp1pY||
|Language||en_US 或 zh_CN|
|Product|DROS|DROS 或 VETDROS|
|Source|Electron|Electron 或 Browser 或 Android|
### 请求参数(Query Param)
| 参数名称 | 默认值 | 描述 |
| ------ | ------ | ------ |
|patient_type||从患者类型接口获取|
|body_part||从身体部位接口获取|
|is_enabled||true 或 false|
|procedure_id||从协议列表接口获取|
### 响应体
● 200: OK 响应数据格式:JSON
```json
{
"code": "0x000000",
"description": "Success",
"solution": "",
"data": {
"@type": "type.googleapis.com/dr.protocol.View",
"internal_id": "View_DX_T_A_SK_Axial_04",
"view_id": "View_DX_T_A_SK_Axial_04",
"view_name": "下颌骨, 闭口",
"view_name_local": "",
"view_other_name": "Mandible,jaw close",
"view_description": "下颌骨, 闭口",
"view_position": "Axial",
"application": "RAD",
"anatomic_region": "Facial bones",
"patient_type": "Human",
"body_part_id": "Human_SKULL",
"view_icon_name": "/Image/Position/Human/m21-082.gif",
"view_big_icon_name": "/Image/Position/Human/m21-082.large.gif",
"view_coach_name": "/Image/Position/Human/m21-082.gif",
"modality": "DX",
"work_station_id": 1,
"apr_id": "View_DX_T_A_SK_Axial_04",
"img_proc_id": "View_DX_T_A_SK_Axial_04",
"config_object": {
"DX": {
"CollimatorCenter": "1",
"CollimatorFilter": "0",
"CollimatorNoChange": false,
"CollimatorSize": "14IN(35CM)X17IN(43CM)",
"CollimatorSizeLength": "17IN",
"CollimatorSizeWidth": "14IN",
"ImageHorizontalFlip": "NO",
"ImageLaterality": "U",
"ImageRotate": "0",
"LabelPosition": "LEFT TOP",
"LabelStyle": "",
"PatientOrientationColumn": "R",
"PatientOrientationRow": "L",
"RatioFactorLength": 0,
"RatioFactorSize": 0,
"RatioFactorThickness": 0,
"RatioFactorWeight": 0,
"StandPos": "43",
"TargetEXI": 250,
"ViewID": "View_DX_T_A_SK_Axial_04"
}
},
"sort": 1,
"is_enabled": true,
"product": "DROS",
"is_pre_install": true
}
}
```
## 15.7 获取APR详情(通过view_id)
> GET /dr/api/v1/auth/protocol/view/{id}/apr
### 接口说明
> 根据体位ID获取APR详情
### 地址参数(Path Variable)
| 参数名称 | 默认值 | 描述 |
| ------ | ------ | ------ |
|id|||
### 请求头
| 参数名称 | 默认值 | 描述 |
| ------ | ------ | ------ |
|Authorization|Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3NTEyNzc5NzAsImlkIjoxLCJuYW1lIjoiYWRtaW4ifQ.ooTGwBXaNhtunbKbpqteWbjDwJLjnRmSIl80r5dp1pY||
|Language||en_US 或 zh_CN|
|Product|DROS|DROS 或 VETDROS|
|Source|Electron|Electron 或 Browser 或 Android|
### 请求参数(Query Param)
| 参数名称 | 默认值 | 描述 |
| ------ | ------ | ------ |
|patient_type||从患者类型接口获取|
|body_part||从身体部位接口获取|
|is_enabled||true 或 false|
|procedure_id||从协议列表接口获取|
### 响应体
● 200: OK 响应数据格式:JSON
```json
{
"code": "0x000000",
"description": "Success",
"solution": "",
"data": {
"@type": "type.googleapis.com/dr.protocol.AprReply",
"apr_id": "View_DX_T_A_HD_OBL_01",
"apr_name": "View_DX_T_A_HD_OBL_01",
"apr_description": "右手斜位",
"patient_type": "Human",
"body_part_id": "Human_UPPER LIMB",
"view_position": "OBL",
"category": "EXTREMITIES_MEDIUM",
"modality": "DX",
"exposures": [
{
"work_station_id": 0,
"patient_size": "Large",
"config_object": {
"Common": {
"AECDensity": 0,
"AECField": "010",
"AECFilm": 1,
"Dose": 0,
"ExposureMode": 0,
"Focus": 0,
"TOD": 0,
"TubeLoad": 0,
"kV": 55,
"mA": 80,
"mAs": 3.2,
"ms": 40
}
}
},
{
"work_station_id": 0,
"patient_size": "Medium",
"config_object": {
"Common": {
"AECDensity": 0,
"AECField": "010",
"AECFilm": 1,
"Dose": 0,
"ExposureMode": 0,
"Focus": 0,
"TOD": 0,
"TubeLoad": 0,
"kV": 50,
"mA": 80,
"mAs": 2,
"ms": 25
}
}
},
{
"work_station_id": 0,
"patient_size": "Paediatric",
"config_object": {
"Common": {
"AECDensity": 0,
"AECField": "010",
"AECFilm": 1,
"Dose": 0,
"ExposureMode": 0,
"Focus": 0,
"TOD": 0,
"TubeLoad": 0,
"kV": 50,
"mA": 80,
"mAs": 1.6,
"ms": 20
}
}
},
{
"work_station_id": 0,
"patient_size": "Small",
"config_object": {
"Common": {
"AECDensity": 0,
"AECField": "010",
"AECFilm": 1,
"Dose": 0,
"ExposureMode": 0,
"Focus": 0,
"TOD": 0,
"TubeLoad": 0,
"kV": 50,
"mA": 80,
"mAs": 2,
"ms": 25
}
}
},
{
"work_station_id": 1,
"patient_size": "Large",
"config_object": {
"Common": {
"AECDensity": 0,
"AECField": "010",
"AECFilm": 1,
"Dose": 0,
"ExposureMode": 0,
"Focus": 0,
"TOD": 0,
"TubeLoad": 0,
"kV": 55,
"mA": 80,
"mAs": 3.2,
"ms": 40
}
}
},
{
"work_station_id": 1,
"patient_size": "Medium",
"config_object": {
"Common": {
"AECDensity": 0,
"AECField": "010",
"AECFilm": 1,
"Dose": 0,
"ExposureMode": 0,
"Focus": 0,
"TOD": 0,
"TubeLoad": 0,
"kV": 50,
"mA": 80,
"mAs": 2,
"ms": 25
}
}
},
{
"work_station_id": 1,
"patient_size": "Paediatric",
"config_object": {
"Common": {
"AECDensity": 0,
"AECField": "010",
"AECFilm": 1,
"Dose": 0,
"ExposureMode": 0,
"Focus": 0,
"TOD": 0,
"TubeLoad": 0,
"kV": 50,
"mA": 80,
"mAs": 1.6,
"ms": 20
}
}
},
{
"work_station_id": 1,
"patient_size": "Small",
"config_object": {
"Common": {
"AECDensity": 0,
"AECField": "010",
"AECFilm": 1,
"Dose": 0,
"ExposureMode": 0,
"Focus": 0,
"TOD": 0,
"TubeLoad": 0,
"kV": 50,
"mA": 80,
"mAs": 2,
"ms": 25
}
}
}
],
"sort": 0,
"is_enabled": true,
"product": "DROS",
"is_pre_install": true
}
}
```
## 15.8 获取APR详情
> GET /dr/api/v1/auth/protocol/apr/{id}
### 接口说明
> 根据ID获取APR详情
### 地址参数(Path Variable)
| 参数名称 | 默认值 | 描述 |
| ------ | ------ | ------ |
|id|||
### 请求头
| 参数名称 | 默认值 | 描述 |
| ------ | ------ | ------ |
|Authorization|Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3NTEyNzc5NzAsImlkIjoxLCJuYW1lIjoiYWRtaW4ifQ.ooTGwBXaNhtunbKbpqteWbjDwJLjnRmSIl80r5dp1pY||
|Language||en_US 或 zh_CN|
|Product|DROS|DROS 或 VETDROS|
|Source|Electron|Electron 或 Browser 或 Android|
### 请求参数(Query Param)
| 参数名称 | 默认值 | 描述 |
| ------ | ------ | ------ |
|patient_type||从患者类型接口获取|
|body_part||从身体部位接口获取|
|is_enabled||true 或 false|
|procedure_id||从协议列表接口获取|
### 响应体
● 200: OK 响应数据格式:JSON
```json
{
"code": "0x000000",
"description": "Success",
"solution": "",
"data": {
"@type": "type.googleapis.com/dr.protocol.AprReply",
"apr_id": "View_DX_T_A_HD_OBL_01",
"apr_name": "View_DX_T_A_HD_OBL_01",
"apr_description": "右手斜位",
"patient_type": "Human",
"body_part_id": "Human_UPPER LIMB",
"view_position": "OBL",
"category": "EXTREMITIES_MEDIUM",
"modality": "DX",
"exposures": [
{
"work_station_id": 0,
"patient_size": "Large",
"config_object": {
"Common": {
"AECDensity": 0,
"AECField": "010",
"AECFilm": 1,
"Dose": 0,
"ExposureMode": 0,
"Focus": 0,
"TOD": 0,
"TubeLoad": 0,
"kV": 55,
"mA": 80,
"mAs": 3.2,
"ms": 40
}
}
},
{
"work_station_id": 0,
"patient_size": "Medium",
"config_object": {
"Common": {
"AECDensity": 0,
"AECField": "010",
"AECFilm": 1,
"Dose": 0,
"ExposureMode": 0,
"Focus": 0,
"TOD": 0,
"TubeLoad": 0,
"kV": 50,
"mA": 80,
"mAs": 2,
"ms": 25
}
}
},
{
"work_station_id": 0,
"patient_size": "Paediatric",
"config_object": {
"Common": {
"AECDensity": 0,
"AECField": "010",
"AECFilm": 1,
"Dose": 0,
"ExposureMode": 0,
"Focus": 0,
"TOD": 0,
"TubeLoad": 0,
"kV": 50,
"mA": 80,
"mAs": 1.6,
"ms": 20
}
}
},
{
"work_station_id": 0,
"patient_size": "Small",
"config_object": {
"Common": {
"AECDensity": 0,
"AECField": "010",
"AECFilm": 1,
"Dose": 0,
"ExposureMode": 0,
"Focus": 0,
"TOD": 0,
"TubeLoad": 0,
"kV": 50,
"mA": 80,
"mAs": 2,
"ms": 25
}
}
},
{
"work_station_id": 1,
"patient_size": "Large",
"config_object": {
"Common": {
"AECDensity": 0,
"AECField": "010",
"AECFilm": 1,
"Dose": 0,
"ExposureMode": 0,
"Focus": 0,
"TOD": 0,
"TubeLoad": 0,
"kV": 55,
"mA": 80,
"mAs": 3.2,
"ms": 40
}
}
},
{
"work_station_id": 1,
"patient_size": "Medium",
"config_object": {
"Common": {
"AECDensity": 0,
"AECField": "010",
"AECFilm": 1,
"Dose": 0,
"ExposureMode": 0,
"Focus": 0,
"TOD": 0,
"TubeLoad": 0,
"kV": 50,
"mA": 80,
"mAs": 2,
"ms": 25
}
}
},
{
"work_station_id": 1,
"patient_size": "Paediatric",
"config_object": {
"Common": {
"AECDensity": 0,
"AECField": "010",
"AECFilm": 1,
"Dose": 0,
"ExposureMode": 0,
"Focus": 0,
"TOD": 0,
"TubeLoad": 0,
"kV": 50,
"mA": 80,
"mAs": 1.6,
"ms": 20
}
}
},
{
"work_station_id": 1,
"patient_size": "Small",
"config_object": {
"Common": {
"AECDensity": 0,
"AECField": "010",
"AECFilm": 1,
"Dose": 0,
"ExposureMode": 0,
"Focus": 0,
"TOD": 0,
"TubeLoad": 0,
"kV": 50,
"mA": 80,
"mAs": 2,
"ms": 25
}
}
}
],
"sort": 0,
"is_enabled": true,
"product": "DROS",
"is_pre_install": true
}
}
```
## 15.9 获取APR设备信息
> GET /dr/api/v1/auth/protocol/apr/{id}/device
### 接口说明
> 根据ID获取APR详情
### 地址参数(Path Variable)
| 参数名称 | 默认值 | 描述 |
| ------ | ------ | ------ |
|id|||
### 请求头
| 参数名称 | 默认值 | 描述 |
| ------ | ------ | ------ |
|Authorization|Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3NTEyNzc5NzAsImlkIjoxLCJuYW1lIjoiYWRtaW4ifQ.ooTGwBXaNhtunbKbpqteWbjDwJLjnRmSIl80r5dp1pY||
|Language||en_US 或 zh_CN|
|Product|DROS|DROS 或 VETDROS|
|Source|Electron|Electron 或 Browser 或 Android|
### 请求参数(Query Param)
| 参数名称 | 默认值 | 描述 |
| ------ | ------ | ------ |
|work_station_id||工作位 0 或 1|
### 响应体
● 200: OK 响应数据格式:JSON
```json
{
"code": "0x000000",
"description": "Success",
"solution": "",
"data": {
"@type": "type.googleapis.com/dr.protocol.AprDevice",
"work_station_id": 1,
"config_object": {
"Common": {
"APRNumber": "5",
"DetectorAngle": 0,
"FpdAcquisitionMode": "101",
"FrameRate": 0,
"GridSpeed": 0,
"GridType": 2,
"PositionNumber": "2",
"SID": 115,
"Thickness": 1,
"TubeAngle": 0
}
}
}
}
```
## 15.10 获取APR默认曝光参数
> GET /dr/api/v1/auth/protocol/apr/{id}/tech
### 接口说明
> 根据ID获取APR详情
### 地址参数(Path Variable)
| 参数名称 | 默认值 | 描述 |
| ------ | ------ | ------ |
|id|||
### 请求头
| 参数名称 | 默认值 | 描述 |
| ------ | ------ | ------ |
|Authorization|Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3NTEyNzc5NzAsImlkIjoxLCJuYW1lIjoiYWRtaW4ifQ.ooTGwBXaNhtunbKbpqteWbjDwJLjnRmSIl80r5dp1pY||
|Language||en_US 或 zh_CN|
|Product|DROS|DROS 或 VETDROS|
|Source|Electron|Electron 或 Browser 或 Android|
### 请求参数(Query Param)
| 参数名称 | 默认值 | 描述 |
| ------ | ------ | ------ |
|work_station_id||工作位 0 或 1|
|patient_size||体型 Large 或 Medium 或 Small|
### 响应体
● 200: OK 响应数据格式:JSON
```json
{
"code": "0x000000",
"description": "Success",
"solution": "",
"data": {
"@type": "type.googleapis.com/dr.protocol.TechParam",
"dp": {
"SID": 115,
"GridType": 2,
"GridSpeed": 0,
"DetectorAngle": 0,
"TubeAngle": 0,
"TubeHeight": 0,
"APRNumber": "5",
"PositionNumber": "2",
"Thickness": 1,
"FrameRate": 0,
"LongTimeExp": 0
},
"ep": {
"kV": 70,
"mA": 125,
"ms": 100,
"mAs": 12.5,
"ExposureMode": 0,
"Focus": 0,
"AECFilm": 1,
"AECField": "010",
"AECDensity": 0,
"Dose": 0,
"TubeLoad": 0,
"TOD": 0,
"CompressionThickness": 0
}
}
}
```
## 15.11 通过厚度获取APR
> GET /dr/api/v1/auth/protocol/thickness/{thickness}/apr
### 接口说明
> 通过厚度获取APR
### 地址参数(Path Variable)
| 参数名称 | 默认值 | 描述 |
| ------ | ------ | ------ |
|thickness||厚度,取值范围1~50|
### 请求头
| 参数名称 | 默认值 | 描述 |
| ------ | ------ | ------ |
|Authorization|Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3NTEyNzc5NzAsImlkIjoxLCJuYW1lIjoiYWRtaW4ifQ.ooTGwBXaNhtunbKbpqteWbjDwJLjnRmSIl80r5dp1pY||
|Language||en_US 或 zh_CN|
|Product|DROS|DROS 或 VETDROS|
|Source|Electron|Electron 或 Browser 或 Android|
### 响应体
● 200: OK 响应数据格式:JSON
```json
{
"code": "0x000000",
"description": "成功",
"solution": "",
"data": {
"@type": "type.googleapis.com/dr.protocol.ThicknessApr",
"thickness": 50,
"kV": 140,
"mA": 0,
"ms": 0,
"mAs": 20
}
}
```

## 16 传输队列
## 16.1 节点连通性测试
> POST /api/v1/auth/scp/echo
### 接口说明
> 节点连通性测试
### 请求头
| 参数名称 | 默认值 | 描述 |
| ------ | ------ | ------ |
|Authorization|Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3NTEyNzc5NzAsImlkIjoxLCJuYW1lIjoiYWRtaW4ifQ.ooTGwBXaNhtunbKbpqteWbjDwJLjnRmSIl80r5dp1pY||
|Language||en_US 或 zh_CN|
|Product|DROS|DROS 或 VETDROS|
|Source|Electron|Electron 或 Browser 或 Android|
### 请求体(Request Body)
| 参数名称 | 数据类型 | 默认值 | 不为空 | 描述 |
| ------ | ------ | ------ | ------ | ------ |
| verbose|boolean|false|true|返回详细信息|
| debug|boolean|false|true|返回调试信息|
| address|string||true|IPv4地址,且不能为0.0.0.0|
| port|number||true|端口,1~65536|
| aet|string||true|被叫节点名,长度1~16|
| aec|string||true|主叫节点名,长度1~16|
### 响应体
● 200: OK 响应数据格式:JSON
```json
{
"code": "0x000000",
"description": "Success",
"solution": "",
"data": {
"@type": "type.googleapis.com/dr.task.EchoReply",
"ok": true,
"output": "I: Requesting Association\nI: Association Accepted (Max Send PDV: 16372)\nI: Sending Echo Request (MsgID 1)\nI: Received Echo Response (Success)\nI: Releasing Association\n"
}
}
```
请求示例

## 16.2 获取PACS节点列表
> GET /api/v1/auth/scp/pacs
### 接口说明
> 获取PACS节点列表
### 请求头
| 参数名称 | 默认值 | 描述 |
| ------ | ------ | ------ |
|Authorization|Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3NTEyNzc5NzAsImlkIjoxLCJuYW1lIjoiYWRtaW4ifQ.ooTGwBXaNhtunbKbpqteWbjDwJLjnRmSIl80r5dp1pY||
|Language||en_US 或 zh_CN|
|Product|DROS|DROS 或 VETDROS|
|Source|Electron|Electron 或 Browser 或 Android|
### 响应体
● 200: OK 响应数据格式:JSON
```json
{
"code": "0x000000",
"description": "Success",
"solution": "",
"data": {
"@type": "type.googleapis.com/dr.study.ScpList",
"scp": [
{
"id": 5,
"name": "pacs3",
"type": "PACS",
"address": "192.168.110.193",
"port": 104,
"aet": "testscp",
"aec": "testscu",
"is_enabled": true,
"is_default": false,
"params": {
"debug": false,
"verbose": true
}
},
{
"id": 3,
"name": "pacs2",
"type": "PACS",
"address": "192.168.1.4",
"port": 6299,
"aet": "testscp",
"aec": "testscu",
"is_enabled": true,
"is_default": false,
"params": {
"debug": false,
"verbose": false
}
}
]
}
}
```
请求示例

## 16.3 获取发送队列(PACS)
> GET /api/v1/auth/scp/store
### 接口说明
> 获取发送队列(PACS)
### 请求头
| 参数名称 | 默认值 | 描述 |
| ------ | ------ | ------ |
|Authorization|Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3NTEyNzc5NzAsImlkIjoxLCJuYW1lIjoiYWRtaW4ifQ.ooTGwBXaNhtunbKbpqteWbjDwJLjnRmSIl80r5dp1pY||
|Language||en_US 或 zh_CN|
|Product|DROS|DROS 或 VETDROS|
|Source|Electron|Electron 或 Browser 或 Android|
### 请求参数(Query Param)
| 参数名称 | 默认值 | 描述 |
| ------ | ------ | ------ |
|start_time||RFC3339Nano格式|
|end_time||RFC3339Nano格式|
### 响应体
● 200: OK 响应数据格式:JSON
```json
{
"code": "0x000000",
"data": [
{
"task_id": "0199d2af-c6ac-78fd-b869-ae6738e5ad52",
"patient_name": "Buddy (Dog)",
"patient_id": "PET007",
"priority": "Medium",
"status": "COMPLETED",
"destination": "pacs3",
"start_time": "2025-10-11T09:52:39.084596Z"
},
{
"task_id": "0199d2af-c54f-76c3-9b4b-d0fc3985fbaa",
"patient_name": "Buddy (Dog)",
"patient_id": "PET007",
"priority": "Medium",
"status": "COMPLETED",
"destination": "pacs3",
"start_time": "2025-10-11T09:52:38.735453Z"
},
{
"task_id": "0199d1f7-1638-7c00-a580-c8e3234cdaa0",
"patient_name": "1update3",
"patient_id": "1update2",
"priority": "Medium",
"status": "COMPLETED",
"destination": "pacs3",
"start_time": "2025-10-11T06:30:55.288Z"
}
],
"description": "Success",
"solution": ""
}
```
请求示例

## 16.4 删除发送任务(批量)
> DELETE /api/v1/auth/scp/task
### 接口说明
> 删除发送任务
### 请求头
| 参数名称 | 默认值 | 描述 |
| ------ | ------ | ------ |
|Authorization|Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3NTEyNzc5NzAsImlkIjoxLCJuYW1lIjoiYWRtaW4ifQ.ooTGwBXaNhtunbKbpqteWbjDwJLjnRmSIl80r5dp1pY||
|Language||en_US 或 zh_CN|
|Product|DROS|DROS 或 VETDROS|
|Source|Electron|Electron 或 Browser 或 Android|
### 响应体
● 200: OK 响应数据格式:JSON
```json
{
"code": "0x000000",
"description": "Success",
"solution": "",
"data": {}
}
```
请求示例

## 16.5 发送图像
> POST /api/v1/auth/scp/store
### 接口说明
> 发送图像
### 请求头
| 参数名称 | 默认值 | 描述 |
| ------ | ------ | ------ |
|Authorization|Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3NTEyNzc5NzAsImlkIjoxLCJuYW1lIjoiYWRtaW4ifQ.ooTGwBXaNhtunbKbpqteWbjDwJLjnRmSIl80r5dp1pY||
|Language||en_US 或 zh_CN|
|Product|DROS|DROS 或 VETDROS|
|Source|Electron|Electron 或 Browser 或 Android|
### 请求体(Request Body)
| 参数名称 | 数据类型 | 默认值 | 不为空 | 描述 |
| ------ | ------ | ------ | ------ | ------ |
| sop_instance_uid|string||true|图像id|
| pacs_name|string||true|pacs节点名称|
### 响应体
● 200: OK 响应数据格式:JSON
```json
{
"code": "0x000000",
"description": "Success",
"solution": "",
"data": {
"@type": "type.googleapis.com/dr.task.StoreReply",
"ok": true,
"output": "...D: ======================= END DIMSE MESSAGE =======================\nI: Releasing Association\n"
}
}
```
请求示例

## 16.6 发送图像(按Study批量发送)
> POST /api/v1/auth/scp/study_store
### 接口说明
> 发送图像(按Study批量发送)
### 请求头
| 参数名称 | 默认值 | 描述 |
| ------ | ------ | ------ |
|Authorization|Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3NTEyNzc5NzAsImlkIjoxLCJuYW1lIjoiYWRtaW4ifQ.ooTGwBXaNhtunbKbpqteWbjDwJLjnRmSIl80r5dp1pY||
|Language||en_US 或 zh_CN|
|Product|DROS|DROS 或 VETDROS|
|Source|Electron|Electron 或 Browser 或 Android|
### 请求体(Request Body)
| 参数名称 | 数据类型 | 默认值 | 不为空 | 描述 |
| ------ | ------ | ------ | ------ | ------ |
| instance_uid|string||true|study_id|
| pacs_name|string||true|pacs节点名称|
### 响应体
● 200: OK 响应数据格式:JSON
```json
{
"code": "0x000000",
"description": "Success",
"solution": "",
"data": {
"@type": "type.googleapis.com/dr.task.StoreReply",
"ok": true,
"output": "...D: ======================= END DIMSE MESSAGE =======================\nI: Releasing Association\n"
}
}
```
请求示例

## 16.7 重试发送任务
> POST /api/v1/auth/scp/store_reply
### 接口说明
> 重试发送任务
### 请求头
| 参数名称 | 默认值 | 描述 |
| ------ | ------ | ------ |
|Authorization|Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3NTEyNzc5NzAsImlkIjoxLCJuYW1lIjoiYWRtaW4ifQ.ooTGwBXaNhtunbKbpqteWbjDwJLjnRmSIl80r5dp1pY||
|Language||en_US 或 zh_CN|
|Product|DROS|DROS 或 VETDROS|
|Source|Electron|Electron 或 Browser 或 Android|
### 请求体(Request Body)
| 参数名称 | 数据类型 | 默认值 | 不为空 | 描述 |
| ------ | ------ | ------ | ------ | ------ |
| instance_uid|string||true|任务id|
### 响应体
● 200: OK 响应数据格式:JSON
```json
{
"code": "0x000000",
"description": "Success",
"solution": "",
"data": {
"@type": "type.googleapis.com/dr.task.StoreReply",
"ok": true,
"output": "...D: ======================= END DIMSE MESSAGE =======================\nI: Releasing Association\n"
}
}
```
请求示例

## 17 登记检查信息
> POST /dr/api/v1/auth/study
### 接口说明
> 登记检查信息
### 请求头
| 参数名称 | 默认值 | 描述 |
| ------ | ------ | ------ |
|Authorization|Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3NTEyNzc5NzAsImlkIjoxLCJuYW1lIjoiYWRtaW4ifQ.ooTGwBXaNhtunbKbpqteWbjDwJLjnRmSIl80r5dp1pY||
|Language||en_US 或 zh_CN|
|Product|DROS|DROS 或 VETDROS|
|Source|Electron|Electron 或 Browser 或 Android|
### 请求体(Request Body)
| 参数名称 | 数据类型 | 默认值 | 不为空 | 描述 |
| ------ | ------ | ------ | ------ | ------ |
| accession_number|string|ACC0012345|true|登记号|
| patient_id|string|PET007|true|患者ID|
| patient_name|object|Buddy|true|患者名称|
| patient_english_name|string||false|英文名|
| patient_former_name|string||false|曾用名|
| patient_size|string|Large|true|患者体型|
| patient_age|string|5Y|true|患者年龄|
| patient_dob|string|2025-06-10T03:12:36.181739Z|true|生日|
| patient_sex|string||false|性别 M、F、O、U|
| sex_neutered|string||false|仅宠物 绝育状态
ALTERED (绝育)
UNALTERED (未绝育)|
| pregnancy_status|string||false|仅人医 妊娠状态
0001
not pregnant
0002
possibly pregnant
0003
definitely pregnant
0004
unknown|
| owner_name|string||false|仅宠物 主人|
| chip_number|object|CHIP123456789|false|仅宠物
芯片号|
| variety|string|Golden Retriever|false|仅宠物
品种描述|
| is_anaesthesia|string|false|false|bool
麻醉状态|
| is_sedation|string|false|false|bool
镇定状态|
| patient_type|string|Human|true|患者种类|
| ref_physician|string|Dr. Smith (Vet)|false|医师|
| operator_id|string|OP987|false|操作者|
| modality|string|DX|true||
| weight|int32|25|false|体重|
| thickness|int32|15|false|厚度|
| length|int32|60|false|身高|
| study_type|string|Normal|true|类型
Normal 普通
Emergency 紧急|
| comment|string|Patient presented with limping in right hind leg. Sedation administered.|false|备注|
| views|array[object]||true|体位列表|
|⇥ view_id|string|View_DX_T_A_SK_AP_00|true|体位id|
|⇥ procedure_id|string|P0-0002|true|协议id
如果直接选择的体位,协议id填空字符串|
### 响应体
● 200: OK 响应数据格式:JSON
```json
{
"code": "0x000000",
"description": "Success",
"solution": "",
"data": {
"@type": "type.googleapis.com/dr.study.Study",
"study_instance_uid": "1.2.276.0.1000000.5.1.2.701601461.33458.1750833219.482097",
"study_id": "20250625143339389",
"public_study_id": "",
"specific_character_set": "ISO_IR 192",
"accession_number": "ACC0012345",
"ref_physician": "Dr. Smith (Vet)",
"patient_id": "PET007",
"patient_name": "Buddy (Dog)",
"patient_english_name": "Buddy en",
"patient_former_name": "Buddy f",
"patient_size": "Large",
"other_patient_ids": "",
"other_patient_names": "",
"patient_age": "5Y",
"patient_dob": "2025-06-10T03:12:36.181739Z",
"patient_sex": "M",
"patient_state": "",
"admitting_time": null,
"priority": "",
"reg_source": "",
"study_description": "",
"study_start_datetime": "2025-06-25T06:33:39.420606Z",
"study_end_datetime": null,
"scheduled_procedure_step_start_date": null,
"performed_physician": "",
"study_lock": "Unlocked",
"folder_path": "",
"operator_name": "OP987",
"modality": "DX",
"weight": 25,
"thickness": 15,
"length": 60,
"patient_type": "Human",
"study_type": "Normal",
"owner_name": "owner1",
"chip_number": "CHIP123456789",
"variety": "Golden Retriever",
"is_anaesthesia": true,
"is_sedation": true,
"mwl": "",
"is_exported": false,
"is_edited": false,
"is_appended": false,
"department": "",
"mapped_status": false,
"qc_result": false,
"comment": "Patient presented with limping in right hind leg. Sedation administered.",
"study_status": "Arrived",
"sort": 0,
"product": "DROS",
"series": [
{
"series_instance_uid": "1.2.276.0.1000000.5.1.2.701601461.33458.1750833219.482098",
"study_instance_uid": "1.2.276.0.1000000.5.1.2.701601461.33458.1750833219.482097",
"study_id": "20250625143339389",
"procedure_id": "P0-0002",
"body_part": "Human_SKULL",
"performed_datetime": null,
"performed_protocol_code_meaning": "颅骨前后位 + 侧位",
"performed_protocol_code_value": "P0-0002",
"sort": 1,
"product": "DROS",
"is_pre_install": true,
"images": [
{
"sop_instance_id": "1.2.276.0.1000000.5.1.2.701601461.33458.1750833219.482099",
"series_instance_uid": "1.2.276.0.1000000.5.1.2.701601461.33458.1750833219.482098",
"study_instance_uid": "1.2.276.0.1000000.5.1.2.701601461.33458.1750833219.482097",
"secondary_sop_uid": "",
"study_id": "20250625143339389",
"view_id": "View_DX_T_A_SK_AP_00",
"view_description": "颅骨前后位",
"image_file_path": "",
"acquisition_mode": "RAD",
"acquisition_context": null,
"img_proc_context": null,
"expose_status": "Unexposed",
"judged_status": "NotJudged",
"send_status": "Unsent",
"storage_status": "NotSaved",
"sort": 1,
"product": "DROS",
"is_pre_install": true
},
{
"sop_instance_id": "1.2.276.0.1000000.5.1.2.701601461.33458.1750833219.482100",
"series_instance_uid": "1.2.276.0.1000000.5.1.2.701601461.33458.1750833219.482098",
"study_instance_uid": "1.2.276.0.1000000.5.1.2.701601461.33458.1750833219.482097",
"secondary_sop_uid": "",
"study_id": "20250625143339389",
"view_id": "View_DX_T_A_SK_LAT_00",
"view_description": "颅骨左侧位",
"image_file_path": "",
"acquisition_mode": "RAD",
"acquisition_context": null,
"img_proc_context": null,
"expose_status": "Unexposed",
"judged_status": "NotJudged",
"send_status": "Unsent",
"storage_status": "NotSaved",
"sort": 2,
"product": "DROS",
"is_pre_install": true
}
]
},
{
"series_instance_uid": "1.2.276.0.1000000.5.1.2.701601461.33458.1750833219.482101",
"study_instance_uid": "1.2.276.0.1000000.5.1.2.701601461.33458.1750833219.482097",
"study_id": "20250625143339389",
"procedure_id": "",
"body_part": "Human_SKULL",
"performed_datetime": null,
"performed_protocol_code_meaning": "",
"performed_protocol_code_value": "",
"sort": 2,
"product": "DROS",
"is_pre_install": true,
"images": [
{
"sop_instance_id": "1.2.276.0.1000000.5.1.2.701601461.33458.1750833219.482102",
"series_instance_uid": "1.2.276.0.1000000.5.1.2.701601461.33458.1750833219.482101",
"study_instance_uid": "1.2.276.0.1000000.5.1.2.701601461.33458.1750833219.482097",
"secondary_sop_uid": "",
"study_id": "20250625143339389",
"view_id": "View_DX_T_A_SK_Special_04",
"view_description": "颅骨汤氏位",
"image_file_path": "",
"acquisition_mode": "RAD",
"acquisition_context": null,
"img_proc_context": null,
"expose_status": "Unexposed",
"judged_status": "NotJudged",
"send_status": "Unsent",
"storage_status": "NotSaved",
"sort": 3,
"product": "DROS",
"is_pre_install": true
}
]
}
]
}
}
```
## 18 变更登记信息
> PUT /dr/api/v1/auth/study/{id}
### 接口说明
> 变更检查信息 :id 任务ID
### 地址参数(Path Variable)
| 参数名称 | 默认值 | 描述 |
| ------ | ------ | ------ |
|id|||
### 请求头
| 参数名称 | 默认值 | 描述 |
| ------ | ------ | ------ |
|Authorization|Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3NTEyNzc5NzAsImlkIjoxLCJuYW1lIjoiYWRtaW4ifQ.ooTGwBXaNhtunbKbpqteWbjDwJLjnRmSIl80r5dp1pY||
|Language||en_US 或 zh_CN|
|Product|DROS|DROS 或 VETDROS|
|Source|Electron|Electron 或 Browser 或 Android|
### 请求体(Request Body)
| 参数名称 | 数据类型 | 默认值 | 不为空 | 描述 |
| ------ | ------ | ------ | ------ | ------ |
| accession_number|string|ACC0012345|true|登记号|
| patient_id|string|PET007|true|患者ID|
| patient_name|object|Buddy|true|患者名称|
| patient_english_name|object||false|患者英文名|
| patient_former_name|string||false|曾用名|
| patient_size|string|Large|true|患者体型|
| patient_age|string|5Y|true|患者年龄|
| patient_dob|string|2025-06-10T03:12:36.181739Z|true|生日|
| patient_sex|string||true|性别 M、F、O、U|
| owner_name|string||false|仅宠物
主人|
| chip_number|string|CHIP123456789|false|仅宠物
芯片号|
| variety|string|Golden Retriever|false|仅宠物
品种描述|
| is_anaesthesia|string|false|false|bool
麻醉状态|
| is_sedation|string|false|false|bool
镇定状态|
| ref_physician|string|Dr. Smith (Vet)|false|医师|
| operator_id|string|OP987|false|操作者|
| weight|int32|25|false|体重|
| thickness|int32|15|false|厚度|
| length|int32|60|false|身高|
| comment|string|Patient presented with limping in right hind leg. Sedation administered.|false|备注|
### 响应体
● 200: OK 响应数据格式:JSON
```json
{
"code": "0x000000",
"description": "Success",
"solution": "",
"data": {
"@type": "type.googleapis.com/dr.study.Study",
"study_instance_uid": "1.2.276.0.1000000.5.1.2.701601461.33458.1750831257.482080",
"study_id": "20250625140057649",
"public_study_id": "",
"specific_character_set": "ISO_IR 192",
"accession_number": "ACC00123451",
"ref_physician": "Dr. Smith (Vet)1",
"patient_id": "PET0071",
"patient_name": "Buddy (Dog)g",
"patient_english_name": "Buddy ee",
"patient_former_name": "Buddy ff",
"patient_size": "Small",
"other_patient_ids": "",
"other_patient_names": "",
"patient_age": "4Y",
"patient_dob": "2025-06-11T03:12:36.181739Z",
"patient_sex": "F",
"patient_state": "",
"admitting_time": null,
"priority": "",
"reg_source": "",
"study_description": "",
"study_start_datetime": "2025-06-25T06:00:57.401703Z",
"study_end_datetime": null,
"scheduled_procedure_step_start_date": null,
"performed_physician": "",
"study_lock": "Unlocked",
"folder_path": "",
"operator_name": "OP9871",
"modality": "DX",
"weight": 35,
"thickness": 25,
"length": 70,
"patient_type": "Human",
"study_type": "Normal",
"owner_name": "owner11",
"chip_number": "CHIP1234567891",
"variety": "Golden Retriever1",
"is_anaesthesia": false,
"is_sedation": false,
"mwl": "",
"is_exported": false,
"is_edited": false,
"is_appended": false,
"department": "",
"mapped_status": false,
"qc_result": false,
"comment": "1Patient presented with limping in right hind leg. Sedation administered.",
"study_status": "Arrived",
"sort": 0,
"product": "DROS",
"series": [
{
"series_instance_uid": "1.2.276.0.1000000.5.1.2.701601461.33458.1750831257.482081",
"study_instance_uid": "1.2.276.0.1000000.5.1.2.701601461.33458.1750831257.482080",
"study_id": "20250625140057649",
"procedure_id": "P0-0002",
"body_part": "Human_SKULL",
"performed_datetime": null,
"performed_protocol_code_meaning": "颅骨前后位 + 侧位",
"performed_protocol_code_value": "P0-0002",
"sort": 1,
"product": "DROS",
"is_pre_install": true,
"images": [
{
"sop_instance_id": "1.2.276.0.1000000.5.1.2.701601461.33458.1750831257.482082",
"series_instance_uid": "1.2.276.0.1000000.5.1.2.701601461.33458.1750831257.482081",
"study_instance_uid": "1.2.276.0.1000000.5.1.2.701601461.33458.1750831257.482080",
"secondary_sop_uid": "",
"study_id": "20250625140057649",
"view_id": "View_DX_T_A_SK_AP_00",
"view_description": "颅骨前后位",
"image_file_path": "",
"acquisition_mode": "RAD",
"acquisition_context": null,
"img_proc_context": null,
"expose_status": "Unexposed",
"judged_status": "NotJudged",
"send_status": "Unsent",
"storage_status": "NotSaved",
"sort": 1,
"product": "DROS",
"is_pre_install": true
},
{
"sop_instance_id": "1.2.276.0.1000000.5.1.2.701601461.33458.1750831257.482083",
"series_instance_uid": "1.2.276.0.1000000.5.1.2.701601461.33458.1750831257.482081",
"study_instance_uid": "1.2.276.0.1000000.5.1.2.701601461.33458.1750831257.482080",
"secondary_sop_uid": "",
"study_id": "20250625140057649",
"view_id": "View_DX_T_A_SK_LAT_00",
"view_description": "颅骨左侧位",
"image_file_path": "",
"acquisition_mode": "RAD",
"acquisition_context": null,
"img_proc_context": null,
"expose_status": "Unexposed",
"judged_status": "NotJudged",
"send_status": "Unsent",
"storage_status": "NotSaved",
"sort": 2,
"product": "DROS",
"is_pre_install": true
}
]
},
{
"series_instance_uid": "1.2.276.0.1000000.5.1.2.701601461.33458.1750831257.482084",
"study_instance_uid": "1.2.276.0.1000000.5.1.2.701601461.33458.1750831257.482080",
"study_id": "20250625140057649",
"procedure_id": "",
"body_part": "Human_SKULL",
"performed_datetime": null,
"performed_protocol_code_meaning": "",
"performed_protocol_code_value": "",
"sort": 2,
"product": "DROS",
"is_pre_install": true,
"images": [
{
"sop_instance_id": "1.2.276.0.1000000.5.1.2.701601461.33458.1750831257.482085",
"series_instance_uid": "1.2.276.0.1000000.5.1.2.701601461.33458.1750831257.482084",
"study_instance_uid": "1.2.276.0.1000000.5.1.2.701601461.33458.1750831257.482080",
"secondary_sop_uid": "",
"study_id": "20250625140057649",
"view_id": "View_DX_T_A_SK_Special_04",
"view_description": "颅骨汤氏位",
"image_file_path": "",
"acquisition_mode": "RAD",
"acquisition_context": null,
"img_proc_context": null,
"expose_status": "Unexposed",
"judged_status": "NotJudged",
"send_status": "Unsent",
"storage_status": "NotSaved",
"sort": 3,
"product": "DROS",
"is_pre_install": true
}
]
}
]
}
}
```
## 19 锁定检查信息(不可删除)
> PUT /dr/api/v1/auth/study/{id}/lock
### 接口说明
> 锁定检查信息(不可删除) :id 任务ID
### 地址参数(Path Variable)
| 参数名称 | 默认值 | 描述 |
| ------ | ------ | ------ |
|id|||
### 请求头
| 参数名称 | 默认值 | 描述 |
| ------ | ------ | ------ |
|Authorization|Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3NTEyNzc5NzAsImlkIjoxLCJuYW1lIjoiYWRtaW4ifQ.ooTGwBXaNhtunbKbpqteWbjDwJLjnRmSIl80r5dp1pY||
|Language||en_US 或 zh_CN|
|Product|DROS|DROS 或 VETDROS|
|Source|Electron|Electron 或 Browser 或 Android|
### 请求体(Request Body)
| 参数名称 | 数据类型 | 默认值 | 不为空 | 描述 |
| ------ | ------ | ------ | ------ | ------ |
| lock|string||true||
### 响应体
● 200: OK 响应数据格式:JSON
```json
{
"code": "0x000000",
"data": {},
"description": "成功",
"solution": ""
}
```
lock可选项
Locked
Unlocked
## 20 获取检查信息列表
> GET /dr/api/v1/auth/study/
### 接口说明
> 获取检查信息列表
### 请求头
| 参数名称 | 默认值 | 描述 |
| ------ | ------ | ------ |
|Authorization|Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3NTYzOTExNjUsImlkIjozLCJuYW1lIjoiYWRtaW4ifQ.ivwjTzeMXLwJry1iHN8a9hV90ftSgDZF6n8lEfOtTOQ||
|Language|en|en_US 或 zh_CN|
|Product|DROS|DROS 或 VETDROS|
|Source|Electron|Electron 或 Browser 或 Android|
### 请求参数(Query Param)
| 参数名称 | 默认值 | 描述 |
| ------ | ------ | ------ |
|id||模糊搜索|
|name||模糊搜索|
|acc_no||模糊搜索|
|start_time||RFC3339Nano格式
例:2025-06-19T00:00:00.000+08:00|
|end_time||RFC3339Nano格式
例:2025-06-19T23:59:59.999+08:00|
|status|Arrived,InProgress|逗号分隔的字符串列表
可选值:
Arrived
InProgress
Completed|
|page|1|页码
取值范围:>0|
|page_size|10|行数
取值范围:1-10000|
### 响应体
● 200: OK 响应数据格式:JSON
```json
{
"code": "0x000000",
"description": "成功",
"solution": "",
"data": {
"@type": "type.googleapis.com/dr.study.StudyList",
"count": 2,
"studies": [
{
"study_instance_uid": "2.25.156.999999.0000.1.2.8323328.20101.1760359944.254055",
"study_id": "251013205224825",
"public_study_id": "",
"specific_character_set": "ISO_IR 192",
"accession_number": "accessnumber444",
"ref_physician": "",
"patient_id": "1113333",
"patient_name": "124",
"patient_english_name": "",
"patient_former_name": "",
"patient_size": "Medium",
"other_patient_ids": "",
"other_patient_names": "",
"patient_age": "000Y",
"patient_dob": "2025-10-13T12:52:15.210Z",
"patient_sex": "",
"sex_neutered": "",
"pregnancy_status": "",
"patient_state": "",
"admitting_time": null,
"priority": "",
"reg_source": "",
"study_description": "",
"study_start_datetime": "2025-10-13T12:52:24.255622Z",
"study_end_datetime": null,
"scheduled_procedure_step_start_date": null,
"performed_physician": "",
"study_lock": "Unlocked",
"folder_path": "",
"operator_name": "",
"modality": "DX",
"weight": 0,
"thickness": 0,
"length": 0,
"patient_type": "Dog",
"study_type": "Normal",
"owner_name": "主人孙某",
"chip_number": "",
"variety": "",
"is_anaesthesia": false,
"is_sedation": false,
"mwl": "",
"is_exported": false,
"is_edited": false,
"is_appended": false,
"department": "",
"mapped_status": false,
"qc_result": false,
"comment": "",
"study_status": "InProgress",
"portrait_status": "NotSaved",
"portrait_file": ".",
"sort": 0,
"product": "VETDROS",
"create_time": "2025-10-13T12:52:24.313859Z",
"series": []
},
{
"study_instance_uid": "2.25.156.999999.0000.1.2.8323328.4730.1760342536.600785",
"study_id": "251013160216342",
"public_study_id": "",
"specific_character_set": "ISO_IR 192",
"accession_number": "accessnumber444",
"ref_physician": "",
"patient_id": "1113333",
"patient_name": "124",
"patient_english_name": "",
"patient_former_name": "",
"patient_size": "Medium",
"other_patient_ids": "",
"other_patient_names": "",
"patient_age": "000Y",
"patient_dob": "2025-10-13T08:02:11.982Z",
"patient_sex": "",
"sex_neutered": "",
"pregnancy_status": "",
"patient_state": "",
"admitting_time": null,
"priority": "",
"reg_source": "",
"study_description": "",
"study_start_datetime": "2025-10-13T08:02:16.602164Z",
"study_end_datetime": null,
"scheduled_procedure_step_start_date": null,
"performed_physician": "",
"study_lock": "Unlocked",
"folder_path": "",
"operator_name": "",
"modality": "DX",
"weight": 0,
"thickness": 0,
"length": 0,
"patient_type": "Dog",
"study_type": "Normal",
"owner_name": "主人孙某",
"chip_number": "",
"variety": "",
"is_anaesthesia": false,
"is_sedation": false,
"mwl": "",
"is_exported": false,
"is_edited": false,
"is_appended": false,
"department": "",
"mapped_status": false,
"qc_result": false,
"comment": "",
"study_status": "Arrived",
"portrait_status": "",
"portrait_file": ".",
"sort": 0,
"product": "VETDROS",
"create_time": "2025-10-13T08:02:16.638166Z",
"series": []
}
]
}
}
```
## 21 获取检查信息
> GET /dr/api/v1/auth/study/{id}
### 接口说明
> :id -- 检查信息ID(study_id) 例:20250619164137632
### 地址参数(Path Variable)
| 参数名称 | 默认值 | 描述 |
| ------ | ------ | ------ |
|id||study_id|
### 请求头
| 参数名称 | 默认值 | 描述 |
| ------ | ------ | ------ |
|Authorization|Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3NTYxOTU0MDIsImlkIjozLCJuYW1lIjoiYWRtaW4ifQ.jK86cKyAMwfgxPsE6mpvSE1PF99jHrppGJZdB8G9uEw||
|Language||en_US 或 zh_CN|
|Product|DROS|DROS 或 VETDROS|
|Source|Electron|Electron 或 Browser 或 Android|
### 响应体
● 200: OK 响应数据格式:JSON
```json
{
"code": "0x000000",
"description": "成功",
"solution": "",
"data": {
"@type": "type.googleapis.com/dr.study.Study",
"study_instance_uid": "2.25.156.999999.0000.1.2.8323328.289656.1760324762.914274",
"study_id": "251013110602828",
"public_study_id": "",
"specific_character_set": "ISO_IR 192",
"accession_number": "accessnumber444",
"ref_physician": "",
"patient_id": "1113333",
"patient_name": "124",
"patient_english_name": "",
"patient_former_name": "",
"patient_size": "Medium",
"other_patient_ids": "",
"other_patient_names": "",
"patient_age": "000Y",
"patient_dob": "2025-10-13T03:04:39.003Z",
"patient_sex": "",
"sex_neutered": "",
"pregnancy_status": "",
"patient_state": "",
"admitting_time": null,
"priority": "",
"reg_source": "",
"study_description": "",
"study_start_datetime": "2025-10-13T03:06:02.988664Z",
"study_end_datetime": null,
"scheduled_procedure_step_start_date": null,
"performed_physician": "",
"study_lock": "Unlocked",
"folder_path": "",
"operator_name": "",
"modality": "DX",
"weight": 0,
"thickness": 0,
"length": 0,
"patient_type": "Dog",
"study_type": "Emergency",
"owner_name": "主人孙某",
"chip_number": "",
"variety": "",
"is_anaesthesia": false,
"is_sedation": false,
"mwl": "",
"is_exported": false,
"is_edited": false,
"is_appended": false,
"department": "",
"mapped_status": false,
"qc_result": false,
"comment": "",
"study_status": "Completed",
"portrait_status": "Saved",
"portrait_file": "2.25.156.999999.0000.1.5.8323328.289656.1760324762.914274.dcm",
"sort": 0,
"product": "VETDROS",
"create_time": "2025-10-13T03:06:03.016908Z",
"series": [
{
"series_instance_uid": "2.25.156.999999.0000.1.3.8323328.289656.1760324762.914275",
"study_instance_uid": "2.25.156.999999.0000.1.2.8323328.289656.1760324762.914274",
"study_id": "251013110602828",
"procedure_id": "",
"patient_type": "Dog",
"body_part": "Dog_Hip",
"performed_datetime": null,
"performed_protocol_code_meaning": "",
"performed_protocol_code_value": "",
"sort": 1,
"product": "VETDROS",
"is_pre_install": true,
"create_time": "2025-10-13T03:06:03.019906Z",
"images": [
{
"sop_instance_uid": "2.25.156.999999.0000.1.4.8323328.289656.1760324762.914276",
"series_instance_uid": "2.25.156.999999.0000.1.3.8323328.289656.1760324762.914275",
"study_instance_uid": "2.25.156.999999.0000.1.2.8323328.289656.1760324762.914274",
"secondary_sop_uid": "",
"study_id": "251013110602828",
"view_id": "View_Dog_PV_LAT_02",
"view_description": "髋关节侧位",
"patient_type": "Dog",
"body_part_id": "Dog_Hip",
"anatomic_region": "Hip joint",
"image_type": "expose",
"image_file_path": "",
"image_file": "2.25.156.999999.0000.1.4.8323328.289656.1760324762.914276.dcm",
"thumbnail_file": "2.25.156.999999.0000.1.4.8323328.289656.1760324762.914276.webp",
"acquisition_mode": "RAD",
"acquisition_context": null,
"img_proc_context": null,
"comment": "task_version: 0.5.0-7-g3a9cf08",
"expose_status": "Exposed",
"expose_time": "2025-10-13T03:07:12.292005Z",
"judged_status": "Accept",
"send_status": "Unsent",
"export_status": "NotExported",
"storage_status": "Saved",
"raw_exists": true,
"ticket": "",
"sort": 1,
"product": "VETDROS",
"is_pre_install": true,
"create_time": "2025-10-13T03:06:03.022905Z"
}
]
},
{
"series_instance_uid": "2.25.156.999999.0000.1.3.8323328.289656.1760324762.914277",
"study_instance_uid": "2.25.156.999999.0000.1.2.8323328.289656.1760324762.914274",
"study_id": "251013110602828",
"procedure_id": "",
"patient_type": "Dog",
"body_part": "Dog_Hip",
"performed_datetime": null,
"performed_protocol_code_meaning": "",
"performed_protocol_code_value": "",
"sort": 2,
"product": "VETDROS",
"is_pre_install": true,
"create_time": "2025-10-13T03:06:03.021321Z",
"images": [
{
"sop_instance_uid": "2.25.156.999999.0000.1.4.8323328.289656.1760324763.914278",
"series_instance_uid": "2.25.156.999999.0000.1.3.8323328.289656.1760324762.914277",
"study_instance_uid": "2.25.156.999999.0000.1.2.8323328.289656.1760324762.914274",
"secondary_sop_uid": "",
"study_id": "251013110602828",
"view_id": "View_Dog_PV_LAT_01",
"view_description": "骨盆侧位",
"patient_type": "Dog",
"body_part_id": "Dog_Hip",
"anatomic_region": "Pelvis",
"image_type": "expose",
"image_file_path": "",
"image_file": "2.25.156.999999.0000.1.4.8323328.289656.1760324763.914278.dcm",
"thumbnail_file": "2.25.156.999999.0000.1.4.8323328.289656.1760324763.914278.webp",
"acquisition_mode": "RAD",
"acquisition_context": null,
"img_proc_context": null,
"comment": "task_version: 0.5.0-7-g3a9cf08",
"expose_status": "Exposed",
"expose_time": "2025-10-13T03:30:24.191742Z",
"judged_status": "Accept",
"send_status": "Unsent",
"export_status": "NotExported",
"storage_status": "Saved",
"raw_exists": true,
"ticket": "",
"sort": 2,
"product": "VETDROS",
"is_pre_install": true,
"create_time": "2025-10-13T03:06:03.024446Z"
}
]
},
{
"series_instance_uid": "2.25.156.999999.0000.1.3.8323328.289656.1760324763.914279",
"study_instance_uid": "2.25.156.999999.0000.1.2.8323328.289656.1760324762.914274",
"study_id": "251013110602828",
"procedure_id": "",
"patient_type": "Dog",
"body_part": "Dog_Hip",
"performed_datetime": null,
"performed_protocol_code_meaning": "",
"performed_protocol_code_value": "",
"sort": 3,
"product": "VETDROS",
"is_pre_install": true,
"create_time": "2025-10-13T03:06:03.022034Z",
"images": [
{
"sop_instance_uid": "2.25.156.999999.0000.1.4.8323328.289656.1760324763.914280",
"series_instance_uid": "2.25.156.999999.0000.1.3.8323328.289656.1760324763.914279",
"study_instance_uid": "2.25.156.999999.0000.1.2.8323328.289656.1760324762.914274",
"secondary_sop_uid": "",
"study_id": "251013110602828",
"view_id": "View_Dog_PV_VD_01",
"view_description": "骨盆伸腿腹背位",
"patient_type": "Dog",
"body_part_id": "Dog_Hip",
"anatomic_region": "Pelvis",
"image_type": "expose",
"image_file_path": "",
"image_file": "2.25.156.999999.0000.1.4.8323328.289656.1760324763.914280.dcm",
"thumbnail_file": "2.25.156.999999.0000.1.4.8323328.289656.1760324763.914280.webp",
"acquisition_mode": "RAD",
"acquisition_context": null,
"img_proc_context": null,
"comment": "task_version: 0.5.0-7-g3a9cf08",
"expose_status": "Exposed",
"expose_time": "2025-10-13T03:31:34.368028Z",
"judged_status": "Accept",
"send_status": "Unsent",
"export_status": "NotExported",
"storage_status": "Saved",
"raw_exists": false,
"ticket": "",
"sort": 3,
"product": "VETDROS",
"is_pre_install": true,
"create_time": "2025-10-13T03:06:03.025481Z"
}
]
}
]
}
}
```
## 22 获取检查信息状态
> GET /dr/api/v1/auth/study/{id}/stat
### 接口说明
> :id -- 检查信息ID(study_id) 例:20250619164137632
### 地址参数(Path Variable)
| 参数名称 | 默认值 | 描述 |
| ------ | ------ | ------ |
|id||study_id|
### 请求头
| 参数名称 | 默认值 | 描述 |
| ------ | ------ | ------ |
|Authorization|Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3NTEyNzc5NzAsImlkIjoxLCJuYW1lIjoiYWRtaW4ifQ.ooTGwBXaNhtunbKbpqteWbjDwJLjnRmSIl80r5dp1pY||
|Language||en_US 或 zh_CN|
|Product|DROS|DROS 或 VETDROS|
|Source|Electron|Electron 或 Browser 或 Android|
### 响应体
● 200: OK 响应数据格式:JSON
```json
{
"code": "0x000000",
"description": "Success",
"solution": "",
"data": {
"@type": "type.googleapis.com/dr.study.Stat",
"total": 3,
"exposed": 1
}
}
```
## 23 删除检查信息(批量)
> DELETE /dr/api/v1/auth/study
### 接口说明
> 批量删除检查信息
### 请求头
| 参数名称 | 默认值 | 描述 |
| ------ | ------ | ------ |
|Authorization|Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3NTEyNzc5NzAsImlkIjoxLCJuYW1lIjoiYWRtaW4ifQ.ooTGwBXaNhtunbKbpqteWbjDwJLjnRmSIl80r5dp1pY||
|Language||en_US 或 zh_CN|
|Product|DROS|DROS 或 VETDROS|
|Source|Electron|Electron 或 Browser 或 Android|
### 响应体
● 200: OK 响应数据格式:JSON
```json
{
"code": "0x000000",
"description": "Success",
"solution": "",
"data": {
"@type": "type.googleapis.com/dr.study.Stat",
"total": 3,
"exposed": 1
}
}
```
请求body示例
```
[
"20250623110433242",
"20250623110436888"
]
```
## 24 [Study]存储拍摄的急诊患者影像
> POST /api/v1/auth/study/portrait
### 接口说明
> 存储拍摄的急诊患者影像
### 地址参数(Path Variable)
| 参数名称 | 默认值 | 描述 |
| ------ | ------ | ------ |
|drurl|||
### 请求头
| 参数名称 | 默认值 | 描述 |
| ------ | ------ | ------ |
|Authorization|Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3NTEyNzc5NzAsImlkIjoxLCJuYW1lIjoiYWRtaW4ifQ.ooTGwBXaNhtunbKbpqteWbjDwJLjnRmSIl80r5dp1pY||
|Language||en_US 或 zh_CN|
|Product|DROS|DROS 或 VETDROS|
|Source|Electron|Electron 或 Browser 或 Android|
### 请求体(Request Body)
| 参数名称 | 数据类型 | 默认值 | 不为空 | 描述 |
| ------ | ------ | ------ | ------ | ------ |
| instance_uid|string|1.2.276.0.1000000.5.1.4.701601461.19649.1749545373.668671|true|study_id|
| data|string||true|PNG图片base64|
### 响应体
● 200: OK 响应数据格式:JSON
```json
{
"code": "0x000000",
"description": "Success",
"solution": "",
"data": {
"@type": "type.googleapis.com/dr.task.DcmPath",
"path": "1.2.276.0.1000000.5.1.5.701601461.33458.1750830395.482043.dcm"
}
}
```
## 25 [Study]批量添加体位和协议
> POST /dr/api/v1/auth/image
### 接口说明
> 添加体位和协议
### 请求头
| 参数名称 | 默认值 | 描述 |
| ------ | ------ | ------ |
|Authorization|Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3NTEyNzc5NzAsImlkIjoxLCJuYW1lIjoiYWRtaW4ifQ.ooTGwBXaNhtunbKbpqteWbjDwJLjnRmSIl80r5dp1pY||
|Language||en_US 或 zh_CN|
|Product|DROS|DROS 或 VETDROS|
|Source|Electron|Electron 或 Browser 或 Android|
### 请求体(Request Body)
| 参数名称 | 数据类型 | 默认值 | 不为空 | 描述 |
| ------ | ------ | ------ | ------ | ------ |
| study_id|string|20250610164933314|true||
| views|array[object]||true||
|⇥ view_id|string|View_DX_T_A_SK_Special_05|true||
|⇥ procedure_id|string||true||
### 响应体
● 200: OK 响应数据格式:JSON
```json
{
"code": "0x000000",
"description": "Success",
"solution": "",
"data": {
"@type": "type.googleapis.com/dr.study.CreateImageReply",
"series": [
{
"series_instance_uid": "1.2.276.0.1000000.5.1.3.701601461.11229.1750069146.245933",
"study_instance_uid": "1.2.276.0.1000000.5.1.2.701601461.19649.1749545373.668668",
"study_id": "20250610164933314",
"procedure_id": "P0-0002",
"body_part": "Human_SKULL",
"performed_datetime": null,
"performed_protocol_code_meaning": "颅骨前后位 + 侧位",
"performed_protocol_code_value": "P0-0002",
"sort": 5,
"product": "DROS",
"is_pre_install": true,
"images": [
{
"sop_instance_id": "1.2.276.0.1000000.5.1.4.701601461.11229.1750069146.245934",
"series_instance_uid": "1.2.276.0.1000000.5.1.3.701601461.11229.1750069146.245933",
"study_instance_uid": "1.2.276.0.1000000.5.1.2.701601461.19649.1749545373.668668",
"secondary_sop_uid": "",
"study_id": "20250610164933314",
"view_id": "View_DX_T_A_SK_AP_00",
"view_description": "颅骨前后位",
"image_status": "QUEUING",
"image_file_path": "",
"acquisition_mode": "RAD",
"acquisition_context": null,
"img_proc_context": null,
"sort": 8,
"product": "DROS",
"is_pre_install": true
}
]
},
{
"series_instance_uid": "1.2.276.0.1000000.5.1.3.701601461.11229.1750069146.245935",
"study_instance_uid": "1.2.276.0.1000000.5.1.2.701601461.19649.1749545373.668668",
"study_id": "20250610164933314",
"procedure_id": "",
"body_part": "Human_SKULL",
"performed_datetime": null,
"performed_protocol_code_meaning": "",
"performed_protocol_code_value": "",
"sort": 6,
"product": "DROS",
"is_pre_install": true,
"images": [
{
"sop_instance_id": "1.2.276.0.1000000.5.1.4.701601461.11229.1750069146.245936",
"series_instance_uid": "1.2.276.0.1000000.5.1.3.701601461.11229.1750069146.245935",
"study_instance_uid": "1.2.276.0.1000000.5.1.2.701601461.19649.1749545373.668668",
"secondary_sop_uid": "",
"study_id": "20250610164933314",
"view_id": "View_DX_T_A_SK_Special_05",
"view_description": "颅骨斯氏位",
"image_status": "QUEUING",
"image_file_path": "",
"acquisition_mode": "RAD",
"acquisition_context": null,
"img_proc_context": null,
"sort": 9,
"product": "DROS",
"is_pre_install": true
}
]
}
]
}
}
```
示例请求body
```
{
"study_id": "20250610164933314",
"views": [
{
"view_id": "View_DX_T_A_SK_AP_00",
"procedure_id": "P0-0002"
},
{
"view_id": "View_DX_T_A_SK_Special_05",
"procedure_id": ""
}
]
}
```
## 26 [Study]复制体位
> POST /dr/api/v1/auth/image/copy
### 接口说明
> 复制选中的体位
### 请求头
| 参数名称 | 默认值 | 描述 |
| ------ | ------ | ------ |
|Authorization|Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3NTEyNzc5NzAsImlkIjoxLCJuYW1lIjoiYWRtaW4ifQ.ooTGwBXaNhtunbKbpqteWbjDwJLjnRmSIl80r5dp1pY||
|Language||en_US 或 zh_CN|
|Product|DROS|DROS 或 VETDROS|
|Source|Electron|Electron 或 Browser 或 Android|
### 请求体(Request Body)
| 参数名称 | 数据类型 | 默认值 | 不为空 | 描述 |
| ------ | ------ | ------ | ------ | ------ |
| instance_uid|string|1.2.276.0.1000000.5.1.4.701601461.19649.1749545373.668671|true||
### 响应体
● 200: OK 响应数据格式:JSON
```json
{
"code": "0x000000",
"description": "Success",
"solution": "",
"data": {
"@type": "type.googleapis.com/dr.study.CreateImageReply",
"series": [
{
"series_instance_uid": "1.2.276.0.1000000.5.1.3.701601461.19649.1749545373.668669",
"study_instance_uid": "1.2.276.0.1000000.5.1.2.701601461.19649.1749545373.668668",
"study_id": "20250610164933314",
"procedure_id": "P0-0002",
"body_part": "Human_SKULL",
"performed_datetime": null,
"performed_protocol_code_meaning": "颅骨前后位 + 侧位",
"performed_protocol_code_value": "P0-0002",
"sort": 1,
"product": "DROS",
"is_pre_install": true,
"images": [
{
"sop_instance_id": "1.2.276.0.1000000.5.1.4.701601461.11229.1750068918.245928",
"series_instance_uid": "1.2.276.0.1000000.5.1.3.701601461.19649.1749545373.668669",
"study_instance_uid": "1.2.276.0.1000000.5.1.2.701601461.19649.1749545373.668668",
"secondary_sop_uid": "",
"study_id": "20250610164933314",
"view_id": "View_DX_T_A_SK_LAT_00",
"view_description": "颅骨左侧位",
"image_status": "QUEUING",
"image_file_path": "",
"acquisition_mode": "RAD",
"acquisition_context": null,
"img_proc_context": null,
"sort": 3,
"product": "DROS",
"is_pre_install": true
}
]
}
]
}
}
```
## 27 [Study]体位重新排序
> POST /dr/api/v1/auth/image/sort
### 接口说明
> 体位排序
### 请求头
| 参数名称 | 默认值 | 描述 |
| ------ | ------ | ------ |
|Authorization|Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3NTEyNzc5NzAsImlkIjoxLCJuYW1lIjoiYWRtaW4ifQ.ooTGwBXaNhtunbKbpqteWbjDwJLjnRmSIl80r5dp1pY||
|Language||en_US 或 zh_CN|
|Product|DROS|DROS 或 VETDROS|
|Source|Electron|Electron 或 Browser 或 Android|
### 请求体(Request Body)
| 参数名称 | 数据类型 | 默认值 | 不为空 | 描述 |
| ------ | ------ | ------ | ------ | ------ |
| study_id|string|20250610164933314|true||
| sop_instance_uids|array[string]||true||
### 响应体
● 200: OK 响应数据格式:JSON
```json
{
"code": "0x000000",
"description": "Success",
"solution": "",
"data": {
"@type": "type.googleapis.com/google.protobuf.Empty",
"value": {}
}
}
```
###### 示例请求body
```
{
"study_id": "20250610164933314",
"sop_instance_uids": [
"1.2.276.0.1000000.5.1.4.701601461.19649.1749545373.668670",
"1.2.276.0.1000000.5.1.4.701601461.19649.1749545373.668671",
"1.2.276.0.1000000.5.1.4.701601461.19649.1749545373.668673",
"1.2.276.0.1000000.5.1.4.701601461.11229.1750068819.245927",
"1.2.276.0.1000000.5.1.4.701601461.11229.1750068918.245928",
"1.2.276.0.1000000.5.1.4.701601461.11229.1750069085.245930",
"1.2.276.0.1000000.5.1.4.701601461.11229.1750069085.245932",
"1.2.276.0.1000000.5.1.4.701601461.11229.1750069146.245934",
"1.2.276.0.1000000.5.1.4.701601461.11229.1750069146.245936"
]
}
```
## 28 [Study]删除体位
> DELETE /dr/api/v1/auth/image/:id
### 接口说明
> 删除study中的体位,:id为image的sop_instance_uid
### 请求头
| 参数名称 | 默认值 | 描述 |
| ------ | ------ | ------ |
|Authorization|Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3NTEyNzc5NzAsImlkIjoxLCJuYW1lIjoiYWRtaW4ifQ.ooTGwBXaNhtunbKbpqteWbjDwJLjnRmSIl80r5dp1pY||
|Language||en_US 或 zh_CN|
|Product|DROS|DROS 或 VETDROS|
|Source|Electron|Electron 或 Browser 或 Android|
### 响应体
● 200: OK 响应数据格式:JSON
```json
{
"code": "0x000000",
"description": "Success",
"solution": "",
"data": {
"@type": "type.googleapis.com/google.protobuf.Empty",
"value": {}
}
}
```
示例请求
DELETE {{drurl}}/api/v1/auth/image/1.2.276.0.1000000.5.1.4.701601461.19649.1749539018.668478
## 29 [Study]存储后处理dcm
> POST /api/v1/auth/image/post_proc
### 接口说明
> 存储后处理dcm
### 请求头
| 参数名称 | 默认值 | 描述 |
| ------ | ------ | ------ |
|Authorization|Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3NTEyNzc5NzAsImlkIjoxLCJuYW1lIjoiYWRtaW4ifQ.ooTGwBXaNhtunbKbpqteWbjDwJLjnRmSIl80r5dp1pY||
|Language||en_US 或 zh_CN|
|Product|DROS|DROS 或 VETDROS|
|Source|Electron|Electron 或 Browser 或 Android|
### 请求体(Request Body)
| 参数名称 | 数据类型 | 默认值 | 不为空 | 描述 |
| ------ | ------ | ------ | ------ | ------ |
| instance_uid|string|1.2.276.0.1000000.5.1.4.701601461.19649.1749545373.668671|true|study_id|
| data|file||true|PNG图片文件|
| window_center|int32||true|窗位|
| window_wdith|int32||true|窗宽|
### 响应体
● 200: OK 响应数据格式:JSON
```json
{
"code": "0x000000",
"description": "Success",
"solution": "",
"data": {
"@type": "type.googleapis.com/dr.task.DcmPath",
"path": "1.2.276.0.1000000.5.1.5.701601461.33458.1750830395.482043.dcm"
}
}
```
## 30 报告预览
> POST /dr/api/v1/auth/report/preview
### 接口说明
> 报告预览
### 请求头
| 参数名称 | 默认值 | 描述 |
| ------ | ------ | ------ |
|Authorization|Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3NTEyNzc5NzAsImlkIjoxLCJuYW1lIjoiYWRtaW4ifQ.ooTGwBXaNhtunbKbpqteWbjDwJLjnRmSIl80r5dp1pY||
|Language||en_US 或 zh_CN|
|Product|DROS|DROS 或 VETDROS|
|Source|Electron|Electron 或 Browser 或 Android|
### 请求体(Request Body)
| 参数名称 | 数据类型 | 默认值 | 不为空 | 描述 |
| ------ | ------ | ------ | ------ | ------ |
| headers|object||true||
|⇥ name|object||true|姓名|
|⇥ sex|string||true|性别|
|⇥ age|string||true|年龄|
|⇥ medical_record_number|string||true|病历号(人医)|
|⇥ hospitalization_number|string||true|住院号(人医)|
|⇥ bed_number|string||true|床号(人医)|
|⇥ requesting_department|string||true|申请科室|
|⇥ inspection_number|string||true|检查号|
|⇥ inspection_method|string||true|检查描述|
|⇥ patient_type|string||true|宠物类别(宠物)|
|⇥ owner_name|string||true|主人姓名(宠物)|
| findings|string||true|影像所见|
| impression|string||true|诊断意见|
| radiologist|string||true|报告医师|
| review_physician|string||true|审核医师|
### 响应体
● 200: OK 响应数据格式:File
请求示例(人医)
```
{
"headers": {
"name": "张三",
"sex": "男",
"age": "18",
"medical_record_number": "病历号",
"hospitalization_number": "住院号",
"bed_number": "床号",
"requesting_department": "申请科室",
"inspection_number": "检查号",
"inspection_method": "颅脑CT平扫,胸部CT平扫,盆腔CT平扫,CT平扫-薄层扫描(加收)[头颅CT,胸部CT,骨盆CT+三维重建]"
},
"findings": "脑干及双侧基底节区见斑片状低密度影,脑室系统扩张,脑沟加深、脑裂增宽,中线结构居中,颅骨骨质结构完整。\n胸廓对称,两肺纹理增多,两下肺见多发索条影,两肺门无增大,气管支气管通畅,纵隔未见肿大淋巴结,心影增大,心包见弧形液体密度影,胸腔内见不规则胃组织影,双侧胸膜肥厚。胸8椎体变扁。\n右侧股骨粗隆间见骨质断裂影,断端错位成角,髋关节对位尚可,邻近软肿胀肿胀,右侧骶髂关节间隙较对侧增宽,左髋关节呈置换术后改变,左侧耻骨上下支变形,余未见明显骨折。",
"impression": "1.脑千及双侧基底节区腔隙性梗塞灶,脑萎缩。\n2.两下肺多发索条影;心影增大,心包积液;双侧胸膜肥厚粘连;食管裂孔疝;胸8椎体变扁,请结合临床及其他检查。\n3.右侧股骨粗隆间骨折;右侧骶髂关节间隙较对侧增宽,请结合临床。\n4.左髋关节术后改变;左侧耻骨上下支陈旧外伤改变。",
"radiologist": "Tom",
"review_physician": "Jerry"
}
```
返回示例

宠物示例:

## 31 保存报告
> POST /dr/api/v1/auth/study/{id}/report
### 接口说明
> 保存报告
### 地址参数(Path Variable)
| 参数名称 | 默认值 | 描述 |
| ------ | ------ | ------ |
|id||studyID|
### 请求头
| 参数名称 | 默认值 | 描述 |
| ------ | ------ | ------ |
|Authorization|Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3NTEyNzc5NzAsImlkIjoxLCJuYW1lIjoiYWRtaW4ifQ.ooTGwBXaNhtunbKbpqteWbjDwJLjnRmSIl80r5dp1pY||
|Language||en_US 或 zh_CN|
|Product|DROS|DROS 或 VETDROS|
|Source|Electron|Electron 或 Browser 或 Android|
### 请求体(Request Body)
| 参数名称 | 数据类型 | 默认值 | 不为空 | 描述 |
| ------ | ------ | ------ | ------ | ------ |
| headers|object||true||
|⇥ name|object||true|姓名|
|⇥ sex|string||true|性别|
|⇥ age|string||true|年龄|
|⇥ medical_record_number|string||true|病历号|
|⇥ hospitalization_number|string||true|住院号|
|⇥ bed_number|string||true|床号|
|⇥ requesting_department|string||true|申请科室|
|⇥ inspection_number|string||true|检查号|
|⇥ inspection_method|string||true|检查描述|
| findings|string||true|影像所见|
| impression|string||true|诊断意见|
| radiologist|string||true|报告医师|
| review_physician|string||true|审核医师|
### 响应体
● 200: OK 响应数据格式:File
```json
{
"code": "0x000000",
"description": "Success",
"solution": "",
"data": {}
}
```
请求示例
```
{
"headers": {
"name": "张三",
"sex": "男",
"age": "18",
"medical_record_number": "病历号",
"hospitalization_number": "住院号",
"bed_number": "床号",
"requesting_department": "申请科室",
"inspection_number": "检查号",
"inspection_method": "颅脑CT平扫,胸部CT平扫,盆腔CT平扫,CT平扫-薄层扫描(加收)[头颅CT,胸部CT,骨盆CT+三维重建]"
},
"findings": "脑干及双侧基底节区见斑片状低密度影,脑室系统扩张,脑沟加深、脑裂增宽,中线结构居中,颅骨骨质结构完整。\n胸廓对称,两肺纹理增多,两下肺见多发索条影,两肺门无增大,气管支气管通畅,纵隔未见肿大淋巴结,心影增大,心包见弧形液体密度影,胸腔内见不规则胃组织影,双侧胸膜肥厚。胸8椎体变扁。\n右侧股骨粗隆间见骨质断裂影,断端错位成角,髋关节对位尚可,邻近软肿胀肿胀,右侧骶髂关节间隙较对侧增宽,左髋关节呈置换术后改变,左侧耻骨上下支变形,余未见明显骨折。",
"impression": "1.脑千及双侧基底节区腔隙性梗塞灶,脑萎缩。\n2.两下肺多发索条影;心影增大,心包积液;双侧胸膜肥厚粘连;食管裂孔疝;胸8椎体变扁,请结合临床及其他检查。\n3.右侧股骨粗隆间骨折;右侧骶髂关节间隙较对侧增宽,请结合临床。\n4.左髋关节术后改变;左侧耻骨上下支陈旧外伤改变。",
"radiologist": "Tom",
"review_physician": "Jerry"
}
```
示例

## 32 获取报告
> GET /dr/api/v1/auth/study/{id}/report
### 接口说明
> 获取报告
### 地址参数(Path Variable)
| 参数名称 | 默认值 | 描述 |
| ------ | ------ | ------ |
|id||studyID|
### 请求头
| 参数名称 | 默认值 | 描述 |
| ------ | ------ | ------ |
|Authorization|Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3NTEyNzc5NzAsImlkIjoxLCJuYW1lIjoiYWRtaW4ifQ.ooTGwBXaNhtunbKbpqteWbjDwJLjnRmSIl80r5dp1pY||
|Language||en_US 或 zh_CN|
|Product|DROS|DROS 或 VETDROS|
|Source|Electron|Electron 或 Browser 或 Android|
### 响应体
● 200: OK 响应数据格式:File
请求示例
/api/v1/auth/study/20250912063732016/report
## 33 [Device]打开设备
> POST /api/v1/auth/device/open
### 接口说明
> 打开设备
### 请求头
| 参数名称 | 默认值 | 描述 |
| ------ | ------ | ------ |
|Authorization|Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3NTEyNzc5NzAsImlkIjoxLCJuYW1lIjoiYWRtaW4ifQ.ooTGwBXaNhtunbKbpqteWbjDwJLjnRmSIl80r5dp1pY||
|Language||en_US 或 zh_CN|
|Product|DROS|DROS 或 VETDROS|
|Source|Electron|Electron 或 Browser 或 Android|
### 请求体(Request Body)
| 参数名称 | 数据类型 | 默认值 | 不为空 | 描述 |
| ------ | ------ | ------ | ------ | ------ |
| deviceUri|string|DIOS/DEVICE/Generator|true||
### 响应体
● 200: OK 响应数据格式:JSON
```json
{
"code": "0x000000",
"description": "Success",
"solution": "",
"data": {
"@type": "type.googleapis.com/google.protobuf.Empty",
"value": {}
}
}
```
## 34 [Device]执行Get
> POST /api/v1/auth/device/get
### 接口说明
> 执行Get
### 请求头
| 参数名称 | 默认值 | 描述 |
| ------ | ------ | ------ |
|Authorization|Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3NTEyNzc5NzAsImlkIjoxLCJuYW1lIjoiYWRtaW4ifQ.ooTGwBXaNhtunbKbpqteWbjDwJLjnRmSIl80r5dp1pY||
|Language||en_US 或 zh_CN|
|Product|DROS|DROS 或 VETDROS|
|Source|Electron|Electron 或 Browser 或 Android|
### 请求体(Request Body)
| 参数名称 | 数据类型 | 默认值 | 不为空 | 描述 |
| ------ | ------ | ------ | ------ | ------ |
| deviceUri|string|DIOS/DEVICE/Generator|true||
| reqName|string||true||
| reqParam|string||true||
| reqTransaction|string||true||
| reqClientID|string||true||
### 响应体
● 200: OK 响应数据格式:JSON
```json
{
"code": "0x000000",
"data": "{\"SupportSyncMode\":{\"Level\":\"Public\",\"DescKey\":\"SupportSyncMode\",\"Value\":{\"SingleRAD\":{\"HWS\":\"1\",\"CMD\":\"2\",\"FRE\":\"3\"},\"SerialRAD\":{\"HWS\":\"4\",\"CMD\":\"5\",\"FRE\":\"6\"},\"Fluoro\":{\"HWS\":\"7\",\"CMD\":\"8\",\"FRE\":\"9\"},\"DDR\":{\"HWS\":\"10\",\"CMD\":\"11\",\"FRE\":\"12\"},\"DualEnergy\":{\"HWS\":\"13\",\"CMD\":\"14\",\"FRE\":\"15\"},\"TOMO\":{\"HWS\":\"16\",\"CMD\":\"17\",\"FRE\":\"18\"},\"Stitch\":{\"HWS\":\"19\",\"CMD\":\"20\",\"FRE\":\"21\"}}},\"IsDemo\":{\"Level\":\"Public\",\"DescKey\":\"IsDemo\",\"Value\":\"1\"},\"GENERATORSTATUS\":{\"Level\":\"Public\",\"DescKey\":\"GENERATORSTATUS\",\"Value\":\"4\"},\"GENERATORSYNCSTATE\":{\"Level\":\"Public\",\"DescKey\":\"GENERATORSYNCSTATE\",\"Value\":\"0\"},\"ErrorList\":{\"Level\":\"Public\",\"DescKey\":\"ErrorList\",\"Value\":\"\"},\"TUBEHEAT\":{\"Level\":\"Public\",\"DescKey\":\"TUBEHEAT\",\"Value\":\"0\"},\"TubeAngle\":{\"Level\":\"Public\",\"DescKey\":\"TubeAngle\",\"Value\":\"0.000000\"},\"FOCUSSIZE\":{\"Level\":\"ZSKK\",\"DescKey\":\"FOCUSSIZE\",\"Value\":\"0.1\"},\"TubeTargetMaterial\":{\"Level\":\"ZSKK\",\"DescKey\":\"TubeTargetMaterial\",\"Value\":\"MO\"},\"BatteryChargeState\":{\"Level\":\"Public\",\"DescKey\":\"BatteryChargeState\",\"Value\":\"0\"},\"BatteryPowerState\":{\"Level\":\"Public\",\"DescKey\":\"BatteryPowerState\",\"Value\":\"2\"},\"MaxPower\":{\"Level\":\"Private\",\"DescKey\":\"kV*mA\",\"Value\":\"5\"},\"MaxHeatContent\":{\"Level\":\"Private\",\"DescKey\":\"kV*mAs\",\"Value\":\"225\"},\"KV\":{\"Level\":\"Public\",\"DescKey\":\"KV\",\"min\":\"0.00\",\"max\":\"150.00\",\"Value\":\"0.000000\"},\"MA\":{\"Level\":\"Public\",\"DescKey\":\"MA\",\"min\":\"0.00\",\"max\":\"1000.00\",\"Value\":\"0.000000\"},\"MS\":{\"Level\":\"Public\",\"DescKey\":\"MS\",\"min\":\"0.00\",\"max\":\"10000.00\",\"Value\":\"0.000000\"},\"MAS\":{\"Level\":\"Public\",\"DescKey\":\"MAS\",\"min\":\"0.00\",\"max\":\"1000.00\",\"Value\":\"0.000000\"},\"FOCUS\":{\"Level\":\"Public\",\"DescKey\":\"FOCUS\",\"Value\":\"1\"},\"WORKSTATION\":{\"Level\":\"Public\",\"DescKey\":\"WORKSTATION\",\"Value\":\"1\"},\"AECDENSITY\":{\"Level\":\"Public\",\"DescKey\":\"AECDENSITY\",\"Value\":\"0\"},\"AECFIELD\":{\"Level\":\"Public\",\"DescKey\":\"AECFIELD\",\"Value\":\"0\"},\"AECFILM\":{\"Level\":\"Public\",\"DescKey\":\"AECFILM\",\"Value\":\"0\"},\"TECHMODE\":{\"Level\":\"Public\",\"DescKey\":\"TECHMODE\",\"Value\":\"1\"},\"FrameRate\":{\"Level\":\"Public\",\"DescKey\":\"FrameRate\",\"Value\":\"0.000000\"},\"EXAMMODE\":{\"Level\":\"Public\",\"DescKey\":\"EXAMMODE\",\"Value\":\"MANUAL\"},\"EXPMODE\":{\"Level\":\"Public\",\"DescKey\":\"EXPMODE\",\"Value\":\"Single\"},\"POSTKV\":{\"Level\":\"Public\",\"DescKey\":\"POSTKV\",\"Value\":\"0.000000\"},\"POSTMA\":{\"Level\":\"Public\",\"DescKey\":\"POSTMA\",\"Value\":\"0.000000\"},\"POSTMAS\":{\"Level\":\"Public\",\"DescKey\":\"POSTMAS\",\"Value\":\"0.000000\"},\"POSTMS\":{\"Level\":\"Public\",\"DescKey\":\"POSTMS\",\"Value\":\"0.000000\"},\"FLUKV\":{\"Level\":\"Public\",\"DescKey\":\"FLUKV\",\"Value\":\"0.000000\"},\"FLUMA\":{\"Level\":\"Public\",\"DescKey\":\"FLUMA\",\"Value\":\"0.000000\"},\"FLUMS\":{\"Level\":\"Public\",\"DescKey\":\"FLUMS\",\"Value\":\"0.000000\"},\"FLUMode\":{\"Level\":\"Public\",\"DescKey\":\"FLUMode\",\"Value\":\"0\"},\"FLUPPS\":{\"Level\":\"Public\",\"DescKey\":\"FLUPPS\",\"Value\":\"0\"},\"FLUAccTime\":{\"Level\":\"Public\",\"DescKey\":\"FLUAccTime\",\"Value\":\"2.000000\"},\"FLUIntTime\":{\"Level\":\"Public\",\"DescKey\":\"FLUIntTime\",\"Value\":\"2.000000\"},\"FLUpulseWidth\":{\"Level\":\"Public\",\"DescKey\":\"FLUpulseWidth\",\"Value\":\"0.00\"},\"FLUABSStatus\":{\"Level\":\"Public\",\"DescKey\":\"FLUABSStatus\",\"Value\":\"0.00\"},\"FLUDoseLevel\":{\"Level\":\"Public\",\"DescKey\":\"FLUDoseLevel\",\"Value\":\"0.00\"},\"FLUCurve\":{\"Level\":\"Public\",\"DescKey\":\"FLUCurve\",\"Value\":\"0.00\"},\"FLUCineKV\":{\"Level\":\"Public\",\"DescKey\":\"FLUCineKV\",\"Value\":\"0.00\"},\"FLUCineMA\":{\"Level\":\"Public\",\"DescKey\":\"FLUCineMA\",\"Value\":\"0.00\"},\"FLUCineMS\":{\"Level\":\"Public\",\"DescKey\":\"FLUCineMS\",\"Value\":\"0.00\"},\"connections\":{\"Level\":\"Public\",\"DescKey\":\"connections\",\"Value\":{\"type\":\"COM\",\"port\":\"COM1\",\"baudrate\":\"19200\",\"bytesize\":\"8\",\"parity\":\"0\",\"stopbits\":\"0\"}},\"FocusSmall\":{\"Level\":\"ZSKK\",\"DescKey\":\"FocusSmall\",\"Value\":\"0.1\"},\"FocusLarge\":{\"Level\":\"ZSKK\",\"DescKey\":\"FocusLarge\",\"Value\":\"0.3\"},\"logEnable\":{\"Level\":\"Private\",\"DescKey\":\"logEnable\",\"Value\":\"1\"},\"loopEnable\":{\"Level\":\"Private\",\"DescKey\":\"loopEnable\",\"Value\":\"1\"},\"loopTime\":{\"Level\":\"Private\",\"DescKey\":\"loopTime\",\"Value\":\"2000\"},\"ReConnect\":{\"Level\":\"Private\",\"DescKey\":\"ReConnect\",\"Value\":\"1\"},\"WSTable\":{\"Level\":\"ZSKK\",\"DescKey\":\"WSTable\",\"Value\":\"1\"},\"WSWall\":{\"Level\":\"ZSKK\",\"DescKey\":\"WSWall\",\"Value\":\"1\"},\"WSFree\":{\"Level\":\"ZSKK\",\"DescKey\":\"WSFree\",\"Value\":\"1\"},\"WSTomo\":{\"Level\":\"ZSKK\",\"DescKey\":\"WSTomo\",\"Value\":\"1\"},\"WSConventional\":{\"Level\":\"ZSKK\",\"DescKey\":\"WSConventional\",\"Value\":\"1\"},\"SYNTable\":{\"Level\":\"ZSKK\",\"DescKey\":\"SYNTable\",\"Value\":\"1\"},\"SYNWall\":{\"Level\":\"ZSKK\",\"DescKey\":\"SYNWall\",\"Value\":\"1\"},\"SYNFree\":{\"Level\":\"ZSKK\",\"DescKey\":\"SYNFree\",\"Value\":\"1\"},\"SYNTomo\":{\"Level\":\"ZSKK\",\"DescKey\":\"SYNTomo\",\"Value\":\"1\"},\"SYNConventional\":{\"Level\":\"ZSKK\",\"DescKey\":\"SYNConventional\",\"Value\":\"1\"},\"DeviceNumber\":{\"Level\":\"Private\",\"DescKey\":\"DeviceNumber\",\"Value\":\"3\"},\"StateChangeInterval\":{\"Level\":\"Private\",\"DescKey\":\"StateChangeInterval\",\"Value\":\"200\"},\"AutoExpActWaitTime\":{\"Level\":\"Private\",\"DescKey\":\"AutoExpActWaitTime\",\"Value\":\"100\"},\"Manufacturer\":{\"Level\":\"Public\",\"DescKey\":\"Manufacturer\",\"Value\":\"ZSKK\"},\"Model\":{\"Level\":\"Public\",\"DescKey\":\"Model\",\"Value\":\"demo\"},\"Modality\":{\"Level\":\"Public\",\"DescKey\":\"Modality\",\"Value\":\"demo\"}}\n",
"description": "成功",
"solution": ""
}
```
## 35 [Device]执行Action
> POST /api/v1/auth/device/action
### 接口说明
> 执行Action
### 请求头
| 参数名称 | 默认值 | 描述 |
| ------ | ------ | ------ |
|Authorization|Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3NTEyNzc5NzAsImlkIjoxLCJuYW1lIjoiYWRtaW4ifQ.ooTGwBXaNhtunbKbpqteWbjDwJLjnRmSIl80r5dp1pY||
|Language||en_US 或 zh_CN|
|Product|DROS|DROS 或 VETDROS|
|Source|Electron|Electron 或 Browser 或 Android|
### 请求体(Request Body)
| 参数名称 | 数据类型 | 默认值 | 不为空 | 描述 |
| ------ | ------ | ------ | ------ | ------ |
| deviceUri|string|DIOS/DEVICE/Generator|true||
| reqName|string|IncParam_KV|true||
| reqParam|string||true||
| reqTransaction|string||true||
| reqClientID|string||true||
### 响应体
● 200: OK 响应数据格式:JSON
```json
{
"code": "0x000000",
"description": "Success",
"solution": "",
"data": {
"@type": "type.googleapis.com/google.protobuf.Empty",
"value": {}
}
}
```
## 36 [Task]开始检查
> POST /api/v1/auth/task/inspection/start
### 接口说明
> 进入曝光页面时调用,告知后端当前开始的是哪个检查
### 地址参数(Path Variable)
| 参数名称 | 默认值 | 描述 |
| ------ | ------ | ------ |
|drurl|||
### 请求头
| 参数名称 | 默认值 | 描述 |
| ------ | ------ | ------ |
|Authorization|Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3NTEyNzc5NzAsImlkIjoxLCJuYW1lIjoiYWRtaW4ifQ.ooTGwBXaNhtunbKbpqteWbjDwJLjnRmSIl80r5dp1pY||
|Language||en_US 或 zh_CN|
|Product|DROS|DROS 或 VETDROS|
|Source|Electron|Electron 或 Browser 或 Android|
### 请求体(Request Body)
| 参数名称 | 数据类型 | 默认值 | 不为空 | 描述 |
| ------ | ------ | ------ | ------ | ------ |
| instance_uid|string|1.2.276.0.1000000.5.1.4.701601461.19649.1749545373.668671|true|sop_instance_uid|
### 响应体
● 200: OK 响应数据格式:JSON
```json
{
"code": "0x000000",
"description": "Success",
"solution": "",
"data": {
"@type": "type.googleapis.com/google.protobuf.Empty",
"value": {}
}
}
```
## 37 [Task]获取全局状态
> GET /api/v1/auth/task/inspection/status
### 接口说明
> 获取当前发生器、探测器和后端服务的状态
### 请求头
| 参数名称 | 默认值 | 描述 |
| ------ | ------ | ------ |
|Authorization|Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3NTEyNzc5NzAsImlkIjoxLCJuYW1lIjoiYWRtaW4ifQ.ooTGwBXaNhtunbKbpqteWbjDwJLjnRmSIl80r5dp1pY||
|Language||en_US 或 zh_CN|
|Product|DROS|DROS 或 VETDROS|
|Source|Electron|Electron 或 Browser 或 Android|
### 响应体
● 200: OK 响应数据格式:JSON
```json
{
"code": "0x000000",
"description": "成功",
"solution": "",
"data": {
"@type": "type.googleapis.com/dr.task.TaskGlobalStatus",
"gen_status": "GENERATOR_STATUS_STANDBY",
"gen_ready": true,
"fpd_status": "DETECTOR_STATUS_STANDBY",
"fpd_ready": true,
"insp_status": "TASK_Ready",
"insp_ready": true,
"all_ready": true
}
}
```
##### 状态变化时会推送mqtt消息
Topic: MODULE/TASK/STATUS/GLOBAL
```
{
"GENStatus": "GENERATOR_STATUS_STANDBY",
"GENReady": true,
"FPDStatus": "DETECTOR_STATUS_STANDBY",
"FPDReady": true,
"InspStatus": "TASK_Ready",
"InspReady": true,
"AllReady": true
}
```
## 38 [Task]软曝光(包含状态推送说明)
> POST /api/v1/auth/task/inspection/trigger
### 接口说明
> 曝光页面调用触发曝光
### 请求头
| 参数名称 | 默认值 | 描述 |
| ------ | ------ | ------ |
|Authorization|Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3NTEyNzc5NzAsImlkIjoxLCJuYW1lIjoiYWRtaW4ifQ.ooTGwBXaNhtunbKbpqteWbjDwJLjnRmSIl80r5dp1pY||
|Language||en_US 或 zh_CN|
|Product|DROS|DROS 或 VETDROS|
|Source|Electron|Electron 或 Browser 或 Android|
### 响应体
● 200: OK 响应数据格式:JSON
```json
{
"code": "0x000000",
"data": {},
"description": "Success",
"solution": ""
}
```
图像处理过程会通过mqtt推送进度和状态,会按顺序推送以下状态,重点关注成功和失败状态,其他状态按需使用
- TASK_RecvRaw 已获取原图
- TASK_RecvMask 已获取mask
- TASK_RecvEnhance 已完成增强
- TASK_RecvForeground 已获取前景mask
- TASK_RecvApply 已完成遮罩mask
- TASK_Success 成功存储dcm
- TASK_Failure 失败 message包含失败原因
**主题(topic):****MODULE/TASK/IMGPROC/PROGRESS**
###### 举例:(已获取原图)
```
{
"message": "",
"sop": "20250801150247",
"status": "TASK_RecvRaw"
}
```
成功:dcm字段为结果文件名,thumbnail字段为缩略图
```
{
"dcm": "20250801150247.dcm",
"message": "",
"sop": "20250801150247",
"status": "TASK_Success",
"thumbnail": "20250801150247.webp"
}
```
失败:message包含失败原因
```
{
"message": "open testfile/circle_3072_3072_11.tif: The system cannot find the file specified.",
"sop": "20250801150942",
"status": "TASK_Failure"
}
```
## 39 [Task]接受拒绝图像
> POST /api/v1/auth/task/inspection/judge
### 接口说明
> 接受或者拒绝当前图像
### 地址参数(Path Variable)
| 参数名称 | 默认值 | 描述 |
| ------ | ------ | ------ |
|drurl|||
### 请求头
| 参数名称 | 默认值 | 描述 |
| ------ | ------ | ------ |
|Authorization|Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3NTEyNzc5NzAsImlkIjoxLCJuYW1lIjoiYWRtaW4ifQ.ooTGwBXaNhtunbKbpqteWbjDwJLjnRmSIl80r5dp1pY||
|Language||en_US 或 zh_CN|
|Product|DROS|DROS 或 VETDROS|
|Source|Electron|Electron 或 Browser 或 Android|
### 请求体(Request Body)
| 参数名称 | 数据类型 | 默认值 | 不为空 | 描述 |
| ------ | ------ | ------ | ------ | ------ |
| instance_uid|object|1.2.276.0.1000000.5.1.4.701601461.19649.1749545373.668671|true|sop_instance_uid|
| accept|boolean|false|true||
### 响应体
● 200: OK 响应数据格式:JSON
```json
{
"code": "0x000000",
"description": "Success",
"solution": "",
"data": {
"@type": "type.googleapis.com/google.protobuf.Empty",
"value": {}
}
}
```
## 40 [Task]挂起或完成study
> POST /api/v1/auth/task/inspection/leave
### 接口说明
> 挂起或完成study
### 请求头
| 参数名称 | 默认值 | 描述 |
| ------ | ------ | ------ |
|Authorization|Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3NTEyNzc5NzAsImlkIjoxLCJuYW1lIjoiYWRtaW4ifQ.ooTGwBXaNhtunbKbpqteWbjDwJLjnRmSIl80r5dp1pY||
|Language||en_US 或 zh_CN|
|Product|DROS|DROS 或 VETDROS|
|Source|Electron|Electron 或 Browser 或 Android|
### 请求体(Request Body)
| 参数名称 | 数据类型 | 默认值 | 不为空 | 描述 |
| ------ | ------ | ------ | ------ | ------ |
| study_id|object|20250625143339389|true|study_id|
| study_status|boolean|Completed|true|InProgress 或 Completed|
### 响应体
● 200: OK 响应数据格式:JSON
```json
{
"code": "0x000000",
"description": "Success",
"solution": "",
"data": {
"@type": "type.googleapis.com/google.protobuf.Empty",
"value": {}
}
}
```