ГОСТ Р HCO/HL7 27931-2015
разом не встречаются в сообщении HL7, например, идентификация алгоритма поиска,
уровень совпадения и т. д., должны по-прежнему передаваться в сегменте QPD, как если
бы они передавались в запросе с параметрами. Точный список сепиентов и полей, кото
рые могут использоваться как параметры поиска, должны быть описаны в заявлении о
соответствии, составленном для данного запроса.
Запрос с использованием сложного выражения (QSC)
Третий вариант известен как «запрос с использованием сложного выражения», по
скольку в нем применяется тип данных QSC, предназначенный для описания сложных
выражений, используемых в запросе к виртуальной таблице. В заявлении о соответствии,
составленном для такого запроса,должны быть указаны все переменные, которые клиент
может использовать в выражении. Во время исполнения клиент может сформулировать
точный критерий поиска в форме «дерева»,состоящего из узлов операторов и операндов,
ограничивающего разрешенные входные параметры. Для выполнения такого запроса
сервер должен быть готов к анализу и интерпретации условия поиска при выполнении за
проса. Сервер может перевести входное выражение на свой местный язык обработки
данных или сразу интерпретировать запрос, чтобы применить выражение к каждому эле
менту виртуальной таблицы. Сложное выражение поиска, задаваемое клиентом, анало
гично оператору выборку на языке SQL, выполняемому в реляционной базе данных.
Этот вариант наиболее похож на запрос к виртуальной таблице VQQ (Virtual Table
Query).
Выбор варианта формулирования запроса зависит от многих факторов. В варианте
со сложным выражением (QSC) клиент может выбрать любые из предложенных перемен
ных и указать для каждой выбранной переменной любые допустимые операторы и значе
ния. Напротив, в запросе с параметрами или в запросе по шаблону клиент должен задать
значения для ровно одного набора предложенных переменных.
Вариант запроса с простым параметром легко разбирать и обрабатывать, посколь
ку в нем используются позиционные параметры, то есть параметры, которые предопреде
лены и задаются в фиксированном порядке. Аналогично, обработка запроса по шаблону
также достаточно прост, поскольку параметры передаются в известных полях конкретных
сегментов. Напротив, запрос со сложным выражением требует больше усилий по разбору
и обработке вследствие его гибкости и необязательности элементов. В то время как вари
ант запроса со сложным выражением обеспечивает клиенту большую функциональность,
он требует от сервера и больших усилий по его обработке. И наоборот, варианты запроса
с простым параметром и запроса по шаблону предлагают клиенту меньшую функцио
нальность, но обычно серверу легче их реализовать, поскольку выполнение таких запро-
965