# 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 获取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" } } ] } } ``` 请求示例 ## 13.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": {} } ``` 请求示例 ![ ](http://f1-xyj.fangdeco.cn/attachment/2025/10/8/2LxW6Zq9QdE/bc6cf3e6958c49099f60e15add37cac1) ## 13.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": {} } ``` 请求示例 ![ ](http://f1-xyj.fangdeco.cn/attachment/2025/10/8/2LxW3RCiZqS/99516b6f16134ab0bee9bc6a47b7a749) ## 13.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": {} } ``` ![ ](http://f1-xyj.fangdeco.cn/attachment/2025/10/8/2LxVytRZBlw/23780f4ef34d404ca604608b7b73547f) ## 14 协议 ## 14.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 } ] } } ``` ## 14.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 } ] } } ``` ## 14.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 } ] } } ``` ## 14.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 } ] } } ``` ## 14.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 } ] } } ``` ## 14.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 } } ``` ## 14.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 } } ``` ## 14.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 } } ``` ## 14.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 } } } } ``` ## 14.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 } } } ``` ## 14.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 } } ``` ![ ](http://f1-xyj.fangdeco.cn/attachment/2025/10/8/2LxGRVB7LUG/bc6ab340f36a45ed8c311215835b394d) ## 15 传输队列 ## 15.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" } } ``` 请求示例 ![ ](http://f1-xyj.fangdeco.cn/attachment/2025/10/9/2LzEU2sUaFU/57083fd3c51b416e8a2c4a7095e8edc9) ## 15.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 } } ] } } ``` 请求示例 ![ ](http://f1-xyj.fangdeco.cn/attachment/2025/10/11/2M2HRxPLai0/761eb4441cfe4a5aa308cdf1859d32c3) ## 15.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": "" } ``` 请求示例 ![ ](http://f1-xyj.fangdeco.cn/attachment/2025/10/11/2M2RwohGYQy/4cebd746f7d349ac992e83d1656ca8b2) ## 15.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": {} } ``` 请求示例 ![ ](http://f1-xyj.fangdeco.cn/attachment/2025/10/11/2M2HVKxHy8u/3d8b16fc08844c80930402f17e389dc2) ## 15.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" } } ``` 请求示例 ![ ](http://f1-xyj.fangdeco.cn/attachment/2025/10/10/2M0jbE69VxY/be2c33a1b0e344f1954927b726b18fa4) ## 15.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" } } ``` 请求示例 ![ ](http://f1-xyj.fangdeco.cn/attachment/2025/10/10/2M0jbE69VxY/be2c33a1b0e344f1954927b726b18fa4) ## 15.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" } } ``` 请求示例 ![ ](http://f1-xyj.fangdeco.cn/attachment/2025/10/11/2M2HYvSokoS/13f07b5d144c465daff5ca8b70cc82c2) ## 16 登记检查信息 > 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 } ] } ] } } ``` ## 17 变更登记信息 > 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 } ] } ] } } ``` ## 18 锁定检查信息(不可删除) > 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 ## 19 获取检查信息列表 > 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": [] } ] } } ``` ## 20 获取检查信息 > 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" } ] } ] } } ``` ## 21 获取检查信息状态 > 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 } } ``` ## 22 删除检查信息(批量) > 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" ] ``` ## 23 [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" } } ``` ## 24 [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": "" } ] } ``` ## 25 [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 } ] } ] } } ``` ## 26 [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" ] } ``` ## 27 [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 ## 28 [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" } } ``` ## 29 报告预览 > 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" } ``` 返回示例 ![ 微信图片_20250919094641_103_2.png ](http://f1-xyj.fangdeco.cn/attachment/2025/9/19/2LRN9SJUDx2/16b7f532b9b142b7af9e78ecc0d4170e.png) 宠物示例: ![ ](http://f1-xyj.fangdeco.cn/attachment/2025/9/23/2LYIk58dZYG/74547ae49660497f90c3db8806c87a72) ## 30 保存报告 > 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" } ``` 示例 ![ ](http://f1-xyj.fangdeco.cn/attachment/2025/9/19/2LRW3rk4TRY/74ef9c252fcb4627bafd24e0e0752204) ## 31 获取报告 > 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 ## 32 [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": {} } } ``` ## 33 [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": "" } ``` ## 34 [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": {} } } ``` ## 35 [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": {} } } ``` ## 36 [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 } ``` ## 37 [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" } ``` ## 38 [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": {} } } ``` ## 39 [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": {} } } ``` ## 40 获取dcm文件 > GET /api/v1/auth/image/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 文件 ``` ## 41 获取缩略图文件 > GET /api/v1/auth/image/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 文件 ```