storescp: DICOM ストレージ(C-STORE)SCP
書式
storescp [options] [port]
説明
storescp アプリケーションは、Storage サービスクラスのサービスクラスプロバイダ(SCP)を実装します。指定した TCP/IP ポートで Storage サービスクラスユーザー(SCU)からのアソシエーション要求を待ち受け、DICOM 画像とその他の DICOM 複合オブジェクトの両方を受信できます。また storescp は、Verification サービスクラスの SCP もサポートします。
引数
port tcp/ip port number to listen on
(this parameter is required unless the --inetd option is specified)
オプション
全般オプション
-h --help- print this help text and exit
--version- print version information and exit
--arguments- print expanded command line arguments
-q --quiet- quiet mode, print no warnings and errors
-v --verbose- verbose mode, print processing details
-d --debug- debug mode, print debug information
-ll --log-level [l]evel: string constant- (fatal, error, warn, info, debug, trace) use level l for the logger
-lc --log-config [f]ilename: string- use config file f for the logger
+v --verbose-pc- show presentation contexts in verbose mode
マルチプロセスオプション
--single-process- single process mode (default)
--fork- fork child process for each association
--max-associations [m]ax: integer (default: unlimited)- limit number of parallel associations to m
ネットワークオプション
-i4 --ipv4- use IPv4 only (default)
-i6 --ipv6- use IPv6 only
-i0 --ip-auto- use IPv6/IPv4 dual stack association negotiation profile from configuration file:
-xf --config-file [f]ilename [p]rofile: string- use profile p from config file f preferred network transfer syntaxes (not with --config-file):
+x= --prefer-uncompr- prefer explicit VR local byte order (default)
+xe --prefer-little- prefer explicit VR little endian TS
+xb --prefer-big- prefer explicit VR big endian TS
+xs --prefer-lossless- prefer default JPEG lossless TS
+xy --prefer-jpeg8- prefer default JPEG lossy TS for 8 bit data
+xx --prefer-jpeg12- prefer default JPEG lossy TS for 12 bit data
+xv --prefer-j2k-lossless- prefer JPEG 2000 lossless TS
+xw --prefer-j2k-lossy- prefer JPEG 2000 lossy TS
+xt --prefer-jls-lossless- prefer JPEG-LS lossless TS
+xu --prefer-jls-lossy- prefer JPEG-LS lossy TS
+xm --prefer-mpeg2- prefer MPEG2 Main Profile @ Main Level TS
+xh --prefer-mpeg2-high- prefer MPEG2 Main Profile @ High Level TS
+xn --prefer-mpeg4- prefer MPEG4 AVC/H.264 High Profile / Level 4.1 TS
+xl --prefer-mpeg4-bd- prefer MPEG4 AVC/H.264 BD-compatible HP / Level 4.1 TS
+x2 --prefer-mpeg4-2-2d- prefer MPEG4 AVC/H.264 HP / Level 4.2 TS for 2D Videos
+x3 --prefer-mpeg4-2-3d- prefer MPEG4 AVC/H.264 HP / Level 4.2 TS for 3D Videos
+xo --prefer-mpeg4-2-st- prefer MPEG4 AVC/H.264 Stereo HP / Level 4.2 TS
+x4 --prefer-hevc- prefer HEVC/H.265 Main Profile / Level 5.1 TS
+x5 --prefer-hevc10- prefer HEVC/H.265 Main Profile / Level 5.1 TS
+xr --prefer-rle- prefer RLE lossless TS
+xd --prefer-deflated- prefer deflated explicit VR little endian TS
+xi --implicit- accept implicit VR little endian TS only
+xa --accept-all- accept all supported transfer syntaxes network host access control (tcp wrapper):
-ac --access-full- accept connections from any host (default)
+ac --access-control- enforce host access control rules other network options:
-id --inetd- run from inetd super server (not with --fork) # not available on all systems (e.g. not on Windows)
-ts --socket-timeout [s]econds: integer (default: 60)- timeout for network socket (0 for none)
-ta --acse-timeout [s]econds: integer (default: 30)- timeout for ACSE messages
-td --dimse-timeout [s]econds: integer (default: unlimited)- timeout for DIMSE messages
-aet --aetitle [a]etitle: string- set my AE title (default: STORESCP)
-pdu --max-pdu [n]umber of bytes: integer (4096..131072)- set max receive pdu to n bytes (default: 16384)
-dhl --disable-host-lookup- disable hostname lookup
--refuse- refuse association
--reject- reject association if no implementation class UID
--ignore- ignore store data, receive but do not store
--sleep-after [s]econds: integer- sleep s seconds after store (default: 0)
--sleep-during [s]econds: integer- sleep s seconds during store (default: 0)
--abort-after- abort association after receipt of C-STORE-RQ (but before sending response)
--abort-during- abort association during receipt of C-STORE-RQ
-pm --promiscuous- promiscuous mode, accept unknown SOP classes (not with --config-file)
-up --uid-padding- silently correct space-padded UIDs
トランスポート層セキュリティ(TLS)オプション
-tls --disable-tls- use normal TCP/IP connection (default)
+tls --enable-tls [p]rivate key file, [c]ertificate file: string- use authenticated secure TLS connection private key password (only with --enable-tls):
+ps --std-passwd- prompt user to type password on stdin (default)
+pw --use-passwd [p]assword: string- use specified password
-pw --null-passwd- use empty string as password key and certificate file format:
-pem --pem-keys- read keys and certificates as PEM file (default)
-der --der-keys- read keys and certificates as DER file certification authority:
+cf --add-cert-file [f]ilename: string- add certificate file to list of certificates
+cd --add-cert-dir [d]irectory: string- add certificates in d to list of certificates
+crl --add-crl-file [f]ilename: string- add certificate revocation list file (implies --enable-crl-vfy)
+crv --enable-crl-vfy- enable leaf CRL verification
+cra --enable-crl-all- enable full chain CRL verification security profile:
+ph --list-profiles- list supported TLS profiles and exit
+pg --profile-8996- BCP 195 RFC 8996 TLS Profile (default)
+pm --profile-8996-mod- Modified BCP 195 RFC 8996 TLS Profile # only available if underlying TLS library supports # all TLS features required for this profile
+py --profile-bcp195-nd- Non-downgrading BCP 195 TLS Profile (retired)
+px --profile-bcp195- BCP 195 TLS Profile (retired)
+pz --profile-bcp195-ex- Extended BCP 195 TLS Profile (retired)
+pb --profile-basic- Basic TLS Secure Transport Connection Profile (retired) # only available if underlying TLS library supports 3DES
+pa --profile-aes- AES TLS Secure Transport Connection Profile (retired)
+pn --profile-null- Authenticated unencrypted communication (retired, was used in IHE ATNA) ciphersuite:
+cc --list-ciphers- list supported TLS ciphersuites and exit
+cs --cipher [c]iphersuite name: string- add ciphersuite to list of negotiated suites
+dp --dhparam [f]ilename: string- read DH parameters for DH/DSS ciphersuites server name indication:
--no-sni- do not use SNI (default)
--expect-sni [s]erver name: string- expect requests for server name s pseudo random generator:
+rs --seed [f]ilename: string- seed random generator with contents of f
+ws --write-seed- write back modified seed (only with --seed)
+wf --write-seed-file [f]ilename: string (only with --seed)- write modified seed to file f peer authentication:
-rc --require-peer-cert- verify peer certificate, fail if absent (default)
-vc --verify-peer-cert- verify peer certificate if present
-ic --ignore-peer-cert- don't verify peer certificate
出力オプション
-od --output-directory [d]irectory: string (default: ".")- write received objects to existing directory d bit preserving mode:
-B --normal- allow implicit format conversions (default)
+B --bit-preserving- write data exactly as read output file format:
+F --write-file- write file format (default)
-F --write-dataset- write data set without file meta information output transfer syntax (not with --bit-preserving or compressed transmission):
+t= --write-xfer-same- write with same TS as input (default)
+te --write-xfer-little- write with explicit VR little endian TS
+tb --write-xfer-big- write with explicit VR big endian TS
+ti --write-xfer-implicit- write with implicit VR little endian TS
+td --write-xfer-deflated- write with deflated explicit VR little endian TS post-1993 value representations (not with --bit-preserving):
+u --enable-new-vr- enable support for new VRs (UN/UT) (default)
-u --disable-new-vr- disable support for new VRs, convert to OB group length encoding (not with --bit-preserving):
+g= --group-length-recalc- recalculate group lengths if present (default)
+g --group-length-create- always write with group length elements
-g --group-length-remove- always write without group length elements length encoding in sequences and items (not with --bit-preserving):
+e --length-explicit- write with explicit lengths (default)
-e --length-undefined- write with undefined lengths data set trailing padding (not with --write-dataset or --bit-preserving):
-p --padding-off- no padding (default)
+p --padding-create [f]ile-pad [i]tem-pad: integer- align file on multiple of f bytes and items on multiple of i bytes handling of defined length UN elements:
-uc --retain-un- retain elements as UN (default)
+uc --convert-un- convert to real VR if known deflate compression level (only with --write-xfer-deflated/same):
+cl --compression-level [l]evel: integer (default: 6)- 0=uncompressed, 1=fastest, 9=best compression sorting into subdirectories (not with --bit-preserving):
-ss --sort-conc-studies [p]refix: string- sort studies using prefix p and a timestamp
-su --sort-on-study-uid [p]refix: string- sort studies using prefix p and the Study Instance UID
-sp --sort-on-patientname- sort studies using the Patient's Name and a timestamp filename generation:
-uf --default-filenames- generate filename from instance UID (default)
+uf --unique-filenames- generate unique filenames
-tn --timenames- generate filename from creation time
-fe --filename-extension [e]xtension: string- append e to all filenames
イベントオプション
-xcr --exec-on-reception [c]ommand: string- execute command c after having received and processed one C-STORE-RQ message
-xcs --exec-on-eostudy [c]ommand: string- execute command c after having received and processed all C-STORE-RQ messages that belong to one study
-rns --rename-on-eostudy- having received and processed all C-STORE-RQ messages that belong to one study, rename output files according to a certain pattern
-tos --eostudy-timeout [t]imeout: integer- specifies a timeout of t seconds for end-of-study determination
-xs --exec-sync- execute command synchronously in foreground
注記
上記のオプションは、その大半について意味するところが明確です。ただし一部のオプションは非常に特殊なので、ここで詳しく説明します。
–sort-conc-studies オプションを使うと、受信したすべての DICOM オブジェクトをサブディレクトリへ振り分けて保存できます。振り分けは、各オブジェクトが属するスタディ単位で行われます。すなわち、同じスタディに属するオブジェクトは同一のサブディレクトリに格納されます。一般に、DICOM オブジェクト d_n+1 が DICOM オブジェクト d_n と同じスタディに属するとみなされるのは、d_n と d_n+1 の Study Instance UID 属性の値が完全に一致する場合に限られます。生成されるサブディレクトリ名は、このオプションの引数として渡したプレフィックス p で常に始まります。プレフィックスに加えて、サブディレクトリ名には当該スタディの最初の DICOM オブジェクトを受信した日時のタイムスタンプ情報が含まれます。具体的には、サブディレクトリ名は次のパターンに従って決定されます。
[prefix]_[YYYYMMDD]_[HHMMSSPPP]
ここで YYYY は年(4 桁)、MM は月(01〜12)、DD は日(01〜31)、HH は時(00〜23)、MM は分(00〜59)、SS は秒(00〜59)、PPP はミリ秒(000〜999)を表します。プレフィックスが空文字列の場合、先頭の "_" は省略されます。
他の –sort-xxx オプションも同様に動作しますが、サブディレクトリ名の作り方だけが異なります。–sort-on-study-uid オプションでは、パターンは
[prefix]_[StudyInstanceUID]
であり、–sort-on-patientname オプションでは
[PatientName]_[YYYYMMDD]_[HHMMSSPPP]
となります。ここで 'PatientName' は、データセットに該当データ要素が空または存在しない場合 "ANONYMOUS" に置き換えられます。患者名が存在する場合は、ASCII 文字のみを使うように変換されます。なお、この処理でサポートされるのは DICOM のデフォルト文字セット(ASCII、すなわち Specific Character Set 属性にエントリが無い状態)と Latin-1(Specific Character Set の値が "ISO_IR 100")のみである点に注意してください。別の文字セットが見つかり、かつ患者名に非 ASCII 文字が含まれる場合は、警告が表示され、ファイルに Latin-1 文字セットが設定されているものとして変換が行われます。この結果、読めない、あるいは想定外の患者名ディレクトリや挙動になることがあります。したがって、–sort-on-patientname は Latin-1 または ASCII の患者名のみを受信すると見込まれる場合に限って使うのが望ましいといえます。
–sort-on-study-uid オプションでは、同じスタディに属するすべての DICOM オブジェクトに対して同一のサブディレクトリが使われます。すなわち、他の –sort-xxx オプションとは異なり、スタディのディレクトリがいつ完結するかは保証されません。
–timenames オプションは、storescp がファイルをディスクに書き込む時刻に対応するタイムスタンプからファイル名を生成します。形式は
[YYYYMMDDHHMMSSPPP]_[SERIALNO].[MD]
であり、YYYY、MM、DD、HH、MM、SS、PPP は上述のとおりに解釈されます。同一時刻に複数のファイルが生成される場合は、SERIALNO が挿入されます。これは 4 桁の連番(0000〜9999)です。ある特定の時刻に最初に生成されるファイルには、番号(および "")はまったく挿入されません。MD はファイルに格納されたオブジェクトの種類を表す識別コード(2 文字)です(–rename-on-eostudy_ の注記を参照)。
–filename-extension オプションは、指定したサフィックスを各ファイル名に付加します(ドット "." は自動では付きません)。8 文字の長さを保つため、このサフィックスは –rename-on-eostudy で生成されたファイル名には付加されません。
–exec-on-reception オプションを使うと、(C-STORE-RQ メッセージを通じて)1 つの DICOM オブジェクトを受信・処理した後に、特定のコマンドラインを実行できます。実行するコマンドラインはこのオプションの引数として渡します。指定したコマンドラインには、実行時に置換されるいくつかのプレースホルダを含められます。
- #p: 直前の DICOM オブジェクトを格納した出力ディレクトリへの完全パス(ただし –ignore オプション使用時は利用不可)
- #f: 現在の出力ファイルのファイル名(ただし –ignore オプション使用時は利用不可)
- #a: 通信相手の Storage SCU の呼び出し側アプリケーションエンティティタイトル
- #c: 通信相手の Storage SCU が storescp を指定するために使った呼び出され側アプリケーションエンティティタイトル
- #r: 呼び出し側のプレゼンテーションアドレス、すなわち通信相手の Storage SCU のホスト名または IP アドレス
指定したコマンドラインは別プロセスとして実行されるため、storescp の処理が止められることはありません。この挙動は –exec-sync オプションで変更できます。
なお、アプリケーションエンティティタイトル('#a' と '#c')は、引数をシェルに渡す際の望ましくない挙動を避けるため「サニタイズ」されます。通常使われない文字は '_' に置き換えられます。この場合、ロガーへ警告が出力されます。
–exec-on-eostudy オプションを使うと、1 つのスタディに属するすべての DICOM オブジェクトを storescp が受信し終えたときに、特定のコマンドラインを実行できます。–exec-on-reception と同じプレースホルダを使えますが、'#f' は例外でサポートされません。storescp は、別のスタディに属するオブジェクトを受信するか、–eostudy-timeout で指定したタイムアウトが発生した時点で、そのスタディが完結したとみなします。–rename-on-eostudy オプションが有効な場合、外部コマンドの実行前にリネームが行われます。
–rename-on-eostudy オプションは前述の –sort-xxx オプションを前提とするため、これらのいずれかと組み合わせた場合にのみ使用できます。ユーザーが –rename-on-eostudy オプションを指定し、かつ storescp が特定のスタディに属するすべての DICOM オブジェクトを受信し終えたと判断すると、直前のスタディに属するすべての DICOM ファイルが対応する出力ディレクトリ内でリネームされます。リネーム後のファイル名は、次のパターンを用いて算出されます。
[prefix][consecutive numbering]
ここで [prefix] はファイルに格納された DICOM オブジェクトの種類を示す 2 文字のプレフィックス、[consecutive numbering] は "000001" から始まる連番の 6 桁の番号です。一般に、1 つのスタディに属するすべての DICOM オブジェクトを storescp が受信し終えたかどうかは、連続して受信した 2 つの DICOM オブジェクト d_n と d_n+1 の Study Instance UID 属性の値が一致しない場合に限り、肯定的に判断されます。この場合、d_n+1 は新しいスタディに属するとみなされます。
–eostudy-timeout オプションを使うと、1 つのスタディに属するすべての DICOM オブジェクトを storescp が受信し終えたかどうかを判断する処理を変更できます。この性質上、このオプションは少なくとも次のいずれかのオプションと組み合わせた場合にのみ使用できます。–sort-xxx、–exec-on-eostudy、–rename-on-eostudy です。–eostudy-timeout オプションを指定すると、連続して受信した 2 つの DICOM オブジェクト d_n と d_n+1 の Study Instance UID 属性の値が一致しない場合に加え、DICOM オブジェクト d_n を受信してから x 秒以内にネットワーク経由で他の DICOM オブジェクトを受信しなかった場合にも、スタディが終了したとみなされます。この時間幅の長さを決める秒数 x は、このオプションの引数として渡す必要がある点に注意してください。
なお、連続する 2 つのネットワーク接続が同じスタディのオブジェクトを転送することがあります。スタディは、別のスタディのオブジェクトを受信するか、–eostudy-timeout に達した時点で初めて完結したとみなされます。この理由から、–fork および –inet オプションは –exec-on-eostudy、–rename-on-eostudy、–sort-conc-studies と併用できません。
DICOM 適合性
storescp アプリケーションは、SCP として次の SOP クラスをサポートします。
VerificationSOPClass 1.2.840.10008.1.1
RETIRED_StoredPrintStorage 1.2.840.10008.5.1.1.27
RETIRED_HardcopyGrayscaleImageStorage 1.2.840.10008.5.1.1.29
RETIRED_HardcopyColorImageStorage 1.2.840.10008.5.1.1.30
ComputedRadiographyImageStorage 1.2.840.10008.5.1.4.1.1.1
DigitalXRayImageStorageForPresentation 1.2.840.10008.5.1.4.1.1.1.1
DigitalXRayImageStorageForProcessing 1.2.840.10008.5.1.4.1.1.1.1.1
DigitalMammographyXRayImageStorageForPresentation 1.2.840.10008.5.1.4.1.1.1.2
DigitalMammographyXRayImageStorageForProcessing 1.2.840.10008.5.1.4.1.1.1.2.1
DigitalIntraOralXRayImageStorageForPresentation 1.2.840.10008.5.1.4.1.1.1.3
DigitalIntraOralXRayImageStorageForProcessing 1.2.840.10008.5.1.4.1.1.1.3.1
CTImageStorage 1.2.840.10008.5.1.4.1.1.2
EnhancedCTImageStorage 1.2.840.10008.5.1.4.1.1.2.1
LegacyConvertedEnhancedCTImageStorage 1.2.840.10008.5.1.4.1.1.2.2
RETIRED_UltrasoundMultiframeImageStorage 1.2.840.10008.5.1.4.1.1.3
UltrasoundMultiframeImageStorage 1.2.840.10008.5.1.4.1.1.3.1
MRImageStorage 1.2.840.10008.5.1.4.1.1.4
EnhancedMRImageStorage 1.2.840.10008.5.1.4.1.1.4.1
MRSpectroscopyStorage 1.2.840.10008.5.1.4.1.1.4.2
EnhancedMRColorImageStorage 1.2.840.10008.5.1.4.1.1.4.3
LegacyConvertedEnhancedMRImageStorage 1.2.840.10008.5.1.4.1.1.4.4
RETIRED_NuclearMedicineImageStorage 1.2.840.10008.5.1.4.1.1.5
RETIRED_UltrasoundImageStorage 1.2.840.10008.5.1.4.1.1.6
UltrasoundImageStorage 1.2.840.10008.5.1.4.1.1.6.1
EnhancedUSVolumeStorage 1.2.840.10008.5.1.4.1.1.6.2
PhotoacousticImageStorage 1.2.840.10008.5.1.4.1.1.6.3
SecondaryCaptureImageStorage 1.2.840.10008.5.1.4.1.1.7
MultiframeSingleBitSecondaryCaptureImageStorage 1.2.840.10008.5.1.4.1.1.7.1
MultiframeGrayscaleByteSecondaryCaptureImageStorage 1.2.840.10008.5.1.4.1.1.7.2
MultiframeGrayscaleWordSecondaryCaptureImageStorage 1.2.840.10008.5.1.4.1.1.7.3
MultiframeTrueColorSecondaryCaptureImageStorage 1.2.840.10008.5.1.4.1.1.7.4
RETIRED_StandaloneOverlayStorage 1.2.840.10008.5.1.4.1.1.8
RETIRED_StandaloneCurveStorage 1.2.840.10008.5.1.4.1.1.9
DRAFT_WaveformStorage 1.2.840.10008.5.1.4.1.1.9.1
TwelveLeadECGWaveformStorage 1.2.840.10008.5.1.4.1.1.9.1.1
GeneralECGWaveformStorage 1.2.840.10008.5.1.4.1.1.9.1.2
AmbulatoryECGWaveformStorage 1.2.840.10008.5.1.4.1.1.9.1.3
General32BitECGWaveformStorage 1.2.840.10008.5.1.4.1.1.9.1.4
HemodynamicWaveformStorage 1.2.840.10008.5.1.4.1.1.9.2.1
CardiacElectrophysiologyWaveformStorage 1.2.840.10008.5.1.4.1.1.9.3.1
BasicVoiceAudioWaveformStorage 1.2.840.10008.5.1.4.1.1.9.4.1
GeneralAudioWaveformStorage 1.2.840.10008.5.1.4.1.1.9.4.2
ArterialPulseWaveformStorage 1.2.840.10008.5.1.4.1.1.9.5.1
RespiratoryWaveformStorage 1.2.840.10008.5.1.4.1.1.9.6.1
MultichannelRespiratoryWaveformStorage 1.2.840.10008.5.1.4.1.1.9.6.2
RoutineScalpElectroencephalogramWaveformStorage 1.2.840.10008.5.1.4.1.1.9.7.1
ElectromyogramWaveformStorage 1.2.840.10008.5.1.4.1.1.9.7.2
ElectrooculogramWaveformStorage 1.2.840.10008.5.1.4.1.1.9.7.3
SleepElectroencephalogramWaveformStorage 1.2.840.10008.5.1.4.1.1.9.7.4
BodyPositionWaveformStorage 1.2.840.10008.5.1.4.1.1.9.8.1
WaveformPresentationStateStorage 1.2.840.10008.5.1.4.1.1.9.100.1
WaveformAcquisitionPresentationStateStorage 1.2.840.10008.5.1.4.1.1.9.100.2
RETIRED_StandaloneModalityLUTStorage 1.2.840.10008.5.1.4.1.1.10
RETIRED_StandaloneVOILUTStorage 1.2.840.10008.5.1.4.1.1.11
GrayscaleSoftcopyPresentationStateStorage 1.2.840.10008.5.1.4.1.1.11.1
ColorSoftcopyPresentationStateStorage 1.2.840.10008.5.1.4.1.1.11.2
PseudoColorSoftcopyPresentationStateStorage 1.2.840.10008.5.1.4.1.1.11.3
BlendingSoftcopyPresentationStateStorage 1.2.840.10008.5.1.4.1.1.11.4
XAXRFGrayscaleSoftcopyPresentationStateStorage 1.2.840.10008.5.1.4.1.1.11.5
GrayscalePlanarMPRVolumetricPresentationStateStorage 1.2.840.10008.5.1.4.1.1.11.6
CompositingPlanarMPRVolumetricPresent.StateStorage 1.2.840.10008.5.1.4.1.1.11.7
AdvancedBlendingPresentationStateStorage 1.2.840.10008.5.1.4.1.1.11.8
VolumeRenderingVolumetricPresentationStateStorage 1.2.840.10008.5.1.4.1.1.11.9
SegmentedVolumeRenderingVolumetricPres.StateStorage 1.2.840.10008.5.1.4.1.1.11.10
MultipleVolumeRenderingVolumetricPres.StateStorage 1.2.840.10008.5.1.4.1.1.11.11
VariableModalityLUTSoftcopyPresentationStateStorage 1.2.840.10008.5.1.4.1.1.11.12
XRayAngiographicImageStorage 1.2.840.10008.5.1.4.1.1.12.1
EnhancedXAImageStorage 1.2.840.10008.5.1.4.1.1.12.1.1
XRayRadiofluoroscopicImageStorage 1.2.840.10008.5.1.4.1.1.12.2
EnhancedXRFImageStorage 1.2.840.10008.5.1.4.1.1.12.2.1
RETIRED_XRayAngiographicBiPlaneImageStorage 1.2.840.10008.5.1.4.1.1.12.3
XRay3DAngiographicImageStorage 1.2.840.10008.5.1.4.1.1.13.1.1
XRay3DCraniofacialImageStorage 1.2.840.10008.5.1.4.1.1.13.1.2
BreastTomosynthesisImageStorage 1.2.840.10008.5.1.4.1.1.13.1.3
BreastProjectionXRayImageStorageForPresentation 1.2.840.10008.5.1.4.1.1.13.1.4
BreastProjectionXRayImageStorageForProcessing 1.2.840.10008.5.1.4.1.1.13.1.5
IntravascularOpt.Coh.Tom.ImageStorageForPresentation 1.2.840.10008.5.1.4.1.1.14.1
IntravascularOpt.Coh.Tom.ImageStorageForProcessing 1.2.840.10008.5.1.4.1.1.14.2
NuclearMedicineImageStorage 1.2.840.10008.5.1.4.1.1.20
ParametricMapStorage 1.2.840.10008.5.1.4.1.1.30
RawDataStorage 1.2.840.10008.5.1.4.1.1.66
SpatialRegistrationStorage 1.2.840.10008.5.1.4.1.1.66.1
SpatialFiducialsStorage 1.2.840.10008.5.1.4.1.1.66.2
DeformableSpatialRegistrationStorage 1.2.840.10008.5.1.4.1.1.66.3
SegmentationStorage 1.2.840.10008.5.1.4.1.1.66.4
SurfaceSegmentationStorage 1.2.840.10008.5.1.4.1.1.66.5
TractographyResultsStorage 1.2.840.10008.5.1.4.1.1.66.6
LabelMapSegmentationStorage 1.2.840.10008.5.1.4.1.1.66.7
HeightMapSegmentationStorage 1.2.840.10008.5.1.4.1.1.66.8
RealWorldValueMappingStorage 1.2.840.10008.5.1.4.1.1.67
SurfaceScanMeshStorage 1.2.840.10008.5.1.4.1.1.68.1
SurfaceScanPointCloudStorage 1.2.840.10008.5.1.4.1.1.68.2
RETIRED_VLImageStorage 1.2.840.10008.5.1.4.1.1.77.1
VLEndoscopicImageStorage 1.2.840.10008.5.1.4.1.1.77.1.1
VideoEndoscopicImageStorage 1.2.840.10008.5.1.4.1.1.77.1.1.1
VLMicroscopicImageStorage 1.2.840.10008.5.1.4.1.1.77.1.2
VideoMicroscopicImageStorage 1.2.840.10008.5.1.4.1.1.77.1.2.1
VLSlideCoordinatesMicroscopicImageStorage 1.2.840.10008.5.1.4.1.1.77.1.3
VLPhotographicImageStorage 1.2.840.10008.5.1.4.1.1.77.1.4
VideoPhotographicImageStorage 1.2.840.10008.5.1.4.1.1.77.1.4.1
OphthalmicPhotography8BitImageStorage 1.2.840.10008.5.1.4.1.1.77.1.5.1
OphthalmicPhotography16BitImageStorage 1.2.840.10008.5.1.4.1.1.77.1.5.2
StereometricRelationshipStorage 1.2.840.10008.5.1.4.1.1.77.1.5.3
OphthalmicTomographyImageStorage 1.2.840.10008.5.1.4.1.1.77.1.5.4
WideFieldOphthalmicPhoto.Stereogr.Proj.ImageStorage 1.2.840.10008.5.1.4.1.1.77.1.5.5
WideFieldOphthalmicPhotogr.3DCoordinatesImageStorage 1.2.840.10008.5.1.4.1.1.77.1.5.6
OphthalmicOpticalCoherenceTomogr.EnFaceImageStorage 1.2.840.10008.5.1.4.1.1.77.1.5.7
OphthalmicOpticalCoh.Tomogr.BscanVolumeAnalysisStor. 1.2.840.10008.5.1.4.1.1.77.1.5.8
VLWholeSlideMicroscopyImageStorage 1.2.840.10008.5.1.4.1.1.77.1.6
DermoscopicPhotographyImageStorage 1.2.840.10008.5.1.4.1.1.77.1.7
ConfocalMicroscopyImageStorage 1.2.840.10008.5.1.4.1.1.77.1.8
ConfocalMicroscopyTiledPyramidalImageStorage 1.2.840.10008.5.1.4.1.1.77.1.9
RETIRED_VLMultiframeImageStorage 1.2.840.10008.5.1.4.1.1.77.2
LensometryMeasurementsStorage 1.2.840.10008.5.1.4.1.1.78.1
AutorefractionMeasurementsStorage 1.2.840.10008.5.1.4.1.1.78.2
KeratometryMeasurementsStorage 1.2.840.10008.5.1.4.1.1.78.3
SubjectiveRefractionMeasurementsStorage 1.2.840.10008.5.1.4.1.1.78.4
VisualAcuityMeasurementsStorage 1.2.840.10008.5.1.4.1.1.78.5
SpectaclePrescriptionReportStorage 1.2.840.10008.5.1.4.1.1.78.6
OphthalmicAxialMeasurementsStorage 1.2.840.10008.5.1.4.1.1.78.7
IntraocularLensCalculationsStorage 1.2.840.10008.5.1.4.1.1.78.8
MacularGridThicknessAndVolumeReportStorage 1.2.840.10008.5.1.4.1.1.79.1
OphthalmicVisualFieldStaticPerimetryMeasurementsSt. 1.2.840.10008.5.1.4.1.1.80.1
OphthalmicThicknessMapStorage 1.2.840.10008.5.1.4.1.1.81.1
CornealTopographyMapStorage 1.2.840.10008.5.1.4.1.1.82.1
DRAFT_SRTextStorage 1.2.840.10008.5.1.4.1.1.88.1
DRAFT_SRAudioStorage 1.2.840.10008.5.1.4.1.1.88.2
DRAFT_SRDetailStorage 1.2.840.10008.5.1.4.1.1.88.3
DRAFT_SRComprehensiveStorage 1.2.840.10008.5.1.4.1.1.88.4
BasicTextSRStorage 1.2.840.10008.5.1.4.1.1.88.11
EnhancedSRStorage 1.2.840.10008.5.1.4.1.1.88.22
ComprehensiveSRStorage 1.2.840.10008.5.1.4.1.1.88.33
Comprehensive3DSRStorage 1.2.840.10008.5.1.4.1.1.88.34
ExtensibleSRStorage 1.2.840.10008.5.1.4.1.1.88.35
ProcedureLogStorage 1.2.840.10008.5.1.4.1.1.88.40
MammographyCADSRStorage 1.2.840.10008.5.1.4.1.1.88.50
KeyObjectSelectionDocumentStorage 1.2.840.10008.5.1.4.1.1.88.59
ChestCADSRStorage 1.2.840.10008.5.1.4.1.1.88.65
XRayRadiationDoseSRStorage 1.2.840.10008.5.1.4.1.1.88.67
RadiopharmaceuticalRadiationDoseSRStorage 1.2.840.10008.5.1.4.1.1.88.68
ColonCADSRStorage 1.2.840.10008.5.1.4.1.1.88.69
ImplantationPlanSRStorage 1.2.840.10008.5.1.4.1.1.88.70
AcquisitionContextSRStorage 1.2.840.10008.5.1.4.1.1.88.71
SimplifiedAdultEchoSRStorage 1.2.840.10008.5.1.4.1.1.88.72
PatientRadiationDoseSRStorage 1.2.840.10008.5.1.4.1.1.88.73
PlannedImagingAgentAdministrationSRStorage 1.2.840.10008.5.1.4.1.1.88.74
PerformedImagingAgentAdministrationSRStorage 1.2.840.10008.5.1.4.1.1.88.75
EnhancedXRayRadiationDoseSRStorage 1.2.840.10008.5.1.4.1.1.88.76
WaveformAnnotationSRStorage 1.2.840.10008.5.1.4.1.1.88.77
ContentAssessmentResultsStorage 1.2.840.10008.5.1.4.1.1.90.1
MicroscopyBulkSimpleAnnotationsStorage 1.2.840.10008.5.1.4.1.1.91.1
EncapsulatedPDFStorage 1.2.840.10008.5.1.4.1.1.104.1
EncapsulatedCDAStorage 1.2.840.10008.5.1.4.1.1.104.2
EncapsulatedSTLStorage 1.2.840.10008.5.1.4.1.1.104.3
EncapsulatedOBJStorage 1.2.840.10008.5.1.4.1.1.104.4
EncapsulatedMTLStorage 1.2.840.10008.5.1.4.1.1.104.5
PositronEmissionTomographyImageStorage 1.2.840.10008.5.1.4.1.1.128
LegacyConvertedEnhancedPETImageStorage 1.2.840.10008.5.1.4.1.1.128.1
RETIRED_StandalonePETCurveStorage 1.2.840.10008.5.1.4.1.1.129
EnhancedPETImageStorage 1.2.840.10008.5.1.4.1.1.130
BasicStructuredDisplayStorage 1.2.840.10008.5.1.4.1.1.131
CTPerformedProcedureProtocolStorage 1.2.840.10008.5.1.4.1.1.200.2
XAPerformedProcedureProtocolStorage 1.2.840.10008.5.1.4.1.1.200.8
RTImageStorage 1.2.840.10008.5.1.4.1.1.481.1
RTDoseStorage 1.2.840.10008.5.1.4.1.1.481.2
RTStructureSetStorage 1.2.840.10008.5.1.4.1.1.481.3
RTBeamsTreatmentRecordStorage 1.2.840.10008.5.1.4.1.1.481.4
RTPlanStorage 1.2.840.10008.5.1.4.1.1.481.5
RTBrachyTreatmentRecordStorage 1.2.840.10008.5.1.4.1.1.481.6
RTTreatmentSummaryRecordStorage 1.2.840.10008.5.1.4.1.1.481.7
RTIonPlanStorage 1.2.840.10008.5.1.4.1.1.481.8
RTIonBeamsTreatmentRecordStorage 1.2.840.10008.5.1.4.1.1.481.9
RTPhysicianIntentStorage 1.2.840.10008.5.1.4.1.1.481.10
RTSegmentAnnotationStorage 1.2.840.10008.5.1.4.1.1.481.11
RTRadiationSetStorage 1.2.840.10008.5.1.4.1.1.481.12
CArmPhotonElectronRadiationStorage 1.2.840.10008.5.1.4.1.1.481.13
TomotherapeuticRadiationStorage 1.2.840.10008.5.1.4.1.1.481.14
RoboticArmRadiationStorage 1.2.840.10008.5.1.4.1.1.481.15
RTRadiationRecordSetStorage 1.2.840.10008.5.1.4.1.1.481.16
RTRadiationSalvageRecordStorage 1.2.840.10008.5.1.4.1.1.481.17
TomotherapeuticRadiationRecordStorage 1.2.840.10008.5.1.4.1.1.481.18
CArmPhotonElectronRadiationRecordStorage 1.2.840.10008.5.1.4.1.1.481.19
RoboticRadiationRecordStorage 1.2.840.10008.5.1.4.1.1.481.20
RTRadiationSetDeliveryInstructionStorage 1.2.840.10008.5.1.4.1.1.481.21
RTTreatmentPreparationStorage 1.2.840.10008.5.1.4.1.1.481.22
EnhancedRTImageStorage 1.2.840.10008.5.1.4.1.1.481.23
EnhancedContinuousRTImageStorage 1.2.840.10008.5.1.4.1.1.481.24
RTPatientPositionAcquisitionInstructionStorage 1.2.840.10008.5.1.4.1.1.481.25
DICOS_CTImageStorage 1.2.840.10008.5.1.4.1.1.501.1
DICOS_DigitalXRayImageStorageForPresentation 1.2.840.10008.5.1.4.1.1.501.2.1
DICOS_DigitalXRayImageStorageForProcessing 1.2.840.10008.5.1.4.1.1.501.2.2
DICOS_ThreatDetectionReportStorage 1.2.840.10008.5.1.4.1.1.501.3
DICOS_2DAITStorage 1.2.840.10008.5.1.4.1.1.501.4
DICOS_3DAITStorage 1.2.840.10008.5.1.4.1.1.501.5
DICOS_QuadrupoleResonanceStorage 1.2.840.10008.5.1.4.1.1.501.6
DICONDE_EddyCurrentImageStorage 1.2.840.10008.5.1.4.1.1.601.1
DICONDE_EddyCurrentMultiframeImageStorage 1.2.840.10008.5.1.4.1.1.601.2
DICONDE_ThermographyImageStorage 1.2.840.10008.5.1.4.1.1.601.3
DICONDE_ThermographyMultiFrameImageStorage 1.2.840.10008.5.1.4.1.1.601.4
DICONDE_UltrasoundWaveformStorage 1.2.840.10008.5.1.4.1.1.601.5
DRAFT_RTBeamsDeliveryInstructionStorage 1.2.840.10008.5.1.4.34.1
RTBeamsDeliveryInstructionStorage 1.2.840.10008.5.1.4.34.7
RTBrachyApplicationSetupDeliveryInstructionStorage 1.2.840.10008.5.1.4.34.10
storescp アプリケーションは、上記でサポートするすべての SOP クラスについて、次のいずれかの転送構文を使うプレゼンテーションコンテキストを受け入れます。
LittleEndianImplicitTransferSyntax 1.2.840.10008.1.2
LittleEndianExplicitTransferSyntax 1.2.840.10008.1.2.1
BigEndianExplicitTransferSyntax 1.2.840.10008.1.2.2
storescp アプリケーションの既定の動作は、デフォルトの暗黙的(implicit)転送構文よりも明示的(explicit)エンコードを持つ転送構文を優先することです。storescp がビッグエンディアンのハードウェア上で動作している場合は、LittleEndianExplicit よりも BigEndianExplicit 転送構文を優先します(逆もまた同様)。この動作は –prefer オプションで変更できます(上記参照)。–accept-all オプションを使うと、次のいずれの転送構文もサポートされます。
LittleEndianImplicitTransferSyntax 1.2.840.10008.1.2
LittleEndianExplicitTransferSyntax 1.2.840.10008.1.2.1
EncapsulatedUncompressedExplicitVRLittleEndianTr.S. 1.2.840.10008.1.2.1.98
DeflatedExplicitVRLittleEndianTransferSyntax 1.2.840.10008.1.2.1.99 (*)
BigEndianExplicitTransferSyntax 1.2.840.10008.1.2.2
JPEGProcess1TransferSyntax 1.2.840.10008.1.2.4.50
JPEGProcess2_4TransferSyntax 1.2.840.10008.1.2.4.51
JPEGProcess14SV1TransferSyntax 1.2.840.10008.1.2.4.70
JPEGLSLosslessTransferSyntax 1.2.840.10008.1.2.4.80
JPEGLSLossyTransferSyntax 1.2.840.10008.1.2.4.81
JPEG2000LosslessOnlyTransferSyntax 1.2.840.10008.1.2.4.90
JPEG2000TransferSyntax 1.2.840.10008.1.2.4.91
MPEG2MainProfileAtMainLevelTransferSyntax 1.2.840.10008.1.2.4.100
FragmentableMPEG2MainProfile/MainLevelTransferSyntax 1.2.840.10008.1.2.4.100.1
MPEG2MainProfileAtHighLevelTransferSyntax 1.2.840.10008.1.2.4.101
FragmentableMPEG2MainProfil/tHighLevelTransferSyntax 1.2.840.10008.1.2.4.101.1
MPEG4HighProfileLevel4_1TransferSyntax 1.2.840.10008.1.2.4.102
FragmentableMPEG4HighProfileLevel4_1TransferSyntax 1.2.840.10008.1.2.4.102.1
MPEG4BDcompatibleHighProfileLevel4_1TransferSyntax 1.2.840.10008.1.2.4.103
FragmentableMPEG4BDcompatibleHighProfileLevel4_1T.S. 1.2.840.10008.1.2.4.103.1
MPEG4HighProfileLevel4_2_For2DVideoTransferSyntax 1.2.840.10008.1.2.4.104
FragmentableMPEG4HighProfileLevel4_2_For2DVideoTr.S. 1.2.840.10008.1.2.4.104.1
MPEG4HighProfileLevel4_2_For3DVideoTransferSyntax 1.2.840.10008.1.2.4.105
FragmentableMPEG4HighProfileLevel4_2_For3DVideoTr.S. 1.2.840.10008.1.2.4.105.1
MPEG4StereoHighProfileLevel4_2TransferSyntax 1.2.840.10008.1.2.4.106
FragmentableMPEG4StereoHighProfileLevel4_2TransferS. 1.2.840.10008.1.2.4.106.1
HEVCMainProfileLevel5_1TransferSyntax 1.2.840.10008.1.2.4.107
HEVCMain10ProfileLevel5_1TransferSyntax 1.2.840.10008.1.2.4.108
JPEGXLLosslesTransferSyntax 1.2.840.10008.1.2.4.110
JPEGXLJPEGRecompressionTransferSyntax 1.2.840.10008.1.2.4.111
JPEGXLTransferSyntax 1.2.840.10008.1.2.4.112
HighThroughputJPEG2000ImageCompressionLossless.Tr.S. 1.2.840.10008.1.2.4.201
HighThroughputJPEG2000RPCLImageCompressionLoss.Tr.S. 1.2.840.10008.1.2.4.202
HighThroughputJPEG2000ImageCompressionTransferSynta. 1.2.840.10008.1.2.4.203
RLELosslessTransferSyntax 1.2.840.10008.1.2.5
DeflatedImageFrameCompressionTransferSyntax 1.2.840.10008.1.2.8.1
(*) zlib サポートを有効にしてコンパイルした場合(–version の出力を参照)
追加の Storage SOP クラスや転送構文は、いわゆる「アソシエーションネゴシエーションプロファイル」を使って利用できます(後述)。これには、プライベートな Storage SOP クラスと、PATIENT-STUDY-SERIES-INSTANCE 情報モデルに収まらない標準の Storage SOP クラスの両方が含まれます。
storescp アプリケーションは、既定では拡張ネゴシエーション(extended negotiation)をサポートしません。ただし、適切なアソシエーションネゴシエーションプロファイル(後述)を使えば、特定の SOP クラスに対して拡張ネゴシエーションのオプションサポートを追加できます。
アクセス制御
TCP wrapper サポートを有効にして Unix プラットフォーム上でコンパイルした場合、–access-control コマンドラインオプションでホストベースのアクセス制御を有効にできます。この場合、システムのホストアクセス制御テーブルで storescp に対して定義されたアクセス制御ルールが適用されます。ホストアクセス制御テーブルの既定の場所は /etc/hosts.allow と /etc/hosts.deny です。詳細は hosts_access(5) に記載されています。
storescp を inetd から実行する
Posix プラットフォームでは、storescp を inetd(8) スーパーサーバ経由で起動できます。そのためには、storescp を /etc/inetd.conf 設定ファイルに構成しておく必要があります。典型的な設定行は次のようになります。
acr-nema stream tcp nowait root /usr/sbin/storescp -id +ac -od /tmp/storescp
ここで -id(–inetd)は、DICOM アソシエーションを実際には inetd が受け付けて storescp に渡す inetd モードを有効にします。+ac(–access-control)は上述の TCP wrapper ベースのアクセス制御を有効にし、-od(–output-directory)は storescp が受信した DICOM オブジェクトを格納するディレクトリを指定します。なお、サービス名(この例では "acr-nema")は DICOM アソシエーションを受け付けるポート番号を決めるもので、/etc/services に定義されていなければなりません。inetd から実行する場合、stdout と stderr のストリームは破棄されます。ただし、–log-config オプション経由でロギングを構成できます(後述)。
なお、inetd 経由で実行すると storescp は root 権限で実行されるため、セキュリティ上のリスクになりうる点に注意してください。
アソシエーションネゴシエーションプロファイルと設定ファイル
storescp は、設定ファイルから読み込める「アソシエーションネゴシエーションプロファイル」に基づいて、DICOM ネットワークアソシエーションのネゴシエーション動作を指定する柔軟な仕組みをサポートします。この設定ファイルの形式と意味は asconfig.txt に記載されています。
ロギング
各種コマンドラインツールおよび基盤ライブラリのロギング出力のレベルは、ユーザーが指定できます。既定では、エラーと警告のみが標準エラー出力に書き出されます。–verbose オプションを使うと、処理の詳細など情報メッセージも報告されます。–debug オプションは、たとえばデバッグ目的で内部動作の詳細を取得するために使えます。その他のロギングレベルは –log-level オプションで選択できます。–quiet モードでは致命的なエラーのみが報告されます。このような非常に重大なエラー事象では、通常アプリケーションは終了します。各ロギングレベルの詳細は、モジュール "oflog" のドキュメントを参照してください。
ロギング出力をファイルへ(任意でログファイルのローテーション付きで)、syslog(Unix)、またはイベントログ(Windows)へ書き出したい場合は、–log-config オプションを使えます。この設定ファイルでは、特定のメッセージのみを特定の出力ストリームへ振り向けたり、メッセージを生成したモジュールやアプリケーションに基づいて特定のメッセージをフィルタリングしたりすることもできます。設定ファイルの例は < etcdir>/logger.cfg に用意されています。
コマンドライン
すべてのコマンドラインツールは、引数について次の表記法を用います。角括弧は省略可能な値(0〜1)を囲み、末尾の 3 つのドットは複数の値が許される(1〜n)ことを示します。両方の組み合わせは 0〜n の値を意味します。
コマンドラインオプションは、先頭の '+' または '-' 記号によって引数と区別されます。通常、コマンドラインオプションの順序や位置は任意です(すなわちどこに現れてもよい)。ただし、オプションが相互排他的な場合は、最も右に現れたものが使われます。この動作は、一般的な Unix シェルの標準的な評価ルールに準拠します。
さらに、ファイル名の前にプレフィックスとして '@' 記号を付けることで、1 つ以上のコマンドファイルを指定できます(例 @command.txt)。このようなコマンド引数は、それ以降の評価が行われる前に、対応するテキストファイルの内容に置き換えられます(連続する空白は、引用符で囲まれていない限り単一の区切りとして扱われます)。なお、コマンドファイルの中に別のコマンドファイルを含めることはできません。この単純だが効果的な方法により、よく使うオプションや引数の組み合わせをまとめられ、長く分かりにくいコマンドラインを避けられます(例は < datadir>/dumppat.txt に用意されています)。
環境変数
storescp ユーティリティは、DCMDICTPATH 環境変数で指定された DICOM データ辞書の読み込みを試みます。既定では、すなわち DCMDICTPATH 環境変数が設定されていない場合は、辞書がアプリケーションに組み込まれていない限り(Windows では既定で組み込み)、ファイル < datadir>/dicom.dic が読み込まれます。
この既定の動作が望ましく、DCMDICTPATH 環境変数は代替のデータ辞書が必要な場合にのみ使うべきです。DCMDICTPATH 環境変数は Unix シェルの PATH 変数と同じ形式で、エントリをコロン(":")で区切ります。Windows システムでは、区切り文字としてセミコロン(";")を使います。データ辞書のコードは、DCMDICTPATH 環境変数で指定された各ファイルの読み込みを試みます。データ辞書を 1 つも読み込めない場合はエラーとなります。
ファイル
< docdir>/asconfig.txt - 設定ファイルのドキュメント
< etcdir>/storescp.cfg - アソシエーションネゴシエーションプロファイルの例
関連項目
storescu(1)
著作権
Copyright (C) 1996-2025 by OFFIS e.V., Escherweg 2, 26121 Oldenburg, Germany.