| dsr2xml(1) | OFFIS DCMTK | dsr2xml(1) |
نام (NAME)
dsr2xml - تبدیل فایل و مجموعه دادههای DICOM SR به XML
خلاصه دستور (SYNOPSIS)
dsr2xml [options] dsrfile-in [xmlfile-out]
توضیحات (DESCRIPTION)
ابزار dsr2xml محتویات یک سند گزارشدهی ساختاریافته دایکام (DICOM Structured Reporting - SR) را اعم از فرمت فایلی یا مجموعه دادههای خام (raw data set) به XML (زبان نشانهگذاری توسعهپذیر) تبدیل میکند. طرحواره اکسامال (XML Schema) با نام dsr2xml.xsd هنوز از قالب استانداردی پیروی نمیکند. با این حال، ممکن است برنامه dsr2xml در آینده در این زمینه ارتقا یابد (مثلاً با پشتیبانی از HL7/CDA - معماری اسناد بالینی).
اگر dsr2xml یک مجموعه داده خام را بخواند (دادههای DICOM فاقد فراداده سرآیند فایل)، تلاش خواهد کرد تا نحو انتقال (transfer syntax) را از طریق بررسی چند بایت نخست فایل حدس بزند. حدس زدن صحیح نحو انتقال همواره ممکن نیست و بهتر است تا حد امکان با استفاده از ابزار dcmconv، مجموعه داده به فرمت فایل تبدیل شود. همچنین میتوان از گزینههای -f و -t[ieb] برای اجبار dsr2xml به خواندن مجموعه داده با یک نحو انتقال خاص استفاده کرد.
پارامترها (PARAMETERS)
dsrfile-in نام فایل ورودی DICOM SR برای تبدیل ("-" برای 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)
گزینههای پردازش (processing options)
مدیریت خطا:
-Er --unknown-relationship
پذیرش نوع رابطه ناشناخته/ناموجود
-Ev --invalid-item-value
پذیرش مقدار نامعتبر برای آیتم محتوا
(مانند نقض تعریف VR یا VM)
-Ec --ignore-constraints
نادیده گرفتن محدودیتهای محتوای رابطه
-Ee --ignore-item-errors
توقف نکردن هنگام خطاهای آیتم محتوا، فقط هشدار
(مانند ویژگیهای مفقود مختص نوع مقدار)
-Ei --skip-invalid-items
رد کردن آیتمهای نامعتبر محتوا (شامل زیردرخت)
-Dv --disable-vr-checker
غیرفعالسازی بررسی مقادیر رشتهای مطابق با VR
مجموعه کاراکترهای خاص:
+Cr --charset-require
الزام اعلام مجموعه کاراکترهای بسطیافته (پیشفرض)
+Ca --charset-assume [c]harset: string
فرض کردن مجموعه کاراکتر c در صورت عدم اعلام
+Cc --charset-check-all
بررسی تمام عناصر دادهای دارای مقادیر رشتهای
(پیشفرض: فقط PN, LO, LT, SH, ST, UC و UT)
# این گزینه فقط برای بررسی بسطیافته این مورد استفاده میشود
# که آیا صفت Specific Character Set (0008,0005) باید حضور
# داشته باشد یا خیر، نه برای تبدیل مقادیر غیرمتاثر به UTF-8
+U8 --convert-to-utf8
تبدیل تمام مقادیر عناصر تحت تاثیر
Specific Character Set (0008,0005) به UTF-8
# نیازمند پشتیبانی کتابخانه رمزگذاری زیرین کاراکترها است
# (خروجی --version را برای بررسی دسترسی ببینید)
گزینههای خروجی (output options)
رمزگذاری:
+Ea --attr-all
کدگذاری همهچیز بهعنوان صفت XML
(میانبر برای +Ec, +Er, +Ev و +Et)
+Ec --attr-code
کدگذاری مقدار کد، طراح طرح کدگذاری و نسخه
طرح کدگذاری بهعنوان صفت XML
+Er --attr-relationship
کدگذاری نوع رابطه بهعنوان صفت XML
+Ev --attr-value-type
کدگذاری نوع مقدار بهعنوان صفت XML
+Et --attr-template-id
کدگذاری شناسه قالب بهعنوان صفت XML
+Ee --template-envelope
احاطه آیتمهای محتوا توسط عنصر قالب
(نیازمند +Wt، متضمن +Et)
ساختار XML:
+Xs --add-schema-reference
افزودن ارجاع به طرحواره XML با نام "dsr2xml.xsd"
(همراه با +Ea, +Ec, +Er, +Ev, +Et, +Ee, +We مجاز نیست)
+Xn --use-xml-namespace
افزودن اعلان فضاینام (XML namespace) به عنصر ریشه
نوشتن:
+We --write-empty-tags
نوشتن تمام تگها حتی اگر مقدار آنها خالی باشد
+Wi --write-item-id
همیشه شناسه آیتم را بنویس
+Wt --write-template-id
نوشتن اطلاعات شناسایی قالب
نکات (NOTES)
انطباق با DICOM (DICOM Conformance)
ابزار dsr2xml از کلاسهای SOP زیر پشتیبانی میکند:
SpectaclePrescriptionReportStorage 1.2.840.10008.5.1.4.1.1.78.6 MacularGridThicknessAndVolumeReportStorage 1.2.840.10008.5.1.4.1.1.79.1 BasicTextSRStorage 1.2.840.10008.5.1.4.1.1.88.11 EnhancedSRStorage 1.2.840.10008.5.1.4.1.1.88.22 ComprehensiveSRStorage 1.2.840.10008.5.1.4.1.1.88.33 Comprehensive3DSRStorage 1.2.840.10008.5.1.4.1.1.88.34 ProcedureLogStorage 1.2.840.10008.5.1.4.1.1.88.40 MammographyCADSRStorage 1.2.840.10008.5.1.4.1.1.88.50 KeyObjectSelectionDocumentStorage 1.2.840.10008.5.1.4.1.1.88.59 ChestCADSRStorage 1.2.840.10008.5.1.4.1.1.88.65 XRayRadiationDoseSRStorage 1.2.840.10008.5.1.4.1.1.88.67 RadiopharmaceuticalRadiationDoseSRStorage 1.2.840.10008.5.1.4.1.1.88.68 ColonCADSRStorage 1.2.840.10008.5.1.4.1.1.88.69 ImplantationPlanSRStorage 1.2.840.10008.5.1.4.1.1.88.70 AcquisitionContextSRStorage 1.2.840.10008.5.1.4.1.1.88.71 SimplifiedAdultEchoSRStorage 1.2.840.10008.5.1.4.1.1.88.72 PatientRadiationDoseSRStorage 1.2.840.10008.5.1.4.1.1.88.73 PlannedImagingAgentAdministrationSRStorage 1.2.840.10008.5.1.4.1.1.88.74 PerformedImagingAgentAdministrationSRStorage 1.2.840.10008.5.1.4.1.1.88.75 WaveformAnnotationSRStorage 1.2.840.10008.5.1.4.1.1.88.77 RenditionSelectionDocumentRealTimeCommunication 1.2.840.10008.10.4 (*)
(*) این مورد کلاس Storage SOP نیست، بلکه برای ارتباطات بیدرنگ (Real-Time) استفاده میشود.
لطفاً توجه داشته باشید که در حال حاضر فقط ویژگیهای اجباری و برخی ویژگیهای اختیاری پشتیبانی میشوند.
رمزگذاری کاراکترها (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" Thai "ISO_IR 166" => "TIS-620" Japanese "ISO 2022 IR 13\ISO 2022 IR 87" => "ISO-2022-JP" Korean "ISO 2022 IR 6\ISO 2022 IR 149" => "ISO-2022-KR" Chinese "ISO 2022 IR 6\ISO 2022 IR 58" => "ISO-2022-CN" Chinese "GB18030" => "GB18030" Chinese "GBK" => "GBK"
اگر این ویژگی دایکام در فایل ورودی وجود نداشته باشد، در حالی که مورد نیاز است، میتوان از گزینه --charset-assume برای مشخص کردن دستی مجموعه کاراکتر مناسب (با استفاده از اصطلاحات تعریفشده دایکام) استفاده کرد. به دلایل سازگاری با نسخههای پیشین این ابزار، اصطلاحات زیر نیز پشتیبانی شده و بهطور خودکار به اصطلاحات تعریفشده دایکام نگاشت میشوند: latin-1، latin-2، latin-3، latin-4، latin-5، latin-9، cyrillic، arabic، greek، hebrew.
میتوان از گزینه --convert-to-utf8 برای تبدیل فایل یا مجموعه داده دایکام به رمزگذاری UTF-8 پیش از تبدیل به قالب XML استفاده کرد.
اگر نگاشتی تعریف نشده باشد و از گزینه --convert-to-utf8 استفاده نشود، کاراکترهای غیر ASCII و کاراکترهای کمتر از کد 32 بهصورت "&#nnn;" ذخیره میشوند که "nnn" به کد عددی کاراکتر اشاره دارد. این امر ممکن است منجر به مراجع موجودیت کاراکتری نامعتبر (مانند "" برای ESC) شود و سبب رد شدن سند توسط اکثر تجزیهکنندههای XML گردد.
مدیریت خطا (Error Handling)
لطفاً در استفاده از گزینههای پردازشی --unknown-relationship، --invalid-item-value، --ignore-constraints، --ignore-item-errors و --skip-invalid-items دقت فرمایید زیرا بررسیهای اعتبارسنجی را روی فایل ورودی DICOM SR غیرفعال میکنند و بنابراین ممکن است خروجی ناسازگار با استاندارد ایجاد شود. با این حال، ممکن است دلایلی برای استفاده از یک یا چند مورد از این گزینهها وجود داشته باشد، مانند خواندن و پردازش سندی از SR که کدگذاری آن نادرست است.
محدودیتها (Limitations)
طرحواره XML با نام dsr2xml.xsd از تمام انواع قالبهای خروجی dsr2xml پشتیبانی نمیکند. با این حال، قالب خروجی پیشفرض (به همراه گزینه --use-xml-namespace) باید کار کند.
ثبت وقایع (LOGGING)
سطح خروجی ثبت وقایع در ابزارهای مختلف خط فرمان و کتابخانههای زیرین توسط کاربر قابل تعیین است. بهطور پیشفرض، فقط خطاها و هشدارها در جریان خطای استاندارد (stderr) نوشته میشوند. با استفاده از گزینه --verbose پیامهای اطلاعرسانی مانند جزئیات پردازش نیز گزارش میشوند. میتوان از گزینه --debug برای دریافت جزئیات بیشتر در مورد فعالیتهای داخلی، مثلاً برای اهداف اشکالزدایی، استفاده کرد. سطوح دیگر لاگ را میتوان با گزینه --log-level انتخاب نمود. در حالت --quiet فقط خطاهای مرگبار (fatal) گزارش میشوند. در چنین شرایط خطای بسیار شدیدی، برنامه معمولاً خاتمه مییابد. برای جزئیات بیشتر در مورد سطوح مختلف لاگ، مستندات ماژول "oflog" را ببینید.
در صورتی که بخواهید خروجی وقایع در فایل (اختیاراً همراه با چرخش فایل لاگ)، در syslog (یونیکس) یا event log (ویندوز) نوشته شود، میتوانید از گزینه --log-config استفاده کنید. این فایل پیکربندی همچنین امکان هدایت پیامهای خاص به یک جریان خروجی مشخص و فیلتر کردن پیامها بر اساس ماژول یا برنامهای که آنها را ایجاد کرده فراهم میکند. یک فایل پیکربندی نمونه در <etcdir>/logger.cfg ارائه شده است.
خط فرمان (COMMAND LINE)
تمامی ابزارهای خط فرمان از نشانهگذاری زیر برای پارامترها استفاده میکنند: براکتها مقادیر اختیاری (0-1) را در بر میگیرند، سه نقطه نشان میدهد که چندین مقدار مجاز است (1-n)، و ترکیب هر دو یعنی 0 تا n مقدار مجاز است.
گزینههای خط فرمان با علامت پیشوند '+' یا '-' از پارامترها متمایز میشوند. معمولاً ترتیب و مکان گزینهها اختیاری است (یعنی میتوانند در هر جایی بیایند). با این حال، اگر گزینهها مانعةالجمع باشند، گزینهای که در سمت راستتر قرار دارد لحاظ میشود. این رفتار مطابق با قوانین استاندارد ارزیابی در شلهای متداول یونیکس است.
علاوه بر این، میتوان یک یا چند فایل حاوی دستور را با پیشوند '@' قبل از نام فایل مشخص کرد (مانند @command.txt). چنین آرگومانی پیش از ارزیابیهای بعدی با محتوای فایل متنی مربوطه جایگزین میشود (فاصلههای چندگانه مانند یک جداکننده واحد در نظر گرفته میشوند مگر اینکه بین دو گیومه قرار داشته باشند). توجه داشته باشید که یک فایل دستور نمیتواند شامل فایل دستور دیگری باشد. این رویکرد ساده اما موثر امکان خلاصهسازی ترکیبهای رایج گزینهها/پارامترها را فراهم میآورد و از طولانی و گیجکننده شدن خطوط فرمان جلوگیری میکند (یک مثال در فایل <datadir>/dumppat.txt آورده شده است).
محیط (ENVIRONMENT)
ابزار dsr2xml تلاش خواهد کرد تا واژهنامههای دادههای دایکام مشخصشده در متغیر محیطی DCMDICTPATH را بارگذاری کند. بهطور پیشفرض، یعنی در صورتی که متغیر DCMDICTPATH تنظیم نشده باشد، فایل <datadir>/dicom.dic بارگذاری میشود مگر اینکه دیکشنری در درون برنامه گنجانده شده باشد (پیشفرض برای ویندوز).
رفتار پیشفرض ارجح است و متغیر محیطی DCMDICTPATH تنها زمانی باید استفاده شود که به دیکشنریهای جایگزین داده نیاز باشد. فرمت متغیر محیطی DCMDICTPATH مشابه متغیر PATH در یونیکس است که در آن علامت دونقطه (":") ورودیها را جدا میکند. در سیستمهای ویندوز از نقطه ویرگول (";") بهعنوان جداکننده استفاده میشود. کد دیکشنری تلاش میکند تا هر فایل مشخصشده در DCMDICTPATH را بارگذاری کند. در صورت عدم امکان بارگذاری هرگونه دیکشنری، خطا رخ خواهد داد.
بسته به گزینههای مشخصشده در خط فرمان، ابزار dsr2xml ممکن است تلاش کند تا جداول نگاشت مجموعه کاراکترها را بارگذاری کند. این اتفاق زمانی رخ میدهد که DCMTK با کتابخانه oficonv کامپایل شده باشد (که حالت پیشفرض است) و جداول نگاشت درون کتابخانه تعبیه نشده باشند (پیشفرض هنگام استفاده DCMTK از کتابخانههای مشترک).
فایلهای جدول نگاشت در <datadir> دایکام مورد انتظار هستند. میتوان از متغیر محیطی DCMICONVPATH برای تعیین مکانی متفاوت استفاده کرد. در صورت تعیین مکانی دیگر، آن جداول نگاشت جایگزین جداول توکار نیز خواهند شد.
فایلها (FILES)
<datadir>/dsr2xml.xsd - فایل طرحواره XML
همچنین ببینید (SEE ALSO)
حق نشر (COPYRIGHT)
کپیرایت (C) 2000-2025 توسط OFFIS e.V., Escherweg 2, 26121 Oldenburg, Germany.
| 9 ژوئیه 2026 | نسخه 3.7.0 |