Темой
номера является «Инженерия медицинского программного
обеспечения» («Clinical
Software Engineering»).
В тематическую подборку входят пять из шести больших статей номера.
Имеется также развернутая заметка приглашенного редактора Ричарда
Шренкера (Richard A. Schrenker, Massachusetts General Hospital,
raschrenker@partners.org).
Заметка называется «Инженерия программного обеспечения для
будущих систем здравоохранения и медицинских систем» («Software
Engineering for
Future Healthcare
and Clinical
Systems»).
Скотту
Эдамсу
приписывается фраза «Человеку свойственно ошибаться, но чтобы
навредить по-настоящему, требуется компьютер». Этим афоризмом
руководствовались сотрудники Института медицины Национальной академии
наук США,
подготовившие и издавшие в 1999 г. книгу «To
Err Is Human:
Building a Safer
Health Care
System» («Человеку свойственно
ошибаться: построение более безопасной системы здравоохранения»).
Профессионалам в области здравоохранения, специализирующимся на
безопасности пациентов, рекомендовалось задуматься над тем, каким
образом применение информационной технологии может повысить уровень
безопасности медицинского обслуживания. Эта рекомендация стала одной
из составляющих подхода к снижению числа ошибок при оказании
медицинской помощи, ежегодно приводящих к смерти 98000 жителей США.
При
решении этой проблемы основное внимание уделяется повышению
возможностей информационных систем лечебных учреждений, например,
реализации систем учета поступления заказов для проверки случаев
аллергии на лекарства при выписывании рецептов. Но информационная
технология применяется также и в системах медицинского оборудования и
аппаратуры, используемых для непосредственного ухода за больными,
например, в интеллектуальных инфузионных насосах, которые помогают
предоставлять правильным пациентам правильные дозы правильных
лекарств.
Статьи
тематической подборки касаются обоих типов систем, но в основном
концентрируются на применении инженерии программного обеспечения и
систем к медицинским устройствам и системам, основанным на
программном обеспечении и используемым в условиях стационарных
лечебных учреждений.
У первой
статьи тематической подборки – «Высоконадежные
программное обеспечение и системы медицинских устройств»
(«High-Confidence
Medical Device
Software and
Systems») – восемь авторов из
University of
Pennsylvania, University
of Maryland,
Kansas State
University, Carnegie
Mellon University
и University of
Illinois at
Urbana-Champaign.
Как обычно для таких случаев я укажу только первого по списку автора:
Инсуп Ли (Insup Lee, lee@cis.upenn.edu,
University of Pennsylvania).
В США на
здравоохранение тратится около 16% валового внутреннего продукта,
вдвое больше, чем в среднем в Европе. При наличии факторов сокращения
медицинского персонала и повышения среднего возраста населения
будущее здравоохранения в США не кажется многообещающим, и
определенно оно не будет обходиться дешевле. Достижения в области
информационных систем и технологии здравоохранения обеспечивают
серьезную возможность повысить качество здравоохранения и снизить
уровень расходов.
Достижения
в области технологии компьютерных, сетевых, сенсорных и медицинских
устройств делают возможным широкое распространение диагностических и
терапевтических устройств. Диапазон этих устройств простирается от
развитых аппаратов визуализации до минимально инвазивного
хирургического оборудования, от пилюль-телекамер (camera
pill) до специализированных систем
«doctor-on-a-chip»,
от компьютеризованных дозаторов инсулина (insulin
pump) до имплантируемых стимуляторов
сердечной деятельности.
Хотя
развитие автономных диагностических и терапевтических систем
постоянно ускоряется, отсутствие должной интеграции и взаимодействия
этих систем приводит к недостаточной эффективности служб
здравоохранения. Это выражается в возрастании расходов и появлении
угрожающих здоровью пациентов медицинских ошибок, которых можно было
избежать. Для преодоления этих проблем требуется программное
обеспечение, контролирующее работу медицинских устройств и помогающее
обеспечить безопасное для пациентов здравоохранение. Однако проблемой
является рентабельная разработка и производство надежных и безопасных
программ и систем медицинских устройств.
По
мере уменьшения физических размеров устройств и усложнения их
программного обеспечения, разработка, тестирование и окончательное
утверждение устройства Управлением по контролю за продуктами и
лекарствами (Food and
Drug Administration,
FDA) занимают у производителей медицинских
устройств все больше времени и обходятся им все дороже. Кроме того, с
тревожной скоростью возрастает число устройств, отзываемых из
использования по причине наличия программных и аппаратных ошибок. При
все чаще встречающемся объединении медицинских устройств в сети
проблему представляет даже поддержка существующего уровня
безопасности здравоохранения.
Эта
нарастающая проблема была воспринята несколькими федеральными
агентствами, которые проявили интерес к формированию программы
исследований, направленных на совершенствование разработки,
сертификации и функционирования существующего и будущего программного
обеспечения медицинских устройств. Проведенный в 2005 г. симпозиум
«Высоконадежные программное обеспечение и системы
медицинских устройств» (High-Confidence
Medical Device
Software and
Systems, HCMDSS)
поддерживался FDA, Национальным
институтом стандартов и технологии (National
Institute of
Standards and
Technology, NIST),
Агентством национальной безопасности (National
Security Agency),
Национальным научным фондом (National
Science Foundation,
NSF) и Национальным координационным
комитетом по компьютерным технологиям, информатике и коммуникациям
(National
Coordination Office
for Networking
and Information
Technology Research
and Development,
NOC/NITRD).
Основной
целью симпозиума являлась разработка программы, направленной на
разрешение основных проблем разработки, производства, сертификации и
использования программного обеспечения и систем медицинских
устройств. Дополнительная цель состояла в формировании сообщества
исследователей и разработчиков, ориентированного на совершенствование
высоконадежного программного обеспечения медицинских
устройств. Особый интерес представляло установление направлений
исследований, которые могли бы революционизировать разработку,
производство и валидацию программного обеспечения будущих медицинских
устройств. Материалы симпозиума доступны на сайте
www.cis.upenn.edu/hcmdss/.
Участники
симпозиума выделили шесть проблем, являющиеся наиболее важными для
будущего высоконадежных медицинских устройств:
- основы
интегрированных систем медицинских устройств;
- распределенное
управление в сетевых системах медицинских устройств;
- статическое
и динамическое моделирование пациентов;
- инфраструктура встроенных
сетевых систем реального времени;
- разработка программного
обеспечения медицинских устройств;
- валидация и сертификация.
Следующую
статью представил Стивен Ракитин (Steven R.
Rakitin, steve@swqual.com,
Software Quality
Consulting Inc.).
Статья называется «Как справиться в дефектным программным
обеспечением медицинских устройств?» («Coping with
Defective Software in Medical Devices»).
Основанные
на программном обеспечении медицинские устройства – от
дефибрилляторов до инвалидных колясок – являются важной частью
инфраструктуры здравоохранения. Многие медицинские устройства должны
взаимодействовать с другим оборудованием, подключаться к больничным
или лабораторным информационным системам и работать в очень
напряженных ситуациях. Возрастающая потребность в таких устройствах и
все большая их распространенность порождают значительные проблемы у
производителей.
Наибольшей
проблемой является обеспечение безопасности пациентов. Эта проблема
обостряется по причине возрастающей сложности встраиваемого
программного обеспечения. Поскольку инженерия программного
обеспечения основана на деятельности людей, невозможно производить
бездефектное программное обеспечение. От производителей устройств
требуется определение и уменьшение рисков, связанных со встраиванием
в устройства дефектного программного обеспечения.
Медицинские
устройства включают много типов компонентов. Как и в случае дефектных
электронных компонентов, наличие дефектного программного компонента
может приводить к ужасным последствиям. Однако обнаружение и оценка
потенциальных воздействий дефектных программных компонентов гораздо
более затруднительны. Во-первых, по мере возрастания сложности растет
и число дефектов. Во-вторых, поскольку во многих устройствах
используются одни и те же компоненты, например, насосы и клапаны, для
этих компонентов имеется принятая система оценок. Поставщики
компонентов часто предоставляют поставщикам устройств сведения о
производительности общих компонентов. В отличие от этого, программное
обеспечение часто является проприетарным и разрабатывается
производителями медицинских устройств (или по их заказу) для
использования только с конкретным устройством. За редким исключением,
для программных компонентов отсутствует система оценок. В результате
производители устройств, при всем желании, не могут гарантировать
безопасность и надежность своих продуктов.
Чтобы
разрешить эту проблему, требуется опыт работы в области управления
рисками, знание основ безопасности программного обеспечения и умение
применения навыков управления рисками. Автор описывает стандарты
управления рисками и имеющийся опыт применения методов управления
рисками при производстве медицинских устройств, основанных на
программном обеспечении.
У
статьи « IGSTK: свободно
доступный программный инструментарий для эндовидеохирургии»
(«IGSTK: An
Open Source
Software Toolkit
for Image-Guided
Surgery») шесть
авторов из Arizona State University, Kitware Inc., Atamai
Inc., Georgetown University. Первым в списке авторов указан Кевин
Гэри (Kevin Gary, Arizona State University, kgary@asu.edu).
При
выполнении ручных инвазивных процедур хирурги все чаще полагаются на
использование динамических, трехмерных медицинских изображений для
управления инструментами и принятия клинических решений.
Использование эндовидеохирургических систем позволяет меньше
травмировать пациентов. Эти системы особенно полезны для выполнения
операций над головным и спинным мозгом, ортопедических,
отоларингологических и других операционных процедур, для которых
требуется исключительная точность.
Эндовидеохирургические
системы предоставляют врачам в реальном времени виртуальное
изображение анатомии области хирургического вмешательства. На экране
обычно комбинируются изображения, полученные до вмешательства, с
графическими образами инструментов; на изображениях могут также
демонстрироваться изменения анатомии в процессе операции. Системы
слежения определяют положение хирургических инструментов в теле
пациента; это позволяет хирургу достичь конкретной анатомической
цели.
Наиболее
ответственной технологией эндовидеохирургических систем
является программное обеспечение, содержащее тесно связанные
компоненты, поддерживающее сложные математические процессы и
работающее в условиях жестких ограничений по синхронизации.
Программное обеспечение должно интегрировать информацию, получаемую
от систем слежения, соотносить эти данные с соответствующими
изображениями и отображать в реальном времени текущее положение
инструментов и текущее состояние анатомии пациента. Более того,
поскольку программное обеспечение используется в приложениях,
связанных с риском для жизни пациентов, оно должно тщательно
разрабатываться для обеспечения простоты использования, надежности и
стабильности.
Традиционные
методы инженерии программного обеспечения не предоставляют
рентабельных средств валидации эндовидеохирургических систем для их
клинического использования, что препятствует разработке инновационных
технологий. Потенциалом для удовлетворения этих потребностей обладает
программное обеспечение с открытым кодом, однако этот потенциал в
основном не используется, поскольку у большинства академических
исследовательских групп и мелких компаний отсутствует инфраструктура
инженерии программного обеспечения и опыт тщательной разработки и
тестирования устойчивого программного обеспечения.
Эти
соображения привели к созданию программного инструментария для
эндовидеохирургии (Image-Guided
Software Toolkit,
IGSTK, www.igstk.org)
междисциплинарной группой программистов и ученых в области
медицинской визуализации. IGSTK содержит
основные программные компоненты для разработки эндовидеохирургических
систем, включая компонент управления устройством слежения и компонент
отображения для накладывания изображений анатомии пациента и
хирургических инструментов.
Авторами
статьи «Обеспечение безопасности пациентов в беспроводных сетях
медицинских устройств» («Ensuring
Patient Safety in
Wireless Medical
Device Networks»)
являются Виджей Гелот и Элиот Слоун (Vijay Gehlot,
vijay.gehlot@villanova.edu,
Elliot B. Sloane, elliot.sloane@villanova.edu,
Villanova University).
Успешное
создание и внедрение компонентов беспроводных сетей данных (wireless
data network,
WDN), основанных на международных
стандартах IEEE
802.11x стало благом для пользователей
лаптопов и PDA. Широкомасштабное
производство вызвали резкое снижение стоимости WDN,
что привело к повсеместному использованию технологии в академии,
бизнесе, промышленности и даже в домашних условиях. Этот успех привел
к появлению различных инноваций в области WDN:
Wi-Fi (IEEE
802.11a/b/g),
Wi-Max (IEEE
802.11n), Bluetooth
(IEEE 802.15.1) и Zigbee
(IEEE 802.15.4). В каждой из этих
технологий используются компромиссы в отношении скорости,
интероперабельности, безопасности, сосуществования, времени жизни
батарей и глубины проникновения.
В
области здравоохранения используются различные WDN
как в бизнес-приложениях, так и в медицинских системах. В число
бизнес-ориентированных приложений входят беспроводные системы
управления цепочками поставок на основе штрих-кодов, системы
автоматизации выставления счетов за услуги, предоставленные
пациентам, системы голосовых коммуникаций на основе IP.
Существует
много возможностей использования и беспроводных сетей медицинских
устройств (wireless medical
device network,
WMDN). К возможным приложениям WMDN
относятся интеллектуальные инфузионные насосы, компьютеризированный
учет заказов, поступающих от врачей, мобильный клинический
мониторинг, медицинское диагностическое
тестирование в точке оказания помощи и т.д.
Для
беспроводных бизнес-приложений, не являющихся жизненно важными, могут
совместно использоваться общераспространенные и недорогие устройства
WDN, пропускная способность которых
продолжает расти. Для обеспечения многопользовательского доступа к
данным разработчики используют простой и элегантный метод
распознавания коллизий (Collision Sense
Method, CSM) при
управлении несколькими одновременно поступающими беспроводными
сообщениями, используя случайные задержки для переупорядочивания
сообщений. При наличии многочисленных коротких сообщений стратегия
CSM порождает немного заметных задержек
даже при наличии одновременно работающих пользователей. Если же
некоторые пользователи посылают большие потоки данных, то другие
пользователи могут испытывать существенные задержки.
Хотя время
доступа к данным в бизнес-приложениях является важным фактором,
редкие задержки могут быть допустимыми. Однако медицинская информация
является важной для жизни людей. Задержка, искажение или потеря
данных могут привести к нанесению серьезного вреда здоровью пациента
или даже его смерти. Например, непредсказуемая длина задержки CSM
легко может превысить установленный AAMI/ANSI
10-секундный период выдачи тревожного сигнала в системах мониторинга
аритмии сердечной деятельности.
Несмотря
на тщательное планирование, приобретение, установку и управление
систем WMDN во время жизни системы будут
происходить ее многочисленные умышленные и неумышленные изменения.
Задержки при получении предупредительных сигналов и потоков данных
могут серьезно повредить безопасности пациентов, но сегодня не
существуют непроприетарные методы верификации и валидации WMDN.
Необходимо учитывать возможности построения систем на основе
оборудования от одного поставщика и построения разнородных систем, а
также безопасность и надежность сосуществования с другими
технологиями, использующими те же компоненты сети. Верификация и
валидация сложны даже в случае однородных WMDN,
поскольку отсутствуют индустриальные стандарты и нормы; пациенты и
устройства неограниченно мобильны; базовые механизмы беспроводных
сетей быстро изменяются.
Авторы
полагают, что помочь верифицировать и валидировать разнородные
беспроводные медицинские сети может подход, основанный на применении
формальных методов. Они предлагают разработать инструментарий
верификации и валидации, который могли бы использовать
специалисты-врачи совместно со специалистами в области информационных
систем для обеспечения безопасного и надежного функционирования WMDN.
Последняя
статья тематической подборки называется «Подход на основе
формальных методов к проверке медицинских устройств» («A
Formal Methods
Approach to
Medical Device
Review»). Статью
написали Рауль
Джетли, С.
Пурушотама Айер и
Пол Джонс (Raoul
Jetley, rpjetley@alumni.ncsu.edu,
S. Purushothaman Iyer, purush@csc.ncsu.edu,
North Carolina State University, Paul L. Jones,
PaulL.Jones@fda.hhs.gov,
US Food and Drug Administration, Center for Devices and Radiological
Health).
Притом,
что программное обеспечение играет все более важную роль в
медицинских устройствах, регулирующие агентства, такие как Управление
по контролю за продуктами и лекарствами (FDA),
нуждаются в эффективных средствах, гарантирующих безопасность и
надежность этого программного обеспечения. FDA
стремится обеспечивать эту гарантию на основе более строгой проверки
медицинских устройств. Выполнению этой задачи может способствовать
использование методов, основанных на математике. Однако процесс
строгой проверки затрудняется отсутствием стандартных архитектур
медицинского программного обеспечения и соответствующих
инструментальных средств.
В
соответствии с инструкциями полагается производить проверку
разработки программного обеспечения медицинских устройств (premarket
review, проверка до выхода на рынок) и
проверку эксплуатационных характеристик (postmarket
surveillance, надзор после выхода на
рынок). В FDA проверку безопасности и эффективности устройств до их
выхода на рынок производит Центр по контролю над оборудованием и
радиационной безопасностью (Center for
Devices and
Radiological Health,
CDRH). Проверяются артефакты жизненного
цикла разработки программного обеспечения на предмет атрибутов
обеспечения качества, что имеет небольшое отношение к целостности
программного обеспечения устройств.
После
выхода устройства на рынок в процессе надзора CDRH
отслеживает его эксплуатационные характеристики. Если CDRH
получает сведения об отказе устройства (или его программного
обеспечения) или о его неправильном функционировании, приведшем к
нанесению вреда здоровью пациента, то обычно выполняется оценка
опасности устройства для здоровья. В этом случае CDRH
санкционирует расследование причин отказа или неправильного
функционирования (forensic
analysis, судебно-медицинский анализ),
в результате которого предпринимаются требуемые корректирующие
действия, или же устройство отзывается.
Хотя эти
регулирующие процессы приемлемы для производства устройств, они не
являются эффективными для оценки программного обеспечения. Что
касается проверки до выхода на рынок, то в программном обеспечении
могут присутствовать ошибки, обнаруживаемые только формальными
методами верификации моделей и исчерпывающим тестированием с доступом
к исходному коду (white-box
testing). Для применения таких методов
программное обеспечение должно разрабатываться на основе моделей.
Однако лишь немногие производители медицинских устройств используют
разработку на основе моделей. Обычно они создают программное
обеспечение, основываясь на своем понимании требований к продукту.
Это может приводить к несовместимости разных устройств, приводящей к
пагубным ситуациям.
Непростой
задачей является и выявление причин отказов программного обеспечения
в ходе судебно-медицинского анализа. Часто поведение систем является
недетерминированным, что практически не позволяет воспроизводить
ситуации отказов или неправильного функционирования. В таких случаях
единственным способом определения причины отказа является проверка
исходного кода. Сложность программного обеспечения современных
медицинских устройств делает эту задачу практически невыполнимой для
стороннего исследователя.
Для
решения этих проблем исследователи из Центра по
контролю над оборудованием и радиационной безопасностью и Управления
научных и инженерных лабораторий FDA
совместно с университетскими исследователями изучают способы
использования методов формального моделирования и статического
анализа. Для проведения проверки медицинского программного
обеспечения до выхода на рынок предполагается разработка моделей
использования, а для надзора после выхода на рынок – методы
слайсинга.
Автором
единственной большой статьи номера вне тематической подборки является
Бертран Мейер (Bertrand Meyer, Bertrand.Meyer@inf.ethz.ch,
ETH Zurich). Статья называется «Тестируемые, повторно
используемые элементы знания» («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’и должны быть
атомарными элементами на требуемом уровне гранулярности.
Эти
свойства Truc напоминают некоторые
характеристики паттернов проектирования. В паттернах фиксируются
архитектурные решения, часто оказывающиеся полезными при
проектировании программного обеспечения. Подобно паттернам Truc’и
не претендуют на оригинальность; основная работа состоит в
каталогизации способов мышления, зарекомендовавших свою полезность.
Truc’и можно на самом деле называть
«паттернами образования».