Реферат по предмету "Радиоэлектроника, компьютеры и переферийные устройства"


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

МИНИСТЕРСТВО ОБЩЕГО И ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ РФ МОСКОВСКИЙ ОРДЕНА ТРУДОВОГО КРАСНОГО ЗНАМЕНИ ИНЖЕНЕРНО - ФИЗИЧЕСКИЙ ИНСТИТУТ (технический университет) ВЕЧЕРНИЙ ФАКУЛЬТЕТ Кафедра № 25 ПОЯСНИТЕЛЬНАЯ ЗАПИСКА к дипломному проекту на тему :
“Передача информации из компьютерного рентгеновского томографа TOMOSCAN SR7000” Студент – дипломник: И. В. Степанов.
Руководитель проекта: зав. лаб. кибернетики инст. хирургии им. А. В. Вишневского, канд. физ. - мат. наук Е. Н. Тимин.
Консультант: зав. лаб. РНЦ “Курчатовский институт”, канд. физ. – мат. наук А. В. Пестряков
Рецензент: директор ООО “КДС” канд. физ. - мат. наук, лауреат Гос. премии СССР В. А. Нестеров.
Зав. кафедрой 25: доктор физ. - мат. наук, профессор Ю. А. Быковский. Москва -1999 г. Complex Diagnostic Systems Ltd ООО “Комплексные диагностические системы”
Независимая сервисно - диагностическая консоль (НСДК) для компьютерных томографов, ультразвуковых установок и рентгеновских аппаратовCTsoft Справочник пользователя Аннотация.
Данный документ состоит из введения и трех глав. Во введении даются начальные сведения о системе; в главе 1 описывается работа с изображениями: обработка, печать, архивирование, работа с текстом, создание трехмерных объектов; в главе 2 - работа с трехмерными объектами; в главе 3 - работа с базой данных. Изучать документ рекомендуется параллельно с работой на компьютере. Предполагается знание пользователем основ работы с персональным компьютером в операционной среде MS-DOS, навык работы с Нортон-командером. Введение.
Пользовательский интерфейс системы аналогичен интерфейсу операционной системы Windows, т. е. основан на работе с окнами. Окно - это область экрана, ограниченная рамкой. Полоса вверху рамки содержит название окна или имя загруженного в него объекта. Если окно активно - эта полоса выделена цветом. В верхнем левом углу окна находится кнопка, нажав которую вы уничтожаете окно, в верхнем правом углу - кнопка изменения размера окна, если это изменение не заблокировано. Для того чтобы сделать окно активным, достаточно навести курсор мыши на это окно, и щелкнуть левой кнопкой. Вверху экрана над всеми окнами выводится меню активного в данный момент окна, оно реализует функции активного окна. В меню всех окон - левый элементCT- это главное меню. С помощью главного меню системы обеспечивается оперативный вызов конфигурации окон, необходимой для выполнения требуемого типа работ в системе и вызов окон различных типов независимо от текущей конфигурации. Кроме того, главное меню поддерживает процедуры для загрузки данных объемного представления, их уничтожения и вызов окна установки параметров системы. При активизации главного меню выводится вертикальное подменю с элементами: 2D Изображения {2}
вызов конфигурации окон для работы с 2Dизображениями, печати, архивирования, управления вводом и преобразованием изображений и работы с текстовой документацией 3D Объем {3}
вызов конфигурации окон для работы с 3D изображениями и планирования вмешательства Параметры {U} окно установки параметров системы Окна {W}
переход к подменю вызова отдельных окон и независимой загрузки и генерации 3D данных 2dslice {Alt/I} вызов окна Изображения 3dview {Alt/3} вызов окна 3dview 3dpreview {Alt/P} вызов окна 3dpreview Animator {Alt/A} вызов окна Animator 3d measure {Alt/M} вызов окна 3d measure Load volume {Alt/V} загрузить объемное представление томограмм Generate cube генерировать объемное представление полутонового куба Generate ball генерировать объемное представление полутоновой сферы Close volume закрыть и удалить из памяти рабочее объемное представление Text перейти к окну редактирования текста Exit {X} выход из системы CT_Imager Как войти в систему.
После инсталляции системы, проводимой разработчиками, она находится в рабочем директорииc: \ctsys\exe. Надо войти в него и выполнить команду ct_work. bat. На экране дисплея появится нечто, похожее на нижеприведенную иллюстрацию:
Это конфигурация для работы с изображениями. На рисунке видны два главных окна системы: окно Управление (справа) и окно Изображения, с изображением среза, полученного на рентгеновском томографе. Как выйти из системы.
Первый вариант: надо активизировать в верхнем меню элемент CT, появится вертикальное подменю, и щелкнуть мышью на элементе Выход. Второй вариант: в латинском нижнем режиме клавиатуры (для активизации латинского регистра надо одновременно нажать клавишиControl-Shift, для активизации русского регистра - клавиши Alt-Shift- зеленая рамка по периметру экрана - признак русского регистра) нажмите клавишуx. После выполненных действий в любом варианте появится окно подтверждения выхода. Если вы не передумали выйти из системы щелкните мышью на кнопкеДа окна подтверждения или при работе с клавиатуры: переведите курсор на кнопку Да и нажмите клавишу Enter. ГЛАВА 1. Работа с изображениями. Какие окна выведены на экран после входа в систему.
Это окна конфигурации для работы с изображениями. Они перечислены ниже. Первые три окна присутствуют всегда... Четвертое окноFG-сервис выводится, если в вашей системе есть оборудование для ввода видеосигнала Окно Управление
является основным окном при работе с 2D изображениями и позволяет управлять вводом изображений с томографа, преобразованием данных во внутренний формат и вызывает приложения, работающие вне оболочки, такие как работа с стримером, с факс-модемом, монитором, базой данных, Нортон-командером и архивом; управляет печатью изображений и диагностических заключений на лазерном принтере и настройкой параметров печати изображения. Окно Изображения
предназначено для работы с двумерными изображениями различных типов и двумерными сечениями трехмерных объектов. В этом окне выполняются основные виды работ по визуализации, анализу и обработке двумерных изображений и подготовка3D представлений по серии последовательных двумерных сечений. Окно Текст
предназначено для работы с текстовой информацией параллельно с анализом изображений и подготовки диагностических заключений. Окно FG Сервис
обеспечивает управление работой с видеосигналом, включая просмотр изображения в динамике, оцифровку текущего кадра, ввод титула пациента, тестирование и настройку платы ввода изображений с видеосигнала. Окно Управление
Окно Управлениеявляется управляющим окном 2D режима и позволяет реализовывать основные функции работы с изображением: выбор, печать, копирование, удаление и т. д. , управлять настройкой системы и запускать внешние приложения. В окне отображаются функциональные кнопки, таблица выбора-выделения изображений, подокна отображения. В верхней части окна находится подокно с путем директория, в котором выбираются изображения, под ним - таблица с тремя списками: в левом поддиректории, в среднем - номера объектов, в правом - номера срезов. Вначале в таблице находятся списки соответствующие стандартному пути нахождения изображений: c: \ctsys\images (параметр image в файле ct. cfg). В верхней строке списка директориев находится строка“...”и далее список поддиректориев, если он есть. Для смены директория щелкните мышью на имени поддиректория в списке, либо на строке“...”(выход в старший директорий). В каждом списке имеется курсор (серый или черный), цвет активного курсора - черный. Курсор, указывающий на изображение, перемещается стрелками вверх и вниз на одну позицию; на лист - клавишамиPgUp, PgDn; в начало и конец списка - клавишами Home, End. Кроме того, справа от каждой таблицы находится линейка для перемещения курсора. Ею пользуются в случае, если список изображений не умещается в таблице. Вверху и внизу линейки находятся кнопки стрелка вверх и стрелка вниз при нажатии на них мышью курсор перемещается на одну позицию. На линейке находится движок; если навести на него курсор мыши, нажать левую кнопку мыши и, не отпуская ее, переместить мышь вверх или вниз, то движок переместится на новое место линейки и после отпускания кнопки мыши произойдет перевывод другого фрагмента списка. Другой способ перевывода фрагмента списка - щелкнуть мышью сверху или снизу от движка. Как, не выходя из системы, получить текст помощи.
Для получения подсказки о работе с каким-нибудь элементом панели наведите курсор мыши на этот элемент (но не щелкайте! ) и нажмите на клавиатуре компьютера F1 - выведется окно с текстом подсказки. Для получения подсказки работы с архивом наведите курсор мыши на элемент менюАрхив(но не щелкайте! ) и нажмите на клавиатуре F1; если текст превышает размеры экрана его можно листать, щелкая мышью над кнопками выведенными внизу текста (ДАЛЬШЕ, НАЗАД); для выхода из режима подсказки нажмите на клавиатуре Esc. Как выбрать нужное изображение.
Для загрузки изображения щелкните мышью на номере нужного пациента или на номере нужного среза в таблице выбора панелиУправление - активный курсор перейдет на этот номер. Далее нажмите кнопку Откр. IM или повторно щелкните мышью (изображение выведется в окно Изображение). Для загрузки объекта - выберите объект и нажмите кнопку Откр. NO. В окно Изображение выведутся все изображения данного объекта. Для выбора изображения по фамилии надо воспользоваться кнопкой Поиск. Произойдет вывод окна поиска. Поиск осуществляется по шаблону, вводимому в одноименное поле. Шаблон–это текст с искомыми начальными символами (от 1 до 25 символов). Поиск осуществляется в директории, выведенной в вверху окна, и, если параметр“Включая поддирекории” имеет значение “да”, во всех поддиректориях, по точному совпадению с учетом регистров, при нажатии кнопокИскать и Искать дальше. Кнопка Искать дальше используется, когда начальные символы изображения и шаблон совпали, а полного совпадения нет. Если изображение найдено, оно выводится в окно изображения, иначе выводится сообщение“Изображение не найдено”. Изменить путь директории поиска можно, воспользовавшись соответствующей кнопкой с помощью стандартного окна выбора. Для поиска можно использовать список изображений данной директории, отсортированный по фамилиям и выведенный вверху окна поиска. Перемещение по этому списку осуществляется мышью, стандартными элементами управления, имеющимися справа от списка - движок и кнопки, а также клавишами“стрелка вверх”, “стрелка вниз”, PgUp, PgDn клавиатуры. Для загрузки изображения, на котором стоит курсор надо на нем повторно щелкнуть кнопкой мыши или нажать клавишу “Enter”. Выход из функции осуществляется кнопками Отказ и Ок. При выходе по кнопке Ок происходит передача пути директории поиска в окно Управление. Как перевывести изображение.
Кнопка Перевыводвыводит изображение заново, она используется, когда вы произвели какие-либо манипуляции с изображением и хотите убрать с экрана результаты этих манипуляций. При перевыводе восстанавливается также масштаб изображения 1, если он был не равен 1 или 2. Как изменить “окно вывода” изображения.
Понятие окна появилось в связи с необходимостью отображения диапазона чисел интересующей области на весь диапазон градаций яркости (серого) экрана. Окно вывода изображения характеризуется двумя величинами C и W. C -это центр диапазона, а W - ширина диапазона. Числа, соответствующие точкам изображения (например, в томографии - числа Хаунсфилда), от минимума C-W/2 до максимума C+W/2 отображаются серым пропорционально диапазону градаций яркости, соответственно числа меньшие минимума отображаются черным, а большие максимума - белым. Меняя значения C и W, мы меняем отображение, выделяя одно и нивелируя другое (W) или переводя его в сторону светлых или темных тонов (C). Менять значения можно кнопками С+, С-, W+, W- панели Управление или одноименными элементами меню окна Изображения, а также (при активном окне Изображения) кнопками клавиатуры (C-стрелки вверх и вниз, W-стрелки вправо и влево). При однократном нажатии происходит увеличение/уменьшение значений на шаг (фиксированное значение). Шаг измененияС и W может быть скорректирован в окне системных установок Setup (элемент меню Параметры элемента СТ верхнего меню). Как листать изображения.
Функции IM+/IM- обеспечивают переход к следующему/предыдущему изображению в серии файлов данного объекта. Функции NO+/NO- обеспечивают переход к первому изображению следующего/предыдущего объекта. Доступ к этим функциям мышью аналогичен вышеописанному способу. Для клавиатуры существует следующее соответствие: IM+-“=”, IM-“-”, NO+-“+”, NO-“_”. Как выделить изображения.
Режим выделения файлов изображений в таблице включается кнопкой Выделениеи используется для последующих: копирования в отдельный директорий, удаления с жесткого диска или для печати на лазерный принтер. В режиме выделения перемещение курсора приводит к немедленному выводу текущего изображения на экран вне зависимости от того, выделен файл или нет. Для выделения надо навести курсор (активный курсор - фон черного цвета) на нужный объект или срез (переключение между столбцами объектов, срезов, поддиректориев можно, помимо мыши, делать клавишейTab, а внутри столбца курсор передвигается стрелками или движками) и еще раз щелкнуть мышью или нажать клавишуEnter. Выделенные файлы отображаются желтым цветом. При выделении объекта выделяются все его срезы. При щелчке мыши или нажатии клавишиEnter на выделенном объекте или срезе выделение пропадает. Имеются также кнопки Все+ Все- Инверс. Первые две кнопки выделяют или, соответственно, гасят все изображения данного директория. КнопкаИнверс(если курсор находится в столбце срезов) выделяет невыделенные и гасит выделенные срезы (т. е. инвертирует выделение) для данного объекта, а, если курсор находится в столбце объектов, то инвертирует выделение всех изображений. Как копировать изображения.
Кнопка Копир копирует изображение, выведенное в окно Изображенияили все выделенные изображения в директорий \BOX. Эта функция используется, если вы хотите отобрать изображения по какому-либо признаку. Как удалять изображения.
Кнопка Удаление удаляет изображение, выведенное в окно Изображения или все выделенные изображения с жесткого диска Как вводить примечания в файл с изображением.
Кнопка Комментвыводит окно ввода формы для ввода двух строк комментария в файл с изображением. После ввода комментария, он отображается вверху окнаИзображения. Как работать с меню окна Управление.
Окно Управление активизирует меню, состоящее из следующих элементов: NC вызов Нортон - коммандера Архив вызов окна управления работой с архивом изображений Сеть
вызов внешней программы ввода изображений по локальной сети (например, с подключенного компьютера томографа) и преобразования изображений в формат Ctsoft БазаДанных
вызов внешней программы для работы с медицинской базой данных Сервис вызов:
программы работы с архивным устройством (стриммером, магнитооптическим накопителем, записывающим CD и т. д. );
монитора CTMON для редактирования некоторых параметров системы; программы работы с модемом ЗагрКонф
загрузка заранее записанной конфигурации параметров печати из файла Парам1
вызов окна для изменения редко изменяемых параметров печати Парам2 вызов окна для изменения часто меняемых параметров печати ФАЙЛ/экр изменение параметра печати: из файла или с экрана ЗапКонф запись текущей конфигурации параметров печати в файл Как печатать на лазерном принтере.
Печать изображений и текста заключения на лазерном принтере осуществляется через окнаИзображения и Текст. Поэтому не рекомендуется использовать окна Изображения и Текст, вызванные в других конфигурациях, например в 3D volume, и удалять любое из них до завершения работ по получению твердых копий. Функция печати на лазерный принтер может быть вызвана только в случае, если в окноИзображениязагружено изображение. Печать изображений производится со следующими приоритетами: если есть выделенные изображения, то печатаются только они; если выделения нет, начиная с изображения загруженного в окноИзображения, печатается либо заданное (если задано) количество изображений (параметр К-во изображений), либо все имеющиеся изображения (срезы) данного объекта (пациента) в соответствии со значениями нижеописанных параметров печати, которые могут быть изменены с помощью элементов верхнего менюПарам1 и Парам2.
При активизации элемента меню Парам1 выводится окно ввода формы со следующими параметрами: Разрешение принтера 300dpi/ 600dpi/ 1200 dpi
Параметр, задающий плотность печати точек/дюйм, для типов принтеров, не имеющих режима 600 dpi должно всегда стоять значение 300 dpi Матрица пикселя 4*4/ 8*8
Матрица, размером с которую, печатается каждая точка полутонового изображения (значение 8*8 используется для высокого разрешения принтера) Большие буквы загол. вкл/вык
Если этот флаг включен, две верхние строки листа (сопроводительная информация) печатаются большими буквами Отступ слева изображ.

Значение этого параметра - отступ от левого края в миллиметрах для изображений Отступ слева текста

Значение этого параметра - отступ от левого края в миллиметрах для текста Промежуток по гориз.

Значение этого параметра - расстояние между изображениями по горизонтали в миллиметрах Промежуток по вертик.

Значение этого параметра - расстояние между изображениями по вертикали в миллиметрах. Коррекция C

Значение этого параметра - смещение центра окна изображения (в томографическом смысле) перед печатью. Центр смещается на величину параметра, умноженного на ширину окнаWв сторону увеличения. Параметр должен быть меньше 1 (два знака после десятичной точки). Введение этого параметра связано с тем, что "светлота" изображения на экране дисплея не всегда соответствует “светлоте" напечатанного изображения.
При активизации элемента меню Парам2 выводится окно ввода формы со следующими параметрами: Инверсия Вык/ Вкл флаг инверсии изображения перед печатью Протокол Вкл/ Вык флаг печати заключения из окна Текст Форматирование НеФормат/ Формат/ БазДФорм
параметр, определяющий форматирование заключения перед печатью Обрезка Нет/ Прямоуг.
тип выделяемой области (обрезки) при печати текущего изображения, область печатаемого изображения: Нет - все изображение, Прямоуг - прямоугольник Откуда Файл/ Экран
определение того, откуда берется печатаемая информация: из файла на диске или непосредственно с экрана; при печати с экрана прямо на изображение накладывается сопроводительная информация К-во копий 1 - 9 количество печатаемых копий К-во изображений 0/

количество выводимых изображений, если параметр выключен (равен 0), он не оказывает влияния на печать; если параметр включен (не равен 0) печать прекращается, если количество выведенных изображений сравняется со значением параметра; Масштаб (точки)

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

тот же масштаб изображения; только он задается числом с плавающей точкой, границы изменения: >=0. 3,
В нижней части окна Управление находится подокно Печ_Nотображающее в процессе печати текущее количество переданных в лазерный принтер изображений.
Если пользователь по каким-то причинам хочет прекратить процесс печати он должен нажать клавишуEscклавиатуры компьютера. В этом случае программа доведет до конца процесс передачи в лазерный принтер текущего изображения, напечатает то, что получилось, и остановится вне зависимости от значений параметраК-во изображений. Функциональные кнопки: ПокзОбр
визуализация границ выделяемой прямоугольной области в соответствии с заранее введенными значениями этих границ УстОбр
установка границ выделяемой области; кнопка используется, если заранее введенные значения границ не удовлетворяют пользователя; после нажатия кнопки необходимо на изображении мышью задать новые границы обрезки, которые запоминаются и действуют до следующего нажатия этой кнопки РучЗагр загрузка текущего изображения в память принтера без печати Печать
кнопка, запускающая процесс печати серии изображений или печать после загрузки изображений в ручном режиме ПчТекст
кнопка, запускающая процесс печати только информации находящейся в окне Текст, после входа в режим РучЗагр блокируется до нажатия кнопки Печать
Все параметры печати, а также значения параметров региона печати, запоминаются в текущей конфигурации и могут запоминаться в файлах конфигурации, имеющих расширениеCLJ. Таким образом, пользователь имеет возможность создавать типовые конфигурации для печати различных изображений и создания собственных режимов печати. Элемент меню ЗагрКонф позволяет вызывать из файла конфигурацию параметры печати. Элемент меню ЗапКонф позволяет запоминать в файле конфигурацию параметров печати. При печати изображений с томографа ОБРАЗ допускается печать параметров исследования на томографе, если параметр Промежуток по гориз. (расстояние между изображениями по X) больше или равен 18 мм. Окно Изображения Как, не выходя из системы, получить текст помощи.
Для получения текста помощи активизируйте окно, наведите курсор мыши на элемент меню (но не нажимайте кнопку мыши! ) и нажмите на клавиатуре компьютера F1. Выведется окно с текстом подсказки; если текст превышает размеры экрана его можно листать, щелкая мышью над кнопками выведенными внизу текста (ДАЛЬШЕ, НАЗАД); для выхода из режима подсказки нажмите на клавиатуре Esc. Как работать с меню окна Изображения.
Окно Изображения активизирует меню, состоящее из следующих элементов: Файл работа с базой данных изображений Изм измерения и анализ изображений Манип обработка изображений Серв дополнительные утилиты C+ {+} увеличение значения центра окна визуализации C {-} уменьшение значения центра окна визуализации W+ {Shift/+} увеличение значения ширины окна визуализации W {Shift/-} уменьшение значения ширины окна визуализации IM+ {Alt/+} переход к следующему изображению IM {Alt/-} переход к предыдущему изображению NO+ переход к первому срезу следующего объекта NO переход к первому срезу предыдущего объекта Удал удаление изображения или выделенных изображений Мфор
вывод изображения на мультиформатную камеру или термопринтер Печ печать выделенных при загрузке объекта изображений PCX сохранение изображения в формате PCX Как производить файловые операции.
Файловые операции производятся с помощью элемента меню Файл. Подменю Файл Открыть {Alt/O}
просмотр каталога изображений, выбор и загрузка изображения Срез ->
переход к подменю получения изображений сечений из объема, элемент активен только при работе с трехмерными объектами Сохранить {Alt/S} запись в файл текущего изображения под тем же именем Сохранить как {Alt/A} запись в файл текущего изображения с другим именем Сохранить в MРT {Alt/B}
запись в файл текущего изображения в формате ДИСТОМ (только для исходно дистомовских изображений) Копировать в BOX {Alt/L}
запись текущего изображения или выделенных изображений в отдельный директорий Ввести примечания {Alt/M}
редактирование или добавление комментария к текущему изображению Упаковать {Alt/C} компрессия текущего изображения
Открыть Выводится окно для ввода имени файла с изображением, выбор осуществляется с помощью мыши или стрелок. Собственно загрузка происходит с помощью элемента"ОК" или двойным нажатием левой кнопки мыши или клавишей Enter. Элемент меню Отказ предназначен для выхода из подменю Открыть без загрузки изображения.
Сохранить как ... Окно для записи в файл текущего изображения такое же, как и при загрузке рабочего файла на экран. Изображение можно записать под именем, уже имеющимся в каталоге, или под новым именем, которое следует ввести с клавиатуры.
Сохранить в МРТ Если загруженное изображение изначально было в формате ДИСТОМ, то оно снова преобразуется в этот формат; файл с этим изображением получает исходное имя и записывается в директориюctsys\images. Файл в формате CTSOFT не удаляется.
Ввести примечания Обеспечивает ввод комментария в файл текущего изображения. Вызывает окно ввода и редактирования комментария.
Упаковать Вызывает компрессию текущего изображения с параметрами по умолчанию и записывает изображение с именем, начинающимся с символа "P" в директорию сжатых изображений Подменю элемента Срез Axial {A} импорт текущего аксиального сечения из 3D объема Coronar {C} импорт текущего коронарного сечения из 3D объема Sagital {S} импорт текущего сагиттального сечения из 3D объема Paraxial -> импорт текущего параксиального сечения из 3D объема Trace {P} выбор параксиального сечения по следу CurSeg//Z выбор параксиального сечения по сегменту параллельно оси Z CurSeg//Y выбор параксиального сечения по сегменту параллельно оси Y CurSeg//X выбор параксиального сечения по сегменту параллельно оси X Oblique {O} импорт наклонного сечения Setup установка параметров 3D импорта Как производить Измерения. Измерения производятся с помощью элемента меню Изм. Подменю элемента Изм Значения в точке {V} измерение значений функции в точке Среднее {M} динамический анализ среднего по зоне интереса 10*10 ROI {R} анализ по зоне интереса Значения в области {A} выбор зоны и вывод значений плотности Расстояния в см. {D} измерение расстояний/углов Маркер {K}
вставка пометок структур изображения с нумерацией для печати Профиль {F} вывод и анализ графика строки/столбца изображения Объемы {V} определение объемов структур по серии изображений Калькулятор {I} калькулятор с возможностью ввода измеренных величин Объемы очагов {O} вычисление суммарных объемов очагов на одном изображении
Функция Значения в точке позволяет измерить значение плотности в любой точке активного окна изображения. В верхней части окна выводятся текущие значения координат курсора в пикселях (Х - координата х, Y- координата y), а также значение плотности в точке с указанными координатами (Н- значение плотности в числах Хаунсфилда для томограмм или значение яркости для рентгеновских и ультразвуковых изображений). Нажатие левой кнопки "мыши" приводит к фиксации текущего измерения на экране (фиксируется до 8-ми точек, одновременно отображается до 4-х значений координат и плотности - значения с 5 по 8 замещают значения с 1 по 4). Нажатие правой кнопки мыши илиEsc приводит к выходу из функции.
Функция ROI позволяет проанализировать значение плотности по зоне интереса.
При вызове функции ROI в правый верхний угол экрана выводится окно ROI, а в верхней строке - меню ROI. В окне ROI находятся: · подокна, отображающие параметры ROI; · кнопки изменения параметров; · функциональные кнопки.
Анализ значения плотности по зоне интереса включает в себя вычисление следующих параметров: РС число пикселей в зоне МЕ среднее значение по зоне МА максимальное значение по зоне MI минимальное значение по зоне ST стандартное отклонение RM средне - квадратичное отклонение AR площадь зоны VO объем зоны - AR умноженное на толщину слоя
Выбор зоны интереса осуществляется в зависимости от типа зоны.
Для прямоугольной зоны левая верхняя граница зоны устанавливается при нажатии левой кнопки мыши. Зона расширяется до нужного уровня и ограничивается нажатием правой кнопки. Если в процессе расширения зоны выясняется, что следует изменить начальную точку зоны, необходимо вновь нажать левую кнопку мыши в нужном месте и повторить вновь процесс задания зоны.
Для круглой зоны сначала выводится окружность, привязанная к маркеру мыши. Ее размер меняется нажатием кнопок“стрелка вверх” и “стрелка вниз”. Перемещая мышь и меняя размеры окружности, выбирается зона. Фиксация зоны производится путем нажатия любой кнопки мыши.
Выбор центра эллипсоидальной зоны производится путем нажатия левой кнопки мыши. Затем перемещением маркера мыши изменяются радиусы эллипса в вертикальном и горизонтальном направлении. Фиксация зоны производится при нажатии правой кнопки мыши.
Для произвольной зоны выбирается начальное положение контура с помощью левой кнопки мыши. Затем каждое нажатие левой кнопки формирует новый элемент ломаной линии контура произвольной зоны. При непрерывно нажатой левой кнопке зона формируется из смежных точек. Замыкание зоны производится нажатием правой кнопки мыши.
Внимание: избегайте пересечений при формировании контура произвольной зоны, иначе результат будет некорректным.
Когда в качестве типа зоны установлено все изображение, никаких действий для определения зоны не требуется.
Для работы с зоной интереса, прежде всего надо установить ее номер. Подокна с номерами зон (от 1 до 8) отображены вверху окна ROIв виде горизонтального ряда; для установки нужного номера надо наехать курсором на подокно с этим номером и щелкнуть левой кнопкой мыши; подокно с установленным номером выделяется цветом.
Следующий шаг - установка параметров зоны интереса. Каждая зона характеризуется набором параметров, отображаемых подокнами в правой части окна ROI:
Цвет: Черный/ Синий/ Зеленый/ ЗеленоГолубой/ Красный/ Фиолетовый/ Коричневый/ СветлоСерый/ Серый/ Голубой/ СветлоЗеленый/ ЯркоЗеленоГолуб/ ЯркоКрасный/ СветлоФиолет/ Желтый/ Белый/ Выключен- цвет при выделении текущей зоны, для изменения параметра надо наехать курсором на подокно и щелкнуть левой кнопкой мыши нужное число раз, при значении Выключен - выключается цветовое выделение значений в зоне;
ROI Тип: Прямоугольник/ Окружность/ Эллипс/ Произвольная/ Все изображ. - выбор типа зоны интереса: прямоугольная, круглая, эллипсоидальная, произвольная или все изображение, для изменения параметра надо наехать курсором на подокно и щелкнуть левой кнопкой мыши нужное число раз;
ROI Рез: Статистика/ Гистограмма- выбор отображения статистики или статистики и гистограммы при анализе зоны, для изменения параметра надо наехать курсором на подокно и щелкнуть левой кнопкой мыши;
Теперь можно выделить выбранную зону на изображении, для чего в окне ROI надо нажать кнопку Выбор, после чего надо перевести курсор на изображение и выделить зону. При включенном цветовом выделении предварительно надо выбрать точку на изображении, значение которой будет центром томографического окна выделения, то есть после нажатия кнопкиВыборнадо навести курсор на нужную точку и нажать левую кнопку мыши. После выделения зоны в окне изображения отображаются данные статобработки, а если выбран параметрГистограмма, то во вспомогательном окне отображается и гистограмма, которая гасится щелчком мыши на этом окне. При наличии в файлеct. cfg параметра multiROIи, если ему присвоено ненулевое значение, в качестве результатов выводятся только значения объемов. Выбранная зона маркируется символом * под подокном с соответствующим номером зоны.
Для обсчета ранее выбранной зоны можно пользоваться кнопкой Вызов. Т. е. если под подокном с выбранным номером зоны уже есть *, можно нажать кнопкуВызов и зона выделится автоматически. При нажатии кнопки ВызВсе выделятся все ранее выделенные (помеченные *) зоны. Примечание: функции Вызов и ВызВсе не работают с произвольной зоной (параметр Тип=Произвольная). Для передачи результатов обсчета зоны или всех зон в окно с заключением надо нажать, соответственно, кнопкиЭкспорт и ЭксВсе.
Если необходимо удалить выделенную зону следует нажать кнопку Удалить. Меню ROI(верхняя строка экрана) обеспечивает возможность запомнить, загрузить или удалить произвольную конфигурациюROI, а также выполнить дополнительные действия, и содержит четыре элемента: Загр - загрузка ранее записанной конфигурации ROI из файла, Запс - запись текущей конфигурации ROI в файл, Удалить - удаление файла с конфигурацией ROI,
Сбросить - сброс зон без перевывода изображения для измерений по более чем 8-ми областям,
Суммировать - вывод окна для суммирования групповых сумм, полученных при нажатии кнопки ЭксВсе.
Файл конфигурации ROI содержит информацию обо всех зонах ROI. Он может иметь произвольное имя, но должен иметь расширение roi. При выполнении любого из вышеописанных элементов меню выводится таблица файлов поддиректорияROI директория CTSYS для ввода имени файла конфигурации ROI. Далее, в зависимости от выбранного элемента меню, этот файл загружается, записывается или удаляется.
Для всех зон интереса запоминаются последние результаты измерений, которые могут использоваться калькулятором в функцииКалькулятор и транслироваться им в протокол измерений. При нажатии клавиши F1 выводится текст помощи. Выход из функции ROI - кнопка Выход.
Функция Значения в области для выбранной зоны изображения выводит на экран значения плотности в виде чисел. Зона выбирается мышью вышеописанным (в функции ROI) способом. После выбора зоны на экран выводится окно с таблицей чисел и двумя кнопками: Печать и Отказ. Слева от таблицы по вертикали выводится столбец с номерами строк, сверху по горизонтали - строка с номерами столбцов. Если выбранный фрагмент не уместился на экране, выводится столько значений, сколько умещается на весь экран и выводятся дополнительно вертикальная и горизонтальная линейки с рычажками, позволяющими вывести не уместившиеся значения. Кроме того, над и под столбцом с номерами строк дополнительно выводятся соответственно номера начальной и конечной строки выбранной зоны, а слева и справа от строки с номерами столбцов - номера начального и конечного столбца выбранной зоны. Кроме просмотра чисел, их можно напечатать на принтере с помощью кнопкиПечать. Выход из функции осуществляется кнопкой Отказ.
Функция Среднеепозволяет производить измерения среднего, максимального и минимального значений по квадратной зоне интереса размером 11*11 пикселей при динамическом перемещении зоны. Результаты записываются в параметры текущей зоны. Выход из функции осуществляется нажатием правой кнопки "мыши" или клавиши ESC.
Функция Расстояния позволяет измерять расстояния и углы на текущем изображении. Измерения производятся с помощью резиновой линии. Нажатием левой кнопки "мыши" фиксируется начальная точка отрезка. Перемещение "мыши" приводит к изменению положения конечной точки отрезка. Значения расстояний/углов отображаются на экране в формате: D1: A1: D2: A2: и т. д.
Расстояния отображаются в сантиметрах, для томограмм и в пикселях для других изображений, а углы по отношению к горизонтали в диапазоне -90 - +90 градусов. Нажатие правой кнопки "мыши" приводит к фиксации конечной точки отрезка и выводу значений, соответствующих этому отрезку, на экран. Последовательно можно зафиксировать до 8-ми отрезков. Затем каждый вновь введенный отрезок будет как бы выталкивать первый из имеющихся. Выход из функции осуществляется с помощью клавишиEsc или повторным нажатием правой кнопки.
Функция Профиль осуществляет вывод профиля данных. При выборе функции Профиль выводится управляющее окно. В нем отображены два скроллера - горизонтальный и вертикальный. Выбор скроллера автоматически ведет к выбору вертикального или горизонтального сечения для построения профиля. В дополнительном окне отображается номер строки или колонки и выводится максимальное и минимальное значение для данного сечения. Для выхода из функцииПрофиль достаточно закрыть дополнительное окно или нажать любое другое окно.
Функция Объемы позволяет вычислять объемы нескольких образований по серии томограмм с учетом толщины среза и расстояния между срезами. В случае если томограммы вводились с видеосигнала, предполагается, что расстояние между центрами смежных слоев равняется толщине среза.
При вызове функции Объемы в правый верхний угол экрана выводится окно Объемы, а в верхней строке - меню Объемы. В окне Объемы находятся: подокна, отображающие параметры ROI; кнопки изменения параметров; функциональные кнопки.
Для работы с объемом, прежде всего надо установить его номер. Подокна с номерами объемов (от 1 до 8) отображены вверху окна Объемыв виде вертикального ряда; для установки нужного номера надо наехать курсором на подокно с этим номером и щелкнуть левой кнопкой мыши; подокно с установленным номер выделяется цветом.
Далее надо установить параметры зоны интереса аналогично тому, как это делается в функцииROI.
Для вычисления объемов необходимо выделить зону интереса на каждом срезе. Зона интереса выделяется аналогично функцииROI кнопкой Выбор или вызывается кнопками Вызов и ВызВсе. Результаты вычисления объемов отображаются в окне Объемыв строке с соответствующим номером объема. Для смены номера среза служит кнопкаIM+. Для передачи результатов вычисления выделенного объема или всех объемов в окно с заключением надо нажать, соответственно, кнопкиЭкспорт и ЭксВсе. Для перехода к вычислениям объемов других объектов служат три элемента меню Объемы: Нов_NO - загрузка нового объекта, NO+ - переход к следующему объекту, NO - переход к предыдущему объекту.
При нажатии клавиши F1 выводится текст помощи. Выход из функции Объемы - кнопка Выход. Как пользоваться калькулятором.
Для работы с калькулятором необходимо активизировать окно Изображения (если оно не было активным), в верхнем меню войти в подменю Изм и выбрать функцию Калькулятор. На экран выводится панель калькулятора, которая имеет вид: На панели размещены следующие поля:
· отображения операндов (ОП1, ОП2), операции(OП), результата (РЕЗ), памяти (П); · клавиш набора чисел; · клавиш операций; · клавиш вычислительных функций; · клавиш вспомогательных функций; · клавиш работы с памятью; · клавиш загрузки величин, измеренных ранее на изображении;
Все действия осуществляются "мышью" путем наезда ее курсора на нужную клавишу и нажатия левой кнопки. При этом, если после очередного нажатия кнопки "мыши" должен получиться результат, не отпуская кнопку можно видеть в соответствующих полях оба операнда, операцию и результат. После отпускания кнопки "мыши" результат перемещается на место первого операнда, а поле второго операнда очищается. На место любого операнда можно загрузить одну из величин, измеренных ранее на изображении. Так как каждая из этих величин может иметь до восьми значений, то после выбора нужной величины (осуществляется подсветка клавиш "1"-"8") необходимо ввести нужный номер значения этой величины. Например, если необходимо ввести величину расстояния, измеренного вторым, надо нажать на клавишу "D", а затем на клавишу "2". В калькуляторе имеется память на одно число - регистр П. Поле работы с памятью имеет клавиши, позволяющие производить следующие действия: Сбр - очистка “П”, ПЗ - загрузка в “П” из поля "ОП1", ПЧ - загрузка в поле "ОП1" из “П”, Пx - обмен полей "ОП1" и “П”, П+ - сложение “П” с "ОП1", П- - вычитание из “П” "ОП1", П* - умножение “П” на "ОП1", П/ - деление “П” на "ОП1".
Результаты арифметических операций с "П" помещаются также в "П". Помимо арифметических операций в поле вычислительных имеются клавишиSQRT - вычисление квадратного корня из "ОП1" и клавиша 1/x - вычисление значения 1/"ОП1". Вспомогательная функция "BACK" стирает последнюю цифру при наборе операнда, при многократном "нажатии" можно стереть весь операнд. Вспомогательная функция "UNDO" возвращает ситуацию, в которой находился калькулятор до последнего "нажатия", в отличие от предыдущей функции ее действие однократно. Вспомогательная функция "x>Text" помещает значение "ОП1" в файл "text", она может использоваться, когда при наборе текста в текстовом окне появляется необходимость вставки в текст нужных числовых значений. При нажатии клавиши F1выводится текст помощи. Выход из функции - закрытие окна (щелчок мыши в левый верхний угол) Подменю элемента Манип (манипуляции) Сложить изобр. {Ctr/A} сложение изображений Вычесть изобр. {Ctr/S} вычитание изображений Инверсия {Ctr/V} позитив/негатив текущего изображения Фильтры -> фильтрация изображений Фрагменты -> функции работы с фрагментами экрана Масштаб/ Поворот {Ctr/R} масштабирование и поворот изображения Зеркало {Ctr/W} получение зеркального изображения Увеличить {Ctr/Z} выбор и масштабирование фрагмента изображения Масштаб X Y {Ctr/L} выбор размеров изображения в пикселях Растянуть окно {Ctr/I}
выбор прямоугольной зоны и контрастирование изображения в ней Окно - по средн. {Ctr/E}
установка центра окна отображения по значению среднего для текущей зоны интереса Перегрузить {Ctr/O} перевывод текущего изображения Сложение изображений
Функция позволяет получить среднее текущего изображения и выбранного при входе в функцию. При входе в функцию появляется текущий каталог изображений, аналогичный используемому в функцииОткр IM. После выбора файла выполняется сложение изображений. Полученный результат замещает в памяти текущее изображение и выводится на экран. К новому изображению применимы операции фильтрации, измерений и работы с фрагментами. Вычитание изображений
Функция аналогична предыдущей, но производит вычитание выбранного изображения из текущего изображения. Инверсия изображения
Функция инвертирует изображение путем построения инверсной таблицы преобразования яркости при выводе на экран. Повторный вызов функции возвращает исходный режим отображения. Подменю элемента Фильтры Smooth {Shift/1} фильтp сглаживания Mean {Shift/2} фильтp усpедненного сглаживания Contour {Shift/3} фильтp подчеpкивания контуpов на основе матpицы pазмеpом 3*3 пикселей Variable {Shift/4} фильтp пеpеменного сглаживания Edge-enhancing {Shift/5} фильтp улучшения контуров Edge-enhancing with smooth {Shift/6} фильтp сглаживания контуpов Shading {Shift/7} фильтp обpаботки полутонов Smoothing 2*2 {Shift/8} фильтp сглаживания (усpеднение на основе матpицы pазмеpом 2*2 пикселей) Median {Shift/9} медианный фильтp Contour {Shift/0} контуpный фильтp (матpица pазмеpом 5*5 пикселей) Matrix 3*3 {Shift/ матричный фильтр 3*3 Matrix 5*5 {Shift/>} матричный фильтp 5*5 Filter Setup {Shift//} установка характеристик матричных фильтров Некоторые алгоритмы фильтрации изображений в системе CTsoft A B C
Обозначение элементов изображения в матрице 3*3, наиболее часто используемой D E F для фильтрации изображений G H J Smoothing Gaussian filter Smoothing filter via mean value formation Contour filter Variable filter где P(x, y) - фильтруемая центральная точка P(r) - пиксель внутри выбранной матрицы
R1/R2 - радиус матрицы фильтруемого фрагмента изображения в пикселях в X, Y направлениях S1, S2 - весовой фактор в X, Y направлениях r - радиус пикселя Edge-enhancing filter Edge-enhancing, smoothing filter Shading filter Smoothing filter via averaging with 2*2 pixel matrix Contour filter with 5*5 pixel matrix Подменю элемента Фрагменты: Сохранить изображение
сохранение всего текущего изображения из окна Изображения как фрагмента Выбрать и сохранить выбор и сохранение фрагмента экрана Сохранить окно сохранение окна Изображения как фрагмента Загрузить
загрузка ранее сохраненного фрагмента и размещение его на экране Загрузить в формате PCX
загрузка ранее сохраненного фрагмента в формате PCX в отдельное окно
Для функций сохранения фрагмента перед их записью выводится окно выбора типа файла фрагмента. Возможен выбор форматовIMG, BMP и PCX. В формате IMGфрагмент записывается в файл в виде последовательности байтов, начиная с левого верхнего угла фрагмента строчка за строчкой. В начале файла помещаются два параметра типаInt16, определяющие размер фрагмента по X и Y. После выбора типа файла выводится окно для задания имени файла. В зависимости от формата файл должен иметь расширениеIMG, BMP или PCX.
Функция Масштаб/ Поворотпозволяет поворачивать изображение на произвольный угол и масштабировать его с произвольным коэффициентом. После вызова функции выводится окно, содержащее два числовых параметра: Масштаб и Угол. Параметр Scale имеет по умолчанию значение 1, Угол- 0. Угол поворота задается в градусах и отсчитывается против часовой стрелки. В результате поворота и масштабирования получается изображение, которое может обрабатываться, как обычная томограмма или снимок, и сохранено в файле с помощью функцииСохранить как ....
Функция Увеличитьпозволяет выделять произвольный фрагмент изображения и увеличить его до размера текущего изображения.
Функция Масштаб X Yпозволяет изменить размеры изображения, задавая количество точек по каждой координате, в которое вы хотите преобразовать исходное количество точек.
Функция Растянуть окно позволяет выбрать прямоугольную зону интереса и контрастировать изображение в ней. Левая верхняя граница зоны устанавливается при нажатии левой кнопки "мыши". Зона расширяется до нужного уровня и ограничивается нажатием правой кнопки. Если в процессе расширения зоны выясняется, что следует изменить начальную точку зоны, необходимо вновь нажать левую кнопку "мышки" в нужном месте и повторить вновь процесс задания зоны. Нажатие правой кнопки "мыши" фиксирует конфигурацию полученной зоны и контрастирование изображения в ней на всю шкалу яркости.
Функция Окно - по среднему устанавливает значение центра окна отображения, равное среднему значению, полученному при обработке текущей зоны интереса. Если для данной зоны не производилось измерений, устанавливается значение 0.
Функция перезагрузки изображения Перегрузитьзагружает в память и на экран исходное изображение, т. е. удаляет с экрана результаты манипуляций. Подменю элемента Серв Двойное окно вызов окна для работы с комбинацией CW-окон Цветная палитра /Стандартная палитра перевывод в цветной палитре/стандартной палитре Раскрасить цветовое кодирование выделенных диапазонов значений в изображении Создать объем генерация объема по серии срезов Стереотаксис
манипуляции по вводу системы координат в срезы, полученные со специальными метками, и получению координат точки цели Двойной масштаб/ Масштаб 1: 1 {Ctr/D} увеличение изображения в два раза с интерполяцией/ воз врат к исходному масштабу 3D параметры дополнительные Hide all отменить все назначения по отображению точек, линий и динамики Show points отображать точки 3D измерений в текущем окне Show lines отображать проекции линии в текущем окне при 3D изме рениях Show curve отображать проекции произвольной линии в текущем окне при 3D измерениях Show all отображать проекции всех примитивов в текущем окне при 3D измерениях Show dynamics
отображать след инструмента в текущем окне при 3D визуализации динамических эффектов в окне Animation Не выделять/ Выделять
изменение значения флага выделения при загрузке объекта, если значение параметраНе выделять, то при загрузке объекта все изображения - не выделены, иначе - все выделены, если после загрузки объекта вы выделили часть изображений, то изменение этого параметра приведет к инверсии выделения Установка окон
установка значений параметров C и W из набора 1-5 в качестве текущих параметров Параметры экрана выбор и установка разрешающей способности экрана: 640*480 , 800*600, 1024*768
Функция Двойное окно позволяет выводить изображение не в одном CW-окне, а в нескольких с помощью выводимого нижеприведенного окна.
Стандартно всегда включено CW-окно с номером 1. Включение другого окна производится следующим образом:
выбирается номер окна (при этом кнопка Вкл отобразится как Вык); устанавливаются, если это необходимо другие значения C и W; нажимается кнопка Вык (при этом она отобразится как Вкл); нажимается кнопка Уст - установить.
Выключается окно приведением кнопки Вкл/ Вык в состояние Вык и нажатием кнопки Уст. Кнопка Поз при нажатии перевыводится как Нег и служит для перехода от позитива к негативу и наоборот.
Функция Раскрасить позволяет раскрашивать изображение - она выводит пиксели, попавшие в один из трех заданных диапазонов, соответственно одним из трех цветов: красным, зеленым или синим. Диапазоны выбираются с помощью линеек выводимого при обращении к функции окна, приведенного ниже.
Движок вертикальной линейки меняет текущий центр всех трех диапазонов, а горизонтальной - общую ширину трех диапазонов, которая делится на три. Первый диапазон находится в пределах между числами D1 и D2, второй - между D2 и D3 и третий - между D3 и D4. Значение центра равно (D1+D4)/2. Выход из функции гашение окна (квадрат в левом верхнем углу).
Функция Создать объем обеспечивает построение объемного представления по серии последовательных срезов. При вызове функции вызывается меню настройки параметров объемного представления: Select Mode Select/All
Режим выбора области для включения в объем: Select -выбор прямоугольника на первом изображении, All - все изображение Bit per voxel 8/16 Разрядность объемного представления Filters Вык/1-12 Выбор номера фильтра To pack result Yes/No Флаг упаковки получаемого объемного представления Circle cut Вык/Вкл
Включение/выключение обрезки эллипсом периферийных значений изображения Start file Load/Current
Флаг выбора первого файла изображения при построении объемного представления: Load - загружать, Current - начинать с текущего изображения X0: 128 Х -координата центра эллипса Y0: 128 Y - координата центра эллипса EA0: 110 радиус эллипса по горизонтали EB0: 115 радиус эллипса по вертикали
Функция Установка окон обеспечивает возможность сохранять, редактировать и выбирать текущее окно из семи пар чисел (C, W). При входе в функцию выводится окно ввода, где помимо указанных семи пар чисел, выведены 2 параметра и 7 кнопок с номерами окон (от 0 до 6) и кнопкаОтказ. Текущее окно имеет номер 0. Первый параметр имеет два значения (при нажатии меняются на противоположное). Первое значение -Установка выбранного окна. При этом если нажать на кнопки с 1 по 6, соответствующие значения C и W перепишутся в текущее (0) окно пере выведется изображения и функция завершится. Второе значениеФиксация текущего в выбранномприводит к тому, что при нажатии кнопок с 1 по 6 произойдет запоминание значений C0 и W0 в соответствующей паре. Второй параметр включает/выключает двойное окно-изображение выводится одновременно в двух окнах (всегда 0 и 1). Чтобы установить двойное окно, надо при выходе нажать кнопку 0. То есть, кнопки 1-6 всегда устанавливают одинарное окно. Установить заранее подготовленные окна можно также с помощью клавиатуры - клавишами 0-6 (0-включает/выключает двойное окно) Что еще можно делать с помощью меню окна Изображения.
Функция Удал производит удаление либо изображения выведенного в окно Изображения, либо заранее выделенных изображений, перед удалением выводится окно подтверждения.
Функция Мфор производит подготовку экрана для вывода на мультиформатную камеру. Если в вашем компьютере имеется соответствующее оборудование (плата FrameGrabber) и к нему присоединена мультиформатная камера, происходит вывод на нее. Выход из этого режима - нажатие любой клавиши.
Функция Печ действует в режиме загрузки объекта. Если есть выделенные изображения, они печатаются с ранее установленными параметрами.
Какие параметры системы можно установить элементом подменю Setup меню CT.
Выводится окно изменения системных параметров. В нем можно установить следующие параметры системы: - тип меню, - масштаб при импорте сечений из 3D, - шаг изменения уровня С, - шаг изменения уровня W, - цвет надписей, - цвет надписей при печати с экрана, - цвет линий, - порт принтера. Как работать с видеосигналом - окно FG Сервис
Окно FG Tools состоит из шести функциональных кнопок и меню.
Функция Нов. пациент/ Стоп запрашивает информацию о новом пациенте/завершает цикл ввода изображений. Фамилия и возраст: Номер пациента: Номер снимка: Толщина среза: Диаметр зоны: Комментарий 1: Комментарий 2: Дополнительная информация: Число кадров в фильме: OK Отказ
Некоторые значения предлагаются по умолчанию, но могут быть изменены. Номер пациента должен быть уникальным, иначе возможно стирание ранее введенных изображений. Ввод начального номера снимка позволяет, в случае необходимости, начать ввод изображений не с первого снимка и дополнять уже имеющиеся изображения данного пациента.
Функция Запись (оцифровка и запись текущего видеоизображения) фиксирует изображение, записывает его в файл изображения и выводит его на экран.
Функция Запис. фильм записывает последовательность изображений в соответствии с заданным числом кадров с максимально возможной скоростью - порядка 4 кадров в секунду. Функция Показ. фильм проигрывает записанный или загруженный фильм. Функция Фиксир. кадрсохраняет текущий кадр записанного или загруженного фильма с текущими NO и NS. Следует применять эту функцию до нажатия кнопки Стоп.
Функция Загр. фильм загрузить ранее записанный фильм и запустить его проигрывание. FG Устан Установка параметров ввода изображений *Кадр + Переход к следующему кадру фильма *Кадр Переход к предыдущему кадру фильма *Фильм в изобр. Преобразование всех кадров фильма в изображения Изобр. как фильм Проигрывание изображений начиная с текущего *Удалить Удаление текущего фильма * - фильм должен быть загружен. Подменю элемента FG Устан
Используется для настройки конкретной платы поставщиками системы при инсталляции. · H Total` - частота строчной развертки · H Displayed - количество пикселей в строке /8 · H Sync Position - сдвиг изображения по горизонтали · H Sync Width - ширина строчного синхроимпульса · V Total - частота кадровой развертки · V Adjust - плавная настройка частоты кадровой развертки · V Displayed - количество линий по вертикали · V Sync Position - сдвиг изображения по вертикали
· Interplace Mode - 3 - чересстрочная развертка, 1 - прогрессивная · Max Scan Line Address - всегда 15
· Scan frame size: 128 -выбор размера области динамической визуализации · Scan X-Left: 0 -выбор левой X-координаты области динамической визуализации относительно левого верхнего угла матрицы в CT · Scan Y-Up: 0 -выбор верхней Y-координаты области динамической визуализации относительно левого верхнего угла матрицы в CT · Save X - x-координата сохраняемого прямоугольника · Save Y - y-координата сохраняемого прямоугольника
· Save NX - размер по x-координате сохраняемого прямоугольника · Save NY - размер по y-координате сохраняемого прямоугольника Как работать с текстовой информацией - окно Текст.
Окно предназначено для редактирования и печати предварительно загруженных текстовых файлов. Стандартный вариант - это редактирование заключения. Заключение-это текстовый файл, относящийся к пациенту с номером NO, имеющий имя форматаc. txt и расположенный в директории с путем, указанным в конфигурационном файле ct. cfg в параметре ctxt (информация о ct. cfgприведена в приложении). Если этот параметр отсутствует, путь директории заключений-\ctxt. При загрузке изображения, если заключение уже имеется, оно автоматически загружается в окноТекст. Если в конфигурационном файле параметр conclравен 1, то при загрузке изображения, если заключения нет, оно создается с начальным содержимым, которое берется из файлаtext рабочего директория, который является текущим шаблоном. Кроме того, перед этим текстом вставляется шапка, состоящая из двух строк с названием учреждения, датой и идентификацией пациента (эта информация берется из изображения). При активизации окнаТекст в верхней строке выводится меню: Файл +Автозапись Формат Печать Показ фраз.

При работе со строкой меню Файл выводится подменю для работы с файлами: Загрузить текст - загружает в окно файл с расширением txt; Записать текст - производит запись в текущий файл; Очистить - очищает окно;
Загрузить шаблон - загружает файл с шаблоном (должен иметь расширение txt) из директория \pattern. Записать шаблон - записывает текст окна в файл с шаблоном (должен иметь расширение txt) в директорий \pattern. Строка + Автозапись означает, что включен режим автоматической записи нового состояния окна, нажатие приводит к инверсии ситуации, строка приобретает вид- Автозапись: Формат- происходит форматирование текста, которое заключается в удалении переносов слов и в склейке строк, если следующая строка начинается с первой позиции, а не с табуляции или с пробелов. Печать - происходит печать находящегося в окне текста.
При щелчке мыши на строку меню Показ фраз в правый угол экрана выводится подсказка для загрузки в окно словосочетаний, которые заранее набраны в файлеphrase. txt. Гасится повторным щелчком на строку меню Показ фраз. При нажатии F1 выводится текст подсказки, который гасится нажатием клавиши Esc. При наборе теста в текстовом окне, текст справа от курсора сдвигается вправо. Он может стать невидим при превышении строкой заданной ширины, которая определяется количеством символов умещающихся в строку при выводе на принтер, но не пропадает. При достижении курсором заданной ширины строки происходит автоматический перенос курсора на следующую строку вместе с возможно ушедшей вправо частью строки, и она становится видимой. Стрелка влево Перемещение курсора Стрелка вправо Перемещение курсора Стрелка вверх Перемещение курсора Стрелка вниз Перемещение курсора Page Up Листание текста вверх Page Down Листание текста вниз Insert, Ins Включение/отмена режима вставки Delete, Del Удалить символ справа от курсора Backspace Удалить символ слева от курсора Home Встать на начало строки End Встать на конец строки Enter Разрыв текущей строки на месте курсора F3 Маркировать текст F4 Отменить маркировку текста Cnrl(F3) Удалить маркированный текст и запомнить его Cnrl(F4) Вставить удаленный в последний раз текст F5 Изменение цвета фона F6 Изменение цвета текста F8 Удаление строки F9
Склеивание строк, начало следующей строки попадает на место курсора в текущей Alt+буква
Загрузка соответствующего словосочетания, определяемого из файла phrase. txt Alt+F1 Удалить только что загруженное словосочетание F1 Вывод текста помощи Кнопки "мыши"
Исполнение функций меню или позиционирование курсора в поле текста Как работать с окном ввода формы
Окно ввода формы применяется во многих местах пакета и служит для модального ввода значений параметров, т. е. выход из окна возможен только при нажатии одной из управляющих кнопок. № Имя окна формы Параметр 1 : Значение параметра 1 Параметр 2 : Значения параметра 2 Параметр 2 : Значение параметра 3 Параметр 4 : Значение параметра 4 ...... : : Параметр N-1 : Значение параметра N Параметр N : Значение параметра N OK Cancel Редактирование строки при вводе формы (ввод имени файла и т. п. ) Insert, Ins Включение/отмена режима вставки Delete, Del Удалить символ справа от курсора Backspace Удалить символ слева от курсора Home Встать на начало строки End Встать на конец строки Стрелка влево
Перемещение курсора; перебор вариантов циклически вправо для вариантного поля ввода Стрелка вправо
Перемещение курсора; перебор вариантов циклически влево для вариантного поля ввода Стрелка вверх Переход из одного поля ввода в другое Стрелка вниз Переход из одного поля ввода в другое Enter
Закончить ввод с результатом, определяемым высвеченной кнопкой меню Esc Отменить ввод Tab Переход из режима ввода полей к меню и обратно Кнопки "мыши"
Исполнение функциональных кнопок или позиционирование курсора в поле ввода для вариантных полей ввода (левая кнопка-перебор вари антов циклически вправо, а правая - влево) Как работать с архивом изображений.
В случае пополнения архива работа делится на следующие два этапа: подготовка изображений для записи на носители, т. е. создание архивных файлов; копирование архивных файлов на архивный носитель (магнитооптический диск, магнитная лента).
Выполнение второго этапа производится либо автоматически, если путь архива указывает на ваш архивный носитель (например, на имя устройства магнитооптики), либо с помощью специальных программ (например, Tape для стриммера). В случае извлечения из архива этапы выполняются в обратном порядке. Для работы с архивом необходимо активизировать окно Управление (если оно не было активным) и активизировать элемент верхнего меню Архив. Выводится окно для установки параметров, выбора работы и выбора директориев. В этом окне выводятся подокна со следующими параметрами и их значениями по умолчанию:
Эти параметры можно менять. Внизу под параметрами выведены два ряда клавиш. В первом ряду четыре клавиши для выбора нужной работы:
АРХИВ РАЗАРХИВ УПАКОВКА РАСПАКОВКА. Предварительно выбранная работа подсвечена зеленым цветом; если надо сменить работу щелкните левой кнопкой мыши на нужной клавише.
Для каждой работы в файле pasoudes. dat заводится по две строки с путями исходной и результирующей директории в следующем порядке: распаковка, упаковка, разархивирование, архивирование. Значения этих строк, т. е. пути можно менять клавишамиПУТЬ ОТКУДА и ПУТЬ КУДА Во втором ряду - клавиши: ПУТЬ ОТКУДА для выбора пути исходного директория ПУТЬ КУДА для выбора пути директория результата Отказ отказ от функции.
Значения параметров обрезки определяют процедуру, производимую над изображением перед упаковкой, которая состоит в том, что все числа, отображаемые пикселями изображения, (например, для рентгено-томограммы это числа Хаунсфилда) меньшие минимума приравниваются минимуму, а большие максимума приравниваются максимуму, все остальные числа остаются без изменения. Это означает, что при последующей распаковке мы получим числа только в диапазоне окна обрезки. То есть, при сужении окна обрезки происходит некая потеря информации; в виде компенсации за эту потерю мы получаем более эффективную упаковку. Соответственно вышеизложенному, значения минимума и максимума окна обрезки выбираются так, чтобы это окно включало бы в себя все значимые числа изображения. Значение параметра "Выполнить работу над всеми файлами или выборочно" "над всеми"приводит к тому, что после запуска работа будет выполнена над всеми файлами изображений в соответствующем поддиректории без участия оператора. Значение"выборочно"приводит к тому, что после запуска программа будет ждать от оператора действий, описанных ниже.
Значение параметра "Удалять исходные файлы при работе с архивом" "да"приводит к удалению соответственно архивируемых или разархивируемых файлов; значение"нет" исключает удаление.
Следующий параметр позволяет выводить сообщения о неудачах упаковки-распаковки и тогда оператор может прервать этот процесс.
Следующие два параметра позволяют задать режим создания архива из упакованных или неупакованных изображений и режим разархивирования до упакованных или до неупакованных изображений.
При нажатии на клавиши выбора путей ПУТЬ ОТКУДА, ПУТЬ КУДАвыводится соответствующее окно. Выбранные пути отображаются в окне работы с архивом. После выбора параметров и путей для запуска программы работы с архивом надо щелкнуть левой кнопкой мыши на заранее выбранной клавише работы (т. е. на клавише зеленого цвета). Все окна исчезнут, и запустится программа упаковки/распаковки и работы с архивом, которая описана ниже. Процедура архивирования изображений заключается в упаковке файлов с изображениями (если они не были предварительно упакованы) и в соединении упакованных файлов, относящихся к одному пациенту, в один файл. Упаковка файлов с изображениями производится по определенному алгоритму и дает выигрыш в 4-5 раз. Процедура разархивирования обратна процедуре архивирования. Согласно системным соглашениям неупакованные, упакованные, и архивные изображения располагаются в разных директориях, начальные пути которых определяются в файлеct. cfg.
Пути исходной и результирующей директории программа берет из файла pasoudes. dat в соответствии с выбранной работой. Процедуры архивирования и разархивирования производятся над изображениями или архивами, находящимися в соответствующих директориях.
Если выполнение работы было задано с параметром "выборочно", программа работает в "ручном" режиме. На экран выводится две строки: в первой (вверху экрана) отображается вид работы и значения параметров окна обрезки, а в дальнейшем отображаются сообщения программы; во второй (внизу экрана) - меню типаНортон. Вначале оно содержит следующее: 1Help 2WorkC 3Min 4Max 5Choic.... 10Quit. Оператор имеет возможность: · получить подсказку - F1;
· изменить вид работы нажатием клавиши F2 или нажатием кнопки мыши при наезде на поле "F2" или поле с названием вида работы в верхней строке; · в режиме упаковка и архивирование изменить значения минимума и максимума окна обрезки данных; то осуществляется соответственно клавишами F3, F4 или нажатием кнопки мыши при наезде на поля "F3", "F4" или поля со значениями границ и дальнейшим редактированием и выходом по Enter в случае правильной редакции или по Esc в случае отказа;
· выбрать файлы, над которыми будет выполнена заданная работа, что осуществляется нажатием клавиши F5 или нажатием кнопки мыши при наезде на поле "F5"; · выйти из программы -F10.
При выполнении оператором функции выбора файлов нижняя строка экрана модифицируется и выглядит следующим образом: 1Help 2Esc 3Exec 4+All 5+Page.... 8-Page 9-All 10Quit. Затем выводится таблица файлов и сообщение в верхней строке: Всего файлов NN Из них выделено 0 (NN- общее число файлов). Таблица файлов состоит из двух колонок. В первой находятся номера объектов NO в порядке возрастания, во второй - списки номеров срезов NS. Строка таблицы - это NO и список NS этого объекта. Сверху таблицы - строка, отображающая путь исходного директория. В правом верхнем углу таблицы выведено "Esc" для отказа от функции выбора с помощью мыши, а также, в случае, когда таблица не умещается на одном экране (листе), в левом верхнем углу и в правом нижнем выводится соответственно "PgDn" и "PgUp" для листания таблицы с помощью мыши. Оператор теперь имеет возможность: · получить подсказку - F1; · отказаться от функции - F2; · выйти из программы -F10.
А также, осуществить выбор и инициировать выполнение работы. Выбор в таблице файлов осуществляется функциональными клавишами или специальным курсором. Текущее положение курсора отображается цветом. Движение курсора осуществляется стрелками или мышью (курсор мыши наводится на нужное место и нажимается Enter). Выбрать можно отдельное изображение, строку, лист и все файлы. Выбранные файлы выделяются цветом. Аналогично можно отменить выбор. Выбор всех файлов и всех файлов экранного листа осуществляется клавишами F4, F5; отмена - F8, F9.
Выбор файлов строки или отдельного файла осуществляется подводом курсора на начало строки или на нужный файл и нажатием Enter или кнопки мыши. В процессе выбора в верхней строке отображается число выделенных файлов. Запуск выполнения работы осуществляется с помощью клавиши F3 или нажатием кнопки мыши при наезде на поле "F3". При этом в верхнюю строку выводится сообщение:
Всего файлов NN Из них успешно 0 (NN- число выделенных файлов). После успешного выполнения работы над текущим файлом он "гасится" в таблице файлов и корректируется верхняя строка сообщений. Нижняя строка экрана модифицируется и выглядит следующим образом: 1Help.... 4Set 5Choic.... 10Quit. Прервать выполнение работы можно клавишей Esc. По окончании оператор имеет возможность: · получить подсказку - F1;
· войти в режим установки вида работы (начало программы) - F4; · войти в режим выбора файлов (осуществить новый выбор) - F5; · выйти из программы -F10. ГЛАВА 2. Как работать с трехмерными объектами. Окна 3D визуализации окно 3D preview
обеспечивает визуализацию каркаса объемного представления в текущем положении для трехмерной визуализации, вывод аксиального, коронарного и сагиттального сечений с проекциями секущих плоскостей и ориентации объемного представления. окно 3D view
предназначено для вывода трехмерного изображения с возможностью отображения на нем аксиального, коронарного, сагиттального и параксиального сечений и построение внешнего вида объекта. окно 3D measurе
обеспечивает проведение трехмерных измерений значений объемного распределения и расстояний в объеме для окон3D preview, 3D view, и Изображения, а также выделения кривых для построения параксиальных и произвольных сечений и выбора точек цели и входа при планировании операций. окно Animation
позволяет создавать последовательности сечений для динамического просмотра при введении инструмента с привязкой к трехмерным координатам объекта и проводить с их использованием планирование операций.
Окна 3D визуализации работают совместно с окнами Изображения и окном Текст. Все окна 3D визуализации имеют общее меню, отдельные элементы которого связаны с различными окнами, а другие воздействуют на активное в данный момент окно. Некоторые элементы меню активизируются только при наличии определенного типа данных в памяти. К окнам 3D визуализации относятся:
Окно 3D preview для предварительного просмотра аксиального, коронарного и сагиттального сечений и ориентации отображения в окне 3D view.
Окно 3D view для просмотра объемного представления в различных ракурсах с наложенными аксиальным, коронарным, сагиттальным и произвольным сечениями и внешним видом объекта.
Окно Animatorдля построения и просмотра анимационных последовательностей, позволяющих просматривать траекторию прохождения инструмента при вмешательстве и корректировать ее путем изменения координат точек входа и цели.
Окно 3D Measureдля измерений координат, плотностей и расстояний в объеме и задания траектории оперативного вмешательства. Структура меню окон 3D визуализации имеет следующий вид: File
загрузка/генерация объемного представления и полученных при работе данных и изображений Load volume загрузка объемного представления из файла Load 3D view загрузить ранее сохраненное 3D изображение Save 3D view сохранить 3D изображение Load film загрузка файла данных анимационного планирования Save film сохранение файла данных анимационного планирования Generate Cube генерация тестового полутонового куба Generate Ball генерация тестовой полутоновой сферы Write log записать результаты измерений в текстовое окно Options установки параметров Off/On Projections включить/выключить отображение сечений 3D view settings установить параметры 3D отображения Set measure font загрузить фонт для окна измерений Redraw перерисовка 3D представления Measure измерения Entry/Target задание точек входа и цели Points измерения с фиксацией точек в объеме Lines измерение расстояний и задание косых срезов Clear очистить установки и результаты измерений All очистить все установки Points удалить выделенные точки Lines удалить выбранные линии Animator работа с анимационными последовательностями Make
запуск генерации данных анимационной последовательности, определенных Entry point и Target point Play P
запуск просмотра анимационной последовательности в динамическом режиме Fix entry установить фиксацию точки входа или цели Параметры 3D визуализации Param -> параметры окна 3D view Color: 0/1/2/.... /15 - номер цвета для фона Axial: on/off - включить/выключить аксиальное сечение Coronar: on/off - включить/выключить коронарное сечение Sagital: on/off - включить/выключить сагиттальное сечение Oblique on/off - включить/выключить параксиальное сечение Scale 1. 0 - масштаб вычисления 3D образа Управление при работе с анимационными последовательностями +
переход в пошаговый режим или переход к следующему кадру анимационной последовательности
переход в пошаговый режим или переход к предыдущему кадру анимационной последовательности * увеличение скорости показа анимационной последовательности / уменьшение скорости показа анимационной последовательности Кнопки окна 3D measure Entry Point
задание точки входа при планировании операции, выбирается на окне Изображения Target Point
задание точки попадания при планировании операции, выбирается на окне Изображения Start начать измерения Приложение. Конфигурационный файл системы ct. cfg. Стандартные пути системных директорий image = c: \ctsys\images\*. * ; неупакованные изображения формата ct_soft imagep = c: \ctsys\images_p\*. * ; упакованные изображения формата ct_soft archiv = c: \ctsys\ima_arch\*. * ; архивные файлы формата ct_soft select = c: \ctsys\box\ ; отобранные изображения формата ct_soft proi = c: \ctsys\roi\*. roi ; конфигурационные файлы зон интереса pattern = c: \ctsys\pattern\*. txt ; файлы шаблонов заключений ctxt = c: \ctsys\ctxt\ ; файлы заключений help = c: \ctsys\help\ ; файлы подсказок ljconf = c: \ctsys\roi\*. clj ; конфигурационные файлы печати frag = c: \ctsys\scrfrag\*. img ; файлы фрагментов изображений формата ct_soft pcx = c: \ctsys\scrfrag\*. pcx ; файлы формата PCX bmp = c: \ctsys\scrfrag\*. bmp ; файлы формата BMP img = c: \ctsys\img\ ; файлы формата ОБРАЗ 3dvol = c: \ctsys\3d\*. vol ; файлы 3D cinema = c: \ctsys\cin\*. cin ; анимационные файлы 3D films = c: \ctsys\films\*. * ; анимационные файлы FG Общие параметры 3dscale = 1 ; начальное значение масштаба изображения 2dmode = 1 cell = 280x16 ; не менять menu = fix ; не менять (menu= fall) ct_type = 0 ; начальный тип изображения 0 - РТ , 1 - МР multiROI= 0
; 0 - до восьми зон интереса 1- больше восьми с выводом только объёмов concl = 1
; 1 - создается (если его нет) заключение (c. txt) по шаблону text; 0 - не создается FG-параметры fgtype = 0 ; 0 - FG, 1 - VS54 fgnx = 512 fgny = 512 fgx0 = 0 fgy0 = 0 ; fgscale = 0 - ввод 512*512 1 - 256*256 fgscale = 1 ; fgrem = 0 - ввод через мышь 1 - с кнопкм fgrem = 0 fgboard = 0 ; присутствие панели FG Параметры печати lj_res = 1

; разрешение принтера при печати изображений 0 - 300, 1 - 600 , 2 - 1200 dpi- lj_rgn = 0 ; обрезка перед печатью 1 - прямоугольник pix_res = 0 ; размер матрицы пикселя 0 - 4*4 , 1 - 8*8 ncopy = 1 ; количество копий prprot = 1 ; 0 - не печатать протокол, 1 - печатать margine = 10 ; отступ при печати по X в мм. martxt = 0 ; отступ при печати текста по X в мм. interx = 1 intery = 1 ; промежутки между изображениями при печати в мм. prscale = 1. 0
; коэфф. увеличения(>1. . 3) IMG при печати fl_5L = 0 ; альтернативный код готовности принтера fonthead= 0 ; признак крупного фонта для печати заголовка corc = 0. 1 ; коррекция центра окна для печати (c=c-corc*w) prnport = 0 ; LPT 0 - 2 2-отсутствие принтера format = 0 ; 0 текст не форматируется ; 1 текст форматируется fbnum = 6 pr_arch = 0 ; параметр выбора работы с протоколом архивирования

; отсутствие , 0 или не (1, 2, 3) - не просматривать и не печатать ; 1 - просмотр (протокол вводится в окно "text") ; 2 - печать с запросом подтверждения ; 3 - печать без запроса подтверждения Аннотация
Дипломный проект посвящен разработке системы передачи данных из компьютерного рентгеновского томографа, а также получением диагностически адекватного изображения для дальнейшей диагностики, анализа и хранения. Обработка полученных изображений базируется на программном комплексе CTsoft. Система предназначена для работы в отделениях лучевой диагностики и не требует от пользователя дополнительных знаний по программированию и техническому обслуживанию персональных компьютеров. Она предоставляет пользователю удобный экранный интерфейс для получения и обработки высококачественных изображений, переданных из компьютерного рентгеновского томографа, кроме того, она предусматривает возможность дальнейшей передачи полученных данных по компьютерной сети.
Система прошла опытную эксплуатацию в институте хирургии им А. В. Вишневского в рамках проекта“телемедицина”. Отчетные материалы к дипломному проекту включают пояснительную записку, 3 приложения и графический материал. Содержание. Аннотация 1 Введение 4 Обзор литературы 7 Разработки телемедицины в мире 7 Необходимость “телемедицины” в России 9
Задачи здравоохранения, решаемые с применением телемедицинских технологий 12 Формы применения телемедицинских технологий для решения задач здравоохранения 15 Приложения телемедицины в клинической практике 16 Требования к передаче телемединформации 17
Анализ возможности передачи медицинских данных существующими программно – аппаратными средствами 20 Подключение компьютерного рентгеновского томографа TOMOSCAN SR7000 23 Компьютерный рентгеновский томограф 25 Общие характеристики устройства 25 Принцип построения выходного сигнала 27
Устройство согласования КТ с персональным компьютером первичной обработки данных 28 Формат файла получаемого изображения 29 Персональный компьютер первичной обработки 31 Локальная вычислительная сеть 34 Программное обеспечение и сетевое оборудование 39 Персональный компьютер консультанта 41 Построение 3х мерного изображения 42 Пакет срезов для восстановления 3х мерного изображения 45
Восстановленное трехмерное изображение с одноплоскостным срезом 51 Восстановленное трехмерное изображение с двухплоскостным вырезом 52 Восстановленное трехмерное изображение с трехплоскостным вырезом 53 Восстановленное трехмерное изображение с трехплоскостным вырезом без восстановления рельефа 54
Использование расчетной проекции трехмерного изображения для расчета ввода катетера 55 Заключение 56 Выводы и результаты: 57 Список литературы 58 Приложение 1 60 Формат информационного поля файла изображения 60 Приложение 2 65 Модуль формирования трехмерных изображений (С++) 65 Приложение 3 95 Описание программы обработки изображений Ctsoft 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.
рис. 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 INCORPORATED Протокол, Скорость Ethernet, 10 Мбит/сек Топология шина Тип шины, Разрядность ISA, 16 бит Тип выхода RG – 58A/U (BNC) DB – 15 (AUI) Удаленная загрузка возможна Формат файла получаемого изображения
Изображения, переданные в персональный компьютер, сохраняются в определенном специализированном формате. Этот формат подразумевает сохранение в файле изображения дополнительной информации о пациенте, исследовании, физических параметрах изображения и т. п... Структурная схема данного формата представлена нарис. 2. рис. 2 Формат файла изображения.
Два килобайта в данном файле выделяются под информационное поле. В этом поле содержится: Идентификация пациента; Режимы, в которых было получено изображение; Размер матрицы изображения Nx, Ny; Дата исследования; Разрешение изображения (бит/пиксель); Индивидуальный номер изображения;
(Полная информация о содержании информационного поля представлена в приложении 1).
Далее следует матрица значений, содержащая в себе само изображение в специализированном формате.
Имя файла изображения, тоже имеет специализированный формат, показанный на рис. 3. рис. 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 или подобная). А также специализированна независимая сервисно–диагностическая консоль для управления и обработки поступающей медицинской информации. Таблица 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.
Таблица 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х мерное изображение. Трехмерная матрица позволяет производить дополнительные операции (срезы, вырезы, перемещение в пространстве) для отображения внутренней структуры исследуемого объекта.
рис. 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 "ctmenu. h" #include "language. h" extern DragWorkField(WinHandle w, EventRecord *e); extern HANDLE h_str(char *s); static void redraw_user(WinHandle w);

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; i
{ p = &cbd[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 if (t } else { if (t >= tmax) return(-1); if (t > tmin) { tmin = t; c = p->c; in = i; } } else if (u > 0. 0) { if (t if (t > tmax) { tmax = t; tmin = -100000; } } else { if (t >= tmax) return(-1);
if (t 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; i
{ p = &bd[i]; u = smult(r, &p->n); if (u == 0. 0) continue; t = (- p->d - smult(v, &p->n)) / u; if (u > 0. 0) { if (t if (t c; } } else { if (t >= tmax) return(-1); if (t > tmin) { tmin = t; c = p->c; } } } if (c ! = -1) { t = tmin; while (t { 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 { 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 if (t } else { if (t >= tmax) break; if (t > tmin) { tmin = t; c = p->c; } } else if (u > 0. 0) { if (t if (t > tmax) { tmax = t; tmin = -100000; } } else { if (t >= tmax) break; if (t tmax = 100000; c = p->c; } } } if (c ! = -1 && tmin > T) { //if (tmin // { W = svmult(T, r); W = vadd(v, &W); // } //else { W = svmult(tmin, r); W = vadd(v, &W); if ( W. x > Xmax || W. x W. y > Ymax || W. y W. z > Zmax || W. z } dens = filtr(W. x, W. y, W. z); return ILUT[dens]; } return (-2); } // if (c > surf_level) t += Step; } // while (t 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 #define alph 0. 33 static void smooth(float *z, char *s, int n) { float z0, z1; int i; z0 = z[0]; for (i=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 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 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 for (i=4; i
{ double L = (1+smult(&SUN, &bd[i]. n))/2; carr[i] = GRAY_BASE + L*GRAY_MAX; } } } imin = w; imax = -1; jmin = h; jmax = -1; minmax(Xmin, Ymin, Zmin); minmax(Xmax, Ymin, Zmin); minmax(Xmin, Ymax, Zmin); minmax(Xmax, Ymax, Zmin); minmax(Xmin, Ymin, Zmax); minmax(Xmax, Ymin, Zmax); minmax(Xmin, Ymax, Zmax); minmax(Xmax, Ymax, Zmax); if (imin=w) imax = w-1; if (jmin=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; j { PositBYTESB(&isb, j, 1); s = isb. data + (j-isb. y0)*w; for (i=0; i Done((int)((long)j*100/h)); } if (ud->view) { 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; i { s0[i] = vtrace(&v, &rt); z0[i] = T; v = vadd(&v, &dx); } smooth(z0, s0, N); smooth(z0, s0, N); vx = svmult(-(double)N, &dx); v = vadd(&v, &vx); v = vadd(&v, &dy); for ( i=0; i { s1[i] = vtrace(&v, &rt); z1[i] = T; v = vadd(&v, &dx); } smooth(z1, s1, N); smooth(z1, s1, N); vx = svmult(-(double)N, &dx); v = vadd(&v, &vx); v = vadd(&v, &dy); for ( j=jmin; j { PositBYTESB(&isb, j, 1); s = isb. data + (j-isb. y0)*w; for (i=0; i for (i=imax; i s0[0] = vtrace(&v, &rt); z0[0] = T; v = vadd(&v, &dx); if (proc_flag) for ( i=1; i { c2 = vtrace(&v, &rt); z2 = T; if (s1[i] == -1) s[imin+i] = BLUE; else if (s1[i] == -2) { vect n; double k, f; n. x = 0; n. y = 0; n. z = 0; if (s1[i-1] == -2) { n. z += sx/sqrt(sx*sx+(z1[i]-z1[i-1])*(z1[i]-z1[i-1]));

n. x += (z1[i]-z1[i-1])/sqrt(sx*sx+(z1[i]-z1[i-1])*(z1[i]-z1[i-1])); } if (s1[i+1] == -2) { n. z += sx/sqrt(sx*sx+(z1[i+1]-z1[i])*(z1[i+1]-z1[i]));
n. x += (z1[i+1]-z1[i])/sqrt(sx*sx+(z1[i+1]-z1[i])*(z1[i+1]-z1[i])); } if (s0[i] == -2) { n. z += sy/sqrt(sy*sy+(z1[i]-z0[i])*(z1[i]-z0[i]));
n. y += (z1[i]-z0[i])/sqrt(sy*sy+(z1[i]-z0[i])*(z1[i]-z0[i])); } if (c2 == -2) { n. z += sy/sqrt(sy*sy+(z2-z1[i])*(z2-z1[i])); n. y += (z2-z1[i])/sqrt(sy*sy+(z2-z1[i])*(z2-z1[i])); } f = sqrt(smult(&n, &n)); k = smult(&sun, &n); if (f) k = k/f; else k = 0; k = (1+k)/2; s[imin+i] = (char)(GRAY_BASE+k*GRAY_LVLS); } else s[imin+i] = s1[i]; s0[i] = c2; z0[i] = z2; v = vadd(&v, &dx); } s0[N-1] = vtrace(&v, &rt); z0[N-1] = T; v = vadd(&v, &dx); smooth(z0, s0, N); smooth(z0, s0, N); PositBYTESB(&isb, j, 1); s = isb. data + (j-isb. y0)*w; // for (i=0; i { int garb;
if (GetRealMouseStat(&garb, &garb) & MS_ANY) proc_flag = 0; } vx = svmult(-(double)N, &dx); v = vadd(&v, &vx); v = vadd(&v, &dy); wz = z0; z0 = z1; z1 = wz; ws = s0; s0 = s1; s1 = ws; Done((int)((long)j*100/h)); } h_mfree(z0); h_mfree(z1); h_mfree(s0); h_mfree(s1); } else { for ( j=jmin; j { PositBYTESB(&isb, j, 1); s = isb. data + (j-isb. y0)*w; for (i=0; i if (proc_flag) for ( i=imin; i { if ( (c = trace(&v, &rt)) ! = -1) s[i] = c; v = vadd(&v, &dx); } { int garb;
if (GetRealMouseStat(&garb, &garb) & MS_ANY) proc_flag = 0; } if (proc_flag) { r = svmult(-(double)imax+imin-1, &dx); v = vadd(&v, &r); v = vadd(&v, &dy); } Done((int)((long)j*100/h)); } } for ( j=jmax+1; j { PositBYTESB(&isb, j, 1); s = isb. data + (j-isb. y0)*w; for (i=0; i Done((int)((long)j*100/h)); } CloseBYTESB(&isb); for (i=0; i
bd[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 flags += (bd[1]. tag ! = nul); flags 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
Мой дипломный проект был посвящен теме: передача информации из компьютерного рентгеновского томографа в персональный компьютер.
Дипломный проект проводился в рамках проекта “телемедицина” на базе института хирургии им А. В. Вишневского. Актуальность вопроса передачи информации, как и было уже сказано предыдущем выступающим связана с тем, что на сегодняшний день от 60 до 80% медицинской диагностической информации хранится в виде изображений, которые можно обрабатывать и хранить на персональных компьютерах и передавать по современным линиям связи.
При решении задач получения, обработки и анализа информации получаемой из компьютерного рентгеновского томографа возникают те же трудности, как и при получении информации из ультразвуковой диагностической установки, такие как: Проблема получения диагностически адекватного изображения для дальнейшей диагностики, анализа и хранения;
Проблема сопряжения диагностического оборудования с системами передачи информации;
Проблема передачи полученной информации к “удаленным” пользователя. Но их различает принципиальное отличие к требованиям к качеству передаваемой информации. Критерий связи и критерий полученных изображений заключаются в том, что полученная информация должна быть абсолютно адекватной тому, что мы наблюдаем непосредственно на компьютерном рентгеновском томографе. Например, в УЗИ исходная информация содержит 256 градаций серого и размер изображения составляет 640 * 480 пикселей. В отличие от этого, информация передаваемая из компьютерного рентгеновского томографа составляет 4096 градаций серого и размер 1024 * 1280. Кроме того изображения, получаемые из компьютерного рентгеновского томографа, являются метрологически точными, что влечет за собой принципиально новые решения в подходе к передаче данной информации. Вся метрологическая информация должна быть сохранена на персональном компьютере в том же качестве, в котором она была получена на компьютерном рентгеновском томографе. Практическая реализация передачи информации из компьютерного рентгеновского томографа, с учетом вышеперечисленных проблем, в персональный компьютер первичного пользователя представлена в виде блок-схемы. плакат 1. В данном дипломном проекте осуществляется подключение компьютерного рентгеновского томографа TOMOSCAN SR7000. Работа компьютерного рентгеновского томографа основана на рентгенографическом методе, который позволяет получить изображение фиксированного двумерного сечения трехмерного объекта, при помощи коллимированного источника рентгеновского излучения и детекторов, расположенных на одной оси, совершающих линейное сканирование достаточно тонкого слоя поперечного сечения трехмерного объекта. Полученная информация с детекторов оцифровывается, преобразуется в файл и сохраняется на рабочей станции компьютерного рентгеновского томографа.
Принципиально важно, чтобы данная информация была передана абсолютно метрологически идентично на персональный компьютер первичного пользователя. Как говорится“бит в бит”
Передачу информации из компьютерного рентгеновского томографа на персональный компьютер осуществляется при помощи построения одноранговой сети, связывающей персональный компьютер первичного пользователя с рабочей станцией компьютерного рентгеновского томографа. Это осуществляется использованием сетевых адаптеров NE2000 или совместимых с ними. Выбор данного устройства основан на том, что он обладает всеми характеристиками, необходимыми для соединения вышеуказанных устройств и передачи данных без потерь, при этом обладая хорошей скоростью передачи 10 Мбит/сек. К тому же это достаточно недорогое устройство, что не маловажно, в условиях недостаточного финансирования медицинских учреждений. Информация поступающая по организованной одноранговой сети попадает на персональный компьютер первичного пользователя. Персональный компьютер первичного пользователя должен обладать всеми возможностями для обработки изображений, какими обладает рабочая станция компьютерного рентгеновского томографа. Исходя из вышесказанного, оптимальная конфигурация персонального компьютера первичного пользователя должна быть следующей:
Но можно использовать минимальную конфигурацию персонального компьютера первичного пользователя, основанную на устаревшем парке персональных компьютеров медицинских учреждений, такую как DX4-100, c 16 Мбайт оперативной памяти и размером жесткого диска не менее 800 Мбайт. При этом будет сохранена метрологическа качество информации, но работа будет существенно замедлена и не будут доступны такие средства как“телеконференции”, удаленные консультации в реальном времени и т. п. Персональный компьютер первичного пользователя позволяет осуществлять передачу изображений по компьютерной сети до вторичного пользователя. В связи с большим объемом передаваемой информации, на компьютерную сеть накладываются определенные требования которые будут подробно рассмотрены в дипломном проекте нашего коллеги, также принявшем участие в проекте“телемедицина”. На персональный компьютер вторичного пользователя накладываются все те же требования, какие и на персональный компьютер первичного пользователя, за исключением того, что в нем нет необходимости устанавливать дополнительный сетевой адаптер.
Файлы, переданные на персональный компьютер первичного пользователя, сохраняются в формате, представленном наплакат 2. Этот формат универсален как для УЗИ, так и для компьютерного рентгеновского томографа. Но в отличии для УЗИ, в нем заполняются поля которые содержат в себе метрологическую информацию.
Над файлом, полученным в персональный компьютер первичного пользователя можно производить все те же преобразования, которые были рассмотрены в рамках предыдущего дипломного проекта. Но в результате взаимодействия с медицинским персоналом, было выяснено, что иногда возникает необходимость получения срезов под произвольным углом и построения объемной модели, чего невозможно достичь стандартными средствами компьютерного рентгеновского томографа. Для этого мною был предложен алгоритм построения трехмерной модели из пакета последовательно сделанных срезовплакаты 2 и 3.
Основной проблемой, возникающей при построении трехмерной модели, является то, что расстояние между двумя соседними точками одного изображения на порядок меньше, чем расстояние между двумя последовательными срезами. Для получения недостающей информации используется упрощенный метод интерполяции, который дает погрешность в пределах 2%, но уменьшает количество производимых персональным компьютером вычислений на несколько порядков, чем при использовании общепринятых методов интерполяции.
Полученное данным методом трехмерное изображение можно наблюдать под разными ракурсами. Также можно получать различные срезы: одноплоскосной, двухплоскостной и трехплоскотной. Получая срезы под различными углами можно планировать прохождение мед. инстумента с привязкой к реальным координатам. Это было апробировано и одобрено специалистами. В данной дипломной работе было:
Сделано внедрение системы в компьютерный рентгеновский томограф TOMOSCAN SR7000, в отделении лучевой диагностики института хирургии им. А. В. Вишневского; Получено изображение, переданное из данной установки;
Осуществлена связь и передача изображений удаленным пользователям в реальном времени;
Проведена экспертная оценка данной системы, которая подтвердила её эффективность.
Данную систему можно внедрять в рамках проекта “телемедицина”, для развития медицинских телеконференция и телеконсультаций. Отзыв руководителя
На дипломный проект “Передача информации из компьютерного рентгеновского томографа TOMOSCAN SR7000”, выполненный студентом – дипломником Степановым Игорем Викторовичем. На дипломном проектировании перед И. В. Степановым была поставлена задача –разработать систему передачи информации из компьютерного рентгеновского томографа на персональный компьютер с дальнейшей обработкой получаемой информации.
И. В. Степановым была разработана система передачи данных из компьютерного рентгеновского томографа и алгоритм построения трехмерной модели на основе полученных данных. Он глубоко изучил методы, применяемые в компьютерной томографии. В процессе работы показал умение самостоятельно разобраться в литературе, умение грамотно использовать современные средства программирования. Исследованные и реализованные в проекте принципы будут использованы в дальнейшей разработке и внедрении соответствующего математического обеспечения в рамках проекта“Телемедицина”.
И. В. Степанов с заданием справился полностью. Над проектом работал самостоятельно, организованно и ритмично. Считаю, что дипломный проект заслуживает оценки ОТЛИЧНО, а И. В. Степанов – присвоения квалификации “инженер – физик”. Руководитель,
Зав. лабораторией кибернетики Института хирургии им. А. В. Вишневского РАМН кандидат физ – мат наук Е. Н. Тимин


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

Поделись с друзьями, за репост + 100 мильонов к студенческой карме :

Пишем реферат самостоятельно:
! Как писать рефераты
Практические рекомендации по написанию студенческих рефератов.
! План реферата Краткий список разделов, отражающий структура и порядок работы над будующим рефератом.
! Введение реферата Вводная часть работы, в которой отражается цель и обозначается список задач.
! Заключение реферата В заключении подводятся итоги, описывается была ли достигнута поставленная цель, каковы результаты.
! Оформление рефератов Методические рекомендации по грамотному оформлению работы по ГОСТ.

Читайте также:
Виды рефератов Какими бывают рефераты по своему назначению и структуре.