一个用于与MIQA API交互的Python库
项目描述
MIQA Python客户端
这个简单的Python库旨在允许MIQA实例的用户以编程方式与MIQA API交互,并执行他们可能在Web界面中无法完成的任务。
该库中类的结构紧密模仿MIQA中模型的结构,因此建议用户在使用Python客户端之前先了解这种结构。解释该结构的文档可以在https://openimaging.github.io/miqa/projects/找到。
总之,项目是作为实验组织桶的最顶层对象。实验是可能以某种方式相关的扫描集合。扫描是相关3D医学图像的集合。每个扫描必须至少有一个与之关联的图像或帧。一个扫描可以有多个帧,代表时间步或图像收集的其他第四维度。MIQA的目的是注释当前分类为可用、不可用或其他的扫描的质量。因此,扫描决策是一个存储这些确定的对象。一个扫描可以有零个或多个扫描决策。
用法
在example.py中展示了可用函数的示例用法。阅读这个示例是理解此客户端中函数用法的最有效方式。以下是对示例中找到的用法的进一步解释。
类说明
在MIQA Python客户端中,顶层类MIQA
指的是MIQA的一个实例。对于单个组织来说,这可能是唯一一个您将使用的活动实例。此类包含连接到API所需的信息。
每个MIQA
对象将包含一个Project
对象的集合,每个Project
对象将包含一个Experiment
对象的集合,每个Experiment
对象将包含一个Scan
对象的集合,每个Scan
对象将包含Frame
对象和ScanDecision
对象的集合。
下表显示了这些类上的可用属性和函数。属性与API返回的属性完全相同。
类名 | 属性 | 函数 |
---|---|---|
MIQA | url, headers, token, version, projects, artifact_options | login, get_config, get_all_objects, get_project_by_id, create_project, print_all_objects |
Project | id, name, creator, experiments, total_scans, total_complete, MIQA | get_experiment_by_id, add_experiment, print_all_objects, delete |
Experiment | id, name, scans, project, note | get_scan_by_id, add_scan, update_note, print_all_objects |
Scan | id, name, experiment, decisions, frames, scan_type, subject_id, session_id, scan_link | add_frames_from_paths, add_decision, print_all_objects |
Frame | id, frame_number, frame_evaluation, extension, download_url | |
ScanDecision | id, decision, creator, created, note, user_identified_artifacts, location |
函数说明
对象层次结构的每个级别都可以从其上一级别访问。
- 可以通过
MIQA.projects
、MIQA.get_project_from_id(id)
或MIQA.create_project(name)
访问项目。 - 可以通过
Project.experiments
、Project.get_experiment_by_id(id)
或Project.add_experiment(name)
访问实验。 - 可以通过
Experiment.scans
、Experiment.get_scan_by_id(id)
或Experiment.add_scan(name, scan_type, [subject_id, session_id, scan_link])
访问扫描。 - 可以通过
Scan.frames
或Scan.add_frames_from_paths(paths)
访问帧。 - 可以通过
Scan.decisions
或Scan.add_decision(decision, note, [present_artifacts, absent_artifacts])
访问扫描决策。
print_all_objects:存储更多对象(即不是Frame
或ScanDecision
)的类有一个递归打印目标对象以下所有对象的函数。这是为了方便用户快速查看存储的对象。例如,对MIQA对象调用print_all_objects
将产生类似以下输出的内容
MIQA Instance http://localhost:8000/api/v1
Project Guys
Experiment IXI002
Scan 0828-DTI
|Decisions: []
|Frames: [Frame 0, Frame 1, Frame 2, Frame 3, Frame 4, Frame 5, Frame 6, Frame 7, Frame 8, Frame 9, Frame 10, Frame 11, Frame 12, Frame 13, Frame 14, Frame 15, Frame 16]
Scan 0828-MRA
|Decisions: []
|Frames: [Frame 0]
Scan 0828-PD
|Decisions: []
|Frames: [Frame 0]
Scan 0828-T1
|Decisions: []
|Frames: [Frame 0]
Scan 0828-T2
|Decisions: []
|Frames: [Frame 0]
Experiment IXI016
Scan 0697-MRA
|Decisions: []
|Frames: [Frame 0]
Scan 0697-PD
|Decisions: []
|Frames: [Frame 0]
Scan 0697-T1
|Decisions: []
|Frames: [Frame 0]
Scan 0697-T2
|Decisions: []
|Frames: [Frame 0]
而调用Scan对象的print_all_objects
将产生一个更短的输出
Scan 0697-T2
|Decisions: []
|Frames: [Frame 0]
项目详情
miqa_python_client-0.1.2.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | d23fe5734877089eca7bd91337be68afc88a0f8a700e6e106d036addf5e392d8 |
|
MD5 | 57971e3bb25b3dd787a08e2697d940ac |
|
BLAKE2b-256 | 8af0617a999831456e620c3e64a17f171b3f12992484ff6736d731d1fef74a27 |