.TH "dcmsend" 1 "Thu Jul 9 2026 18:43:40" "Version 3.7.0" "OFFIS DCMTK" \" -*- nroff -*- .nh .SH "نام (NAME)" dcmsend \- یک SCU (ارسال‌کننده) ساده برای ذخیره‌سازی DICOM .PP .SH "خلاصه دستور (SYNOPSIS)" .PP .PP .nf dcmsend [options] peer port dcmfile-in\&.\&.\&. .fi .PP .SH "توضیحات (DESCRIPTION)" .PP برنامهٔ \fBdcmsend\fP یک Service Class User (به اختصار SCU) را برای کلاس خدمت ذخیره‌سازی (Storage Service Class) پیاده‌سازی می‌کند\&. بر خلاف ابزار شناخته‌شدهٔ \fBstorescu\fP، ابزار \fBdcmsend\fP گزینه‌های کمتری دارد و از این رو استفاده از آن ساده‌تر است؛ این موضوع اصطلاح «ساده» (simple) را در عنوان آن نیز توضیح می‌دهد\&. هدف اصلی این برنامه ارسال دسته‌ای کامل از فایل‌های DICOM به یک Storage Service Class Provider (به اختصار SCP) است\&. \fBdcmsend\fP هم از ارتباط‌های (associations) چندگانه (یکی پس از دیگری) و هم در صورت نیاز به انتقال، از فشرده‌گشایی نمونه‌های DICOM SOP پشتیبانی می‌کند\&. .SH "پارامترها (PARAMETERS)" .PP .PP .nf peer نام میزبان طرف مقابل (peer) در DICOM port شماره درگاه tcp/ip طرف مقابل dcmfile-in فایل یا دایرکتوری DICOM جهت ارسال .fi .PP .SH "گزینه‌ها (OPTIONS)" .PP .SS "گزینه‌های عمومی" .PP .nf -h --help چاپ این متن راهنما و خروج --version چاپ اطلاعات نسخه و خروج --list-decoders فهرست کردن نحوهای انتقال (transfer syntaxes) رمزگشاها و خروج --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 برای ثبت‌کننده +v --verbose-pc نمایش زمینه‌های ارائه (presentation contexts) در حالت پرگو .fi .PP .SS "گزینه‌های ورودی" .PP .nf قالب فایل ورودی: +f --read-file خواندن قالب فایل یا مجموعه داده (dataset) +fo --read-file-only تنها خواندن قالب فایل (پیش‌فرض) -f --read-dataset خواندن مجموعه داده بدون اطلاعات متای فایل فایل‌های ورودی: +rd --read-from-dicomdir خواندن اطلاعات فایل‌های ورودی از DICOMDIR +sd --scan-directories پویش دایرکتوری‌ها برای فایل‌های ورودی (dcmfile-in) +sp --scan-pattern [p]attern: string (تنها همراه با --scan-directories) الگو برای تطبیق نام فایل (کاراکترهای عام / wildcards) # احتمالاً در همهٔ سیستم‌ها در دسترس نیست -r --no-recurse عدم پیمایش بازگشتی در داخل دایرکتوری‌ها (پیش‌فرض) +r --recurse پیمایش بازگشتی در دایرکتوری‌های مشخص‌شده .fi .PP.SS "گزینه‌های پردازش (processing options)" .PP .nf تبدیل transfer syntax: -dn --decompress-never هرگز مجموعه‌داده‌های فشرده‌شده را از فشرده‌سازی خارج نکن +dls --decompress-lossless فقط فشرده‌سازی بدون‌اتلاف را از حالت فشرده خارج کن (پیش‌فرض) +dly --decompress-lossy هر دو فشرده‌سازی بااتلاف و بدون‌اتلاف را از حالت فشرده خارج کن سطح فشرده‌سازی deflate: +cl --compression-level [l]evel: integer (پیش‌فرض: 6) 0=فشرده‌نشده، 1=سریع‌ترین، 9=بهترین فشرده‌سازی سایر گزینه‌های پردازش: -nh --no-halt در مواجهه با اولین فایل ورودی نامعتبر یا در صورت برخورد با ذخیره‌سازی ناموفق متوقف نشو -nip --no-illegal-proposal هیچ presentation contextای را که شامل transfer syntax پیش‌فرض نیست پیشنهاد نده (در صورت نیاز) -nuc --no-uid-checks مقادیر UID فایل‌های ورودی را بررسی نکن .fi .PP .SS "گزینه‌های شبکه (network options)" .PP .nf نسخه پروتکل IP: -i4 --ipv4 فقط از IPv4 استفاده کن (پیش‌فرض) -i6 --ipv6 فقط از IPv6 استفاده کن -i0 --ip-auto استفاده از جستجوی DNS برای تعیین پروتکل IP عناوین موجودیت کاربردی (application entity titles): -aet --aetitle [a]etitle: string تنظیم عنوان AE فراخواننده (پیش‌فرض: DCMSEND) -aec --call [a]etitle: string تنظیم عنوان AE فراخوانده‌شدهٔ طرف مقابل (پیش‌فرض: ANY-SCP) مدیریت ارتباط (association handling): +ma --multi-associations استفاده از چندین association (یکی پس از دیگری) در صورت نیاز برای انتقال نمونه‌ها (پیش‌فرض) -ma --single-association همیشه تنها از یک association استفاده کن سایر گزینه‌های شبکه: -to --timeout [s]econds: integer (پیش‌فرض: نامحدود) مهلت زمانی برای درخواست‌های اتصال -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) --max-send-pdu [n]umber of bytes: integer (4096\&.\&.131072) محدود کردن حداکثر PDU ارسالی به n بایت .fi .PP.SS "گزینه‌های خروجی (output options)" .PP .nf عمومی: +crf --create-report-file [f]ilename: string ایجاد یک گزارش با جزئیات از انتقال (در صورت موفقیت) و نوشتن آن در فایل متنی f .fi .PP .SH "نکات (NOTES)" .PP .SS "کاربرد متداول (Typical Usage)" یک مورد کاربرد معمول \fBdcmsend\fP ارسال نمونه‌های دلخواه SOP است که به‌صورت فایل‌های DICOM در یک storage SCP ذخیره شده‌اند\&. دستور زیر دقیقاً همین کار را انجام می‌دهد: .PP .PP .nf dcmsend --verbose *\&.dcm .fi .PP .PP اگر فایل‌های DICOM در سلسله‌مراتبی از دایرکتوری‌ها در زیر دایرکتوری "IMAGES" ذخیره شده باشند، می‌توان از دستور زیر استفاده کرد: .PP .PP .nf dcmsend -v --scan-directories --recurse IMAGES .fi .PP .PP همچنین می‌توان چندین دایرکتوری را مشخص کرد و رویکردهای یادشده را ترکیب نمود (با استفاده از هر دو نام فایل و دایرکتوری): .PP .PP .nf dcmsend -v +sd +r IMAGES_1 IMAGES_2 test\&.img *\&.dcm .fi .PP .PP اگر به نمونه‌های SOP از درون یک فایل DICOMDIR ارجاع داده شده باشد، می‌توان از گزینهٔ \fI--read-from-dicomdir\fP (یا \fI+rd\fP) برای ارسال همهٔ فایل‌های DICOM ارجاع‌داده‌شده بدون بارگذاری آن‌ها پیش از مذاکرهٔ ارتباط (association negotiation) استفاده کرد: .PP .PP .nf dcmsend -v --read-from-dicomdir DICOMDIR .fi .PP .PP و باز هم، تمام رویکردهای بالا را می‌توان به این صورت ترکیب کرد: .PP .PP .nf dcmsend -v +sd +r +rd IMAGES_1 IMAGES_2 test\&.img DICOMDIR *\&.dcm .fi .PP .PP گزینهٔ پیش‌فرض \fI--read-file-only\fP اطمینان حاصل می‌کند که فقط فایل‌های DICOM (یعنی آن‌هایی که دارای هدر متا و واژهٔ جادویی "DICM" پس از مقدمه هستند) پردازش شوند\&. معمولاً هنگام پردازش تعداد زیادی فایل، ایدهٔ خوبی است که با اولین فایل ورودی نامعتبر یا در صورت مواجهه با یک ذخیره‌سازی ناموفق، برنامه متوقف نشود\&. این کار با استفاده از گزینهٔ \fI--no-halt\fP امکان‌پذیر است\&. با این حال لطفاً توجه داشته باشید که «ذخیره‌سازی ناموفق» به این معنی نیست که وضعیت DIMSE در پاسخ C-STORE بیانگر خطا است؛ بلکه به این معنی است که درخواست C-STORE نتوانسته است به storage SCP ارسال شود\&. .PP اگر به بیش از ۱۲۸ مورد Presentation Context نیاز باشد، که حداکثر تعداد مجاز بر اساس استاندارد DICOM است، پس از تکمیل ارتباط قبلی، یک ارتباط (association) جدید آغاز می‌شود\&. در مواردی که این رفتار ناخواسته است، می‌توان آن را با استفاده از گزینهٔ \fI--single-association\fP غیرفعال کرد\&. علاوه بر این، اینکه آیا فقط مجموعه‌داده‌های فشرده‌شدهٔ بدون‌اتلاف (lossless) از حالت فشرده خارج شوند (در صورت نیاز) که حالت پیش‌فرض است، یا مجموعه‌داده‌های فشرده‌شدهٔ بااتلاف (lossy) نیز از حالت فشرده خارج شوند، با استفاده از گزینه‌های \fI--decompress-xxx\fP قابل تعیین است\&. .PP به‌منظور دریافت نمای کلی و اطلاعات دقیق دربارهٔ انتقال نمونه‌های DICOM SOP، می‌توان از گزینهٔ \fI--create-report-file\fP برای ایجاد فایل متنی متناظر استفاده کرد\&. با این حال، این فایل تنها در مرحلهٔ پایانی ایجاد می‌شود، مشروط بر اینکه برنامه پیش از آن (با یک خطا) متوقف نشده باشد\&. .SS "پیمایش دایرکتوری‌ها (Scanning Directories)" افزودن دایرکتوری‌ها به‌عنوان پارامتر در خط فرمان تنها در صورتی منطقی است که گزینهٔ \fI--scan-directories\fP نیز داده شده باشد\&. اگر قرار است فایل‌های موجود در دایرکتوری‌های ارائه‌شده مطابق با یک الگوی نام مشخص انتخاب شوند (مثلاً با استفاده از تطبیق نویسه‌های عمومی (wildcard))، باید از گزینهٔ \fI--scan-pattern\fP استفاده شود\&. لطفاً توجه داشته باشید که این الگوی فایل فقط بر فایل‌های درون دایرکتوری‌های پیمایش‌شده اعمال می‌شود، و چنانچه هرگونه الگوی دیگری در خط فرمان خارج از گزینهٔ \fI--scan-pattern\fP مشخص شده باشد (مثلاً برای انتخاب فایل‌های بیشتر)، بر دایرکتوری‌های مشخص‌شده اعمال نخواهند شد\&. .PP بنابراین، سومین مورد از مثال‌های بالا در دایرکتوری‌های IMAGES_1 و IMAGES_2 به‌صورت بازگشتی پیمایش می‌کند و فایل‌هایی را که در این دو پوشه و تمام زیرپوشه‌های آن‌ها قرار دارند (به‌دلیل گزینهٔ \fI+r\fP) منتقل می‌نماید\&. علاوه بر این، \fBdcmsend\fP فایل "test\&.img" و تمامی فایل‌های با پسوند "dcm" را از پوشهٔ کاری جاری منتقل خواهد کرد\&. توجه داشته باشید که ارائهٔ نام دایرکتوری‌ها بدون فعال کردن گزینهٔ \fI+sd\fP فاقد معنی است\&. .SS "انطباق با دایکام (DICOM Conformance)" اساساً برنامهٔ \fBdcmsend\fP از تمام کلاس‌های Storage SOP به‌عنوان یک SCU، از جمله کلاس‌های اختصاصی (private)، پشتیبانی می‌کند\&. به‌طور پیش‌فرض، برنامه شناسهٔ SOP Class UID فایل DICOM را بررسی می‌کند تا مطمئن شود فقط نمونه‌های معتبر SOP ارسال می‌شوند\&. با استفاده از گزینهٔ \fI--no-uid-checks\fP می‌توان این بررسی را غیرفعال کرد\&. .PP برنامهٔ \fBdcmsend\fP همچنین از تمام سینتکس‌های انتقال (Transfer Syntaxes) تعریف‌شده در استاندارد DICOM پشتیبانی می‌کند\&. سینتکس‌های انتقال اختصاصی تنها در صورتی قابل استفاده هستند که بررسی UID با گزینهٔ \fI--no-uid-checks\fP غیرفعال شده باشد\&. با این حال لطفاً توجه داشته باشید که تنها تعداد محدودی از Transfer Syntaxها برای تبدیل به Transfer Syntax پیش‌فرض DICOM یعنی (Implicit VR Little Endian) پشتیبانی می‌شوند\&. با گزینهٔ \fI--list-decoders\fP سینتکس‌های انتقال پشتیبانی‌شده به‌صورت بومی یا توسط رمزگشاها فهرست می‌شوند\&. خروجی معمولاً به صورت زیر است: .PP .PP .nf Transfer Syntaxes supported natively: - Little Endian Implicit - Little Endian Explicit - Big Endian Explicit Transfer Syntaxes supported by decoders: - Deflated Explicit VR Little Endian - JPEG Baseline - JPEG Extended, Process 2+4 - JPEG Spectral Selection, Non-hierarchical, Process 6+8 - JPEG Full Progression, Non-hierarchical, Process 10+12 - JPEG Lossless, Non-hierarchical, Process 14 - JPEG Lossless, Non-hierarchical, 1st Order Prediction - JPEG-LS Lossless - JPEG-LS Lossy (Near-lossless) - RLE Lossless .fi .PP .PP از آنجا که \fBdcmsend\fP سعی می‌کند تا حد امکان برای کاربر ساده باشد، به‌طور پیش‌فرض ممکن است Presentation Contextهایی به SCP پیشنهاد شوند که از نظر فنی دقیق «غیرمجاز» هستند\&. دلیل این امر آن است که طبق استاندارد DICOM، برنامهٔ SCU همیشه باید Transfer Syntax پیش‌فرض DICOM را حداقل در یک Presentation Context مرتبط با هر abstract syntax (یعنی SOP class) پیشنهاد دهد\&. این الزام در صورتی که SCU تنها به نمونهٔ SOP در فرمت فشرده‌سازی بااتلاف دسترسی داشته باشد یا داده‌های پیکسلیِ از حالت فشرده خارج‌شده برای کدگذاری بیش از حد بزرگ باشند، لغو می‌شود\&. با گزینهٔ \fI--no-illegal-proposal\fP می‌توان رفتار کاملاً منطبق با DICOM را اجبار کرد، یعنی هیچ Presentation Context احتمالاً غیرمجازی پیشنهاد نخواهد شد، اما نمونهٔ متناظر SOP (در صورت نیاز) رد می‌شود\&. با این حال توجه داشته باشید که اندازهٔ داده‌های پیکسلیِ فشرده‌گشایی‌شده بررسی نمی‌شود\&. .PP سینتکس انتقال پیش‌فرض برای "Lossless JPEG Compression" ،"Lossy JPEGCompression" و غیره، همیشه بر اساس الزامات استاندارد DICOM پیشنهاد نمی‌شوند\&. همین محدودیت در مورد سایر طرح‌های فشرده‌سازی نیز صدق می‌کند\&. برای جزئیات به بخش 10 استاندارد DICOM PS 3\&.5 مراجعه کنید\&..SH "ثبت وقایع (LOGGING)" .PP سطح خروجی ثبت وقایع در ابزارهای مختلف خط فرمان و کتابخانه‌های زیربنایی می‌تواند توسط کاربر تعیین شود\&. به‌طور پیش‌فرض، تنها خطاها و هشدارها در جریان خطای استاندارد نوشته می‌شوند\&. با استفاده از گزینهٔ \fI--verbose\fP، پیام‌های اطلاع‌رسانی مانند جزئیات پردازش نیز گزارش می‌شوند\&. گزینهٔ \fI--debug\fP را می‌توان برای دریافت جزئیات بیشتر در مورد فعالیت‌های داخلی، برای نمونه جهت اشکال‌زدایی، استفاده کرد\&. سایر سطوح ثبت وقایع با استفاده از گزینهٔ \fI--log-level\fP قابل انتخاب هستند\&. در حالت \fI--quiet\fP تنها خطاهای مهلک گزارش می‌شوند\&. در چنین رخدادهای خطای بسیار وخیمی، برنامه معمولاً خاتمه می‌یابد\&. برای جزئیات بیشتر دربارهٔ سطوح مختلف ثبت وقایع، به مستندات ماژول «oflog» مراجعه کنید\&. .PP در صورتی که نیاز باشد خروجی ثبت وقایع در یک فایل (اختیاراً به همراه چرخش فایل لاگ)، در syslog (در Unix) یا در event log (در Windows) نوشته شود، می‌توان از گزینهٔ \fI--log-config\fP استفاده کرد\&. این فایل پیکربندی همچنین امکان هدایت تنها پیام‌های مشخص به یک جریان خروجی خاص و فیلتر کردن پیام‌ها بر اساس ماژول یا برنامه‌ای که در آن ایجاد شده‌اند را فراهم می‌کند\&. یک نمونه فایل پیکربندی در مسیر \fI/logger\&.cfg\fP ارائه شده است\&. .SH "خط فرمان (COMMAND LINE)" .PP همهٔ ابزارهای خط فرمان از نشانه‌گذاری زیر برای پارامترها استفاده می‌کنند: کروشه‌ها مقادیر اختیاری (۰-۱) را در بر می‌گیرند، سه نقطه در انتها نشان‌دهندهٔ مجاز بودن چندین مقدار (۱-n) است، و ترکیب هر دو به معنای ۰ تا n مقدار است\&. .PP گزینه‌های خط فرمان به ترتیب با یک علامت پیشرو '+' یا '-' از پارامترها متمایز می‌شوند\&. معمولاً ترتیب و موقعیت گزینه‌های خط فرمان اختیاری است (یعنی می‌توانند در هر جایی قرار گیرند)\&. با این حال، اگر گزینه‌ها مانعة‌الجمع باشند، گزینه‌ای که در سمت راست‌تر قرار دارد اعمال می‌شود\&. این رفتار با قواعد استاندارد ارزیابی در شل‌های رایج Unix مطابقت دارد\&. .PP علاوه بر این، می‌توان یک یا چند فایل دستور را با استفاده از علامت '@' به عنوان پیشوند نام فایل مشخص کرد (مانند \fI@command\&.txt\fP)\&. چنین آرگومان دستوری پیش از هرگونه ارزیابی بیشتر، با محتوای فایل متنی مربوطه جایگزین می‌شود (چندین نویسهٔ فاصلهٔ خالی متوالی به عنوان یک جداکنندهٔ واحد در نظر گرفته می‌شوند، مگر آنکه بین دو علامت نقل‌قول قرار گرفته باشند)\&. لطفاً توجه داشته باشید که یک فایل دستور نمی‌تواند شامل یک فایل دستور دیگر باشد\&. این رویکرد ساده اما مؤثر، امکان خلاصه کردن ترکیب‌های رایج گزینه‌ها/پارامترها را فراهم می‌کند و از خط فرمان‌های طولانی و گیج‌کننده جلوگیری می‌نماید (یک نمونه در فایل \fI/dumppat\&.txt\fP ارائه شده است)\&. .SH "کدهای خروج (EXIT CODES)" .PP ابزار \fBdcmsend\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_NO_INPUT_FILES 21 EXITCODE_INVALID_INPUT_FILE 22 EXITCODE_NO_VALID_INPUT_FILES 23 .fi .PP .SS "خطاهای فایل خروجی (output file errors)" .PP .nf EXITCODE_CANNOT_WRITE_OUTPUT_FILE 40 (*) EXITCODE_CANNOT_WRITE_REPORT_FILE 43 .fi .PP .SS "خطاهای شبکه (network errors)" .PP .nf EXITCODE_CANNOT_INITIALIZE_NETWORK 60 EXITCODE_CANNOT_NEGOTIATE_ASSOCIATION 61 EXITCODE_CANNOT_SEND_REQUEST 62 EXITCODE_CANNOT_ADD_PRESENTATION_CONTEXT 65 .fi .PP .PP (*) در واقع، این کدها در حال حاضر توسط \fBdcmsend\fP استفاده نمی‌شوند، بلکه به عنوان جای‌نگه‌دار (placeholder) برای گروه متناظر کدهای خروج عمل می‌کنند\&. .SH "محیط (ENVIRONMENT)" .PP ابزار \fBdcmsend\fP تلاش خواهد کرد لغت‌نامه‌های داده‌های DICOM مشخص‌شده در متغیر محیطی \fIDCMDICTPATH\fP را بارگذاری کند\&. به‌طور پیش‌فرض، یعنی در صورتی که متغیر محیطی \fIDCMDICTPATH\fP مقداردهی نشده باشد، فایل \fI/dicom\&.dic\fP بارگذاری خواهد شد مگر اینکه لغت‌نامه در خود برنامه تعبیه شده باشد (حالت پیش‌فرض در Windows)\&. .PP رفتار پیش‌فرض باید ترجیح داده شود و از متغیر محیطی \fIDCMDICTPATH\fP تنها زمانی استفاده شود که لغت‌نامه‌های دادهٔ جایگزین مورد نیاز باشند\&. قالب متغیر محیطی \fIDCMDICTPATH\fP مشابه متغیر \fIPATH\fP در شل Unix است که در آن دونقطه (":") مدخل‌ها را از یکدیگر جدا می‌کند\&. در سیستم‌های Windows، از یک نقطه‌ویرگول (";") به عنوان جداکننده استفاده می‌شود\&. کد لغت‌نامهٔ داده تلاش خواهد کرد هر فایل مشخص‌شده در متغیر محیطی \fIDCMDICTPATH\fP را بارگذاری کند\&. بارگذاری نشدن هیچ لغت‌نامهٔ داده‌ای یک خطا محسوب می‌شود\&. .SH "همچنین ببینید (SEE ALSO)" .PP \fBdcmrecv\fP(1), \fBstorescu\fP(1), \fBstorescp\fP(1) .SH "کپی‌رایت و تکثیر (COPYRIGHT)" .PP حق نشر (C) 2011-2025 متعلق است به OFFIS e\&.V\&., Escherweg 2, 26121 Oldenburg, Germany\&.