Коды термина от 0xF000 до 0xFFFF в каждом разделе в номенклатуре предусмотрены для частных номенклатурных кодов.
Для каждого номенклатурного термина ИСО/ИИЭР 11073-10101 [12] определяет систематические названия, которые объясняют этот термин, значение уникального кода, и ссылочный идентификатор (ID). Ссылочный ID указываются в форме MDC_XXX_YYY (MDC указывает на "коммуникацию медицинского прибора"). В тексте настоящего стандарта номенклатурные термины и номенклатурные коды указываются в ссылочном ID.
6.3.1 Общие положения
Схема на рисунке 4 использует Унифицированный язык моделирования (UML) для представления информационных объектов персонального медицинского агента вместе с отношениями классов. Верхний объект представляет информацию и статус системы MDS (см. 6.3.2). Существует ноль или более числовых, массивов показаний, снятых в режиме реального времени (RT-SA), перечислений, сканеров или других объектов PM-блока, ассоциированных с объектом системы MDS. Существует ноль или больше PM-сегментов, которые содержат постоянные метрики, ассоциированные с PM-блоком. Числовые объекты, объекты RT-SA и объекты перечисления происходят из базового класса общей метрики, который содержит общие и разделяемые атрибуты (см. 6.3.3). В общем случае, числовые объекты представляют эпизодические измерения (см. 6.3.4), объекты RT-SA представляют непрерывные показания или биосигналы (см. 6.3.5), объекты перечисления представляют аннотации событий (см. 6.3.6), а PM-блоки (см. 6.3.7) вместе с PM-сегментами (см. 6.3.8) предоставляют постоянные механизмы хранения метрики, доступ к которой позже получает менеджер. Кроме того, объект сканера (подробно определенный в 6.3.9) облегчает сообщения о передаче данных, инициированных агентом.
![]() Пункты с 6.3.2 по 6.3.9 описывают классы персонального медицинского прибора модели DIM. Каждый подпункт использует следующий формат:
- номенклатурный код, используемый для идентификации класса. Данный код используется в течение конфигурации для сообщения о классе для каждого объекта и позволяет менеджеру узнавать, является ли указанный объект числовым, RT-SA, или любого другого класса;
- атрибуты, определяемые классом;
- доступные методы;
- потенциальные события, генерируемые объектами инстанциируются от классов;
- доступные сервисы, такие как получение или установка атрибутов.
Каждый тип атрибутных данных определяется при помощи абстрактной синтаксической нотации версии 1 (ASN.1). Определения ASN.1 для всех типов данных и форматов обмена находятся в приложении A.
Атрибуты для каждого класса определены в таблицах, которые представляют название атрибута, его номенклатурную ссылку ID, тип, описание атрибута, и его классификатор. Классификаторы со значением O - необязательный атрибут, M - обязательный атрибут и C - условный атрибут, которые зависят от условий, указанных в столбце "Комментарий". Условные атрибуты могут реализовываться в отношении агента. Обязательные атрибуты должны реализовываться агентом. Условные атрибуты должны реализовываться при действии условия, а также в других случаях.
Номенклатурный код классов объектов (например, числовой, RT-SA) пересылается менеджеру во время конфигурирования для создания зеркального представления объекта. Каждый объект обладает атрибутом Handle (дескриптор), который используется для идентификации объекта для операций (от и к объекту), а также другими атрибутами для представления и передачи информации на физический прибор и его источники данных. Доступ к атрибутам и возможность внесения изменений предоставляется посредством таких методов, как GET (ПОЛУЧИТЬ) и SET (УСТАНОВИТЬ). Данные передаются при помощи метода EVENTs (СОБЫТИЯ).
6.3.2.1 Общие положения
Каждый персональный медицинский агент определяется объектно-ориентированной моделью, указанной на рисунке 4. Объект верхнего уровня каждого агента инстанцируются от класса MDS. Каждый агент обладает одним объектом MDS. MDS представляет идентификационную информацию и статус агента посредством его атрибутов.
6.3.2.2 Идентификация класса MDS
Номенклатурный код для обозначения класса MDS:MDC_MOC_VMS_MDS_SIMP.
Таблица 2 определяет набор атрибутов MDS, поддерживаемых для связи персональных медицинских агентов. Объект MDS должен поддерживать все обязательные атрибуты, но может иметь поднаборы условных и необязательных атрибутов.
Таблица 2
Типы атрибутивных данных определены в приложении A
Таблица 3 определяет методы (действия), доступные для объектов системы MDS. Данные методы запрашиваются при помощи сервиса ACTION. В таблице 3 столбец Метод/Действие определяет наименование метода. Столбец "Режим" определяет, был ли метод запущен как неподтвержденное действие (т.е. roiv-cmip-action из A.10.2) или подтвержденное действие (т.е. roiv-cmip-confirmed-action). Столбец "Тип Действия" определяет ID номенклатуры для использования в поле "тип действия" запроса и ответа действия (см. A.10.6). Столбик action-info-args определяет структуру ассоциированных данных для использования в сообщениях действий для поля запроса action-info-args. Столбец "Результат action-info-args" определяет структуру, используемую для ответа на action-info-args.
Таблица 3
Запрос данных MDS (MDS-Data-Request).
Данный метод позволяет системе менеджера активировать или дезактивировать передачу измерительных данных от агента (см. 8.9.3.3.3 для подробного описания).
Установка времени (Set-Time).
Данный метод позволяет системе менеджера устанавливать часы реального времени (RTC) с абсолютным временем. Агент указывает, корректна ли команда Установки времени при помощи mds-time-capab-set-clock bit в атрибуте Mds-Time-Info (см. таблицу 2).
Таблица 4 определяет потенциальные события, переданные объектом MDS. Менеджер должен поддерживать все методы, определенные в таблице 4.
Таблица 4
MDS-Data-Request (Запрос данных MDS).
Данный метод позволяет системе менеджера для активации или дезактивации передачу измерительных данных от агента (см. 8.9.3.3.3 для подробного описания).
Set-Time (Установка времени).
Данный метод позволяет системе менеджера устанавливать часы реального времени (RTC) и абсолютного времени. Агент указывает, активна ли команда Set-Time при помощи mds-time-capab-set-clock bit в атрибуте Mds-Time-Info (см. таблицу 2).
Событие Конфигурации MDS (MDS-Configuration-Event).
Данное событие пересылается агентом во время настройки состояния запуска, если менеджер еще не знает конфигураций агента из предыдущих ассоциаций. Событие предоставляет статическую информацию о поддерживаемых измерительных возможностях агента.
Событие MDS-Dynamic-Data-Update-Var.
Данное событие предоставляет динамические данные (обычно измерения) от агента для нескольких или всех объектов, поддерживаемых агентом. Данные о сообщаемых объектах предоставляются, используя переменный формат списка атрибутов параметров настройки (см. 7.4.5 для более подробной информации или для форматов отчетов о событии). Событие запускается Запросом данных MDS-Data-Request из системы менеджера, или запрос пересылается как незапрашиваемое сообщение агентом. Для агентов, которые поддерживают инициированную менеджером передачу данных, см. 8.9.3.3.3 для получения дополнительной информации по контролю активации и/или периода передачи данных. Для информации по ограниченному контролю, который менеджер может подтверждать в отношении агентов, которые не поддерживают инициируемую менеджером передачу измерительных данных, см. 8.9.3.3.2.
Событие MDS-Dynamic-Data-Update-Fixe
Данное событие предоставляет динамические данные (обычно измерения от агента для нескольких или всех метрических объектов или объектов системы MDS, поддерживаемых агентом). Данные сообщаются в фиксированном формате, определенным атрибутом Attribute-Value-Map для сообщаемых метрических объектов или объектов системы MDS (см. 7.4.5 для подробной информации о форматах отчетов о событиях). Событие запускается Запросом данных системы MDS (MDS-Data-Request) от системы менеджера (т.е. инициируемая менеджером передача измерительных данных), или пересылается в качестве незапрашиваемого сообщения агентом (т.е. инициируемая агентом передача измерительных данных). Для агентов, которые поддерживают инициированную менеджером передачу данных, см. 8.9.3.3.3 для получения дополнительной информации по контролю активации и/или периода передачи данных. Для информации по ограниченному контролю, который менеджер может подтверждать в отношении агентов, которые не поддерживают инициируемую менеджером передачу измерительных данных, см. 8.9.3.3.2.
Событие MDS-Dynamic-Data-Update-MP-Var.
Данное событие сходится с MDS-Dynamic-Data-Update-Var, позволяя кроме того включение данных от нескольких лиц.
Событие MDS-Dynamic-Data-Update-MP-Fixed.
Данное событие сходится с MDS-Dynamic-Data-Update-Fixed, позволяя кроме того включение данных от нескольких лиц.
6.3.2.6 Другие сервисы системы MDS
Любой агент, поддерживающий линии двусторонней связи, должен поддерживать сервис GET (ПОЛУЧЕНИЕ) для извлечения значений всех применимых атрибутов объекта MDS. Сервис GET может быть запущен, как только агент получает Ответ на Ассоциацию и приобретает состояние Ассоциации, включая подсостояния Работа и Настройка.
Менеджер может запросить атрибуты объекта системы MDS агента, в случае которого менеджер должен переслать команду "Запрос удаленной работы|Получить" ("Remote Operation Invoke | Get") (см. roiv-cmip-get в A.10.2) с зарезервированным значением дескриптора 0. Агент должен ответить, сообщая атрибуты своего объекта системы MDS менеджеру, используя команду ответа "Ответ Удаленной Работы|Получить" (см. rors-cmip-get в A.10.2). В ответ на команду Получить Объект MDS, возвращаются только примененные агентом атрибуты.
6.3.2.6.2 Сервис SET
На данный момент устанавливаемые атрибуты не представлены.
6.3.3.1 Общие положения
Метрический класс является базовым классом для всех объектов, представляющим данные об измерениях, статусе и контекстные данные. Метрический класс не является инстанциированным; следовательно, он никогда не является частью конфигурации агента. Как базовый класс, он определяет все атрибуты, методы, события и сервисы, которые являются общими для всех объектов, представляющих измерения.
6.3.3.2 Идентификация метрического класса
Номенклатурный код для идентификации метрического класса: MDC_MOC_VMO_METRIC. Данный номенклатурный код не используется при применении агента или менеджера, так как метрический класс является лишь базовым классом для остальных классов.
6.3.3.3 Атрибуты метрического класса
Таблица 5 определяет набор метрических атрибутов, поддерживаемых для связи персональных медицинских приборов, и наследуемых всеми классами метрического происхождения.
Таблица 5
6.3.3.4 Методы метрического объекта
Нет
6.3.3.5 События метрического объекта
Объекты, которые происходят из метрического класса, не сообщают напрямую о своих наблюдениях; чаще всего наблюдения передаются посредством другого объекта, такого как объект системы MDS, объект сканера или объект PM-блока.
6.3.3.6 Другие метрические сервисы
Нет
6.3.4.1 Общие положения
Экземпляр числового класса представляет числовое измерение. Значения числового объекта пересылаются от агента менеджеру, используя сервис ОТЧЕТ О СОБЫТИЯХ (EVENT REPORT) (см. 7.3). Данный класс происходит от метрического базового класса.
Номенклатурный код для идентификации числового класса: MDC_MOC_VMO_METRIC_NU.
6.3.4.3 Атрибуты числового класса
Таблица 6 определяет набор числовых атрибутов, поддерживаемых для обмена данными персонального медицинского прибора.
Таблица 6
Атрибуты Compound-Simple-Nu-Obs-Value, Compound-Basic-Nu-Obs-Value и Compound-Nu-Observed-Value представляют список концептов для наблюдаемых значений. Данный концепт должен использоваться, когда между отдельными наблюдаемыми значениями дана сильная взаимосвязь, которая может быть зависима от номенклатуры и/или применения. Сложные наблюдаемые значения разделяют общий контекст статической атрибуции, за исключением идентификации элементов. Примером этого может служить применение артериального давления, где номенклатурный базовый термин выражает "Артериальное давление", а более специфические термины выражают "Артериальное давление Систолическое", "Артериальное давление Диастолическое", и "Артериальное давление Среднее". Соответствующий DIM должен содержать только один экземпляр числового объекта, который использовал бы один из форматов сложных числовых значений наблюдений для представления "систолической", "диастолической" и "средней" частей "Артериального давления".
6.3.4.4 Методы числового объекта
Нет
6.3.4.5 События числового объекта
Нет
6.3.4.6 Другие числовые сервисы
Нет
6.3.5.1 Общие положения
Экземпляр класса RT-SA представляет измерение формы сигнала. Значения объекта RT-SA пересылаются от агента менеджеру с помощью сервиса ОТЧЕТ О СОБЫТИЯХ (EVENT REPORT) (см. 7.3). Данный класс происходит от метрического базового класса.
Номенклатурный код для идентификации класса RT-SA: DC_MOC_VMO_METRIC_SA_RT.
Таблица 7 определяет набор атрибутов RT-SA, поддерживаемых для связи персонального медицинского устройства.
Показаний, снятых в режиме реального времени
Таблица 7
Характеристика объекта RT-SA может быть получена путем исследования атрибута Sa-Specification. Данный атрибут определяет число элементов в матрице и размер элементов, более подробная информация дана в A.3.4.
Об агентах, которые поддерживают инициированную менеджером передачу данных, см. в 8.9.3.3.3 дополнительную информацию по контролю активации и/или периода передачи данных. Информацию по ограниченному контролю, который менеджер может подтверждать в отношении агентов, которые не поддерживают инициируемую менеджером передачу измерительных данных, см. в 8.9.3.3.2.
Атрибут Scale-and-Range-Specification.
Атрибут Scale-and-Range-Specification определяет коэффициент алгоритма для преобразования измеренных значений в их абсолютные значения. Менеджер должен применить следующий алгоритм:
Y = M x X + B,
где Y - преобразованное абсолютное значение;
M = (наибольшее абсолютное значение - наименьшее абсолютное значение)/(наибольшее измеренное значение - наименьшее измеренное значение);
B = наибольшее абсолютное значение - (M x наибольшее измеренное значение);
X - измеренное значение.
Пример работы данного алгоритма приведен в приложении B.
Необходимо отметить, что в данном случае термин абсолютное значение не употребляется как математическое абсолютное значение, при котором все значения положительны, а скорее как реальное измеренное значение.
6.3.5.4 Методы объекта RT-SA
Нет
6.3.5.5 События объекта RT-SA
Нет
6.3.5.6 Другие сервисы RT-SA
Нет
6.3.6.1 Общие положения
Экземпляр класса перечисления представляет статусную информацию и/или аннотационную информацию. Значения объектов перечисления кодируются в форме нормативных кодов (в соответствии с ИСО/ИИЭР 11073-10101 [12]) или в свободной форме. Значения объекта перечисления пересылаются от агента менеджеру с помощью сервиса ОТЧЕТ О СОБЫТИЯХ (EVENT REPORT) (см. 7.3). Данный класс происходит от метрического базового класса.
Номенклатурный код для идентификации класса перечисления: MDC_MOC_VMO_METRIC_ENUM.
6.3.6.3 Атрибуты класса перечисления
Таблица 8 определяет набор атрибутов перечисления поддерживаемых для связи персонального медицинского устройства.
Таблица 8
6.3.6.4 Методы объекта перечисления
Нет
6.3.6.5 События объекта перечисления
Нет
6.3.6.6 Другие сервисы перечисления
Нет.
6.3.7.1 Общие положения
Экземпляр класса PM-блока предоставляет возможности долгосрочного хранения метрических данных. Данные хранятся в переменном числе объектов PM-сегмента (см. 6.3.8). Хранимые данные объекта PM-блока запрашиваются от агента менеджером, используя сервисы доступа к объектам (см. 7.3). Если концепт PM-блока неизвестен, можно обратиться к приложению C для концептуального обзора перед тем, как ознакомиться со следующими подпунктами.
6.3.7.2 Идентификация класса PM-блока
Номенклатурный код для идентификации класса PM-блока: MDC_MOC_VMO_PMSTORE.
Таблица 9 определяет набор атрибутов PM-блока, поддерживаемых для связи персонального медицинского устройства:
Таблица 9
Атрибуты Handle и PM-Store-Capab являются частью конфигурации агента; следовательно, менеджер знает соответствующие значения атрибута после процедуры конфигурации.
Таблица 10 определяет методы (действия) объекта PM-блока. Данные методы могут быть запущены, используя сервис ACTION.
Таблица 10
Если агент поддерживает класс PM-блока, поддержка методов Get-Segment-Info и Trig-Segment-Data-Xfer обязательна. Поддержка метода Clear-Segments является условной и указывается в атрибуте PM-Store-Capab.
Метод очистка сегментов (Clear-Segments)
Данный метод позволяет менеджеру удалять данные, хранимые в одном или нескольких сегментах PM. Все записи в выбранных сегментах PM удаляются. Если агент поддерживает переменное число PM-сегментов, агент может удалить пустые PM-сегменты. Кроме того, агент может очистить PM-сегменты без команды от менеджера (например, пользователь агента может выбрать удалить хранимые агентом данные); однако, если эта операция производится в ассоциированном состоянии, номер экземпляра (Instance-Number) должен оставаться пустым в ходе ассоциации. Номер экземпляра (Instance-Number) всех остальных PM-сегментов должен оставаться нетронутым при чистке сегмента. Если данный метод запускается на PM-сегменте, у которого атрибут Operational-State активирован, агент должен ответить ошибкой not-allowed-by-object error (roer) с кодом возврата MDC_RET_CODE_OBJ_BUSY.
Необходимо отметить, что поведение метода Clear-Segments ориентировано на конкретное приложение. Метод может очистить все записи от предусмотренного PM-сегмента, оставляя его пустым или может полностью очистить указанный PM-сегмент. Данное поведение определяется в атрибуте PM-Store-Capab. Для определенных приложений рекомендации определяются в специализациях соответствующих приборов, применяющих PM-блок.
Метод Get-Segment-Info
Данный метод позволяет менеджеру извлечь атрибуты PM-сегмента одного или нескольких PM-сегментов, за исключением данных атрибута фиксированного сегмента, который содержит актуальные данные и извлекается при помощи метода Trig-Segment-Data-Xfer. В частности, метод Get-Segment-Info позволяет менеджеру извлечь атрибуты Instance-Numbe экземпляров объекта PM-сегмента и содержание их данных.
Метод Trig-Segment-Data-Xfer
Данный метод позволяет менеджеру начать передачу данных атрибута фиксированного сегмента определенного PM-сегмента. Агент указывает в ответ, принимает ли он или отклоняет этот запрос. Если агент принимает запрос, агент посылает сообщения Segment-Data-Event в соответствии с описанием в 6.3.7.5. Если данный метод запускается на PM-сегменте, у которого активирован атрибут Operational-State, агент должен ответить ошибкой not-allowed-by-object error (roer) с кодом возврата MDC_RET_CODE_OBJ_BUSY.
Таблица 11 определяет потенциальные события, пересылаемые объектом PM-блока:
Таблица 11
Событие Segment-Data-Event
Данное событие посылает хранимые в фиксированном сегменте PM-сегмента данные от агента менеджеру. Данное событие запускается менеджером методом Trig-Segment-Data-Xfer. Как только передача данных запускается, агент посылает сообщения Segment-Data-Event до тех пор, пока данные фиксированного сегмента полностью не будут переданы или если передача не будет отменена менеджером или агентом. Для более полной информации о содержании передачи PM-сегмента обратитесь к п. 8.9.3.4.2.
Рекомендуется размещать как можно больше записей сегмента, содержащихся в Segment-Data-Event для сокращения количества сообщений, требуемых для передачи сегмента.
Поддержка события агентом обязательна, если агент поддерживает объекты PM-блока.
6.3.7.6 Другие сервисы PM-блока
6.3.7.6.1 Сервис GET
Поддержка сервиса GET должна обеспечиваться любым агентом, поддерживающим один и более объектов PM-блока только во время состояния работы. Менеджер использует сервис GET для извлечения значений всех атрибутов объекта PM-блока.
Менеджер может запросить атрибуты объекта PM-блока агента, в случае чего менеджер должен послать команду "Remote Operation Invoke | Get" (см. roiv-cmip-get в A.10.2) со значением дескриптора объекта PM-блока, определенного в конфигурации агента. Агент должен ответить, сообщая свои атрибуты объекта PM-блока менеджеру, используя ответ "Remote Operation Response | Get" (см. rors-cmip-get в A.10.2).
6.3.8.1 Общие положения
Экземпляр класса PM-сегмента представляет собой постоянно хранимые примеры измерительных данных. Объект PM-сегмента не является частью конфигурации статического агента, т.к. количество экземпляров инстанциированного PM-сегмента может динамично меняться. Менеджер осуществляет опосредованный доступ в объекты PM-сегмента посредством методов и событий объекта PM-блока.
6.3.8.2 Идентификация класса PM-сегмента
Номенклатурный код для идентификации класса PM-сегмента: MDC_MOC_PM_SEGMENT.
6.3.8.3 Атрибуты класса PM-сегмента
Таблица 12 определяет набор атрибутов PM-сегмента, поддерживаемых для связи персонального медицинского устройства.
Таблица 12
Атрибут Fixed-Segment-Data хранит матрицу записей единого формата. В случаях, когда измерение не может быть предоставлено за требуемый период времени, значение для числового измерения предоставленного типом данных (S) FLOAT-type должно использовать специальное значение NaN (не число), чтобы указать на то, что значение не доступно.
Атрибут Fixed-Segment-Data может удерживать достаточно большие объемы данных в зависимости от возможностей и применения агента. Агент может ограничить максимальный размер атрибута Fixed-Segment-Data, чтобы таким образом выровнять его с максимальным размером блока передачи транспортной системы. Чтобы поддерживать данный тип поведения, менеджер должен быть в состоянии поддерживать передачу атрибутов Fixed-Segment-Data сообщений многократного использования.
6.3.8.4 Методы объекта PM-segment
Нет
6.3.8.5 События объектов PM-segment
Нет
6.3.8.6 Другие сервисы PM-segment
Нет
6.3.9.1 Общая информация
Объект сканера является наблюдателем и "сумматором" значений атрибутов объекта. Он наблюдает атрибуты метрических объектов (например, числовые объекты) и генерирует сводки в форме отчетов о событиях. См. на рисунке 5 иерархию классов сканера. Каждый класс описан в 6.3.9.2 - 6.3.9.5 соответственно.
![]() Модель сканера
Должны использоваться различные классы сканера (периодические и эпизодические), а также различные экземпляры для распространения данных различных типов по одному или нескольким потокам данных, представленных экземпляром сканера. Приложение пульсовой оксиметрии может выбрать периодический конфигурируемый сканер для объектов RT-SA с интервалом отправки отчета каждые 50 мс, периодический конфигурируемый сканер с интервалом сообщения отчета в 1 сек для числовых объектов и объектов перечисления, а также конфигурируемый эпизодический сканер для импульсных метрических объектов (числовых объектов и объектов перечисления).
6.3.9.2.1 Общая информация
Класс сканера является абстрактным классом, определяющим атрибуты, методы, события и сервисы, которые являются типичными для его подклассов. Будучи таковым, он не может инстанциироваться.
Концепт сканера обеспечивает три разных сообщения отчета о событиях: переменный формат, фиксированный формат и сгруппированный формат. См. в 7.4.5 информацию о сообщениях атрибутов наблюдаемых объектов. Форматы отчетов о событиях описаны ниже в 6.3.9.4.5, 6.3.9.5.5 и A.11.5, соответственно.
Более специализированные классы сканера происходят от базового класса сканера.
6.3.9.2.2 Идентификация класса сканера
Номенклатурный код для идентификации класса сканера: MDC_MOC_SCAN.
6.3.9.2.3 Атрибуты класса сканера
Таблица 13 определяет набор атрибутов сканера, поддерживаемых для связи персонального медицинского устройства.
Таблица 13
6.3.9.2.4 Методы объектов сканера
Нет
6.3.9.2.5 События объекта сканера
Сервис SET
Агенты, которые обладают производными объектами сканера должны поддерживать набор сервисов атрибута Operational-State объектов сканера.
6.3.9.3 Класс CfgScanner
6.3.9.3.1 Общая информация
Класс CfgScanner является абстрактным классом, определяющим атрибуты, методы, события и сервисы, которые являются типичными для его подклассов. В частности, он определяет коммуникационное поведение объекта настраиваемого сканера. Будучи таковым, он не может инстанцироваться.
6.3.9.3.2 Идентификация класса конфигурируемого сканера
Номенклатурный код для идентификации класса конфигурируемого сканера: MDC_MOC_SCAN_CFG.
6.3.9.3.3 Атрибуты класса конфигурируемого сканера
Таблица 14 определяет набор атрибутов сканера, поддерживаемых для связи персонального медицинского устройства.
Таблица 14
Рисунок 6 демонстрирует выполнение вспомогательной очереди передачи, когда значение Transmit-Window более чем 1.
![]() конфигурируемого сканера
6.3.9.3.4 Методы объекта конфигурируемого сканера
Нет
6.3.9.3.5 События объекта конфигурируемого сканера
См. описания событий производного класса в 6.3.9.4.5 и п. 6.3.9.5.5.
6.3.9.3.6 Другие события конфигурируемого сканера
Нет
6.3.9.4 Класс EpiCfgScanner
6.3.9.4.1 Общие положения
Класс EpiCfgScanner представляет собой класс, который может инстанцироваться. Объекты EpiCfgScanner используются для отправки отчетов, содержащих эпизодические данные, то есть данные, не имеющие фиксированного периода между каждым значением данных. Отчет пересылается, как только один из наблюдаемых атрибутов меняет значение; однако временной интервал между двумя последовательными отчетами о событиях не должен быть меньше значения атрибута Min-Reporting-Interval.
6.3.9.4.2 Идентификация класса эпизодического конфигурируемого сканера
Номенклатурный код для идентификации класса эпизодического конфигурируемого сканера: MDC_MOC_SCAN_CFG_EPI.
6.3.9.4.3 Атрибуты класса эпизодического конфигурируемого сканера
Таблица 15 определяет набор атрибутов класса эпизодического конфигурируемого сканера, поддерживаемых для связи персонального медицинского устройства.
Таблица 15
6.3.9.4.4 Методы объекта эпизодического конфигурируемого сканера
Нет
Таблица 16 определяет потенциальные события, пересылаемые объектом эпизодически конфигурируемого сканера. Отчеты о событиях классифицируются как безбуферные, т.к. агент пересылает событие, когда происходит эпизод, и он не должен буферизовать информацию в ожидании следующей периодической передачи. Если агент поддерживает эпизодический конфигурируемый сканер, он должен поддерживать как минимум одно из событий, указанных в таблице 16.
Таблица 16
Событие Unbuf-Scan-Report-Var
Стиль данного события сообщает обобщенные данные о любом объекте и атрибуте, контролируемых сканером. Событие запускается, как только значения данных меняются, используется формат переменного сообщения (тип/длина/значение) для сообщения измененных данных.
Событие Unbuf-Scan-Report-Fixed
Стиль данного события используется, как только значения данных меняются, используется формат фиксированного сообщения каждого объекта для сообщения измененных данных.
Событие Unbuf-Scan-Report-Grouped
Стиль данного события используется, когда используется объект сканера для пересылки данных в их наиболее компактном формате. Атрибут Handle-Attr-Val-Map описывает включенные объекты и атрибуты, а также формат сообщения.
Событие Unbuf-Scan-Report-MP-Var
Стиль данного события полностью совпадает с Unbuf-Scan-Report-Var, но позволяет также включение данных от нескольких лиц.
Событие Unbuf-Scan-Report-MP-Fixed
Стиль данного события полностью совпадает с Unbuf-Scan-Report-Fixed, но позволяет также включение данных от нескольких лиц.
Событие Unbuf-Scan-Report-MP-Grouped
Стиль данного события полностью совпадает Unbuf-Scan-Report-Grouped, но позволяет также включение данных от нескольких лиц.
6.3.9.4.6 Другие сервисы эпизодически конфигурируемого сканера
Нет.
6.3.9.5.1 Общие положения
Класс PeriCfgScanner представляет собой класс, из которого могут быть созданы экземпляры. Объекты PeriCfgScanner используются для пересылки отчетов, содержащих периодические данные, то есть данные, полученные в установленные периоды. Он буферизует любые изменения значений данных, которые должны пересылаться как часть периодического отчета. Отчеты о событиях должны пересылаться с временным интервалом, равным значению атрибута Reporting-Interval.
Количество наблюдений для каждого метрического объекта зависит от интервала обновления метрического объекта и интервала сообщения отчета сканера.
Пример - Периодически конфигурируемый сканер установлен на "сканирование" двух метрических объектов с интервалом сообщения отчетов в 1 сек. Два объекта периодически обновляют их соответствующие наблюдаемые значения с интервалом в 1 сек и 1/2 сек, соответственно. Затем периодически конфигурируемый сканер выпускает отчеты о событиях каждую секунду, сообщая один скан наблюдения метрического объекта #1 и два скана наблюдения метрического объекта #2.
6.3.9.5.2 Идентификация объекта периодического конфигурируемого сканера
Номенклатурный код для идентификации класса периодического конфигурируемого сканера: MDC_MOC_SCAN_CFG_PERI.
6.3.9.5.3 Атрибуты объекта периодического конфигурируемого сканера
Таблица 17 определяет набор атрибутов объекта сканера, поддерживаемых для связи персонального медицинского устройства.
Таблица 17
6.3.9.5.4 Методы объекта периодического конфигурируемого сканера
Нет
Таблица 18 определяет потенциальные события, пересылаемые объектом периодического конфигурируемого сканера. Если агент поддерживает периодический конфигурируемый сканер, он должен поддерживать как минимум события, перечисленные в таблице 18.
Таблица 18
Все стили отчетов о событиях, перечисленных в таблице 18, являются буферизованными эквивалентами их небуферизованных двойников в 6.3.9.4.5. Первое различие заключается в том, что сканер буферизует данные в соответствии с интервалом отчетов и посылает единственное сообщение в конце интервала. Второе различие заключается в том, что в каждый отчет включены одни и те же объекты и атрибуты, независимо от того, изменились ли их значения.
6.3.9.5.6 Другие сервисы периодического конфигурируемого сканера
Нет.
Информационная модель расширяет свою сферу применения при помощи дополнительных атрибутов объектов для объектов, определенных в настоящем стандарте, определенных в ИСО/ИИЭР 11073-10201 [13].
Другим возможным расширением может стать использование частных (например, специфицированных производителем) атрибутов объектов и/или методов для объектов, определенных в настоящем стандарте. Частные атрибуты должны идентифицироваться путем присвоения номенклатурных кодов из частного пространства нумерации (0xF000 - 0xFFFF) в рамках соответствующего раздела в соответствии с ИСО/ИИЭР 11073-10101 [12].
Реализация системы менеджера должна полностью обрабатывать сообщение, пропуская любые неизвестные атрибуты (например, указанные продавцом атрибуты) и игнорируя присвоенные значения данных этих атрибутов без ошибок протокола. Реализация может внести соответствующую запись о таких атрибутах (например, в журнале регистрации).
Сервисная модель определяет концептуальный механизм для сервисов обмена данными. Данные сервисы отображаются в сообщениях, которыми обмениваются агент и менеджер. Протокольные сообщения в рамках серии стандартов ИСО/ИИЭР 11073 определены в языке ASN.1. Сообщения, описанные в настоящем стандарте, могут сосуществовать с сообщениями, описанными в других стандартных профилях, описанных в серии стандартов ИСО/ИИЭР 11073.
Сообщения протокола структурируются следующим образом:
- фрейм-структура протокола верхнего уровня отделяет сообщения команд, связанных с менеджментом связи (сообщения ассоциации), от сообщений верхнего уровня, связанных с объектом (передача данных и сервисов);
- фрейм-структура верхнего уровня, в частности, предоставляет тип сообщения и длину поля;
- протокол, при использовании правил MDER, позволяет агентам хранить заранее определенные шаблоны передачи и изменять только стабильное размещение, изменяя детали до отправки.
Сервис ассоциации управляет ассоциацией между агентом и менеджером. Частью сервиса ассоциации являются следующие сообщения:
- Запрос Ассоциации устанавливает соединение верхнего уровня над существующим транспортным соединением;
- Ответ на Ассоциацию принимает Запрос на Ассоциацию, если соединение двунаправленное;
- Запрос на Разъединение корректно завершает ассоциацию верхнего уровня;
- Ответ на Разъединение подтверждает завершение ассоциации верхнего уровня, если соединение двунаправленное;
- Отмена немедленно и без ответа останавливает верхний уровень ассоциации. Обычно это сообщение пересылается как результат ошибки.
Сервисы доступа к объектам используются для доступа объектов информации, определенные в DIM. Эти сервисы, в частности, используются для сообщения данных и функций доступа к данным, предоставляемых агентом.
Поддерживаются следующие сервисы доступа обобщенного объекта:
- сервис GET: используется менеджером для извлечения значений объекта MDS агента и атрибутов PM-блока. Список атрибутов объекта системы MDS указан в 6.3.2.3, список атрибутов PM-блока указан в 6.3.7.3;
- сервис SET: используется менеджером для установки значений атрибутов объекта агента. Как правило, только объекты сканера поддерживают сервис SET (см. 6.3.9.2.6);
- сервис EVENT REPORT: используется агентом для пересылки обновлений конфигурации и измерительных данных менеджеру. Список отчетов о событиях указан в 6.3.2.5, 6.3.7.5, 6.3.9.4.5 и 6.3.9.5.5;
- сервис ACTION: используется менеджером для запуска действий (или методов), поддерживаемых агентом. Примером служит действие MDS-Data-Request, используемая для запроса измерительных данных у агента. Список методов указан в 6.3.2.4 и 6.3.7.4.
Доступ к объектам агента посредством запроса Get должен считаться неверным до тех пор, пока не выполняется одно из следующих условий:
- агент находится в рабочем состоянии и сервис GET ссылается на объект MDS или дескриптор объекта, который был заявлен в ходе конфигурации;
- агент находится в состоянии ассоциации и сервис GET ссылается на объект MDS.
Менеджер, получающий подтвержденный отчет о событиях от агента, должен ответить либо rors-cmipconfirmed-event-report, либо соответствующим сообщением об ошибке roer с подходящим обратным кодом.
Если запрос на подтвержденное действие получено агентом, который не поддерживает действие, агент должен ответить ошибкой (roer) со значением ошибки "не существующее действие". В случае ошибки выполнения подтвержденного действия, ошибка может быть указана, возвращая ошибку (roer) с соответствующим значением ошибки и, где применимо, может быть включена дополнительная информация об ошибке в поле параметра, используя один из обратных кодов из раздела обратных кодов.
7.4 Специальная реализация доступа к объекту сервисов EVENT REPORT для персональных медицинских приборов
7.4.1 Общие положения
Сервис EVENT REPORT является главным механизмом для агента посылающим отчеты как о данных измерений так и о данных конфигурации. Отчеты о событиях в настоящем стандарте являются собственностью системы MDS и объектов сканера. Такие особые отчеты о событиях могут иметь разные формы и свойства, в соответствии с 7.4.2 по 7.4.7.
Отправитель отчета о событиях может опционально запросить подтверждение от получателя.
7.4.3.1 Общие положения
Подпункты 7.4.3.2 - 7.4.3.4 описывают конфигурации, отчеты о событиях конфигураций, и специализации прибора, используемые для описания объектов в агенте.
Набор объектов и атрибутов, который существует в агенте, обозначает конфигурацию агента и ассоциируется со значением Dev-Configuration-Id (см. таблицу 2). В случае если агент обладает множественными конфигурациями прибора, присвоенные значения Dev-Configuration-Id должны быть локально-уникальными. В течение срока работы ассоциации, конфигурация агента должна оставаться стабильной, то есть набор объектов должен оставаться неизменным. Однако агент может добавить новые атрибуты объекту или изменить значения атрибута в соответствии с 7.4.3.3. Агент, который запрашивает другую конфигурацию, должен остановить ассоциацию и установить новую ассоциацию с желаемой конфигурацией.
Конфигурация, которую агент желает использовать во время ассоциации с менеджером, указывается при помощи значения Dev-Configuration-Id для поля dev-config-id в сообщении Запрос ассоциации. Если менеджер еще не знаком с конфигурацией прибора-агента (например, на основе предыдущих фаз ассоциации), менеджер запрашивает конфигурацию прибора агента. Агент направляет свои конфигурации менеджеру при помощи отчета о событиях конфигураций. Отчет описывает все объекты конфигурации прибора агента вместе с ассоциированным значением Dev-Configuration-Id. В течение ассоциации, конфигурации агента остаются стабильными в отношении количества объектов. В случае если агент намеревается использовать другую конфигурацию или желает изменить текущую конфигурацию путем добавления или удаления объектов, агент должен прервать ассоциацию и произвести новую ассоциацию с новой конфигурацией. Для каждого объекта конфигурация должна содержать также атрибуты, используемые данным объектом. Обычно, редко изменяемые атрибуты включаются в отчет конфигурации, а динамические значения как, например, измерения, пересылаются в последующих отчетах об измерениях. Агент может добавлять новые атрибуты объекту или изменять значения атрибутов в ходе ассоциации без пересылки новой конфигурации. Добавление новых атрибутов может случиться только при помощи отчета о событиях переменного формата (см. 7.4.5 для подробной информации о форматах отчетов о событиях). Изменяемые значения атрибутов могут использовать переменные, фиксированные или групповые отчеты о событиях в зависимости от конфигурации.
Изменения, вносимые в текущую конфигурацию, как стандартную, так и расширенную, имеют силу только в течение той ассоциации, и не считаются устойчивым изменением конфигурации. Следовательно, Dev-Configuration-Id представляет собой конфигурацию, согласованную на время конфигурации. В последующих ассоциациях, когда указывается ранее используемый Dev-Configuration-Id, текущая конфигурация не включает каких-либо изменений, внесенных в ходе предыдущей ассоциации. Устойчивые изменения конфигурации могут быть внесены только после установления новой ассоциации и указания другого Dev-Configuration-Id, и желаемой новой конфигурации во время настройки.
Менеджер использует информацию о конфигурации для создания эквивалентной модели информации агента. Затем данная информация обновляется агентом в качестве собранных измерений.
Специализации прибора ИСО/ИИЭР 11073-104zz определяют обязательные атрибуты и объекты, которые должны существовать в рамках конфигурации агента. Более того, каждая из специализаций определяет обязательные элементы (например, включающие обязательные действия и методы) моделей сервиса и связи, которые должны поддерживаться агентом в соответствии с этой специализацией.
7.4.3.5 Типы конфигурации
Для уменьшения размеров сообщения передачи, настоящий стандарт устанавливает способность информировать менеджера о конфигурациях агента эффективным образом. Существует два типа конфигураций: стандартная и расширенная.
7.4.3.5.1 Стандартная конфигурация
Стандартная конфигурация - это конфигурация, оговоренная в одной из специализации ИСО/ИИЭР 11073-104zz и со значением Dev-Configuration-Id, присвоенным из диапазона между standard-config-start и standardconfig-end, включительно. Этот диапазон ниже подразделен, резервируя 100 ID на каждую специализацию ИСО/ИИЭР 11073-104zz в диапазоне от zz x 100 до zz x 100 + 99, включительно. Например, диапазон 1500 - 1599 зарезервирован под ИИЭР Std 11073-10415 [B4]. Все неиспользуемые значения в стандартном диапазоне зарезервированы под будущее использование. Менеджер, который поддерживает одну из специализаций прибора ИСО/ИИЭР 11073-104zz, знаком со всеми конфигурациями стандартных приборов, указанных в конкретной специализации. Каждый раз, как агент запрашивает ассоциацию с менеджером при помощи значения Dev-Configuration-Id стандартной конфигурации, менеджер может принять ассоциацию без необходимости запроса конфигураций агента, т.к. они уже известны. После успешной ассоциации менеджер и агент входят в режим Работы.
Важно отметить, что при наличии запроса приборы со стандартными конфигурациями должны отправлять свои конфигурации. Это требование покрывает случай, когда агент ассоциируется с менеджером, в который не была встроена информация о стандартных конфигурациях (например, версия менеджера 1.0, а специализация прибора - версия 2.0 и выше). Способность менеджера применять конфигурации зависит от реализации менеджера.
Если агент использует значение Dev-Configuration-Id, присвоенное стандартной конфигурации, он должен также заполнить все дополнительные обязательные элементы (например, включая обязательные действия и методы) моделей сервиса и связи, в соответствии со специализацией прибора.
7.4.3.5.2 Расширенная конфигурация
При расширенных конфигурациях, конфигурация агента не является стандартной; он может иметь различный набор объектов, различные атрибуты и/или различные значения атрибутов. Расширенная конфигурация(-ии) применения агента должна выбрать уникальное значение Dev-Configuration-Id из диапазона между extended-configstart и extended-config-end, включительно для каждой расширенной конфигурации. За время ассоциации агент отправляет Dev-Configuration-Id для определения конфигурации, выбранной агентом, на период проведения ассоциации. Если менеджер уже понимает эту конфигурацию, либо потому, что она была загружена ранее при помощи программы установки, либо потому, что агент ранее устанавливал ассоциацию с менеджером, то менеджер должен ответить принятием конфигурации без необходимости пересылки дальнейшей информации о конфигурациях.
Однако, если менеджер не знаком с конфигурацией агента, менеджер должен ответить реакцией accepted-unknown-config, после чего агент должен передать информацию о своих конфигурациях, отправляя отчет о событии конфигурации. См. 8.7 и 8.8 для подробной информации о процедурах ассоциации и конфигурации. Как только менеджер получает конфигурацию, агент может передать измерительные данные. Для экономии времени ассоциации, агентом должен использоваться тот же Dev-Configuration-Id для последующих ассоциаций при условии неизменности конфигурации прибора.
В отличие от стандартных конфигураций, два агента с одинаковым расширенным Dev-Configuration-Id не обязательно представляют одну и ту же конфигурацию. Менеджер должен различать расширенные конфигурации на базе каждого агента. System-Id агента может использоваться для различия расширенных конфигураций, т.к. System-Id является обязательной и должна быть уникальной, и высылается во время ассоциации; однако вместо них могут использоваться другие техники, как например, производитель/модель/серийный номер, только если они не вынуждают менеджера использовать некорректную конфигурацию для агента.
По существу, агент с расширенной конфигурацией поддерживает ноль, одной или несколько специализаций прибора в соответствии со спецификациями ИСО/ИИЭР 11073-104zz. В случае, когда агент поддерживает одну и более специализации прибора, он должен применять все обязательные и действующий набор условных пунктов (включая объекты, атрибуты, действия и методы), указанных в соответствующих спецификациях.
Передача измерительных данных, инициируемых агентом, выполняется агентом, например, как результат сделанных новых измерений.
Передача измерительных данных, инициируемая менеджером, напрямую запрашивается менеджером путем выпуска команды (т.е. MDS-Data-Request) для сообщения агенту информации о начале и окончании пересылки измерительных данных. В зависимости от мощности агента, настраивается отрезок времени, в течение которого остается активным этот режим отчета (например, установленный период или всегда в ассоциации).
Менеджер должен поддерживать получение Передачи измерительных данных, инициируемой агентом или менеджером от агента. Агент может поддерживать генераются передачи измерительных данных, инициируемую одним из двух или обоими участниками обмена.
В обоих случаях Передачи измерительных данных, используются отчеты о событиях для обработки измерительных данных.
Сообщение о событии может протекать в трех стилях: переменный, фиксированный и групповой форматы. Рисунок 7 демонстрирует взаимосвязь между каждым из форматов сообщений.
![]() формата
Переменный формат отчета о событиях прямо определяет каждый сообщаемый атрибут, включая поле идентификации атрибута, длину значения и значение в сообщении. Данный подход обеспечивает гибкость во включении различных наборов атрибутов на отчет о событиях, но за счет расходов сообщения.
Фиксированный формат отчета о событиях оптимизирован, за счет определения формата сообщения в карте Attribute-Value-Map объекта в предыдущих сообщениях конфигурации до начала пересылки. Когда агент передает данные в фиксированном формате отчета о событиях, он должен сообщать дескриптор объекта и значения атрибута в порядке и размере, указанном в карте значений атрибута Attribute-Value-Map. Таким образом, предотвращается расход операции при отправке идентификации и длины атрибута в каждом отчете о событиях. По получении отчета о событиях в фиксированном формате, менеджер использует дескриптор объекта для извлечения карты Attribute-Value-Map, выданной ранее во время конфигурации, чтобы получить информацию о способе извлечения данных.
Групповой формат отчета о событиях оптимизирован дополнительно за счет определения формата сообщения, содержащего один и более объектов, в объекте сканера Handle-Attr-Val-Map в отдельном сообщении конфигурации до начала передачи. Когда агент передает данные в групповом фиксированном формате отчета о событиях, он должен сообщать дескриптор объекта сканера вместе со значениями атрибута объектов в порядке и размере, указанном в карте значений атрибута Handle-Attr-Val-Map. Таким образом, предотвращаются издержки операции при отправке дескрипторов объекта сканера, идентификации атрибута и длины данных в каждом отчете о событиях. По получении отчета о событиях в групповом формате, менеджер использует дескриптор объекта сканера для извлечения карты the Handle-Attr-Val-Map, выданной ранее во время конфигурации, чтобы получить информацию о способе извлечения данных.
Менеджер должен поддерживать переменный формат, фиксированный формат и групповой формат отчетов о событиях. Агент может поддерживать любой или все отчеты о событиях с переменным форматом, фиксированным форматом и групповым форматом. Менеджер определяет, какой из форматов может использовать агент, проверяя карты объектов Attribute-Value-Map, определенной в MDSConfiguration-Event от агента или проверяя атрибут Handle-Attr-Val-Map на объекты сканера, определенных в MDS-Configuration-Event.
7.4.6 Отчеты о событиях одного и нескольких лиц
Агенты, созданные для работы в среде, где данные могут собираться от нескольких лиц, могут использовать отчет о событиях для нескольких лиц, чтобы передавать все данные от всех лиц в одном событии. Там, где эта функция не требуется, агент может использовать отчет о событиях для одного лица для снижения расходов.
Менеджер должен поддерживать отчеты о событиях как для одного, так и нескольких лиц. Агент может поддерживать, как только один из этих вариантов, так и оба варианта отчета о событиях для одного и нескольких лиц. В A.11.5 описаны форматы для отчетов о событиях одного или нескольких лиц.
Агент может на выбор хранить небольшое количество измерений в локальной памяти, в то время как он не соединен с системой менеджера (т.е. временно хранимые измерения). Как только агент может установить соединение с менеджером, все ранее сохраненные измерения передаются менеджеру.
Примечание - Типичным примером временно хранимых измерений являются весы: новые измерения производятся редко. Весы не соединены с менеджером, и они отключаются после проведения измерения вместо того, чтобы ждать неопределенное время менеджера и потребления энергии.
Для поддержки временно хранимых измерений, система агента должна применять следующее поведение:
- только объекты с метрическим происхождением, не являющиеся RT-SAs (например, числовые объекты и объекты перечисления), поддерживаются как временно хранимые измерения;
- использование атрибутов временных отрезков (т.е. Date-and-Time, Relative-Time или HiRes-Relative-Time) требуется для временно хранимых измерений;
- агент не должен пересылать временно хранимые измерения, если известно, что временной отрезок не соблюдается (например, если временная база, используемая для отсчета временного отрезка значений, претерпела между измерениями изменения значительные для типа измерения), если только он не включает соответствующие настройки Date-and-Time-Adjustment в начале отчета о событии;
- временно хранимые измерения включены в любой из предписанных механизмов отчета о событии (инициируемые агентом или менеджером; групповой, фиксированный или переменный форматы; одного или нескольких лиц);
- после передачи временно хранимых измерений менеджеру, агент должен удалить хранимые измерения из локальной памяти. Агент должен убедиться, что измерения успешно переданы менеджеру при помощи подтвержденных отчетов о событиях;
- для ограничения количества данных, передаваемых данным механизмом, агент должен обеспечить не более 25 временно хранимыми измерениями в любом отчете о событиях. Если требуется хранение более 25 измерений, необходимо использовать механизм PM-блока для архивирования измерений.
В целом, ожидаемой топологией является процесс, при котором один или несколько агентов производят обмен информацией посредством двухточечного соединения с менеджером. Если менеджер хочет поддерживать множество агентов одновременно (например, используя пикосеть Bluetooth), то он должен иметь возможность обрабатывать множество индикаторов соединения и отдельные ассоциации от каждого из этих агентов.
Любой агент, поддерживающий несколько модальностей (специализаций устройств), может выбрать создание одного подключения и ассоциации с менеджером или создать несколько индикаций соединений и ассоциаций (например, один для каждой модальности) с менеджером. Однако если агент выбирает создание нескольких индикаций соединений и ассоциаций, экземпляры объектов в различных ассоциациях должны быть полностью независимыми, как если бы ассоциации были созданы различными устройствами. В качестве примера объект MDS для каждой индикации соединения и ассоциации должен действовать в качестве отдельных независимых агентов.
Коммуникационный профиль, определенный в настоящем стандарте учитывает специфические требования агентов и менеджеров персональных медицинских приборов, которые обычно используются в подвижной среде или доме человека. Следующие допущения приняты в отношении сервисов и свойств, которые должны быть предоставлены транспортным уровнем. Кроме того, также охвачен контекст системы за пределами этого коммуникационного профиля (то есть не персональные медицинские приборы/приборы для поддержания функциональности прикладного уровня) и его связь с допущениями транспортных уровней.
Настоящий стандарт предполагает, что транспортные технологии обладают широким спектром свойств, и в общих чертах рассматривает транспортные технологии для того, чтобы позволить использование и применение в исходном формате их сервисов. Если передача данных не программируема в исходном формате, для удовлетворения требуемых характеристик добавляется "промежуточное средство".
![]() Рисунок 8 - Контекст системы
Настоящий стандарт использует понятие "тип" для группировки и дифференциации сервисов, предлагаемых доступными транспортными технологиями, которые были профилированы для использования серией стандартов ИСО/ИИЭР 11073. В частности, серия стандартов ИСО/ИИЭР 11073 распознает следующие типы транспортных профилей:
- Тип 1. Транспортные профили, содержащие "надежные" и "лучшие из возможных" транспортные сервисы, в которых должен быть один или несколько виртуальных каналов "надежных" транспортных сервисов и ноль или более виртуальных каналов "лучших из возможных" транспортных сервисов;
- Тип 2. Транспортные профили, содержащие только однонаправленные транспортные сервисы;
- Тип 3. Транспортные профили, содержащие только "лучшие из возможных" транспортные сервисы, в которых должен быть один или несколько виртуальных каналов "лучших из возможных" транспортных сервисов.
Причина, по которой типы транспортных профилей являются значимыми, заключается в том, что различные транспортные сервисы, предлагаемые типами транспортных профилей, оказывают влияние на осуществление некоторых функций верхнего уровня. В частности, они оказывают влияние на осуществление подтвержденного этим стандартом сервисного механизма. Настоящий стандарт предназначен для использования только с транспортными профилями 1-го типа.
Более полное описание различных транспортных типов профиля и как они взаимодействуют с подтвержденными и неподтвержденными механизмами службы см. в приложении D.
8.3.1 Общие положения
В настоящем стандарте должен быть использован транспортный профиль 1-го типа.
В настоящем стандарте каждое устройство должно поддерживать основной виртуальный канал. Основной виртуальный канал должен являться надежным виртуальным каналом (то есть надежным транспортным сервисом) из транспортного профиля 1-го типа.
Основной виртуальный канал должен использоваться для следующих целей:
- все сообщения, относящиеся к процедуре ассоциации:
- aare, aarq, rlre, rlrq, abrt;
- все сообщения, относящиеся к утвержденному сервисному механизму:
- prst.roiv-cmip-confirmed-action, prst.roiv-cmip-confirmed-event-report, prst.roiv-cmip-get, prst.roiv-cmip-confirmed-set;
- prst.rors-cmip-confirmed-action, prst.rors-cmip-confirmed-event-report, prst.rors-cmip-get, prst.rors-cmip-confirmed-set;
- все сообщения, относящиеся к условиям сбоя, аварийным условиям:
- roer, rorj.
В настоящем стандарте каждое устройство может поддерживать один или несколько вторичных виртуальных каналов. Каждый вторичный виртуальный канал может являться либо надежным, либо лучшим из возможных из транспортного профиля 1-го типа.
Основной виртуальный канал или любой вторичный канал(ы) может быть использован для передачи сообщений, связанных с неподтвержденным сервисным механизмом.
- prst.roiv-cmip-action, prst.roiv-cmip-event-report, prst.roiv-cmip-set
Как правило, термин метаданные означает данные о данных. В контексте коммуникационных характеристик ИСО/ИИЭР 11073-20601, термин метаданные означает подтверждающую информацию или данные, относящиеся к пакету данных протокола прикладного уровня (APDU). Примеры включают следующее:
- специфический транспортно-технологический адрес для передачи данного пакета APDU данному агенту или менеджеру;
- надежность и/или скрытость, необходимая для данного пакета APDU;
- размер или длина данного пакета APDU.
Некоторые метаданные описывают коммуникационные характеристики, представленные как отдельное значение, которое охватывает широкий диапазон возможных значений. Что касается общих примеров метаданных, приведенных выше, некоторые конкретные примеры имеют следующий вид:
- APDU-metadata.address (для конечной точки USB) = 1 - 1023;
![]() Рисунок 9 - Общая модель коммуникации
- APDU-metadata.address (для сети IPv4) = 0.0.0.0 - 255.255.255.255;
- APDU-metadata.size = 1 - 64512.
Другие метаданные описывают коммуникационные характеристики, представленные как отдельное значение, но обладающие только несколькими дискретными, возможными значениями. Что касается общих примеров метаданных, приведенных выше, некоторые конкретные примеры имеют следующий вид:
- APDU-metadata.latency = (10ms | 100ms | 1sec | 10sec);
- APDU-metadata.reliability = (high | medium | low);
- APDU-metadata.bandwidth = (100 бит/с | 1 Кбит/с | 10 Кбит/с | 100 Кбит/с | 1 Мбит/с).
В последующих подразделах описываются общие характеристики (см. 8.3.2) и уникальные характеристики надежных (см. 8.3.3) лучших из возможных (см. 8.3.4) виртуальных каналов применительно к настоящему стандарту.
Ряд общих коммуникационных характеристик, применимых для надежных и лучших из возможных коммуникаций:
a) пакет данных APDU может быть обработан любым способом (например, часть за частью, как полученный APDU или полный APDU буферизированный в памяти), однако пакет данных APDU должен быть обработан таким образом, чтобы эффект от него был такой же как от атомной транзакции;
b) пакеты данных APDU могут быть сегментированы и собраны повторно во время передачи, или он может быть отправлен как единое целое;
c) пакеты данных APDU, отправляемые от агента к менеджеру, должны составлять не более 63 Кбайт (64 512). Особые специализации устройств или реализации могут оценить сообщения, переданные с целью определения конкретного размера реализации для приемного буфера менеджера, меньшего, чем максимальный размер пакета APDU, переданного от агента к менеджеру. Если менеджер получает больший по размеру пакет данных APDU, то он должен ответить, указав код ошибки (Roer) из протокола-нарушения;
d) пакеты данных APDU, отправляемые от менеджера к агенту, должны составлять не более 8 Кбайт (8192). Особые специализации устройств или реализации могут анализировать сообщения, которыми обмениваются с целью определения конкретного размера реализации для приемного буфера агента, меньшего, чем максимальный размер пакета APDU, передаваемый от менеджера к агенту. Если агент получает больший пакет данных APDU, то он должен ответить, указав код ошибки (Roer) из протокола-нарушения;
e) общая длина пакета данных APDU должна поступать на и из коммуникационных уровней как метаданные;
f) коммуникационные уровни должны указывать общую длину пакета данных APDU аналогичному коммуникационному уровню.
К коммуникационным технологиям/методам, которые должны рассматриваться как надежные, пригодные для использования оптимизированным протоколом обмена, относятся следующие характеристики:
a) пакеты данных APDU должны быть получены в том же порядке, в котором были отправлены;
b) пакеты данных APDU не должны содержать обнаруживаемых ошибок;
c) Пакеты данных APDU не должны копироваться;
d) Пакеты данных APDU не должны быть утеряны;
e) пакеты данных APDU, как правило, отправляются в срочном порядке, однако допустимы задержки в связи с повторными передачами;
f) коммуникационный уровень должен предоставлять механизм для указания прикладного уровня, при получении полного пакета APDU;
g) коммуникационный уровень должен предоставлять механизм для указания прикладного уровня, при установлении путей связи между агентом и менеджером;
h) коммуникационный уровень должен предоставлять механизм для указания прикладного уровня, когда соединение прекращается или прерывается;
i) коммуникационный уровень должен предоставлять механизм для указания прикладного уровня, если отправка APDU невозможна;
j) управление потоком между отправляющим и получающим приложением должно поддерживаться для полного пакета APDU. Нижние слои могут реализовать управление потоком для небольших подклассов APDU.
Если коммуникационные технологии не соответствуют критерию надежного канала коммуникации, согласно описанию выше, они именуются оптимизированным протоколом обмена как лучшие из возможных. Следующие характеристики типичны для канала лучшего из возможных:
a) пакет APDU не может быть доставлен в том порядке, в котором он был отправлен. Сам коммуникационный канал, независимо от работы передатчика персонального медицинского прибора, может нарушить порядок пакетов;
b) пакет APDU может быть утерян или скопирован;
c) пакеты APDU могут поступить в размере, который приводит к опустошению буфера-получателя.
8.4.1 Конечный автомат агента
На рисунке 10 представлен общий вид конечного автомато агента.
![]() Подробная таблица состояний агента описана в приложении E.2.
В таблице 19 дано описание каждого состояния.
Таблица 19
В таблице 20 дано описание каждого изменения состояния.
Таблица 20
8.4.2 Конечный автомат менеджера
Общий вид конечного автомата менеджера изображен на рисунке 11. Большинство состояний и переходов симметричны позициям, описанным для агента в таблице 19 и таблице 20. Основные различия заключаются в следующем:
- менеджер должен ждать в состоянии ожидания конфигурации как минимум TOconfig (время выполнения процедуры конфигурации) секунд перед получением запроса на разъединение ассоциации или сообщения о разрыве ассоциации;
- если менеджер не принимает конфигурацию, он должен послать ответ на конфигурацию с результатом - unsupported-config;
- если менеджер принимает конфигурацию, он должен отправить ответ на конфигурацию с указанием результата - accepted-config.
![]() Подробная таблица о состояниях менеджера приведена в приложении E.3.
В протоколе персонального медицинского прибора есть несколько разделов, где используются тайм-ауты. Имеются как тайм-ауты (периоды ожидания) для повтора, так и счетчики повторов. Чтобы облегчить управление документами в течение долгого периода времени и упростить электронный "поиск" для разных значений тайм-аута, конкретные численные значения были вынесены из содержания настоящего стандарта и заменены точными переменными тайм-аута. Численные значения тайм-аутов содержатся в таблице 21.
Таблица 21
8.5.1 Общие положения
В 8.5.2 - 8.5.5 описываются условия входа, нормальные процедуры, условия выхода, и условия ошибок, которые могут возникнуть в состоянии Соединен в диаграммах состояний.
Агент и менеджер переходят в состояние Соединен, когда транспортный уровень указывает на то, что соединение между агентом и менеджером установлено. И агент и менеджер получают индикацию соединения из собственных транспортных уровней (т.е. ни одной коммуникации на прикладном уровне в это время не происходит). В начальный момент перехода в состояние Соединен агент и менеджер запускаются из состояния Неассоциированный, подсостояния состояния Соединен.
8.5.3 Нормальные процедуры
Так как состояние Соединен имеет ряд подсостояний, фактические рабочие условия описаны как часть этих подсостояний.
8.5.4 Условия выхода
Агент и менеджер должен выйти из ассоциированного состояния, перейдя в состояние разъединения, отправив запрос на завершение ассоциации, и ожидая ответ на завершение ассоциации. Затем агент и менеджер должны закрыть активную ассоциацию и вернуться в неассоциированное состояние. Это обычные действия, перед тем, как агент или менеджер выйдет из состояния Соединен. Затем за закрытие соединения отвечает транспортный уровень.
Передача данных может отключиться неожиданно (например, беспроводная передача данных может быть перемещена из диапазона, или кабельное сопряжение может быть преждевременно удалено). В этих случаях, передача должна предупредить транспортный уровень о разъединении. Агент и менеджер должны нести ответственность за возвращение в состояние разъединения. Это требование распространяется на состояние соединения и все подсостояния.
8.6.1 Общие положения
В 8.6.2 - 8.6.5 описываются условия входа, нормальные процедуры, условия выхода, и условия ошибок, которые могут возникнуть для состояния не ассоциирован в диаграммах состояния.
Состояние не ассоциирован - это состояние по умолчанию, в которое входят всегда, когда агент или менеджер впервые уведомляет об установлении соединения. В это состояние также возвращаются каждый раз, когда агент или менеджер завершают или разрывают ассоциацию с партнером.
8.6.3 Нормальные процедуры
Обычно агент не делает ничего в данном состоянии. Менеджер ждет в данном состоянии, пока не получит сообщение с запросом на ассоциацию.
8.6.4 Условия выхода
Каждый раз, когда агент определяет, что он желает попытаться установить ассоциацию с менеджером, он переходит в состояние Ассоциирования. Менеджер переходит в данное состояние, после получения сообщения с запросом на ассоциацию.
При неассоциированном состоянии может возникнуть ряд ошибок. Реакцией на возникновение таких условий может быть либо игнорирование условия либо создание сообщения о разрыве ассоциации. См. таблицу E.1, состояние 2 (неассоциированное состояние) для получения дополнительной информации.
8.7.1 Общие положения
Ассоциирующая процедура позволяет агенту и менеджеру согласовать протокол общих данных и общий набор рабочих параметров.
8.7.2 Условия входа
И агент и менеджер должны оставаться в состоянии Не ассоциирован до тех пор, пока агент не определит, что ассоциация является желательной. На этом этапе агент должен перейти в состояние Ассоциации и отправить запрос на ассоциацию. Менеджер переходит в состояние Ассоциации после получения запроса на ассоциацию от агента.
8.7.3 Нормальные процедуры
Рисунки 12 и 13 изображают диаграмму последовательности для ассоциирующей процедуры между агентом и менеджером. На рисунке 12 показана ситуация, при которой менеджер уже знает конфигурацию агента в связи с предварительным соединением с ним, или в связи с тем, что агент имеет стандартную конфигурацию (т.е. стандартную конфигурацию, указанную в стандарте специализации). На рисунке 13 показана ситуация, при которой менеджер не знает конфигурацию агента и информирует его о том, что запрос на ассоциацию будет принят, но конфигурация неизвестна.
![]() (известная конфигурация)
![]() (неизвестная конфигурация)
8.7.3.1.1 Общие положения
Когда агент намерен создать ассоциацию, он должен начать с перехода в состояние Ассоциации и отправить сообщение с запросом ассоциации менеджеру. Определение AarqApdu (см. A.8) поясняет формат сообщения с запросом ассоциации. Пример запроса ассоциации см. в H.2.1.1.
Сообщение с запросом ассоциации содержит следующие пункты:
- версию используемого протокола ассоциации (assoc-version). Это поле позволяет агенту и менеджеру убедиться в том, что они используют одну и ту же версию протокола обмена;
- перечень протоколов передачи данных, которые поддерживает агент (data-proto-list). Агенту разрешено поддерживать один или несколько протоколов передачи данных для обмена информацией. Агент должен заказать перечень протоколов передачи данных, начиная с наиболее предпочтительного протокола, и заканчивая наименее предпочтительным протоколом.
Менеджер выбирает предпочтительный протокол и сообщает об этом агенту.
Чтобы разрешить выбор протокола передачи данных в ходе ассоциации, перечень data-proto-list содержит идентификатор, который обозначает, что протокол данных определяется одним стандартом из серии ИСО/ИИЭР 11073 или определяется производителем. Эти параметры описаны в двух следующих подразделах. Дополнительные коды доступны, но сохранены для будущих расширений.
8.7.3.1.2 Протокол обмена данными, определенный настоящим стандартом
Если агент устанавливает data-proto-id в A.8 до data-proto-id-20601, то он должен придерживаться абстрактных определений синтаксиса, содержащихся в настоящем стандарте для типов данных и обмена сообщениями. Кроме того, поле data-proto-info заполняется вместе со структурой PhdAssociationInformation, которая определяет следующую информацию:
- версия протокола обмена данными;
- конкретное правило(а) кодирования DataApdu, поддерживающиеся агентом. Агент должен установить один или несколько битов encoding-rules:
- агент должен всегда поддерживать правила MDER (правила кодирования медицинских приборов), т.е. бит MDER в поле encoding-rules должен устанавливаться агентом;
- агент может предложить другие правила кодирования, помимо MDER, менеджеру, установив другие биты в поле encoding-rules;
- версия использованной номенклатуры;
- поле, указывающее все функциональные блоки и дополнительные свойства, поддерживаемые агентом;
- тип системы (в данном случае агента);
- уникальный идентификатор System-Id (см. таблицу 2) агента. Формат EUI-64 используется для идентификации агента. Менеджер может использовать это поле для определения идентификации агента, с которым он осуществляет коммуникацию и, возможно, для реализации простой политики ограничения доступа;
- dev-config-id, обозначающий текущую конфигурацию агента, описан в разделе 7.4.3. Значение dev-config-id для стандартных конфигураций должно находиться между standard-config-start и standard-config-end, включительно. Для расширенных конфигураций, значение dev-config-id должно находиться между extended-config-start and extended-config-end включительно;
- data-req-mode-capab, который определяет режимы запроса данных, поддерживаемые агентом (см. 8.9.3.3.3);
- option-list, который содержит список дополнительных атрибутов агента, намеренного начать коммуникацию.
8.7.3.1.3 Протокол обмена данными, определенный производителем
Другие спецификации могут использовать первоначальный запрос на ассоциацию с целью договориться об использовании протоколов, определенных производителем. В этом случае агент устанавливает data-proto-id в A.8 до data-proto-id-external. Чтобы различать многие возможные протоколы, определенные изготовителем, агент использует информационную структуру ManufSpecAssociation, чтобы предоставить УУИд (универсально уникальный идентификатор), который обозначает конкретный протокол.
Реальное поведение протокола за пределами изначальной ассоциации находится вне сферы действия серии стандартов ИСО/ИИЭР 11073. УУИд должен быть сформирован в соответствии с ITU-T Запись. X.667 (сентябрь 2004).
После того как агент отправит сообщение с запросом ассоциации, он должен ждать получения сообщения с ответом на ассоциацию от менеджера или тайм-аута (см. 8.7.5 для получения информации по условиям тайм-аута).
Определение AareApdu (см. A.8) описывает формат сообщения с ответом на ассоциацию. Пример ответа на ассоциацию можно найти в H.2.1.2. Сообщение с ответом на ассоциацию содержит следующее:
- поле результата, представляющее исход процедуры объединения;
- версия общего протокола данных, выбранного менеджером, если поле результата эквивалентно accepted или accepted-unknown-config;
- одно и только одно правило кодирования DataApdu, выбранное менеджером, если поле результата эквивалентно accepted или accepted-unknown-config;
- менеджер должен всегда поддерживать правила MDER для обеспечения способности к взаимодействию;
- кроме того, менеджер может выбрать одно из других правил кодирования, помимо правил MDER, предложенных агентом.
Примечание - MDER всегда поддерживается как агентом, так и менеджером. Однако если агент предлагает дополнительные правила кодирования менеджеру, можно сделать вывод, что у агента была на то веская причина (т.е. разработка дополнительной поддержки правил кодирования не выполняется без веских причин продукта). Таким образом, если агент предлагает дополнительные правила кодирования помимо MDER, предполагается, что менеджер выполнит одно из дополнительных предложенных правил кодирования, если это возможно. Например, если агент предлагает MDER и правила уплотненного кодирования (PER), предполагается, что менеджер выполнит кодировку PER, если это возможно. Если агент предлагает MDER и правила кодирования XML (XER - Правила кодировки расширяемого языка разметки), предполагается, что менеджер выполнит правила кодирования XER, если это возможно. На случай, если агент предлагает MDER, PER и XER, этот стандарт не дает рекомендаций относительно выбора предпочтительного правила кодирования;
- версия номенклатуры, выбранная менеджером, если поле результата эквивалентно accepted или accepted-unknown-config;
- тип системы (в данном случае менеджера, так как сообщение посылается менеджером);
- уникальный идентификатор системы (см. таблицу 2) менеджера. EUI-64 используется для уникальной идентификации менеджера. Агент может использовать это поле для определения того, установлена ли связь с требуемым менеджером;
- поле dev-config-id должен выглядеть как manager-config-response в ответе;
- Data-req-mode-capab должен быть пустым в ответе;
- поле, указывающее общие функциональные единицы и дополнительные функции, которые выбираются менеджером, если поле результатов эквивалентно accepted или accepted-unknown-config.
Поле результата в сообщении с ответом на ассоциацию указывает результат запроса. Возможные исходы (см. AssociateResult в A.8) могут быть следующими:
- accepted означает, что ассоциация принимается и конфигурация известна. Агент должен перейти в рабочее состояние (см. 8.9 для получения подробной информации об эксплуатационных процедурах);
- accepted-unknown-config означает, что конфигурация принята, но агенту необходимо направить свою конфигурацию менеджеру. Когда агент получает ответ с сообщением о том, что конфигурация неизвестна, он должен перейти в состояние конфигурации и следовать процедурам, описанным в разделе 8.7.6 для передачи конфигурации;
- rejected-unsupported-assoc-version означает, что агент и менеджер не разделяют общую версию ассоциации;
- rejected-no-common-protocol означает, что менеджер отклоняет запрос на ассоциацию, потому что не найден единый протокол данных в перечне DataProtoList, разделенном между менеджером и агентом;
- rejected-no-common-parameter означает, что менеджер отклоняет запрос на ассоциацию, потому что менеджер и агент не имеют общего набора рабочих параметров в информации об ассоциации, специфичной для протокола (PhdAssociationInformation);
- rejected-unauthorized используется, когда менеджер определяет, что агент не авторизован для подключения. Способ принятия решения устанавливается поставщиком;
- rejected-transient используется, когда менеджер не может принять ассоциацию из-за переходных режимов, таких как ограниченность ресурсов;
- rejected-permanent означает, что менеджер не может общаться с агентом, но никакой дальнейшей информации касательно причины не доступно;
- rejected-unknown следует использовать с осторожностью и только тогда, когда вышеуказанные коды возврата не применяются.
При всех rejected-* условиях, агент должен перейти в неассоциированное состояние.
Когда менеджер получает запрос ассоциации, он должен сравнить параметры протокола и эксплуатационные параметры с собственными параметрами и определить, является ли агент совместимым с менеджером. Если соединение является двунаправленным, менеджер должен доложить о результатах этой оценки в поле результатов в ответе на ассоциацию.
Возможные причины отклонения перечислены в пункте 8.7.3.2. Если менеджер отклоняет ассоциацию, он должен перейти в неассоциированное состояние.
Если запрос не отклоняется менеджером, поле результата в сообщении с ответом на ассоциацию, исходящее от менеджера, указывает на то, понимает ли менеджер конфигурацию. Если менеджер признает dev-config-id в качестве известного стандартной специализации устройства или как предыдущую ассоциацию, менеджер высылает сообщение с ответом на ассоциацию с указанием "accepted" в поле результата и переходит в рабочее состояние.
Если менеджер не признает dev-config-id, менеджер высылает сообщение с ответом на ассоциацию с указанием accepted-unknown-config в поле результата и переходит в конфигурирующее состояние.
Когда менеджер принимает общий протокол, то в ответе на ассоциацию он должен вернуть предпочтительный общий протокол передачи данных и общий набор рабочих параметров, выбранных из списка, предоставленного в запросе на ассоциацию.
8.7.4 Условия выхода
Менеджер выходит после отправки ответа на ассоциацию. Агент выходит из ассоциирующего состояния после получения ответа на ассоциацию.
Агент должен ждать сообщения с ответом на ассоциацию в течение периода TOassoc (тайм-аут: процедура ассоциация). Если период TOassoc истекает, агент должен повторно передать сообщение с запросом ассоциации до RCassoc раз (счетчик повторов: процедура ассоциации) после первого тайм-аута, с периодом TOassoc между каждым последующим сообщением. Если после данной последовательности повторных попыток агент не может успешно получить любые сообщения с ответом на ассоциацию, то он направляет сообщение о разрыве ассоциации с менеджером и переходит обратно в неассоциированное состояние.
Если агент или менеджер получает сообщение о разрыве ассоциации, находясь в ассоциированном состоянии, он должен перейти в неассоциированное состояние.
Тестовой ассоциацией является ассоциация, созданная агентом и менеджером с целью обмена данными, которые предназначены для испытаний. Этот стандарт не определяет, что эти обмены не схожи с семантикой, ассоциированной с ними, а только с процессом, при котором устройства входят и выходят в тестовую ассоциацию. Отдельные специализации устройств могут определить стандартизированные ресурсы испытаний, идентификаторы конфигурации и процессы, которые могут быть использованы во время тестовой ассоциации. Тестовая ассоциация может быть использована в целях испытания, специфичных для производителя.
Поскольку этот стандарт не определяет семантику тестовой ассоциации, он также не определяет конкретные механизмы для того, чтобы тестовые данные управлялись должным образом. Тем не менее, очень важно, чтобы устройства обеспечивали защиту с целью убедиться в том, что данные испытаний не обрабатываются другими организациями как фактические данные измерений. В общем, только те элементы, которые понимают концепцию тестовой ассоциации, должны видеть данные измерений, созданные тестовой ассоциацией. Разработчикам следует предпринять следующие шаги:
- установить бит test-data или бит demo-data атрибута MeasurementStatus при создании моделированных данных измерений. Если атрибут MeasurementStatus не поддерживается, должны быть использованы альтернативные средства выделения таких данных;
- убедиться в том, что местные устройства индикации и хранилища данных измерений игнорируют данные испытаний (test-data) и демо-данные (demo-data), если они не могут должным образом выделить такие данные для пользователя и не могут обнаружить вход и выход из тестовой ассоциации. Местный компонент на агенте, не участвующий в протоколе ИИЭР 11073-20601 не может являться подходящим вариантом для получения данных измерения испытания;
- убедиться в том, что данные измерений, помещенные в хранилище PM или другую постоянную структуру хранилища, никогда не выводятся за пределы тестовой ассоциации. Для данной цели может быть использована маркировка и/или очистка постоянной памяти;
- убедиться в том, что устройства, которые отображают или сохраняют данные испытания или демо-данные должным образом обновлены, когда такие события, как отключение, вызывают необходимость завершения тестовой ассоциации;
- для того чтобы тестовая ассоциация была сформирована, менеджер и агент должны поддерживать тестовые ассоциации, и оба должны быть готовы вступить в тестовую ассоциацию в заданный момент времени. Трехэтапный протокол используется для однозначного вступления в тестовую ассоциацию.
На первом этапе агент передает менеджеру два бита информации в поле fun-units структуры PhdAssociationInformation. Бит fun-unit-createtestassociation указывает, что агент имеет возможности для испытаний, которые можно использовать в тестовой ассоциации. Бит fun-unit-createtestassociation используется агентом в качестве запроса менеджеру на установку тестовой ассоциации. Агент не должен устанавливать бит fun-unit-createtestassociation, если он также не установил бит fun-unit-havetestcap. Если агент вводит бит fun-unit-havetestcap в структуру PhdAssociationInformation, он не должен завершать ассоциацию вследствие получения ответа с установленным битом fun-unit-createtestassociation. Это означает, что если агент устанавливает бит fun-unit-havetestcap и предлагает более одной конфигурации, в которых определены стандартизированные возможности испытания, агент должен быть готов вступить в тестовую ассоциацию, используя одну из этих конфигураций.
На втором этапе протокола менеджер обратно сигнализирует агенту о своем намерении установить тестовую ассоциацию. Менеджер передает эту информацию агенту через бит fun-unit-createtestassociation. Бит устанавливается менеджером для того, чтобы указать, что он вступил в тестовую ассоциацию. Менеджер должен установить этот бит, только в случае если fun-unit-havetestcap установлен в запросе от агента. В соответствии с данным стандартом менеджер не обязан входить в тестовую ассоциацию даже по просьбе агента. Агент должен игнорировать бит fun-unit-havetestcap в ответе на ассоциацию.
Заключительный шаг протокола тестовой ассоциации включает в себя решение агента о продолжении тестовой ассоциации или ее завершении. Агент не вступает в состояние тестовой ассоциации, если менеджер не установил бит fun-unit-createtestassociation. Тестовая ассоциация завершается, когда машина состояний ассоциации входит в неассоциированное состояние.
8.8.1 Общие положения
Конфигурирующее состояние возникает, когда агенту необходимо передать информацию о конфигурации менеджеру.
8.8.2 Условия входа
Сообщение с ответом на ассоциацию с результатом accepted-unknown-config должны инициировать агента войти в конфигурирующее состояние и отправить его конфигурацию менеджеру. Менеджер входит в конфигурирующее состояние сразу же после отправки ответа на ассоциацию с результатом accepted-unknown-config.
Обратите внимание на то, что часть конфигурации также является присваиванием значения атрибута дескриптора экземпляру объекта. Если менеджер узнает конфигурацию агента, он также узнает присвоенные значения атрибута дескриптора. Это означает, что стандартная конфигурация, например, конфигурация, определенная в специализации устройства ИСО/ИИЭР 11073-104zz, определяет фиксированные значения для атрибутов дескриптора.
8.8.3 Нормальные процедуры
На рисунке 14 показана схема последовательности для процедуры конфигурации. Во время процедуры конфигурации агент передает информацию о конфигурации всех объектов, которые он поддерживает, за исключением объекта MDS, а также все статические атрибуты в объектах. Агенты, как правило, имеют высокий уровень статичности конфигурации, таким образом, передача всех статических частей во время разовой фазы конфигурирования уменьшает общий коммуникационный трафик. Новые типы измерений не добавляются динамически, многие атрибуты не изменяются, а наборы переданных атрибутов объекта часто остаются прежними. Реконфигурация требуется только при изменении агента (например, как часть начальной процедуры установки, где специфические возможности измерения могут быть конфигурированы).
![]() Агент выполняет процедуру конфигурации с помощью сообщения Подтвержденный Запрос События с событием MDC_NOTI_CONFIG для того, чтобы отправить свою конфигурацию менеджеру. Сообщение - уведомление о конфигурации указывает на:
- все объекты, поддерживаемые агентом, за исключением объекта системы MDS, и
- набор статических атрибутов для каждого объекта.
Атрибуты включают идентификацию номенклатуры классов объекта (см. 6.3.4.2, 6.3.5.2 и 6.3.6.2), физиологический идентификатор (код номенклатуры), идентификатор единицы/размера (код номенклатуры), дополнительно, строки для маркировки, а также любые другие статические атрибуты, которые могут быть полезными. Эта информация рассматривает плоское (неиерархическое) и статическое дерево состава агента. Объект системы MDS исключается из конфигурации, так как большая часть информации является динамической или специфичной для производителя. Отдельная команда Get MDS Object (Получение объекта системы MDS) побуждает механизм загружать данную информацию (см. 6.3.2.6.1).
Для объектов, о которых сообщается на тех же атрибутах каждый раз, рекомендуется отчет о событии фиксированного формата (см. 7.4.5), и агент должен отправить карту Attribute-Value-Map, описывающую структуру сообщения. Касательно объектов сканера, которые используют отчеты о событиях группированного формата, агент направляет карту andle-Attr-Val-Map с описанием структуры.
Если набор переданных атрибутов объекта не является фиксированным, рекомендуется отчет о событии переменного формата. Этот формат позволяет сообщать атрибуты конфигурации как часть обновления значений. В этом случае Attribute-Value-Map не предоставляется в отчете о событии конфигурации или предоставляется как пустой список.
Агент должен использовать сообщение данных "Remote Operation Invoke | Confirmed Event Report" (см. A.10.3 для начального определения EventReportArgumentSimple) с типом события MDC_NOTI_CONFIG при передаче своей конфигурации (см. ConfigReport в A.11.5 для остальной части структуры). Менеджер должен ответить сообщением "Remote Operation Response | Confirmed Event Report" (см. A.10.3 для определения EventReportResultSimple) с указанием типа события MDC_NOTI_CONFIG, внесенного в структуру ConfigReportRsp. См. H.2.2 для получения примера запроса события конфигурации, отправленного агентом, за которым следует пример ответа от менеджера.
Агенты могут поддерживать более одной конфигурации. В этом случае агент должен послать каждую из имеющихся конфигураций, начиная с предпочтительной конфигурации. Если менеджер принимает конфигурацию, он отвечает сообщением accepted-config, затем менеджер и агент переходят в рабочее состояние. Если менеджер не принимает конфигурацию, то он должен отправить ответ unsupported-config. По получении ответа unsupported-config агент отправляет следующую конфигурацию. Этот процесс повторяется до тех пор, пока агент не попытается отправить все конфигурации. Затем он должен отправить сообщение о выпуске ассоциации с кодом причины no-more-configurations, с целью указать, что он не может работать с менеджером.
Агент, который соответствует одному или нескольким специализациям устройств, которые определяют стандартные конфигурации (то есть специализации ИСО/ИИЭР 11073-104zz) должен поддерживать одну или несколько стандартных конфигураций и может поддерживать одну или несколько расширенных конфигураций. Для совместимости этот агент направляет поддерживаемые стандартные конфигурации как запасные, если расширенные конфигурации не поддерживаются.
Если агент соответствует стандартной конфигурации, то он должен использовать dev-config-id, как определено в конкретной специализации устройства ИСО/ИИЭР 11073-104zz. Эти значения dev-config-id стандартной конфигурации назначаются в диапазоне между standard-config-start и standard-config-end включительно. Когда агент предоставляет dev-config-id, соответствующий стандартной конфигурации, сообщение о конфигурации не должно содержать информацию о конфигурации и тип события MDC_NOTI_CONFIG может быть отправлен со стандартным идентификатором конфигурации и пустым списком ConfigObjectList. Если менеджер не узнает стандартную конфигурацию (например, менеджер был выпущен перед тем, как была выпущена специализации устройства), то он должен отправить ответ standard-config-unknown. Агент может повторить конфигурацию для стандартного устройства, отправив полную информацию о конфигурации.
Агент, имеющий нестандартную конфигурацию, должен присвоить уникальный идентификатор своей конфигурации путем создания значения для dev-config-id в диапазоне между extended-config-start и extended-config-end, включительно.
Агент может использовать то же значение для dev-config-id в последующих запросах на ассоциацию с менеджером, чтобы обозначить ту же конфигурацию устройства. Выбранное значение dev-config-id должно быть сообщено в атрибуте Dev-Configuration-Id объекта MDS.
Если агент изменяет свою конфигурацию так, что больше не может поддерживать старую, или определяет, что новая конфигурация должна использоваться как предпочтительная, он должен закрыть любую существующую ассоциацию, отправив сообщение о выпуске ассоциации с указанием причины изменения конфигурации (configuration-changed). Если новая конфигурация является новой расширенной конфигурацией, агент должен назначить новый идентификатор конфигурации. В следующий раз, когда агент ассоциируется, он совещается с менеджером путем пошаговой отладки конфигурации в порядке приоритетности, как описано выше.
8.8.4 Условия выхода
Когда менеджер принимает предпочтительную конфигурацию, он должен отправить ответ accepted-config агенту и перейти в рабочее состояние. Если менеджер получает запрос на выпуск ассоциации с указанием причины no-more-configurations, чтобы указать, что агент не имеет следующих конфигураций, менеджер должен перейти в неассоциированное состояние.
Когда агент получает ответ accepted-config от менеджера, он должен перейти в рабочее состояние. Если агент получает ответ от менеджера unsupported-config, он должен посылать следующую конфигурацию менеджеру до тех пор, пока не останется больше конфигураций. Тогда он должен послать сообщение с запросом на выпуск ассоциации с указанием причины no-more-configurations и войти в неассоциированное состояние.
Агент должен ожидать получения сообщения "Remote Operation Invoke | Confirmed Event Report" MDC_NOTI_CONFIG в течение периода TOconfig (время выполнения процедуры конфигурации). Если период TOconfig истекает, агент направляет сообщение о разрыве ассоциации менеджеру и переходит обратно в неассоциированное состояние.
Менеджер должен ждать минимум TOconfig секунд в состоянии ожидания конфигурации для получения информации о конфигурации, перед отправкой сообщения о разрыве ассоциации и переходом обратно в неассоциированное состояние.
Если агент или менеджер получает или посылает сообщение о разрыве ассоциации в любое время, он должен перейти в неассоциированное состояние.
8.9.1 Общие положения
Передача данных о текущем состоянии и информации о статусе агента происходит во время процедуры Выполнения.
8.9.2 Условия входа
Агент и менеджер входят в рабочее состояние, когда конфигурация агента уже известна менеджеру или после того, как агент передал приемлемую конфигурацию менеджеру.
8.9.3 Нормальные процедуры
8.9.3.1 Общие положения
В 8.9.3.2 - 8.9.3.4 описываются процедуры, которые могут возникнуть при реализации процедуры Выполнения.
В любое время в рабочем и ассоциированном состоянии менеджер может запросить атрибуты объекта системы MDS агента, отправив сообщение с данными, по команде "Remote Operation Invoke | Get" и полученное значение дескриптора 0. Агент должен сообщить менеджеру о введении им атрибута объекта системы MDS, используя сообщение данных с ответом "Remote Operation Response | Get". См. H.2.3 для получения примера использования данного набора сообщений. Агенты должны поддерживать команду Get, которая запрашивает все атрибуты (т.е. список attribute-id-list пуст). Агенты могут поддерживать извлечение конкретного перечня идентификаторов атрибута.
На рисунке 15 показана схема последовательности запроса атрибутов объекта системы MDS менеджером от агента.
![]() объекта системы MDS
8.9.3.3 Передача данных измерений
8.9.3.3.1 Общие положения
Передача данных измерений может быть инициирована как агентом, так и менеджером, как указано в пункте 7.4.4. Передача, инициированная агентом, как правило, ожидается от агентов, которые передают небольшое количество редкой эпизодической информации или требуют минимальной пропускной способности. Агентам с большими объемами данных, частыми передачами данных или потоковыми данными следует использовать передачу, инициированную менеджером. Передача, инициированная менеджером, является более предпочтительной во всех случаях, так как этот подход предоставляет механизм контроля потока данных. Обратите внимание на то, что получение запроса на передачу данных измерений не является командой к тому, чтобы агент выполнил измерение, а к тому, что он должен передать любые доступные данные измерений.
В каждом случае, за исключением отдельного режима ответа, передача данных измерений осуществляется с использованием отчета о событиях, подтвержденного или неподтвержденного по выбору агента.
Все варианты двух методов, подробно описаны в пунктах 8.9.3.3.2 - 8.9.3.3.8.
Когда агент поддерживает передачу, инициированную агентом, он должен указать, что поддерживает через структуру DataReqModeCapab или иметь один или несколько экземпляров объекта сканера в конфигурации агента.
Агент
Объекты сканера должны начинаться с атрибута рабочего состояния, установленного для блокировки на агентах с двунаправленной связью, пока менеджер не разблокирует их. Менеджер должен установить состояние объектов сканера для их разблокировки, когда он хочет получить данные.
Для передачи данных измерений, инициированной агентом, поле data-req-id в отчете сканера (MDC_NOTI_SCAN_REPORT_*) должно быть установлено на data-req-id-agent-initiated.
Менеджер может остановить передачу данных измерений, инициированную агентом от агента, отправив запрос на выпуск ассоциации или сообщение о разрыве ассоциации агенту для того, чтобы прекратить связь. Если агент использует объекты сканера, менеджер может заблокировать сканер с помощью сервиса SET на атрибуте состояния Выполнения.
![]() Рисунок 16 - Передача данных измерений, инициированная
агентом
Когда агент поддерживает передачу, инициированную менеджером, он должен указать, какие функции он поддерживает, используя структуру DataReqModeCapab. Если агент не предоставляет DataReqModeCapab, менеджер должен допускать, что ни одно из свойств не поддерживается агентом.
При передаче данных измерений, инициированной менеджером, менеджер использует сервис ACTION (см. 7.3), предоставленный агентом, с целью запросить передачу данных измерений у агента. Когда менеджер намерен сделать это, он должен послать подтвержденный запрос DataApduActionArgumentSimple с типом действия MDC_ACT_DATA_REQUEST, за которым следует информация DataRequest. Этот запрос данных может являться запросом на начало или запросом на остановку, в соответствии с указанием бита data-req-start-stop режима data-req-mode (см. A.11.5) или запросом на продолжение в соответствии с указанием бита data-req-continuation.
Для запроса на начало могут использоваться три режима: одиночный ответ (data-req-mode-single-rsp), период времени (data-req-mode-time-period), и без ограничения по времени (data-req-mode-time-no-limit). В зависимости от режима запроса на начало агент может отправить один или несколько отчетов о событиях менеджеру. Когда менеджер запускает режим передачи данных, он предоставляет идентификатор data-req-id, который должен использоваться агентом во всех отчетах событий. Если, в то время как режим передачи данных запущен, приходит новый запрос на начало с тем же data-req-id, этот запрос будет считаться приоритетным, а новый инициирован. Агент рассматривает новый запрос на начало, как если бы это была остановка с последующим началом. Режимы одиночного ответа и периода времени имеют четко определенные конечные точки, после чего ресурсы, поддерживающие эти запросы, могут быть выпущены. Запрос без ограничения по времени не имеет четко определенной конечной точки. Менеджер должен выпустить запрос на остановку, если больше не заинтересован в потоке измерения, в частности для запроса без ограничения по времени, для того чтобы высвободить ресурсы на агенте.
Для каждого из этих режимов может выбираться один из трех различных вариантов для сферы действия объекта, к которому относится запрос на передачу данных: все данные, имеющиеся у агента (data-req-scope-all), данные, имеющиеся у агента в соответствии с конкретным классом объекта (data-req-scope-class), и данные, имеющиеся у агента в соответствии с конкретными объектами, определенными их дескрипторами (data-req-scope-handle).
При использовании data-req-scope-all агент должен рассмотреть все объекты, за исключением объекта системы MDS, при определении содержания каждого отчета о событии.
При использовании data-req-scope-class менеджер должен использовать data-req-class с целью определения класса объектов для создания отчета. При формировании отчетов о событиях агент должен рассматривать только те объекты, что описаны данным классом.
Идентификаторы разрешенного класса включают MDC_MOC_VMO_METRIC_NU, MDC_MOC_VMO_METRIC_SA_RT и MDC_MOC_VMO_METRIC_ENUM.
Когда data-req-scope-handle отправлен, менеджер должен предоставить список дескрипторов в data-req-obj-handle-list. Агент должен рассматривать только объекты, описанные действительными дескрипторами в списке дескрипторов при создании отчета о событиях. В данном контексте термин "действительный" относится ко всем дескрипторам, ассоциированным с метрически-производными объектами (например, числовые, PT-SA (матрица отсчета часов реального времени) или перечисления) поддерживаемыми агентом.
Запрос на остановку может быть использован менеджером с целью завершить передачу данных измерения периода времени или без ограничения по времени, начатую ранее.
При использовании установленного по времени режима, если менеджер хочет продлить время, которое предоставлено агенту для передачи данных, менеджер должен установить бит data-req-continuation в режиме и установить data-req-time, до значения количества времени, отведенного агенту для непрерывной передачи.
Поле data-req-id в запросе данных используется для дифференциации ответов из нескольких запросов данных того же агента (если агент позволяет несколько одновременных запросов данных). Менеджер должен установить значение поля data-req-id на значение в диапазоне от data-req-id-manager-initiated-min до data-req-id-managerinitiated-max, включительно. Агент должен использовать то же значение data-req-id во всех ассоциированных отчетах о событиях.
Следует отметить, что менеджер может установить значение поля данных data-req-id на любое значение в пределах допустимого диапазона. Тогда агент не будет опираться на поле data-req-id для того, чтобы вывести, например, порядок, в котором различные запросы данных были созданы менеджером.
Потоковые агенты должны использовать передачу данных измерений, инициированную менеджером (или объекты сканера) для того, чтобы позволить менеджеру контролировать то, как он принимает данные. Менеджеры должны разблокировать потоковых агентов, как можно раньше, чтобы информация агента стала легко доступной.
Три режима передачи данных измерений менеджера, инициированной менеджером, описаны в пунктах 8.9.3.3.4 - 8.9.3.3.6.
Режим одиночного ответа позволяет менеджеру запрашивать данные у агента и получать их в ответном сообщении (см. рисунок 17). Не существует требований к тому, чтобы агент собирал какие-либо данные (например, надувка манжетки для измерения кровяного давления) для составления ответа. Если агент не имеет доступных данных, он возвращает пустой список данных. Если агент имеет данные и статус результата - data-req-result-no-error, он должен послать сообщение DataResponse, которое содержит статус результата запроса (DataReqResult), а также данные измерений (ScanReportInfo*). Это ответное сообщение должно закрыть доступ к данным измерений.
![]() менеджером (data-req-mode-single-rsp)
Режим одиночного ответа не позволяет агенту подтверждать то, что менеджер получает данные измерений. Там, где необходимо такое подтверждение, используется срочная команда со значением тайм-аута от 0 (см. 8.9.3.3.5).
Режим периода времени используется менеджером для того, чтобы разблокировать агента для передачи данных, которые он собирает на протяжении указанного периода времени (см. рисунок 18). Когда агент получает начальное сообщение DataRequest от менеджера, агент должен отправить сообщение DataResponse, подтверждающее статус результата запроса (DataReqResult) без передачи каких-либо данных измерений в ответном сообщении. Если DataReqResult является data-req-result-no-error, каждый раз, когда данные становятся доступными, агент должен использовать сервис EVENT REPORT (Отчет о событиях) для оправки отчета(ов) о событии, содержащий данные измерений менеджеру, прежде чем истечет период времени, указанный в запросе данных, он получает запрос от менеджера на остановку или связь между агентом и менеджером прекращается. Агент определяет, использовать ли сообщение с подтвержденным или неподтвержденным отчетом о событии для передачи данных.
![]() менеджером (data-req-mode-time-period)
Если менеджер хочет продлить период времени, он должен перейти в data-req-id, установить data-req-continuation в режиме, и установить data-req-time, до такого значения времени, чтобы агент мог продолжить передачу данных. Все остальные параметры в DataRequest должны игнорироваться, и должны использоваться настройки исходной команды начала. Агент должен применять каждый новый период времени, измеренный с момента принятия команды. Если команда на продолжение получена для data-req-id, который не функционирует в заданном режиме, агент должен ответить data-req-result-continuation-not-supported. Если команда на продолжение получена для несуществующего data-req-id, агент должен ответить data-req-result-invalid-req-id. Например, если время истекает до приема команды продолжения, data-req-id останавливается и удаляется.
В режиме установленного периода времени, если data-req-time установлен на 0, агент должен подтвердить запрос. В случае подтверждения немедленно начните передачу любых данных, доступных в настоящее время в отчетах событий, а затем остановите. В отличие от режима одиночного ответа (см. 8.9.3.3.4), режим установленного периода времени позволяет агенту использовать сообщения с подтвержденными или неподтвержденными отчетами о событиях. Например, агент может использовать подтвержденный отчет о событии, чтобы убедиться, что данные были получены менеджером до их удаления из локального кэша.
При получении запроса на остановку передачи данных для разблокированного enabled data-req-id, агент должен прекратить отправку отчетов о событии для data-req-id immediately.
Поле data-req-id в этих отчетах о событии используется менеджером для связи этих данных измерений с соответствующим запросом данных.
Режим без ограничения времени должен использоваться для того, чтобы дать команду агенту отправлять отчеты о событиях постоянно до тех пор, пока не будет получена команда с запросом на остановку или ассоциация между агентом и менеджером не прекратится (см. рисунок 19).
![]() менеджером (data-req-mode-time-no-limit)
8.9.3.3.7 Управление номерами отчетов о сканировании
Запрос на передачу данных, в котором установлен бит data-req-start-stop, образует новый поток одного или нескольких измерительных наблюдений от агента к менеджеру в контексте системы MDS. Когда поток системы MDS образован, агент создает новый экземпляр счетчика scan-report-no для этого потока. Для каждого потока должен иметься один экземпляр счетчика scan-report-no, как дифференцированного с помощью data-req-id. Этот счетчик должен начинаться с 0 и увеличивается на 1 для каждого отчета события, отправленного на поток, увеличенного до 0. Если агент получает запрос на передачу данных, который содержит набор битов data-req-start-stop и значение data-req-id, которое уже используется в потоке системы MDS, агент не может сбросить счетчик scan-report-no идентифицированного потока до 0. Если агент получает запрос на передачу данных, который содержит набор битов data-req-continuation, scan-report-no должен продолжать подсчет без сброса.
Режим одиночного ответа, инициированный менеджером (data-req-mode-single-rsp), сформированный от передачи данных измерения, должен привести к ответу, который содержит 0 в поле scan-report-no структуры ScanReportInfo*. Это происходит, потому что новый поток создается при каждом запросе data-req-mode-single-rsp и заканчивается при отправке запроса.
Передача данных, инициированная агентом от объектов системы MDS или сканера с помощью контраста, образует поток, который заканчивается только при разрыве ассоциации. Таким образом, для передачи данных, инициированной агентом, scan-report-no начинается с 0, но не может быть сброшен менеджером в рамках ассоциации. Установка атрибута сканера Operational-State для заблокированной остановленной передачи отчетов о событиях, т.е. внутреннее наблюдение метрических объектов, останавливается и возобновляется после установки атрибута Operational-State для разблокировки. Scan-report-no в этом случае продолжает отсчет с того момента, с которого он был остановлен.
Агент может как инициировать, так и получать запросы на потоки, которые ассоциируют data-req-ids с метрическими объектами через контекст системы MDS. Когда метрические объекты, ассоциированные с несколькими потоками, образуют данные измерений, наблюдения данных на каждом из потоков должно быть занесено в отчет.
Агент должен сообщить максимальное количество совпадающих потоков, инициированных менеджером, которые поддерживаются в data-req-init-manager-count в процессе ассоциации. Менеджер должен ограничить количество совпадающих потоков, инициированных менеджером, которые он запрашивает, для того, чтобы значение, сообщенное агентом, не было превышено. Если агент не может установить новый поток, инициированный менеджером из-за истощения ресурсов, он должен установить data-req-result до значения data-req-result-init-manager-overflow в ответном сообщении.
8.9.3.4.1 Общие положения
Когда агент вводит один или несколько объектов хранения PM, агент сообщает о существовании объекта хранения PM на этапе конфигурации. Менеджер использует эту информацию для запроса объекта(ов) хранения PM-агента. Взаимодействие между менеджером и агентом при извлечении информации из PM-блока описано в пункте 8.9.3.4.2.
a) Извлечение атрибутов PM-блока. Когда агент и менеджер находятся в рабочем состоянии, менеджер может проверить конфигурацию, согласованную с агентом, чтобы определить количество объектов хранения PM в агенте. Менеджер может запрашивать каждый PM-блок, чтобы определить количество сегментов PM, которые существуют в PM-блоке. На рисунке 20 показана схема последовательности этой процедуры. Менеджер отправляет команду Get (Получение) агенту с запросом о предоставлении информации атрибута из конкретного PM-блока. Менеджер использует номер дескриптора для создания ссылки на нужное хранилище PM. Менеджер должен оставить список attribute-id-list пустым для отправки запроса на возвращение всех атрибутов. Агент отправляет в ответе значения запрашиваемых атрибутов. Менеджер может изучить атрибуты, чтобы узнать конфигурацию хранилища. Например, PM-Store-Capab описывает возможности хранилища, и Number-Of-Segments определяет, сколько сегментов присутствуют в хранилище. См. таблицу 9 для получения полного списка атрибутов и их определений.
![]() Если агент поддерживает несколько экземпляров объектов PM-блока, запрос Get требуется для каждого PM-блока.
b) Извлечение информации сегмента PM. Менеджер извлекает информацию о сегментах в PM-блоке, отправив команду ACTION (Действие). Команда Get-Segment-Info для конкретного PM-блока (см. рисунок 21) с запросом вернуть информацию из всех сегментов, из конкретного списка сегментов, или из любого сегмента в пределах заданного интервала времени. Агент должен поддерживать первые два критерия отбора и может поддерживать предел времени критериев отбора. Менеджер имеет возможность определять, обеспечивает ли агент поддержку путем проверки inspecting pmsc-abs-time-select в атрибуте информации PM-Store-Capab PM-блока, извлеченном ранее.
![]() Агент отвечает на команду ACTION.Get-Segment-Info со списком номеров сегментов, за которым следует полный список атрибутов для каждого из сегментов.
c) Перенос содержимого сегмента PM. Менеджер получает конкретные сегменты PM с помощью метода Trig-Segm-Data-Xfer ACTION для того, чтобы начать передачу данных (см. рисунок 22). Менеджер должен передавать информацию о дескрипторе PM-блока для получения доступа и номера экземпляра сегмента, подлежащего передаче.
![]() Агент должен решить, может ли запрос быть выполнен. Он проверяет действующий номер сегмента, доступные данные о сегменте (то есть они могут быть в процессе обновления), или любые другие условия возникновения ошибок. Если возникает ошибка, агент должен сообщить соответствующий код ошибки в ответе и игнорировать запрос на передачу данных. В противном случае агент должен направить код ответа tsxr-successful, чтобы указать, что он получил запрос, и он может быть выполнен.
Менеджер может отправить сообщение о вызове Trig-Segm-Data-Xfer ACTION в любое время. Однако если менеджер отправляет сообщение о вызове Trig-Segm-Data-Xfer ACTION, в то время как сообщение о вызове Clear-Segments ACTION находится в ожидании, агент может создать ответное сообщение Clear-Segments ACTION с кодом возврата trig-segm-xfer-rsp = tsxr-fail-clearin-process. Примером того, когда этот код возврата может быть отправлен, является ситуация, при которой носитель данных для PM-блока является отдельным флеш-накопителем. Если данные флеш-накопителя стираются, это может привести к потере доступа ко всему накопителю.
Агент должен направить один подтвержденный отчет событий Segment-Data-Event, пока все записи в сегменте PM не будут отправлены менеджеру или передача не будет прервана битом sevtsta-agent-abort или битом sevtsta-manager-abort, описанным далее. Агент заполняет структуру SegmentDataEvent с информацией о сегменте, подлежащем передаче. Агент сообщает менеджеру дескриптор PM-блока и использует SegmDataEventDescr для описания номера сегмента, подлежащего передаче, номер первой записи в поле segm-data-event-entries, количество записей в сообщении, и информацию о текущем состоянии. Агент всегда должен устанавливать любые биты sevtsta-manager-* на 0. Если сообщение содержит первую запись и/или последнюю запись записей данных, то агент должен установить бит sevtsta-first-entry и/или sevtsta-last-entry, соответственно. Если агент намерен прервать передачу, он должен установить бит sevtsta-agent-abort на 1.
При передаче сегмента агент использует поле segm-data-event-entries для отправки всех записей. Агент должен начать с первой собранной записи, за которой будет следовать следующая запись, и так далее. Для оптимизации передачи агент должен упаковать столько записей в структуру событий сколько возможно. Каждая запись должна быть отформатирована в соответствии со структурой, определенной в PM-Segment-Entry-Map сегмента PM.
Когда менеджер получает отчет о событии, то он должен ответить SegmentDataResult, который должен содержать тот же дескриптор блока (store-handle), номер экземпляра сегмента (segm-instance), segm-evt-entry-index и segm-evt-entry-count. В segm-evt-status менеджер должен установить бит sevtsta-manager-confirm.
Если агент устанавливает бит sevtsta-agent-abort, то менеджер должен подтвердить отключение агента, установив тот же бит. Если менеджер хочет прервать обмен данными, он должен установить бит sevtsta-manager-abort.
d) Очистка сегмента PM. Менеджер может очистить сегмент PM в любое время и использует последовательность, показанную на рисунке 23. Обычное время для очистки сегмента наступает непосредственно после передачи всего сегмента менеджером. Менеджер узнает это условие, когда получает SegmEvtStatus с набором битов sevtsta-last-entry.
![]() Всякий раз, когда менеджер решает очистить сегмент(ы), он посылает команду ACTION агенту с методом Clear-Segments и критериями отбора всех сегментов, конкретным списком сегментов, или любым сегментом в заданном диапазоне времени. Агент должен поддерживать очистку всех сегментов, очистку конкретного списка сегментов (pmsc-clear-segm-by-list-sup) и может поддерживать предел времени критериев отбора (pmsc-clear-segm-by-time-sup). Менеджер определяет, какие возможности поддерживаются путем проверки битов атрибута PM-Store-Capab.
Когда агент получает команду Clear-Segment, он может удалить все присутствующие записи и оставить сегмент, или может удалить сегмент. Менеджер определяет, какие возможности поддерживаются путем проверки бита pmsc-clear-segm-remove атрибута PM-Store-Capab.
Нормальный выход из состояния Выполнения происходит тогда, когда агент или менеджер решает завершить ассоциацию. В этом случае агент или менеджер должен перейти в состояние Завершение ассоциации и следовать процедуре разъединения (см. 8.10).
Когда агент или менеджер получает запрос на завершение ассоциации, он должен отправить ответ на завершение ассоциации и перейти в неассоциированное состояние.
Агент, выходящий из состояния Выполнения, правильным или неправильным способом, должен остановить все механизмы передачи данных, включая передачу данных измерений, инициированную агентом или менеджером, передачу сегмента PM, и передачу данных со сканера.
8.9.5 Состояния ошибки
8.9.5.1 Общие положения
Как и в 8.9.4, агент, выходящий из состояния Выполнения, правильным или неправильным способом, должен остановить все механизмы передачи данных, включая запущенные агентом или менеджером передачу данных измерения, передачу PM-сегмента или передачу данных со сканера.
Если в любой момент времени происходит тайм-аут транспортного уровня от бесперебойного транспортного уровня, то агент или менеджер должны сделать следующее:
- для транспортных протоколов, зависимых от тайм-аута/подключения (например, протокол управления передачей данных) - перейти обратно к состоянию Разъединен с учетом того факта, что данные об истечении срока ожидания протокола передачи данных передаются на вышестоящие уровни как "Индикация отключения транспортного уровня";
- для транспортных протоколов, независимых от истечения срока тайм-аута/подключения (например, USB универсальная последовательная шина) - попытаться восстановить транспортный канал, попытаться отправить сообщение о принудительном прерывании ассоциации своему партнеру, а затем перейти обратно к неассоциированному состоянию.
После отправки сообщения для вызова сервиса подтвержденного действия менеджер должен ожидать ответного сообщения от сервиса подтвержденного действия на протяжении TOca (время работы сервиса подтвержденного действия). Если период TOca истекает, менеджер должен отправить агенту сообщение о принудительном прерывании ассоциации и перейти обратно к неассоциированному состоянию.
После отправки сообщения для вызова сервиса подтвержденного отчета о событии агент должен ожидать ответного сообщения от сервиса подтвержденного отчета о событии на протяжении TOcer (время работы сервиса подтвержденного отчета о событии). Если период TOcer истекает, агент должен отправить менеджеру сообщение о принудительном прерывании ассоциации и перейти обратно к неассоциированному состоянию.
Период TOcer определяется отдельно для каждого объекта. Каждый из объектов в настоящем стандарте, создающий отчеты о событии, имеет свое значение времени работы, сообщаемое соответствующим атрибутом в каждом объекте:
- TOcer-mds (TOcer для объекта системы медицинского прибора (MDS)) MDS.Confirmed-Timeout;
- TOcer-pms (TOcer для объекта PM-блока) Segm.Confirmed-Timeout;
- TOcer-scan (TOcer для объекта сканера) Scan.Confirmed-Timeout.
После отправки сообщения для вызова Get менеджер должен дождаться ответного сообщения за период TOget (время работы получения сервиса). Если период TOget истекает, то менеджер должен отправить агенту сообщение о принудительном прерывании ассоциации и перейти обратно к неассоциированному состоянию.
После отправки сообщения для вызова сервиса подтвержденной установки менеджер должен ожидать ответного сообщения о сервисе подтвержденной установки на протяжении периода TOcs (время работы сервиса подтвержденной установки). Если период TOcs истекает, то менеджер должен отправить агенту сообщение о принудительном прерывании ассоциации и перейти обратно к неассоциированному состоянию.
В дополнение к обычным тайм-аутам сервиса связи, описанным выше, существует три тайм-аута для частных случаев, которые также используются в протоколах персональных медицинских приборов:
TOclr-pms - специальное время работы для очистки объекта хранения PM-блока (PMS.Clear-Timeout);
TOsp-mds - специальный период времени между сервисами для объектов MDS (3 с);
TOsp-pms - специальный период времени передачи сегмента PM-блока (Segm.Transfer-Timeout).
TOclr-pms. После отправки сообщения вызова сервиса подтвержденного действия (MDC_ACT_SEG_CLR) менеджер должен ожидать ответного сообщения от сервиса подтвержденного действия на протяжении периода TOclr-pms (время работы сервиса подтвержденного действия для очистки объекта хранения PM). Если период TOclr-pms истекает, то менеджер должен отправить агенту сообщение о принудительном прерывании ассоциации и перейти обратно к неассоциированному состоянию.
TOsp-mds. После отправки сообщения вызова сервиса подтвержденного действия (MDC_ACT_DATA_REQUEST, старт, промежуток времени, время = 0) менеджер должен ожидать сообщение для вызова сервиса подтвержденного отчета о событии на протяжении TOsp-mds (специальный период времени между сервисами для объектов MDS). Если период TOsp-mds истекает, то менеджер должен отправить агенту сообщение о принудительном прерывании ассоциации и перейти обратно к неассоциированному состоянию.
TOsp-pms. После отправки сообщения для вызова сервиса подтвержденного действия (MDC_ACT_SEG_TRIG_XFER) менеджер должен ожидать сообщения вызова сервиса подтвержденного отчета о событии (segm-evt-status=sevtsta-last-entry, semg-data-event-entries) на протяжении периода TOsp-pms (специальный период времени передачи сегмента PM-блока). Если период TOsp-pms истекает, менеджер должен отправить агенту сообщение о принудительном прерывании ассоциации и перейти обратно к неассоциированному состоянию.
8.10.1 Общие положения
Процедура завершения ассоциации предоставляет любому агенту или менеджеру механизм, позволяющий правильно завершить ассоциацию.
8.10.2 Условия входа
Когда агент или менеджер решают закрыть ассоциацию, они должны перейти обратно к неассоциированному состоянию и запустить процедуру завершения ассоциации.
8.10.3 Обычные процедуры
В неассоциированном состоянии агент отправляет запрос на завершение ассоциации своему партнеру и дожидается ответа. Запрос на завершение ассоциации содержит причину завершения ассоциации (ReleaseRequestReason):
- причина отсутствия конфигураций используется агентом в состоянии Конфигурации для указания того, что все возможные конфигурации были испробованы и отклонены менеджером;
- причина изменения конфигурации используется агентом в состоянии Выполнения для указания того, что конфигурация менеджера была изменена и больше нет возможности отправлять данные с прежней согласованной конфигурацией. Обычно агент отвечает на это сообщение новым запросом на ассоциацию с новым dev-config-id; однако данный шаг не является обязательным;
- обычная причина используется агентом или менеджером для выхода из состояния Выполнения без указания особого условия.
Если агент или менеджер получают запрос на завершение ассоциации с нестандартным идентификатором вызова, они должны отправить Ответ на запрос на завершение ассоциации и считать, что ответа на запрос не последует.
8.10.4 Условия выхода
Когда агент или менеджер получают ответ на запрос на завершение ассоциации, они должны перейти к неассоциированному состоянию.
Если агент или менеджер получают Запрос на завершение ассоциации в неассоциированном состоянии, то они должны отправить Ответ на запрос на завершение ассоциации и оставаться в неассоциированном состоянии и ждать ответа на собственный Запрос на завершение ассоциации.
После отправки сообщения о завершении ассоциации агент или менеджер должны ожидать Ответа на запрос о завершении ассоциации на протяжении периода TOrelease (время работы процедуры завершения ассоциации). Если период TOrelease истекает, менеджер должен отправить агенту сообщение о принудительном прерывании ассоциации своему партнеру и перейти обратно к неассоциированному состоянию.
Агент или менеджер могут отправлять или получать сообщение о принудительном прерывании ассоциации для других неисправных состояний и должны немедленно перейти к неассоциированному состоянию.
Используемый в настоящем стандарте язык ASN.1 для описания абстрактного синтаксиса поддерживает конвертирование во множество других форматов передачи. Менеджер и агент должны поддерживать правила кодирования медицинских приборов (MDER), как указано в стандарте ИСО/ИИЭР 11073-20101:2004 [14]. Правила кодирования MDER представлены в приложении F наряду с дополнительными оптимизациями, специфичными для настоящего стандарта. В дальнейшем для двоичных передач должен быть использован порядок передачи данных (кодирование с обратным порядком байтов). Настоящий стандарт также допускает возможность агенту или менеджеру использования правил уплотненного кодирования (ASN.1) (PER) [17] и правила кодировки расширяемого языка разметки (XML) (XER) [18].
В приложении G дан один из примеров того, как структура данных языка ASN.1 может быть перекодирована в синтаксис языка C.
Приложение H содержит вспомогательные примеры бинарных кодировок, получающихся из сообщений, обозначенных в настоящем стандарте.
Все номенклатурные коды, использованные в настоящем стандарте, определены с использованием MDC_.. представления, но при передаче должны быть использованы номенклатурные коды. Приложение I содержит список определенных значений для всех кодов, использованных в настоящем стандарте.
8.12.1 Общие положения
Агент может использовать три типа часов: часы абсолютного времени, часы относительного времени и часы относительного времени высокой точности. Во всех случаях информацию о возможностях часов агента и о том, синхронизированы ли одни или несколько часов с внешним источником времени, можно найти через атрибут Mds-Time-Info в таблице 2. Все ссылки на биты в подразделах являются частью данного атрибута. Все агенты с любым типом часов должны поддерживать данный атрибут.
8.12.2 Абсолютное время
8.12.2.1 Общая информация
Агенты с внутренними часами реального времени (RTC) должны отображать данную возможность, устанавливая бит mds-time-capab-real-time-clock (см. A.11.1). Агенты, которые поддерживают действие установки часов (см. 6.3.2.4 и A.4), должны устанавливать бит mds-time-capab-set-clock.
Агенты могут поддерживать независимый способ для синхронизации внутренних часов реального времени с внешним источником часов. Используемый метод синхронизации не входит в область применения настоящего стандарта. Однако агент должен указывать, синхронизируется ли абсолютное время, используя бит mds-time-capab-sync-abs-time. Если синхронизация поддерживается, протокол, используемый для синхронизации внутренних часов реального времени (например, сетевой протокол синхронизации времени и простой сетевой протокол синхронизации времени), сообщается в разделе протокола синхронизации времени с использованием таких идентификаторов как MDC_EXT_PROTO_TIME_NTP. Бит mds-time-state-abs-time-synced должен быть установлен только тогда, когда агент считает, что его атрибуты даты и времени синхронизированы с внешним источником часов.
У агентов может появиться необходимость указать менеджеру, должен ли он установить время посредством действия Set-time. Если бит mds-time-mgr-set-time установлен, менеджер должен использовать команду действия Set-time, чтобы установить агенту абсолютное время. Если не установлен, то агент не хочет, чтобы менеджер установил часы. Такая ситуация может возникнуть, когда агент синхронизирует часы через внешний источник часов или когда пользователь установил часы на местном уровне. В этом случае менеджер не должен пытаться установить часы.
Такие атрибуты, как Date-and-Time и Absolute-Time-Stamp, сообщают дату и время агента. Для некоторых областей применения важно, чтобы агент сообщал дату и время, которые были показаны лицу, пользующемуся устройством (например, на глюкометре). Для других областей применения необходимо сообщать время, которое координируется с системой единого времени, таким, как универсальное координированное время (UTC). Например, такая ситуация может возникнуть, когда дата и время установлены на заводе по UTC и устройство не предусматривает средств для изменения даты и времени. Со стороны менеджера способность связать время измерения с понятием менеджера о времени имеет решающее значение для некоторых областей применения.
8.12.2.2 Сопоставимое время
В данном стандарте для всех трех областей применения используется понятие "сопоставимого времени". Основными понятиями сопоставимого времени являются следующие:
- когда агент сообщает информацию о времени, она должна обеспечить, что все указанные в комплекте измерения входят в одну непрерывную временную шкалу. Для временных измерений комплект состоит из всех измерений в одном отчете событий. Для PM-блока набор эквивалентен PM-сегменту;
- если набор измерений был собран, когда текущие часы имели другие настройки, то агент должен либо удалить данные, либо сообщить данные наряду с количеством 1/100 секунд, которые необходимо добавить к каждому из времен измерения, чтобы разместить их на той же временной шкале, что и текущие атрибуты Date-and-Time агента;
- эти два понятия применяются только в случае, если временная ось, использованная для отметки значений времени, изменилась на значение, значимое для типа измерений. Другими словами, нет необходимости сообщать о небольших смещениях времени или незначительном изменении настроек часов, чтобы поддерживать синхронизацию с внешним источником времени.
Абсолютное время должно интерпретироваться как сопоставимое время для агента следующим образом:
- если агент связан с менеджером во время настроек атрибутов Date-and-Time, то он должен отправить отчет о событиях, содержащий новое значение атрибутов Date-and-Time. Единственным исключением является случай, когда для изменения времени агента менеджер использует команду Set-Time. В этом случае агент может принять решение не посылать отчет о событиях, так как менеджер уже знает об изменении времени;
- если агент собирает временные измерения, а атрибуты Set-Time настроены, агент должен обеспечить, чтобы все измерения, включенные в отчет о событиях, входили в одну непрерывную временную шкалу, то есть не было внесено никаких изменений в настройки интервалов временных меток, включенных в данный отчет о событиях. Кроме того, все отчеты о событиях, которые содержат измерения, произведенные до того времени, когда было настроено текущее время агента, должны иметь атрибут MDS Date-and-Time-Adjustment в качестве первых указанных данных в отчете о событиях. Этот атрибут должен указывать количество 1/100 секунд, которые необходимо добавить к каждой
метке в протоколе о событиях для согласования с текущими часами (например, если часы были переведены на 60 минут вперед, в отчете это было бы обозначено как 360 000);- если агент собирает измерения PM-блока, а атрибуты даты и времени настроены, агент должен обеспечить, чтобы каждый PM-сегмент включал только измерения с одной непрерывной
шкалы. Кроме того, в каждом PM-сегменте должен присутствовать атрибут Date-and-Time-Adjustment PM-сегмента, который содержит измерения, собранные с учетом других настроек часов;- следует отметить, что в тех случаях, когда измерения собраны в автономном режиме, если настройки часов были изменены несколько раз, перед загрузкой данных, значение Date-and-Time-Adjustment является суммарным. Другими словами, сначала собираются измерения, затем часы переводятся назад на 30 мин, собираются дополнительные измерения, а часы переводятся назад еще на 30 мин. В этом случае в первом наборе данных должно быть указано смещение на 60 мин, а во втором набор указывается смещение на 30 мин.
8.12.3 Относительное время
Агенты могут применять относительный таймер с разрешающей способностью до 125 мкс [наименее значащий двоичный бит (LSB)]. Данное разрешение является достаточным для частоты выборки до 8 кГц, позволяет измерять периоды относительного времени с высокой точностью и охватывает периоды времени до 6,2 дня. Если относительное время используется с временно хранящимися измерениями или PM-блоком, агенты должны гарантировать, что продолжительность времени хранения никогда не превышает разрешающую способность таймера (т.е. 6,2 дня). Такая гарантия со стороны агента позволяет менеджеру запрашивать текущее относительное время агента и вычислять, как давно были произведены измерения. Если требуется большее время хранения, то используются либо атрибуты абсолютного времени, либо атрибуты относительного времени с высокой точностью. Агенты должны указывать поддержку относительного времени посредством установки бита mds-time-capab-relative-time в атрибуте Mds-Time-Info. Этот таймер должен быть запущен перед ассоциацией. За исключением случаев перезапуска счетчика, он должен однообразно увеличивать счет и не менять свое значение после инициализации. Точность фактического времени (то есть внутренний период обновления) определяется агентом, но должна соответствовать цели данного устройства.
Агенты могут поддерживать способ синхронизации своего внутреннего таймера с внешним источником часов (например, через пикосеть Bluetooth). Используемый метод синхронизации не входит в область применения настоящего стандарта. Однако агент должен указывать, синхронизирует ли он относительное время с использованием бита mds-time-capab-sync-rel-time. Если синхронизация поддерживается, то бит mds-time-state-rel-time-synced должен быть установлен только тогда, когда агент считает, что его часы относительного времени синхронизируются с внешним источником. Все агенты, связанные с одним менеджером и указывающие, что их внутренние таймеры синхронизированы, должны показывать одно и то же относительное время для событий, синхронизированных во времени.
Если агент предоставляет метку относительного времени для численного измерения, временная метка должна находиться точно в пределах точности синхронизации установленного времени и времени выборки численного значения. Метка относительного времени при использовании в качестве времени события и текущего времени может предоставить точную информацию об интервалах между событиями. Метка относительного времени может обеспечить точные измерения абсолютного времени, когда менеджер получает атрибуты относительного и абсолютного времени от объекта системы MDS агента и определяет время относительно собственных внутренних часов.
Если агент предоставляет метку относительного времени для массива показаний, снятых в режиме реального времени (RT-SA), то метка времени должна относиться к первой выборке в данном массиве и временная метка должна находиться точно в пределах заявленной точности атрибута относительного времени и времени выборки RT-SA.
Отчеты о событиях могут содержать метки относительного времени, указывающие, когда было создано событие. Если метрически производные объекты, содержащиеся в протоколе событий, не имеют основную временную метку, то время события будет также использовано в качестве времени измерения. Если агент предоставляет метки относительного времени для времени события, временная метка находится точно в пределах заявленной точности атрибута относительного времени, времени события, а также любых атрибутов времени выборки, связанных с событием.
8.12.4 Относительное время высокой точности
Агенты могут применять внутренний таймер высокой точности с разрешающей способностью до 1 мкс (LSB). Данный таймер высокой точности обладает точностью, достаточной для частоты выборки до 1 МГц, позволяет измерять периоды относительного времени с высокой точностью и охватывает периоды времени до 584 000 лет. Агенты должны указывать поддержку данного свойства посредством установки бита mds mds-time-capab-high-res-relative-time в атрибуте Mds-Time-Info. Этот таймер должен быть запущен перед ассоциацией. За исключением случаев перезапуска счетчика, он должен однообразно увеличивать счет и не менять свое значение после инициализации. Необходимая разрешающая способность (то есть внутренний период обновления) определяется агентом, но должна соответствовать цели данного устройства. Относительное время высокого разрешения должно сохранять частотную синхронизацию с относительным временем.
Агенты могут поддерживать способ синхронизации своего внутреннего таймера высокой точности с внешним источником часов (например, через пикосеть Bluetooth). Используемый метод синхронизации не входит в область применения настоящего стандарта. Однако агент должен указывать, синхронизирует ли он относительное время высокой точности с использованием бита mds-time-capab-sync-hi-res-relative-time. Если синхронизация поддерживается, то бит mds-time-state-hi-res-relative-time-synced должен быть установлен только тогда, когда агент считает, что его часы относительного времени синхронизируются с внешним источником. Когда агент отключается от источника синхронизации часов, он должен обозначить бит синхронизации как "ложное значение", как только он превысит точность параметров синхронизации часов.
Если агент обеспечивает метку относительного времени высокой точности для численного измерения, временная метка должна находиться точно в пределах заявленной точности атрибута относительного времени и времени выборки числового значения.
Если агент предоставляет метку относительного времени высокой точности для RT-SA, метка времени должна относиться к первой выборке в данном массиве. Временная метка должна находиться точно в пределах заявленной точности атрибута относительного времени и времени выборки RT-SA.
Настоящий стандарт предполагается использовать совместно с другими базовыми стандартами или в качестве ссылки в других базовых стандартах семейства ИСО/ИИЭР 11073 для определения приложений (например, для обмена базами данных измерений показателей жизненно важных функций) или для определения функциональных профилей коммуникаций (например, профилей интероперабельности медицинских приборов).
В частности, ряд специализаций устройств ИСО/ИИЭР 11073-104zz необходим для обеспечения интероперабельности системы. Таким образом, интероперабельность требует проверки на соответствие с настоящим стандартом и рядом применяемых специализаций устройств. Специализации устройств определяют подходящую модель соответствия, которая включает в себя требования соответствия настоящему стандарту, связанные с представлением показателей жизненно важных функций. Специализации устройств используют информацию, специфическую для устройства, при определении дополнительных критериев соответствия, которые не входят в область применения настоящего стандарта.
Соответствие определениям настоящего стандарта указывается только для интерфейсов соответствующего приложения или системы. Кроме того, поведение, указанное в настоящем стандарте (например, соблюдение принципов работы определенных машин состояния), также является частью спецификации. Поведение на этом уровне считается критически важным для соответствия, чтобы обеспечить надлежащую и точную работу протокола в целом. Спецификации соответствия не распространяются на детали реализации, такие как язык программирования, выделение уровней программного обеспечения, внутренние интерфейсы и так далее.
Настоящий стандарт, посвященный представлению показателей жизненно важных функций, обладает высокой степенью гибкости в применении описанной в нем модели для определенного медицинского прибора, в особенности для следующих областей:
- построение информационной модели конкретного прибора;
- использование атрибутов, диапазонов значений и доступа;
- использование дополнительных (расширенных) сервисов коммуникаций (т.е. сканеров), периодов сканирования и конфигурируемости сканеров.
Для обеспечения интероперабельности приложений и систем реализация, основанная на настоящем стандарте, должна сопровождаться специфическими подробностями того, каким образом применяются определения настоящего стандарта в сочетании с требованиями соответствия любыми производными специализациями устройств.
Подобные спецификации должны быть предоставлены в форме набора деклараций о соответствии реализации (ICS). ICS представляет собой разновидность перечня данных, в котором раскрываются подробности определенной реализации и указывается, какие свойства она предоставляет. Определенные приложения или функциональные профили коммуникаций, основанные на настоящем стандарте, должны определять более конкретные требования к соответствию в дополнение к или в качестве замены деклараций ICS, определенных в настоящем стандарте.
Примечание - Декларации соответствия, определенные в 10.3, служат для ознакомления с деталями реализации. Тем не менее их одних недостаточно для обеспечения интероперабельности приборов и приложений. Для подобной интероперабельности следует учитывать дополнительные спецификации (например, длительность, задержки, предположения о нагрузке системы). Данные спецификации не входят в область применения настоящего стандарта.
Декларации ICS должны быть представлены в форме таблиц. Шаблоны для подобных таблиц ICS представлены в таблицах 22 - 29. Таблицы должны быть заполнены и предоставлены в качестве полного документа декларации о соответствии. Как правило, заголовки столбцов ICS таблиц содержат следующую информацию:
- индекс, являющийся идентификатором (например, номером) определенного свойства;
- свойство, т.е. краткое описание характеристики, для которой должно быть сделано заявление о соответствии;
- ссылка, т.е. ссылка на определение свойства (может быть не заполнено);
- статус, устанавливающий требования соответствия (т.е. требования для претендующей на соответствие реализации, связанные с рассматриваемым свойством). Для некоторых случаев настоящий стандарт не указывает требования соответствия, но, так или иначе, требует определения статуса конкретного свойства;
- поддержка, которая заполняется специалистом по внедрению (реализации) и содержит характеристики свойств реализации;
- комментарий, содержащий дополнительную информацию, предоставленную специалистом по внедрению.
Таблицы 22 - 24 предназначены для использования при описании общего основного соответствия настоящему стандарту. В 9.4.1 - 9.4.3 сформулированы фундаментальные аспекты, обеспечивающие для устройства требования соответствия.
В общей ICS наивысшего уровня специалист по внедрению указывает версии/исполнения, поддерживаемые реализацией, а также некоторые определения высокого уровня для поведения системы.
В таблице 22 приведена общая ICS.
Таблица 22
Для каждой реализации должна быть предоставлена одна общая ICS.
9.4.2 Минимальные требования ICS
В таблице 23 показаны минимальные требования к соответствию настоящему стандарту.
Таблица 23
ICS для поддержки сервисов определяет, какие из сервисов, заданных в сервисной модели, реализованы. Подобная ICS необходима только для коммуницирующих приборов.
ICS для поддержки сервисов приведена в таблице 24.
Таблица 24
Столбец Поддержка заполненной таблицы должен быть определен, если реализация вызывает сервис (например, отправляет GET PDU), предоставляет сервис (например, обрабатывает полученный GET PDU) или не реализует сервис вообще. Помимо этого, должны быть перечислены специфические ограничения (например, если определенный сервис ограничен одним классом объекта).
Таблицы 25 - 29 предназначены для использования при описании ICS для любых дополнений или расширений, используемых устройством за пределами области применения настоящего стандарта и его специализации. Ожидается, что все условные или необязательные поведения прописаны как часть соответствующей декларации о соответствии для соответствующих специализаций устройства.
9.5.1 Общие дополнения/расширения ICS
Общие дополнения/расширения ICS определяют основную предварительную информацию по объему поддерживаемых дополнений/расширений.
Таблица 25
9.5.2 ICS объекта и класса (POC) информационной модели предметной области (DIM) персонального медицинского прибора
ICS POC определяет, какие из управляемых объектов из настоящего стандарта инстанцированы при реализации, и обозначает класс каждого объекта. Таблица 27 является шаблоном. Для каждого объекта, поддерживаемого реализацией, должен быть заполнен один ряд.
Таблица 26
Буква n в столбце "Индекс" должна обозначать дескриптор (handle) объекта для реализаций с предопределенными объектами. В иных случаях должна быть просто индивидуальным числом (1..m).
Все частные объекты должны быть обозначены и должны включать в себя ссылку на определение для объекта. Там, где нет возможности указать ссылки в открытом доступе, определение объекта должно быть приложено к заявлению о соответствии.
В столбце "Поддержка" должны быть указаны все ограничения для реализации объекта.
В качестве составной части ICS POC должно быть предоставлено графическое представление отношения включения объекта (графическое представление экземпляров класса).
9.5.3 ICS атрибутов POC
Для каждого поддерживаемого объекта, указанного в ICS POC, предоставляется ICS атрибутов POC для определения условных, необязательных или расширенных атрибутов, используемых/поддерживаемых реализацией, включая все наследуемые атрибуты. Обязательные атрибуты не нужно указывать, так как их соответствие требуется при реализации.
Таблица 27 является шаблоном.
Таблица 27
Буква n в столбце "Индекс" - это идентификатор управляемого объекта, для которого составлена таблица (например, индекс управляемого объекта, как обозначено в ICS POC в 9.5.2). Для каждого поддерживаемого управляемого объекта составляется отдельная таблица.
Буква x в столбце "Индекс" - это серийный номер (1..m).
Все атрибуты, не входящие в настоящий стандарт или одну из перечисленных специализаций устройства, должны быть указаны и включать в себя ссылку на определение для атрибута. Там, где нет возможности указать ссылки в открытом доступе, определение атрибута должно быть приложено к декларации о соответствии. Области доступа спецификации атрибута в столбце "Поддержка" обозначены, если реализация предполагает сервисы доступа для атрибутов.
Столбец "Поддержка" должен также содержать диапазон значений атрибутов (в случае применимости), подсказки о специфических ограничениях на доступ атрибута или доступность атрибута и информацию, и обозначение того, является ли значение атрибута постоянной или переменной величиной при реализации.
Примечание - Таблицы с определениями атрибутов в настоящем стандарте определяют минимальный обязательный набор атрибутов для каждого объекта.
9.5.4 ICS поведения POC
ICS поведения POC определяет все методы реализованных объектов, которые можно вызвать сервисом ДЕЙСТВИЯ. Таблица 28 является шаблоном. Таблица составляется для каждого объекта, который поддерживает специальные методы.
Таблица 28
Буква n в столбце "Индекс" - это идентификатор управляемого объекта, для которого составлена таблица (например, индекс управляемого объекта, как обозначено в POC ICS). Для каждого управляемого объекта, который поддерживает специфические методы объектов (то есть действий), составляется отдельная таблица.
Буква x в столбце "Индекс" - это серийный номер (1..m).
Все методы, не входящие в настоящий стандарт или одну из перечисленных специализаций устройства, должны быть указаны и включать в себя ссылку на определение для метода. Там, где нет возможности указать ссылки в открытом доступе, определение метода должно быть приложено к декларации о соответствии.
В столбце "Поддержка" должны быть обозначены все ограничения для метода.
9.5.5 ICS уведомлений POC
ICS уведомлений POC обозначает все реализованные уведомления (обычно в форме сервиса ОТЧЕТА О СОБЫТИИ), которые были вызваны поддерживаемыми объектами. Таблица 29 является шаблоном. Таблица составляется для каждого объекта, который поддерживает специальные уведомления для объекта.
Таблица 29
Буква n в столбце "Индекс" - это идентификатор управляемого объекта, для которого составлена таблица (например, индекс управляемого объекта, как обозначено в POC ICS). Для каждого управляемого объекта, который поддерживает специфические уведомления объектов (то есть событий), составляется отдельная таблица.
Буква x в столбце "Индекс" - это серийный номер (1..m).
Все частные уведомления должны быть указаны и включать в себя ссылку на определение для уведомления. Там, где нет возможности указать ссылки в открытом доступе, определение уведомления должно быть приложено к декларации о соответствии.
В столбце "Поддержка" должны быть обозначены все ограничения для уведомлений.
ICS номенклатур POC указывает все реализованные номенклатуры, использованные агентом. Таблица 30 является шаблоном. Для каждого номенклатурного элемента должен быть использован отдельный ряд таблицы.
Таблица 30
Буква n в столбце "Индекс" - это последовательный номер для обеспечения уникальности (1..m).
(обязательное)
Настоящее приложение предоставляет определения языка ASN.1, значимые для протоколов персональных медицинских приборов. Некоторые взяты из других частей серии стандартов ИСО/ИИЭР 11073, а другие созданы специально для области персональных медицинских приборов. Если необходимо понять, какие структуры импортированы, а какие являются новыми, см. приложение J. Настоящее приложение гарантирует, что все структуры данных, необходимые для реализации настоящего стандарта, легко доступны.
Соглашение о названиях, использованных в данном приложении, предполагает использование дефисов (-) для разделения слов в атрибутах и использование смешанного типа при указании типов данных; однако конструкции, взятые из других спецификаций, следуют существующим правилам использования заглавных букв и дефисов.
A.2 Общие типы данных
Данный подпункт определяет набор типов данных языка ASN.1, используемых в определениях объектов.
A.2.1 Целочисленные и битовые строковые типы данных
Для представления целых чисел, определения объектов используют только типы данных фиксированного размера. Битовые строковые типы данных представляют собой битовое поле, где каждый отдельный бит имеет определенное значение (например, поля метки). Используются следующие целочисленные типы данных и битовые строковые типы данных:
-- 8-битное беззнаковое целое число
--
INT-U8 ::= INTEGER (0..255)
--
-- 8-битное целое число со знаком
--
INT-I8 ::= INTEGER (-128..127)
--
-- 16-битное беззнаковое целое число
--
INT-U16 ::= INTEGER (0..65535)
--
-- 16-битное целое число со знаком
--
INT-I16 ::= INTEGER (-32768..32767)
--
-- 32-битное беззнаковое целое число
--
INT-U32 ::= INTEGER (0..4294967295)
--
-- 32-битное целое число со знаком
--
INT-I32 ::= INTEGER (-2147483648..2147483647)
--
-- 16-битная битовая строка
--
BITS-16 ::= BIT STRING (SIZE(16))
--
-- 32-битная битовая строка
--
BITS-32 ::= BIT STRING (SIZE(32))
Необходимо отметить, что в определениях объектов, целочисленных и битовых строковых типов данных с именованными константами или именованными битами для простоты используют обозначенные выше основные типы данных. Данный подход обеспечивает сокращенное обозначение, но такой синтаксис не допустим для языка ASN.1. Его можно легко преобразовать в правильный синтаксис. Например, определение
становится допустимым для языка ASN.1 синтаксисом в виде:
A.2.2 Тип данных идентификации
Все элементы (например, классы, объекты и типы измерений), для которых необходима уникальная идентификация, получают идентификатор объекта (OID). Ряд действующих идентификаторов OID для настоящего стандарта определен в стандарте ИСО/ИИЭР 11073-10101 [12]. Номенклатура состоит из набора сегментов, в котором каждый сегмент относится к определенному понятию и имеет собственные 16-битные коды. Другими словами, специфический код определяется числом его сегментов и OID в рамках данного сегмента или его использование контекстно зависимо. В случае контекстно зависимых кодов специфический сегмент, используемый кодом, вызывается в рамках настоящего стандарта.
16-битный тип данных идентификации определяется следующим образом:
--
-- тип OID, как определено в номенклатуре
-- (не путать с идентификатором OID языка ASN.1)
--
OID-Type ::= INT-U16 -- 16-битный тип целых чисел
Для кодов и идентификаторов, которые еще предстоит стандартизировать, или для специфичных для производителя кодов существует частный сегмент.
--
-- Частный OID
--
PrivateOid ::= INT-U16
A.2.3 Тип данных дескриптора
Тип данных дескриптора используется для эффективного и уникального на местном уровне обозначения всех экземпляров управляемого объекта (уникальный на местном уровне означает уникальный в пределах контекста одной MDS). Этот тип данных определяется следующим образом:
--
-- дескриптор
--
HANDLE ::= INT-U16
A.2.4 Тип данных номера экземпляра
Номер экземпляра используется для разграничения экземпляров классов или объектов одного типа или экземпляров объекта, которыми нельзя управлять напрямую (используемых, например, в качестве идентифицирующих атрибутов для объектов PM-блока).
--
-- Количество экземпляров
--
InstNumber ::= INT-U16
A.2.5 Тип данных типа идентификатора
Тип данных типа идентификатора используется для определения типа всех элементов (например, классов, объектов и типов измерения). Он схож с типом OID (пункт B.2.2), но включает в себя и сегмент номенклатуры, и код для обеспечения уникальной идентификации элемента. Он должен быть использован, когда контекст не подразумевается. Этот тип данных определяется следующим образом:
A.2.6 Тип данных установления значения атрибута (AVA)
Тип данных атрибута AVA полностью определяет атрибут объекта по его идентификатору атрибута и его значению. Так как структура значения зависит от атрибута, тип определяется через ANY DEFINED BY. Этот тип данных поддерживает ряд сервисов, используемых для доступа к атрибутам объекта (например, GET и SET). Значения идентификаторов атрибута определены для каждого типа объекта в столбце "Идентификатор атрибута" в таблицах определения объектов (например, таблица 2, таблицы 5 - 9, таблицы 12 - 15 и таблица 17). Структура, использованная для определения атрибута, определена в столбце "Тип атрибута" тех же таблиц. Тип данных AVA определяется следующим образом:
A.2.7 Тип данных списка атрибутов
Часто требуется список пар "Идентификатор атрибута - значение атрибута". Тип данных списка атрибутов - это специальный тип данных, предусмотренный для данной ситуации и определяемый следующим образом:
--
AttributeList ::= SEQUENCE OF AVA-Type
A.2.8 Тип данных списка идентификаторов атрибутов
Часто используется список идентификаторов атрибутов. Тип данных списка идентификаторов атрибутов - это специальный тип, предусмотренный для удобства и определяемый следующим образом:
--
AttributeIdList ::= SEQUENCE OF OID-Type
A.2.9 Тип данных с плавающей запятой (FLOAT-тип)
Тип данных с плавающей запятой (плавающий тип) определен для представления числовых значений нецелочисленного типа. Тип данных плавающего типа определен как 32-битное значение с 24-битной мантиссой и 8-битной экспонентой. См. F.7 для полного определения этого типа данных. Этот тип данных определяется следующим образом:
--
-- 32-bit float type; the integer type is a placeholder only
--
FLOAT-Type ::= INT-U32
32 бита содержат 8-битную экспоненту со знаком с основанием 10, за которой следует 24-битное целое число со знаком (мантисса).
Специальные значения закреплены для выражения следующего:
- NaN (Не число) [экспонента 0, мантисса +(2**23 - 1)
- NRes (не при этом разрешении экрана) [экспонента 0, мантисса -(2**23)
- + INFINITY (бесконечность) [экспонент 0, мантисса +(2**23 - 2)
- - INFINITY [экспонента 0, мантисса -(2**23 - 2)
- Предназначено для дальнейшего использования [экспонента 0, мантисса -(2**23 - 1)
A.2.10 Тип данных короткого плавающего типа (SFLOAT-тип)
Тип данных короткого плавающего типа определен для представления числовых значений нецелочисленного типа ограниченного разрешения. SFLOAT-тип определен как 16-битное значение с 12-битной мантиссой и 4-битной экспонентой. См. F.7 для полного определения этого типа данных. Этот тип данных определяется следующим образом:
--
-- 16-битный плавающий тип; целочисленный тип является только
-- меткой-заполнителем
--
SFLOAT-Type ::= INT-U16
16-битное значение содержит 4-битную экспоненту с основанием 10, за которым следует 12-битная мантисса. Каждый из них выражен в форме дополнительного кода.
Специальные значения закреплены для выражения следующего:
- NaN [экспонента 0, мантисса +(2**11 - 1)
- NRes [экспонента 0, мантисса -(2**11)
- + INFINITY [экспонента 0, мантисса +(2**11 - 2)
- - INFINITY [экспонента 0, мантисса -(2**11 - 2)
- Предназначено для дальнейшего использования [экспонента 0, мантисса -(2**11 - 1)
A.2.11 Тип данных относительного времени
Тип данных относительного времени это счетчик времени, используемый для определения относительного времени между событиями. Этот тип данных используется для расположения событий относительно друг друга. Он определяется следующим образом:
--
-- Относительное время имеет точность до 125 мкс (LSB), которой
-- достаточно для считывания показаний с частотой до 8 кГц,
-- охватывает периоды времени до 6.2 дней.
-- Должно быть использовано значение 0xFFFFFFFF, когда для отправки -- относительного времени на языке ASN.1 требуется агент,
-- но не поддерживает часы относительного времени.
--
RelativeTime ::= INT-U32
Следует учитывать, что точность реального времени определяется агентом.
A.2.12 Тип данных относительного времени высокой точности
Тип данных относительного времени высокой точности - это счетчик времени высокой точности, используемый для определения относительного времени между событиями. Этот тип данных используется для расположения событий относительно друг друга. Он определяется следующим образом:
--
-- Время высокой точности имеет точность до 1 мкс и может охватывать
-- периоды времени более 584 000 лет. Теоретически это может быть
-- смоделировано как INT-U64, однако из-за ограничения в
-- компиляторах языка ASN.1 встроенные устройства поддерживают
-- 64-битные целые числа и спецификации MDER, вместо этого была
-- использована строка октетов.
--
HighResRelativeTime ::= OCTET STRING (SIZE(8))
Необходимо отметить, что точность используемого реального времени определяется агентом.
--
-- Настройка абсолютного времени имеет точность до 1/100 секунды и
-- может представить настройки времени вперед или назад на 44 505
-- лет. Теоретически, это может быть смоделировано как INT-I48, однако
-- из-за возможного ограничения в компиляторах языка ASN.1
-- встроенные устройства поддерживают 48-битные целые числа и
-- спецификации MDER, вместо этого была использована строка октетов.
--
AbsoluteTimeAdjust ::= OCTET STRING (SIZE(6))
A.2.13 Тип данных абсолютного времени
Тип данных абсолютного времени определяет время дня с точностью до 1/100 секунды. Поле часов должно быть представлено в 24-часовом формате времени (т.е. от 0 до 23). Значения в структуре должны быть закодированы с использованием двоично-десятичного кодирования (т.е. 4-битных полубайтов). Например, 1996 год должен быть представлен в шестнадцатеричном значении 0x19 в поле века и шестнадцатеричном значении 0x96 в поле года. Этот формат легко конвертируется в формат, ориентированный на символы или целые числа. Тип данных абсолютного времени определяется следующим образом:
Необходимо отметить, что точность реального времени определяется агентом (т.е. если точность часов 1 сек, то точность долей секунды всегда нулевая). Агенты должны иметь точность в 1 секунду или больше.
A.2.14 Тип данных рабочего состояния
Тип данных рабочего состояния определяет, включен или выключен определенный объект или какое-то другое свойство.
A.3 Тип данных атрибутов
A.3.1 Атрибуты системы MDS
--------------------------------
<4> Дополнительную информацию о данном техническом комитете можно найти по адресу: /template/go.php?url=https://www.nkkn.net/gmdn/gmdnproject.htm
A.3.2 Метрические атрибуты
Данная группа содержит импортированные определения атрибутов, которые применяются к числовым, перечисляющим объектам и объектам RT-SA.
A.3.3 Числовые атрибуты
A.3.5 Атрибуты перечисления
A.3.6 Атрибуты сканера
Нет
A.3.7 Конфигурируемые атрибуты сканера
A.3.8 Случайные конфигурируемые атрибуты сканера
Нет
A.3.9 Повторяющиеся конфигурируемые атрибуты сканера
Нет
A.3.10 Атрибуты PM-блока и PM-сегмента
A.5 Типы данных, связанных с сообщением
A.6 Прочие типы данных
--
-- TimeProtocolId обозначает протоколы времени,
-- поддерживаемые/используемые устройством.
--
TimeProtocolId ::= OID-Type -- из номенклатурного сегмента
-- nom-part-infrastruct
Следующий тип данных представляет собой кадр сообщения верхнего уровня протокола персонального медицинского прибора. Данные APDU (формирующиеся посредством PrstApdu) интерпретируются в соответствии с настоящим стандартом в результате переговоров, содержащихся в процедуре ассоциации, как описано в 8.7.3.1.
Правила кодирования MDER должны всегда распространяться на структуру в A.7.
Правила кодирования MDER должны всегда распространяться на структуры в A.8.
A.9 Определения протокола представления данных
Правила кодирования MDER должны всегда распространяться на структуры в A.9.
--
-- OCTET STRING содержит APDU данных, закодированный согласно
-- абстрактному синтаксису и синтаксису передачи, оговоренным во
-- время ассоциации. Когда data-proto-id обсуждается на возможность
-- быть data-proto-id-20601, OCTET STRING должна быть закодированной
-- версией DataApdu.
--
PrstApdu ::= OCTET STRING
A.10.1 Общая информация
В ходе процедуры ассоциации, описанной в разделе 8.7.3.1, было установлено, что пакет данных протокола прикладного уровня DataApdu и соответствующие структуры раздела A.10 должны соблюдать правила кодирования. Агент и менеджер обязаны соблюдать правила кодирования медицинских приборов, но также вправе рассмотреть и другие правила.
A.10.4 Сервис GET
A.10.5 Сервис SET
A.11 Типы данных атрибутов нового объекта и сервисов объектов
A.11.2 Типы данных системы медицинского прибора
A.11.3 Типы данных, связанные с измерением
A.11.4 Типы данных, связанные со сканером
A.11.6 Сервисы сканера
Применительно к сервисам сканера используются определения сервисов системы медицинского прибора, перечисленные в разделе A.11.5, а именно
ScanReportInfoVar
ScanReportInfoFixed
ScanReportInfoGrouped
ScanReportInfoMPVar
ScanReportInfoMPFixed
ScanReportInfoMPGrouped
A.11.7 Типы данных, связанные с нумерацией
-- Простое наблюдаемое числовое значение представляет собой значение
-- с плавающей запятой.
--
SimpleNuObsValue ::= FLOAT-Type
-- Список типов SimpleNuObsValue
--
SimpleNuObsValueCmp ::= SEQUENCE OF SimpleNuObsValue
-- Во многих случаях, базовое наблюдаемое числовое значение
-- выражается меньшим значением с плавающей запятой.
--
BasicNuObsValue ::= SFLOAT-Type
-- Списковый тип данных BasicNuObsValue
--
BasicNuObsValueCmp ::= SEQUENCE OF BasicNuObsValue
(справочное)
B.1 Общие положения
Алгоритм расчета шкалы и диапазона RT-SA описан в 6.3.5.3, а также приводится и здесь в качестве справочной информации:
Y = M x X + B,
где Y - преобразованное абсолютное значение;
M = (верхнее-абсолютное-значение - нижнее-абсолютное-значение)/(верхнее-масштабируемое-значение - нижнее-масштабируемое-значение);
B = верхнее-абсолютное-значение - (M x верхнее-масштабируемое-значение);
X - масштабируемая величина.
Следует учитывать, что термин абсолютное значение не обозначает математическое абсолютное значение, в котором все значения положительны, а относится к текущему измеренному значению.
Формула позволяет заменить измеренное значение (с учетом диапазона смещения и ограниченного разрешения) на целочисленную скалярную величину, которая сможет уменьшить количество информации, передаваемой между агентом и менеджером. Структуры ScaleRangeSpec8, 16 и 32, описанные в A.3.4, передают оба верхнее и нижнее абсолютные значения, а также верхнее и нижнее масштабируемые значения, позволяя менеджеру определить параметры формулы для конвертирования масштабируемых значений в соответствующие абсолютные значения и подтвердить, что полученные значения в ожидаемом диапазоне.
В рамках агента масштабируемое значение, получаемое из реального измеренного значения, рассчитывается следующим образом:
X = (R - B)/M,
где R - реальное измеренное значение.
Подходящее значение M позволяет обеспечить масштабируемые значения, чтобы передать подходящее разрешение для абсолютных измеренных значений. Практически, параметры M и B могут быть заданы разрешением АЦП и прочими техническими средствами.
B.2 Пример термометра
Ниже приводится пример алгоритма. Показания термометра, способного определять температуру по шкале Цельсия от -45 °C до 50 °C с разрешением 0.5 °C передаются в виде беззнаковых значений с помощью ScaleRangeSpec8.
Следующие значения применимы для структуры ScaleRangeSpec8:
Нижнее-абсолютное-значение = -45.0
Верхнее-абсолютное-значение = 50.0
Нижнее-масштабируемое-значение = 0
Верхнее-масштабируемое-значение = 190
Следовательно
M = (50.0 - (-45.0))/(190 - 0) = 0.5
B = 50.0 - (0.5 x 190) = -45.0
Некоторые характерные значения приведены в таблице B.1, а на рисунке B.1 отображена диаграмма масштабированных и конвертированных значений.
Таблица B.1
![]() (справочное)
C.1 Общие положения
Концепция PM-блока предлагает метод отображения, доступа и передачи большого количества метрических данных, хранящегося в агенте. Информация хранится в виде многоуровневой модели объекта с возможностью структурирования данных в соответствии с их характером.
На высшем уровне объекты PM-блока являются точкой первичного доступа ко всей информации о хранящихся метрических данных. Агент, поддерживающий постоянно хранимые метрические данные, может создавать экземпляры одного или нескольких объектов PM-блока. Объект PM-блока является частью конфигурации устройства. Прямой доступ к нему можно получить с помощью сервисов доступа к объекту, описанных в данном стандарте.
Каждый PM-блок может хранить 0, 1 или несколько PM-сегментов, которые являются контейнерными объектами фактических данных. В ходе работы агента количество PM-сегментов может меняться. Другими словами, агент может создавать новые PM-сегменты с учетом временных интервалов, размера хранимых данных или ручного управления пользователем.
Концепция PM-блока предлагает информационную модель с двухуровневой иерархией с несколькими объектами PM-сегментов внутри нескольких объектов PM-блока.
К типичным вариантам использования нескольких PM-блоков относятся следующие случаи. Если агент хранит данные с различными параметрами (например, апериодические измерения в сравнении с периодическими измерениями), то отдельные объекты PM-блока используются для назначения оптимизированных типов данных для хранимой информации и, таким образом, экономит память для хранимых данных.
К типичным вариантам использования нескольких PM-сегментов относятся следующие случаи. Если агенту необходимо структурировать хранимую информацию в более иерархичной форме, он может использовать несколько экземпляров объектов PM-блока с экземплярами объектов PM-сегментов для построения такой иерархии (например, можно задействовать PM-блок для отображения сеанса обучения, а затем использовать PM-сегмент для моделирования индивидуальных упражнений в рамках сеанса обучения).
Для хранения фактических данных используется концепция схемы значений атрибута для метрических атрибутов. Особый отображающий атрибут позволяет определить структуру двоичных хранимых данных, не допуская излишних затрат ресурсов на идентификацию, размер полей и т.д. в фактических хранимых и передаваемых двоичных данных. Предполагается, что хранимая информация представляет собой большой массив одинаково форматированных данных.
После проверки информации в объектах PM-блока, менеджер начинает передачу хранимых данных. Менеджер может выбрать фрагменты данных для передачи. Фактическая передача считается завершенной после получения подтверждающего уведомления со стороны агента. Агент должен максимально полно заполнить структуру данных SegmentDataEvent.
C.2 Постоянная иерархия объектов хранения метрических данных
C.2.1 Общая информация
Постоянное метрическое хранилище состоит из следующих четырех ключевых частей:
- PM-блок. Данный объект относится к высшему уровню и содержит атрибуты об объектах хранения, а также ноль или несколько PM-сегментов;
- PM-сегмент. Данный объект содержит атрибуты, описывающие сегмент, а также ноль или несколько записей;
- Запись. Каждая запись содержит опциональный заголовок и один или несколько элементов;
- Элемент. Каждый элемент содержит данные одного или нескольких измерений.
На рисунке C.1 приведено примерное устройство этих четырех компонентов. Более подробную информацию см. в конце данного приложения.
![]() в сегментах
C.2.2 Объект PM-блока
Поддержка объекта PM-блока является опциональной. Поддержка объектов, атрибутов, методов и соответствующих событий PM-блока необходима лишь тем агентам, которые хотят хранить постоянные метрические данные. Менеджеру следует сообщить информацию обо всех поддерживаемых объектах PM-блока, входящих в конфигурацию агента. Атрибуты PM-блока описывают общие характеристики хранимых данных (например, является ли хранение значений периодическим или эпизодическим).
Агент может позволять использовать несколько PM-блоков. Множество блоков используется для отображения данных в разных форматах или с различными характеристиками, а также для группировки данных по различным логическим группам. Объект PM-блока также доступен для всех методов, связанных с хранимыми метрическими данными (в частности, с восстановлением данных менеджером).
Агент может управлять количеством PM-сегментов, существующих в PM-блоке. При отсутствии данных, считается, что PM-блок не содержит элементов. Если же есть какие-либо данные, PM-блок содержит один или несколько объектов PM-сегмента. Поскольку количество PM-сегментов является динамическим, объекты PM-сегмента не входят в конфигурацию агента. Вместо этого, объект PM-блока содержит информацию о доступных PM-сегментах в форме атрибутов PM-блока, запрошенных через сервис GET.
C.2.3 Объект PM-сегмента
Базовый формат данных сегмента PM-сегмента показан на рисунке C.2.
![]() Сегмент содержит k записей. Формат записи определяется атрибутом PM-Segment-Entry-Map PM-сегмента.
В записи отображаются данные, хранимые в определенный момент времени. Перед каждой записью стоит опциональный заголовок (например, с отметкой времени) общий для всех элементов записи. Далее в записи содержится n элементов; формат каждого элемента определяется схемой значений атрибутов. Обычно запись содержит результат измерения (например, численное измерение и нумерацию). Итоговая структура данных не содержит каких-либо идентификаторов атрибута или длину поля и потому является очень компактной.
PM-сегмент обычно представляет собой эпизод для хранения. Данный эпизод имеет временной контекст (то есть, к примеру, данные, хранящиеся в этом эпизоде, принадлежат к отрезку времени 12:00 - 15:00), некоторые соответствующие атрибуты и массив памяти, содержащий фактические (измеренные) данные для этого эпизода, содержащиеся в атрибуте Fixed-Segment-Data (см. рисунок C.3).
![]() фактические хранимые данные
PM-блок может содержать несколько PM-сегментов или ни одного (т.е. ни одного, если данные еще не сохранены; один или несколько в зависимости от хранимых эпизодов и возможностей агента).
К примеру, PM-сегмент действующих часов может содержать сохраненные данные об одном тренировочном цикле (т.е. 5-минутный отрезок времени с 12:00). Устройство также может хранить несколько сегментов (т.е. несколько таких тренировочных циклов).
C.2.4 Запись PM-сегмента (в рамках fixed-segment-data)
Атрибут Fixed-Segment-Data включает в себя как записи, так и элементы. На рисунке C.4. группы записи отображены в виде строк. Все записи в сегменте обладают структурой, определяемой PM-Segment-Entry-Map. Это, в свою очередь, сопоставимо с Attribute-Value-Map, определенным для метрических объектов. Однако такая структура позволяет группировать несколько измерений в подгруппу записи.
![]() Атрибут PM-Segment-Entry-Map определяет список измерений, хранящихся в одной записи. Для каждого измерения также назначается список хранящихся атрибутов. Кроме того, при желании можно назначить общий заголовок (т.е. с включением общей отметки времени) для всей записи.
Используя приведенный выше пример с работающими часами, предположим, что агент хранит данные о частоте сердечных сокращений, текущей скорости бега и значении насыщенности периферийным кислородом в секунду. Единственным атрибутом, сохраненным из этих измерений, будет числовым значением (определяемым PM-Segment-Entry-Map). В таком случае, заголовок записи не требуется, поскольку измерения периодичны и не требуют наличия отметки времени. В частности, в случаях периодических измерений, время конкретного сохраненного измерения рассчитывается из времени начала и окончания измерения, пробного периода и индекса записи. Вследствие этого, наличие отдельной отметки времени для каждого измерения не требуется, равно как и заголовок с информацией об отметке времени.
Таким образом, каждая строка записи включает в себя следующие три компонента:
C.2.5 Входные группы записи PM-сегмента
Группа содержит двоичное представление определенных атрибутов одного метрического объекта (см. рисунок C.5). SegmEntryElem (смотрите пункт A.11.8) в рамках PM-Segment-Entry-Map определяет входную группу каждой записи.
![]() В примере с работающими часами в записи смоделировано три метрических значения. Для каждого метрического значения определяется один атрибут, числовое наблюдаемое значение. Таким образом, значения частоты сердечных сокращений, скорости и насыщенности периферийным кислородом являются отдельными группами внутри записи.
Однако PM-Segment-Entry-Map может содержать атрибуты вне наблюдаемого значения. К примеру, можно включить такие атрибуты как достоверность, отметки времени, коды блока и так далее.
(справочное)
D.1 Общие положения
Настоящий стандарт применяет концепцию "типа" для группирования и определения сервисов, предлагаемых различными технологиями передачи данных и предназначенные для семейства стандартов ИСО/ИИЭР 11073. В частности, семейство стандартов ИСО/ИИЭР 11073 различает следующие типы профилей передачи:
Тип 1. Транспортные профили, содержащие одновременно надежные и наилучшие транспортные сервисы. Используется один или несколько виртуальных каналов для надежных средств передачи, а также один или несколько виртуальных наилучших транспортных сервисов.
Тип 2. Транспортные профили, содержащие только однонаправленный транспортный сервис.
Тип 3. Транспортные профили, содержащие только максимально доступный транспортный сервис. Используется один или несколько виртуальных каналов наилучших транспортных сервисов.
Типы транспортных профилей имеют большое значение, поскольку различные транспортные сервисы влияют на функциональность верхних уровней системы. В частности, они влияют на работу механизма подтверждающих сервисов данного стандарта.
В термине "механизм подтверждающего сервиса" слово подтверждающий имеет следующее значение:
- для данных (сервис уведомлений EVENT REPORT), информирующий агента о том, когда менеджер "принял ответственность" за часть данных и агент может удалить эту величину;
- для управления (сервисы ACTION, GET и SET), информирующий менеджера о том, когда агент "завершил" запрошенную передачу.
D.2 Тип 1
Транспортный профиль Типа 1 предоставляет как надежные, так и наилучшие транспортные профили. Учитывая определение и цели механизма подтверждающего сервиса, потеря пакетов данных сильно влияет на подтвержденные сообщения. Таким образом, самым подходящим транспортным сервисом для подтвержденных сообщений будет надежный транспортный сервис.
Кроме того, согласно данному стандарту (см. пункт 8.4) машины состояний агента и менеджера синхронизированы. Наличие синхронизированных машин состояний косвенно подразумевает использование надежного транспортного сервиса между двумя машинами состояний, обеспечивающего доставку сообщения и уведомляющего о сбое в ходе его транспортировки.
Таким образом, все сообщения, связанные с процессом ассоциации, передаются с помощью надежного транспортного сервиса. (Для простоты поиска машины состояний агента и менеджера, указанные в пункте 8.4, будут называться машинами состояний, перекликаясь с машинами состояний транспортного профиля Типа 1). Для неподтвержденных сообщений прикладное программное обеспечение может, по своему усмотрению, использовать либо надежный, либо наилучший транспортный сервис (см. таблицу D.1).
Таблица D.1
Транспортный профиль, относящийся к профилю Типа 1, должен поддерживать один или несколько надежных виртуальных каналов, либо ни одного или несколько наилучших виртуальных каналов.
D.3 Тип 2
Транспортный профиль Типа 2 предлагает только однонаправленный транспортный сервис. Учитывая определение и цели механизма подтверждающего сервиса, однонаправленный транспортный сервис непригоден для подтвержденных сообщений (Менеджер не может отправлять подтвержденные сообщения обратно агенту).
Однонаправленный сервис, по своей сути, является наилучшим сервисом. Транспортный уровень менеджера не может сделать запрос на повторную передачу транспортного уровня, если потерян протокольный блок данных (ПБД). Таким образом, надежный транспортный сервис несовместим с однонаправленным транспортным сервисом.
В связи с отсутствием надежного транспортного сервиса конечный автомат Типа 1 не сможет корректно взаимодействовать с транспортным профилем Типа 2. Таким образом, для среды Типа 2 необходим конечный автомат Типа 2 (см. таблицу D.2).
Таблица D.2
D.4 Тип 3
D.4.1 Общие положения
Транспортный профиль Типа 3 предлагает только наилучший транспортный сервис. Отсутствие надежного транспортного сервиса вызывает определенные трудности с использованием конечного автомата Типа 1 и механизма подтверждаемого сервиса. Существует несколько разных, не взаимоисключающих методов решения таких проблем.
D.4.2 Тип 3a
Одним из методов разрешения такой ситуации является добавление дополнительной функции надежного транспортного сервиса к наилучшему сервису. После применения такого метода, транспортный профиль Типа 2 (только наилучший (best-effort-only), по своей сути, станет транспортным профилем Типа 1 (надежный и наилучший). В таком случае возможно использование конечного автомата Типа 1 и механизма подтверждаемого сервиса.
Таким образом, транспортный профиль Типа 3a считается особым случаем транспортного профиля Типа 1.
D.4.3 Тип 3b
Еще одним способом использования транспортного сервиса best-effort-only является перемещение функциональности надежного транспортного сервиса в протокол медицинского прибора. Результатом данного метода является конечный автомат Типа 3 и механизм подтверждающего сервиса Типа 3 (см. таблица D.3).
Таблица D.3
D.4.4 Тип 3c
Третьим методом использования транспортного сервиса best-effort-only является добавление дополнительной функции облегченной надежности (reliability-lite) в транспортный сервис best-effort. Данный метод похож на Типа 3a. Однако в транспортном сервисе облегченной надежности Типа 3c некоторые характеристики надежного транспортного сервиса несколько ослаблены. Планируется, что такое ослабление будет способствовать более компактной и простой реализации с облегченной надежностью по сравнению с полностью надежным транспортным сервисом.
Ослабленные фактические характеристики надежного транспортного сервиса позволят определить корректность работы конечного автомата Типа 1 и механизма подтверждения сервиса в среде транспортного профиля Типа 3c.
D.5 Вывод
Все типы транспортных профилей отображены в таблице D.4.
Таблица D.4
(обязательное)
ТАБЛИЦЫ СОСТОЯНИЙ
E.1 Общие положения
Все состояния, отображаемые в таблице состояний агента и менеджера, приведены в таблице E.1.
Таблица E.1
Конечный автомат агента используется в соответствии с таблицей E.2, в которой используются следующие обозначения:
REQ - запрос от прикладного программного обеспечения (ПО), взаимодействующего через интерфейс с конечным автоматом;
IND - состояние, утвержденное нижним уровнем ПО через конкретный программный интерфейс;
Rx - пакет данных протокола прикладного уровня, полученный через поток входных данных;
Tx - пакет данных протокола прикладного уровня, отправленный через поток выходных данных.
Таблица E.2
--------------------------------
<6> Если rors-* получены с неизвестным идентификатором вызова, прикладной уровень вызовет отправку менеджеру уведомление о прерывании, отправив значения "REQ abrt" конечному автомату.
Конечный автомат менеджера используется в соответствии с таблицей E.3, в которой присутствуют следующие обозначения:
REQ - запрос от прикладного ПО, взаимодействующего через интерфейс с машиной состояний;
IND - состояние, утвержденное нижним уровнем ПО через конкретный программный интерфейс;
Rx - пакет данных протокола прикладного уровня, полученный через поток входных данных;
Tx - пакет данных протокола прикладного уровня, отправленный через поток выходных данных.
Таблица E.3
--------------------------------
<7> Если rors-* получены с неизвестным идентификатором вызова, уровень применения отправит агенту уведомление о прерывании с помощью отправки "REQ abrt" машине состояний.
<8> Если rors-* получены с неизвестным идентификатором вызова, уровень применения отправит агенту уведомление о прерывании с помощью отправки "REQ abrt" машине состояний.
<10> Если rors-* получены с неизвестным идентификатором вызова, уровень применения отправит агенту уведомление о прерывании с помощью отправки "REQ abrt" машине состояний.
<11> Если rors-* получены с неизвестным идентификатором вызова, уровень применения отправит агенту уведомление о прерывании с помощью отправки "REQ abrt" машине состояний.
(обязательное)
F.1 Общие положения
Настоящее приложение заимствовано из ИСО/ИИЭР 11073-20101:2004 [14], A.1 - A.4. Они представлены для удобства реализации.
Настоящее приложение определяет специализированные правила MDER, связанные с представлением последовательных двоичных строк, таким образом, каким они должны быть представлены в сети в сравнении с соответствующей организацией в памяти компьютера, с представлением в абстрактном синтаксисе, то есть в языке программирования или диаграмм, которые используются в спецификациях. Предполагается, что данная спецификация должна быть согласована с любой и каждой из альтернатив нижнего уровня ИСО/ИИЭР 11073. Таким образом, реализация на верхних уровнях может обеспечивать прозрачность на основе конкретного профиля нижнего уровня.
Основные цели MDER включают в себя возможность оптимизировать выполнение форматирования и синтаксического анализа, а также снижают нагрузку на пропускную способность сети. Оптимизация форматирования основана на возможности процессора передачи данных определять так называемые сообщения с фиксированным форматом (canned), в которые только динамически изменяемые данные должны быть включены для относительно высокочастотных сообщений, в особенности это касается данных осциллограмм.
F.2 Поддерживаемый синтаксис ASN.1
ASN.1 является стандартным обозначением, которое используется для определения типов данных, значений и ограничений значений. Данное обозначение широко используется в стандартах ВОС и широко используется в серии стандартов ИСО/ИИЭР 11073 (например, в ИСО/ИИЭР 11073-10201, где все определения данных формируются с помощью ASN.1).
В целях выполнения требований эффективности кодирования и декодирования и поддержки сообщений с фиксированным форматом, MDER определяет методы для преобразования синтаксиса ASN.1 в поток байтов, пригодный для передачи.
В отличие от других стандартов ИСО/ВОС для правил кодирования ASN.1 (например, основные правила кодирования или BER, правила компактного кодирования или PER) правила MDER оптимизированы только для подмножества ASN.1. Правила MDER не поддерживают полный набор типов данных ASN.1, а лишь определенный, ограниченный набор конструкций ASN.1.
Стандарты ИСО/ИИЭР 11073 используют этот ограниченный набор ASN.1 для определения типов данных, применяемых только в управляемых медицинских объектах, таким образом, правила MDER подходят и являются достаточными для кодирования структур данных в рамках этих стандартов.
Ограниченный набор ASN.1, используемый для компонентов PDU стандартов ИСО/ИИЭР 11073, является строгим подмножеством допустимых типов данных ASN.1, поэтому другие общие стандартные правила кодирования (например, BER, PER) можно так же использовать, как согласованные для конкретного профиля коммуникаций на более высоких уровнях.
Таблица F.1 определяет специализацию ASN.1, подходящую для кодирования MDER. Все компоненты ASN.1 PDU, предназначенные для кодирования MDER, являются предметами этой специализации.
Таблица F.1
Для каждого типа данных ASN.1 эта специализация сопровождает символом "I" для включенного с ограничением, "R" для ограничений по использованию и "E" для исключения.
F.3 Порядок передачи байтов
На рисунке F.1 показано, как различные двоичные строки сети отображаются в строки памяти. На диаграммах представлен порядок передачи байтов в сети (Network byte order, NBO). Следующие правила пронумерованы для удобства использования ссылок:
1) представление в диаграммах использует формат NBO, показанный на рисунке F.1;
2) в MDER не используется выравнивание. То есть в строки байтов дополнительные байты не добавляются, например, для получения длин, которые делятся на два или четыре. Тем не менее, переменная длина элементов данных, то есть строк, должна содержать четное число байтов из соображений эффективности. Например, поскольку большинство элементов данных 16-битные, они не будут неправильно выровненными, если строки имеют четную длину;
3) передачи данных в MDAP ограничены использованием соглашения NBO (обратный порядок передачи);
4) для обеспечения общей интероперабельности протокол ассоциации должен использовать ИСО BER при согласовании условных обозначений MDER. Все остальные блоки PDU, которыми обменивается в период своей работы хост-устройство, будут основаны на MDER, например PDU CMIP* и ROSE*. Суффикс звездочка (*) означает, что MDER используется для оптимизации протокола ИСО, который, как правило, базируется на BER.
Многобайтовые структуры отображаются между сетью и компьютерной памятью и упорядочиваются в памяти компьютера двумя основными способами, называемыми big endian (формат с порядком следования байтов, начиная со старшего), и little endian (формат с порядком следования байтов, начиная с младшего). Формат big endian согласуется с NBO, а little endian - не согласуется. Например, в последнем примере на рисунке F.1, структура ABCD была бы упорядочена как DCBA. В этом случае, если big endian является согласованным протоколом, то компьютер с little endian должен был бы переставлять компоненты этой структуры при получении их из памяти и передаче их в память, в случае необходимости. Макросы языка программирования и команды компьютера, выполняющие байтовый свопинг, которые, как правило, способствуют нормализации, являются проблемами реализации и могут быть упрощены ненормативными определениями, взятыми из настоящего стандарта или стандартов, связанных с ним.
NBO:
- Однобайтовая строка битов, т.е. октета:
- Последовательность битов: в порядке от наименее значащего бита (LSB) к наиболее значащему биту (MSB), т.е. 0, ..., 7 или 24, ..., 31; порядок следования битов представляется диаграммами посредством последующих обозначений
![]() - Многобайтовая строка:
- Неструктурированная: массив октет (т.е. строка октет):
- Последовательность битов: для каждого типа, как определено для октеты;
- Последовательность байтов: в основном нумеруется от [0] до [n-1], например A[0], до A[n-1], где <n> = длина в октетах
![]() - Структурированная: многобайтовая последовательность битов, в основном кратные двум байтам (например, короткое целое число - 16 битов, длинное целое число - 32 бита); числа с плавающей точкой в основном являются кратными 16 битам, хотя в настоящем стандарте определен только 32-х битный формат FLOAT. Приведены два общих примера (ABCD относится к порядку передачи байтов):
- 16 битовая структура, например, короткое (целое число):
- Последовательность битов: каждый байт пересылается согласно определению для октеты;
- Последовательность байтов: пересылается от наиболее значащего байта к наименее значащему байту;
- Для целых чисел со знаком обычно MSB наиболее значащего байта - знаковый бит
![]() - 32-битная структура, например, длинное (целое число)
![]() - Условно, составы мультиструктуры показаны в порядке появления в последовательно передаваемой строке
![]() F.4 Кодирование
F.4.1 Общие положения
В MDER отсутствует тегирование для простых типов. Теги используются только там, где дешифратору (декодеру) необходимо различать типы (например, для типа CHOICE). Поля длины используются только для элементов с переменной длиной и ограничены 64 КБайтами (16 битами), которых должно быть достаточно для передачи данных.
Простые типы определены из-за ограничений по размеру и имеют фиксированную длину.
Типы SEQUENCE имеют фиксированную длину, так как синтаксические компоненты типа OPTIONAL не используются.
F.4.2 Тип INTEGER
Кодирование целочисленного значения является примитивным кодированием, а содержимое октет представляет значение в дополнительном двоичном коде.
На рисунке F.2 представлено поддерживаемое в MDER кодирование октет <12> для ограниченных по размеру целочисленных значений.
--------------------------------
<12> Для стандартизации языка программирования C для целочисленных типов данных, необходимо использовать определения ИСО/МЭК 9899.
![]() Октеты содержат закодированные целочисленные значения в дополнительном двоичном коде.
F.4.3 Тип BIT STRING
Кодирование значения битовой строки, относящейся к базовому типу, является простым. Содержимое октеты представляет множество битов в битовой строке. Битовая строка может содержать 8, 16 или 32 бита.
Бит 0 при кодировании является самым старшим битом (MSB), бит 1 представлен следующим битом в октете и т.д.
На рисунке F.3 представлено поддерживаемое в MDER кодирование октет для ограниченных по размеру битовых строк.
![]() Пример - Определение
state ::= BITS-16 {open(0), locked(1) }
может быть отображено на представление типа языка C следующим образом:
short unsigned int state;
#define locked 0x4000
#define open 0x8000
(подобно для именованных битов в строках бит).
F.4.4 Тип OCTET STRING
Кодирование значения OCTET STRING, относящегося к базовому типу, является простым. Содержимое октетов представляет собой строку элементов. Сами октеты используют кодирование, унаследованное от определения типа строки.
Октеты могут содержать печатаемые символы ASCII или могут содержать инкапсулированные двоичные данные. OCTET STRING, содержащие печатаемые символы ASCII, должны содержать четное число октет и использовать символ NULL для дополнения. Необходимо отметить, что строки, которые содержат четное число октет, могут не завершаться символом NULL.
Как показано на рисунке F.4, MDER различают тип OCTET STRING с переменной длиной строки и тип OCTET STRING с фиксированной длиной строки.
- Фиксированный (ограниченный по размеру) тип: OCTET STRING ((SIZE(n))
![]() - Типы OCTET STRING переменной длины
![]() Тип OCTET STRING с фиксированной (т.е. ограниченной по размеру) длиной строки кодируется только с соответствующим набором октет.
Типы OCTET STRING переменной длины кодируются полем с длиной 16 бит (целое число без знака в дополнительном двоичном коде), за которым следует определенное число октет с данными.
Пример - Следующие определения
могут быть отображены в представлении типа языка C следующим образом:
F.4.5 Тип SEQUENCE
Кодирование значения списка типа (SEQUENCE) формируется кодированием каждого элемента SEQUENCE в порядке их определения в типе ASN.1 SEQUENCE. Никакое выравнивание не выполняется.
Пример - Следующие определения
могут быть отображены на представление типа языка C следующим образом:
и кодирование по MDER будет иметь вид, представленный на рисунке F.5.
![]() F.4.6 Тип SEQUENCE OF
Кодирование значения SEQUENCE OF конструируется, а октеты содержания представляют закодированные значения элементов типа SEQUENCE OF, таким образом, чтобы ему предшествовало поле счетчика, указывающее на число элементов, и поле длины, указывающее полную длину структуры данных (в которой не учитываются сами счетчик и длина). За заголовком следуют упорядоченные закодированные элементы. См. рисунок F.6.
![]() Поле счетчика и поле длины с содержанием "0" указывает на пустой список структуры данных. Такая комбинация значений допускается.
Пример - Следующие описания:
Array1 ::= SEQUENCE OF Entry
могут быть отображены на представление типа языка C следующим образом:
F.4.7 Тип CHOICE
Кодирование значения выбора конструируется, а октеты содержания представляют закодированные значения выбранной альтернативы, таким образом, чтобы ему предшествовало поле тега, указывающее на выбранную альтернативу, и поле длины, указывающее длину кодирования выбранной альтернативы. См. рисунок F.7.
![]() Пример - Следующее описание
может быть отображено в представлении типа языка C следующим образом:
- Правила для значений тегов определяются следующим образом:
- теги могут быть заданы явно или неявно;
- абстрактный синтаксис для неявно заданных тегов не содержит явно заданного номера выбора и, следовательно, требуется правило для присвоения значений полю choice_id. Для неявно заданных тегов значения поля choice_id начинаются со значения 1 и последовательно размещаются в порядке абстрактных синтаксических выборов. В приведенном выше примере, значения поля choice_id для полей one_type_chosen и two_type_chosen будут равны 1 и 2 соответственно;
- абстрактный синтаксис для явно заданных тегов содержит явно заданный номер выбора, который отражается непосредственно в поле choice_id только что определенного правила кодирования. В этом случае процедуры выбора должны выполняться последовательно и в зависимости от применения могут быть несвязными, как показано в следующем примере:
F.4.8 Тип ANY DEFINED BY и Instance-of
ANY DEFINED BY (ASN.1 1988/90) или тип instance-of (ASN.1 1994) кодируется заголовком поля длины, чтобы задать число октет в кодировании выбранного значения, как представлено ниже. См. рисунок F.8.
![]() Данный тип ссылается на встроенные синтаксисы, которые задаются с помощью зарегистрированного идентификатора объекта (OID). См. приложение H IИСО/ИИЭР 11073-20101 [14] для случаев совместимости.
Пример - Следующее описание
может быть отображено в представление типа языка C следующим образом:
Данный пример показывает, кодирование байтов SEQUENCE, содержащее контекстно зависимый идентификатор объекта, и значение ANY DEFINED BY.
В предыдущем преобразовании, поле type-id является контекстно-свободным идентификатором объекта. Приложение должно использовать поле идентификатора, чтобы привести поле any_data к правильному типу данных. Символьный тип данных для поля any_data, по существу, не несет значения и предоставляет только адрес поля. Следует отметить, что длина может быть 0, что означает, что поле any_data не существует.
Тип Instance-of кодирует ASN.1 конструкцию TYPE-IDENTIFIER и идентичен ANY DEFINED BY, кодирующим с целью обратной совместимости.
F.5 Числа с плавающей точкой
Ограниченное подмножество ASN.1, которое может быть отображено с MDER не содержит тип данных FLOAT. Вместо этого, в настоящем стандарте определены собственные типы данных с плавающей точкой FLOAT-Type и SFLOAT-Type.
F.6 Структура данных с плавающей точкой FLOAT-Type
Тип FLOAT-Type отображается как 32-битная структура, форматированная в соответствии с цифровым форматом медицинских приборов (MDNF).
MDNF это 32-битное слово, содержащее 8-битную целочисленную экспоненту со знаком, за которой следует 24 битная целочисленная мантисса со знаком. См. рисунок F.9.
![]() Представленное число будет иметь вид: (мантисса)x10экспонента. И экспонента и мантисса записываются в двоичном дополнительном коде. Для обозначения точности мантисса и экспонента выравниваются, как описано в F.8.
Существует специальные значения, которые представлены в таблице F.2.
Таблица F.2
В каждом из этих специальных случаев экспонента будет равна нулю. Это дает следующие диапазоны представления чисел:
- -128 <= показатель <= 127
- -2 ((223) - 3) <= мантисса <= + ((223) - 3 )
- NaN = + ((223) - 1)
- NRes = - 2(2**23)
- +/- БЕСКОНЕЧНОСТЬ = +/- ((223) - 2)
NaN следует применять для индикации неверного результата вычислительного шага или для индикации потерянных данных, связанных с неспособностью аппаратуры предоставить корректные измерения, возможно из-за сбоя датчика. Менеджер должен отразить эту информацию очисткой дисплея или каким-либо другим способом.
NRes следует применять для индексации того, что значение не может быть представлено при доступном диапазоне и разрешении. Такая ситуация может быть последствием переполнения снизу или сверху, когда число требующихся значимых цифр превышает максимальный или минимальный диапазон экспоненты, или же когда число превышает максимальный или минимальный диапазон экспоненты.
Чтобы сохранить непрерывный диапазон специальных значений, значение бита 0x00800001 сохранено для будущего применения.
Тип SFLOAT-Type может использоваться для представления чисел с плавающей точкой с очень ограниченным диапазоном значений, что значительно сокращает размер полезной информации.
SFLOAT-Type это 16-битное слово, содержащее 4-битный целочисленный показатель со знаком, за которым следует 24 битная целочисленная мантисса со знаком. См. рисунок F.10.
![]() точкой
Представленное число будет иметь вид: (мантисса)x10экспонента. И экспонента и мантисса записываются в двоичном дополнительном коде. Для обозначения точности мантисса и экспонента выравниваются, как описано в F.8.
Существуют специальные значения, которые представлены в таблице F.3.
Таблица F.3
Специальные значения выражают следующие значения:
- NaN [экспонента равна 0, мантисса равна + (211 - 1)
- NRes [экспонента равна 0, , мантисса равна - (211)
- + INFINITY [экспонента равна 0, , мантисса равна + (211 - 2)
- - INFINITY [экспонента равна 0, , мантисса равна -(211 - 2)
В каждом из этих специальных случаев экспонента будет равна нулю. Использование экспоненты для указания допустимых цифр в описании SFLOAT совпадает с F.8.
Чтобы сохранить непрерывность диапазона специальных значений, битовое значение 0x0801 зарезервировано, но оно не представляет определенного числового значения.
Число с плавающей точкой может быть представлено методом, который обозначает точность значения, представляя мантиссу в целочисленной форме, чтобы обозначить число значащих цифр в числе с плавающей точкой и соответствующим образом подогнать экспоненту. Ниже приводятся примеры:
- если экспонента < 0, то целочисленное значение экспоненты показывает число значащих цифр после точки. См. примеры в таблице F.4.
Таблица F.4
- если экспонента >= 0, то число значащих цифр после точки равно нулю и мантисса представляет точность значения. См. примеры в таблице F.5.
Таблица F.5
Значения не требующие представления, находящиеся справа от точки, такие как частота пульса, представляются посредством размещения значения в наименее значащем байте мантиссы с экспонентой равной нулю. Например, значение 72 будет представлено как 0x00000048. Процент насыщения кислородом может быть представлен типом SFLOAT, если разместить значение в наименее значащем байте мантиссы. Например, значение 98 будет представлено как 0x0062. В то же время, если доступна более высокая точность (например, показание с точностью до 0.1 единицы измерения), то значение 72.0 будет представлено как 720 x 10-1, с мантиссой 0x0002D0 и экспонентой 0xFF и в результате значение будет 0xFF0002D0. Для типа SFLOAT значение 98.0 будет представлено как 980 x 10-1, с мантиссой из 0x3D4 и экспонентой из 0xF и имеет вид 0xF3D4.
(справочное)
В настоящем приложении приведен пример определения заголовков файлов, которые сформированы на языке ASN.1, представленном в приложении A. Настоящее приложение не включает коды, необходимые для преобразования этих структур в двоичных буферах в процессе передачи для машин с прямым или обратным порядком байтов.
#ifndef PHD_TYPES
#define PHD_TYPES
/*
Следующие определения типов, возможно, должны быть изменены в зависимости от компилятора и архитектуры машины.
(справочное)
H.1 Общие положения
Настоящее приложение представляет двоичные примеры сообщений, которыми обмениваются агент и менеджер.
H.2 Взвешенная шкала
H.2.1 Ассоциация
Агент отправляет менеджеру следующее сообщение. Этот пример предполагает, что агент описывается набором взвешенных шкал.
Менеджер отвечает агенту, что он может вступить в ассоциацию, но необходима конфигурация агента.
H.2.2.1 Удаленный вызов отчета о событии конфигурации
Агент сообщает менеджеру свою конфигурацию.
H.2.2.2 Удаленный ответ с отчетом о событии конфигурации
Менеджер отвечает, что он может задействовать конфигурацию агента.
H.2.3.1 Общие положения
Атрибуты GET MDS вызываются в любое время, когда устройство находится в состоянии ассоциации.
H.2.3.2 Получение запроса на все атрибуты MDS
Менеджер запрашивает агента об атрибутах его объекта MDS.
H.2.3.3 Получение ответов о всех атрибутах MDS
Агент отвечает менеджеру о всех своих атрибутах. В настоящем примере предполагается, что агент поддерживает AbsoluteTime (абсолютное время) и не поддерживает RelativeTime (относительное время). Кроме того, передаются также некоторые дополнительные поля.
H.2.4 Создание отчетов данных
H.2.4.1 Инициируемая агентом передача данных измерений
Агент отправляет непосредственный отчет о событии менеджеру, содержащий результаты измерений.
H.2.4.2 Ответ на инициируемую агентом передачу данных измерений
Менеджер подтверждает получение отчета о событии от агента.
H.2.4.3 Удаленное выполнение вызова подтвержденного действия по запросу данных в режиме одиночного ответа
Менеджер запрашивает измерения агента в режиме одиночного ответа.
H.2.4.4 Удаленное выполнение ответа на подтвержденное действие запроса данных в режиме одиночного ответа
Агент отвечает менеджеру, высылая ему свои измерения.
H.3 Пульсовый оксиметр
Предположение:
Эта передача данных измерения инициируется менеджером, и значение поля data-req-id устанавливается менеджером равным 1.
Pleth Wave
SaSpec:: размер массива = 5,
SampleType:: объем выборки = 16,
SampleType:: значимые биты = 16,
Период дискретизации = 20 мс
Число SpO2,
Период обновления числа 1 с
Агент отправляет девять сообщений менеджеру, которые примерно соответствуют представленному ниже формату, изменяя только информацию в сообщении (например, изменяются Invoke-id и scan-report-no).
В каждое десятое сообщение агент также включает значение SpO2.
(обязательное)
Данное приложение содержит коды номенклатуры, используемые в настоящем стандарте. Они скопированы из ИСО/ИИЭР 11073-10101 [12] или созданы для настоящего стандарта и включены в ИСО/ИИЭР 11073-10101.
Используемый в настоящем стандарте формат соответствует формату, определенному в ИСО/ИИЭР 11073-10101.
(справочное)
J.1 Общие положения
Многие аспекты информационных, сервисных и коммуникационных моделей устанавливаются в других стандартах ИСО/ИИЭР 11073. Настоящее приложение перечисляет происхождение структур ASN.1, номенклатур и правил кодирования, а также любых модификаций, адаптирующих их к предметной области персональных медицинских приборов. Целевая аудитория настоящего приложения - прежде всего пользователи, которые поддерживают и гарантируют непротиворечивость стандартов ИСО/ИИЭР 11073.
J.2 Структура ASN.1
Следующие структуры ASN.1 были импортированы из ИСО/ИИЭР 11073-10201:2004 [13] без модификации:
INT-U8, INT-I8, INT-U16, INT-I16, INT-U32, INT-I32, BITS-16, BITS-32, OID-Type, PrivateOid, HANDLE, InstNumber, TYPE, AVA-Type, AttributeList, AttributeIdList, FLOAT-Type, RelativeTime, HighResRelativeTime, AbsoluteTime, OperationalState, SystemModel, ProductionSpec, ProdSpecEntry, PowerStatus, BatMeasure, NuObsValue, NuObsValueCmp, SaSpec, SampleType, SaFlags, ScaleRangeSpec8, ScaleRangeSpec16, ScaleRangeSpec32, EnumObsValue, ConfirmMode, SetTimeInvoke, SegmSelection, SegmIdList, AbsTimeRange, SegmentInfoList, SegmentInfo, ObservationScan, и TimeProtocolId.
Следующие структуры ASN.1 были импортированы из ИСО/ИИЭР 11073-10201:2004 [13] с модификацией:
NomPartition, StoSampleAlg, MeasurementStatus и EnumVal.
Остальные структуры ASN.1 были созданы специально для настоящего стандарта.
J.3 Правила кодирования медицинских приборов (MDER)
MDER импортированы из ИСО/ИИЭР 11073-10101 [12]. Большинство изменений, внесенных в импортированные правила, были редакторскими; однако, некоторые из них были преобразованы в обязательные к выполнению (например, в таблице F.1).
J.4 Коды номенклатуры
J.4.1 Общие положения
Были добавлены четыре новых кода разделов: MDC_PART_PHD_DM, MDC_PART_PHD_HF, MDC_PART_PHD_AI и MDC_PART_RET_CODE. Остальные заимствованы из ИСО/ИИЭР 11073-10101 [12].
J.4.3 Коды объектов инфраструктуры
J.4.3.1 MDC_MOC
Все коды номенклатуры, начинающиеся с MDC_MOC_ заимствованы из ИСО/ИИЭР 11073-10101 [12].
J.4.3.2 MDC_ATTR
Были добавлены следующие коды, начинающиеся с MDC_ATTR_: MDC_ATTR_DEV_CONFIG_ID, MDC_ATTR_MDS_TIME_INFO, MDC_ATTR_METRIC_SPEC_SMALL, MDC_ATTR_SOURCE_HANDLE_REF, MDC_ATTR_SIMP_SA_OBS_VAL, MDC_ATTR_ENUM_OBS_VAL_SIMP_OID, MDC_ATTR_ENUM_OBS_VAL_SIMP_STR, MDC_ATTR_NU_VAL_OBS_BASIC, MDC_ATTR_PM_STORE_CAPAB, MDC_ATTR_PM_SEG_MAP, MDC_ATTR_PM_SEG_PERSON_ID, MDC_ATTR_SEG_STATS, MDC_ATTR_SEG_FIXED_DATA, MDC_ATTR_PM_SEG_ELEM_STAT_ATTR, MDC_ATTR_SCAN_HANDLE_ATTR_VAL_MAP, MDC_ATTR_SCAN_REP_PD_MIN, MDC_ATTR_ATTRIBUTE_VAL_MAP, MDC_ATTR_NU_VAL_OBS_SIMP, MDC_ATTR_PM_STORE_LABEL_STRING, MDC_ATTR_PM_SEG_LABEL_STRING, MDC_ATTR_TIME_PD_MSMT_ACTIVE, MDC_ATTR_SYS_TYPE_SPEC_LIST, MDC_ATTR_METRIC_STRUCT_SMALL, MDC_ATTR_NU_CMPD_VAL_OBS_SIMP, MDC_ATTR_NU_CMPD_VAL_OBS_BASIC, MDC_ATTR_ID_PHYSIO_LIST. Остальные заимствованы из ИСО/ИИЭР 11073-10101 [12].
J.4.3.3 MDC_ACT
Были добавлены следующие коды, начинающиеся с MDC_ACT_: MDC_ACT_DATA_REQUEST и MDC_ACT_SEG_TRIG_XFER. Остальные заимствованы из ИСО/ИИЭР 11073-10101 [12].
J.4.3.4 MDC_NOTI
Все коды MDC_RET_CODE были заново созданы для настоящего стандарта.
J.4.4 Медицинская система СКАДА
Был добавлен код MDC_BODY_FAT. Остальные заимствованы из ИСО/ИИЭР 11073-10101 [12].
J.4.5 Коды размерностей
Все коды размерностей заимствованы из ИСО/ИИЭР 11073-10101 [12].
J.4.6.1 MDC_DEV_SPEC_PROFILE
Были добавлены следующие коды, начинающиеся с MDC_DEV_SPEC_PROFILE_: MDC_DEV_SPEC_PROFILE_GLUCOSE, MDC_DEV_SPEC_PROFILE_HF_CARDIO, MDC_DEV_SPEC_PROFILE_HF_STRENGTH, MDC_DEV_SPEC_PROFILE_AI_ACTIVITY_HUB and MDC_DEV_SPEC_PROFILE_AI_MED_MINDER. Остальные заимствованы из ИСО/ИИЭР 11073-10101 [12].
J.4.6.2 MDC_TIME_SYNC
Все коды MDC_TIME_SYNC были заново созданы для настоящего стандарта.
(справочное)
И ДОКУМЕНТОВ НАЦИОНАЛЬНЫМ СТАНДАРТАМ РОССИЙСКОЙ ФЕДЕРАЦИИ
Таблица ДА.1
Вернуться в "Каталог нормативных документов"
Источник информации: https://internet-law.ru/documents/prod/gost-r_gosudarstvennyj-standart/48/gost_51273.html
На правах рекламы:
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||