О DICOMе

Mar. 28th, 2008 10:08 pm
[personal profile] dmitry_vk
Есть такой стандарт — DICOM. Очень обширный, старый (разрабатывался еще тогда, когда даже TCP/IP не было), очень большой. И проблемный.

В начале, проблемы начинаются у того, кто пытается его осознать :) Очень необычный текст стандарта, использует необычную терминологию, в которой еще надо разобраться. А еще это первый раз, когда я видел, чтобы OSI где-то использовалось.

А еще текст стандарта распространяется в очень неудобной форме — в виде десятка огромных pdf'ок без кросс-ссылок, приходится постоянно переключаться между открытыми окнами тормозящего Adobe Reader'а (грущу по kpdf, который нисколечки не тормозит и которым удобно пользоваться в отличие от адобовского поделия, но которого в винде нету).

Суть DICOM'а — в описании медицинской среды, состоящей из пациентов, врачей, больниц, обследований, снимков, оборудования, программ и взаимодействия всего этого. Для этого вводится собственный способ описания объектов и атрибутов (способ описания похож на бинаризованный XML), очень запутнный и коварный:) К этому добавляется вечная проблема кодировок (ну почему это так сложно? даже у ведущих производителей медицинского оборудования до сих проблемы с кодировками текста). И глючность и неполнота многих библиотек для работы с DICOM'ом.

Правда, ситуация немного улучшается.

В общем, ситуация довольно грустная. И в этом всем приходится разбираться.

Сегодня написал небольшой препроцессор, который берет xml-описание DICOM'а и генерит по нему соответствующие классы и код для их загрузки и сохранения. Работать стало приятнее :)

Пока писал, понял, как же неудобно кодогенерацию писать на языке без макросов. Пришлось написать аж 4 вещи: схему XML, сам XML, парсер, генератор кода. Когда в лиспе бы пришлось писать только определение макросов и собственно описание DICOM'а. И visual studio (по крайней мере, 2005-я) вообще коряво себя ведет с XML'ем. Дизайнер схемы невнятный и генерирует всякую чушь вместо ключей и связей, при редактировании XML студия иногда просто падает и неправильно обрабатывает схему (интересно было бы сравнивать студийный редактор с емаксовским nxml-mode).

Вообщем, сравнение XML vs s-expr смотрится довольно интересно. Одно дело, когда есть XML со схемой (которая на взгляд совершенно нечитаема), к которому нужная всякая обвязка в виде редакторов, валидаторов, парсеров и прочего, и другое дело, когда ничего этого не требуется, и можно писать просто формы языка, которые во время компиляции развернутся в нужные определения классов и код загрузки/сохранения. К тому же, генератор кода в лисповском случае будет гораздо более красивый и правильный и не нужно лишних шагов компиляции.
This account has disabled anonymous posting.
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting

Profile

dmitry_vk

April 2023

S M T W T F S
      1
234567 8
9101112131415
16171819202122
23242526272829
30      

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Apr. 6th, 2026 07:13 am
Powered by Dreamwidth Studios