跳转到主要内容

一个用于与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.projectsMIQA.get_project_from_id(id)MIQA.create_project(name)访问项目。
  • 可以通过Project.experimentsProject.get_experiment_by_id(id)Project.add_experiment(name)访问实验。
  • 可以通过Experiment.scansExperiment.get_scan_by_id(id)Experiment.add_scan(name, scan_type, [subject_id, session_id, scan_link])访问扫描。
  • 可以通过Scan.framesScan.add_frames_from_paths(paths)访问帧。
  • 可以通过Scan.decisionsScan.add_decision(decision, note, [present_artifacts, absent_artifacts])访问扫描决策。

print_all_objects:存储更多对象(即不是FrameScanDecision)的类有一个递归打印目标对象以下所有对象的函数。这是为了方便用户快速查看存储的对象。例如,对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 (6.7 kB 查看哈希值)

上传时间

由以下支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面