dcmdump(1) OFFIS DCMTK dcmdump(1)

dcmdump - استخراج و نمایش متنی محتوای فایل و مجموعه داده‌های دایکام (DICOM)

dcmdump [options] dcmfile-in...

ابزار dcmdump محتوای یک فایل DICOM (فرمت فایل یا مجموعه داده خام) را به صورت متنی در خروجی استاندارد (stdout) نمایش می‌دهد. مشخصه‌هایی با فیلدهای مقدار بسیار بزرگ (مانند داده‌های پیکسلی) می‌توانند به صورت "(not loaded)" توصیف شوند. فیلدهای مقدار متنی داخل قلاب ([]) محصور می‌شوند. شناسه‌های یکتای شناخته‌شده (UIDs) با نام خود به همراه پیشوند مساوی (مانند "=MRImageStorage") نمایش داده می‌شوند، مگر اینکه این نگاشت به صراحت غیرفعال شده باشد. فیلدهای مقدار خالی به صورت "(no value available)" نمایش می‌یابند.

اگر dcmdump یک مجموعه داده خام (داده‌های DICOM بدون فراداده سرایند فرمت فایل) را بخواند، تلاش می‌کند تا سینتکس انتقال (Transfer Syntax) را با بررسی چند بایت اول فایل حدس بزند. حدس زدن صحیح سینتکس انتقال همیشه امکان‌پذیر نیست و بهتر است در صورت امکان، یک مجموعه داده را (با استفاده از ابزار dcmconv) به یک فرمت فایل تبدیل کنید. همچنین می‌توان از گزینه‌های -f و -t[ieb] استفاده کرد تا dcmdump مجبور به خواندن مجموعه داده با یک سینتکس انتقال مشخص شود.

dcmfile-in  فایل یا دایرکتوری ورودی DICOM برای استخراج اطلاعات ("-" برای ورودی استاندارد)

-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 برای ثبت‌کننده لاگ

فرمت فایل ورودی:
  +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

مجموعه نویسه‌های خاص (specific character set):
  +U8  --convert-to-utf8
         تبدیل تمام مقادیر عناصری که تحت تأثیر
         Specific Character Set (0008,0005) هستند به UTF-8
         # نیازمند پشتیبانی از کتابخانه رمزگذاری نویسه زیرین است
         # (برای اطلاع از کتابخانه موجود، خروجی --version را ببینید)

چاپ:
  +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، نام فایل به طور خودکار ایجاد می‌شود)

افزودن دایرکتوری‌ها به عنوان یک پارامتر در خط فرمان تنها زمانی معنا دارد که گزینه --scan-directories نیز داده شده باشد. اگر فایل‌های موجود در دایرکتوری‌های ارائه‌شده باید بر اساس یک الگوی نام خاص (مثلاً با استفاده از تطبیق کاراکترهای عام) انتخاب شوند، باید از گزینه --scan-pattern استفاده شود. لطفاً توجه داشته باشید که این الگوی فایل فقط برای فایل‌های درون دایرکتوری‌های پویش‌شده اعمال می‌شود، و اگر الگوهای دیگری در خط فرمان خارج از گزینه --scan-pattern مشخص شوند (مثلاً برای انتخاب فایل‌های بیشتر)، این الگوها بر روی دایرکتوری‌های مشخص‌شده اعمال نخواهند شد.

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

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

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

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

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

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

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

بسته به گزینه‌های خط فرمان مشخص‌شده، ابزار dcmdump تلاش خواهد کرد تا جداول نگاشت مجموعه نویسه را بارگذاری کند. این اتفاق زمانی رخ می‌دهد که DCMTK با کتابخانه oficonv کامپایل شده باشد (که حالت پیش‌فرض است) و جداول نگاشت درون کتابخانه تعبیه نشده باشند (پیش‌فرض زمانی که DCMTK از کتابخانه‌های مشترک استفاده می‌کند).

فایل‌های جدول نگاشت در <datadir> مربوط به DCMTK انتظار می‌روند. متغیر محیطی DCMICONVPATH می‌تواند برای مشخص کردن مکان دیگری استفاده شود. اگر مکان متفاوتی مشخص شود، آن جداول نگاشت همچنین جایگزین هرگونه جدول داخلی می‌شوند.

dump2dcm(1), dcmconv(1)

Copyright (C) 1994-2025 by OFFIS e.V., Escherweg 2, 26121 Oldenburg, Germany.

Thu Jul 9 2026 18:43:40 Version 3.7.0