.TH "echoscu" 1 "Thu Jul 9 2026 18:43:40" "Version 3.7.0" "OFFIS DCMTK" \" -*- nroff -*- .nh .SH "نام (NAME)" echoscu \- کاربر کلاس سرویس (SCU) برای راستی‌آزمایی DICOM (C-ECHO) .PP .SH "خلاصه دستور (SYNOPSIS)" .PP .PP .nf echoscu [options] peer port .fi .PP .SH "توضیحات (DESCRIPTION)" .PP برنامه \fBechoscu\fP یک کاربر کلاس سرویس (SCU) را برای Verification SOP Class پیاده‌سازی می‌کند\&. این برنامه یک پیام C-ECHO دایکام (DICOM) را به یک ارائه‌دهنده کلاس سرویس (SCP) ارسال کرده و منتظر پاسخ می‌ماند\&. از این برنامه می‌توان برای بررسی و اعتبارسنجی برقراری ارتباط اولیه‌ی DICOM استفاده کرد\&. .SH "پارامترها (PARAMETERS)" .PP .PP .nf peer نام میزبان (hostname) طرف ارتباطی DICOM port شماره درگاه (port) پروتکل tcp/ip طرف ارتباطی .fi .PP .SH "گزینه‌ها (OPTIONS)" .PP .SS "گزینه‌های عمومی (general options)" .PP .nf -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 برای ثبت‌کننده وقایع .fi .PP .SS "گزینه‌های شبکه (network options)" .PP .nf نسخه پروتکل 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) .fi .PP .SS "گزینه‌های امنیت لایه انتقال (TLS)" .PP .nf پشته پروتکل انتقال: -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) است یا خیر\&. چاپ نتیجه و خروج\&. .fi.PP .SH "نکات (NOTES)" .PP .SS "انطباق با DICOM (DICOM Conformance)" برنامهٔ \fBechoscu\fP از SOP Classهای زیر به‌عنوان یک SCU پشتیبانی می‌کند: .PP .PP .nf VerificationSOPClass 1\&.2\&.840\&.10008\&.1\&.1 .fi .PP .PP به‌طور پیش‌فرض، برنامهٔ \fBechoscu\fP تنها این نحو انتقال (transfer syntax) را پیشنهاد خواهد داد: .PP .PP .nf LittleEndianImplicitTransferSyntax 1\&.2\&.840\&.10008\&.1\&.2 .fi .PP .PP در صورت استفاده از گزینهٔ \fI--propose-ts\fP، بسته به مقدار عددی «n» که به این گزینه داده می‌شود، نحوهای انتقال زیر نیز پیشنهاد خواهند شد: .PP .PP .nf 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 .fi .PP .SH "ثبت وقایع (LOGGING)" .PP سطح خروجی ثبت وقایع در ابزارهای مختلف خط فرمان و کتابخانه‌های زیربنایی توسط کاربر قابل تعیین است\&. به‌طور پیش‌فرض، فقط خطاها و هشدارها در جریان خطای استاندارد نوشته می‌شوند\&. با استفاده از گزینهٔ \fI--verbose\fP، پیام‌های اطلاعاتی مانند جزئیات پردازش نیز گزارش می‌شوند\&. گزینهٔ \fI--debug\fP می‌تواند برای دریافت جزئیات بیشتر دربارهٔ فعالیت‌های درونی، برای مثال با اهداف اشکال‌زدایی به‌کار رود\&. سایر سطوح ثبت وقایع با استفاده از گزینهٔ \fI--log-level\fP قابل انتخاب هستند\&. در حالت \fI--quiet\fP فقط خطاهای مهلک گزارش می‌شوند\&. در رخدادهای خطای بسیار وخیم از این دست، برنامه معمولاً خاتمه می‌یابد\&. برای جزئیات بیشتر دربارهٔ سطوح مختلف ثبت وقایع، به مستندات ماژول «oflog» مراجعه کنید\&. .PP در صورتی که خروجی ثبت وقایع باید درون یک فایل (اختیاراً به همراه چرخش فایل لاگ)، در syslog (یونیکس) یا event log (ویندوز) نوشته شود، می‌توان از گزینهٔ \fI--log-config\fP استفاده کرد\&. این فایل پیکربندی همچنین امکان هدایت تنها پیام‌های خاصی به یک جریان خروجی معین، و فیلتر کردن پیام‌های خاص بر اساس ماژول یا برنامه‌ای که در آن ایجاد شده‌اند را فراهم می‌کند\&. یک نمونه فایل پیکربندی در \fI/logger\&.cfg\fP ارائه شده است\&. .SH "خط فرمان (COMMAND LINE)" .PP تمامی ابزارهای خط فرمان از نشانه‌گذاری زیر برای پارامترها استفاده می‌کنند: قلاب‌ها مقادیر اختیاری را در بر می‌گیرند (0-1)، سه نقطهٔ پایانی نشان می‌دهند که چندین مقدار مجاز است (1-n)، و ترکیبی از هر دو به معنای 0 تا n مقدار است\&. .PP گزینه‌های خط فرمان به ترتیب با یک علامت پیشوند «+» یا «-» از پارامترها متمایز می‌شوند\&. معمولاً ترتیب و موقعیت گزینه‌های خط فرمان اختیاری است (یعنی می‌توانند در هر جایی ظاهر شوند)\&. با این حال، اگر گزینه‌ها مانعة‌الجمع باشند، گزینه‌ای که در راست‌ترین موقعیت قرار دارد اعمال می‌شود\&. این رفتار با قواعد استاندارد ارزیابی در شل‌های متداول یونیکس مطابقت دارد\&. .PP علاوه بر این، یک یا چند فایل دستور می‌توانند با استفاده از علامت «@» به عنوان پیشوند نام فایل مشخص شوند (مانند \fI@command\&.txt\fP)\&. چنین آرگومان دستوری پیش از هرگونه ارزیابی بیشتر، با محتوای فایل متنی مربوطه جایگزین می‌شود (چندین نویسهٔ فاصلهٔ خالی به عنوان یک جداکنندهٔ واحد در نظر گرفته می‌شوند، مگر آنکه بین دو علامت نقل‌قول قرار گرفته باشند)\&. لطفاً توجه داشته باشید که یک فایل دستور نمی‌تواند حاوی فایل دستور دیگری باشد\&. این رویکرد ساده اما مؤثر امکان خلاصه کردن ترکیب‌های متداول گزینه‌ها/پارامترها را فراهم کرده و از خطوط فرمان طولانی و گیج‌کننده جلوگیری می‌کند (یک نمونه در فایل \fI/dumppat\&.txt\fP ارائه شده است)\&. .SH "کدهای خروج (EXIT CODES)" .PP ابزار \fBechoscu\fP هنگام خاتمه، از کدهای خروج زیر استفاده می‌کند\&. این امر به کاربر امکان می‌دهد دلیل خاتمه یافتن برنامه را بررسی کند\&. .SS "عمومی (general)" .PP .nf EXITCODE_NO_ERROR 0 EXITCODE_COMMANDLINE_SYNTAX_ERROR 1 .fi .PP .SS "خطاهای فایل ورودی (input file errors)" .PP .nf EXITCODE_CANNOT_READ_INPUT_FILE 20 (*) EXITCODE_INVALID_INPUT_FILE 22 .fi .PP .SS "خطاهای فایل خروجی (output file errors)" .PP .nf EXITCODE_CANNOT_WRITE_OUTPUT_FILE 40 (*) .fi .PP .SS "خطاهای شبکه (network errors)" .PP .nf EXITCODE_CANNOT_INITIALIZE_NETWORK 60 (*) EXITCODE_ASSOCIATION_ABORTED 70 .fi .PP .PP (*) در واقع، این کدها در حال حاضر توسط \fBechoscu\fP استفاده نمی‌شوند، بلکه به عنوان نگه‌دارندهٔ مکان (placeholder) برای گروه متناظر کدهای خروج عمل می‌کنند\&..SH "محیط (ENVIRONMENT)" .PP ابزار \fBechoscu\fP تلاش خواهد کرد فرهنگ‌داده‌های DICOM مشخص‌شده در متغیر محیطی \fIDCMDICTPATH\fP را بارگذاری کند\&. به‌طور پیش‌فرض، یعنی در صورتی که متغیر محیطی \fIDCMDICTPATH\fP مقداردهی نشده باشد، فایل \fI/dicom\&.dic\fP بارگذاری خواهد شد، مگر اینکه فرهنگ‌داده درون برنامه تعبیه شده باشد (پیش‌فرض برای Windows)\&. .PP رفتار پیش‌فرض ارجح است و از متغیر محیطی \fIDCMDICTPATH\fP فقط زمانی باید استفاده شود که به فرهنگ‌داده‌های جایگزین نیاز باشد\&. متغیر محیطی \fIDCMDICTPATH\fP ساختاری مشابه متغیر \fIPATH\fP در شل Unix دارد، به طوری که علامت دو نقطه (":") ورودی‌ها را از هم جدا می‌کند\&. در سیستم‌های Windows، از علامت نقطه-ویرگول (";") به عنوان جداکننده استفاده می‌شود\&. کد فرهنگ‌داده تلاش خواهد کرد تا هر فایل مشخص‌شده در متغیر محیطی \fIDCMDICTPATH\fP را بارگذاری کند\&. در صورتی که هیچ فرهنگ‌داده‌ای نتواند بارگذاری شود، یک خطا محسوب خواهد شد\&. .SH "کپی‌رایت و تکثیر (COPYRIGHT)" .PP حق نشر (C) 1994-2025 متعلق به OFFIS e\&.V\&., Escherweg 2, 26121 Oldenburg, Germany\&.