double arrow

Мужской

Результат выполнения программы дал ответ «мужской», интерпретация которого может означать, что женщин данного возраста на лечение не поступало.

· Функция $Query. Исходя их особого характера функции $Order, она, прежде всего, предназначена для получения всех по порядку существующих индексов в пределах данного уровня. Однако иногда более естественным является другой способ просмотра. Если просмотр последовательности индексов сначала уходит в глубину и показывает детали на более высоких уровнях до тех пор, пока эти уровни не закончатся, а потом просматривается следующая запись на более высокой ступени индексации, то это так называемый поиск «depth-first» (сначала вглубь), осуществляемый с помощью функции $Query. С помощью этой функции мы получаем имя узла на следующем уровне, но в отличие от функции $O, получается полная ссылка в виде строки символов:

USER>w $Q(^Medizine(27))

^Medizine(27,"мужской","110/80",38.6)

USER>w $Q(^Medizine(27,"мужской","110/80",38.6))

^Medizine(34,"женский","115/85")

Чтобы получить в нашей модели данных все определённые записи, необходимо применить цикл:

USER>d ^p6

^Medizine(27,"мужской","110/80",38.6) = Тарасов

^Medizine(34,"женский","115/85") = Ивененко

^Medizine(45,"мужской",36.6) = Петров

^Medizine(50,"женский") = Сидорова

^Medizine(60,"мужской","100/80",39.3) = Горбунков

^Medizine(65) = Турчинов

^Medizine(65,"мужской","125/60",36.6) = Иванов

^Medizine(71,"мужской","140/60",36.9) = Иващенков

· Анализ индексированных переменных с помощью функций$QLength и $QSubscript.В некоторых вариантах постановки задачи, вне зависимости от того, имеем ли мы дело с глобальной или локальной индексированной переменной, возникает необходимость исследования её структуры. На переднем плане тогда стоят вопросы:




1. Сколько уровней (индексов) имеет индексированная переменная?

2. Каково значение i-го индекса?

Демонстрация использования данной функции в терминале имеет следующий вид:

USER>w $QL("^Medizine(65)")

USER>w $QL("^Medizine(65,""мужской"")")

В последнем примере использованы двойные кавычки, чтобы интерпретатор языка не перепутал индекс и аргумент функции $QL. Аргумент всегда берётся в двойные кавычки.

Теперь обратимся к функции $QSubscript (сокращённо $QS), которая имеет два аргумента. Первым аргументом является исследуемое значение имени индексированной переменной, второй задаёт, какой именно индекс следует извлечь. Если в общем случае значение имени имеет форму Name(s1, s2, s3….sn), то результат функции $QS(Name(s1, s2, s3….sn), m) равен значению m-го индекса в случае, если m не превышает n:



USER>w $QS("^Medizine(27,""мужской"",""110/80"")",3)

110/80

· Комбинированное использование рассмотренных функций:

Пусть нужно дать ответ на вопрос, поступал ли на лечение пациент с фамилией «Иванов», и если поступал, то вывести информацию о нём. Ответом является программа, которая запрашивает фамилию пациента и выдаёт параметры, характеризующие его состояние. Фамилия помещается в переменную p, в цикле пролистываются все существующие записи о пациентах и далее если находим, что очередная запись равна р (фамилия человека), то выводим на экран все данные о нём.

Результат работы такой программы приведён на рисунке 9.1

Рисунок 9.1 – Результат работы программы.






Сейчас читают про: