最終更新: a few seconds agoRemove Netlify-related code from main (grafted, HEAD)

シリーズのインポート

概要

DICOM シリーズを CIRCUS システムにインポートする方法として、以下の数通りを準備する。

  1. multipart/form-data を用いるアップロード(複数ファイル対応。主にブラウザ経由)
  2. application/octet-strem を用いる単一ファイルのアップロード(S3互換を目指す。主にAPI経由)

前提知識

  • "スタディ" とは1つ以上の "シリーズ" の集合、シリーズとは1つ以上の "イメージ" の集合である。具体的にはスタディとは「○年○月○日の○○さんの上腹部MRI検査」といったもの。シリーズとは、「そのスタディ中の1回の息止めで撮影した50枚の一連の画像(イメージ)」といったもの。
  • 大抵の場合、1枚のイメージが1個の DICOM ファイル に対応する。ただし動画 (MP4) 系の DICOM シリーズではこの前提が崩れるのだが、CIRCUS では扱わない。
  • すべてのDICOMシリーズには「Series Instance UID」というグローバルに(全世界で)一意の識別子がついている。本ドキュメントでは "シリーズUID", "Series UID" などと略記する。
  • すべてのDICOM画像には「SOP Instance UID」というグローバルに一意の識別子がついているが、すべての画像に対してこれを全部保存していると冗長なので、これは使用しない。代わりに、「Instance Number」と呼ばれるシリーズ内でイメージを区別する番号を使用する。h本ドキュメントでは Instance Number を "イメージ番号" とも呼ぶ。イメージ番号は殆どの場合は 1 から始まる連番であるが、そうでないこともある。何にせよ当面の間、CIRCUS ではイメージ番号が1からの連番となっている画像以外は扱わない。

マルチパートによるアップロード

Curlを使ってマルチパートで送信する場合

まず認証のためのトークンの取得:

% node circus add-permanent-token <ユーザ名>

このトークンは再表示できないので注意。

次に Curl でファイルを送信:

% curl \
  -H "Authorization: Bearer <トークン>" \
  -X POST http://localhost/api/series/domain/<ドメイン> \
  -F files=@<DICOMファイルパス1> \
  -F files=@<DICOMファイルパス2>

ファイルとして単体の *.dcm ファイルのほか、*.zip を指定可能。

Octet-stream によるアップロード

AWS S3と似たAPIで送信できることが目標。未実装。