| dcmrecv(1) | OFFIS DCMTK | dcmrecv(1) |
نام (NAME)
dcmrecv - سرور دریافت پروندههای ذخیرهسازی DICOM (کلاس SCP)
خلاصه دستور (SYNOPSIS)
dcmrecv [options] port
توضیحات (DESCRIPTION)
برنامه dcmrecv یک ارائهدهنده کلاس سرویس (SCP) را برای کلاس سرویس ذخیرهسازی (Storage Service Class) پیادهسازی میکند. بر خلاف ابزار نامآشنای storescp، برنامه dcmrecv گزینههای کمتری دارد و بنابراین ممکن است استفاده از آن آسانتر باشد؛ این نکته دلیل بهکارگیری واژه «ساده» (simple) را در عنوان توضیح میدهد. هدف اصلی این برنامه دریافت مجموعهای از مجموعهدادههای DICOM از یک کاربر کلاس سرویس ذخیرهسازی (SCU) و ذخیره آنها در یک ساختار پوشه و فایل قابل پیکربندی است.
پارامترها (PARAMETERS)
port شماره پورت tcp/ip برای شنود
گزینهها (OPTIONS)
گزینههای عمومی (general options)
-h --help
چاپ این متن راهنما و خروج
--version
چاپ اطلاعات نسخه و خروج
--arguments
چاپ آرگومانهای بسطیافته خط فرمان
-q --quiet
حالت خاموش، عدم چاپ هشدارها و خطاها
-v --verbose
حالت پرگویی، چاپ جزئیات پردازش
-d --debug
حالت اشکالزدایی، چاپ اطلاعات اشکالزدایی
-ll --log-level [l]evel: string constant
(fatal, error, warn, info, debug, trace)
استفاده از سطح l برای ثبتکننده وقایع
-lc --log-config [f]ilename: string
استفاده از فایل پیکربندی f برای ثبتکننده وقایع
+v --verbose-pc
نمایش زمینههای ارائه در حالت پرگویی
گزینههای شبکه (network options)
نسخه پروتکل IP:
-i4 --ipv4
تنها استفاده از IPv4 (پیشفرض)
-i6 --ipv6
تنها استفاده از IPv6
-i0 --ip-auto
استفاده از پشته دوگانه IPv6/IPv4
پروفایل مذاکره ارتباط از فایل پیکربندی:
-xf --config-file [f]ilename, [p]rofile: string
استفاده از پروفایل p از فایل پیکربندی f
عنوان موجودیت برنامه (AE title):
-uca --use-called-aetitle
همیشه با عنوان AE فراخواندهشده پاسخ دهد (پیشفرض)
-aet --aetitle [a]etitle: string
تنظیم عنوان AE محلی و بررسی عنوان AE فراخواندهشده
سایر گزینههای شبکه:
-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)
-dhl --disable-host-lookup غیرفعال کردن جستجوی نام میزبان
گزینههای امنیت لایه انتقال (TLS) (transport layer security (TLS) options)
پشته پروتکل انتقال:
-tls --disable-tls
استفاده از اتصال معمولی TCP/IP (پیشفرض)
+tls --enable-tls [p]rivate key file, [c]ertificate file: string
استفاده از اتصال امن و احراز هویتشده TLS
گذرواژه کلید خصوصی (فقط با --enable-tls):
+ps --std-passwd
درخواست گذرواژه از کاربر در ورودی استاندارد stdin (پیشفرض)
+pw --use-passwd [p]assword: string
استفاده از گذرواژه مشخصشده
-pw --null-passwd
استفاده از رشته خالی به عنوان گذرواژه
قالب فایل کلید و گواهی:
-pem --pem-keys
خواندن کلیدها و گواهیها به صورت فایل PEM (پیشفرض)
-der --der-keys
خواندن کلیدها و گواهیها به صورت فایل DER
مرجع صدور گواهی:
+cf --add-cert-file [f]ilename: string
افزودن فایل گواهی به فهرست گواهیها
+cd --add-cert-dir [d]irectory: string
افزودن گواهیهای موجود در پوشه d به فهرست گواهیها
+crl --add-crl-file [f]ilename: string
افزودن فایل فهرست لغو گواهی
(مستلزم --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 (منسوخشده)
# تنها در صورتی در دسترس است که کتابخانه زیربنایی TLS از 3DES پشتیبانی کند
+pa --profile-aes
پروفایل اتصال انتقال امن AES TLS (منسوخشده)
+pn --profile-null
ارتباط بدون رمزنگاری همراه با احراز هویت
(منسوخشده، در IHE ATNA استفاده میشد)
مجموعه رمز (ciphersuite):
+cc --list-ciphers
فهرست کردن مجموعههای رمز TLS پشتیبانیشده و خروج
+cs --cipher [c]iphersuite name: string
افزودن مجموعه رمز به فهرست مجموعههای مورد مذاکره
+dp --dhparam [f]ilename: string
خواندن پارامترهای DH برای مجموعههای رمز DH/DSS
نشانگر نام سرور (SNI):
--no-sni
عدم استفاده از SNI (پیشفرض)
--expect-sni [s]erver name: string
انتظار درخواستها برای نام سرور s
مولد شبهتصادفی:
+rs --seed [f]ilename: string
تغذیه بذر مولد تصادفی با محتویات f
+ws --write-seed
بازنویسی بذر اصلاحشده (تنها با --seed)
+wf --write-seed-file [f]ilename: string (تنها با --seed)
نوشتن بذر اصلاحشده در فایل f
احراز هویت همتا:
-rc --require-peer-cert
اعتبارسنجی گواهی همتا، رد شدن در صورت عدم وجود (پیشفرض)
-vc --verify-peer-cert
اعتبارسنجی گواهی همتا در صورت وجود
-ic --ignore-peer-cert
عدم اعتبارسنجی گواهی همتا
گزینههای خروجی (output options)
عمومی:
-od --output-directory [d]irectory: string (پیشفرض: ".")
نوشتن اشیاء دریافتی در پوشه موجود d
تولید زیرپوشه:
-s --no-subdir
هیچ زیرپوشهای تولید نشود (پیشفرض)
+ssd --series-date-subdir
تولید زیرپوشهها از روی تاریخ سری (series date)
تولید نام فایل:
+fd --default-filenames
تولید نام فایل از روی UID نمونه (پیشفرض)
+fu --unique-filenames
تولید نام فایل یکتا بر اساس UID جدید
+fsu --short-unique-names
تولید نام فایل کوتاه شبهتصادفی یکتا
+fst --system-time-names
تولید نام فایل بر اساس زمان جاری سیستم
-fe --filename-extension [e]xtension: string (پیشفرض: هیچ)
افزودن e به تمام نام فایلهای تولیدشده
حالت ذخیرهسازی:
-B --normal
مجاز بودن تبدیلهای قالب ضمنی (پیشفرض)
+B --bit-preserving
نوشتن مجموعه داده دقیقاً همانگونه که دریافت شده است
--ignore
نادیده گرفتن مجموعه داده، دریافت شود اما ذخیره نگردد
نکات (NOTES)
کاربرد متداول (Typical Usage)
یک کاربرد معمول از dcmrecv دریافت نمونههای SOP ارسالشده از یک SCU ذخیرهسازی و ذخیره آنها به عنوان فایلهای DICOM است. دستور زیر دقیقاً همین کار را انجام میدهد:
dcmrecv --verbose <port> --config-file storescp.cfg default
اگر ساختار زیرپوشهای که خودکار ایجاد شود، نامهای فایل کوتاهتر و پسوند ".dcm" را برای تمام فایلهای DICOM ترجیح میدهید، از دستور زیر استفاده کنید:
dcmrecv -v -xf storescp.cfg default <port> --series-date-subdir
--short-unique-names
--filename-extension .dcm
در صورت وجود نمونههای SOP بسیار بزرگ یا اگر مجموعه داده باید دقیقاً همانگونه که دریافت شده است نوشته شود (مثلاً برای مقاصد اشکالزدایی)، میتوان از «حالت حفظ بیت» (bit preserving mode) استفاده کرد:
dcmrecv -v -xf storescp.cfg default <port> --bit-preserving
مجموعهدادههای دریافتی همیشه به عنوان فایلهای DICOM با همان نحو انتقالی ذخیره میشوند که برای انتقال در شبکه استفاده شده است.
انطباق با DICOM (DICOM Conformance)
اساساً برنامه dcmrecv از تمام کلاسهای SOP ذخیرهسازی به عنوان یک SCP، شامل کلاسهای اختصاصی (private)، پشتیبانی میکند. با این حال، این امر مستلزم آن است که یک پروفایل مذاکره ارتباط متناظر از یک فایل پیکربندی بارگذاری شود. قالب و معناشناسی این فایل پیکربندی در asconfig.txt مستند شده است.
بهطور پیشفرض، یعنی در صورتی که هیچ پروفایل مذاکره ارتباطی بارگذاری نشده باشد، dcmrecv تنها از کلاس SOP تایید (Verification SOP Class) به عنوان یک SCP (با نحو انتقال پیشفرض، یعنی Implicit VR Little Endian) پشتیبانی میکند.
در آینده، ممکن است گزینههای بیشتری اضافه شوند که امکان مشخص کردن مستقیم فهرست زمینههای ارائه پشتیبانیشده (یعنی ترکیب کلاس SOP و نحوهای انتقال) را بدون بارگذاری فایل پیکربندی فراهم کنند.
تولید زیرپوشه (Subdirectory Generation)
گزینه --series-date-subdir امکان تولید زیرپوشهها (در زیر پوشه خروجی مشخصشده) را بر اساس مقدار عنصر داده تاریخ سری (Series Date: 0008,0021) از مجموعه داده DICOM دریافتی فراهم میکند. اگر این مقدار از مجموعه داده قابل بازیابی باشد و معتبر باشد (یعنی شامل یک فیلد تاریخ معتبر DICOM باشد)، ساختار زیرپوشه به صورت زیر خواهد بود:
<output-directory>/data/<year>/<month>/<day>/<filename>
اگر تاریخ سری (Series Date: 0008,0021) قابل بازیابی نباشد یا نامعتبر باشد، از تاریخ جاری سیستم برای ساختار زیرپوشه زیر استفاده میشود:
<output-directory>/undef/<year><month><day>/<filename>
در هر دو حالت، <year> شامل ۴ رقم دهدهی و <month> و همچنین <day> شامل ۲ رقم دهدهی هستند.
تولید نام فایل (Filename Generation)
بهطور پیشفرض، نام فایلها برای ذخیره مجموعهدادههای DICOM دریافتی طبق الگوی زیر تولید میشوند:
<short-modality-prefix>.<sop-instance-uid><filename-extension>
اگر یک نمونه SOP یکسان دو بار دریافت شود، یک پیام هشدار گزارش شده و فایل موجود بازنویسی میشود.
گزینه --unique-filenames اطمینان حاصل میکند که هر مجموعه داده DICOM دریافتی در یک فایل جداگانه ذخیره شود، یعنی هیچ فایلی هرگز بازنویسی نشود. این کار با استفاده از یک شناسه یکتای (UID) تازه ایجادشده برای هر نام فایل تولیدی (و میانوند ".X" جهت جلوگیری از تداخل با مقادیر واقعی SOP Instance UID) انجام میپذیرد. الگوی نامگذاری برای این گزینه به این صورت است:
<short-modality-prefix>.X.<unique-identifier><filename-extension>
هنگامی که گزینه --short-unique-names استفاده میشود، نام فایلها توسط یک مولد نام شبهتصادفی تولید میشوند که همچنین عدم وجود تداخل را تضمین میکند (یعنی فایلهای موجود بازنویسی نمیشوند). این الگوی نامگذاری به این صورت است:
<short-modality-prefix>_<pseudo-random-name><filename-extension>
که در آن <pseudo-random-name> شامل ۱۶ رقم در نمادگذاری هگزادسیمال است.
در نهایت، گزینه --system-time-names امکان تولید نام فایلها را بر اساس زمان جاری سیستم فراهم میکند:
<date><time>.<short-modality-prefix><filename-extension>
که در آن <date> از "<year><month><day>" و <time> از "<hour><minute><second>.<micro-second>" تشکیل شده است. لطفاً توجه داشته باشید که اگر دقت زمان سیستم به اندازه کافی بالا نباشد (یعنی از میکروثانیه پشتیبانی نکند)، این الگو ممکن است منجر به تداخل نامگذاری شود.
محدودیتها (Limitations)
لطفاً توجه داشته باشید که گزینه --bit-preserving را نمیتوان همراه با گزینه --series-date-subdir به کار برد، زیرا مجموعه داده دریافتی مستقیماً در فایل ذخیره میشود و بنابراین مقدار تاریخ سری (Series Date: 0008,0021) پیش از ایجاد فایل در دسترس نیست.
ثبت گزارش (LOGGING)
سطح خروجی ثبت وقایع در ابزارهای مختلف خط فرمان و کتابخانههای زیربنایی توسط کاربر قابل تعیین است. بهطور پیشفرض، تنها خطاها و هشدارها در جریان خطای استاندارد نوشته میشوند. با استفاده از گزینه --verbose پیامهای اطلاعرسانی مانند جزئیات پردازش نیز گزارش میشوند. گزینه --debug میتواند برای دریافت جزئیات بیشتر درباره فعالیت داخلی، مثلاً برای مقاصد اشکالزدایی، استفاده شود. سایر سطوح ثبت وقایع را میتوان با گزینه --log-level انتخاب کرد. در حالت --quiet تنها خطاهای مهلک گزارش میشوند. در چنین رخدادهای خطای بسیار شدیدی، برنامه معمولاً خاتمه مییابد. برای جزئیات بیشتر درباره سطوح مختلف ثبت وقایع، به مستندات ماژول "oflog" مراجعه فرمایید.
در صورتی که خروجی ثبت وقایع باید در فایل نوشته شود (اختیاراً همراه با چرخش فایل گزارش)، در syslog (یونیکس) یا در گزارش رویداد (ویندوز)، میتوان از گزینه --log-config استفاده کرد. این فایل پیکربندی همچنین امکان هدایت تنها پیامهای خاص به یک جریان خروجی مشخص و فیلتر کردن پیامها بر اساس ماژول یا برنامهای که در آن تولید شدهاند را فراهم میکند. یک فایل پیکربندی نمونه در <etcdir>/logger.cfg ارائه شده است.
خط فرمان (COMMAND LINE)
تمامی ابزارهای خط فرمان از نمادگذاری زیر برای پارامترها استفاده میکنند: قلابها مقادیر اختیاری را در بر میگیرند (۰-۱)، سه نقطه انتهایی نشان میدهد که چندین مقدار مجاز است (۱-n)، و ترکیب هر دو به معنای ۰ تا n مقدار است.
گزینههای خط فرمان به ترتیب با علامت پیشوند '+' یا '-' از پارامترها متمایز میشوند. معمولاً ترتیب و موقعیت گزینههای خط فرمان دلخواه است (یعنی میتوانند در هر جایی ظاهر شوند). با این حال، اگر گزینهها مانعةالجمع باشند، گزینهای که در سمت راستتر قرار دارد به کار میرود. این رفتار با قواعد ارزیابی استاندارد پوستههای معمول یونیکس مطابقت دارد.
علاوه بر این، میتوان یک یا چند فایل دستور را با استفاده از علامت '@' به عنوان پیشوند نام فایل مشخص کرد (مانند @command.txt). چنین آرگومان دستوری پیش از هرگونه ارزیابی بیشتر با محتوای فایل متنی مربوطه جایگزین میشود (چندین فاصله خالی به عنوان یک جداکننده منفرد تلقی میشوند مگر اینکه بین دو علامت نقلقول قرار گرفته باشند). لطفاً توجه داشته باشید که یک فایل دستور نمیتواند شامل یک فایل دستور دیگر باشد. این رویکرد ساده اما کارآمد به کاربر امکان میدهد ترکیبهای رایج گزینهها/پارامترها را خلاصه کرده و از خط فرمانهای طولانی و گیجکننده جلوگیری کند (یک نمونه در فایل <datadir>/dumppat.txt ارائه شده است).
کدهای خروج (EXIT CODES)
ابزار dcmrecv هنگام خاتمه از کدهای خروج زیر استفاده میکند. این امکان به کاربر داده میشود تا علت خاتمه برنامه را بررسی کند.
عمومی (general)
EXITCODE_NO_ERROR 0 EXITCODE_COMMANDLINE_SYNTAX_ERROR 1
خطاهای فایل ورودی (input file errors)
EXITCODE_CANNOT_READ_INPUT_FILE 20 (*)
خطاهای فایل خروجی (output file errors)
EXITCODE_CANNOT_WRITE_OUTPUT_FILE 40 (*) EXITCODE_INVALID_OUTPUT_DIRECTORY 45
خطاهای شبکه (network errors)
EXITCODE_CANNOT_INITIALIZE_NETWORK 60 (*) EXITCODE_CANNOT_START_SCP_AND_LISTEN 64 EXITCODE_INVALID_ASSOCIATION_CONFIG 66 EXITCODE_CANNOT_CREATE_TRANSPORT_LAYER 71
(*) در واقع، این کدها در حال حاضر توسط dcmrecv استفاده نمیشوند، بلکه به عنوان نگهدارنده مکان برای گروه متناظر از کدهای خروج عمل میکنند.
محیط (ENVIRONMENT)
ابزار dcmrecv تلاش خواهد کرد واژهنامههای دادههای DICOM مشخصشده در متغیر محیطی DCMDICTPATH را بارگذاری کند. بهطور پیشفرض، یعنی اگر متغیر محیطی DCMDICTPATH تنظیم نشده باشد، فایل <datadir>/dicom.dic بارگذاری خواهد شد مگر اینکه واژهنامه درون خود برنامه ساخته شده باشد (پیشفرض برای ویندوز).
رفتار پیشفرض باید ترجیح داده شود و از متغیر محیطی DCMDICTPATH تنها زمانی استفاده شود که به واژهنامههای دادهای جایگزین نیاز باشد. متغیر محیطی DCMDICTPATH همان قالبی را دارد که متغیر PATH در پوسته یونیکس دارد که در آن دو نقطه (":") ورودیها را جدا میکند. در سیستمهای ویندوز، از نقطه-ویرگول (";") به عنوان جداکننده استفاده میشود. کد واژهنامه دادهها تلاش میکند هر فایل مشخصشده در متغیر محیطی DCMDICTPATH را بارگذاری کند. در صورتی که هیچ واژهنامه دادهای بارگذاری نشود، یک خطا خواهد بود.
فایلها (FILES)
<docdir>/asconfig.txt -
مستندات
فایل
پیکربندی
<etcdir>/storescp.cfg - نمونه
پروفایل
مذاکره
ارتباط
همچنین ببینید (SEE ALSO)
حق نشر (COPYRIGHT)
Copyright (C) 2013-2025 by OFFIS e.V., Escherweg 2, 26121 Oldenburg, Germany.
| Thu Jul 9 2026 18:43:40 | Version 3.7.0 |