# DR
## 2 获取软件信息
> GET /dr/api/v1/pub/software_info
### 接口说明
> 公开接口
### 响应体
● 200: OK 响应数据格式:JSON
```json
{
"code": "0x000000",
"data": {
"FPD": "Simulator",
"GEN": "Simulator",
"guest": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3NTY3MjAxMTUsImlkIjoyLCJuYW1lIjoiZ3Vlc3QifQ.cDkkxM2mkiCQf7T87WsCMewITk13c7jSDoniT7gDHXQ",
"language": ["en", "zh"],
"product": "DROS",
"server": {
"auth": {
"build": "2025-08-25 17:45:18",
"desc": "Authentication Server repo",
"submodule": ["3a167dd4[rpc_idl]"],
"version": "0.3.0-13-g8b85622"
},
"dcmtk": {
"build": "2025-08-25 13:43:16",
"desc": "Dcmtk Server repo",
"submodule": ["0fc2b1e4[rpc_idl]"],
"version": "0.3.0-12-gff618d4"
},
"imgProc": {
"build": "2025-08-25 13:46:23",
"desc": "Img Proc Server repo",
"submodule": [
"5e507af7[auto_wwwl]",
"3a75bb1f[collimator_circle]",
"e7b69785[collimator_rect]",
"6b7fbbd1[enhance]",
"5905e001[rpc_idl]"
],
"version": "0.3.0-7-gbb2ee0b"
},
"protocol": {
"build": "2025-08-25 17:45:23",
"desc": "Protocol Server repo",
"submodule": ["3a167dd4[rpc_idl]"],
"version": "0.3.0-7-g1954756"
},
"resource": {
"build": "2025-08-25 17:45:27",
"desc": "Resource Server repo",
"submodule": ["0fc2b1e4[rpc_idl]"],
"version": "0.3.0-12-g60e37c1"
},
"study": {
"build": "2025-08-25 17:45:25",
"desc": "Study Server repo",
"submodule": ["3a167dd4[rpc_idl]"],
"version": "0.3.0-11-g784ba1b"
},
"task": {
"build": "2025-08-25 17:45:29",
"desc": "Task Server repo",
"submodule": ["0fc2b1e4[rpc_idl]"],
"version": "0.3.0-20-ge9ec04a"
}
},
"sn": "2edbc382-044adc78-95bed11b-51c9328a"
},
"description": "Success",
"solution": ""
}
```
## 3 获取用户列表
> GET /dr/api/v1/pub/users
### 接口说明
> 公开接口
### 响应体
● 200: OK 响应数据格式:JSON
```json
{
"code": "0x000000",
"data": ["service", "admin", "mgr", "tech"],
"description": "Success",
"solution": ""
}
```
## 4 获取示意图
> GET /dr/api/v1/pub/Image/xxx/xxx/xxx
### 接口说明
> 公开接口
### 响应体
● 200: OK 响应数据格式:File
```json
图片数据
```
## 5 登陆
> POST /dr/api/v1/pub/login
### 请求头
| 参数名称 | 默认值 | 描述 |
| ------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------ |
| Authorization | Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3NTAwNTU5MzYsImlkIjoxLCJuYW1lIjoiYWRtaW4ifQ.LLveItQ_K0vvcmyN4qLQHxaOcz3EzY7ZeUQ97hR9R9w | |
| Language | en | en 或 zh |
| 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": ""
}
}
```
## 6 修改密码
> POST /api/v1/auth/settings/password
### 接口说明
> 修改当前用户自己的密码
### 请求头
| 参数名称 | 默认值 | 描述 |
| ------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------ |
| Authorization | Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3NTEyNzc5NzAsImlkIjoxLCJuYW1lIjoiYWRtaW4ifQ.ooTGwBXaNhtunbKbpqteWbjDwJLjnRmSIl80r5dp1pY | |
| Language | en | en 或 zh |
| 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": {}
}
```
## 7 获取选项
> GET /dr/api/v1/auth/resource/options
### 请求头
| 参数名称 | 默认值 | 描述 |
| ------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------ |
| Authorization | Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3NTEyNzc5NzAsImlkIjoxLCJuYW1lIjoiYWRtaW4ifQ.ooTGwBXaNhtunbKbpqteWbjDwJLjnRmSIl80r5dp1pY | |
| Language | en | en 或 zh |
| 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"
}
]
}
}
```
## 8 获取配置项
> GET /dr/api/v1/auth/resource/config
### 接口说明
> 获取全局配置项
### 请求头
| 参数名称 | 默认值 | 描述 |
| ------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------ |
| Authorization | Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3NTEyNzc5NzAsImlkIjoxLCJuYW1lIjoiYWRtaW4ifQ.ooTGwBXaNhtunbKbpqteWbjDwJLjnRmSIl80r5dp1pY | |
| Language | en | en 或 zh |
| 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 探测器仿真模式
## 9 协议
## 9.1 获取患者类型
> GET /dr/api/v1/auth/protocol/patient_type
### 请求头
| 参数名称 | 默认值 | 描述 |
| ------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------ |
| Authorization | Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3NTEyNzc5NzAsImlkIjoxLCJuYW1lIjoiYWRtaW4ifQ.ooTGwBXaNhtunbKbpqteWbjDwJLjnRmSIl80r5dp1pY | |
| Language | en | en 或 zh |
| 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
}
]
}
}
```
## 9.2 获取身体部位
> GET /dr/api/v1/auth/protocol/body_part
### 接口说明
> 根据患者类型获取支持的身体部位
### 请求头
| 参数名称 | 默认值 | 描述 |
| ------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------ |
| Authorization | Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3NTEyNzc5NzAsImlkIjoxLCJuYW1lIjoiYWRtaW4ifQ.ooTGwBXaNhtunbKbpqteWbjDwJLjnRmSIl80r5dp1pY | |
| Language | en | en 或 zh |
| 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
}
]
}
}
```
## 9.3 获取协议列表
> GET /dr/api/v1/auth/protocol/procedure
### 接口说明
> 根据身体部位获取协议列表
### 请求头
| 参数名称 | 默认值 | 描述 |
| ------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------ |
| Authorization | Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3NTEyNzc5NzAsImlkIjoxLCJuYW1lIjoiYWRtaW4ifQ.ooTGwBXaNhtunbKbpqteWbjDwJLjnRmSIl80r5dp1pY | |
| Language | en | en 或 zh |
| 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
}
]
}
}
```
## 9.4 获取体位列表
> GET /dr/api/v1/auth/protocol/view
### 接口说明
> 获取体位列表
### 请求头
| 参数名称 | 默认值 | 描述 |
| ------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------ |
| Authorization | Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3NTEyNzc5NzAsImlkIjoxLCJuYW1lIjoiYWRtaW4ifQ.ooTGwBXaNhtunbKbpqteWbjDwJLjnRmSIl80r5dp1pY | |
| Language | en | en 或 zh |
| 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
}
]
}
}
```
## 9.5 获取体位列表(通过procedure_id)
> GET /dr/api/v1/auth/protocol/procedure/{id}/view
### 接口说明
> 获取体位列表(通过procedure_id)
### 地址参数(Path Variable)
| 参数名称 | 默认值 | 描述 |
| -------- | ------ | ---- |
| id | | |
### 请求头
| 参数名称 | 默认值 | 描述 |
| ------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------ |
| Authorization | Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3NTEyNzc5NzAsImlkIjoxLCJuYW1lIjoiYWRtaW4ifQ.ooTGwBXaNhtunbKbpqteWbjDwJLjnRmSIl80r5dp1pY | |
| Language | en | en 或 zh |
| 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
}
]
}
}
```
## 9.6 获取体位详情
> GET /dr/api/v1/auth/protocol/view/{id}
### 接口说明
> 根据ID获取体位详情
### 地址参数(Path Variable)
| 参数名称 | 默认值 | 描述 |
| -------- | ------ | ---- |
| id | | |
### 请求头
| 参数名称 | 默认值 | 描述 |
| ------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------ |
| Authorization | Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3NTEyNzc5NzAsImlkIjoxLCJuYW1lIjoiYWRtaW4ifQ.ooTGwBXaNhtunbKbpqteWbjDwJLjnRmSIl80r5dp1pY | |
| Language | en | en 或 zh |
| 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
}
}
```
## 9.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 | en 或 zh |
| 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
}
}
```
## 9.8 获取APR详情
> GET /dr/api/v1/auth/protocol/apr/{id}
### 接口说明
> 根据ID获取APR详情
### 地址参数(Path Variable)
| 参数名称 | 默认值 | 描述 |
| -------- | ------ | ---- |
| id | | |
### 请求头
| 参数名称 | 默认值 | 描述 |
| ------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------ |
| Authorization | Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3NTEyNzc5NzAsImlkIjoxLCJuYW1lIjoiYWRtaW4ifQ.ooTGwBXaNhtunbKbpqteWbjDwJLjnRmSIl80r5dp1pY | |
| Language | en | en 或 zh |
| 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
}
}
```
## 9.9 获取APR设备信息
> GET /dr/api/v1/auth/protocol/apr/{id}/device
### 接口说明
> 根据ID获取APR详情
### 地址参数(Path Variable)
| 参数名称 | 默认值 | 描述 |
| -------- | ------ | ---- |
| id | | |
### 请求头
| 参数名称 | 默认值 | 描述 |
| ------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------ |
| Authorization | Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3NTEyNzc5NzAsImlkIjoxLCJuYW1lIjoiYWRtaW4ifQ.ooTGwBXaNhtunbKbpqteWbjDwJLjnRmSIl80r5dp1pY | |
| Language | en | en 或 zh |
| 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
}
}
}
}
```
## 9.10 获取APR默认曝光参数
> GET /dr/api/v1/auth/protocol/apr/{id}/tech
### 接口说明
> 根据ID获取APR详情
### 地址参数(Path Variable)
| 参数名称 | 默认值 | 描述 |
| -------- | ------ | ---- |
| id | | |
### 请求头
| 参数名称 | 默认值 | 描述 |
| ------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------ |
| Authorization | Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3NTEyNzc5NzAsImlkIjoxLCJuYW1lIjoiYWRtaW4ifQ.ooTGwBXaNhtunbKbpqteWbjDwJLjnRmSIl80r5dp1pY | |
| Language | en | en 或 zh |
| 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
}
}
}
```
## 10 登记检查信息
> POST /dr/api/v1/auth/study
### 接口说明
> 登记检查信息
### 请求头
| 参数名称 | 默认值 | 描述 |
| ------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------ |
| Authorization | Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3NTEyNzc5NzAsImlkIjoxLCJuYW1lIjoiYWRtaW4ifQ.ooTGwBXaNhtunbKbpqteWbjDwJLjnRmSIl80r5dp1pY | |
| Language | en | en 或 zh |
| 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
}
]
}
]
}
}
```
## 11 变更登记信息
> PUT /dr/api/v1/auth/study/{id}
### 接口说明
> 变更检查信息 :id 任务ID
### 地址参数(Path Variable)
| 参数名称 | 默认值 | 描述 |
| -------- | ------ | ---- |
| id | | |
### 请求头
| 参数名称 | 默认值 | 描述 |
| ------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------ |
| Authorization | Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3NTEyNzc5NzAsImlkIjoxLCJuYW1lIjoiYWRtaW4ifQ.ooTGwBXaNhtunbKbpqteWbjDwJLjnRmSIl80r5dp1pY | |
| Language | en | en 或 zh |
| 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
}
]
}
]
}
}
```
## 12 获取检查信息列表
> GET /dr/api/v1/auth/study/
### 接口说明
> 获取检查信息列表
### 请求头
| 参数名称 | 默认值 | 描述 |
| ------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------ |
| Authorization | Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3NTYzOTExNjUsImlkIjozLCJuYW1lIjoiYWRtaW4ifQ.ivwjTzeMXLwJry1iHN8a9hV90ftSgDZF6n8lEfOtTOQ | |
| Language | en | en 或 zh |
| 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": "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
}
]
}
}
```
## 13 获取检查信息
> GET /dr/api/v1/auth/study/{id}
### 接口说明
> :id -- 检查信息ID(study_id) 例:20250619164137632
### 地址参数(Path Variable)
| 参数名称 | 默认值 | 描述 |
| -------- | ------ | -------- |
| id | | study_id |
### 请求头
| 参数名称 | 默认值 | 描述 |
| ------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------ |
| Authorization | Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3NTYxOTU0MDIsImlkIjozLCJuYW1lIjoiYWRtaW4ifQ.jK86cKyAMwfgxPsE6mpvSE1PF99jHrppGJZdB8G9uEw | |
| Language | en | en 或 zh |
| 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.StudyReply",
"study_instance_uid": "1.2.276.0.1000000.5.1.2.701601461.34708.1750322497.870195",
"study_id": "20250619164137632",
"public_study_id": "",
"specific_character_set": "ISO_IR 192",
"accession_number": "ACC0012346",
"ref_physician": "Dr. Smith (Vet)",
"patient_id": "PET007",
"patient_name": "Tom",
"patient_size": "Large",
"other_patient_ids": "",
"other_patient_names": "",
"owner_name": "",
"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-19T08:41:37.894Z",
"study_end_datetime": null,
"scheduled_procedure_step_start_date": null,
"performed_physician": "",
"study_lock": "Unlocked",
"folder_path": "",
"operator_name": "",
"modality": "DX",
"weight": 25,
"thickness": 15,
"length": 60,
"patient_type": "Human",
"study_type": "Normal",
"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": "Completed",
"sort": 0,
"product": "DROS",
"series": [
{
"series_instance_uid": "1.2.276.0.1000000.5.1.3.701601461.34708.1750322497.870196",
"study_instance_uid": "1.2.276.0.1000000.5.1.2.701601461.34708.1750322497.870195",
"study_id": "20250619164137632",
"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.34708.1750322497.870197",
"series_instance_uid": "1.2.276.0.1000000.5.1.3.701601461.34708.1750322497.870196",
"study_instance_uid": "1.2.276.0.1000000.5.1.2.701601461.34708.1750322497.870195",
"secondary_sop_uid": "",
"study_id": "20250619164137632",
"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.4.701601461.34708.1750322497.870198",
"series_instance_uid": "1.2.276.0.1000000.5.1.3.701601461.34708.1750322497.870196",
"study_instance_uid": "1.2.276.0.1000000.5.1.2.701601461.34708.1750322497.870195",
"secondary_sop_uid": "",
"study_id": "20250619164137632",
"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.3.701601461.34708.1750322497.870199",
"study_instance_uid": "1.2.276.0.1000000.5.1.2.701601461.34708.1750322497.870195",
"study_id": "20250619164137632",
"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.4.701601461.34708.1750322497.870200",
"series_instance_uid": "1.2.276.0.1000000.5.1.3.701601461.34708.1750322497.870199",
"study_instance_uid": "1.2.276.0.1000000.5.1.2.701601461.34708.1750322497.870195",
"secondary_sop_uid": "",
"study_id": "20250619164137632",
"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
}
]
}
]
}
}
```
## 14 获取检查信息状态
> 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 | en 或 zh |
| 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
}
}
```
## 15 删除检查信息(批量)
> DELETE /dr/api/v1/auth/study
### 接口说明
> 批量删除检查信息
### 请求头
| 参数名称 | 默认值 | 描述 |
| ------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------ |
| Authorization | Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3NTEyNzc5NzAsImlkIjoxLCJuYW1lIjoiYWRtaW4ifQ.ooTGwBXaNhtunbKbpqteWbjDwJLjnRmSIl80r5dp1pY | |
| Language | en | en 或 zh |
| 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"
]
```
## 16 [Study]存储拍摄的急诊患者影像
> POST /api/v1/auth/study/portrait
### 接口说明
> 存储拍摄的急诊患者影像
### 地址参数(Path Variable)
| 参数名称 | 默认值 | 描述 |
| -------- | ------ | ---- |
| drurl | | |
### 请求头
| 参数名称 | 默认值 | 描述 |
| ------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------ |
| Authorization | Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3NTEyNzc5NzAsImlkIjoxLCJuYW1lIjoiYWRtaW4ifQ.ooTGwBXaNhtunbKbpqteWbjDwJLjnRmSIl80r5dp1pY | |
| Language | en | en 或 zh |
| 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图片文件 |
### 响应体
● 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"
}
}
```
## 17 [Study]批量添加体位和协议
> POST /dr/api/v1/auth/image
### 接口说明
> 添加体位和协议
### 请求头
| 参数名称 | 默认值 | 描述 |
| ------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------ |
| Authorization | Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3NTEyNzc5NzAsImlkIjoxLCJuYW1lIjoiYWRtaW4ifQ.ooTGwBXaNhtunbKbpqteWbjDwJLjnRmSIl80r5dp1pY | |
| Language | en | en 或 zh |
| 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": ""
}
]
}
```
## 18 [Study]复制体位
> POST /dr/api/v1/auth/image/copy
### 接口说明
> 复制选中的体位
### 请求头
| 参数名称 | 默认值 | 描述 |
| ------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------ |
| Authorization | Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3NTEyNzc5NzAsImlkIjoxLCJuYW1lIjoiYWRtaW4ifQ.ooTGwBXaNhtunbKbpqteWbjDwJLjnRmSIl80r5dp1pY | |
| Language | en | en 或 zh |
| 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
}
]
}
]
}
}
```
## 19 [Study]体位重新排序
> POST /dr/api/v1/auth/image/sort
### 接口说明
> 体位排序
### 请求头
| 参数名称 | 默认值 | 描述 |
| ------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------ |
| Authorization | Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3NTEyNzc5NzAsImlkIjoxLCJuYW1lIjoiYWRtaW4ifQ.ooTGwBXaNhtunbKbpqteWbjDwJLjnRmSIl80r5dp1pY | |
| Language | en | en 或 zh |
| 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"
]
}
```
## 20 [Study]删除体位
> DELETE /dr/api/v1/auth/image/:id
### 接口说明
> 删除study中的体位,:id为image的sop_instance_uid
### 请求头
| 参数名称 | 默认值 | 描述 |
| ------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------ |
| Authorization | Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3NTEyNzc5NzAsImlkIjoxLCJuYW1lIjoiYWRtaW4ifQ.ooTGwBXaNhtunbKbpqteWbjDwJLjnRmSIl80r5dp1pY | |
| Language | en | en 或 zh |
| 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
## 21 [Device]打开设备
> POST /api/v1/auth/device/open
### 接口说明
> 打开设备
### 请求头
| 参数名称 | 默认值 | 描述 |
| ------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------ |
| Authorization | Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3NTEyNzc5NzAsImlkIjoxLCJuYW1lIjoiYWRtaW4ifQ.ooTGwBXaNhtunbKbpqteWbjDwJLjnRmSIl80r5dp1pY | |
| Language | en | en 或 zh |
| 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": {}
}
}
```
## 22 [Device]执行Action
> POST /api/v1/auth/device/action
### 接口说明
> 执行Action
### 请求头
| 参数名称 | 默认值 | 描述 |
| ------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------ |
| Authorization | Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3NTEyNzc5NzAsImlkIjoxLCJuYW1lIjoiYWRtaW4ifQ.ooTGwBXaNhtunbKbpqteWbjDwJLjnRmSIl80r5dp1pY | |
| Language | en | en 或 zh |
| 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": {}
}
}
```
## 23 [Task]开始检查
> POST /api/v1/auth/task/inspection/start
### 接口说明
> 进入曝光页面时调用,告知后端当前开始的是哪个检查
### 地址参数(Path Variable)
| 参数名称 | 默认值 | 描述 |
| -------- | ------ | ---- |
| drurl | | |
### 请求头
| 参数名称 | 默认值 | 描述 |
| ------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------ |
| Authorization | Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3NTEyNzc5NzAsImlkIjoxLCJuYW1lIjoiYWRtaW4ifQ.ooTGwBXaNhtunbKbpqteWbjDwJLjnRmSIl80r5dp1pY | |
| Language | en | en 或 zh |
| 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": {}
}
}
```
## 24 [Task]获取全局状态
> GET /api/v1/auth/task/inspection/status
### 接口说明
> 获取当前发生器、探测器和后端服务的状态
### 请求头
| 参数名称 | 默认值 | 描述 |
| ------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------ |
| Authorization | Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3NTEyNzc5NzAsImlkIjoxLCJuYW1lIjoiYWRtaW4ifQ.ooTGwBXaNhtunbKbpqteWbjDwJLjnRmSIl80r5dp1pY | |
| Language | en | en 或 zh |
| 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
}
```
## 25 [Task]软曝光(包含状态推送说明)
> POST /api/v1/auth/task/inspection/trigger
### 接口说明
> 曝光页面调用触发曝光
### 请求头
| 参数名称 | 默认值 | 描述 |
| ------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------ |
| Authorization | Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3NTEyNzc5NzAsImlkIjoxLCJuYW1lIjoiYWRtaW4ifQ.ooTGwBXaNhtunbKbpqteWbjDwJLjnRmSIl80r5dp1pY | |
| Language | en | en 或 zh |
| 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"
}
```
## 26 [Task]接受拒绝图像
> POST /api/v1/auth/task/inspection/judge
### 接口说明
> 接受或者拒绝当前图像
### 地址参数(Path Variable)
| 参数名称 | 默认值 | 描述 |
| -------- | ------ | ---- |
| drurl | | |
### 请求头
| 参数名称 | 默认值 | 描述 |
| ------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------ |
| Authorization | Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3NTEyNzc5NzAsImlkIjoxLCJuYW1lIjoiYWRtaW4ifQ.ooTGwBXaNhtunbKbpqteWbjDwJLjnRmSIl80r5dp1pY | |
| Language | en | en 或 zh |
| 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": {}
}
}
```
## 27 [Task]挂起或完成study
> POST /api/v1/auth/task/inspection/leave
### 接口说明
> 挂起或完成study
### 请求头
| 参数名称 | 默认值 | 描述 |
| ------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------ |
| Authorization | Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3NTEyNzc5NzAsImlkIjoxLCJuYW1lIjoiYWRtaW4ifQ.ooTGwBXaNhtunbKbpqteWbjDwJLjnRmSIl80r5dp1pY | |
| Language | en | en 或 zh |
| 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": {}
}
}
```
## 28 获取dcm文件
> GET /api/v1/auth/image/dcm/{dcmfilename}
### 接口说明
> 获取dcm文件
### 地址参数(Path Variable)
| 参数名称 | 默认值 | 描述 |
| ----------- | ------ | --------- |
| dcmfilename | | dcm文件名 |
### 请求头
| 参数名称 | 默认值 | 描述 |
| ------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------ |
| Authorization | Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3NTEyNzc5NzAsImlkIjoxLCJuYW1lIjoiYWRtaW4ifQ.ooTGwBXaNhtunbKbpqteWbjDwJLjnRmSIl80r5dp1pY | |
| Language | en | en 或 zh |
| Product | DROS | DROS 或 VETDROS |
| Source | Electron | Electron 或 Browser 或 Android |
### 响应体
● 200: OK 响应数据格式:File
```json
文件
```
## 29 获取缩略图文件
> GET /api/v1/auth/image/thumbnail/{filename}
### 接口说明
> 获取缩略图文件
### 地址参数(Path Variable)
| 参数名称 | 默认值 | 描述 |
| -------- | ------ | ------------ |
| filename | | 缩略图文件名 |
### 请求头
| 参数名称 | 默认值 | 描述 |
| ------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------ |
| Authorization | Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3NTEyNzc5NzAsImlkIjoxLCJuYW1lIjoiYWRtaW4ifQ.ooTGwBXaNhtunbKbpqteWbjDwJLjnRmSIl80r5dp1pY | |
| Language | en | en 或 zh |
| Product | DROS | DROS 或 VETDROS |
| Source | Electron | Electron 或 Browser 或 Android |
### 响应体
● 200: OK 响应数据格式:File
```json
文件
```