Тема апрельского номера журнала Computer за 2006 год (IEEE Computer Society, Vol. 39, No. 4, April 2006) — «Инженерия медицинского программного обеспечения» (Clinical Software Engineering).

В тематическую подборку входят пять из шести больших статей номера плюс развернутая заметка приглашенного редактора Ричарда Шренкера (Richard Schrenker) под названием «Разработка программного обеспечения для будущих систем здравоохранения и медицинских систем» (Software Engineering for Future Healthcare and Clinical Systems).

Скотту Эдамсу ( en.wikipedia.org/wiki/Scott_Adams) приписывается следующая фраза: «Человеку свойственно ошибаться, но чтобы навредить по-настоящему, требуется компьютер». Этим афоризмом руководствовались сотрудники Института медицины Национальной академии наук США (www.iom.edu), издавшие в 1999 году книгу To Err Is Human: Building a Safer Health Care System («Человеку свойственно ошибаться: построение более безопасной системы здравоохранения»). Профессионалам в области здравоохранения, специализирующимся на безопасности пациентов, рекомендовалось задуматься над тем, каким образом применение ИТ может повысить уровень безопасности медицинского обслуживания. Эта рекомендация стала одной из составляющих подхода к снижению числа ошибок при оказании медицинской помощи, ежегодно приводящих к смерти 98 тыс. американцев.

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

У первой статьи тематической подборки — «Высоконадежные программное обеспечение и системы медицинских устройств» (High-Confidence Medical Device Software and Systems) — восемь авторов; первый в списке — Инсуп Ли (Insup Lee). В США на здравоохранение тратится около 16% ВВП, вдвое больше, чем в среднем в Европе. При наличии факторов сокращения медицинского персонала и повышения среднего возраста населения будущее здравоохранения в США не кажется многообещающим, и определенно оно не будет дешевле. Достижения в области информационных систем и технологии здравоохранения обеспечивают серьезную возможность повысить качество здравоохранения и снизить расходы.

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

Эта нарастающая проблема побудила несколько федеральных агентств США сформировать программы исследований, направленных на совершенствование разработки, сертификации и функционирования существующего и будущего программного обеспечения медицинских устройств. Проведенный в 2005 году симпозиум «Высоконадежные программное обеспечение и системы медицинских устройств» (High-Confidence Medical Device Software and Systems, HCMDSS, www.cis.upenn.edu/hcmdss) поддерживался Управлением по контролю за продуктами питания и лекарствами, Национальным институтом стандартов и технологии, Агентством национальной безопасности, Национальным научным фондом и Национальным координационным комитетом по компьютерным технологиям, информатике и коммуникациям США.

Участники симпозиума выделили шесть наиболее важных для будущего высоконадежных медицинских устройств проблем: 1) основы интегрированных систем медицинских устройств; 2) распределенное управление в сетевых системах медицинских устройств; 3) статическое и динамическое моделирование пациентов; 4) инфраструктура встроенных сетевых систем реального времени; 5) разработка программного обеспечения медицинских устройств; 6) валидация и сертификация.

Статью «Как справиться с дефектным программным обеспечением медицинских устройств» (Coping with Defective Software in Medical Devices) представил Стивен Ракитин (Steven Rakitin).

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

Медицинские устройства включают много типов компонентов. Как и в случае дефектных электронных компонентов, наличие дефектного программного компонента может приводить к ужасным последствиям; к тому же обнаружение и оценка потенциальных воздействий дефектных программных компонентов более затруднительны. Во-первых, по мере возрастания сложности растет и число дефектов. Во-вторых, поскольку во многих устройствах используются одни и те же компоненты, например насосы и клапаны, для этих компонентов имеется принятая система оценок. Производители компонентов часто предоставляют производителям устройств сведения о своих продуктах. В отличие от этого программное обеспечение часто является проприетарным и разрабатывается производителями медицинских устройств (или по их заказу) для использования только с конкретным устройством. За редким исключением для программных компонентов отсутствует система оценок. В результате производители устройств при всем желании не могут гарантировать безопасность и надежность своих продуктов.

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

У статьи « IGSTK: открытый программный инструментарий для эндовидеохирургии» (IGSTK: An Open Source Software Toolkit for Image-Guided Surgery) шесть авторов; первым в списке указан Кевин Гэри (Kevin Gary).

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

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

Эти соображения привели к созданию программного инструментария для эндовидеохирургии (Image-Guided Software Toolkit, IGSTK, www.igstk.org). IGSTK содержит основные программные компоненты для разработки эндовидеохирургических систем, включая компонент управления устройством слежения и компонент отображения для накладывания изображений анатомии пациента и хирургических инструментов.

Авторы статьи «Обеспечение безопасности пациентов в беспроводных сетях медицинских устройств» (Ensuring Patient Safety in Wireless Medical Device Networks) — Виджей Гелот (Vijay Gehlot) и Элиот Слоун (Elliot Sloane).

Успешное создание и внедрение компонентов беспроводных сетей, основанных на стандартах IEEE 802.11x, стало благом для пользователей ноутбуков и КПК и привело к появлению различных инноваций в области беспроводных сетей: Wi-Fi (802.11a/b/g), Wi-Max (802.11n), Bluetooth (802.15.1), а также Zigbee (802.15.4). В области здравоохранения используются различные беспроводные технологии как в бизнес-приложениях, так и в медицинских системах. В число бизнес-ориентированных приложений входят беспроводные системы управления цепочками поставок на основе штрих-кодов, системы автоматизации выставления счетов за услуги, предоставленные пациентам, системы голосовых коммуникаций на основе IP. Существует много возможностей использования и беспроводных сетей медицинских устройств (wireless medical device network, WMDN). К возможным приложениям WMDN относятся интеллектуальные инфузионные насосы, компьютеризированный учет заказов, поступающих от врачей, мобильный клинический мониторинг, медицинское диагностическое тестирование в точке оказания помощи и т.д.

Для беспроводных бизнес-приложений, не являющихся жизненно важными, могут совместно использоваться общераспространенные и недорогие беспроводные устройства, пропускная способность которых продолжает расти. Для обеспечения многопользовательского доступа к данным разработчики используют простой и элегантный метод распознавания коллизий (Collision Sense Method, CSM) при управлении несколькими одновременно поступающими беспроводными сообщениями, используя случайные задержки для переупорядочения сообщений.

Время доступа к данным в бизнес-приложениях — важный фактор, но редкие задержки допустимы. Между тем медицинская информация является важной для жизни людей. Задержка, искажение или потеря данных могут привести к нанесению серьезного вреда здоровью пациента или его смерти. Так, непредсказуемая длина задержки CSM легко может превысить установленный AAMI/ANSI 10-секундный период выдачи тревожного сигнала в системах мониторинга аритмии сердечной деятельности.

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

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

Последняя статья тематической подборки называется «Подход на основе формальных методов к проверке медицинских устройств» (A Formal Methods Approach to Medical Device Review). Статью написали Рауль Джетли (Raoul Jetley), Пурушотама Айер (Purushothaman Iyer) и Пол Джонс (Paul Jones).

Регулирующие агентства, подобные Управлению по контролю за продуктами питания и лекарствами США (FDA), нуждаются в эффективных средствах, гарантирующих безопасность и надежность медицинского программного обеспечения. FDA стремится максимально строго проверять медицинские устройства, а этому может способствовать использование методов, основанных на математике. Однако процесс строгой проверки затрудняется отсутствием стандартных архитектур медицинского программного обеспечения и соответствующих инструментов.

В соответствии с инструкциями полагается производить проверку разработки программного обеспечения медицинских устройств (premarket review) и проверку эксплуатационных характеристик (postmarket surveillance). В FDA проверку безопасности и эффективности устройств до их выхода на рынок производит Центр по контролю над оборудованием и радиационной безопасностью. Проверяются артефакты жизненного цикла разработки программного обеспечения на предмет атрибутов обеспечения качества, что, однако, имеет мало отношения к целостности программного обеспечения устройств.

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

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

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

Автор статьи номера вне тематической подборки — Бертран Мейер (Bertrand Meyer). Статья называется «Тестируемые, повторно используемые элементы знания» (Testable, Reusable Units of Cognition).

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

Если пытаться применять стандартную учебную программу, скажем, ту, которая разработана в ACM и IEEE для компьютерных наук, то требуется спецификация каждой темы, достаточная для того, чтобы проверить, что данная книга соответствует программе. При написании такой книги автору требуется уверенность в том, что при рассмотрении данной темы с помощью текста и упражнений он дает читателям достаточно информации, чтобы они могли усвоить суть темы. Такая прагматическая точка зрения относительно целей образовательной программы означает, что тематические разделы программы разбиваются на атомарные элементы, которые автор называет тестируемыми, повторно используемыми элементами знания (testable, reusable unit of cognition, или Truc).

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

Truc включает в себя коллекцию понятий, функциональных навыков и критериев оценки. Автор называет ряд основных свойств Truc.

Логичность. Все компоненты Truc должны следовать основной, ясным образом определенной идее. Хорошее преподавание опирается на ясные, логичные понятия.

Точность. Truc должен обладать понятным, точно выраженным описанием. Это позволит разным преподавателям обучать разных студентов.

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

Общность. Truc может включать темы, охватывающие область общих интересов. В этом случае уместность Truc выходит за пределы конкретного курса.

Конкретность. Рамки Truc могут быть настолько сжатыми, атомарными, что материал излагается в одной лекции или одной главе учебника.

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

Началась подписка на второе полугодие 2006 года на членство и периодические издания IEEE Computer Society (www.computer.org/join). Членство в этом сообществе полезно и почетно для каждого ИТ-специалиста. Готов ответить на вопросы, Сергей Кузнецов, kuzloc@ispras.ru.