Типы данных. Абстрактная спецификация
Основной/технический редактор: Gunther Schadow, gunther@aurora.rg.iupui.edu, Regenstrief Institute for Health Care.
Технический редактор: Paul Biron, paul.v.biron@kp.org Kaiser Permanente, Southern California.
Технический редактор: Lloyd McKenzie, lmckenzi@ca.ibm.com, IBM Global Services.
Технический редактор: Grahame Grieve, grahame@kestral.com.au, Kestral Computing Pty. Ltd.
Технический редактор: Doug Pratt, Douglas.Pratt@siemens.com, Siemens.
Дата и время последней публикации: 20080909 14:49
Предисловие
Типы данных, используемые в стандарте HL7 Версии 3, определены в настоящем документе на абстрактном уровне, не зависящем от представления. Под "независимостью от представления" понимается независимость как абстрактного синтаксиса, так и его применения от конкретной технологии реализации.
Этот документ сопровождается спецификациями технологии реализации ITS (Implementation Technology Specification). Документы ITS могут служить краткими справочниками по типам данных, которые лучше ориентированы на практическое представление этих типов с помощью данной технологии реализации.
Для ускоренного информирования в таблицах словарных значений, приведенных в настоящей спецификации, перечислено текущее содержание словарных доменов. Однако в любой заданный момент времени нормативным источником этих доменов являются таблицы словарных значений, хранящихся в базе данных модели RIM. Для некоторых больших доменов приведены только примеры возможных значений. Для получения полного содержания домена можно осуществить поиск по имени домена, ассоциированному с таблицей значений, хранящейся в словаре модели RIM.
Выражения признательности
Настоящая спецификация воплощает результат многолетней интенсивной работы с использованием электронной почты, телеконференций и обсуждений на различных встречах. Ее содержание согласовано с помощью голосования. Выражаем признательность многих лицам, которые в разное время участвовали в проектировании, дискуссиях и подаче предложений на голосование. Председатель рабочей группы по разработке этой спецификации Gunther Schadow (Regenstrief Institute for Health Care) возглавлял эту работу и стал основным автором настоящего документа. В разное время соредакторами этого документы были Paul V. Biron (Kaiser Permanente), Doug Pratt (Siemens), Lloyd McKenzie (IBM) и Grahame Grieve (Kestral Computing Pty. Ltd.). Основной вклад в форме размышлений и поддержки внесли (Regenstrief Institute), George Beeler, Stan Huff (Intermountain Health Care), а также Mike Henderson (Kaiser Permanente), Anthony Julian (Mayo), Joann Larson (Kaiser Permanente), Mark Shafarman (Oasis Healthcare Systems), Wes Rishel (Gartner Group), и Robin Zimmerman (Kaiser Permanente). Выражаем признательность за критические замечания и предложения новых идей Bob Dolin (Kaiser Permanente), Clem McDonald (Regenstrief Institute), Kai Heitmann (HL7 Germany), Rob Seliger (Sentillion), и Harold Solbrig (Mayo Clinic). Неоценимую поддержку оказали члены рабочей группы Laticia Fitzpatrick (Kaiser Permanente), Matt Huges, Randy Marbach (Kaiser Permanente), Larry Reis (Wizdom Systems), Carlos Sanroman (Kaiser Permanente), Greg Thomas (Kaiser Permanente). Благодарим James Case (University of California, Davis), Norman Daoust (Partners HealthCare Systems), Irma Jongeneel (HL7 The Netherlands), Michio Kimura (HL7 Japan), John Molina (SMS), Richard Ohlmann (McKessonHBOC), David Rowed (HL7 Australia) и Klaus Veil (Macquarie Health Corp., HL7 Australia) за предоставление своих знаний при решении критичных вопросов. Разработка настоящей спецификации была обеспечена организацией Regenstrief Institute for Health Care.
Открытые вопросы
Спецификация соответствия с помощью ограничения типов данных.
B.1 Введение
B.1.1 Что такое тип данных?
Каждый элемент данных имеет определенный тип данных, определяющий смысл (семантику) значений, которые могут быть присвоены элементу данных. Для содержательного обмена данных необходимо знать определения передаваемых значений. Это верно как для комплексных "значений", например, деловых сообщений, так и для более простых значений, например, строк символов или целых чисел.
В соответствии со стандартом ИСО 11404, тип данных представляет собой "совокупность различных значений, характеризуемую свойствами этих значений и операциями над этими значениями". С типом данных связаны специфика и широта. Спецификой типа данных являются свойства, присущие каждому значению этого типа. Широта типа данных оценивается множеством значений, имеющих этот тип ("набором значений" этого типа).
Семантическими свойствами типов данных является то, что стандарт 11404 называет "свойствами этих значений и операциями над этими значениями". Семантическому свойству типа данных присваивается некоторое имя. Семантическое свойство имеет определенное значение для каждого значения этого типа данных. Значение свойства значения данных само должно иметь определенный тип данных - не существует никаких значений данных, для которых нельзя было бы определить тип данных.
Поэтому типы данных являются основными строительными блоками, используемыми для конструирования сущностей более высокого порядка - сообщений, компьютеризованных медицинских документов, объектов деловой сферы и транзакций с этими объектами. В чем же тогда состоит различие между типом данных и сообщением, документом или деловым объектом? Значения типа данных существуют сами по себе, рассматривается только значение, для него не определяются ни идентичность, ни состояние, ни изменение состояния. Напротив, для деловых объектов можно отслеживать идентичность и состояние, свойства идентифицированного объекта могут изменяться с течением времени. Этого нет у значений данных: значение и его свойства постоянны. Например, число 5 всегда является числом 5, между этим числом 5 и тем числом 5 нет никакой разницы (они не обладают идентичностью), число 5 никогда не станет числом 6 (состояние не изменяется). Значения данных можно рассматривать как неизменные объекты, идентичность которых не играет никакой роли (идентичность и равенство суть одно и то же).
________________
В методологии HL7 Message Development Framework определены "режимы изменения" полей сообщения. Поскольку значения данных не обладают ни идентичностью, ни состоянием, ни изменением состояния, то эти режимы не применяются к свойствам значений данных. Значения данных и их свойства никогда не изменяются. Поле объекта (например, сообщения) может быть изменено, и в этом случае значение этого поля заменяется другим значением. Но само значение никогда не изменяется.
B.1.2 Представление значений данных
Значения данных могут быть представлены с помощью разных символов, но смысл значения не связан ни с каким конкретным представлением.
Например, порядковые номера (неотрицательные целые числа) намеренно определены как тип данных, в котором для каждого значения есть следующее значение, а нуль не следует ни за каким порядковым значением. На основе этого определения можно определить операции сложения, умножения и другие математические операции. Какое бы представление не отражало правила, описанные в намеренном определении порядкового типа данных, оно будет действительным представлением порядковых номеров. Примерами действительных представлений порядковых номеров могут служить строки десятичных цифр, пакеты стеклянных шариков или царапины на стене. Число "пять" может быть представлено словом "пять", арабской цифрой "5" или римской цифрой "V". Представление не играет роли, пока оно соответствует семантическому определению типа данных.
Другим примером может служить булевский тип данных, который определяется совокупностью двух разных значений, соответствующих истине (true) и лжи (false), и правилами отрицания значения и сочетания этих значений в операциях конъюнкции и дизъюнкции. Булевские значения могут быть представлены словами "true" и "false", "да" и "нет", числами 0 и 1 или любыми двумя знаками, отличающимися друг от друга. Представление значений типа данных не играет роли, пока оно соответствует семантическому определению типа данных.
Настоящая спецификация определяет семантику, смысл типов данных, используемых в стандартах HL7. Она касается только семантики и не зависит от особенностей представления или обработки либо от специфической технологии реализации. Для различных технологических подходов представления значений определенных в ней типов данных разработаны дополнительные стандарты. Они называются "Спецификацией реализуемой технологии" (Implementable Technology Specification - ITS). Эти стандарты указывают, как должны представляться значения, соответствующие семантическим определениям, приведенным в настоящей спецификации, они могут задавать синтаксис символьного или двоичного представления, а также описывать компьютерные процедуры выполнения действий над этими представлениями значений данных. Смысл этих представлений, используемых при передаче данных, при создании данных и их обработке компьютерными программами определяется на основе настоящее* стандарта, являющегося семантической спецификацией типов данных.