.

Передача информации из компьютерного рентгеновского томографа TOMOSCAN SR7000

Язык: русский
Формат: реферат
Тип документа: Word Doc
0 1777
Скачать документ

Аннотация

Дипломный проект посвящен разработке системы передачи данных из
компьютерного рентгеновского томографа, а также получением
диагностически адекватного изображения для дальнейшей диагностики,
анализа и хранения. Обработка полученных изображений базируется на
программном комплексе CTsoft.

Система предназначена для работы в отделениях лучевой диагностики и не
требует от пользователя дополнительных знаний по программированию и
техническому обслуживанию персональных компьютеров. Она предоставляет
пользователю удобный экранный интерфейс для получения и обработки
высококачественных изображений, переданных из компьютерного
рентгеновского томографа, кроме того, она предусматривает возможность
дальнейшей передачи полученных данных по компьютерной сети.

Система прошла опытную эксплуатацию в институте хирургии им А. В.
Вишневского в рамках проекта «телемедицина». Отчетные материалы к
дипломному проекту включают пояснительную записку, 3 приложения и
графический материал.

Содержание.

TOC \o “1-3” Аннотация PAGEREF _Toc454808877 \h 1

Введение PAGEREF _Toc454808878 \h 4

Обзор литературы PAGEREF _Toc454808879 \h 7

Разработки телемедицины в мире PAGEREF _Toc454808880 \h 7

Необходимость “телемедицины” в России PAGEREF _Toc454808881 \h 9

Задачи здравоохранения, решаемые с применением телемедицинских
технологий PAGEREF _Toc454808882 \h 12

Формы применения телемедицинских технологий для решения задач
здравоохранения PAGEREF _Toc454808883 \h 15

Приложения телемедицины в клинической практике PAGEREF _Toc454808884
\h 16

Требования к передаче телемединформации PAGEREF _Toc454808885 \h 17

Анализ возможности передачи медицинских данных существующими программно
– аппаратными средствами PAGEREF _Toc454808886 \h 20

Подключение компьютерного рентгеновского томографа TOMOSCAN SR7000
PAGEREF _Toc454808887 \h 23

Компьютерный рентгеновский томограф PAGEREF _Toc454808888 \h 25

Общие характеристики устройства PAGEREF _Toc454808889 \h 25

Принцип построения выходного сигнала PAGEREF _Toc454808890 \h 27

Устройство согласования КТ с персональным компьютером первичной
обработки данных PAGEREF _Toc454808891 \h 28

Формат файла получаемого изображения PAGEREF _Toc454808892 \h 29

Персональный компьютер первичной обработки PAGEREF _Toc454808893 \h
31

Локальная вычислительная сеть PAGEREF _Toc454808894 \h 34

Программное обеспечение и сетевое оборудование PAGEREF _Toc454808895
\h 39

Персональный компьютер консультанта PAGEREF _Toc454808896 \h 41

Построение 3х мерного изображения PAGEREF _Toc454808897 \h 42

Пакет срезов для восстановления 3х мерного изображения PAGEREF
_Toc454808898 \h 45

Восстановленное трехмерное изображение с одноплоскостным срезом
PAGEREF _Toc454808899 \h 51

Восстановленное трехмерное изображение с двухплоскостным вырезом
PAGEREF _Toc454808900 \h 52

Восстановленное трехмерное изображение с трехплоскостным вырезом
PAGEREF _Toc454808901 \h 53

Восстановленное трехмерное изображение с трехплоскостным вырезом без
восстановления рельефа PAGEREF _Toc454808902 \h 54

Использование расчетной проекции трехмерного изображения для расчета
ввода катетера PAGEREF _Toc454808903 \h 55

Заключение PAGEREF _Toc454808904 \h 56

Выводы и результаты: PAGEREF _Toc454808905 \h 57

Список литературы PAGEREF _Toc454808906 \h 58

Приложение 1 PAGEREF _Toc454808907 \h 60

Формат информационного поля файла изображения PAGEREF _Toc454808908 \h
60

Приложение 2 PAGEREF _Toc454808909 \h 65

Модуль формирования трехмерных изображений (С++) PAGEREF _Toc454808910
\h 65

Приложение 3 PAGEREF _Toc454808911 \h 95

Описание программы обработки изображений Ctsoft PAGEREF _Toc454808912
\h 95

Введение

Изменение социально – экономических и экологических условий жизни с
начала 90-х годов повлекло за собой ухудшение основных показателей
здоровья населения. За последние 5 лет состояние здоровья
характеризуется следующими негативными тенденциями:

Рост в 3.5 раза насильственных и неёстественных причин смерти;

Значительный уровень социально опасных и социально значимых заболеваний
(онкология, туберкулез, алкоголизм, наркомания, венерические болезни,
ВИЧ – инфекция грозит стать угрозой национальной безопасности);

Высокая младенческая и материнская смертность, болезни беременных,
увеличение заболеваемости новорожденных и беременных.

Сложившаяся к настоящему времени система здравоохранения, финансируемая
по остаточному, а функционирующая по затратному принципу, оказалась не
готовой в полной мере сдерживать негативные процессы в состоянии
здоровья населения.

Таким образом, стратегически важной задачей становится организация
принципиально нового взаимодействия работников практического
здравоохранения с центральными научно-диагностическими учреждениями, так
чтобы практическое здравоохранение в регионах могло бы оказывать
высококвалифицированную помощь населению, используя имеющеёся
оборудование и интеллектуальный потенциал лучших клиник страны.

Экономическая ситуация в стране изменилась таким образом, что
диагностическая помощь населению регионов со стороны центральных клиник
становится практически недоступной, при том, что ресурсы ведущих
медицинских центров вполне позволяют оказывать эту помощь. Затраты на
приезд в Москву становятся сравнимыми, а подчас и превосходят саму
стоимость диагностики и лечения. Как показывает статистика
широкопрофильного медицинского центра (Института хирургии им. А.В.
Вишневского РАМН) до 1995 года за диагностической помощью обращалось
порядка 10-12 тыс. пациентов в год из различных регионов страны, сейчас
это количество упало до 1 тыс., при этом Институт в год проводит
обследования до 70 тыс. пациентов (москвичи) и в состоянии довести это
число до 120-150 тыс.

Имеющиеся и активно развивающиеся в стране современные средства связи
(спутниковая, оптоволоконная, радиорелейная) позволят объединить
региональные и центральные лечебные учреждения в единую сеть и таким
образом обеспечить “доставку интеллектуального потенциала лучших клиник
страны в те места, где в нем экстренно нуждаются”.

Очень большие перспективы в этом плане сулит “телемедицина” – сочетание
современных научных методов диагностики и лечения заболеваний с
ускоренной обработкой и анализом клинико-физиологической и
медико-социальной информации на базе электронно-вычислительной техники и
средств связи в режиме теледоступа.

Выполнение перечисленных выше задач невозможно без технической базы,
которая должна быть реализована в каждом медицинском учреждении,
входящим в проект «телемедицина». Эта техническая база должна включать в
себя парк персональных компьютеров, объединенных в единую сеть с
централизованной базой данных, подключением к медицинским
диагностическим установкам и иметь выход на внешние линии связи.

Темой нашего дипломного проекта была разработка: компьютерной сети для
института хирургии им. Вишневского;

подключение диагностического оборудования к этой сети;

организация видеоконференций;

программного обеспечения для передачи данных с медицинских установок
(УЗИ, томограф и т.п.).

В дипломном проекте рассмотрен вопрос подключения компьютерного
рентгеновского томографа к сети и решение качественного обеспечения
передачи данных по сети. С возможностью вывода на печать с
использованием печатающих устройств общего назначения.

Обзор литературы

Разработки телемедицины в мире

Первой страной, поставившей телемедицину на практические рельсы стала
Норвегия, где имеется большое количество труднодоступных для
традиционной медицинской помощь мест. Второй проект был осуществлен во
Франции для моряков гражданского и военного флотов. А сегодня уже трудно
назвать западно — европейскую и американскую страну, где бы не
развивались телемедицинские проекты, причем особый размах нарастание
сеансов «телемедицины» получило в США.[8]

Получают развитие и международные сети медицинских телекоммуникаций,
направленных на разные цели: система “Satellife” для распространения
медицинских знаний в развивающихся странах и подготовки кадров, “Planet
Heres” — предложенная ВОЗ система глобальных научных телекоммуникаций,
международной научной экспертизы и координации научных программ, другие
системы и сети.

Толчком к развитию телемедицины стало и то, что быстрый прогресс
современных методов исследования привел реально к социально неприятному
следствию: отставанию уровня диагностики в учреждениях практического
здравоохранения в регионах сколь угодно развитой страны от центральных
исследовательских и клинических медицинских центров. И по мере бурного
развития медицинской науки этот разрыв не сокращается, а увеличивается.
Поэтому стратегически важной задачей во многих странах стала организация
принципиально нового взаимодействия работников практического
здравоохранения с центральными научно—диагностическими учреждениями,
направленного на обеспечение эффективной, высококвалифицированной и
эшелонированной медико — санитарной помощи.[5]

Необходимость “телемедицины” в России

Развитие телемедицины в России необходимо по ряду причин и, более чем в
любой другой развитой стране, должно опираться на учет многолетних
традиций эшелонированной медико—санитарной помощи, больших расстояний,
трудностей оснащения всех медицинских учреждений современной
диагностической и другой медицинской техникой.

1. Разрыв между уровнем диагностики в сети практического здравоохранения
и в ведущих медицинских центрах России больше, чем в Германии, Франции
или США. Десять лет назад это было связано с большой разницей в уровне
оснащения, сегодня – с системным кризисом здравоохранения, резким
сокращением финансирования, буквальным «отрывом» периферии от центра.

2. Социально—экономические изменения в стране сделали диагностическую и
консультативную помощь населению регионов со стороны центральных клиник
практически недоступной, при том, что ресурсы ведущих медицинских
центров вполне позволяют оказывать эту помощь. Затраты на приезд в
Москву становятся сравнимыми, а подчас и превосходят саму стоимость
диагностики и лечения. Социальное напряжение в регионах и их претензии к
центру растут, способствуя и росту центробежных тенденций.

3. В случае, если заболевание попадает в разряд бюджетной или страховой
медицины и обходится больному бесплатно, пациент обычно находится в
региональной клинике 10—15 дней и в результате диагностики
устанавливается, что ему могут помочь только в центре. Он направляется в
центр, госпитализируется, и процесс диагностики повторяется в течение
тех же 10 — 15 дней. Это неоправданное расходование ресурсов может быть
предотвращено за счет дистанционного консилиума при унификации
диагностических процедур на базе современной техники и полноценной
передачи диагностической информации.

4. Между тем страна связывалась воедино разными способами, в т.ч. и
эшелонированной системой медицинской помощи как в годы мира. так и
войны. Это было основой военно — медицинской доктрины периода ВОВ,
специализированной помощи в послевоенные годы. Эта психология воспринята
народом. Сегодня эта доктрина разрушена, управленческая вертикаль
разрушена. Но разрушена и методологическая вертикаль медицинской помощи,
разрушено единство научного сообщества.[7]

Телемедицина позволяет компенсировать значительную часть потерь, но
больше того, она компенсирует это не на прежнем, а на качественно новом
уровне телекоммуникаций и неизмеримо больших возможностей быстрого
получения , обработки, передачи и анализа больших массивов информации,
что делает качественно новым и уровень диагностики болезней, изменяет
связи центра и периферии без простого патронажа со стороны центра (в
отношении науки).

Это скачок в новую информационную эпоху, причем вполне вероятно, что в
России телемедицина даст даже больший эффект, чем за рубежом, именно в
силу наших традиций и менталитета. При этом могут быть использованы
традиционные преимущества системы здравоохранения, при которой звенья
первичной медико—санитарной помощи (ПМСП) выдвигаются как можно ближе к
населению, туда, где люди живут и работают, а специализированная и
высококвалифицированная помощь оказывается в тех городах, где для
организации такой помощи имеются финансовые и техническое возможности и
где численность населения обеспечивает достаточное количество сложных
клинических случаев заболеваний.

Это будет не простая компенсация прошлых функций, а перевод их на
качественно новый технический и методологический уровень (равный
переходу от писем и курьеров к современному телефону, телевидению и
пр.).

Реализация проекта “Телемедицина” позволит повысить уровень
медико—санитарной помощи населению, обеспечить ускоренный рост
научно—практического потенциала медицинских учреждений регионов.[17]

Задачи здравоохранения, решаемые с применением телемедицинских
технологий

Возможности использования телемедицины разнообразны и раскрываются по
мере накопления опыта, они, несомненно, могут оказать значительное
воздействие на решение всех функций системы здравоохранения: на развитие
и координацию науки, профилактику заболеваний, экстренную и плановую
помощь при заболеваниях, подготовку и усовершенствование кадров,
маневрирование материально—техническими ресурсами, управление системой и
повышение эффективности ее функционирования как в чрезвычайных
ситуациях, так и при решении типовых задач в плановом порядке.[18]

В самом общем виде можно сказать, что здравоохранение нуждается в
обработке больших массивов информации и телекоммуникациях для:

Мониторинга и оценки состояния и динамики здоровья населения, в т.ч.
наиболее угрожаемых групп и отдельных людей, а также факторов внешней
природной и социальной Среды, влияющих на здоровье населения;

Мониторинга состояния системы здравоохранения, ее резервов и готовности
к решению текущих и экстренных проблем;

Обеспечения эффективной первичной медико—санитарной помощи (ПМСП) для
всех (в любое время, в удаленных и труднодоступных местах)

Обеспечения высоквалифицированной немедленной медико—санитарной помощи
(МСП) в экстренных ситуациях (повсеместно).

Обеспечения плановой методологической поддержки региональным и местным
органам и учреждениям здравоохранения со стороны центральных
(федеральных и других) научно—исследовательских, клинических и
организационных центров в решении сложных проблем диагностики, лечения и
профилактики заболеваний.

Подготовки и усовершенствования медицинских кадров.[13]

Формы применения телемедицинских технологий для решения задач
здравоохранения

Телеконференции (научные и научно—практические, методологические и др.)

Телеконсилиумы (двух— и многосторонние)

Консультации и организационная помощь при экстренных и чрезвычайных
ситуациях (бедствия, аварии, травмы, эпидвспышки и др.)

Дистанционный мониторинг больных (ЭКГ и пр.)

Автоматизированные истории болезни (что особенно важно в страховой
медицине). При необходимости может осуществляться передача содержащейся
в них информации (при переезде пациента в другой город, при заочных
консультациях и пр.), включая передачу неискаженных изображений (ЭКГ,
рентгенограммы, УЗИ, лабораторные данные, др.)

Теледоступ в научные Базы данных в центральных учреждениях России, стран
СНГ и в зарубежных научных центрах.

Взаимодействие с Международными сетями и системами телемедицины и
телекоммуникаций (ВОЗ, НИЗ, др.).[12]

Приложения телемедицины в клинической практике

Требования к передаче телемединформации

Для решения большинства задач телемедицины необходим режим
телеконференции, когда врачи в отдаленном медицинском учреждении и в
центральном институте видят друг друга и пациента, могут разговаривать
между собой. Однако этого недостаточно, поскольку основную информацию
при сложных диагностических случаях врач получает в виде изображений
внутренних органов или биопсий. Это — микроскопические, рентгеновские,
ультразвуковые, радиоизотопные исследования и их более сложные и
аналоги, как компьютерная томография, динамическая ангиография.

Поэтому системы телемедицины (СТМ) должны быть готовы к передаче (без
потери качества) следующих видов информации: изображения, получаемые с
диагностической аппаратуры, аналоговые сигналы, таблицы закодированной
информации и/или свободный текст.[16]

Необходимы единые стандарты для объединения разнородных форматов
изображений и создания единого цифрового набора для его дальнейшей
пересылки. Существующие в Германии “Sienet”, в США “PAКS” и другие еще
не удовлетворительны по “интеллектуальной” наполненности , поэтому
аналогичные подходы развиваются в России (в МГУ, ИКИ и др.) на уровне,
заметно превосходящем упомянутые коммерческие системы.

Требования к аппаратуре для передачи и воспроизведения изображений
высоки. При воспроизведении компьютерно—томографических, рентгеновских и
ультразвуковых изображений необходимы не менее 256 градаций “серого”
цвета. Высокой должна быть и скорость передачи изображений. Поэтому во
избежание быстрого морального старения системы необходимо закладывать
скорость передачи порядка 2,048 мБит/с.

Существенную часть информации о больном составляют аналоговые сигналы
(ЭКГ, ЭЭГ, реограммы и др.), которые практически повсеместно эти кривые
оцифровываются до введения в компьютер. Частотный диапазон всех
физиологических сигналов не превышает 1 кГц, обычно у одного пациента
регистрируется несколько (от 2 до 5) аналоговых кривых. Здесь будет
требоваться разработка протоколов обмена информацией и стандартов на
форматы передачи данных.

Таблицы закодированной информации не будут составлять большого объема и
не потребуют скоростей выше, чем при передачи изображений. Основные
трудозатраты потребуются на формализацию медицинских данных и унификацию
протоколов обмена информацией. Иначе будут неизбежными разночтения (а в
результате — повторение диагностики) при переходе пациента из одного
лечебного учреждения в другое.

Передача свободных текстов не предъявляет особых требований к системе
передачи информации, но избежать передачи свободных текстов не удастся,
т.к. не вся медицинская информация может быть формализована и
закодирована.[15]

Для эффективной диагностики заболеваний (особенно хирургических) на
одного пациента требуется получение от 3 до 20 изображений разного
характера. Так, например, для диагностики опухолей печени и
поджелудочной железы требуются компьютерно—томографическое,
ультразвуковое, ангиографическое исследования одновременно. Для
диагностики сердечных и сосудистых заболеваний необходимы рентгеновские,
магниторезонансные, ангиографические исследования.

Анализ возможности передачи медицинских данных существующими программно
– аппаратными средствами

При организации передачи данных от медицинского диагностического
оборудования возникает ряд технических проблем, связанных с высокими
требованиями предъявляемыми к качеству передаваемой информации. Эти
проблемы можно разделить на три основные группы:

Проблема получения диагностически адекватного изображения для дальнейшей
диагностики, анализа и хранения.

Проблема сопряжения диагностического оборудования с системами передачи
информации.

Проблема передачи полученной информации к «удаленным» пользователям.

Первая проблема связана в первую очередь с психологией восприятия
специалистами – врачами результатов получаемых от медицинских
диагностических установок, т.е. они чаще всего, не подготовлены к работе
с альтернативными вариантами предоставления медицинской, такими как,
например, изображение на мониторе персонального компьютера. В связи с
этим информация, с которой предполагается работать на персональных
компьютерах, должна быть предоставлена в «привычном» для специалистов
виде. Кроме того, программа обработки информации, должна быть простой в
использовании и интуитивно понятной, что позволит сократить время
адаптации и обеспечить быструю возможность перехода к работе с новыми
методами предоставления медицинских данных.

Вторая проблема связана с тем, что не существует единого стандарта
формата предоставления и хранения медицинских данных. Фирмы –
разработчики медицинского оборудования основываются на собственных
стандартах, которые закрыты, зачастую несовместимы с аналогичными
системами других фирм, и могут изменяться в последующих разработках и
модификациях уже существующего оборудования. Попытки стандартизирования
форматов хранения и отображения медицинских данных привели к появлению
нескольких стандартов, наиболее известным из которых является DICOM3, но
которые всеобщего распространения не получили. Исходя из всего выше
сказанного, можно заключить, что каждая медицинская диагностическая
установка требует индивидуального подхода для обеспечения возможности
передачи информации.

Также существует ряд проблем возникающих при попытках обеспечения
высокого качества передаваемой медицинской информации, связанных с тем,
что современные программно – аппаратные средства не специализированы для
передачи данных подобного рода. Это накладывает определенные требования
к подбору оборудования для передачи информации из медицинской
диагностической аппаратуры на персональные ЭВМ. Специализированных
(стандартных) программных средств, предназначенных для обработки
медицинской информации (изображений) на персональных ЭВМ на данный
момент практически не существует. Использование программ общего
назначения, для работы с медицинскими данными, практически невозможно.
Это связано с тем, что требуется высокий уровень специальной подготовки
специалистов – врачей, и требования, предъявляемые к персональным ЭВМ,
для установки программ такого класса, неоправданно высоки, что
практически невозможно из-за неоправданно высоких материальных и
временных затрат.

Третья проблема связана с ограничениями, накладываемыми на передаваемую
информацию, современными средствами связи. Медицинские данные
(изображения, звук, видео) невозможно передавать в «реальном времени» по
современным каналам связи, с тем качеством, которое требуется для
удовлетворительной работы специалиста. Объемы информации требуют
разработки специальных алгоритмов сжатия данных и выработки новых
методик передачи информации.

Предлагаемые методы решения вышеперечисленных проблем описаны в
настоящем дипломном проекте на базе подключения для передачи данных
компьютерного рентгеновского томографа TOMOSCAN SR7000 к персональному
компьютеру с последующей передачей данных по компьютерной сети.

Подключение компьютерного рентгеновского томографа TOMOSCAN SR7000

В связи с тем, что для осуществления удаленных консультаций необходимо
качественная передача данных от медицинских установок к специалистам, к
оборудованию захвата, передачи и отображения информации предъявляются
определенные требования, которые будут рассмотрены ниже. Общая схема
передачи изображения от компьютерного рентгеновского томографа к врачу –
консультанту представлена на рис 1.

рис. SEQ рис. \* ARABIC 1 Общая схема передачи изображения от КТ к
врачу – консультанту.

Исходя из схемы, можно выделить основные рабочие блоки:

Компьютерный рентгеновский томограф.

Устройство согласования компьютерного томографа с персональным
компьютером первичной обработки данных.

Персональный компьютер для первичной обработки полученного изображения.

Устройства передачи данных по компьютерной сети.

Персональный компьютер конечного пользователя (консультанта).

Основными предпосылками для создания данной схемы послужило то, что
захват изображения с медицинских установок (в данном дипломе –
компьютерного томографа (в дальнейшем КТ)), осуществляется через сетевой
адаптер (NE2000). Сетевой адаптеры установлены в компьютере первичного
пользователя и специализированной графической станцией КТ. Первичный
пользователь, осуществляющий управление КТ, обеспечивает захват
изображения с КТ и передачу его на персональный компьютер. Далее с
персонального компьютера первичного пользователя осуществляется передача
изображения по сети до конечного пользователя. В случае необходимости,
через сеть может быть организована телеконференция между первичным и
конечным пользователями. Предусматривается также передача изображения в
базу данных локальной сети первичного пользователя с последующей
дальнейшей пересылкой в базу данных сети конечного пользователя, если
осуществляется консультация специалистов в различных медицинских
учреждениях. Или в общую базу данных локальной сети одного медицинского
учреждения, в том случае, когда первичный и конечный пользователь
работают в рамках одного медицинского учреждения.

Далее будут рассмотрены отдельные блоки данной схемы.

Компьютерный рентгеновский томограф

Общие характеристики устройства

В данном дипломном проекте описан процесс передачи изображения с
компьютерного рентгеновского томографа, фирмы PHILIPS TOMOSCAN SR7000,
имеющего следующие характеристики:

Технические характеристики:

Скорость сканирования: Частичный поворот (2300) 0.6 сек.

Полный поворот 1.0; 2.0 и 4.0 сек.

Режимы сканирования: Одинарный режим сканирования.

Последовательный режим сканирования.

Режим быстрого сканирования.

Режим динамического сканирования.

Режим объемного сканирования.

Время цикла сканирования: Время сканир. Время цикла сканирования

Серия Быстрое Динамическое

0мм 10мм

0.6 сек. 7 сек. 4 сек.

1.0 сек. 6 сек. 4 сек. 1 сек. 4 сек.

2.0 сек. 12 сек. 5 сек. 2 сек. 5 сек.

4.0 сек. 14 сек. 7 сек. 4 сек. 7 сек.

Толщина среза: 1.5; 3; 5 и 10 мм.

Видимое поле сканирования: 160; 200; 250; 300; 350; 420; 480 мм.

Разрешающая способность: 0.03 в 1.5 мм.

Напряжение на трубке 100; 120 и 140 кВ.

Время сканирования Максимальный ток в мА.

Малый фокус; 1.5 мм Большой фокус; 3, 5, 10 мм

100 кВ 120 кВ 140 кВ 100 кВ 120 кВ 140 кВ

(2 сек. 250 200 175 400 400 300

4 сек. 200 175 150 400 400 300

Объем операций Время сканирования Количество расчетов Объем отображений

0.6 сек. 364,000 480

1.0 сек. 570,000 750

2.0 сек. 1,140,000 1500

4.0 сек. 2,280,000 3000

Система расчета: Многопроцессорная система для системы контроля,
отображения и архивирования; 68020 микроконтроллеров в шине VME, 3
процессора обработки изображений обслуживаются 68000 микроконтроллеров.

Память: 56 Мбайт оперативной памяти; 8 Мбайт памяти процессора; 4 Мбайт
видеопамяти; 64 Мбайт буферной памяти.

Матрица реконструкции: 3202; 5122;

Принцип построения выходного сигнала

Основной принцип построения изображения КТ осуществляется сканирования
излучения рентгеновской трубки детекторами. Характерное число детекторов
512 (1024). Система трубка – детекторы, вращаются на 3600 вокруг
исследуемого объекта. При это происходит сканирование 360 – 1200
проекций (ракурсов), с шагом соответственно 1 – 0,30. В процессе
поворота рентгеновская трубка стреляет с длительностью 5 – 10 мс. Время
полного поворота системы 2 – 10 сек. Полученные сигналы поступают на
коммутатор, с которого подаются на АЦП, и передаются в
специализированную компьютерную систему. Переданные сигналы проходят
специальную обработку, в результате которой получаются изображения,
которые и подаются на монитор КТ и сохраняются на диске компьютерной
системы. Из данной системы можно осуществить передачу полученных
изображений в персональный компьютер для дальнейшей обработки и передачи
по сети. Это можно осуществить следующими способами:

Осуществить захват через видео выход монитора КТ с помощью frame
grabber’а. (Способ, использующийся, только в крайнем случае, т.к.
происходит потеря информации);

Через компьютерную сеть, подключая специализированный компьютер КТ через
Ethernet выход, к ПК или, для «старых» томографов, через специально
разработанные сетевые платы.

Сетевая плата, через которую осуществляется подключение КТ и передача
изображения, описана ниже.

Устройство согласования КТ с персональным компьютером первичной
обработки данных

Для согласования КТ с персональным компьютером первичного пользователя
используется сетевой адаптер (сетевая карта), которой предъявляются
определенные требования по совместимости и скорости передачи данных.
Сетевой адаптер должен быть совместим с системами SUN station и
совместим с сетями, работающими под управлением Windows NT 4.0. А также
сетевой адаптер должен обеспечивать скорость передачи данных не менее
3Мбит/сек. Это обусловлено размером картинки 1024 * 1280 пикселей и 256
градаций серого, что требует скорости передачи пакета изображений –
2,048 Мбит/сек. Учитывая, что по сети также проходят протоколы проверки
минимальная скорость передачи, как указывалось выше, должна составлять
3Мбит/сек. Данным требованиям удовлетворяет сетевая карта NE2000,
характеристики которой представлены ниже:

Изготовитель: NOVELL

Протокол,

Скорость Ethernet,

10 Мбит/сек

Топология шина

Тип шины,

Разрядность ISA, 16 бит

Тип выхода RG – 58A/U (BNC)

DB – 15 (AUI)

Удаленная

загрузка возможна

Формат файла получаемого изображения

Изображения, переданные в персональный компьютер, сохраняются в
определенном специализированном формате. Этот формат подразумевает
сохранение в файле изображения дополнительной информации о пациенте,
исследовании, физических параметрах изображения и т. п.. Структурная
схема данного формата представлена на рис. 2.

рис. SEQ рис. \* ARABIC 2 Формат файла изображения.

Два килобайта в данном файле выделяются под информационное поле. В этом
поле содержится:

Идентификация пациента;

Режимы, в которых было получено изображение;

Размер матрицы изображения Nx, Ny;

Дата исследования;

Разрешение изображения (бит/пиксель);

Индивидуальный номер изображения;

(Полная информация о содержании информационного поля представлена в
приложении 1).

Далее следует матрица значений, содержащая в себе само изображение в
специализированном формате.

Имя файла изображения, тоже имеет специализированный формат, показанный
на рис. 3.

рис. SEQ рис. \* ARABIC 3 Формат заголовка файла изображения.

В имени файла, первый символ ( i или p ) указывает на метод сохранения
файла. ( p – с сжатием, i – без сжатия ). Последующие 7 символов
являются уникальным номером пациента или исследования (в зависимости от
того, где применяется данная программа). В расширении файла, первый
символ указывает на номер исследования, последующие две указывают на
номер среза (измерения).

Персональный компьютер первичной обработки

Основные требования, предъявляемые к персональным компьютерам,
осуществляемым первичную обработку данных, с дальнейшей их пересылкой по
сети можно разделить на 3 группы:

Осуществление быстрой и качественной передачи данных из компьютерного
томографа в персональный компьютер.

Возможность первичной обработки и визуализации полученных данных.

Осуществление быстрой передачи данных в компьютерную сеть для
осуществления дальнейшей обработки.

В компьютере должна быть установлена система, обеспечивающая возможность
организации телеконференции с удаленным пользователем в реальном
времени. Обеспечена возможность подключения печатающего устройства и
устройства архивации данных. Очень высокие требования выдвигаются к
визуализации изображения, полученного с компьютерного рентгеновского
томографа. Разрешение картинки должно быть не менее 1280 х 1024, и
цветностью в 16 тыс. цветов (256 градаций серого). Для обеспечения
возможности быстрого отображения, видеокарта должна содержать не менее 8
Мбайт памяти. Монитор должен поддерживать данное разрешение и
обеспечивать частоту развертки не менее 75 гц. Размер зерна не более
0.26 dpi, и иметь размер диагонали не менее 15 дюймов. Необходимость
обеспечения быстрой обработки данных должно быть обеспечено за счет
высокопроизводительной системы на базе микропроцессора Pentium II, с
тактовой частотой не менее 500 МГц, наличие 128 и более Мбайт памяти.
Для временного хранения информации в персональном компьютере должен быть
установлен жесткий диск размером не менее 3.2 Гбайта, поддерживающий
стандарт Ultra SCSI2. Для обеспечения надежности передачи и сохранности
информации к персональному компьютеру должен быть подключен источник
бесперебойного питания. Для высокоскоростной передачи данных по сети, в
персональном компьютере должна быть установлена сетевая карта со
скоростью передачи не менее 10 Мбит/сек. Для обеспечения телеконференции
в компьютере должен быть установлен frame grabber с поддержкой формата
сжатия видео сигнала MJPEG и встроенным звуком. Для обеспечения
возможности архивации данных в нештатных ситуациях в ПК должно быть
предусмотрено подключение ZIP драйвера, для сохранения информации на
магнитном ленточном носителе. Исходя из всего вышесказанного,
приблизительная конфигурация ПК первичной обработки информации
представлена в таблице 1.

Для обеспечения работы ПК на нем устанавливается операционная система
WindowsNT Workstation. А так же программное обеспечение управления
видеоконференциями (Microsoft NetMeteeng или подобная). А также
специализированна независимая сервисно – диагностическая консоль для
управления и обработки поступающей медицинской информации.

Таблица SEQ Таблица \* ARABIC 1 Комплектация компьютера первичного
пользователя.

Корпус ATX 80List (InWin A500)

Processor Pentium II 400

Matherboard ASUS P2B – D

Ram 256 Mb

HDD first SCSI WDE 4550 – 0025

HDD second SCSI Wde 18300 – AV0038

SCSI controller ADAPTEC AHA – 8945

VideoCard I740

Network Card Fast EthernLink XL PCI TX – 3C9005B – TX

Monitor ViewSonic “GA655”

Mouse Стандартная мышь PS/2

Видеоконференции:

Плата miroVideo DC30 plus

Камера MUSTEK VidCam

Локальная вычислительная сеть

Локальная вычислительная сеть представляет собой высокоскоростное
соединение различных устройств, таких как сервера, рабочие станции и
периферийные устройства (принтеры, модемы и т.п.), с общей средой
передачи. Что позволяет распределять информацию и ресурсы ЛВС между
пользователями.

Выбор топологии и типа ЛВС, а так же сетевых стандартов зависит от задач
предъявляемых к ЛВС института хирургии.

Локальная сеть института предназначена для:

Обеспечения общего доступа к базам данных и другой медицинской
информации;

Передача и обработка видеоинформации;

Обеспечение аудиовизуального взаимодействия сотрудников института в
реальном времени. с помощью системы видеоконференций;

Предоставление доступа к ресурсам Интернет;

Предоставление услуг электронной почты.

Отличительной особенностью данной сети является необходимость передачи
видеинформации и взаимодействие сотрудников с помощью видеоконференций.
Данные приложения предявляют жесткие требования к пропускной способности
и скорости передачи, создавая значительную нагрузку на локальную сеть.

Изображение в аналоговом видео состоит из 625 для PAL/SECAM (525 для
NTSC) строк и состоит из 2 полей по 312,5 (262,5). За 1 секунду
передаются 25 (30) кадров или 50 (60) полей. Полоса, занимаемая
видеосигналом достигает, 6 МГц.

В цифровом ТВ принято разбиение одного ТВ кадра на picsели, что наиболее
удобно для дальнейшей цифровой обработки. Каждый ТВ кадр разбивается на
768 точек по горизонтали и 576 точек по вертикали для сигналов PAL/SECAM
(640 на 480 для NTSC) при стандартном для ТВ соотношении ширины к высоте
изображения равным 4:3. Таким образом, получается два полукадра (поля) с
разрешением 384Х288 (320Х240 для NTSC) при частоте 50(60) полей или
25(30) кадров в секунду. Для передачи цвета используется принцип
сложения основных цветов: красного(R), синего(B) и зеленого(G) цветов.
Цветной ТВ сигнал состоит из яркостной (Y) и двух цветоразностных (R-Y и
B-Y) составляющих. Для этого используя специальные схемы суммирования из
трех составляющих (Y, R-Y и B-Y) восстанавливают исходные составляющие
цвета красный (R), синий (B) и зеленый (G) цвета, которые подаются на
соответствующие электронные пушки кинескопа.

Для полного восприятия информации о яркости и цвете необходимо каждую
точку изображения передавать как минимум 256 уровнями или 8 битным
кодированием. Каждая точка цветного видеоизображения должна кодироваться
24 разрядным словом (8 бит Х 3 составляющие) или по компьютерной
терминологии 24 бит/picsель (24bpp). Таким образом, перемножив
24х768х576х25 получаем цифровой поток в 265420800 бит/сек или около 265
Мбит/сек для сигналов PAL/SECAM (221 Мбит/сек NTSC).

Практически кодирование ТВ сигнала происходит несколько иначе, учитывая,
что для передачи ТВ изображения используется формат Y, R-Y, B-Y, то по
сигналу Y производится полное кодирование (8 бит по 768х576 pics), а по
сигналам R-Y и B-Y кодируется либо половина (8 бит по 384х288 pics),
либо четверть (8 бит по 192х144 pics) для каждого из сигналов R-Y и B-Y.
Для простоты используется запись в виде дроби 4:2:2 (иногда 8:4:4) или
4:1:1 (8:2:2). Следует иметь в виду, что данная дробная запись говорит о
количественном соотношении кодируемых точек. Разрядность кодирования
каждой точки всегда равна 8, иногда и больше. Перемножив полученные
данные, получаем цифровой поток до 177 Мбит/сек для разрешения 4:2:2 и
около 111 Мбит/сек для 4:1:1 (Все данные приведены для разрешения
PAL/SECAM 768х576х25 кадр/сек).

Для ограничения цифрового потока видеоданных используют алгоритмы
сжатия(компрессии). В основном используется два вида очень схожих между
собой метода компрессии. Это метод M-JPEC, основанный на графическом
формате JPEG, и MPEG (в разных вариациях). Оба метода основаны на
дискретно-косинусном преобразовании (DCT) изображения разбитого на
блоки. Разница этих методов заключается в исключении избыточной
информации из исходного видеоизображения. Если M-JPEG использует только
внутрикадровую избыточность (так называемую пространственную), то формат
MPEG дополнительно использует и межкадровую избыточность (временную).
Сжатие характеризуется коэффициентом компрессии – качественным
соотношением между исходным и полученным кадром исходя из необходимости
сохранения качества исходного изображения и ограничения цифрового потока
видеоданных. На практике применяются коэффициенты от 1:1 (без сжатия) до
20:1 (сжатие исходного кадра в 20 раз). Это соответствует качеству ТВ
сигнала от эталона (1:1) до стандарта VHS (20:1).

С учетом сжатия видеосигнала, формату видеозаписи VHS(стандарт PAL,
оцифровка 768х576, 384х576 или 384х288, 8 бит 4:2:2) соответствует
цифровой поток до 24 Мбит/сек.

Формату видеозаписи SVHS или DV/DVCAM (Стандарт PAL, оцифровка 768х576 8
бит 4:2:2 для SVHS и 4:1:1 или 4:2:0 для DV/DVCAM/DVCPRO) соответствует
цифровой поток от 24 Мбит/сек.

Система видеоконференций с разрешением 640х480х25(30) кадров/сек дает
цифровой поток 128-512 кбит/с (0,12 – 0,5 Мбит/сек). Рекомендуется для
проведения видеоконференций уровня предприятия использовать полосу
пропускания 384 кбит/с (0,4 Мбит/сек).

Соответственно, общий цифровой поток ~ 25 Мбит/сек.

Локальная вычислительная сеть способна обеспечить высокую пропускную
способность, а следовательно, высокое качество изображения и звука.
Однако традиционные ЛВС представляют собой сети с разделяемой средой
передачи, т.е. когда одно из устройств передает данные в сеть, все
остальные должны ждать окончания передачи, не делая попыток передать в
сеть свои данные(доступ сетевых устройств к среде передачи регулируется
сетевыми стандартами). Однако широкая полоса пропускания используется и
для передачи других потоков данных, а соответственно, возможны задержки
передачи, к которым видеопотоки крайне чувствительны, поэтому
оптимальным решением является коммутируемая ЛВС. Преимущества
коммутации заключаются в сегментировании сетей – делении их на более
мелкие фрагменты со значительным снижением числа станций в каждом
сегменте. Изоляция трафика в небольшом сегменте приводит к многократному
расширению доступной каждому пользователю полосы, а поддержка
виртуальных ЛВС (VLAN) значительно повышает гибкость системы. Для
обеспечения передачи цифрового потока без задержек необходима полоса
пропускания 100/1000 Мбит/сек. Оптимальным решением является сеть Fast
Ethernet(10/100Base-TX)/Gigabit Ethernet (1000Base-SX). На уровне
сегмента обеспечивается скорость передачи 100 Мбит/сек, на уровне здания
1000 Мбит/сек.

Данная сеть характеризуется следующими параметрами:

Топология сети – “звезда”;

Архитектура сети: “Клиент – Сервер/Файл – Сервер”;

Основной сетевой протокол TCP/IP;

Физическая среда передачи – кабель на основе неэкранированной витой пары
(UTP 5 категории) и многомодовый оптоволоконный кабель.

Коммутаторы с высокоскоростной шиной и разделяемой памятью.

Возможность объединения сетей Fast Ehernet и ATM

Программное обеспечение и сетевое оборудование

1. Программное обеспечение для управления и работы с серверами и
рабочими станциями:

Сетевая ОС – Windows NT Server 4.0

Клиентская ОС – Windows NT Workstation 4.0

Сервер БД – MS SQL Server 7.0

Почтовый сервер – MS Exhange Server 5.5

В качестве программного обеспечения для работы с базами данных и сетью
можно использовать пакет MS Back Office – 4.0 (Включет в себя NT Server,
SQL Server 7.0 Exhange Server 5.5, SMS 2.0, IIS, SNA Server)

2. Программное обеспечение для управления сетью.

MS SMS 2.0 – Мониторинг сети и рабочих станций, управление рабочими
станциями, установка ПО по сети

Программное обеспечение фирмы 3Сom – Transcend Network Control
Services(включает сл. продукты Transcend Enterprise Manager и Transcend
Workgroup Manager), Traffix Manager – позволяют управлять сетевыми
устройствами, анализировать трафик и статистику приложений, управлять
работой сети(реализуется редствами протоколаRMON/RMON2).

Все программное обеспечение работает под управлением Windows NT Server,
Transcend Network Control так же работает под управлением Sun Solstice
Domain Manager.

Сетевое оборудование фирмы 3Com: Коммутаторы серии: SuperStack II 3300
для Ehernet 10/100 Base-TX (витая пара 5 категории, разъем RJ 45),
SuperStack II 9000/9300 для Ehernet 100/100 Base-SX (многомодовое
оптоволокно).

Персональный компьютер консультанта

Персональный компьютер консультанта использует конфигурацию,
аналогичную той, которая была использована для персонального компьютера
первичной обработки данных. За исключением установки в ПК сетевой карты
для работы с компьютерным рентгеновским томографом и увеличением
быстродействия для более детальной и оперативной обработки принимаемой
информации, а так же работы с базой данных. Рекомендуемая конфигурация
представлена в таблице 2.

Таблица SEQ Таблица \* ARABIC 2 Комплектация персонального
компьютера консультанта.

Корпус ATX 80List (InWin A500)

Processor Pentium II 500

Matherboard ASUS P2B – D

Ram 256 Mb

HDD first SCSI WDE 4550 – 0025

HDD second SCSI Wde 18300 – AV0038

SCSI controller ADAPTEC AHA – 8945

VideoCard I740

Network Card Fast EthernLink XL PCI TX – 3C9005B – TX

Monitor ViewSonic “GA771”

Mouse Стандартная мышь PS/2

Видеоконференции:

Плата miroVideo DC30 plus

Камера MUSTEK VidCam

Построение 3х мерного изображения

В процессе проведений исследований на компьютерном рентгеновском
томографе получается пакет изображений (срезов), которые несут в себе
точную метрологическую информацию. Принцип работы КТ предполагает
получение срезов с точно выверенным шагом. При наличии достаточно
большого количества срезов и зная шаг, с которым они производились можно
восстановить 3х мерное изображение исследуемого объекта. Это может быть
необходимо для предоставлении информации о форме и структуре объекта.

Общая схема построения 3х мерного изображения представлена на рис. . В
связи с тем что расстояние между срезами значительно больше, чем
расстояние между точками (пикселями) на самом срезе, то используется
алгоритм построения дополнительных, промежуточных срезов. Дополнительные
срезы получаются путем нахождения средне арифметических значений точек
предыдущего и последующего срезов. В результате мы получаем трехмерную
матрицу, с помощью которой восстанавливается 3х мерное изображение.
Трехмерная матрица позволяет производить дополнительные операции (срезы,
вырезы, перемещение в пространстве) для отображения внутренней структуры
исследуемого объекта.

рис. SEQ рис. \* ARABIC 4 Структурная схема построения 3х мерного
изображения.

Можно было бы использовать более серьезные алгоритмы нахождения средних
значений точек промежуточных срезов используя функции сглаживания
(например: сглаживания с помощью скользящей медианы или используя
симметричную линейную процедуру сглаживания методом наименьших квадратов
по правилу k – ближайших соседей, чтобы выполнить локальную линейную
аппроксимацию исходных данных). Но парк современных персональных
компьютеров не позволяет производить такое количество вычислений за
короткие промежутки времени и т. к. получаемая информация не несет в
себе метрологических характеристик, использование данных методов, на
данный момент, не представляется разумным.

Далее в данном разделе будет показан пакет срезов из которых
произведено восстановление 3х мерного изображения.

Пакет срезов для восстановления 3х мерного изображения

Восстановленное трехмерное изображение с одноплоскостным срезом

Восстановленное трехмерное изображение с двухплоскостным вырезом

Восстановленное трехмерное изображение с трехплоскостным вырезом

Восстановленное трехмерное изображение с трехплоскостным вырезом без
восстановления рельефа

Использование расчетной проекции трехмерного изображения для расчета
ввода катетера

Заключение

Реформа системы здравоохранения обеспечила рывок в развитии
диагностических служб региональных клиник, но одновременно и привела к
утере ряда несомненных достижений советского здравоохранения. В
частности практически полностью разрушена целостность системы, в
результате чего жители регионов не в состоянии получить
высококвалифицированную помощь, которая осталась сосредоточенной в
центральных московских клиниках. Развитие проекта «Телемедицина»
направлено на сохранение и усиление положительных аспектов реформ и на
нивелирование возникших негативных последствий.

Объединение клиник страны в медицинскую информационную сеть позволит
организовать взаимодействие опытных специалистов центра с начинающими
докторами регионов. Работа в этом направлении уже начата, однако до сих
пор внутригоспитальные сети, позволяющие обмениваться информацией о
больном, находятся на уровне научных разработок. До сих пор не
существует единый стандарт формирования пакета медицинской информации,
включая изображения (рентген, УЗИ, КТ и т.п.). Только единичные клиники
работают над построением сетей, собирающих информацию.

Дипломная работа посвящена решению задачи подключения к сети
компьютерного рентгеновского томографа

TOMOSCAN SR7000, на выходе которого появляется изображение (томограмма).
Главной задачей работы была передача изображения через локальную сеть в
другую часть института. Были разработаны и реализованы алгоритмы
предварительной обработки изображений. На момент начала исследования в
Институте хирургии им. А. В. Вишневского была начата работа по прокладке
оптоволоконного кабеля между двумя зданиями: главным корпусом (в котором
расположены диагностические службы) и лаб. Кибернетики (в которой
расположены вычислительные мощности и внешние коммуникации). На
сегодняшний день фрагмент сети, обеспечивающий передачу изображений,
построен, испытан и реально функционирует.

В результате проведенного исследования получены следующие выводы и
результаты.

Выводы и результаты:

Построена система передачи изображения из компьютерного рентгеновского
томографа в ПК с последующей передачей по компьютерной сети;

Полученные и переданные изображения были оценены медицинскими экспертами
как адекватные;

Установлено, что пропускная способность коммуникационного канала на
удаленных моделях связи должна быть не менее

64 кб/с;

Установлено, что разрешающая способность при регистрации изображения
должна составлять не менее 1024 * 1280, при отображении серого клина
разрешение должно составлять не менее 12 бит.

Список литературы

A CASE OF GASTROSCHISIS, Dr. German Quevedo P, Santa Cruz de la Sierra,
Bolivia, June 1 st, 1997.

ELEMENTS OF SUCCESS IN TELEMEDICINE PROJECTS, Mary Moor, Ph.D., October,
1996.

EUROPEAN COMMITTE FOR STANDARDIZATION.

Implementing a Telemedicine Programm Across the Mexican-U.S. Border,
1996.

TELEMEDICINE: ITS PLACE ON THE INFORMATION HIGHWAY, Frederic Williams
and Mary Moor, 1995.

V.D. The Virtual Doctor – медицинские ресурсы Internet в
Санкт-Петербурге.

Видеоконференции в российских клиниках. Е. Тимин, В. Столяр, А. Сильков.
Журнал «Открытые Системы» Изд: «Открытые Системы», 1999г.

Журнал «Медицинская визуализация», Выпуски 1 – 4, издательство “ВИДАР”
1999.

Журнал Американского Международного Союза Здравоохранения, “Наше
Здоровье”, Том 5, Выпуск 1, Зима 1997, Раздел “Развитие информационных
технологий”, Марион Болл и Джудит Дуглас, Статья “Медицинская
информатика: там, где встречаются технология и медицина”, с. 18.

Журнал Американского Международного Союза Здравоохранения, “Наше
Здоровье”, Том 5, Выпуск 2, Весна 1997, Раздел “Активное
сотрудничество”, Статья “Бишкек-Канзас-Сити”, с. 39.

Информационные технологии в охране здоровья, Санкт-Петербург, 1997.

Комплекс ИНФОРМАЦИОННО-ВЫЧИСЛИТЕЛЬНЫХ СЕТЕЙ “Телемедицина”, Проект
“КИВС-МСЧ. ТП”, редакция 1, Санкт-Петербург, Февраль 1997.

Программа первоочередных мероприятий по реализации программы создания
системы телемедицинских услуг в Российской Федерации («Телемедицина»);
Главный информационно-аналитический центр при Минздраве РФ, Управление
информатизации Федерального Фонда ОМС. Москва 1998г.

ТЕЛЕКОНФЕРЕНЦИЯ GlobChat, Copyright © 1997, Julius Edlavitch M.D., В.
Теплинский, Ноябрь 1997.

ТЕЛЕМЕДИЦИНА – INTERNET, Copyright © 1997, Марк Стори, В. Теплинский,
Январь 1997.

ТЕЛЕМЕДИЦИНА – АМСЗ, Copyright © 1997, В. Теплинский, Февраль, 1997.

Телемедицина. Новые информационные технологии на пороге XXI века; Р. М.
Юсупов, Р. И. Полонников. – СПб.:СПИИРАН, 1998. – 486с.

ФЕДЕРАЛЬНАЯ ЦЕЛЕВАЯ ПРОГРАММА «ТЕЛЕМЕДИЦИНА»: Министерство
здравоохранения Российской Федерации. Министерство науки и технологий
Российской Федерации. Москва 1997г.

Физика визуализации изображений в медицине; т. 1 под. ред. С. Уэбба.
Москва, «Мир», 1991.

Приложение 1

Формат информационного поля файла изображения

Позиция Название Значение Описание

0 n 360 Число проекций

1 m 512 Число отсчетов в проекции

2 nx 512 Число элементов в строке изображения

3 ny 512 Число строк в изображении

4 fi 360 Угол сканирования

5 fi0 0 Начальный угол сканирования

6 r0 125 Радиус зоны обследования

7 ri 150 Радиус зоны реконструкции

8 xi 0 X-координата центра зоны реконструкции

9 yi 0 Y-координата центра зоны реконструкции

10 l 110 Уровень окна отображения

11 w 250 Ширина окна отображения

12 ko 185 Номер объекта реконструкции

13 ks 1 Номер среза реконструкции

14 no 877 Номер объекта визуализации

15 ns 5 Номер среза визуализации

16 alm 5000 Мантисса ALFA*1000

17 alex -7 Экспонента ALFA

18 pp 400 Порядок регуляризации * 100

19 mk 9 m*2 = 2**mk

20

0 Тип: 0-CTSYS, 1- СРТ-1000М, 2- СТ1010

21 lstp 5 Шаг изменения по уровню окна

22 wstp 20 Шаг изменения по ширине окна

23 scrl 2 Шаг при сдвиге изображения по вертикали

24 ybig 0 Начальный номер строки отображения

25 rd 0 Расстояние от центра до фокуса в мм/10

26 nj 480 Число измеряемых проекций

27 mj 384 Число измеряемых отсчетов

28 nkad 32 Число кадров в фильме

29 nsl 100 Число срезов для 3D визуализации

30 xw1 20 Левая X-координата

31 yw1 65 Верхняя Y-координата

32 xw2 147 Правая X-координата

33 yw2 192 Нижняя Y-координата

34 hz 10 Шаг между слоями в мм

35 max 8000 Максимум

36 min 80 Минимум

40 surf 20 Порог плотности для выделения 3d-поверхности

41 tr 3500 Время повторения

42 te 150 неизменяемый параметр

43 ti 0 Время инверсии

44 nsli 9 Количество срезов на томограмме

45 acc 4 Количество накоплений

46 fov 300 Поле обзора

47 matx 252 X матрицы

48 maty 252 Y матрицы

49

1

50

7

51 pmin -140 Минимум для обрезки перед упаковкой

52 pmax 220 Максимум для обрезки перед упаковкой

53 ncic 0 Количество полос длинной картинки минус 1

54 yloc 0 Количество строк полной полосы

60 sh2s 180 Сдвиг для второго слоя в микронах

61 sfd 6 Число сдвигов для прямого БПФ

62 nfd 1 (*10) Делитель для спектра

63 nfl 480 (*10) Делитель спектр*фильтр

64 sfi 6 Число сдвигов обратного БПФ

65 nfi 7 (*10) Делитель свернутых проекций

66 imgn 300 (*10) Делитель для изображения

67 ? 360 Так надо ???

70 hx0

x0 – координаты прямоугольника обрезки (печать)

71 hy0 13 y0

72 hx1 47 x1

73 hy1 217 y1

74

242

75

128

76

40

77

128

78

40

79

12

80

88

81

230

82

190

83

128

84

125

85

128

86 sque 142 Параметр квадрата

89

3 Нач. отсчет (для теста каналов)

90

568 Кон. отсчет (для теста каналов)

91

6 Число отсчетов в калибровочных зонах

92

39 Рабочая зона детектора 1 и 9

93

46 2 и 10

94

53 3 и 11

95

60 4 и 12

96

67 5 и 13

97

74 6 и 14

98

81 7 и 15

99

88 8 и 16

100

527 Калибровочная зона детектора 1

101

534 2

102

541 3

103

548 4

104

9 5

105

16 6

106

23 7

107

30 8

108

513 Темновая зона детектора 1

109

520 2

110

527 3

111

534 4

112

542 5

113

549 6

114

556 7

115

563 8

116

28 mA

117

0 Угол топограммы (0-359)

118

0 Длина топограммы (512/256)

119

4590 Полная доза, mAs

120

120 Число пикселей в 10 см.

121

4620 Время сканирования (сек.*10)

122

60 Доза, mAs

123

120 Напряжение ,kV

124

4 Наклон плоскости сканирования в градусах

125

8 Толщина слоя в мм.

126

22 Позиция стола пациента в мм. от начала

127

410 Тип системы

Приложение 2

Модуль формирования трехмерных изображений (С++)

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include “color.h”

#include “volume.h”

#include “vectlib.h”

#include “winds.h”

#include “3d.h”

#include “3dmenu.h”

#include “win3d.h”

#include “filtr.h”

#include “config.h”

#include
“ctmen??????????????????????????????????????????????????????????????????
????????

void FlushByte(ByteHandle bh) // Надо поместить в файл BYTEMAP.C

{ Bytemap *bm = h_data(bh);

int i;

for (i=0; inb; i++) FlushBfi(bm->bfh[i]);

h_free(bh);

}

/*======================================================================
====*/

/* 3d projections */

static double Step;

int surf_level = 80;

vect X = {1,0,0}, Y = {0,1,0}, Z = {0,0,1}, O = {0,0,0};

double Cx, Cy, Cz;

enum tags {nul, and, or};

PLANE bd[] = { { { 1, 0, 0 }, -0.50, and, CBASE3 },

{ { 0, 1, 0 }, -0.50, or, CBASE2 },

{ { 0, 0, 1 }, -0.50, or, CBASE1 },

{ { 0, 1, 0 }, -0.50, nul, GRAY_BASE },

{ { 1, 0, 0 }, -1.0, and, CBASE3 },

{ { -1, 0, 0 }, 0.0, and, CBASE3 },

{ { 0, 1, 0 }, -1.0, and, CBASE2 },

{ { 0, -1, 0 }, 0.0, and, CBASE2 },

{ { 0, 0, 1 }, -1.0, and, CBASE1 },

{ { 0, 0, -1 }, 0.0, and, CBASE1 }

};

PLANE *cbd = bd;

static USGC carr[10] = {0,0,0,0,0,0,0,0,0,0};

POS VP;

/*======================================================================
====*/

Win3d *ud;

vect W;

short dens;

static int trace(vect *v,vect *r)

{ double tmin, tmax, t, u; int c,k;

int i, in;

PLANE *p;

tmin = -100000.0; tmax = 100000.0; c = -1;

for ( i=0; itag == nul) continue;

u = smult(r,&p->n); if (u == 0.0) continue;

t = (- p->d – smult(v,&p->n)) / u;

if (p->tag == and)

if (u > 0.0)

{ if (t <= tmin) return(-1);if (t < tmax) tmax = t;}else { if (t >= tmax) return(-1);

if (t > tmin) { tmin = t; c = p->c; in = i; }

}

else if (u > 0.0)

{ if (t <= tmin) return(-1);if (t > tmax) { tmax = t; tmin = -100000; }

}

else { if (t >= tmax) return(-1);

if (t < tmin) { tmin = t; tmax = 100000; c = p->c; in =
i; }

}

}

if (c != -1) { W = svmult(tmin,r); W = vadd(v,&W);

if (!ud->cut_face && carr[in]) return carr[in];

return ILUT[dens = filtr(W.x,W.y,W.z)];

}

else return(-1);

}

static double T;

static int vtrace(vect *v,vect *r)

{ double tmin, tmax, t, u; int c, cx; double k;

int i;

PLANE *p; vect w;

tmin = -100000.0; tmax = 100000.0; c = -1;

for ( i=4; in); if (u == 0.0) continue;

t = (- p->d – smult(v,&p->n)) / u;

if (u > 0.0)

{ if (t <= tmin) return(-1);if (t < tmax) { tmax = t; c = p->c; }

}

else { if (t >= tmax) return(-1);

if (t > tmin) { tmin = t; c = p->c; }

}

}

if (c != -1)

{ t = tmin;

while (t < tmax){ w = svmult(t,r); w = vadd(v,&w);c = filtr(w.x,w.y,w.z);if (c > surf_level)

{ T = t; //cx = c;

tmin = -100000.0; tmax = 100000.0; c = -1;

for ( i=0; i<4; i++ ){ p = &bd[i];if (p->tag == nul) continue;

u = smult(r,&p->n); if (u == 0.0) continue;

t = (- p->d – smult(v,&p->n)) / u;

if (p->tag == and)

if (u > 0.0)

{ if (t <= tmin) break;if (t < tmax) tmax = t;}else { if (t >= tmax) break;

if (t > tmin) { tmin = t;

c = p->c;

}

}

else if (u > 0.0)

{ if (t <= tmin) break;if (t > tmax) { tmax = t;

tmin = -100000;

}

}

else { if (t >= tmax) break;

if (t < tmin) { tmin = t;tmax = 100000;c = p->c;

}

}

}

if (c != -1 && tmin > T)

{ //if (tmin < T)// { W = svmult(T,r); W = vadd(v,&W);// }//else{ W = svmult(tmin,r); W = vadd(v,&W);if ( W.x > Xmax || W.x < Xmin ||W.y > Ymax || W.y < Ymin ||W.z > Zmax || W.z < Zmin ) return -1;}dens = filtr(W.x,W.y,W.z);return ILUT[dens];}return (-2);} // if (c > surf_level)

t += Step;

} // while (t < tmax)return (-1);} // if (c != -1)else return(-1);}static void getij(double x, double y, double z, int *i, int *j){ vect r; double di,dj;r.x = x; r.y = y; r.z = z;r = vsub((vect*)&x,&ud->o);

di = norma(ud->u); dj = norma(ud->v);

*i = smult(&r,&ud->u)*ud->scale/di/di+di/2+ud->w/2;

*j = smult(&r,&ud->v)*ud->scale/dj/dj+dj/2+ud->h/2;

}

static int imin, imax, jmin, jmax;

static void minmax(double x,double y,double z)

{ int i, j;

getij(x,y,z,&i,&j);

if (iimax) imax = i;

if (jjmax) jmax = j;

}

static void set_tags(void)

{ int i;

for (i=0; i<4; i++) if (bd[i].tag != nul) bd[i].tag = or;for (i=0; i<4; i++) if (bd[i].tag == or ) { bd[i].tag = and; break; }}#define alph 0.33static void smooth(float *z, char *s, int n){ float z0,z1; int i;z0 = z[0];for (i=1; i < n-1; i++){ if (s[i-1]==-2 && s[i]==-2 && s[i+1]==-2)z1 = alph*z[i-1]+(1.0-2*alph)*z[i]+alph*z[i+1];else z1 = z[i];z[i-1] = z0; z0 = z1;}}static void gen_img(WinHandle wh){ int h,w; char name[12];vect v,r,t; USGC *string, *s; int i,j; int c;vect dx,dy, rt;char proc_flag = 1;double rastr;Rect wr = WorkRect(wh);BYTESB isb;int m[2];double sx,sy;ud = h_data(wh);if (ud->img) { EraseByte(ud->img); f_close(ud->img_fil); }

if (ud->img_name) { if (ud->tempimg) f_delete(h_data(ud->img_name));

h_free(ud->img_name);

}

sprintf(name,”v%d.tmp”,ud->temp_name);

ud->img_name = h_alloc(strlen(name)+1); s = h_data(ud->img_name);

strcpy(s,name);

ud->tempimg = 1;

w = ud->iw = ud->w;

h = ud->ih = ud->h;

ud->x0 = 0; ud->y0 = 0;

ud->img_fil = f_create(h_data(ud->img_name), F_CREATE_NORMAL);

m[0] = w; m[1] = h;

f_write(ud->img_fil,m,2*sizeof(int));

ud->img = NewByte (ud->img_fil,(long)2*sizeof(int),w,h,
BFF_EMPTY);

{ double R; vect SUN;

ud->u = ud->v = O;

R = ((w < h) ? (Xmax-Xmin)/w : (Ymax-Ymin)/h);ud->u.x = rastr = 1.5*R; ud->v.y = rastr;

ud->o.x = (Xmax+Xmin)/2; ud->o.y = (Ymax+Ymin)/2; ud->o.z =
(Zmax+Zmin)/2;

VecToBas(&ud->u,&VP); VecToBas(&ud->v,&VP);

bd[0].n.x = 1; bd[0].d = -Cx;

bd[1].n.y = 1; bd[1].d = -Cy;

bd[2].n.z = 1; bd[2].d = -Cz;

bd[4].d = -Xmax+rastr; bd[5].d = Xmin+rastr;

bd[6].d = -Ymax+rastr; bd[7].d = Ymin+rastr;

bd[8].d = -Zmax+rastr; bd[9].d = Zmin+rastr;

dx = svmult(1/ud->scale,&ud->u); dy = svmult(1/ud->scale,&ud->v);

sx = norma(dx); sy = norma(dy); Step = (sx+sy)/2;

rt = vmult(&dx,&dy); norm(&rt);

for (i=0; i<4; i++)if (smult(&rt,&bd[i].n) > 0.0)

{ bd[i].n = svmult(-1.0,&bd[i].n); bd[i].d = -bd[i].d; }

set_tags();

if (!ud->cut_face)

{ SUN = rt; rotYZ(&SUN,-Pi/6);

for (i=0; i<4; i++) carr[i] = 0;for (i=4; i=w) imax = w-1;

if (jmin<0) jmin = 0; if (jmax>=h) jmax = h-1;

v = ud->o;

r = svmult(-(double)w/2+imin,&dx);

t = svmult(-(double)h/2+jmin,&dy);

v = vadd(&v,&r); v = vadd(&v,&t);

OnScale(wr.x0,wr.y0);

OpenBYTESB(ud->img, &isb);

for ( j=0; jview)

{ float *z0, *z1, z2, *wz; char *s0, *s1, c2, *ws;

vect sun,vx;

int N = imax-imin+3;

z0 = (float*)h_malloc(N*sizeof(float));

z1 = (float*)h_malloc(N*sizeof(float));

s0 = h_malloc(N);

s1 = h_malloc(N);

sun.x = -0.5; sun.y = -0.3; sun.z = 1.0; norm(&sun);

v = vsub(&v,&dx); v = vsub(&v,&dy);

for ( i=0; ibd[i] = bd[i];

if (ud->edges)

{ double X0,X1, Y0,Y1, Z0,Z1;

int x0,y0, x1,y1;

int flags;

if (rt.x > 0) { X0 = Xmax; X1 = Xmin; } else { X1 = Xmax; X0 =
Xmin; }

if (rt.y > 0) { Y0 = Ymax; Y1 = Ymin; } else { Y1 = Ymax; Y0 =
Ymin; }

if (rt.z > 0) { Z0 = Zmax; Z1 = Zmin; } else { Z1 = Zmax; Z0 =
Zmin; }

flags = (bd[0].tag != nul); flags <<= 1;flags += (bd[1].tag != nul); flags <<= 1;flags += (bd[2].tag != nul);if (flags == 0){ getij(X1,Y1,Z1,&x0,&y0);getij(Cx,Y1,Z1,&x1,&y1); LineByte(ud->img,x0,y0,x1,y1,ud->edgcol);

getij(X1,Cy,Z1,&x1,&y1);
LineByte(ud->img,x0,y0,x1,y1,ud->edgcol);

getij(X1,Y1,Cy,&x1,&y1);
LineByte(ud->img,x0,y0,x1,y1,ud->edgcol);

}

if ((flags&6) || flags == 0)

{ getij(X0,Y0,Z1,&x0,&y0);

getij(X0,Cy,Z1,&x1,&y1);
LineByte(ud->img,x0,y0,x1,y1,ud->edgcol);

getij(Cx,Y0,Z1,&x1,&y1);
LineByte(ud->img,x0,y0,x1,y1,ud->edgcol);

}

if ((flags&3) || flags == 0)

{ getij(X1,Y0,Z0,&x0,&y0);

getij(X1,Y0,Cz,&x1,&y1);
LineByte(ud->img,x0,y0,x1,y1,ud->edgcol);

getij(X1,Cy,Z0,&x1,&y1);
LineByte(ud->img,x0,y0,x1,y1,ud->edgcol);

}

if ((flags&5) || flags == 0)

{ getij(X0,Y1,Z0,&x0,&y0);

getij(Cx,Y1,Z0,&x1,&y1);
LineByte(ud->img,x0,y0,x1,y1,ud->edgcol);

getij(X0,Y1,Cz,&x1,&y1);
LineByte(ud->img,x0,y0,x1,y1,ud->edgcol);

}

if ((flags&4) || flags == 0)

{ getij(X0,Y1,Z1,&x0,&y0);

getij(Cx,Y1,Z1,&x1,&y1);
LineByte(ud->img,x0,y0,x1,y1,ud->edgcol);

getij(X0,Cy,Z1,&x1,&y1);
LineByte(ud->img,x0,y0,x1,y1,ud->edgcol);

getij(X0,Y1,Cz,&x1,&y1);
LineByte(ud->img,x0,y0,x1,y1,ud->edgcol);

}

if ((flags&2) || flags == 0)

{ getij(X1,Y0,Z1,&x0,&y0);

getij(Cx,Y0,Z1,&x1,&y1);
LineByte(ud->img,x0,y0,x1,y1,ud->edgcol);

getij(X1,Cy,Z1,&x1,&y1);
LineByte(ud->img,x0,y0,x1,y1,ud->edgcol);

getij(X1,Y0,Cz,&x1,&y1);
LineByte(ud->img,x0,y0,x1,y1,ud->edgcol);

}

if ((flags&1) || flags == 0)

{ getij(X1,Y1,Z0,&x0,&y0);

getij(Cx,Y1,Z0,&x1,&y1);
LineByte(ud->img,x0,y0,x1,y1,ud->edgcol);

getij(X1,Cy,Z0,&x1,&y1);
LineByte(ud->img,x0,y0,x1,y1,ud->edgcol);

getij(X1,Y1,Cz,&x1,&y1);
LineByte(ud->img,x0,y0,x1,y1,ud->edgcol);

}

if (flags&4)

{ getij(Cx,Y1,Z1,&x0,&y0);

getij(Cx,Cy,Z1,&x1,&y1);
LineByte(ud->img,x0,y0,x1,y1,ud->edgcol);

getij(Cx,Y1,Cz,&x1,&y1);
LineByte(ud->img,x0,y0,x1,y1,ud->edgcol);

}

if (flags&2)

{ getij(X1,Cy,Z1,&x0,&y0);

getij(Cx,Cy,Z1,&x1,&y1);
LineByte(ud->img,x0,y0,x1,y1,ud->edgcol);

getij(X1,Cy,Cz,&x1,&y1);
LineByte(ud->img,x0,y0,x1,y1,ud->edgcol);

}

if (flags&1)

{ getij(X1,Y1,Cz,&x0,&y0);

getij(Cx,Y1,Cz,&x1,&y1);
LineByte(ud->img,x0,y0,x1,y1,ud->edgcol);

getij(X1,Cy,Cz,&x1,&y1);
LineByte(ud->img,x0,y0,x1,y1,ud->edgcol);

}

if ((flags&3) == 1)

{ getij(X1,Y0,Cz,&x0,&y0);

getij(Cx,Y0,Cz,&x1,&y1);
LineByte(ud->img,x0,y0,x1,y1,ud->edgcol);

getij(X1,Cy,Cz,&x1,&y1);
LineByte(ud->img,x0,y0,x1,y1,ud->edgcol);

}

if ((flags&3) == 2)

{ getij(X1,Cy,Z0,&x0,&y0);

getij(Cx,Cy,Z0,&x1,&y1);
LineByte(ud->img,x0,y0,x1,y1,ud->edgcol);

getij(X1,Cy,Cz,&x1,&y1);
LineByte(ud->img,x0,y0,x1,y1,ud->edgcol);

}

if ((flags&6) == 4)

{ getij(Cx,Y0,Z1,&x0,&y0);

getij(Cx,Cy,Z1,&x1,&y1);
LineByte(ud->img,x0,y0,x1,y1,ud->edgcol);

getij(Cx,Y0,Cz,&x1,&y1);
LineByte(ud->img,x0,y0,x1,y1,ud->edgcol);

}

if ((flags&6) == 2)

{ getij(X0,Cy,Z1,&x0,&y0);

getij(Cx,Cy,Z1,&x1,&y1);
LineByte(ud->img,x0,y0,x1,y1,ud->edgcol);

getij(X0,Cy,Cz,&x1,&y1);
LineByte(ud->img,x0,y0,x1,y1,ud->edgcol);

}

if ((flags&5) == 1)

{ getij(X0,Y1,Cz,&x0,&y0);

getij(Cx,Y1,Cz,&x1,&y1);
LineByte(ud->img,x0,y0,x1,y1,ud->edgcol);

getij(X0,Cy,Cz,&x1,&y1);
LineByte(ud->img,x0,y0,x1,y1,ud->edgcol);

}

if ((flags&5) == 4)

{ getij(Cx,Y1,Z0,&x0,&y0);

getij(Cx,Cy,Z0,&x1,&y1);
LineByte(ud->img,x0,y0,x1,y1,ud->edgcol);

getij(Cx,Y1,Cz,&x1,&y1);
LineByte(ud->img,x0,y0,x1,y1,ud->edgcol);

}

getij(Cx,Cy,Cz,&x0,&y0);

if ((flags&3) == 3)

{ getij(X1,Cy,Cz,&x1,&y1);
LineByte(ud->img,x0,y0,x1,y1,ud->edgcol);

}

if ((flags&6) == 6)

{ getij(Cx,Cy,Z1,&x1,&y1);
LineByte(ud->img,x0,y0,x1,y1,ud->edgcol);

}

if ((flags&5) == 5)

{ getij(Cx,Y1,Cz,&x1,&y1);
LineByte(ud->img,x0,y0,x1,y1,ud->edgcol);

}

if (flags == 3)

{ getij(X0,Cy,Cz,&x1,&y1);
LineByte(ud->img,x0,y0,x1,y1,ud->edgcol);

}

if (flags == 6)

{ getij(Cx,Cy,Z0,&x1,&y1);
LineByte(ud->img,x0,y0,x1,y1,ud->edgcol);

}

if (flags == 5)

{ getij(Cx,Y0,Cz,&x1,&y1);
LineByte(ud->img,x0,y0,x1,y1,ud->edgcol);

}

if (flags == 1)

{ getij(X0,Y0,Cz,&x0,&y0);

getij(Cx,Y0,Cz,&x1,&y1);
LineByte(ud->img,x0,y0,x1,y1,ud->edgcol);

getij(X0,Cy,Cz,&x1,&y1);
LineByte(ud->img,x0,y0,x1,y1,ud->edgcol);

}

if (flags == 2)

{ getij(X0,Cy,Z0,&x0,&y0);

getij(Cx,Cy,Z0,&x1,&y1);
LineByte(ud->img,x0,y0,x1,y1,ud->edgcol);

getij(X0,Cy,Cz,&x1,&y1);
LineByte(ud->img,x0,y0,x1,y1,ud->edgcol);

}

if (flags == 4)

{ getij(Cx,Y0,Z0,&x0,&y0);

getij(Cx,Cy,Z0,&x1,&y1);
LineByte(ud->img,x0,y0,x1,y1,ud->edgcol);

getij(Cx,Y0,Cz,&x1,&y1);
LineByte(ud->img,x0,y0,x1,y1,ud->edgcol);

}

}

OffScale();

}

//====================================================================

int tracePoint(WinHandle w, int x, int y, vect *p)

{ int c;

Rect wr = WorkRect(w);

vect v,r;

vect dx,dy, rt;

ud = h_data(w);

if (ud->img == 0) return -1;

x -= wr.x0-ud->x0;

y -= wr.y0-ud->y0;

dx = svmult(1/ud->scale,&ud->u); dy = svmult(1/ud->scale,&ud->v);

rt = vmult(&dx,&dy); norm(&rt);

v = ud->o;

r = svmult(-(double)ud->iw/2+x,&dx);

v = vadd(&v,&r);

r = svmult(-(double)ud->ih/2+y,&dy);

v = vadd(&v,&r);

cbd = ud->bd;

c = trace(&v,&rt);

cbd = bd;

*p = W;

return (c==-1?c:dens);

}

static void AttachMenu(Win3d *ud)

{

Opt3DMenu[D3_O3Dset].flags |= MF_ACTIV;

FilMenu[D3_FOpen].flags |= MF_ACTIV;

if (ud->img != 0) FilMenu[D3_FSav].flags |= MF_ACTIV;

else FilMenu[D3_FSav].flags &= ~MF_ACTIV;

}

static void DetachMenu(void)

{

Opt3DMenu[D3_O3Dset].flags &= ~MF_ACTIV;

FilMenu[D3_FOpen].flags &= ~MF_ACTIV;

FilMenu[D3_FSav].flags &= ~MF_ACTIV;

}

static char *asof3 = sof3;

static void DoMenuCommand(WinHandle w)

{ Win3d *ud = h_data(w);

int m[2]; char *s,*p;

switch(MenuItem[0])

{ case D3_Fil:

switch(MenuItem[1])

{ case D3_FOpen: // Open file

s = GetFileName2(GetCfgItem(“frag”),F_OPEN_READ,s_3soo);

if (!*s) return;

if (ud->img) { EraseByte(ud->img); f_close(ud->img_fil); }

if (ud->img_name) { if (ud->tempimg)
f_delete(h_data(ud->img_name));

h_free(ud->img_name);

}

ud->img_name = h_str(s);

old: ud->img_fil = f_open(h_data(ud->img_name), F_OPEN_READ);

f_read(ud->img_fil,m,2*sizeof(int));

ud->iw = m[0]; ud->ih = m[1];

ud->img = NewByte (ud->img_fil,(long)2*sizeof(int),

ud->iw,ud->ih, BFF_EXIST);

ud->tempimg = 0;

redraw_user(w);

AttachMenu(ud);

return;

case D3_FSav: // Save file

if (ud->img == 0) break;

s = GetFileName2(GetCfgItem(“frag”),F_OPEN_WRITE,s_3sow);

if (!*s) return;

p = s+strlen(s); if (p[-1] == ‘*’) p[-2] = 0;

FlushByte(ud->img); f_close(ud->img_fil);

f_delete(s); f_rename(h_data(ud->img_name),s);

h_free(ud->img_name);

ud->img_name = h_str(s);

goto old;

}

break;

case D3_Opt:

switch(MenuItem[1])

{ case D3_O3Dset:

{ int edg = ud->edges, ec = ud->edgcol,

cut = ud->cut_face, view = ud->view;

int level = surf_level;

int afl = (bd[2].tag != nul), cfl = (bd[1].tag != nul),

sfl = (bd[0].tag != nul), pfl = (bd[3].tag != nul);

double sc = ud->scale;

int i = InputForm ( asof3, &edg, &ec,

&view, &level, &cut,

&afl, &cfl, &sfl, &pfl, &sc

);

ud = h_data(w);

if (i != 1) break;

ud->edges = edg; ud->edgcol = ec;

///if (pfl) { afl = 0; cfl = 0; sfl = 0; }

bd[0].tag = sfl; bd[1].tag = cfl;

bd[2].tag = afl; bd[3].tag = pfl;

ud->scale = sc;

ud->view = view;

ud->cut_face = cut;

surf_level = level;

return;

}

}

break;

case D3_Drw:

SetupLUT(dw3d);

gen_img(w); redraw_user(w);

AttachMenu(ud);

return;

}

Do3DMenu();

}

static void redraw_user(WinHandle w)

{ Win3d *ud = h_data(w);

VisSetWin(w);

VisFill(wptr(w)->bgcolor);

if (ud->img) VisByte(ud->img,-ud->x0,-ud->y0);

}

extern void handler_3d_solid_root(WinHandle w, EventRecord *e);

void handler_3d_solid (WinHandle w, EventRecord *e)

{ Rect r = WorkRect(w);

Win3d *ud = h_data(w);

switch(e->what)

{ case EVTY_UPDATE:

{ PaintBorder(w);

VisSetWin(w);

ud->w = r.x1-r.x0; ud->h = r.y1-r.y0;

if (ud->img) VisByte(ud->img,-ud->x0,-ud->y0);

break;

}

case EVTY_ACTIVATE:

AttachMenu(ud);

SetMenu(menu3D);

PaintTitle(w);

break;

case EVTY_DEACTIVATE:

DetachMenu();

PaintTitle(w);

break;

case EVTY_DISPOSE:

if (ud->img) { EraseByte(ud->img); f_close(ud->img_fil); }

if (ud->img_name) { if (ud->tempimg)
f_delete(h_data(ud->img_name));

h_free(ud->img_name);

}

return;

case EVTY_MOUSE:

switch(HandleMouse(w,e))

{ case inMenuBar:

MenuSelect();

DoMenuCommand(w);

break;

case inExit:

if ((e->MS & MS_ANY_PRESSED) == 0) break;

DisposeWindow(w);

break;

case inContent:

if ((e->MS & MS_ANY_PRESSED) == 0) break;

DragWorkField(w,e);

ud->x0 += e->MX; ud->y0 += e->MY;

redraw_user(w);

break;

}

break;

case EVTY_KEYBOARD:

MenuKey(e);

DoMenuCommand(w);

break;

}

}

WinHandle RunSolidView(Rect r)

{ WinHandle w; Win3d *ud;

static filnum = 0;

w = NewWindow(handler_3d_solid_root,

WF_BORDER2+WF_HEADER+WF_FILL+WF_ROUND_CORNER,

LIGHTBLUE, BLUE, s_3som);

SetRectShape(w, &r);

h_resize(w,sizeof(Win3d));

ud = h_data(w);

ud->type = TYPE_3D;

ud->temp_name = ++filnum;

ud->img_name = 0; ud->tempimg = 0;

ud->img = 0;

ud->scale = 1;

ud->x0 = 0; ud->y0 = 0;

ud->iw = 0; ud->ih = 0;

ud->edgcol = BRIGHTWHITE;

ud->view = 0,

ud->edges = 1,

ud->cut_face = 1;

return w;

??

Приложение 3

Описание программы обработки изображений Ctsoft

PAGE 1

PAGE 3

Локальные рабочие станции

Станции глобальной связи

Локальный сервер клиники

Трехмерная визуализация

Планирование операций

Рентгенология

Сосудистая хирургия

Ультразвуковые исследования

Компьютерная томография

Магнитно – резонансная томография

Лабораторные исследования

Гистология

Эндоскопия

Телеконференции и консультации

Документооборот

Страховая медицина

Базы данных

Удаленные сопровождение операций

Мониторинг

Электрофизические методы

Нашли опечатку? Выделите и нажмите CTRL+Enter

Похожие документы
Обсуждение

Оставить комментарий

avatar
  Подписаться  
Уведомление о
Заказать реферат
UkrReferat.com. Всі права захищені. 2000-2019