.TH "dsr2xml" 1 "9 ژوئیه 2026" "نسخه 3.7.0" "OFFIS DCMTK" \" -*- nroff -*- .nh .SH "نام (NAME)" dsr2xml \- تبدیل فایل و مجموعه داده‌های DICOM SR به XML .PP .SH "خلاصه دستور (SYNOPSIS)" .PP .PP .nf dsr2xml [options] dsrfile-in [xmlfile-out] .fi .PP .SH "توضیحات (DESCRIPTION)" .PP ابزار \fBdsr2xml\fP محتویات یک سند گزارش‌دهی ساختاریافته دایکام (DICOM Structured Reporting - SR) را اعم از فرمت فایلی یا مجموعه داده‌های خام (raw data set) به XML (زبان نشانه‌گذاری توسعه‌پذیر) تبدیل می‌کند\&. طرح‌واره اکس‌ام‌ال (XML Schema) با نام \fIdsr2xml\&.xsd\fP هنوز از قالب استانداردی پیروی نمی‌کند\&. با این حال، ممکن است برنامه \fBdsr2xml\fP در آینده در این زمینه ارتقا یابد (مثلاً با پشتیبانی از HL7/CDA - معماری اسناد بالینی)\&. .PP اگر \fBdsr2xml\fP یک مجموعه داده خام را بخواند (داده‌های DICOM فاقد فراداده سرآیند فایل)، تلاش خواهد کرد تا نحو انتقال (transfer syntax) را از طریق بررسی چند بایت نخست فایل حدس بزند\&. حدس زدن صحیح نحو انتقال همواره ممکن نیست و بهتر است تا حد امکان با استفاده از ابزار \fBdcmconv\fP، مجموعه داده به فرمت فایل تبدیل شود\&. همچنین می‌توان از گزینه‌های \fI-f\fP و \fI-t[ieb]\fP برای اجبار \fBdsr2xml\fP به خواندن مجموعه داده با یک نحو انتقال خاص استفاده کرد\&. .SH "پارامترها (PARAMETERS)" .PP .PP .nf dsrfile-in نام فایل ورودی DICOM SR برای تبدیل ("-" برای stdin) xmlfile-out نام فایل خروجی XML (پیش‌فرض: stdout) .fi .PP .SH "گزینه‌ها (OPTIONS)" .PP .SS "گزینه‌های عمومی (general options)" .PP .nf -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 برای لاگر .fi .PP .SS "گزینه‌های ورودی (input options)" .PP .nf فرمت فایل ورودی: +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) .fi .PP .SS "گزینه‌های پردازش (processing options)" .PP .nf مدیریت خطا: -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 را برای بررسی دسترسی ببینید) .fi .PP .SS "گزینه‌های خروجی (output options)" .PP .nf رمزگذاری: +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 نوشتن اطلاعات شناسایی قالب .fi .PP .SH "نکات (NOTES)" .PP .SS "انطباق با DICOM (DICOM Conformance)" ابزار \fBdsr2xml\fP از کلاس‌های SOP زیر پشتیبانی می‌کند: .PP .PP .nf 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 (*) .fi .PP .PP (*) این مورد کلاس Storage SOP نیست، بلکه برای ارتباطات بی‌درنگ (Real-Time) استفاده می‌شود\&. .PP لطفاً توجه داشته باشید که در حال حاضر فقط ویژگی‌های اجباری و برخی ویژگی‌های اختیاری پشتیبانی می‌شوند\&. .SS "رمزگذاری کاراکترها (Character Encoding)" رمزگذاری XML به‌طور خودکار از ویژگی (0008,0005) "Specific Character Set" در دایکام با استفاده از نگاشت زیر تعیین می‌شود: .PP .PP .nf 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" .fi .PP .PP اگر این ویژگی دایکام در فایل ورودی وجود نداشته باشد، در حالی که مورد نیاز است، می‌توان از گزینه \fI--charset-assume\fP برای مشخص کردن دستی مجموعه کاراکتر مناسب (با استفاده از اصطلاحات تعریف‌شده دایکام) استفاده کرد\&. به دلایل سازگاری با نسخه‌های پیشین این ابزار، اصطلاحات زیر نیز پشتیبانی شده و به‌طور خودکار به اصطلاحات تعریف‌شده دایکام نگاشت می‌شوند: latin-1، latin-2، latin-3، latin-4، latin-5، latin-9، cyrillic، arabic، greek، hebrew\&. .PP می‌توان از گزینه \fI--convert-to-utf8\fP برای تبدیل فایل یا مجموعه داده دایکام به رمزگذاری UTF-8 پیش از تبدیل به قالب XML استفاده کرد\&. .PP اگر نگاشتی تعریف نشده باشد و از گزینه \fI--convert-to-utf8\fP استفاده نشود، کاراکترهای غیر ASCII و کاراکترهای کمتر از کد 32 به‌صورت "&#nnn;" ذخیره می‌شوند که "nnn" به کد عددی کاراکتر اشاره دارد\&. این امر ممکن است منجر به مراجع موجودیت کاراکتری نامعتبر (مانند "" برای ESC) شود و سبب رد شدن سند توسط اکثر تجزیه‌کننده‌های XML گردد\&. .SS "مدیریت خطا (Error Handling)" لطفاً در استفاده از گزینه‌های پردازشی \fI--unknown-relationship\fP، \fI--invalid-item-value\fP، \fI--ignore-constraints\fP، \fI--ignore-item-errors\fP و \fI--skip-invalid-items\fP دقت فرمایید زیرا بررسی‌های اعتبارسنجی را روی فایل ورودی DICOM SR غیرفعال می‌کنند و بنابراین ممکن است خروجی ناسازگار با استاندارد ایجاد شود\&. با این حال، ممکن است دلایلی برای استفاده از یک یا چند مورد از این گزینه‌ها وجود داشته باشد، مانند خواندن و پردازش سندی از SR که کدگذاری آن نادرست است\&. .SS "محدودیت‌ها (Limitations)" طرح‌واره XML با نام \fIdsr2xml\&.xsd\fP از تمام انواع قالب‌های خروجی \fBdsr2xml\fP پشتیبانی نمی‌کند\&. با این حال، قالب خروجی پیش‌فرض (به همراه گزینه \fI--use-xml-namespace\fP) باید کار کند\&. .SH "ثبت وقایع (LOGGING)" .PP سطح خروجی ثبت وقایع در ابزارهای مختلف خط فرمان و کتابخانه‌های زیرین توسط کاربر قابل تعیین است\&. به‌طور پیش‌فرض، فقط خطاها و هشدارها در جریان خطای استاندارد (stderr) نوشته می‌شوند\&. با استفاده از گزینه \fI--verbose\fP پیام‌های اطلاع‌رسانی مانند جزئیات پردازش نیز گزارش می‌شوند\&. می‌توان از گزینه \fI--debug\fP برای دریافت جزئیات بیشتر در مورد فعالیت‌های داخلی، مثلاً برای اهداف اشکال‌زدایی، استفاده کرد\&. سطوح دیگر لاگ را می‌توان با گزینه \fI--log-level\fP انتخاب نمود\&. در حالت \fI--quiet\fP فقط خطاهای مرگبار (fatal) گزارش می‌شوند\&. در چنین شرایط خطای بسیار شدیدی، برنامه معمولاً خاتمه می‌یابد\&. برای جزئیات بیشتر در مورد سطوح مختلف لاگ، مستندات ماژول "oflog" را ببینید\&. .PP در صورتی که بخواهید خروجی وقایع در فایل (اختیاراً همراه با چرخش فایل لاگ)، در syslog (یونیکس) یا event log (ویندوز) نوشته شود، می‌توانید از گزینه \fI--log-config\fP استفاده کنید\&. این فایل پیکربندی همچنین امکان هدایت پیام‌های خاص به یک جریان خروجی مشخص و فیلتر کردن پیام‌ها بر اساس ماژول یا برنامه‌ای که آن‌ها را ایجاد کرده فراهم می‌کند\&. یک فایل پیکربندی نمونه در \fI/logger.cfg\fP ارائه شده است\&. .SH "خط فرمان (COMMAND LINE)" .PP تمامی ابزارهای خط فرمان از نشانه‌گذاری زیر برای پارامترها استفاده می‌کنند: براکت‌ها مقادیر اختیاری (0-1) را در بر می‌گیرند، سه نقطه نشان می‌دهد که چندین مقدار مجاز است (1-n)، و ترکیب هر دو یعنی 0 تا n مقدار مجاز است\&. .PP گزینه‌های خط فرمان با علامت پیشوند '+' یا '-' از پارامترها متمایز می‌شوند\&. معمولاً ترتیب و مکان گزینه‌ها اختیاری است (یعنی می‌توانند در هر جایی بیایند)\&. با این حال، اگر گزینه‌ها مانعة‌الجمع باشند، گزینه‌ای که در سمت راست‌تر قرار دارد لحاظ می‌شود\&. این رفتار مطابق با قوانین استاندارد ارزیابی در شل‌های متداول یونیکس است\&. .PP علاوه بر این، می‌توان یک یا چند فایل حاوی دستور را با پیشوند '@' قبل از نام فایل مشخص کرد (مانند \fI@command.txt\fP)\&. چنین آرگومانی پیش از ارزیابی‌های بعدی با محتوای فایل متنی مربوطه جایگزین می‌شود (فاصله‌های چندگانه مانند یک جداکننده واحد در نظر گرفته می‌شوند مگر اینکه بین دو گیومه قرار داشته باشند)\&. توجه داشته باشید که یک فایل دستور نمی‌تواند شامل فایل دستور دیگری باشد\&. این رویکرد ساده اما موثر امکان خلاصه‌سازی ترکیب‌های رایج گزینه‌ها/پارامترها را فراهم می‌آورد و از طولانی و گیج‌کننده شدن خطوط فرمان جلوگیری می‌کند (یک مثال در فایل \fI/dumppat.txt\fP آورده شده است)\&. .SH "محیط (ENVIRONMENT)" .PP ابزار \fBdsr2xml\fP تلاش خواهد کرد تا واژه‌نامه‌های داده‌های دایکام مشخص‌شده در متغیر محیطی \fIDCMDICTPATH\fP را بارگذاری کند\&. به‌طور پیش‌فرض، یعنی در صورتی که متغیر \fIDCMDICTPATH\fP تنظیم نشده باشد، فایل \fI/dicom.dic\fP بارگذاری می‌شود مگر اینکه دیکشنری در درون برنامه گنجانده شده باشد (پیش‌فرض برای ویندوز)\&. .PP رفتار پیش‌فرض ارجح است و متغیر محیطی \fIDCMDICTPATH\fP تنها زمانی باید استفاده شود که به دیکشنری‌های جایگزین داده نیاز باشد\&. فرمت متغیر محیطی \fIDCMDICTPATH\fP مشابه متغیر \fIPATH\fP در یونیکس است که در آن علامت دو‌نقطه (":") ورودی‌ها را جدا می‌کند\&. در سیستم‌های ویندوز از نقطه ویرگول (";") به‌عنوان جداکننده استفاده می‌شود\&. کد دیکشنری تلاش می‌کند تا هر فایل مشخص‌شده در \fIDCMDICTPATH\fP را بارگذاری کند\&. در صورت عدم امکان بارگذاری هرگونه دیکشنری، خطا رخ خواهد داد\&. .PP بسته به گزینه‌های مشخص‌شده در خط فرمان، ابزار \fBdsr2xml\fP ممکن است تلاش کند تا جداول نگاشت مجموعه کاراکترها را بارگذاری کند\&. این اتفاق زمانی رخ می‌دهد که DCMTK با کتابخانه oficonv کامپایل شده باشد (که حالت پیش‌فرض است) و جداول نگاشت درون کتابخانه تعبیه نشده باشند (پیش‌فرض هنگام استفاده DCMTK از کتابخانه‌های مشترک)\&. .PP فایل‌های جدول نگاشت در \fI\fP دایکام مورد انتظار هستند\&. می‌توان از متغیر محیطی \fIDCMICONVPATH\fP برای تعیین مکانی متفاوت استفاده کرد\&. در صورت تعیین مکانی دیگر، آن جداول نگاشت جایگزین جداول توکار نیز خواهند شد\&. .SH "فایل‌ها (FILES)" .PP \fI/dsr2xml.xsd\fP - فایل طرح‌واره XML .SH "همچنین ببینید (SEE ALSO)" .PP \fBxml2dsr\fP(1), \fBdcmconv\fP(1) .SH "حق نشر (COPYRIGHT)" .PP کپی‌رایت (C) 2000-2025 توسط OFFIS e.V., Escherweg 2, 26121 Oldenburg, Germany.