echoscu(1) OFFIS DCMTK echoscu(1)

echoscu - کاربر کلاس سرویس (SCU) برای راستی‌آزمایی DICOM (C-ECHO)

echoscu [options] peer port

برنامه echoscu یک کاربر کلاس سرویس (SCU) را برای Verification SOP Class پیاده‌سازی می‌کند. این برنامه یک پیام C-ECHO دایکام (DICOM) را به یک ارائه‌دهنده کلاس سرویس (SCP) ارسال کرده و منتظر پاسخ می‌ماند. از این برنامه می‌توان برای بررسی و اعتبارسنجی برقراری ارتباط اولیه‌ی DICOM استفاده کرد.

peer  نام میزبان (hostname) طرف ارتباطی DICOM
port  شماره درگاه (port) پروتکل tcp/ip طرف ارتباطی

-h    --help
        چاپ این متن راهنما و خروج
      --version
        چاپ اطلاعات نسخه و خروج
      --arguments
        چاپ آرگومان‌های بسط‌یافته خط فرمان
-q    --quiet
        حالت بی‌صدا، عدم چاپ هشدارها و خطاها
-v    --verbose
        حالت پرگو، چاپ جزئیات پردازش
-d    --debug
        حالت اشکال‌زدایی، چاپ اطلاعات دیباگ
-ll   --log-level  [l]evel: string constant
        (fatal, error, warn, info, debug, trace)
        استفاده از سطح l برای ثبت‌کننده وقایع (logger)
-lc   --log-config  [f]ilename: string
        استفاده از فایل پیکربندی f برای ثبت‌کننده وقایع

نسخه پروتکل IP:
  -i4   --ipv4
          استفاده انحصاری از IPv4 (پیش‌فرض)
  -i6   --ipv6
          استفاده انحصاری از IPv6
  -i0   --ip-auto
          استفاده از بررسی DNS برای تعیین خودکار پروتکل IP
عناوین موجودیت برنامه (AE Titles):
  -aet  --aetitle  [a]etitle: string
          تنظیم AE title فراخواننده برنامه (پیش‌فرض: ECHOSCU)
  -aec  --call  [a]etitle: string
          تنظیم AE title فراخوانده‌شده طرف ارتباط (پیش‌فرض: ANY-SCP)
اشکال‌زدایی مذاکره ارتباط (association negotiation):
  -pts  --propose-ts  [n]umber: integer (1..53)
          پیشنهاد n نحو انتقال (transfer syntax)
  -ppc  --propose-pc  [n]umber: integer (1..128)
          پیشنهاد n بافت ارائه‌دهنده (presentation context)
سایر گزینه‌های شبکه:
  -to   --timeout  [s]econds: integer (پیش‌فرض: نامحدود)
          مهلت زمانی برای درخواست‌های اتصال
  -ts   --socket-timeout  [s]econds: integer (پیش‌فرض: 60)
          مهلت زمانی برای سوکت شبکه (0 برای نامحدود)
  -ta   --acse-timeout  [s]econds: integer (پیش‌فرض: 30)
          مهلت زمانی برای پیام‌های ACSE
  -td   --dimse-timeout  [s]econds: integer (پیش‌فرض: نامحدود)
          مهلت زمانی برای پیام‌های DIMSE
  -pdu  --max-pdu  [n]umber of bytes: integer (4096..131072)
          تنظیم حداکثر pdu دریافتی به n بایت (پیش‌فرض: 16384)
        --repeat  [n]umber: integer
          تکرار به تعداد n بار
        --abort
          قطع ارتباط (abort) به‌جای بستن عادی آن (release)

پشته پروتکل انتقال:
  -tls  --disable-tls
          استفاده از اتصال عادی TCP/IP (پیش‌فرض)
  +tls  --enable-tls  [p]rivate key file, [c]ertificate file: string
          استفاده از اتصال امن و احرازهویت‌شده TLS
  +tla  --anonymous-tls
          استفاده از اتصال امن TLS بدون گواهی
گذرواژه کلید خصوصی (تنها همراه با --enable-tls):
  +ps   --std-passwd
          درخواست از کاربر برای وارد کردن گذرواژه در stdin (پیش‌فرض)
  +pw   --use-passwd  [p]assword: string
          استفاده از گذرواژه مشخص‌شده
  -pw   --null-passwd
          استفاده از رشته خالی به عنوان گذرواژه
قالب فایل کلید و گواهی:
  -pem  --pem-keys
          خواندن کلیدها و گواهی‌ها در قالب فایل PEM (پیش‌فرض)
  -der  --der-keys
          خواندن کلیدها و گواهی‌ها در قالب فایل DER
مرجع صدور گواهی (CA):
  +cf   --add-cert-file  [f]ilename: string
          افزودن فایل گواهی به فهرست گواهی‌ها
  +cd   --add-cert-dir  [d]irectory: string
          افزودن گواهی‌های موجود در پوشه d به فهرست گواهی‌ها
  +crl  --add-crl-file  [f]ilename: string
          افزودن فایل فهرست ابطال گواهی (CRL)
          (به همراه فعال‌سازی ضمنی --enable-crl-vfy)
  +crv  --enable-crl-vfy
          فعال‌سازی اعتبارسنجی CRL گواهی برگ (leaf)
  +cra  --enable-crl-all
          فعال‌سازی اعتبارسنجی CRL کل زنجیره
نمایه امنیتی:
  +ph   --list-profiles
          فهرست کردن نمایه‌های TLS پشتیبانی‌شده و خروج
  +pg   --profile-8996
          نمایه BCP 195 RFC 8996 TLS (پیش‌فرض)
  +pm   --profile-8996-mod
          نمایه اصلاح‌شده BCP 195 RFC 8996 TLS
          # تنها در صورتی در دسترس است که کتابخانه زیرین TLS از تمام
          # ویژگی‌های TLS لازم برای این نمایه پشتیبانی کند
  +py   --profile-bcp195-nd
          نمایه Non-downgrading BCP 195 TLS (منسوخ‌شده)
  +px   --profile-bcp195
          نمایه BCP 195 TLS (منسوخ‌شده)
  +pz   --profile-bcp195-ex
          نمایه Extended BCP 195 TLS (منسوخ‌شده)
  +pb   --profile-basic
          نمایه Basic TLS Secure Transport Connection (منسوخ‌شده)
          # تنها در صورتی در دسترس است که کتابخانه زیرین TLS از 3DES پشتیبانی کند
  +pa   --profile-aes
          نمایه AES TLS Secure Transport Connection (منسوخ‌شده)
  +pn   --profile-null
          ارتباط احرازهویت‌شده رمزنگاری‌نشده
          (منسوخ‌شده، در IHE ATNA استفاده می‌شد)
مجموعه رمز (ciphersuite):
  +cc   --list-ciphers
          فهرست کردن مجموعه‌های رمز TLS پشتیبانی‌شده و خروج
  +cs   --cipher  [c]iphersuite name: string
          افزودن مجموعه رمز به فهرست مجموعه‌های مورد مذاکره
نشانگر نام سرور (SNI):
        --no-sni
          عدم استفاده از SNI (پیش‌فرض)
        --request-sni  [s]erver name: string
          درخواست نام سرور s
تولیدکننده شبه‌تصادفی:
  +rs   --seed  [f]ilename: string
          مقداردهی اولیه (seed) تولیدکننده تصادفی با محتویات f
  +ws   --write-seed
          بازنویسی مقدار seed اصلاح‌شده (تنها همراه با --seed)
  +wf   --write-seed-file  [f]ilename: string (تنها همراه با --seed)
          نوشتن مقدار seed اصلاح‌شده در فایل f
احراز هویت طرف ارتباط (peer):
  -rc   --require-peer-cert
          اعتبارسنجی گواهی طرف ارتباط؛ در صورت عدم وجود ناموفق شود (پیش‌فرض)
  -ic   --ignore-peer-cert
          عدم اعتبارسنجی گواهی طرف ارتباط
اعتبارسنجی برون‌خط گواهی:
  +vc   --verify-cert  [f]ilename: string
          اعتبارسنجی گواهی در برابر تنظیمات CA
          # بارگذاری گواهی کلاینت و بررسی این که آیا در حین دست‌تکانی TLS
          # پذیرفته می‌شود یا خیر. چاپ نتیجه و خروج.
  +rc   --is-root-cert  [f]ilename: string
          بررسی خودامضابودن گواهی مرجع ریشه (root CA)
          # بارگذاری گواهی کلاینت و بررسی این که آیا یک گواهی معتبر
          # و خودامضاشده مرجع ریشه (root CA) است یا خیر. چاپ نتیجه و خروج.

برنامهٔ echoscu از SOP Classهای زیر به‌عنوان یک SCU پشتیبانی می‌کند:

VerificationSOPClass                                1.2.840.10008.1.1

به‌طور پیش‌فرض، برنامهٔ echoscu تنها این نحو انتقال (transfer syntax) را پیشنهاد خواهد داد:

LittleEndianImplicitTransferSyntax                  1.2.840.10008.1.2

در صورت استفاده از گزینهٔ --propose-ts، بسته به مقدار عددی «n» که به این گزینه داده می‌شود، نحوهای انتقال زیر نیز پیشنهاد خواهند شد:

LittleEndianExplicitTransferSyntax                  1.2.840.10008.1.2.1
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
JPEGProcess3_5TransferSyntax                        1.2.840.10008.1.2.4.52
JPEGProcess6_8TransferSyntax                        1.2.840.10008.1.2.4.53
JPEGProcess7_9TransferSyntax                        1.2.840.10008.1.2.4.54
JPEGProcess10_12TransferSyntax                      1.2.840.10008.1.2.4.55
JPEGProcess11_13TransferSyntax                      1.2.840.10008.1.2.4.56
JPEGProcess14TransferSyntax                         1.2.840.10008.1.2.4.57
JPEGProcess15TransferSyntax                         1.2.840.10008.1.2.4.58
JPEGProcess16_18TransferSyntax                      1.2.840.10008.1.2.4.59
JPEGProcess17_19TransferSyntax                      1.2.840.10008.1.2.4.60
JPEGProcess20_22TransferSyntax                      1.2.840.10008.1.2.4.61
JPEGProcess21_23TransferSyntax                      1.2.840.10008.1.2.4.62
JPEGProcess24_26TransferSyntax                      1.2.840.10008.1.2.4.63
JPEGProcess25_27TransferSyntax                      1.2.840.10008.1.2.4.64
JPEGProcess28TransferSyntax                         1.2.840.10008.1.2.4.65
JPEGProcess29TransferSyntax                         1.2.840.10008.1.2.4.66
JPEGProcess14SV1TransferSyntax                      1.2.840.10008.1.2.4.70
RLELosslessTransferSyntax                           1.2.840.10008.1.2.5
DeflatedExplicitVRLittleEndianTransferSyntax        1.2.840.10008.1.2.1.99
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
JPEG2000Part2MulticomponentImageComp.LosslessOnlyT. 1.2.840.10008.1.2.4.92
JPEG2000Part2MulticomponentImageComp.TransferSyntax 1.2.804.10008.1.2.4.93
MPEG2MainProfileAtMainLevelTransferSyntax           1.2.840.10008.1.2.4.100
MPEG2MainProfileAtHighLevelTransferSyntax           1.2.840.10008.1.2.4.101
MPEG4HighProfileLevel4_1TransferSyntax              1.2.840.10008.1.2.4.102
MPEG4BDcompatibleHighProfileLevel4_1TransferSyntax  1.2.840.10008.1.2.4.103
MPEG4HighProfileLevel4_2_For2DVideoTransferSyntax   1.2.840.10008.1.2.4.104
MPEG4HighProfileLevel4_2_For3DVideoTransferSyntax   1.2.840.10008.1.2.4.105
MPEG4StereoHighProfileLevel4_2TransferSyntax        1.2.840.10008.1.2.4.106
HEVCMainProfileLevel5_1TransferSyntax               1.2.840.10008.1.2.4.107
HEVCMain10ProfileLevel5_1TransferSyntax             1.2.840.10008.1.2.4.108
FragmentableMPEG2MainProfileMainLevelTransferSyntax 1.2.840.10008.1.2.4.100.1
FragmentableMPEG2MainProfileHighLevelTransferSyntax 1.2.840.10008.1.2.4.101.1
FragmentableMPEG4HighProfileLevel4_1TransferSyntax  1.2.840.10008.1.2.4.102.1
FragmentableMPEG4BDcompatibleHighProfileLevel4_1Tr. 1.2.840.10008.1.2.4.103.1
FragmentableMPEG4HighProfileLevel4_2_For2DVideoTr.S 1.2.840.10008.1.2.4.104.1
FragmentableMPEG4HighProfileLevel4_2_For3DVideoTr.S 1.2.840.10008.1.2.4.105.1
FragmentableMPEG4StereoHighProfileLevel4_2TransferS 1.2.840.10008.1.2.4.106.1
HighThroughputJPEG2000ImageCompressionLossless.Tr.S 1.2.840.10008.1.2.4.201
HighThroughputJPEG2000RPCLImageCompressionLoss.Tr.S 1.2.840.10008.1.2.4.202
HighThroughputJPEG2000ImageCompressionTransferSynt. 1.2.840.10008.1.2.4.203

سطح خروجی ثبت وقایع در ابزارهای مختلف خط فرمان و کتابخانه‌های زیربنایی توسط کاربر قابل تعیین است. به‌طور پیش‌فرض، فقط خطاها و هشدارها در جریان خطای استاندارد نوشته می‌شوند. با استفاده از گزینهٔ --verbose، پیام‌های اطلاعاتی مانند جزئیات پردازش نیز گزارش می‌شوند. گزینهٔ --debug می‌تواند برای دریافت جزئیات بیشتر دربارهٔ فعالیت‌های درونی، برای مثال با اهداف اشکال‌زدایی به‌کار رود. سایر سطوح ثبت وقایع با استفاده از گزینهٔ --log-level قابل انتخاب هستند. در حالت --quiet فقط خطاهای مهلک گزارش می‌شوند. در رخدادهای خطای بسیار وخیم از این دست، برنامه معمولاً خاتمه می‌یابد. برای جزئیات بیشتر دربارهٔ سطوح مختلف ثبت وقایع، به مستندات ماژول «oflog» مراجعه کنید.

در صورتی که خروجی ثبت وقایع باید درون یک فایل (اختیاراً به همراه چرخش فایل لاگ)، در syslog (یونیکس) یا event log (ویندوز) نوشته شود، می‌توان از گزینهٔ --log-config استفاده کرد. این فایل پیکربندی همچنین امکان هدایت تنها پیام‌های خاصی به یک جریان خروجی معین، و فیلتر کردن پیام‌های خاص بر اساس ماژول یا برنامه‌ای که در آن ایجاد شده‌اند را فراهم می‌کند. یک نمونه فایل پیکربندی در <etcdir>/logger.cfg ارائه شده است.

تمامی ابزارهای خط فرمان از نشانه‌گذاری زیر برای پارامترها استفاده می‌کنند: قلاب‌ها مقادیر اختیاری را در بر می‌گیرند (0-1)، سه نقطهٔ پایانی نشان می‌دهند که چندین مقدار مجاز است (1-n)، و ترکیبی از هر دو به معنای 0 تا n مقدار است.

گزینه‌های خط فرمان به ترتیب با یک علامت پیشوند «+» یا «-» از پارامترها متمایز می‌شوند. معمولاً ترتیب و موقعیت گزینه‌های خط فرمان اختیاری است (یعنی می‌توانند در هر جایی ظاهر شوند). با این حال، اگر گزینه‌ها مانعة‌الجمع باشند، گزینه‌ای که در راست‌ترین موقعیت قرار دارد اعمال می‌شود. این رفتار با قواعد استاندارد ارزیابی در شل‌های متداول یونیکس مطابقت دارد.

علاوه بر این، یک یا چند فایل دستور می‌توانند با استفاده از علامت «@» به عنوان پیشوند نام فایل مشخص شوند (مانند @command.txt). چنین آرگومان دستوری پیش از هرگونه ارزیابی بیشتر، با محتوای فایل متنی مربوطه جایگزین می‌شود (چندین نویسهٔ فاصلهٔ خالی به عنوان یک جداکنندهٔ واحد در نظر گرفته می‌شوند، مگر آنکه بین دو علامت نقل‌قول قرار گرفته باشند). لطفاً توجه داشته باشید که یک فایل دستور نمی‌تواند حاوی فایل دستور دیگری باشد. این رویکرد ساده اما مؤثر امکان خلاصه کردن ترکیب‌های متداول گزینه‌ها/پارامترها را فراهم کرده و از خطوط فرمان طولانی و گیج‌کننده جلوگیری می‌کند (یک نمونه در فایل <datadir>/dumppat.txt ارائه شده است).

ابزار echoscu هنگام خاتمه، از کدهای خروج زیر استفاده می‌کند. این امر به کاربر امکان می‌دهد دلیل خاتمه یافتن برنامه را بررسی کند.

EXITCODE_NO_ERROR                         0
EXITCODE_COMMANDLINE_SYNTAX_ERROR         1

EXITCODE_CANNOT_READ_INPUT_FILE          20 (*)
EXITCODE_INVALID_INPUT_FILE              22

EXITCODE_CANNOT_WRITE_OUTPUT_FILE        40 (*)

EXITCODE_CANNOT_INITIALIZE_NETWORK       60 (*)
EXITCODE_ASSOCIATION_ABORTED             70

(*) در واقع، این کدها در حال حاضر توسط echoscu استفاده نمی‌شوند، بلکه به عنوان نگه‌دارندهٔ مکان (placeholder) برای گروه متناظر کدهای خروج عمل می‌کنند..SH "محیط (ENVIRONMENT)"

ابزار echoscu تلاش خواهد کرد فرهنگ‌داده‌های DICOM مشخص‌شده در متغیر محیطی DCMDICTPATH را بارگذاری کند. به‌طور پیش‌فرض، یعنی در صورتی که متغیر محیطی DCMDICTPATH مقداردهی نشده باشد، فایل <datadir>/dicom.dic بارگذاری خواهد شد، مگر اینکه فرهنگ‌داده درون برنامه تعبیه شده باشد (پیش‌فرض برای Windows).

رفتار پیش‌فرض ارجح است و از متغیر محیطی DCMDICTPATH فقط زمانی باید استفاده شود که به فرهنگ‌داده‌های جایگزین نیاز باشد. متغیر محیطی DCMDICTPATH ساختاری مشابه متغیر PATH در شل Unix دارد، به طوری که علامت دو نقطه (":") ورودی‌ها را از هم جدا می‌کند. در سیستم‌های Windows، از علامت نقطه-ویرگول (";") به عنوان جداکننده استفاده می‌شود. کد فرهنگ‌داده تلاش خواهد کرد تا هر فایل مشخص‌شده در متغیر محیطی DCMDICTPATH را بارگذاری کند. در صورتی که هیچ فرهنگ‌داده‌ای نتواند بارگذاری شود، یک خطا محسوب خواهد شد.

حق نشر (C) 1994-2025 متعلق به OFFIS e.V., Escherweg 2, 26121 Oldenburg, Germany.

Thu Jul 9 2026 18:43:40 Version 3.7.0