| dcmdump(1) | OFFIS DCMTK | dcmdump(1) |
نام (NAME)
dcmdump - استخراج و نمایش متنی محتوای فایل و مجموعه دادههای دایکام (DICOM)
خلاصه دستور (SYNOPSIS)
dcmdump [options] dcmfile-in...
توضیحات (DESCRIPTION)
ابزار dcmdump محتوای یک فایل DICOM (فرمت فایل یا مجموعه داده خام) را به صورت متنی در خروجی استاندارد (stdout) نمایش میدهد. مشخصههایی با فیلدهای مقدار بسیار بزرگ (مانند دادههای پیکسلی) میتوانند به صورت "(not loaded)" توصیف شوند. فیلدهای مقدار متنی داخل قلاب ([]) محصور میشوند. شناسههای یکتای شناختهشده (UIDs) با نام خود به همراه پیشوند مساوی (مانند "=MRImageStorage") نمایش داده میشوند، مگر اینکه این نگاشت به صراحت غیرفعال شده باشد. فیلدهای مقدار خالی به صورت "(no value available)" نمایش مییابند.
اگر dcmdump یک مجموعه داده خام (دادههای DICOM بدون فراداده سرایند فرمت فایل) را بخواند، تلاش میکند تا سینتکس انتقال (Transfer Syntax) را با بررسی چند بایت اول فایل حدس بزند. حدس زدن صحیح سینتکس انتقال همیشه امکانپذیر نیست و بهتر است در صورت امکان، یک مجموعه داده را (با استفاده از ابزار dcmconv) به یک فرمت فایل تبدیل کنید. همچنین میتوان از گزینههای -f و -t[ieb] استفاده کرد تا dcmdump مجبور به خواندن مجموعه داده با یک سینتکس انتقال مشخص شود.
پارامترها (PARAMETERS)
dcmfile-in فایل یا دایرکتوری ورودی DICOM برای استخراج اطلاعات ("-" برای ورودی استاندارد)
گزینهها (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 برای ثبتکننده لاگ
گزینههای ورودی (input options)
فرمت فایل ورودی:
+f --read-file
خواندن فرمت فایل یا مجموعه داده (پیشفرض)
+fo --read-file-only
فقط خواندن فرمت فایل
-f --read-dataset
خواندن مجموعه داده بدون اطلاعات متای فایل
سینتکس انتقال ورودی:
-t= --read-xfer-auto
استفاده از تشخیص خودکار TS (پیشفرض)
-td --read-xfer-detect
نادیده گرفتن TS مشخصشده در سرایند متای فایل
-te --read-xfer-little
خواندن با TS از نوع صریح (explicit VR) و little endian
-tb --read-xfer-big
خواندن با TS از نوع صریح (explicit VR) و big endian
-ti --read-xfer-implicit
خواندن با TS از نوع ضمنی (implicit VR) و little endian
فایلهای ورودی:
+sd --scan-directories
پویش دایرکتوریها برای فایلهای ورودی (dcmfile-in)
+sp --scan-pattern [p]attern: string (تنها با --scan-directories)
الگو برای تطبیق نام فایل (کاراکترهای عام / wildcards)
# ممکن است در همه سیستمها در دسترس نباشد
-r --no-recurse
عدم پیمایش بازگشتی در دایرکتوریها (پیشفرض)
+r --recurse
پیمایش بازگشتی در دایرکتوریهای مشخصشده
مقادیر طولانی برچسبها (tag):
+M --load-all
بارگذاری مقادیر بسیار طولانی برچسبها (پیشفرض)
-M --load-short
عدم بارگذاری مقادیر بسیار طولانی (مانند دادههای پیکسلی)
+R --max-read-length [k]bytes: integer (4..4194302, پیشفرض: 4)
تنظیم آستانه مقادیر طولانی به k کیلوبایت
تجزیه اطلاعات متای فایل:
+ml --use-meta-length
استفاده از طول گروه اطلاعات متای فایل (پیشفرض)
-ml --ignore-meta-length
نادیده گرفتن طول گروه اطلاعات متای فایل
تجزیه مشخصههای با طول فرد:
+ao --accept-odd-length
پذیرش مشخصههای با طول فرد (پیشفرض)
+ae --assume-even-length
فرض کردن طول واقعی به اندازه یک بایت بیشتر
مدیریت VR صریح (explicit VR):
+ev --use-explicit-vr
استفاده از VR صریح از مجموعه داده (پیشفرض)
-ev --ignore-explicit-vr
نادیده گرفتن VR صریح (ترجیح دادن دیکشنری دادهها)
مدیریت VR غیراستاندارد:
+vr --treat-as-unknown
در نظر گرفتن VR غیراستاندارد به عنوان ناشناخته (پیشفرض)
-vr --assume-implicit
تلاش برای خواندن با TS از نوع implicit VR little endian
مدیریت عناصر UN با طول تعریفنشده:
+ui --enable-cp246
خواندن UN با طول تعریفنشده به عنوان implicit VR (پیشفرض)
-ui --disable-cp246
خواندن UN با طول تعریفنشده به عنوان explicit VR
مدیریت عناصر UN با طول تعریفشده:
-uc --retain-un
نگهداشتن عناصر به صورت UN (پیشفرض)
+uc --convert-un
تبدیل به VR واقعی در صورت شناخته بودن
مدیریت عناصر اختصاصی با حداکثر طول (implicit VR):
-sq --maxlength-dict
خواندن به صورت تعریفشده در دیکشنری (پیشفرض)
+sq --maxlength-seq
خواندن به عنوان دنباله (sequence) با طول تعریفنشده
مدیریت آیتمهای محدودکننده اشتباه:
-rd --use-delim-items
استفاده از آیتمهای محدودکننده از مجموعه داده (پیشفرض)
+rd --replace-wrong-delim
جایگزینی آیتمهای محدودکننده اشتباه دنباله/آیتم
مدیریت عناصر غیرمجاز OB/OW با طول تعریفنشده:
-oi --illegal-obow-rej
رد کردن مجموعه داده دارای عنصر غیرمجاز (پیشفرض)
+oi --illegal-obow-conv
تبدیل عنصر غیرمجاز OB/OW با طول تعریفنشده به SQ
مدیریت دنباله VOI LUT با VR از نوع OW و طول صریح:
-vi --illegal-voi-rej
رد کردن مجموعه داده دارای VOI LUT غیرمجاز (پیشفرض)
+vi --illegal-voi-conv
تبدیل VOI LUT غیرمجاز به SQ
مدیریت دادههای پیکسلی با طول صریح برای سینتکسهای انتقال کپسولهشده:
-pe --abort-expl-pixdata
لغو عملیات در صورت وجود دادههای پیکسلی با طول صریح (پیشفرض)
+pe --use-expl-pixdata
استفاده از دادههای پیکسلی با طول صریح
مدیریت خطاهای عمومی تجزیهکننده:
+Ep --ignore-parse-errors
تلاش برای بازیابی از خطاهای تجزیه
-Ep --handle-parse-errors
مدیریت خطاهای تجزیه و توقف تجزیه (پیشفرض)
سایر گزینههای تجزیه:
+st --stop-after-elem [t]ag: "gggg,eeee" یا نام دیکشنری
توقف تجزیه پس از عنصر مشخصشده توسط t
+sb --stop-before-elem [t]ag: "gggg,eeee" یا نام دیکشنری
توقف تجزیه قبل از عنصر مشخصشده توسط t
# فقط عناصر موجود در سطح اصلی مجموعه داده را در نظر میگیرد و
# حتی در صورت عدم وجود برچسب دادهشده در فایل نیز کار میکند
تصحیح خودکار دادهها:
+dc --enable-correction
فعالسازی تصحیح خودکار دادهها (پیشفرض)
-dc --disable-correction
غیرفعالسازی تصحیح خودکار دادهها
فرمت جریان بیت ورودی فشردهشده (deflated):
+bd --bitstream-deflated
انتظار جریان بیت فشردهشده deflated (پیشفرض)
+bz --bitstream-zlib
انتظار جریان بیت فشردهشده zlib
گزینههای پردازش (processing options)
مجموعه نویسههای خاص (specific character set):
+U8 --convert-to-utf8
تبدیل تمام مقادیر عناصری که تحت تأثیر
Specific Character Set (0008,0005) هستند به UTF-8
# نیازمند پشتیبانی از کتابخانه رمزگذاری نویسه زیرین است
# (برای اطلاع از کتابخانه موجود، خروجی --version را ببینید)
گزینههای خروجی (output options)
چاپ:
+L --print-all
چاپ کامل مقادیر طولانی برچسبها
-L --print-short
چاپ کوتاهشده مقادیر طولانی برچسبها (پیشفرض)
+T --print-tree
چاپ ساختار سلسلهمراتبی به عنوان یک درخت ساده
-T --print-indented
چاپ ساختار سلسلهمراتبی با تورفتگی (پیشفرض)
+F --print-filename
چاپ سرایند با نام فایل برای هر فایل ورودی
+Fs --print-file-search
چاپ سرایند با نام فایل فقط برای فایلهای ورودی
حاوی یکی از برچسبهای جستجو شده
نگاشت:
+Un --map-uid-names
نگاشت شمارههای UID شناختهشده به نامها (پیشفرض)
-Un --no-uid-names
عدم نگاشت شمارههای UID شناختهشده به نامها
نقلقول و اسکیپ:
+Qn --quote-nonascii
نقلقول نویسههای غیر ASCII و کنترلی به صورت نشانهگذاری XML
+Qo --quote-as-octal
نقلقول نویسههای غیر ASCII و کنترلی به عنوان اعداد هشتهشتی (octal)
-Qn --print-nonascii
چاپ نویسههای غیر ASCII و کنترلی (پیشفرض)
رنگ:
+C --print-color
استفاده از کدهای گریز ANSI برای خروجی رنگی
-C --no-color
عدم استفاده از کدهای گریز ANSI (پیشفرض)
مدیریت خطا:
-E --stop-on-error
عدم چاپ در صورت آسیبدیده بودن فایل (پیشفرض)
+E --ignore-errors
تلاش برای چاپ حتی در صورت آسیبدیده بودن فایل
جستجو:
+P --search [t]ag: "gggg,eeee" یا نام دیکشنری
چاپ خروجی متنی برچسب t
این گزینه میتواند چندین بار مشخص شود
(پیشفرض: کل فایل چاپ میشود)
+s --search-all
چاپ تمام نمونههای برچسبهای جستجو شده (پیشفرض)
-s --search-first
فقط چاپ اولین نمونه از برچسبهای جستجو شده
+p --prepend
افزودن سلسلهمراتب دنباله به ابتدای برچسب چاپشده،
مشخصشده با: (gggg,eeee).(gggg,eeee).*
(فقط در صورت استفاده همراه با --search)
-p --no-prepend
عدم افزودن سلسلهمراتب به برچسب (پیشفرض)
نوشتن:
+W --write-pixel [d]irectory: string
نوشتن دادههای پیکسلی در یک فایل raw. ذخیرهشده در d
(به صورت little endian، نام فایل به طور خودکار ایجاد میشود)
نکات (NOTES)
افزودن دایرکتوریها به عنوان یک پارامتر در خط فرمان تنها زمانی معنا دارد که گزینه --scan-directories نیز داده شده باشد. اگر فایلهای موجود در دایرکتوریهای ارائهشده باید بر اساس یک الگوی نام خاص (مثلاً با استفاده از تطبیق کاراکترهای عام) انتخاب شوند، باید از گزینه --scan-pattern استفاده شود. لطفاً توجه داشته باشید که این الگوی فایل فقط برای فایلهای درون دایرکتوریهای پویششده اعمال میشود، و اگر الگوهای دیگری در خط فرمان خارج از گزینه --scan-pattern مشخص شوند (مثلاً برای انتخاب فایلهای بیشتر)، این الگوها بر روی دایرکتوریهای مشخصشده اعمال نخواهند شد.
ثبت گزارشها (LOGGING)
سطح گزارشگیری خروجی ابزارهای مختلف خط فرمان و کتابخانههای زیرین میتواند توسط کاربر مشخص شود. به طور پیشفرض، فقط خطاها و هشدارها در جریان خطای استاندارد (stderr) نوشته میشوند. با استفاده از گزینه --verbose پیامهای اطلاعرسانی مانند جزئیات پردازش نیز گزارش میشوند. گزینه --debug میتواند برای دریافت جزئیات بیشتر در مورد فعالیتهای داخلی، به عنوان مثال برای اهداف اشکالزدایی استفاده شود. سایر سطوح گزارشگیری را میتوان با استفاده از گزینه --log-level انتخاب کرد. در حالت --quiet فقط خطاهای مهلک گزارش میشوند. در چنین شرایط خطای بسیار شدیدی، برنامه معمولاً متوقف خواهد شد. برای جزئیات بیشتر در مورد سطوح مختلف گزارشگیری، مستندات ماژول "oflog" را ببینید.
در صورتی که خروجی گزارشگیری باید در فایل نوشته شود (اختیاری با چرخش فایل لاگ)، در syslog (یونیکس) یا گزارش رویدادها (ویندوز)، گزینه --log-config میتواند استفاده شود. این فایل پیکربندی همچنین اجازه میدهد تا فقط پیامهای خاصی به یک جریان خروجی مشخص هدایت شوند و پیامهای خاصی بر اساس ماژول یا برنامهای که در آن تولید میشوند فیلتر گردند. یک نمونه فایل پیکربندی در <etcdir>/logger.cfg ارائه شده است.
خط فرمان (COMMAND LINE)
تمام ابزارهای خط فرمان از نمادگذاری زیر برای پارامترها استفاده میکنند: براکتهای کروشه مقادیر اختیاری را احاطه میکنند (۰-۱)، سه نقطه انتهایی نشان میدهد که چندین مقدار مجاز است (۱-n)، ترکیبی از هر دو به معنای ۰ تا n مقدار است.
گزینههای خط فرمان با یک علامت '+' یا '-' در ابتدا از پارامترها متمایز میشوند. معمولاً ترتیب و موقعیت گزینههای خط فرمان اختیاری است (یعنی میتوانند در هر جایی ظاهر شوند). با این حال، اگر گزینهها مانعةالجمع باشند، آخرین گزینه در سمت راست استفاده میشود. این رفتار مطابق با قوانین استاندارد ارزیابی پوستههای رایج یونیکس است.
علاوه بر این، یک یا چند فایل فرمان را میتوان با استفاده از علامت '@' به عنوان پیشوند نام فایل مشخص کرد (مانند @command.txt). چنین آرگومان فرمانی قبل از هرگونه ارزیابی بیشتر، با محتوای فایل متنی مربوطه جایگزین میشود (فاصلههای متوالی به عنوان یک جداکننده منفرد در نظر گرفته میشوند مگر اینکه بین دو علامت نقلقول قرار گیرند). لطفاً توجه داشته باشید که یک فایل فرمان نمیتواند شامل یک فایل فرمان دیگر باشد. این رویکرد ساده اما مؤثر اجازه میدهد تا ترکیبهای رایج گزینهها/پارامترها را خلاصه کرده و از خط فرمانهای طولانی و گیجکننده جلوگیری شود (یک مثال در فایل <datadir>/dumppat.txt ارائه شده است).
محیط (ENVIRONMENT)
ابزار dcmdump تلاش خواهد کرد تا دیکشنریهای داده DICOM مشخصشده در متغیر محیطی DCMDICTPATH را بارگذاری کند. به طور پیشفرض، یعنی اگر متغیر محیطی DCMDICTPATH تنظیم نشده باشد، فایل <datadir>/dicom.dic بارگذاری خواهد شد مگر اینکه دیکشنری درون خود برنامه تعبیه شده باشد (پیشفرض برای ویندوز).
رفتار پیشفرض باید ترجیح داده شود و متغیر محیطی DCMDICTPATH تنها زمانی استفاده شود که دیکشنریهای داده جایگزین مورد نیاز باشند. متغیر محیطی DCMDICTPATH همان فرمت متغیر PATH پوسته یونیکس را دارد که در آن دو نقطه (":") ورودیها را جدا میکند. در سیستمهای ویندوز، نقطه ویرگول (";") به عنوان جداکننده استفاده میشود. کد دیکشنری داده تلاش خواهد کرد تا هر فایل مشخصشده در متغیر محیطی DCMDICTPATH را بارگذاری کند. در صورتی که هیچ دیکشنری دادهای بارگذاری نشود، خطا خواهد بود.
بسته به گزینههای خط فرمان مشخصشده، ابزار dcmdump تلاش خواهد کرد تا جداول نگاشت مجموعه نویسه را بارگذاری کند. این اتفاق زمانی رخ میدهد که DCMTK با کتابخانه oficonv کامپایل شده باشد (که حالت پیشفرض است) و جداول نگاشت درون کتابخانه تعبیه نشده باشند (پیشفرض زمانی که DCMTK از کتابخانههای مشترک استفاده میکند).
فایلهای جدول نگاشت در <datadir> مربوط به DCMTK انتظار میروند. متغیر محیطی DCMICONVPATH میتواند برای مشخص کردن مکان دیگری استفاده شود. اگر مکان متفاوتی مشخص شود، آن جداول نگاشت همچنین جایگزین هرگونه جدول داخلی میشوند.
همچنین ببینید (SEE ALSO)
حق نشر (COPYRIGHT)
Copyright (C) 1994-2025 by OFFIS e.V., Escherweg 2, 26121 Oldenburg, Germany.
| Thu Jul 9 2026 18:43:40 | Version 3.7.0 |