dump2dcm(1) OFFIS DCMTK dump2dcm(1)

dump2dcm - تبدیل دانپ متنی ASCII به پرونده دایکام (DICOM)

dump2dcm [options] dumpfile-in dcmfile-out

ابزار dump2dcm یک پرونده دانپ اسکی (ASCII) را به یک پرونده دایکام تبدیل می‌کند. ساختار این پرونده دانپ مشابه خروجی dcmdump است؛ بنابراین می‌توان خروجی dcmdump را در یک پرونده ذخیره کرد، برخی از ویژگی‌ها را تغییر داد و سپس پرونده جدید دایکام را ایجاد نمود.

dumpfile-in  نام پرونده دانپ ورودی
dcmfile-out  نام پرونده خروجی دایکام ("-" برای خروجی استاندارد stdout)

-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-meta-info
         خواندن اطلاعات متادیتا در صورت وجود (پیش‌فرض)
  -f   --ignore-meta-info
         نادیده گرفتن اطلاعات متادیتای پرونده
ترتیب بایت‌های محتوای پرونده:
  +rl  --read-file-little
         خواندن داده‌های OW به صورت little endian (پیش‌فرض)
  +rb  --read-file-big
         خواندن داده‌های OW از پرونده به صورت big endian
سایر گزینه‌های ورودی:
  +l   --line  [m]ax-length: integer
         حداکثر طول خط m (پیش‌فرض: ۴۰۹۶)

شناسه‌های یکتا (UID):
  +Ug  --generate-new-uids
         تولید Study/Series/SOP Instance UID جدید
  -Uo  --dont-overwrite-uids
         عدم بازنویسی UIDs موجود (پیش‌فرض)
  +Uo  --overwrite-uids
         بازنویسی UIDs موجود

قالب پرونده خروجی:
  +F   --write-file
         نوشتن قالب پرونده (پیش‌فرض)
  -F   --write-dataset
         نوشتن مجموعه داده بدون متادیتای پرونده
  +Fu  --update-meta-info
         به‌روزرسانی اطلاعات متادیتای خاص پرونده
نحو انتقال خروجی (output transfer syntax):
  +t=  --write-xfer-same
         نوشتن با همان نحو انتقال ورودی (پیش‌فرض)
  +te  --write-xfer-little
         نوشتن با نحو انتقال explicit VR little endian
  +tb  --write-xfer-big
         نوشتن با نحو انتقال explicit VR big endian
  +ti  --write-xfer-implicit
         نوشتن با نحو انتقال implicit VR little endian
  +td  --write-xfer-deflated
         نوشتن با نحو انتقال deflated explicit VR little endian
مدیریت خطا:
  -E   --stop-on-error
         عدم نوشتن در صورت آسیب‌دیده بودن دانپ (پیش‌فرض)
  +E   --ignore-errors
         تلاش برای نوشتن حتی در صورت آسیب‌دیدگی دانپ
نمایش مقادیر بعد از ۱۹۹۳ (post-1993 value representations):
  +u   --enable-new-vr
         فعال‌سازی پشتیبانی از VRهای جدید (UN/UT) (پیش‌فرض)
  -u   --disable-new-vr
         غیرفعال‌سازی پشتیبانی از VRهای جدید، تبدیل به OB
کدگذاری طول گروه:
  +g=  --group-length-recalc
         محاسبه مجدد طول گروه‌ها در صورت وجود (پیش‌فرض)
  +g   --group-length-create
         نوشتن همیشگی همراه با عناصر طول گروه
  -g   --group-length-remove
         نوشتن بدون عناصر طول گروه
کدگذاری طول در دنباله‌ها و آیتم‌ها:
  +e   --length-explicit
         نوشتن با طول‌های صریح (پیش‌فرض)
  -e   --length-undefined
         نوشتن با طول‌های نامشخص
فاصله‌گذاری انتهایی مجموعه داده (به جز با --write-dataset):
  -p=  --padding-retain
         عدم تغییر فاصله‌گذاری (پیش‌فرض در صورت عدم استفاده از --write-dataset)
  -p   --padding-off
         بدون فاصله‌گذاری (در صورت استفاده از --write-dataset ضمنی است)
  +p   --padding-create  [f]ile-pad [i]tem-pad: integer
         تراز پرونده بر مضاربی از f بایت و آیتم‌ها بر مضاربی از i بایت
سطح فشرده‌سازی deflate (تنها همراه با --write-xfer-deflated):
  +cl  --compression-level  [l]evel: integer (پیش‌فرض: ۶)
         ۰=بدون فشرده‌سازی، ۱=سریع‌ترین، ۹=بهترین فشرده‌سازی

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

بخش‌های مختلف هر خط دارای نحو دستوری زیر هستند:

Tag:   (gggg,eeee)
       که در آن gggg و eeee مقادیر هگزادسیمال ۴ کاراکتری هستند که
       نشان‌دهنده تگ گروه و عنصر می‌باشند. فاصله‌ها و تب‌ها می‌توانند در
       هر کجای مشخصات تگ ظاهر شوند.
VR:    نحوه نمایش مقدار (Value Representation) باید به صورت ۲ کاراکتر
       مطابق بخش ۶ استاندارد دایکام نوشته شود. هیچ فاصله یا تبی میان دو کاراکتر
       مجاز نیست. اگر VR از روی تگ قابل تشخیص باشد، این بخش خط اختیاری است.
Value: قواعد متعددی برای نوشتن مقادیر وجود دارد:
       ۱. مقادیر US, SS, UL, SL, UV, SV, FD, FL, OD, OF, OL و OV به صورت
          رشته‌های ده‌دهی قابل خواندن با ()scanf نوشته می‌شوند.
       ۲. مقدار AT به صورت '(gggg,eeee)' نوشته می‌شود که فاصله‌های اضافه به
          طور خودکار حذف شده و gggg و eeee مقادیر ده‌دهی قابل خواندن با ()scanf هستند.
       ۳. مقادیر OB و OW به صورت مقادیر بایت یا کلمه هگزادسیمال تفکیک‌شده با
          نویسه '\' نوشته می‌شوند. به عنوان روش جایگزین، مقادیر OB یا OW را
          می‌توان از یک پرونده مجزا خواند؛ با نوشتن نام پرونده همراه با پیشوند '='
          (مانند '=largepix.dat'). محتویات پرونده همان‌گونه که هست خوانده می‌شود.
          به طور پیش‌فرض داده‌های OW به صورت little endian فرض می‌شوند و در صورت نیاز
          جابه‌جا خواهند شد. هیچ بررسی انجام نمی‌شود که آیا حجم داده‌ها از نظر
          سایر ویژگی‌ها مانند سطرها و ستون‌ها معقول است یا خیر.
          در صورت فشرده بودن داده‌های پیکسلی، خط باید با '(7fe0,0010) OB (PixelSequence'
          شروع شود تا از داده‌های غیرفشرده متمایز گردد.
       ۴. مقدار UI به صورت 'Name=' در فرهنگ داده یا به صورت رشته شناسه یکتا
          (بند ۶ را ببینید) نوشته می‌شود؛ مانند '[1.2.840.....]'.
       ۵. رشته‌های فاقد () <> []، فاصله، تب و # را می‌توان مستقیماً نوشت.
       ۶. سایر رشته‌ها باید درون '[' و ']' قرار گیرند. هیچ ساختار قلابی رد نمی‌شود.
          مقدار در آخرین ']' در خط خاتمه می‌یابد. هر متنی پس از ']' به عنوان توضیح تلقی می‌شود.
       ۷. کاراکترهای '(' و '<' دارای تعبیر خاصی هستند و هنگام نوشتن دستی پرونده
          نباید به عنوان کاراکترهای ابتدایی رشته استفاده شوند. مقادیر چندگانه با '\'
          جدا می‌شوند. نیازی به مرتب بودن خطوط به ترتیب صعودی تگ‌ها نیست.
          ارجاعات در پوشه‌های دایکام (DICOM Directories) پشتیبانی نمی‌شوند.
          خطاهای معنایی تشخیص داده نخواهند شد.

خطوط زیر نمونه‌های معتبری از نحو توصیف‌شده در بالا را نشان می‌دهند:

(0008,0020) DA [19921012]            #  8, 1 StudyDate
(0008,0016) UI =MRImageStorage       # 26, 1 SOPClassUID
(0002,0012) UI [1.2.276.0.7230010.100.1.1]
(0020,0032) DS [0.0\0.0]             #  8, 2 ImagePositionPatient
(0028,0009) AT (3004,000c)           #  4, 1 FrameIncrementPointer
(0028,0010) US 256                   #  4, 1 Rows
(0002,0001) OB 01\00

لطفاً توجه داشته باشید که dump2dcm در حال حاضر از پرونده‌های DICOMDIR به طور کامل پشتیبانی نمی‌کند. به طور خاص، مقدار عناصر مختلف آفست داده‌ها به طور خودکار توسط این ابزار به‌روزرسانی نمی‌شود.

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

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

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

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

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

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

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

dcmdump(1)

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

Thu Jul 9 2026 18:43:40 Version 3.7.0