Класс ContainerMetadata

<< Показать Оглавление >>

Описание API > Формат описания формы > Классы структуры формы      

Класс ContainerMetadata

Элементы на заполняемой форме могут быть сгруппированы различным образом. В общем смысле под группами могут пониматься:

•группы,

•панели,

•вкладки (tab),

•иные подобные элементы.

При описании формы группа описывается классом-контейнером ContainerMetadata

Класс-контейнер для других элементов

Поле

Тип поля

Обязательное

Описание

Childs

Список из FormElementMetadata

Да

Коллекция (иерархия) элементов на форме

Key

String

Да

Идентификатор контейнера в ИС

Synonyms

Список строк

Да

Набор всех возможных вариантов произнесения названия группы.

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

Пример использования контейнера:

 

{
    "Childs":[
        {…}
        {…}
    ],
    "Synonyms":[
        "До нагрузки",
        "До"
    ],
    "Key":"ea0ac1b8-d91d-4b98-8d63-4f565048ab77"
}

 

В разных группах могут содержаться элементы с одинаковыми названиями.

info

Например, в группах «До нагрузки» и «После нагрузки» может быть одинаковое поле «Пульс».

Для удобства заполнения подобных элементов была введена концепция «активной группы» (или поля). Изначально активная группа является пустой.

Если рассматривать тот же пример, то при произнесении пользователем фразы «До нагрузки» соответствующая группа будет установлена как активная. Это означает, что если дальше пользователь произнесет фразу «Пульс 68», то в ИС будет отправлено уведомление о заполнении соответствующего поля в данной группе. Поле в соседней группе «После нагрузки» будет проигнорировано.

Чтобы сделать активной другую группу, следует произнести её название (в данном случае: «После нагрузки»).

Чтобы сделать группу неактивной, следует перейти к заполнению поля, находящегося вне группировки (в данном случае это могут быть «Пол» или «Описание»).

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

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

Ответ от Voice2Med при фокусе на контейнере

Voice2Med отправляет в ИС сообщение, когда пользователь произносит название какой-либо группы и эта группа становится активной.

 

{
  "MessageType": 2,
  "Data": {
      "Key": "ea0ac1b8-d91d-4b98-8d63-4f565048ab77"
  }
}

Обратное уведомление о фокусе на группе или элементе

ИС должна отправить в Voice2Med уведомление в случае, если пользователь вручную установил фокус на любой элемент или переключился на другую группу (например, если пользователь переключился на другую вкладку на форме).

 

{
  "MessageType": 5,
  "Data": {
       "Key": "ea0ac1b8-d91d-4b98-8d63-4f565048ab77"
  }
}

При необходимости сбросить активную группу нужно в поле Key передать null.

 
{
  "MessageType": 5,
  "Data": {
       "Key": null
  }
}