Результаты узла Фильтрация таблицы
Данный узел или опция доступны, только если они включены в лицензии PolyAnalyst Server.

Окно просмотра результатов узла Фильтрация таблицы, как и в других узлах в системе PolyAnalyst, представляет собой стандартную сетку данных. Здесь отображается исходная таблица данных. Однако на панели инструментов появляются дополнительные кнопки: Создать фильтр, Создать подмножество, Создать узел "Фильтрация строк" и Создать узел "Производные колонки".

dsfiltertoolbar

Обратите внимание на то, что три последние кнопки будут неактивны до тех пор, пока вы не создадите фильтр.

Для того чтобы создать фильтр и отфильтровать таблицу в режиме реального времени путем редактирования параметров для выбранных колонок, нажмите на кнопку Создать фильтр. Откроется новое окно:

dsfilter filter.rus

Оно состоит из двух частей (блоков). Верхний блок (Выражение) содержит списочный элемент управления с атомарными выражениями (условиями фильтрации по отдельным колонкам). Каждый элемент списка имеет кнопку удалить, условное обозначение (A1, A2,…​ ) и описание выражения. В случае длинного описания всплывают подсказки. Удаление элементов списка необходимо подтверждать.

Под списком находится поле для объединения составных (атомарных) элементов выражения. При нажатии на первые шесть кнопок (NOT, AND, OR, XOR, (, )) соответствующие команды вставляются в строку редактирования в то место, где расположен курсор. Кнопка Проверить синтаксис позволяет проверить правильность выражения на этапе его составления.

В нижнем блоке (Условие) пользователь может добавить или отредактировать атомарные элементы выражения. Слева имеется список с доступными колонками таблицы. При выборе колонок в правой части появляются элементы управления в зависимости от типа выбранного атрибута.

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

  • Для чисел и целых чисел – два поля редактирования для выбора точных границ диапазона.

  • Для дат – два селектора даты и времени для выбора точных границ временного интервала.

  • Для булевых данных – два чекбокса.

  • Для текстов – многострочное поле редактирования с подсветкой.

Также в нижнем поле имеются следующие элементы управления:

  • Кнопка Добавить добавляет текущее условие в верхний список (в поле Выражение). Также добавляется условие (AND).

  • Кнопка Изменить активна только в том случае, если в поле Выражение пользователь выбрал атомарный элемент. В этом случае поле Условие заполняется данными из существующего условия. При нажатии на кнопку Изменить это условие изменяется.

  • Кнопка ОК закрывает диалог и применяет к таблице текущий фильтр.

Если нажать на кнопку Создать фильтр после того, как таблица будет отфильтрована, то откроется окно фильтра, в котором уже содержится текущее выражение для фильтрации записей.

Итак, чтобы создать фильтр, выберите одну из доступных колонок из списка. Выберите метод сравнения, затем значение сравнения и нажмите Добавить. Перед добавлением второго или третьего значения попробуйте использовать булевский оператор OR или AND.

dsfilter cond1.rus

Диалоговое окно также отображает статистические данные о колонке для выбора значения для сравнения. По завершении настройки фильтра нажмите ОК.

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

После того, как фильтр будет создан, пользователи могут сгенерировать узлы Подмножество, Производные колонки или Фильтрация строк из окна просмотра. Новые узлы будут содержать выражение фильтра.

Кнопка Создать подмножество автоматически генерирует новый узел Подмножество, который включает только подмножество тех записей, которые соответствуют настроенному фильтру (если он был настроен). Новый узел Подмножество соединяется с тем же узлом, что и узел Фильтрация таблицы. Это – простой и быстрый способ создания подмножеств данных. Аналитик может создать узел Фильтрация таблицы, настроить различные фильтры и сохранить получившиеся подмножества данных в отдельных узлах для проведения дальнейшего анализа. Недостатком в данном случае является то, что узел Подмножество работает только с той входной таблицей, которая использовалась узлом Фильтрация таблицы. Корректная работа новых подмножеств данных не гарантирована в том случае, если они будут соединены с другими исходными узлами.

Кнопка Создать узел "Фильтрация строк" автоматически генерирует новый узел Фильтрация строк. Выражение нового узла эквивалентно настройке текущего фильтра. Эта кнопка упрощает создание новых узлов Фильтрация строк, которые хранят конкретные подмножества данных. Узел Фильтрация строк можно отсоединить от родительского узла и соединить с другим узлом и другой таблицей. Например, это может быть более поздняя по сравнению с предыдущей таблица с теми же исходными колонками, но с гораздо большим количеством исходных записей. При таком подходе, вместо того чтобы составлять выражение фильтра для нового узла Фильтрация строк, пользователь может просто отредактировать готовое выражение, созданное с помощью узла Фильтрация таблицы. Выражение узла Фильтрация строк подлежит редактированию, и в этом его главное преимущество по сравнению с узлом подмножеств: в последнем настройка выражения не предусмотрена, и узел подмножеств только сохраняет список строк, отвечающих условию фильтра. Однако, узлы подмножеств выполняются быстрее, чем узлы фильтрации строк. Если ваша исходная таблица постоянно изменяется (добавляются новые строки или удаляются старые), то узел Фильтрация строк будет по-прежнему функционировать, поскольку выражение в нем останется неизменным. Узел Подмножество при работе с такой таблицей не всегда можно будет использовать, поскольку после изменения исходной таблицы присутствие в ней нужных "указателей строк" не гарантируется.

Кнопка Создать узел "Производные колонки" автоматически генерирует новый узел Производные колонки, который включает одну новую колонку. Новая колонка является булевской, и содержит значения "истина" или "ложь". Колонка содержит значение "истина", если запись отвечает условиям фильтра, в противном случае колонка имеет значение "ложь". Узел Производные колонки генерирует только одну дополнительную колонку; при этом происходит экономия дискового пространства, по сравнению с узлами Фильтрация строк или Подмножество, которые подразумевают хранение избыточной информации об исходных записях. Выходная таблица узла Производные колонки при этом будет содержать все записи – и те, которые отвечают условию фильтра, и те, которые не отвечают. Узлы Подмножество и Фильтрация строк сохранят только те записи, которые соответствуют условию фильтра. Выражение новой колонки узла Производные колонки также подлежит редактированию, а сделать это гораздо проще, чем создавать новое выражение с нуля.

Создание выражений фильтра в Редакторе отчетов

Выражения фильтра настраиваются для объектов фильтрации таблицы, которые добавляются в качестве объектов в Редакторе отчетов. Выражение принимает следующие токены:

  • AND, OR – логические операции между частями выражения. Например: DATE_START >= Dstart AND DATE_START < Dend

  • ONEOF, NONEOF - специальные функции для строковых/категориальных переменных. Например: ONEOF(PATIENT_ID, Spatientid); NONEOF(DIAGNOSIS, - MVA - , - IHD - )

  • <, >, < =, >=, =, <> – для сравнения чисел, дат, релевантности и, возможно, для строк или категорий. Например: MPG > Nmpg; Origin != Sorigin.

  • Параметры да/нет (т.е. B-sex) – фильтрует значения таблиц, соответствующих любому выбранному значению параметра. Например: SEX = Bsex; SEX = yes

  • Текстовый параметр (т.е. T-notes) – возвращает релевантность применения значения параметра (PDL-выражение) в текстовую ячейку. Эту релевантность следует сравнить с другой числовой константой или параметром. Например: Tnotes > 0; Tnotes > Nrelevance.

Параметры нужно заключить в одинарные кавычки и поставить один из следующих префиксов: T(текст), S(строка), C(категория), B(да/нет), D(дата), N(число).

Использование фильтров в Редакторе отчетов

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

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

  • Для чисел и целых чисел – поле редактирования для набора значений.

  • Для дат – селектор даты/времени.

  • Для булевых значений – три чекбокса (установленный, очищенный или пустой).

  • Для текстов – многострочное поле PDL-редактора.