Logo Море(!) аналитической информации!
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware
Обучение от Mail.Ru Group.
Онлайн-университет
для программистов с
гарантией трудоустройства.
Набор открыт!
2006 г.

Как сделать так, чтобы компьютеры не вредили людям

Сергей Кузнецов

Обзор апрельского, 2006 г. номера журнала Computer (IEEE Computer Society, V. 39, No 4, April 2006)

Авторская редакция.
Также обзор опубликован в журнале "Открытые системы"

Темой номера является «Инженерия медицинского программного обеспечения» («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/.

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

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

Следующую статью представил Стивен Ракитин (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’и можно на самом деле называть «паттернами образования».

Новости мира IT:

Архив новостей

Последние комментарии:

Релиз ядра Linux 4.14  (6)
Пятница 17.11, 16:12
Apple запустила Pay Cash (2)
Четверг 09.11, 21:15
Loading

IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

Информация для рекламодателей PR-акции, размещение рекламы — adv@citforum.ru,
тел. +7 985 1945361
Пресс-релизы — pr@citforum.ru
Обратная связь
Информация для авторов
Rambler's Top100 TopList liveinternet.ru: показано число просмотров за 24 часа, посетителей за 24 часа и за сегодня This Web server launched on February 24, 1997
Copyright © 1997-2000 CIT, © 2001-2015 CIT Forum
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...