| dcm2xml(1) | OFFIS DCMTK | dcm2xml(1) |
نام (NAME)
dcm2xml - تبدیل فایل و مجموعه داده دایکام به XML
خلاصه دستور (SYNOPSIS)
dcm2xml [options] dcmfile-in [xmlfile-out]
توضیحات (DESCRIPTION)
ابزار dcm2xml محتویات یک فایل DICOM (قالب فایل یا مجموعه داده خام) را به XML (زبان نشانهگذاری گسترشپذیر) تبدیل میکند. دو قالب خروجی وجود دارد. اولی مختص به DCMTK با DTD (تعریف نوع سند) مربوط به آن است که در فایل dcm2xml.dtd شرح داده شده است. دومی به "Native DICOM Model" اشاره دارد که برای سرویس میزبانی برنامه DICOM در بخش ۱۹ استاندارد DICOM مشخص شده است.
اگر dcm2xml یک مجموعه داده خام (دادههای DICOM بدون متاسرآیند قالب فایل) را بخواند، تلاش خواهد کرد تا با بررسی چند بایت اول فایل، نحو انتقال را حدس بزند. همیشه امکان حدس دقیق نحو انتقال وجود ندارد و بهتر است هر زمان ممکن باشد یک مجموعه داده با استفاده از ابزار dcmconv به قالب فایل تبدیل شود. همچنین میتوان با گزینههای -f و -t[ieb] ابزار dcm2xml را مجبور کرد که یک مجموعه داده را با نحو انتقال مشخصی بخواند.
پارامترها (PARAMETERS)
dcmfile-in نام فایل ورودی DICOM برای تبدیل ("-" برای stdin)
xmlfile-out نام فایل خروجی XML (پیشفرض: stdout)
گزینهها (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 صریح VR و ترتیب بایت little endian
-tb --read-xfer-big
خواندن با TS صریح VR و ترتیب بایت big endian
-ti --read-xfer-implicit
خواندن با TS ضمنی VR و ترتیب بایت little endian
مقادیر تگهای طولانی:
+M --load-all
بارگذاری مقادیر تگهای بسیار طولانی (مانند دادههای پیکسل)
-M --load-short
عدم بارگذاری مقادیر بسیار طولانی (پیشفرض)
+R --max-read-length [k]bytes: integer (4..4194302, پیشفرض: 4)
تعیین آستانه مقادیر طولانی بر حسب کیلوبایت k
گزینههای پردازش (processing options)
مجموعه نویسههای خاص (specific character set):
+Cr --charset-require
الزام به اعلان مجموعه نویسه گسترشیافته (پیشفرض)
+Ca --charset-assume [c]harset: string
فرض مجموعه نویسه c در صورت عدم اعلان مجموعه نویسه
+Cc --charset-check-all
بررسی تمام عناصر داده دارای مقادیر رشتهای
(پیشفرض: فقط PN, LO, LT, SH, ST, UC و UT)
+U8 --convert-to-utf8
تبدیل تمام مقادیر عناصر تحت تأثیر مجموعه نویسه خاص
(0008,0005) به UTF-8
گزینههای خروجی (output options)
قالب عمومی XML:
-dtk --dcmtk-format
خروجی در قالب اختصاصی DCMTK (پیشفرض)
-nat --native-format
خروجی در قالب Native DICOM Model (بخش ۱۹)
+Xn --use-xml-namespace
افزودن اعلان فضای نام XML به عنصر ریشه
قالب اختصاصی DCMTK (نه با --native-format):
+Xd --add-dtd-reference
افزودن ارجاع به تعریف نوع سند (DTD)
+Xe --embed-dtd-content
تعبیه محتوای تعریف نوع سند در سند XML
+Xf --use-dtd-file [f]ilename: string
استفاده از فایل DTD مشخصشده (فقط با +Xe)
+Wn --write-element-name
نوشتن نام عناصر داده دایکام (پیشفرض)
-Wn --no-element-name
عدم نوشتن نام عناصر داده دایکام
+Wb --write-binary-data
نوشتن دادههای باینری عناصر OB و OW
(پیشفرض: خاموش، با --load-all با احتیاط استفاده شود)
کدگذاری دادههای باینری:
+Eh --encode-hex
کدگذاری دادههای باینری به صورت اعداد هگزادسیمال
(پیشفرض برای قالب اختصاصی DCMTK)
+Eu --encode-uuid
کدگذاری دادههای باینری به صورت ارجاع UUID
(پیشفرض برای Native DICOM Model)
+Eb --encode-base64
کدگذاری دادههای باینری به صورت Base64 (RFC 2045, MIME)
قالب DCMTK (DCMTK Format)
ساختار اساسی خروجی XML اختصاصی DCMTK ایجادشده از یک فایل دایکام به صورت زیر است:
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE file-format SYSTEM "dcm2xml.dtd">
<file-format xmlns="http://dicom.offis.de/dcmtk">
<meta-header xfer="1.2.840.10008.1.2.1" name="Little Endian Explicit">
<element tag="0002,0000" vr="UL" vm="1" len="4"
name="MetaElementGroupLength">
166
</element>
...
<element tag="0002,0013" vr="SH" vm="1" len="16"
name="ImplementationVersionName">
OFFIS_DCMTK_353
</element>
</meta-header>
<data-set xfer="1.2.840.10008.1.2" name="Little Endian Implicit">
<element tag="0008,0005" vr="CS" vm="1" len="10"
name="SpecificCharacterSet">
ISO_IR 100
</element>
...
<sequence tag="0028,3010" vr="SQ" card="2" name="VOILUTSequence">
<item card="3">
<element tag="0028,3002" vr="xs" vm="3" len="6"
name="LUTDescriptor">
256\0\8
</element>
...
</item>
...
</sequence>
...
<element tag="7fe0,0010" vr="OW" vm="1" len="262144"
name="PixelData" loaded="no" binary="hidden">
</element>
</data-set>
</file-format>
تگهای "file-format" و "meta-header" برای مجموعههای داده دایکام وجود ندارند.
کدگذاری XML (XML Encoding)
ویژگیهای دارای فیلدهای مقداری بسیار بزرگ (مانند دادههای پیکسل) به طور پیشفرض بارگذاری نمیشوند. این موارد را میتوان با ویژگی اضافی "loaded" با مقدار "no" شناسایی کرد (به مثال بالا مراجعه کنید). گزینه خط فرمان --load-all برنامه را وادار میکند تمام فیلدهای مقداری از جمله فیلدهای بسیار طولانی را بارگذاری کند.
علاوه بر این، دادههای باینری ویژگیهای OB و OW به طور پیشفرض در فایل خروجی XML نوشته نمیشوند. این عناصر را میتوان با ویژگی اضافی "binary" با مقدار "hidden" شناسایی کرد (پیشفرض "no" است). گزینه خط فرمان --write-binary-data باعث چاپ فیلدهای باینری نیز میشود (مقدار ویژگی "yes" یا "base64"). اما هنگام استفاده همزمان از این گزینه با --load-all به دلیل حجم بسیار زیاد دادههای پیکسل خروجی احتیاط کنید. توجه داشته باشید که در این زمینه، مقادیر عناصر با VRهای OD, OF, OL و OV به عنوان "داده باینری" تلقی نمیشوند.
چندین مقدار (یعنی جایی که چندگانگی مقدار دایکام بزرگتر از ۱ است) با یک بکاسلش "\" از هم جدا میشوند (به جز دادههای کدگذاریشده با Base64). ویژگی "len" تعداد بایتهای فیلد مقدار ذخیرهشده در مجموعه داده دایکام را نشان میدهد؛ یعنی ممکن است با طول مقدار کدگذاریشده در XML به دلیل حذف پدینگهای غیرضروری تفاوت داشته باشد. اگر این ویژگی در تگهای شروع "sequence" یا "item" غایب باشد، عنصر مربوطه دایکام با طول تعریفنشده ذخیره شده است.
قالب مدل بومی دایکام (Native DICOM Model Format)
شرح قالب Native DICOM Model را میتوان در بخش ۱۹ استاندارد دایکام ("Application Hosting") یافت.
دادههای حجیم (Bulk Data)
دادههای باینری، یعنی مقادیر عناصر دایکام با VRهای OB یا OW، و همچنین مقادیر OD، OF، OL، OV و UN به طور پیشفرض به دلیل اندازه بزرگشان در خروجی XML نوشته نمیشوند. در عوض، برای هر عنصر یک شناسه منحصربهفرد جهانی (UUID) جدید تولید شده و به عنوان صفت یک عنصر XML بنام <BulkData> نوشته میشود. علاوه بر این، الحاقیه ۱۶۳ عنصر جدید <InlineBinary> را معرفی میکند که امکان کدگذاری دادههای باینری به صورت Base64 را فراهم میسازد. در حال حاضر گزینه خط فرمان --encode-base64 این کدگذاری را برای این VRها فعال میکند: OB، OD، OF، OL، OV، OW و UN.
مشکلات شناختهشده (Known Issues)
علاوه بر موارد فوق، در پیادهسازی فعلی فرمت Native DICOM Model، مقادیر عناصر بزرگ با VR غیر از موارد بالا به عنوان bulk data نوشته نمیشوند، اگرچه برای عناصر متنی بسیار طولانی (به ویژه UT) یا فیلدهای عددی طولانی میتوانست مفید باشد.
نکات (NOTES)
کدگذاری نویسهها (Character Encoding)
کدگذاری نویسههای XML به طور خودکار از روی ویژگی دایکام (0008,0005) "Specific Character Set" بر اساس نگاشت زیر تعیین میشود:
ASCII (ISO_IR 6) => "UTF-8" UTF-8 "ISO_IR 192" => "UTF-8" ISO Latin 1 "ISO_IR 100" => "ISO-8859-1" ISO Latin 2 "ISO_IR 101" => "ISO-8859-2" ISO Latin 3 "ISO_IR 109" => "ISO-8859-3" ISO Latin 4 "ISO_IR 110" => "ISO-8859-4" ISO Latin 5 "ISO_IR 148" => "ISO-8859-9" ISO Latin 9 "ISO_IR 203" => "ISO-8859-15" Cyrillic "ISO_IR 144" => "ISO-8859-5" Arabic "ISO_IR 127" => "ISO-8859-6" Greek "ISO_IR 126" => "ISO-8859-7" Hebrew "ISO_IR 138" => "ISO-8859-8"
اگر این ویژگی دایکام در فایل ورودی وجود نداشته باشد، میتوان از گزینه --charset-assume برای مشخص کردن دستی مجموعه نویسه استفاده کرد. به دلایل سازگاری با نسخههای پیشین، اصطلاحات زیر نیز پشتیبانی شده و نگاشت میشوند: latin-1, latin-2, latin-3, latin-4, latin-5, latin-9, cyrillic, arabic, greek, hebrew.
استفاده از چندین مجموعه نویسه با تکنیکهای گسترش کد پشتیبانی نمیشود. در صورت نیاز، گزینه --convert-to-utf8 میتواند برای تبدیل فایل یا مجموعه داده دایکام به کدگذاری UTF-8 پیش از تبدیل به XML استفاده شود.
گزارشگیری (LOGGING)
سطح خروجی گزارشگیری میتواند توسط کاربر تعیین شود. به طور پیشفرض فقط خطاها و هشدارها در خروجی خطای استاندارد نوشته میشوند. با استفاده از گزینه --verbose پیامهای اطلاعرسانی نیز گزارش میشوند. گزینه --debug جزئیات فعالیتهای داخلی را چاپ میکند. در حالت --quiet تنها خطاهای مهلک چاپ میشوند. برای هدایت لاگ به فایل یا سیستم syslog میتوان از گزینه --log-config استفاده کرد.
خط فرمان (COMMAND LINE)
تمامی ابزارهای خط فرمان از نشانهگذاری زیر برای پارامترها استفاده میکنند: براکتهای مربع مقادیر اختیاری (۰-۱) را در بر میگیرند، سه نقطه نشان میدهد که چندین مقدار مجاز است (۱-n)، و ترکیب هر دو به معنای ۰ تا n مقدار است. گزینههای خط فرمان با پیشوند '+' یا '-' مشخص میشوند و میتوان با استفاده از '@' فایلی از آرگومانها را بارگذاری کرد.
متغیرهای محیطی (ENVIRONMENT)
ابزار dcm2xml تلاش خواهد کرد تا واژهنامههای داده دایکام مشخصشده در متغیر محیطی DCMDICTPATH را بارگذاری کند. متغیر DCMICONVPATH نیز برای مشخص کردن مسیر جدولهای نگاشت مجموعه نویسهها به کار میرود.
فایلها (FILES)
<datadir>/dcm2xml.dtd - فایل تعریف نوع سند (DTD)
همچنین ببینید (SEE ALSO)
حق نشر (COPYRIGHT)
Copyright (C) 2002-2025 by OFFIS e.V., Escherweg 2, 26121 Oldenburg, Germany.
| Thu Jul 9 2026 18:43:40 | Version 3.7.0 |