#dicom #command-line #command-line-interface #cli #orthanc

bin+lib orthanc-cli

Orthanc 的命令行界面,一个开源、轻量级的 DICOM 服务器

5 个版本 (3 个重大更新)

0.4.0 2021 年 3 月 30 日
0.3.0 2021 年 1 月 13 日
0.2.0 2021 年 1 月 9 日
0.1.1 2020 年 12 月 20 日
0.1.0 2020 年 12 月 20 日

#2717命令行工具

Unlicense 协议

190KB
4.5K SLoC

Rust 3.5K SLoC // 0.0% comments BASH 1K SLoC Shell 51 SLoC // 0.1% comments

crate test codecov license

orthanc-cli

orthanc-cliOrthanc 的命令行界面,Orthanc 是一个开源、轻量级的 DICOM 服务器。

兼容性

orthanc-cli 通常支持与其底层 orthanc-rs crate 相同的 Orthanc 版本。有关详细信息,请参阅 兼容性

安装

安装 orthanc-cli 有多种不同的方法。

  • 使用 cargo

    $ cargo install orthanc-cli
    
  • 从 GitHub 发布页面手动下载发布包 页面

自动完成

orthanc-cli 包含为 Bash、fish 和 Zsh 预建的自动完成文件。有关如何使用这些文件的信息,请参阅 此处

配置

orthanc-cli 需要配置一些设置才能与 Orthanc 服务器通信:Orthanc 服务器地址、用户名和密码(如果服务器需要身份验证)。

Orthanc 服务器地址

可以使用 -s/--server 命令行选项设置 Orthanc 服务器地址。该选项的值是一个 HTTP(S) URL,例如 http://127.0.0.1:8042。或者,如果您不喜欢每次调用命令时都输入该选项,您可以将环境变量 ORC_ORTHANC_SERVER 设置。

$ export ORC_ORTHANC_SERVER=http://127.0.0.1:8042

Orthanc 服务器身份验证

如果您正在使用的Orthanc服务器需要身份验证,您可以通过命令行选项提供用户名和密码:-u/--username-p/--password。类似于服务器地址,这些也可以设置为环境变量 ORC_ORTHANC_USERNAMEORC_ORTHANC_PASSWORD

$ export ORC_ORTHANC_USERNAME=orthanc
$ export ORC_ORTHANC_PASSWORD=orthanc

用法

帮助

要获取使用的一般信息,运行 orthanc --help。这将列出选项、标志和子命令

$ orthanc --help
orthanc-cli 0.4.0
Andrii Yurchuk <[email protected]>
Command-line interface for Orthanc, an open-source, lightweight DICOM server

USAGE:
    orthanc [OPTIONS] <SUBCOMMAND>

FLAGS:
    -h, --help       Prints help information
    -V, --version    Prints version information

OPTIONS:
    -s, --server <SERVER>        Orthanc server address
    -u, --username <USERNAME>    Orthanc username
    -p, --password <PASSWORD>    Orthanc password

SUBCOMMANDS:
    patient     Patient-level commands
    study       Study-level commands
    series      Series-level commands
    instance    Instance-level commands
    modality    Modality-level commands
    help        Prints this message or the help of the given subcommand(s)

每个子命令都有其自己的帮助信息

$ orthanc study --help
orthanc-study
Study-level commands

USAGE:
    orthanc study <SUBCOMMAND>

FLAGS:
    -h, --help       Prints help information
    -V, --version    Prints version information

SUBCOMMANDS:
    list         List all studies
    show         Show study details
    search       Search for studies
    anonymize    Anonymize study
    modify       Modify study
    download     Download study
    delete       Delete study
    help         Prints this message or the help of the given subcommand(s)

子命令可能有嵌套的子命令,这些子命令也响应于 --help。如果不确定,可以将 --help 添加到命令中,以查看如何使用它。

实体及其 ID

orthanc-cli 将患者、研究、系列和实例称为 实体(不要与 应用程序实体 混淆)。您可能会在文档或命令行选项或标志的名称中遇到这种命名。

与Orthanc网络界面类似,orthanc-cli 主要使用唯一标识符(ID)来引用 实体(患者、研究、系列等)。Orthanc服务器为每个实体分配一个唯一的标识符(ID),其外观类似于以下内容

22c54cb6-28302a69-3ff454a3-676b98f4-b84cd80a

例如,在研究列表中,标识符位于第一列(ID)

$ orthanc study list
 ID                                             PatientID   AccessionNumber   StudyInstanceUID              StudyDescription   StudyDate   StudyTime   Number of Series
------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 ab7a6e26-18072a37-5f2a2210-8a7f0823-f2fa9119   patient_2   REMOVED           1.3.46.670589.11.1.5.0.6560   Study 1            20110101    140606      2
 cbec5098-53cd29f5-86d01e4b-c6e76386-709f00a6   patient_1   REMOVED           1.3.46.670589.11.1.5.0.7116   Study 1            20120101    130431      2
 8c69229f-eba0eccb-2aa35808-e26bf10a-69375f79   patient_1   REMOVED           1.3.46.670589.11.3540642177   Study 2            20110101    084707      2

当您需要在 orthanc-cli 命令中的任何地方引用一个实体时,请使用其Orthanc ID

$ orthanc study show cbec5098-53cd29f5-86d01e4b-c6e76386-709f00a6
 ID                 cbec5098-53cd29f5-86d01e4b-c6e76386-709f00a6
 Patient ID         8be8a583-193f48d2-d9b8dd53-adc11459-e46c7c27
 PatientID          patient_1
 StudyID            402411870
 AccessionNumber    REMOVED
 StudyInstanceUID   1.3.46.670589.11.1.5.0.7116.2012100313043060185
 StudyDescription   Study 1
 StudyDate          20120101
 StudyTime          130431
 Number of Series   2

orthanc-cli 允许在Orthanc服务器中搜索实体。您可以使用 orthanc <ENTITY> search --query <QUERY> 搜索患者、研究、系列和实例。每个命令将返回您搜索的实体列表,例如,orthanc patient search 将返回患者列表,orthanc study search - 研究列表等。

--query 命令行选项的值是空格分隔的DICOM标签对:TagName=TagValue。例如

$ orthanc series search --query BodyPartExamined=PINKY
 ID                                             SeriesInstanceUID                SeriesDescription   Modality   BodyPartExamined   Number of Instances
-------------------------------------------------------------------------------------------------------------------------------------------------------
 33209de2-5b2e7753-9537bc4d-4bd166f6-fb48d303   1.2.276.0.7230010.3.1.3.816750   Series 1            MR         PINKY              1
 dab1ca97-70f554a9-c8e83dec-17216f2c-88148c44   1.2.276.0.7230010.3.1.3.816746   Series 1            MR         PINKY              1

某些DICOM标签的值允许使用通配符。更多关于这个的信息 在这里

StudyDescription 中的通配符使用示例

$ orthanc study search --query AccessionNumber=REMOVED StudyDescription=*1
 ID                                             PatientID   AccessionNumber   StudyInstanceUID                 StudyDescription   StudyDate   StudyTime   Number of Series
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 342f1834-e4658a76-2f7f8dd6-5f4034dd-eee91323   patient_1   REMOVED           1.2.276.0.7230010.3.1.2.816848   Study 1            20110101    140606      2
 92be942a-744ab613-d5ea8167-5b11a0c9-670f0b10   patient_1   REMOVED           1.2.276.0.7230010.3.1.2.816853   Study 1            20110101    140606      2
 ab7a6e26-18072a37-5f2a2210-8a7f0823-f2fa9119   patient_2   REMOVED           1.3.46.670589.11.1.5.0.6560.20   Study 1            20110101    140606      4

匿名化和修改实体

orthanc-cli 允许修改和匿名化实体。修改需要您指定实体应如何修改,而匿名化则不需要。对于匿名化和修改,您可以使用命令行选项或配置文件来配置过程。

请注意,匿名化和修改都会创建一个被匿名化/修改的实体的副本,而不是就地更改实体。

匿名化

实体的匿名化可以带配置或不带配置地进行。如果不带配置进行,匿名化将根据 应用级保密性配置文件属性 处理DICOM标签

$ orthanc study anonymize cbec5098-53cd29f5-86d01e4b-c6e76386-709f00a6
 New study ID   bb8802bf-fa9621bd-e43406cf-707a3cfb-7786ec34
 Patient ID     6cf95a77-4112b9d3-905c17f0-d48ee8e1-b9e6d482

要更改在匿名化期间处理特定DICOM标签的方式,您可以使用命令行选项

  • --replace:指定的DICOM标签的值将被替换为指定的值
  • --keep:指定的DICOM标签的值将保持不变(即使它们在上表中指定为要删除)
  • --keep-private-tags:是否保留私有DICOM标签的值(如果省略,则删除私有DICOM标签)

上述命令行选项的使用方法如下

$ orthanc study anonymize cbec5098-53cd29f5-86d01e4b-c6e76386-709f00a6 --replace PatientName="Rick Sanchez" PatientBirthDate=19700101 --keep StudyDate StudyTime --keep-private-tags
 New study ID   72b2983e-0196e005-7102f94f-4bf2161c-18d33b59
 Patient ID     1209a543-256b97d2-639bebf1-c3c076e7-0b4b8a3f

如果您打算对超过一对的DICOM标签进行特殊处理,将它们全部写入命令行可能会变得不方便。为此,您可以使用匿名化配置文件。配置文件必须使用YAML格式,并可能包含以下字段(具体含义请见上方)

  • 替换
  • 保留
  • 保留私有标签

示例

replace:
  PatientName: Rick Sanchez
  PatientBirthDate: 19700101
keep:
  - StudyDate
  - StudyTime
keep_private_tags: true

此类配置文件的使用方法如下

$ orthanc study anonymize cbec5098-53cd29f5-86d01e4b-c6e76386-709f00a6 --config /tmp/anonymization_conf.yml
 New study ID   22fc5ba2-650a6ef5-76f78251-af82a47f-87ce33f4
 Patient ID     8d8454ca-3c70d505-3d4ddced-792feac4-7c992741

修改

为了修改一个实体,您需要指定它应该如何修改。这可以通过以下命令行选项来完成

  • --replace:指定的DICOM标签的值将被替换为指定的值
  • --remove:将移除指定的DICOM标签

上述命令行选项的使用方法如下

$ orthanc study modify cbec5098-53cd29f5-86d01e4b-c6e76386-709f00a6 --replace PatientName="Rick Sanchez" PatientBirthDate=19700101 --remove StudyDate StudyTime
 New study ID   24510c21-3b10e0ac-268f7570-b8c01c22-77e19a41
 Patient ID     b64615f0-5cac7527-68e751f7-c22d822c-e4ff1e1d

与匿名化过程类似,如果您需要修改大量的DICOM标签,可以使用配置文件进行修改。配置文件必须使用YAML格式,并可能包含以下字段

  • 替换
  • 移除

示例

replace:
  PatientName: Rick Sanchez
  PatientBirthDate: 19700101
remove:
  - StudyDate
  - StudyTime

此类配置文件的使用方法如下

$ orthanc study modify cbec5098-53cd29f5-86d01e4b-c6e76386-709f00a6 --config /tmp/modification_conf.yml
 New study ID   db0a9bc8-7b0362ca-f361c32b-ba62bfd2-44ff849b
 Patient ID     8be8a583-193f48d2-d9b8dd53-adc11459-e46c7c27

依赖

~8–13MB
~268K SLoC