Copyright © 2026 NEMA
Содержание
Список рисунков
Список таблиц
Информация в данной публикации была признана технически обоснованной по консенсусу лиц, участвовавших в разработке и утверждении документа на момент его создания. Консенсус не обязательно означает единогласное согласие всех лиц, участвующих в разработке данного документа.
Стандарты и руководящие документы NEMA, одним из которых является документ, содержащийся в настоящем издании, разрабатываются в рамках добровольного процесса разработки стандартов на основе консенсуса. Этот процесс объединяет добровольцев и/или выявляет мнения лиц, заинтересованных в теме, охватываемой данной публикацией. Хотя NEMA администрирует процесс и устанавливает правила для обеспечения справедливости при достижении консенсуса, NEMA не пишет документ и не проводит независимое тестирование, оценку или проверку точности или полноты какой-либо информации, а также обоснованности каких-либо суждений, содержащихся в его стандартах и руководящих документах.
NEMA не несёт ответственности за любые телесные повреждения, имущественный ущерб или иные убытки любого характера, будь то специальные, косвенные, последующие или компенсационные, прямо или косвенно вытекающие из публикации, использования, применения или полагания на данный документ. NEMA отказывается от каких-либо гарантий, явных или подразумеваемых, относительно точности или полноты любой информации, опубликованной в данном документе, и не гарантирует, что информация в данном документе будет отвечать каким-либо конкретным целям или потребностям. NEMA не берёт на себя обязательств по гарантированию характеристик продуктов или услуг любого отдельного производителя или продавца на основании данного стандарта или руководства.
Публикуя и предоставляя доступ к данному документу, NEMA не берёт на себя оказание профессиональных или иных услуг от имени или в интересах какого-либо лица или организации, а также не берёт на себя выполнение каких-либо обязанностей, которые какое-либо лицо или организация должно перед третьими лицами. Любой, кто использует данный документ, должен полагаться на собственное независимое суждение или, в зависимости от обстоятельств, обратиться за консультацией к компетентному специалисту для определения мер разумной предусмотрительности в любой конкретной ситуации. Информация и иные стандарты по теме, охватываемой данной публикацией, могут быть доступны из других источников, которые пользователь может пожелать изучить для получения дополнительных взглядов или информации, не охваченных данной публикацией.
NEMA не обладает полномочиями и не берёт на себя контроль за соблюдением или обеспечение выполнения положений данного документа. NEMA не сертифицирует, не тестирует и не инспектирует продукты, конструкции или установки в целях безопасности или охраны здоровья. Любая сертификация или иное заявление о соответствии любой информации по безопасности и охране здоровья в данном документе не может быть приписано NEMA и является исключительной ответственностью лица, проводящего сертификацию, или составителя такого заявления.
Настоящий стандарт DICOM был разработан в соответствии с процедурами Комитета по стандартам DICOM.
Стандарт DICOM структурирован как многочастевой документ с использованием руководящих принципов, установленных в [ISO/IEC Directives, Part 2].
DICOM® является зарегистрированным товарным знаком Национальной ассоциации производителей электрооборудования (NEMA) для её стандартных публикаций, относящихся к цифровой передаче медицинской информации; все права защищены.
HL7® и CDA® являются зарегистрированными товарными знаками организации Health Level Seven International; все права защищены.
SNOMED®, SNOMED Clinical Terms®, SNOMED CT® являются зарегистрированными товарными знаками Международной организации по разработке стандартов терминологии в области здравоохранения (International Health Terminology Standards Development Organisation , IHTSDO); все права защищены.
LOINC® является зарегистрированным товарным знаком Regenstrief Institute, Inc.; все права защищены.
Протоколы связи, определяемые в настоящей части PS3, тесно соответствуют эталонной модели взаимодействия открытых систем ISO (ISO Open Systems Interconnection Basic Reference Model, ISO 7498-1, см. Рисунок 1-1). Они относятся к следующим уровням: физическому (Physical), канальному (Data Link), сетевому (Network), транспортному (Transport), сеансовому (Session), представительному (Presentation) и службам управления ассоциацией (Association Control Services, ACSE) прикладного уровня. Протоколы связи, определяемые настоящей частью, являются протоколами связи общего назначения (TCP/IP) и не специфичны для настоящего стандарта. Другие аспекты протоколов прикладного уровня рассматриваются в других частях настоящего стандарта, как описано в PS3.1 «PS3.1».
Следующие стандарты содержат положения, которые посредством ссылок в данном тексте составляют положения настоящего стандарта. На момент публикации были действительны указанные редакции. Все стандарты подлежат пересмотру, и сторонам соглашений, основанных на настоящем стандарте, рекомендуется рассмотреть возможность применения самых последних редакций стандартов, указанных ниже.
[ISO/IEC Directives, Part 2] 2021. 9.0. Rules for the structure and drafting of International Standards. http://www.iso.org/sites/directives/current/part2/index.xhtml .
[ISO 7498-1] 1994. Information Processing Systems - Open Systems Interconnection - Basic Reference Model.
[ISO 7498-3] 1997. Information Processing Systems - Open Systems Interconnection - Naming and Addressing.
[ISO 8327] 1996. Information Processing Systems - Open Systems Interconnection - Connection Oriented Session Protocol Specification.
[ISO 8649] 1988. Information processing systems - Open Systems Interconnection - Service definition for the Association Control Service Element (ACSE).
[ISO 8650] 1987. Information Processing Systems - Open Systems Interconnection - Protocol Specification for the Association Control Service Element.
[ISO/TR 8509] Information Processing Systems - Open Systems Interconnection - Service Conventions. ISO/TR 8509 был отозван. См. ISO/IEC 2382-26:1993 Information technology - Vocabulary - Part 26: Open systems interconnection .
[ISO 8822] 1988. Information processing systems - Open Systems Interconnection - Connection oriented presentation service definition.
[ISO 8823] 1988. Information processing systems - Open Systems Interconnection - Connection Oriented Presentation Protocol Specification.
[ISO 8824] 1990. Information processing systems - Open Systems Interconnection - Specification of Abstract Syntax Notation One (ASN.1).
[ISO 8825] 1990. Information processing systems - Open Systems Interconnection - Specification of Basic Encoding Rules for Abstract Syntax Notation One (ASN.1).
[ISO/IEC 9545] 1994. Information processing systems - Open Systems Interconnection - Application Layer Structure.
[RFC791] September 1981. Internet Protocol - DARPA Internet Protocol Specification. http://tools.ietf.org/html/rfc791 .
[RFC792] September 1981. Internet Control Message Protocol - DARPA Internet Program Protocol Specification. http://tools.ietf.org/html/rfc792 .
[RFC793] September 1981. Transmission Control Program - DARPA Internet Protocol Specification. http://tools.ietf.org/html/rfc793 .
[RFC950] August 1985. Internet Subnetting. http://tools.ietf.org/html/rfc950 .
[RFC1881] December 1995. IPv6 Address Allocation Management. http://tools.ietf.org/html/rfc1881 .
[RFC2460] December 1998. Internet Protocol, Version 6 (IPv6) Specification. http://tools.ietf.org/html/rfc2460 .
Для целей настоящего стандарта применяются следующие определения.
Настоящая часть стандарта основана на концепциях, разработанных в [ISO 7498-1], и использует следующие термины, определённые в нём:
См. [ISO 7498-1].
См. [ISO 7498-1].
См. [ISO 7498-1].
См. [ISO 7498-1].
См. [ISO 7498-1].
См. [ISO 7498-1].
См. [ISO 7498-1].
См. [ISO 7498-1].
См. [ISO 7498-1].
См. [ISO 7498-1].
См. [ISO 7498-1].
См. [ISO 7498-1].
См. [ISO 7498-1].
См. [ISO 7498-1].
См. [ISO 7498-1].
См. [ISO 7498-1].
См. [ISO 7498-1].
См. [ISO 7498-1].
Настоящая часть стандарта использует следующие термины, определённые в [ISO 7498-3]:
См. [ISO 7498-3].
См. [ISO 7498-3].
См. [ISO 7498-3].
См. [ISO 7498-3].
См. [ISO 7498-3].
См. [ISO 7498-3].
Настоящая часть стандарта использует следующие термины, определённые в [ISO/TR 8509]:
См. [ISO/TR 8509].
См. [ISO/TR 8509].
См. [ISO/TR 8509].
См. [ISO/TR 8509].
См. [ISO/TR 8509].
См. [ISO/TR 8509].
См. [ISO/TR 8509].
См. [ISO/TR 8509].
См. [ISO/TR 8509].
Настоящая часть стандарта использует следующие термины, определённые в [ISO 8822]:
См. [ISO 8822].
См. [ISO 8822].
См. [ISO 8822].
См. [ISO 8822].
См. [ISO 8822].
Настоящая часть стандарта использует следующие термины, определённые в [ISO 8649]:
См. [ISO 8649].
См. [ISO 8649].
См. [ISO 8649].
См. [ISO 8649].
Настоящая часть стандарта использует следующие термины, определённые в PS3.1:
Следующие определения обычно используются в настоящей части стандарта:
Протоколы верхнего уровня (Upper Layer) относятся к сеансовому (Session), представительному (Presentation) и части прикладного (Application) уровня эталонной модели ISO. Эти протоколы обеспечивают службу верхнего уровня (Upper Layer Service). Данная служба является собственным подмножеством службы ACSE и службы уровня представления OSI.
Настоящая часть стандарта использует следующие термины, определённые в PS3.4:
Настоящая часть стандарта использует следующие термины, определённые в PS3.5:
В настоящей части стандарта используются следующие символы и сокращения.
В таблицах описания служб, приведённых в настоящей части стандарта, используются следующие соглашения.
Сетевые службы взаимодействия (Network Communication Services), определяемые в PS3.8, представляют собой набор универсальных служб, обеспечивающих взаимодействие прикладных объектов DICOM (Application Entities). Они являются собственным подмножеством служб, предоставляемых службой представления OSI (OSI Presentation Service, ISO 8822) и элементом служб управления ассоциацией OSI (Association Control Service Element, ACSE, ISO 8649). Они называются службой верхнего уровня (Upper Layer Service или UL Service). Служба UL стандарта DICOM определяется в Разделе 7.
Эта служба UL обеспечивается протоколом верхнего уровня для TCP/IP (Upper Layer Protocol for TCP/IP, см. Раздел 9).
Рисунок 6-1 показывает стек протоколов TCP/IP, доступный для поддержки взаимодействия прикладных объектов DICOM.
В данном разделе приведено описание того, как использовать Элемент службы управления ассоциацией OSI (ACSE) и уровень представления OSI для предоставления службы верхнего уровня, необходимой для поддержки взаимодействия прикладных сущностей DICOM. Данная служба верхнего уровня является полностью соответствующим подмножеством служб, предоставляемых ACSE и уровнем представления OSI.
Службы UL перечислены в Таблице 7-1.
Помимо спецификации службы верхнего уровня, в данном разделе определяется на уровне параметров использование каждого элемента данной службы верхнего уровня прикладными сущностями DICOM. Правила, регламентирующие использование данной службы верхнего уровня прикладными сущностями DICOM, рассмотрены в PS3.7.
Установление ассоциации между двумя AE должно выполняться посредством примитивов запроса, индикации, ответа и подтверждения A-ASSOCIATE службы ACSE. Инициатор службы далее называется инициатором запроса, а пользователь службы, получающий индикацию A-ASSOCIATE, далее называется акцептором. Данная служба является подтвержденной.
Служба A-ASSOCIATE поддерживает эквивалент установления канала в соединении точка-точка (см. отмененный PS3.9).
Рисунок 7-1 иллюстрирует установление ассоциации между двумя AE.
Таблица 7-2 перечисляет параметры, которые должны требоваться для службы A-ASSOCIATE, используемой прикладными сущностями DICOM в настоящем Стандарте.
Таблица 7-3 перечисляет параметры службы A-ASSOCIATE, которые должны содержать фиксированные значения или не должны использоваться прикладными сущностями DICOM в настоящем Стандарте.
Этот параметр допускает согласование дополнительного параметра службы OSI-ACSE Mode. Прикладные сущности DICOM используют только значение по умолчанию "normal". Поэтому этот параметр всегда должен указывать значение "normal".
Этот параметр идентифицирует контекст приложения, предложенный инициатором запроса. Акцептор должен вернуть то же или другое имя. Возвращенное имя должно указывать контекст приложения, используемый для данной ассоциации. Дополнительное обсуждение имён контекстов приложения приведено в Приложении A.
Контекст приложения — это явно определённый набор элементов служб приложения, связанных с ними параметров, а также любой другой информации, необходимой для взаимодействия прикладных сущностей в рамках ассоциации.
Предложение альтернативного контекста приложения со стороны акцептора обеспечивает механизм ограниченного согласования. Если инициатор запроса не может работать в контексте приложения акцептора, он должен выдать примитив запроса A-Abort. Имена контекстов приложения для прикладной сущности DICOM, а также правила использования имён контекстов приложения определены в PS3.7.
Этот параметр идентифицирует прикладную сущность (AE), которая должна содержать инициатор запроса службы A-ASSOCIATE. Он основан на исходном имени приложения DICOM (Source DICOM Application Name). Связь между именами приложений DICOM и заголовками AE указана в Приложении C. Заголовок вызывающего AE может как совпадать, так и не совпадать с адресом инициатора, присутствующим в DICOM-сообщениях, передаваемых через ассоциацию.
Этот параметр идентифицирует прикладную сущность, которая должна содержать предполагаемого акцептора службы A-ASSOCIATE. Он основан на имени приложения-получателя DICOM (Destination DICOM Application Name). Связь между именем приложения DICOM и заголовками AE указана в Приложении C. Заголовок вызываемого AE может как совпадать, так и не совпадать с адресом получателя, присутствующим в DICOM-сообщениях, передаваемых через ассоциацию.
Этот параметр идентифицирует AE, которая должна содержать фактического акцептора службы A-ASSOCIATE. В настоящем Стандарте он всегда должен содержать то же значение, что и заголовок вызываемого AE индикации A-ASSOCIATE.
Этот параметр должен использоваться инициатором запроса и акцептором ассоциации для включения пользовательской информации прикладной сущности DICOM. Его значение зависит от контекста приложения, сопровождающего примитив. Использование этого параметра специфицировано в Приложении D.
Этот параметр используется для передачи инициализационной информации для прикладных сущностей DICOM, определённой в контексте приложения, указанном значением сопровождающего параметра имени контекста приложения (Application Context Name).
Приложение D определяет некоторые подэлементы пользовательской информации и ссылается на PS3.7 для спецификации дополнительных подэлементов. PS3.7, в свою очередь, ссылается на PS3.4 для спецификации информации о классе службы и приложении (Service-class-application-information), используемой в некоторых подэлементах.
Этот параметр должен предоставляться либо акцептором запроса A-ASSOCIATE, либо поставщиком службы UL (функция, связанная с ACSE), либо поставщиком службы UL (функция, связанная с представлением). Он должен указывать результат использования службы A-ASSOCIATE. Он должен принимать одно из следующих символических значений:
Значение rejected (permanent) означает, что вызывающему ассоциацию пользователю UL (при возврате такого результата на запрос ассоциации) не нужно «вызывать позже». Существует постоянная ситуация, препятствующая установлению ассоциации (например, неизвестное удалённое имя приложения DICOM).
Значение параметра предоставляется поставщиком службы UL. Он идентифицирует источник формирования параметра Result и параметра Diagnostic, если он присутствует. Он должен принимать одно из следующих символических значений:
Этот параметр должен использоваться только в том случае, если параметр Result имеет значение "rejected (permanent)" или "rejected (transient)". Он должен использоваться для предоставления диагностической информации о результате службы A-ASSOCIATE.
Если параметр Result Source имеет значение "UL service-user", он должен принимать одно из следующих символических значений:
Если параметр Result Source имеет значение "UL service-provider" (функция, связанная с ACSE), он должен принимать одно из следующих символических значений:
Если источник результата имеет значение "UL service-provider" (функция, связанная с представлением), он должен принимать следующие символические значения:
Этот параметр должен содержать структурированный адрес назначения, однозначно определённый в структуре глобальных сетевых адресов. Это должен быть адрес TCP/IP. См. Приложение C.
Этот параметр должен содержать структурированный адрес назначения, однозначно определённый в структуре глобальных сетевых адресов. Это должен быть адрес TCP/IP. См. Приложение C.
В настоящем Стандарте адрес представления отвечающего всегда должен содержать то же значение, что и адрес представления вызываемого (called Presentation Address) индикации A-ASSOCIATE. Этот параметр должен содержать структурированный адрес назначения, однозначно определённый в структуре глобальных сетевых адресов.
Этот параметр, используемый в запросе или индикации A-ASSOCIATE, должен состоять из списка, содержащего один или несколько контекстов представления. Каждый элемент должен содержать три компонента: идентификатор контекста представления, имя абстрактного синтаксиса (Abstract Syntax Name) и список из одного или нескольких имён трансферного синтаксиса (Transfer Syntax Names).
Компоненты идентификации контекста представления этого параметра существуют для различения контекстов представления при обмене данными. Такая идентификация контекста(ов) представления применяется только в рамках данной ассоциации (т.е. различные контексты представления могут идентифицироваться одним и тем же идентификатором контекста представления в разных ассоциациях). Инициатор ассоциации (association-requestor) обязан назначить произвольный, но не использованный идентификатор для каждого предлагаемого контекста представления в данной ассоциации. Не существует ограничений на порядок расположения контекстов представления относительно их идентификаторов.
Отдельный контекст представления будет связан с каждым именем абстрактного синтаксиса (Abstract Syntax Name) в каждом из элементов параметра списка определения контекстов представления (Presentation Context Definition List). Если одно и то же имя абстрактного синтаксиса встречается более одного раза, для каждого вхождения будет создан отдельный и чётко идентифицированный контекст представления (поскольку для одного контекста представления может быть принят только один трансферный синтаксис).
Абстрактные синтаксисы, определённые настоящим Стандартом и используемые прикладными сущностями DICOM, определены в PS3.4. Трансферные синтаксисы, определённые настоящим Стандартом и используемые прикладными сущностями DICOM, определены в PS3.5. Дополнительное обсуждение абстрактных и трансферных синтаксисов приведено в Приложении B.
Этот параметр, используемый в ответе и подтверждении A-ASSOCIATE, указывает принятие или отклонение каждого из определений контекстов представления, предложенных в параметре списка определения контекстов представления (Раздел 7.1.1.13). Параметр списка результатов определения контекстов представления (Presentation Context Definition Result List) должен иметь форму списка значений результатов. Существует однозначное соответствие между каждым из этих значений результатов и каждым из контекстов представления, предложенных в параметре списка определения контекстов представления. Каждое значение результата представляет «acceptance» (принятие), «user-rejection» (отклонение пользователем) или «provider-rejection» (отклонение поставщиком). Значения результатов назначаются пользователем UL в примитиве ответа. Значения результатов могут быть отправлены в любом порядке.
Порядок результатов может отличаться от предложенного порядка. Порядок не обязательно должен быть отсортирован по идентификатору, и инициатор не может предполагать или полагаться на какой-либо конкретный порядок.
В настоящем Стандарте для каждого контекста представления должен согласовываться только один трансферный синтаксис, даже если в конкретном контексте представления списка определения контекстов представления могло быть предложено более одного варианта трансферного синтаксиса.
Этот параметр допускает согласование дополнительных функциональных блоков представления, помимо базового ядра представления (Presentation Kernel). Прикладные сущности DICOM используют только функциональный блок ядра (Kernel Functional Unit). Поэтому этот параметр всегда должен указывать "Presentation Kernel".
Прикладная сущность DICOM (включающая пользователя службы верхнего уровня), желающая установить ассоциацию, должна выдать примитив запроса A-ASSOCIATE. Вызываемый AE идентифицируется параметрами примитива запроса. Инициатор запроса не должен выдавать никаких примитивов, кроме примитива запроса A-ABORT, до тех пор, пока не получит примитив подтверждения A-ASSOCIATE.
Поставщик службы верхнего уровня (UL) должен выдать примитив индикации A-ASSOCIATE вызываемому AE.
Вызываемый AE должен принять или отклонить ассоциацию, отправив примитив ответа A-ASSOCIATE с соответствующим параметром Result. Поставщик службы верхнего уровня должен выдать примитив подтверждения A-ASSOCIATE с тем же параметром Result. Параметру Result Source должно быть присвоено символическое значение "UL service-user".
Если акцептор принимает ассоциацию, она становится доступной для использования. Оба AE теперь могут использовать любую службу, предоставляемую контекстом приложения DICOM, действующим в данный момент (за исключением A-ASSOCIATE).
Это означает, что после установления ассоциации DICOM-сообщения могут обмениваться, как определено в PS3.7.
Если вызываемый AE отклоняет ассоциацию, ассоциация не должна быть установлена.
Поставщик службы UL может быть не способен поддержать запрошенную ассоциацию. В этой ситуации он должен вернуть примитив подтверждения A-ASSOCIATE инициатору запроса с соответствующим параметром Result (отклонено). Параметру Result Source должно быть соответствующим образом присвоено символическое значение "UL service-provider (ACSE related function)" или "UL service-provider (Presentation related function)". Примитив индикации не должен выдаваться. Ассоциация не должна быть установлена.
Как инициатор ассоциации (association-requestor), так и акцептор могут прервать процедуру службы A-ASSOCIATE, выдав примитив запроса A-ABORT (см. Раздел 7.3). Удалённый AE получает примитив индикации A-ABORT. Ассоциация не должна быть установлена.
Корректное завершение ассоциации между двумя AE должно выполняться посредством примитивов запроса, индикации, ответа и подтверждения A-RELEASE службы ACSE. Инициатор службы далее называется инициатором запроса, а пользователь службы, получающий индикацию A-RELEASE, далее называется акцептором. Данная служба является подтвержденной.
Рисунок 7-2 иллюстрирует корректное завершение ассоциации между двумя AE.
Таблица 7-4 перечисляет параметры службы A-RELEASE, которые должны содержать фиксированные значения или не должны использоваться прикладными сущностями DICOM в настоящем Стандарте.
Пользователь службы UL, желающий завершить ассоциацию, должен выдать примитив запроса A-RELEASE. Этот инициатор запроса не должен выдавать никаких дополнительных примитивов, кроме примитива запроса A-ABORT, до тех пор, пока не получит примитив подтверждения A-RELEASE.
Несмотря на то, что инициатор запроса службы A-RELEASE не должен выдавать никаких дополнительных примитивов, кроме A-ABORT, он может получать примитивы индикации P-DATA.
Поставщик службы UL должен выдать примитив индикации A-RELEASE акцептору. Акцептор после этого не должен выдавать никаких примитивов UL, кроме примитива ответа A-RELEASE, примитива запроса A-ABORT или примитива запроса P-DATA.
Для завершения службы A-RELEASE акцептор должен ответить на примитив индикации A-RELEASE, выдав примитив ответа A-RELEASE. Принимающая прикладная сущность DICOM всегда должна выдавать примитив ответа A-RELEASE с параметром результата "affirmative" (т.е. принимать завершение).
После выдачи ответа A-RELEASE акцептор не должен более выдавать никаких примитивов для данной ассоциации, включая запросы P-DATA.
Поставщик службы UL должен выдать примитив подтверждения A-RELEASE всегда со значением "affirmative" для параметра Result.
Инициатор запроса в любом из AE может прервать процедуру службы A-RELEASE, выдав запрос A-ABORT. Когда акцептор получает индикацию A-ABORT, ассоциация завершается с возможной потерей информации, находящейся в процессе передачи.
Коллизия процедуры службы A-RELEASE возникает, когда инициаторы запроса в обоих AE одновременно выдают примитив службы A-RELEASE. В этой ситуации оба пользователя службы UL получают неожиданный примитив индикации A-RELEASE. Для завершения нормального завершения ассоциации должна выполняться следующая последовательность:
Инициатор ассоциации (association-requestor) должен выдать примитив ответа A-RELEASE.
Акцептор ассоциации (association-acceptor) ожидает примитив подтверждения A-RELEASE от своего узла. При его получении он должен затем выдать примитив ответа A-RELEASE.
Инициатор ассоциации (association-requestor) получает примитив подтверждения A-RELEASE.
Ассоциация считается завершенной, когда оба пользователя службы ACSE получили примитив подтверждения A-RELEASE.
Служба A-ABORT (ACSE) должна использоваться инициатором запроса в любом из AE для аномального завершения ассоциации. Эта служба является неподтверждённой. Однако из-за возможной коллизии процедуры службы A-ABORT доставка примитива индикации не гарантируется. В случае возникновения такой коллизии оба AE уведомляются о том, что ассоциация завершена. Прерывание должно выполняться посредством примитивов запроса и индикации A-ABORT.
Примитив запроса A-ABORT, используемый в установленной ассоциации, может привести к уничтожению данных, находящихся в процессе передачи.
Рисунок 7-3 иллюстрирует прерывание установленной ассоциации между двумя AE.
Таблица 7-5 перечисляет параметры службы A-ABORT. В настоящем Стандарте прикладными сущностями DICOM должен использоваться только первый параметр.
При использовании службы A-ABORT ассоциация должна быть аномально завершена одновременно с аномальным разрывом базового соединения.
Пользователь службы UL, желающий аномально завершить ассоциацию, должен выдать примитив запроса A-ABORT. Этот инициатор запроса не должен выдавать никаких дополнительных примитивов для ассоциации.
Поставщик службы UL должен выдать примитив индикации A-ABORT акцептору. Поставщик службы UL должен присвоить значение "UL service-user" параметру Abort Source. Ассоциация и базовое соединение завершены.
Поставщик службы UL (функции, связанные с ACSE) может сам вызвать аномальное завершение ассоциации из-за внутренних ошибок. В этом случае поставщик службы UL должен выдать примитивы индикации A-ABORT акцепторам в обоих AE. Поставщик службы UL должен присвоить значение "UL service-provider" параметру Abort Source. Параметр пользовательской информации не должен использоваться.
Служба A-P-ABORT (ACSE) должна использоваться поставщиком службы UL для сигнализации об аномальном завершении ассоциации вследствие проблем в службах на уровне представления и ниже. Данное событие указывает на возможную потерю информации, находящейся в процессе передачи. A-P-ABORT — это служба, инициируемая поставщиком.
Рисунок 7-4 иллюстрирует прерывание установленной ассоциации поставщиком службы UL.
Таблица 7-6 перечисляет параметр, который должен требоваться для службы A-P-ABORT.
Параметр причины поставщика (provider reason) должен использоваться для передачи одной из следующих причин:
В дополнение к этим причинам может использоваться локально определённый список причин для отражения ошибок, вызвавших прерывание и возникших на уровне сеанса, транспорта, сети, канального и физического уровней. Формирование и обработка таких ошибок являются внутренними для реализации и, следовательно, выходят за рамки настоящего стандарта передачи данных.
Взаимодействия между конкретными процедурами служб, рассмотренными в Разделе 7.1, Разделе 7.2, Разделе 7.3 и Разделе 7.4 для подмножества ACSE службы верхнего уровня, определены в пункте 10 ISO 8649 — Определение службы ACSE (The ACSE Service Definition).
Эта служба P-DATA уровня представления должна использоваться любым из AE для обеспечения обмена информацией приложения (т.е. DICOM-сообщениями). DICOM-сообщения должны обмениваться, как определено в PS3.7. Ассоциация обеспечивает одновременный двунаправленный обмен примитивами запроса/индикации P-DATA.
Рисунок 7-5 иллюстрирует передачу данных по установленной ассоциации между двумя AE.
Таблица 7-7 перечисляет параметр, который должен требоваться для службы P-DATA.
Параметр списка значений данных представления (Presentation Data Value List) должен содержать одно или несколько значений данных представления (Presentation Data Values, PDV). Каждый PDV должен состоять из двух параметров: идентификатора контекста представления (Presentation Context ID) и значений пользовательских данных (User Data). Значения пользовательских данных берутся из абстрактного синтаксиса и кодируются в трансферном синтаксисе, идентифицированном идентификатором контекста представления. Этот ссылочный идентификатор контекста представления идентифицирует один из контекстов представления, согласованных во время установления ассоциации. Формат значений пользовательских данных, используемых в каждом PDV прикладными сущностями DICOM, специфицирован в Приложении E.
Протокол верхнего уровня DICOM, определяемый в данном разделе, должен использоваться совместно с транспортными уровнями TCP/IP..
Существует взаимно однозначное соответствие между транспортным соединением TCP и ассоциацией верхнего уровня. Поэтому применяются следующие правила:
Службы, предоставляемые транспортными службами TCP, формально не документированы. Поэтому в данном разделе используются «общепринятые» термины, применяемые в ряде реализаций программных интерфейсов TCP (например, Sockets). Однако для поддержки TCP/IP требуются следующие RFC. Они определяют поддержку, необходимую для IPv4.
Кроме того, устройства, поддерживающие IPv6, должны соответствовать:
Существует множество других RFC, которые также могут применяться к конкретной реализации в зависимости от конкретного выбора аппаратных и программных функций.
Для установления соединения TCP должен использоваться порт TCP, служащий транспортным селектором. Сущность DICOM UL идентифицируется в заданной системе в сети по номеру порта, уникальному в пределах этой системы. Номера портов удалённых сущностей DICOM UL (хорошо известный номер порта или другие номера) должны быть настраиваемыми на сущностях DICOM UL.
Настоятельно рекомендуется, чтобы системы, поддерживающие единственную сущность DICOM UL, использовали в качестве своего порта «хорошо известный порт», зарегистрированный для протокола верхнего уровня DICOM: номер порта 104 (десятичный), если операционная система разрешает доступ к привилегированным портам (в диапазоне от 0 до 1023), в противном случае рекомендуется использовать «зарегистрированный» номер порта 11112 (десятичный). См. «http://www.iana.org/assignments/port-numbers».
Прикладные сущности могут также получать доступ к транспортным службам TCP через безопасное транспортное соединение. Характер этого безопасного транспортного соединения определяется профилями безопасности (см. PS3.15). Профили безопасности определяют минимальные механизмы, необходимые для поддержки данного профиля. Другие механизмы также могут использоваться, если это согласовано при установлении безопасного транспортного соединения.
DICOM не определяет, как устанавливается безопасное транспортное соединение, или значимость любых сертификатов, обменяемых во время аутентификации равноправных сущностей. Эти вопросы оставлены на усмотрение приложения, которое, как предполагается, следует некоторой политике безопасности. После того как приложение установило безопасное транспортное соединение, ассоциация верхнего уровня может использовать этот безопасный канал.
Может существовать взаимодействие между размером PDU и размером записи безопасного транспортного соединения, влияющее на эффективность передачи.
Зарегистрированные порты для безопасных транспортных соединений определены в PS3.15.
Когда ассоциация должна быть установлена сущностью DICOM верхнего уровня, примитив запроса TRANSPORT CONNECT должен быть выдан транспортной службе TCP (активное открытие). После получения подтверждения транспортного соединения TCP (открытие завершено), PDU A-ASSOCIATE-RQ должна быть отправлена/записана в установленное транспортное соединение.
Когда сущность DICOM верхнего уровня активируется (состояние простоя ассоциации), она должна ожидать транспортные соединения TCP в пассивном режиме, инициируя «прослушивание» (listen). При получении входящего индикатора транспортного соединения TCP из сети он принимается, и должен быть запущен таймер ARTIM (таймер запроса/отклонения/завершения ассоциации). Любой дальнейший обмен PDU (чтение/запись) должен выполняться в соответствии со спецификациями конечного автомата верхнего уровня (включая истечение таймера ARTIM до получения PDU A-ASSOCIATE-RQ, см. Раздел 9.2).
Обмен данными PDU (чтение/запись) по установленному соединению TCP должен следовать спецификациям конечного автомата протокола верхнего уровня DICOM (см. Раздел 9.2) и структуре PDU протокола верхнего уровня DICOM (см. Раздел 9.3).
Транспортные соединения TCP должны закрываться с использованием параметра «без задержки» (don't linger).
Транспортное соединение TCP закрывается в ряде ситуаций. Они описаны в конечном автомате протокола верхнего уровня DICOM. Некоторые типичные случаи рассматриваются ниже:
Когда транспортное соединение установлено удалённой сущностью UL DICOM и PDU A-ASSOCIATE-RQ не получена до истечения таймера ARTIM
Когда PDU A-ABORT отправлена и таймер ARTIM истекает до закрытия транспортного соединения
Когда соединение TCP разъединяется поставщиком транспортной службы (например, из-за сбоя сети)
Когда соединение TCP разъединяется удалённой сущностью UL DICOM
За исключением нормального завершения отклонения, завершения или прерывания ассоциации, а также в специфических ситуациях, таких как временная нехватка ресурсов, конечный автомат верхнего уровня не должен разрывать соединение TCP или отклонять его установление. Надлежащим поведением является использование служб отклонения или прерывания ассоциации.
Таймер ARTIM не должен использоваться для контроля за установлением или завершением ассоциации. Такой механизм относится к определению протокола уровня, находящегося над протоколом верхнего уровня DICOM (т. е. прикладной сущности DICOM, см. PS3.7).
Таблица 9-2. Установление ассоциации
Таблица 9-4. Завершение ассоциации
Таблица 9-6. Действия, связанные с установлением ассоциации
Таблица 9-8. Действия, связанные с завершением ассоциации
Таблица 9-9. Действия, связанные с прерыванием ассоциации
Переходы состояний протокола верхнего уровня DICOM определены в Таблице 9-10. Эта таблица охватывает как нормальные, так и ошибочные случаи работы протокола. В таблице описаны как вызываемая, так и вызывающая стороны ассоциации.
Таблица 9-10. Таблица переходов состояний протокола верхнего уровня DICOM
Единицы данных протокола (PDU) представляют собой форматы сообщений, которыми обмениваются равноправные сущности в пределах уровня. PDU состоит из управляющей информации протокола и пользовательских данных. PDU состоят из обязательных фиксированных полей, за которыми следуют необязательные переменные поля, содержащие один или несколько элементов и/или подэлементов.
Элементы нераспознанных типов должны игнорироваться и пропускаться. Элементы должны располагаться в порядке возрастания их типов. Несколько экземпляров одного и того же элемента могут быть допустимы или нет, как указано для каждого элемента.
Протокол DICOM UL состоит из семи единиц данных протокола:
Кодирование PDU DICOM UL определяется следующим образом (порядок байтов Big Endian):
Порядок байтов Big Endian был выбран для совместимости со средой OSI и TCP/IP. Это относится только к заголовкам PDU DICOM UL. Кодирование фрагментов сообщений PDV определяется синтаксисом передачи, согласованным при установлении ассоциации.
Каждый тип PDU состоит из одного или нескольких байтов, которые при представлении нумеруются последовательно, причём байт 1 является байтом с наименьшим номером.
Каждый байт в PDU состоит из восьми битов, которые при представлении нумеруются от 7 до 0, где бит 0 является младшим битом.
Когда последовательные байты используются для представления строки символов, наименьшие номера байтов представляют первый символ.
Когда последовательные байты используются для представления двоичного числа, байт с меньшим номером имеет наиболее значимое значение.
Байт с наименьшим номером помещается первым в потоке данных транспортной службы.
Обзор PDU представлен на Рисунке 9-1 и Рисунке 9-2. Подробная структура каждой PDU описана в следующих разделах.
Ряд параметров, определённых в службе UL, не отражены в этих PDU (например, параметры службы, фиксированные значения, значения, не используемые прикладными сущностями DICOM).
PDU A-ASSOCIATE-RQ состоит из последовательности обязательных полей, за которыми следует поле переменной длины. Таблица 9-11 показывает последовательность обязательных полей.
Переменное поле должно состоять из одного элемента контекста приложения, одного или нескольких элементов контекста представления и одного элемента пользовательской информации. Подэлементы должны существовать для элементов контекста представления и пользовательской информации.
Таблица 9-11. Поля PDU A-ASSOCIATE-RQ
|
Данное резервное поле должно передаваться со значением 00H, но не должно проверяться на это значение при получении. |
||
|
Значение PDU-length должно быть равно количеству байтов от первого байта следующего поля до последнего байта переменного поля. Оно должно быть закодировано как беззнаковое двоичное число |
||
|
Это двухбайтовое поле должно использовать один бит для идентификации каждой версии протокола DICOM UL, поддерживаемой вызывающей оконечной системой. Данная версия — Версия 1, и она должна идентифицироваться установленным битом 0. Получатель данной PDU, реализующий только эту версию протокола DICOM UL, должен проверять только то, что бит 0 установлен. |
||
|
Данное резервное поле должно передаваться со значением 0000H, но не должно проверяться на это значение при получении. |
||
|
Имя прикладного DICOM-приложения назначения. Оно должно кодироваться как 16 символов, определённых набором ISO 646:1990-Basic G0, причём начальные и конечные пробелы (20H) являются незначимыми. Значение, состоящее из 16 пробелов (20H), означающее «имя приложения не указано», не должно использоваться. Полное описание использования этого поля см. в Разделе 7.1.1.4. |
||
|
Имя исходного прикладного DICOM-приложения. Оно должно кодироваться как 16 символов, определённых набором ISO 646:1990-Basic G0, причём начальные и конечные пробелы (20H) являются незначимыми. Значение, состоящее из 16 пробелов (20H), означающее «имя приложения не указано», не должно использоваться. Полное описание использования этого поля см. в Разделе 7.1.1.3. |
||
|
Это резервное поле должно передаваться со значением 00H для всех байтов, но не проверяться на это значение при получении |
||
|
Это переменное поле должно содержать следующие элементы: один элемент контекста приложения, один или несколько элементов контекста представления и один элемент пользовательской информации. Полное описание использования этих элементов см. в Разделе 7.1.1.2, Разделе 7.1.1.13 и Разделе 7.1.1.6. |
Элемент контекста приложения состоит из последовательности обязательных полей, за которыми следует поле переменной длины. Таблица 9-12 показывает последовательность обязательных полей.
Таблица 9-12. Поля элемента Application Context
|
Данное резервное поле должно передаваться со значением 00H, но не должно проверяться на это значение при получении. |
||
|
Значение Item-length должно быть равно количеству байтов от первого байта следующего поля до последнего байта поля Application-context-name. Оно должно кодироваться как беззнаковое двоичное число. |
||
|
Допустимое имя Application-context-name должно кодироваться, как определено в Приложении F. Описание использования этого поля см. в Разделе 7.1.1.2. Имена Application-context-names структурированы как UID, определённые в PS3.5 (обзор этого понятия см. в Приложении A). Имена Application-context-names DICOM зарегистрированы в PS3.7. |
Элемент контекста представления состоит из последовательности обязательных полей фиксированной длины, за которыми следует переменное поле. Таблица 9-13 показывает последовательность обязательных полей.
Переменное поле должно состоять из одного подэлемента абстрактного синтаксиса, за которым следует один или несколько подэлементов синтаксиса передачи.
Таблица 9-13. Поля элемента Presentation Context
|
Данное резервное поле должно передаваться со значением 00H, но не должно проверяться на это значение при получении. |
||
|
Значение Item-length должно быть равно количеству байтов от первого байта следующего поля до последнего байта последнего элемента Transfer Syntax. Оно должно кодироваться как беззнаковое двоичное число. |
||
|
Значения Presentation-context-ID должны быть нечётными целыми числами от 1 до 255, кодируемыми как беззнаковое двоичное число. Полное описание использования этого поля см. в Разделе 7.1.1.13. |
||
|
Данное резервное поле должно передаваться со значением 00H, но не должно проверяться на это значение при получении. |
||
|
Данное резервное поле должно передаваться со значением 00H, но не должно проверяться на это значение при получении. |
||
|
Данное резервное поле должно передаваться со значением 00H, но не должно проверяться на это значение при получении. |
||
|
Это переменное поле должно содержать следующие подэлементы: один абстрактный синтаксис и один или несколько синтаксисов передачи. Полное описание использования и кодирования этих подэлементов см. в Разделе 9.3.2.2.1 и Разделе 9.3.2.2.2. |
Подэлемент абстрактного синтаксиса состоит из последовательности обязательных полей фиксированной длины, за которыми следует переменное поле. Таблица 9-14 показывает последовательность обязательных полей.
Таблица 9-14. Поля подэлемента Abstract Syntax
|
Данное резервное поле должно передаваться со значением 00H, но не должно проверяться на это значение при получении. |
||
|
Значение Item-length должно быть равно количеству байтов от первого байта следующего поля до последнего байта поля Abstract-syntax-name. Оно должно кодироваться как беззнаковое двоичное число. |
||
|
Это переменное поле должно содержать имя Abstract-syntax-name, относящееся к предлагаемому контексту представления. Допустимое имя Abstract-syntax-name должно кодироваться, как определено в Приложении F. Описание использования этого поля см. в Разделе 7.1.1.13. Имена Abstract-syntax-names структурированы как UID, определённые в PS3.5 (обзор этого понятия см. в Приложении B). Имена Abstract-syntax-names DICOM зарегистрированы в PS3.4. |
Подэлемент синтаксиса передачи состоит из последовательности обязательных полей фиксированной длины, за которыми следует переменное поле. Таблица 9-15 показывает последовательность обязательных полей.
Таблица 9-15. Поля подэлемента Transfer Syntax
|
Данное резервное поле должно передаваться со значением 00H, но не должно проверяться на это значение при получении. |
||
|
Значение Item-length должно быть равно количеству байтов от первого байта следующего поля до последнего байта поля(ей) Transfer-syntax-name. Оно должно кодироваться как беззнаковое двоичное число. |
||
|
Это переменное поле должно содержать имя Transfer-syntax-name, предложенное для данного контекста представления. Допустимое имя Transfer-syntax-name должно кодироваться, как определено в Приложении F. Описание использования этого поля см. в Разделе 7.1.1.13. Имена Transfer-syntax-names структурированы как UID, определённые в PS3.5 (обзор этого понятия см. в Приложении B). Имена Transfer-syntax-names DICOM зарегистрированы в PS3.5. |
Элемент пользовательской информации состоит из последовательности обязательных полей фиксированной длины, за которыми следует переменное поле. Таблица 9-16 показывает последовательность обязательных полей.
Переменное поле должно состоять из одного или нескольких подэлементов User-Data.
Подэлементы User-Data могут присутствовать в любом порядке внутри элемента User-Information. Не следует придавать значение порядку подэлементов User-Data в элементе пользовательской информации. Отправляющие приложения должны учитывать, что некоторые старые приложения могут ожидать, что подэлементы кодируются в порядке возрастания Item-type внутри включающего элемента.
Таблица 9-16. Поля элемента User Information
|
Данное резервное поле должно передаваться со значением 00H, но не должно проверяться на это значение при получении. |
||
|
Значение Item-length должно быть равно количеству байтов от первого байта следующего поля до последнего байта поля(ей) User-data. Оно должно кодироваться как беззнаковое двоичное число. |
||
|
Это переменное поле должно содержать подэлементы User-data, определённые прикладной сущностью DICOM. Структура и содержание этих подэлементов определены в Приложении D. |
PDU A-ASSOCIATE-AC состоит из последовательности обязательных полей, за которыми следует поле переменной длины. Таблица 9-17 показывает последовательность обязательных полей.
Переменное поле состоит из одного элемента контекста приложения, одного или нескольких элементов контекста представления и одного элемента пользовательской информации. Подэлементы должны существовать для элементов контекста представления и пользовательской информации.
Таблица 9-17. Поля PDU A-ASSOCIATE-AC
|
Данное резервное поле должно передаваться со значением 00H, но не должно проверяться на это значение при получении. |
||
|
Значение PDU-length должно быть равно количеству байтов от первого байта следующего поля до последнего байта переменного поля. Оно должно кодироваться как беззнаковое двоичное число. |
||
|
Это двухбайтовое поле должно использовать один бит для идентификации каждой версии протокола DICOM UL, поддерживаемой вызывающей оконечной системой. Данная версия — Версия 1, и она должна идентифицироваться установленным битом 0. Получатель данной PDU, реализующий только эту версию протокола DICOM UL, должен проверять только то, что бит 0 установлен. |
||
|
Данное резервное поле должно передаваться со значением 0000H, но не должно проверяться на это значение при получении. |
||
|
Данное резервное поле должно передаваться со значением, идентичным значению, полученному в том же поле PDU A-ASSOCIATE-RQ, однако его значение не должно проверяться при получении. |
||
|
Данное резервное поле должно передаваться со значением, идентичным значению, полученному в том же поле PDU A-ASSOCIATE-RQ, однако его значение не должно проверяться при получении. |
||
|
Данное резервное поле должно передаваться со значением, идентичным значению, полученному в том же поле PDU A-ASSOCIATE-RQ, однако его значение не должно проверяться при получении. |
||
|
Это переменное поле должно содержать следующие элементы: один элемент контекста приложения, один или несколько элементов контекста представления и один элемент пользовательской информации. Полное описание этих элементов см. в Разделе 7.1.1.2, Разделе 7.1.1.14 и Разделе 7.1.1.6. |
Элемент контекста приложения состоит из последовательности обязательных полей, за которыми следует поле переменной длины. Таблица 9-12 показывает последовательность обязательных полей.
Элемент контекста представления состоит из последовательности обязательных полей фиксированной длины, за которыми следует переменное поле. Таблица 9-18 показывает последовательность обязательных полей.
Переменное поле должно состоять из одного подэлемента синтаксиса передачи.
Таблица 9-18. Поля элемента Presentation Context
|
Данное резервное поле должно передаваться со значением 00H, но не должно проверяться на это значение при получении. |
||
|
Значение Item-length должно быть равно количеству байтов от первого байта следующего поля до последнего байта подэлемента Transfer Syntax. Оно должно кодироваться как беззнаковое двоичное число. |
||
|
Значения Presentation-context-ID должны быть нечётными целыми числами от 1 до 255, кодируемыми как беззнаковое двоичное число. Полное описание использования этого поля см. в Разделе 7.1.1.13. |
||
|
Данное резервное поле должно передаваться со значением 00H, но не должно проверяться на это значение при получении. |
||
|
Поле Result/Reason должно содержать целочисленное значение, кодируемое как беззнаковое двоичное число. Должно использоваться одно из следующих значений: 1 — отклонение пользователем (user-rejection) 2 — нет причины (отклонение поставщиком) 3 — абстрактный синтаксис не поддерживается (отклонение поставщиком) 4 — синтаксисы передачи не поддерживаются (отклонение поставщиком) |
||
|
Данное резервное поле должно передаваться со значением 00H, но не должно проверяться на это значение при получении. |
||
|
Это переменное поле должно содержать один подэлемент Transfer Syntax. Когда поле Result/Reason имеет значение, отличное от принятия (0), это поле не должно быть значимым, и его значение не должно проверяться при получении. Полное описание использования и кодирования этого элемента см. в Разделе 9.3.3.2.1. |
Подэлемент синтаксиса передачи состоит из последовательности обязательных полей фиксированной длины, за которыми следует переменное поле. Таблица 9-19 показывает последовательность обязательных полей.
Таблица 9-19. Поля подэлемента Transfer Syntax
|
Данное резервное поле должно передаваться со значением 00H, но не должно проверяться на это значение при получении. |
||
|
Значение Item-length должно быть равно количеству байтов от первого байта следующего поля до последнего байта поля Transfer-syntax-name. Оно должно кодироваться как беззнаковое двоичное число. |
||
|
Это переменное поле должно содержать имя Transfer-syntax-name, предложенное для данного контекста представления. Допустимое имя Transfer-syntax-name должно кодироваться, как определено в Приложении F. Описание использования этого поля см. в Разделе 7.1.1.14. Имена Transfer-syntax-names структурированы как UID, определённые в PS3.5 (обзор этого понятия см. в Приложении B). Имена Transfer-syntax-names DICOM зарегистрированы в PS3.5. |
Элемент пользовательской информации состоит из последовательности обязательных полей длины, за которыми следует переменное поле. Таблица 9-20 показывает последовательность обязательных полей.
Переменное поле должно состоять из одного или нескольких подэлементов User-Data.
Подэлементы User-Data могут следовать в любом порядке внутри элемента User-Information. Не следует придавать значение порядку подэлементов User-Data внутри элемента User Information. Отправляющим приложениям следует учитывать, что некоторые старые приложения могут ожидать кодирования подэлементов в порядке возрастания значения поля Item-type внутри объемлющего элемента.
Таблица 9-20. Поля элемента User Information
|
Данное резервное поле должно передаваться со значением 00H, но не должно проверяться на это значение при получении. |
||
|
Значение Item-length должно быть равно количеству байтов от первого байта следующего поля до последнего байта поля(ей) User-data-information. Оно должно кодироваться как беззнаковое двоичное число. |
||
|
Это переменное поле должно содержать подэлементы User-data, определённые прикладной сущностью DICOM. Структура и содержание этих подэлементов определены в Приложении D. |
PDU A-ASSOCIATE-RJ состоит из последовательности обязательных полей. Таблица 9-21 показывает последовательность обязательных полей.
Таблица 9-21. Поля PDU A-ASSOCIATE-RJ
PDU P-DATA-TF состоит из последовательности обязательных полей фиксированной длины, за которыми следует поле переменной длины. Таблица 9-22 показывает последовательность обязательных полей.
Переменное поле данных должно содержать один или несколько элементов Presentation-Data-Value.
Таблица 9-22. Поля PDU P-DATA-TF
|
Данное резервное поле должно передаваться со значением 00H, но не должно проверяться на это значение при получении. |
||
|
Значение PDU-length должно быть равно количеству байтов от первого байта следующего поля до последнего байта переменного поля. Оно должно кодироваться как беззнаковое двоичное число. |
||
|
Это переменное поле данных должно содержать один или несколько элементов Presentation-data-value. Полное описание использования этого поля см. в Разделе 9.3.5.1 |
Элемент значения данных представления состоит из последовательности обязательных полей фиксированной длины, за которыми следует одно поле переменной длины. Таблица 9-23 показывает последовательность полей.
Переменное поле должно состоять из одного Presentation-Data-Value.
Таблица 9-23. Поля элемента Presentation-Data-Value
|
Значение Item-length должно быть равно количеству байтов от первого байта следующего поля до последнего байта поля Presentation-data-value. Оно должно кодироваться как беззнаковое двоичное число. |
||
|
Значения Presentation-context-ID должны быть нечётными целыми числами от 1 до 255, кодируемыми как беззнаковое двоичное число. Полное описание использования этого поля см. в Разделе 7.1.1.13. |
||
|
Поле Presentation-data-value должно содержать информацию сообщений DICOM (команды и/или набор данных) с заголовком управления сообщениями. Полное описание использования этого поля см. в Приложении E. |
PDU A-RELEASE-RQ состоит из последовательности обязательных полей. Таблица 9-24 показывает последовательность полей.
Таблица 9-24. Поля PDU A-RELEASE-RQ
PDU A-RELEASE-RP состоит из последовательности обязательных полей. Таблица 9-25 показывает последовательность полей.
Таблица 9-25. Поля PDU A-RELEASE-RP
PDU A-ABORT состоит из последовательности обязательных полей. Таблица 9-26 показывает последовательность полей.
PDU A-ABORT должна поддерживать как службу A-ABORT (инициированную пользователем), так и службу A-P-ABORT (инициированную поставщиком).
Таблица 9-26. Поля PDU A-ABORT
Реализация, заявляющая о соответствии поддержке сетевого взаимодействия DICOM TCP/IP, должна:
Соответствовать требованиям протокола верхних уровней DICOM, определённым в Разделе 9.
Использовать зарегистрированные имена контекстов приложения, имена абстрактных синтаксисов и имена трансферных синтаксисов, как определено для идентификаторов объектов OSI (ISO 8824 и ISO 9834-1).
Приложение F определяет кодирование протокола верхнего уровня DICOM для имён контекстов приложения, имён абстрактных синтаксисов и имён трансферных синтаксисов. Кодирование, определённое ISO 8825, не используется.
Использовать один из опубликованных и утверждённых RFC, определяющих работу TCP/IP поверх конкретных физических сетей.
Реализация, заявляющая о соответствии DICOM для поддержки взаимодействия в сетевой среде, должна указать «Поддержка сетевого взаимодействия DICOM V3.0 TCP/IP» со списком физических сетей и соответствующей релевантной информацией о реализации. Это подразумевает выполнение требований соответствия, определённых в Разделе 10.1.2.
Контекст приложения явно определяет набор элементов служб приложения, связанные с ними параметры и любую другую информацию, необходимую для совместной работы прикладных сущностей в рамках ассоциации. Использование контекста приложения определено в PS3.7.
Две прикладные сущности при установлении ассоциации согласовывают контекст приложения. Инициатор запроса ассоциации предлагает имя контекста приложения, а акцептор возвращает либо то же, либо другое имя контекста приложения. Возвращённое имя указывает контекст приложения, используемый для данной ассоциации. Предложение альтернативного контекста приложения акцептором обеспечивает механизм ограниченного согласования. Если инициатор запроса не может работать в контексте приложения акцептора, он выдаёт примитив запроса A-Abort. Такое согласование способствует внедрению будущих версий прикладной сущности DICOM.
Структура имени контекста приложения основана на идентификации объектов OSI (числовая форма), определённой ISO 8824. Имена контекстов приложения являются зарегистрированными значениями, как определено ISO 9834-1, для обеспечения глобальной уникальности. Они кодируются, как определено в Приложении F, при использовании поддержки сетевого взаимодействия TCP/IP, определённой в Разделе 9.
Организация, ответственная за определение и регистрацию имён контекстов приложения DICOM, — NEMA. NEMA гарантирует уникальность всех имён контекстов приложения DICOM. Выбор зарегистрированных имён контекстов приложения DICOM, относящихся к прикладным сущностям DICOM, а также связанные с ними правила согласования, определены в PS3.7.
Абстрактный синтаксис — это спецификация элементов данных прикладного уровня с ассоциированной семантикой или управляющей информации протокола прикладного уровня с использованием правил нотации, не зависящих от техники кодирования, применяемой для их представления.
Трансферный синтаксис — это набор правил кодирования, позволяющих однозначно представить элементы данных, определённые одним или несколькими абстрактными синтаксисами. В частности, согласование трансферных синтаксисов позволяет взаимодействующим прикладным сущностям договориться о техниках кодирования, которые они способны поддерживать (например, порядок байтов, сжатие и т. д.).
Структура имён абстрактных и трансферных синтаксисов основана на идентификации объектов OSI (числовая форма), определённой ISO 8824. Имена абстрактных и трансферных синтаксисов являются зарегистрированными значениями, как определено ISO 9834-1, для обеспечения глобальной уникальности. Имена абстрактных и трансферных синтаксисов кодируются, как определено ISO 8825 (идентификаторы объектов в числовой форме), при использовании поддержки сетевого взаимодействия OSI, определённой в Разделе 8. Они кодируются, как определено в Приложении F, при использовании поддержки сетевого взаимодействия TCP/IP, определённой в Разделе 9.
Организация, ответственная за определение и регистрацию имён абстрактных и трансферных синтаксисов DICOM, — NEMA. NEMA гарантирует уникальность всех имён абстрактных и трансферных синтаксисов DICOM. Выбор зарегистрированных имён абстрактных и трансферных синтаксисов DICOM, относящихся к определённой версии прикладных сущностей DICOM, а также связанные с ними правила согласования, определены в PS3.4 для абстрактных синтаксисов и PS3.5 для трансферных синтаксисов.
Могут также использоваться частным образом определённые имена абстрактных и трансферных синтаксисов, однако они не будут регистрироваться NEMA. Организации, определяющие частные имена абстрактных и трансферных синтаксисов, несут ответственность за получение надлежащей регистрации, определённой для идентификаторов объектов OSI. Национальные организации по стандартизации, представляющие ряд стран (например, Великобритания, Франция, Германия, Япония, США и т. д.) в Международной организации по стандартизации, действуют как регистрационный орган, определённый ISO 9834-1.
Например, в США ANSI присваивает (за плату) идентификаторы организаций любой запрашивающей организации. Этот идентификатор состоит из серии из четырёх числовых компонентов: 1 (идентифицирует ISO), 2 (идентифицирует ветвь органов-членов ISO), 840 (идентифицирует ANSI как орган-член ISO, представляющий США) и xxxxxx (идентифицирует конкретную организацию и выдаётся ANSI). Такой идентификатор может использоваться идентифицированной организацией в качестве корня, к которому она может добавить суффикс, состоящий из одного или нескольких числовых компонентов. Идентифицированная организация принимает на себя ответственность за надлежащую регистрацию этих суффиксов для обеспечения уникальности.
Заголовок прикладной сущности DICOM (DICOM Application Entity Title) однозначно идентифицирует службу или приложение в конкретной системе в сети. Заголовки прикладных сущностей не зависят от сетевой топологии, поэтому устройство может быть физически перемещено, при этом соответствующий заголовок прикладной сущности может остаться прежним. См. PS3.5 для информации о кодировании заголовков прикладных сущностей DICOM.
Заголовок прикладной сущности DICOM в стандарте ACR-NEMA назывался логическим адресом (Logical Address).
Заголовки прикладных сущностей DICOM используются в трёх случаях взаимодействия:
для идентификации вызываемой/вызывающей прикладных сущностей. Они используются для установления ассоциации и для обеспечения того, что ассоциация устанавливается с ожидаемым приложением.
для идентификации инициатора и предполагаемого получателя служб извлечения DICOM (DICOM Retrieve Services, см. PS3.4). Они передаются в DICOM-командах с сообщениями служб DIMSE C-MOVE и C-STORE, обмениваемыми по установленной ассоциации.
для идентификации расположения SCP службы извлечения для одного или нескольких экземпляров SOP (SOP Instances). Они передаются в наборах данных DICOM (DICOM DataSets) различных служб.
Заголовки прикладных сущностей DICOM используются в полях заголовков вызываемой/вызывающей прикладных сущностей службы верхнего уровня, в элементах данных заголовка прикладной сущности получателя перемещения (Move Destination) и инициатора перемещения (Move Originator) в наборе команд DICOM-сообщения, а также в различных атрибутах набора данных DICOM-сообщения.
С одним заголовком прикладной сущности может быть связано несколько сетевых адресов, назначенных одной системе (например, хост с несколькими сетевыми интерфейсами).
С одним заголовком прикладной сущности может быть связано несколько TCP-портов с использованием одинаковых или различных IP-адресов.
Одиночная точка сетевого доступа (IP-адрес и TCP-порт) может поддерживать несколько заголовков прикладных сущностей.
Система DICOM в сети может поддерживать несколько процессов приложений, идентифицируемых различными заголовками прикладных сущностей DICOM.
При получении запроса ассоциации заголовок вызываемой прикладной сущности должен проверяться, чтобы ассоциация могла быть отклонена, если соответствующее локальное приложение не существует.
Этот параметр обеспечивает согласование ряда функций, связанных с взаимодействием прикладных сущностей DICOM при установлении ассоциации.
Данное согласование позволяет получателям ограничить размер параметров списка значений данных представления (Presentation Data Values List) в каждом подтверждении P-DATA. Инициатор запроса ассоциации должен указать в параметре пользовательской информации примитива запроса A-ASSOCIATE максимальную длину в байтах для параметра списка PDV, который он готов получать в каждом подтверждении P-DATA. Акцептор ассоциации должен обеспечивать при фрагментации DICOM-сообщений, чтобы список PDV, включённый в каждый запрос P-DATA, не превышал эту максимальную длину. Аналогично, акцептор ассоциации может указать в параметре пользовательской информации примитива ответа A-ASSOCIATE максимальную длину в байтах для параметра списка PDV, который он готов получать в каждом подтверждении P-DATA. Инициатор запроса ассоциации должен обеспечивать при фрагментации DICOM-сообщений, чтобы список PDV, включённый в каждый запрос P-DATA, не превышал эту максимальную длину. Различные максимальные длины могут быть указаны для каждого направления потока данных по ассоциации.
Поддержка элемента максимальной длины (Maximum Length Item) обязательна для всех реализаций, заявляющих о соответствии DICOM V3.0.
Подэлемент максимальной длины (Maximum Length Sub-Item) должен состоять из последовательности обязательных полей фиксированной длины. В пользовательских данных (User Data) в A-ASSOCIATE-RQ должен присутствовать только один подэлемент максимальной длины. Таблица D.1-1 показывает последовательность обязательных полей.
Таблица D.1-1. Поля подэлемента максимальной длины (A-ASSOCIATE-RQ)
Подэлемент максимальной длины (Maximum Length Sub-Item) должен состоять из последовательности обязательных полей фиксированной длины. В пользовательских данных (User Data) в A-ASSOCIATE-AC должен присутствовать только один подэлемент максимальной длины. Таблица D.1-2 показывает последовательность обязательных полей.
Таблица D.1-2. Поля подэлемента максимальной длины (A-ASSOCIATE-AC)
Параметр пользовательской информации примитива A-ASSOCIATE может быть расширен для поддержки потребностей согласования прикладных сущностей DICOM, использующих службу UL. Это приведёт к определению специфических подэлементов пользовательской информации. Этим подэлементам должны быть назначены уникальные значения типа элемента (item-type), зарегистрированные в PS3.7.
Значения типов подэлементов (Sub-Items) в поле пользовательской информации назначаются настоящим Стандартом в диапазоне от 51H до FFH. Значения подэлементов определяются в PS3.7 и PS3.8.
Последующие редакции Стандарта могут определять дополнительные подэлементы пользовательской информации таким образом, который не влияет на семантику ранее определённых подэлементов. От акцепторов ассоциации, соответствующих более ранней редакции Стандарта, требуется игнорировать такие нераспознанные подэлементы пользовательской информации и не отклонять ассоциацию из-за их наличия.
Это приложение определяет, как DICOM-сообщения инкапсулируются в службу P-DATA прикладной сущностью DICOM.
DICOM-сообщения инкапсулируются в примитивы запроса P-DATA как пользовательские данные значений данных представления (Presentation Data Values, PDV). DICOM-сообщение фрагментируется на командные фрагменты (Command Fragments) и информационные фрагменты (Data Fragments), каждый из которых помещается в PDV. Для каждого фрагмента одного и того же сообщения должен использоваться один и тот же контекст представления (т. е. один и тот же идентификатор контекста представления (Presentation Context ID) для пользовательских данных PDV, содержащих фрагменты одного и того же сообщения). Параметр пользовательских данных PDV должен содержать один и только один фрагмент (командный или информационный), перед которым находится заголовок управления сообщением. Этот заголовок будет указывать:
Параметр списка PDV (PDV List) запроса P-DATA должен содержать один или несколько таких PDV (заголовок управления сообщением и полный фрагмент сообщения). Каждый PDV полностью содержится в данном примитиве запроса P-DATA и не распределяется по нескольким примитивам запроса P-DATA. PDV, содержащиеся в примитиве запроса P-DATA, должны относиться к одному и тому же DICOM-сообщению. Каждый фрагмент сообщения должен состоять из чётного числа байтов.
Выравнивание не требуется, так как PS3.5 определяет сообщения на границе чётного байта.
Вышеприведённые правила гласят, что каждый фрагмент, содержащийся в PDV, должен состоять только из чётного числа байтов. Поэтому кодирование таких элементов, как номер группы (Group Number), номер элемента (Element Number), длина значения (Value Length) и т. д. (как определено прикладной сущностью DICOM, см. PS3.5), не гарантируется в пределах одного и того же PDV.
Фрагментация любого сообщения приводит к серии PDV, которые должны быть отправлены по данной ассоциации соответствующей серией запросов P-DATA с сохранением порядка следования фрагментов любого сообщения. Кроме того, никакие фрагменты другого сообщения не должны отправляться до тех пор, пока не будут отправлены все фрагменты текущего сообщения (т. е. чередование фрагментов из разных сообщений не допускается).
Настоятельно рекомендуется, чтобы два последовательных PDV в одном и том же примитиве запроса P-DATA (следовательно, содержащие фрагменты одного и того же сообщения с использованием одного и того же идентификатора контекста представления) не содержали два заголовка управления сообщением одного и того же типа (командный или информационный). Они должны быть объединены отправителем в один PDV. Однако получатели должны быть способны принимать и обрабатывать такие PDV.
Вышеприведённые правила позволяют отправку в одном запросе/подтверждении P-DATA командного фрагмента в первом PDV (с установленным флагом последнего фрагмента) с последующим информационным фрагментом во втором PDV (с установленным или не установленным флагом последнего фрагмента). В частности, если согласованная максимальная длина для параметра списка PDV запроса P-DATA достаточна для размещения полного сообщения, для обмена целым сообщением может использоваться один запрос P-DATA.
Отдельные PDV не должны отправляться с полями Presentation-data-value, состоящими только из одного байта, содержащего заголовок управления сообщением, но без какого-либо другого содержимого во фрагменте. Они должны быть объединены отправителем с предшествующими или последующими PDV.
Заголовок управления сообщением (Message Control Header) располагается перед каждым фрагментом DICOM-сообщения (см. Рисунок E.2-1). Его наличие обязательно для всех абстрактных синтаксисов DICOM (см. Приложение B для дополнительного обсуждения абстрактных синтаксисов).
Заголовок управления сообщением должен состоять из одного байта, младший значащий бит (бит 0) которого принимает одно из следующих значений:
Следующий младший значащий бит (бит 1) должен определяться следующими правилами:
Если бит 1 установлен в 1, следующий фрагмент должен содержать последний фрагмент набора данных сообщения (Message Data Set) или командной части сообщения (Message Command).
Если бит 1 установлен в 0, следующий фрагмент не содержит последний фрагмент набора данных сообщения (Message Data Set) или командной части сообщения (Message Command).
Биты со 2-го по 7-й всегда устанавливаются в 0 отправителем и никогда не проверяются получателем.
Заголовок управления сообщением в потоке транспортных данных является первым байтом каждого PDV. Трансферный синтаксис, согласованный при установлении ассоциации, определяет кодирование командного/информационного фрагмента (Command/Data).
Имена контекстов приложения (Application Context Names), имена абстрактных синтаксисов (Abstract Syntax Names), имена трансферных синтаксисов (Transfer Syntax Names) и UID классов служб (Service Class UIDs) являются идентификаторами объектов OSI в числовой форме, как определено ISO 8824. Кодирование этих имён в протоколе UL DICOM указано в данном приложении.
Каждый компонент имени или UID кодируется как строка цифр в кодировке ISO 646:1990-Basic G0 Set (символы 0-9). Ведущие нули каждого компонента не являются значащими и не должны отправляться. Компоненты не должны дополняться. Компоненты должны разделяться символом «.» (2EH). «Пустые» компоненты (без числового значения между двумя разделителями) не допускаются. Компоненты со значением ноль (0) должны кодироваться как (nnn.0.ppp). Ни разделитель, ни дополнение не должны присутствовать перед первой цифрой первого компонента или после последней цифры последнего компонента.
Строка «1.2.840.123456.0.21.4», закодированная как строка символов в кодировке ISO 646:1990-Basic G0 Set, передаёт следующий UID или имя со следующей последовательностью компонентов идентификатора объекта: { (1), (2), (840), (123456), (0), (21), (4) }.
Вышеприведённые правила были приняты для упрощения выполнения сравнения UID.
Имена контекстов приложения DICOM (корень плюс суффикс) не должны превышать 64 символов всего (цифры и разделители между компонентами).
Имена абстрактных и трансферных синтаксисов DICOM (корень плюс суффикс) не должны превышать 64 символов всего (цифры и разделители между компонентами).
В многоуровневой модели взаимодействия, такой как эталонная модель из 7 уровней OSI, каждый уровень использует службу, предоставляемую уровнем, находящимся непосредственно ниже. Работа уровня протокола поверх службы нижнего уровня предоставляет новую службу уровню выше. Служба является «связующим звеном» между уровнями протоколов.
Службы описывают результирующие эффекты работы протокола без необходимости знания детальных спецификаций самого протокола. Протокол определяет горизонтальный диалог между двумя вычислительными системами через сеть, в то время как служба описывает вертикальные отношения внутри системы. См. Рисунок G-1.
Служба верхнего уровня OSI описывается рядом примитивов службы. Каждый из них моделирует одно из функциональных взаимодействий между пользователем службы на уровне выше и поставщиком службы. В контексте настоящего Стандарта пользователь службы называется элементом службы приложения DICOM (DICOM Application Service Element). Поставщик службы называется верхним уровнем (Upper Layer) и выполняет протокол верхнего уровня (Upper Layer Protocol).
Службы UL OSI, определённые в настоящем Стандарте, предоставляются протоколом верхнего уровня DICOM для TCP/IP (Раздел 9).
Эти примитивы службы пересекают границу уровня в так называемой точке доступа к службе (Service Access Point, SAP). В большинстве случаев существует прямая связь между примитивами службы в двух прикладных сущностях (AE). Это отражено в названиях этих примитивов:
Примитив запроса (request) в системе A вызывает примитив подтверждения (indication) в системе B.
Если примитив подтверждения (indication) в системе B требует ответа, в точке доступа к службе (SAP) в системе B может быть выдан примитив ответа (response). Этот примитив ответа вызовет примитив подтверждения (confirmation) в системе A.
Различные типы примитивов службы и их взаимосвязь показаны на Рисунке G-2. Пунктирные линии представляют обмен блоков данных протокола (Protocol Data Units), которые инициируются примитивами запроса/ответа или генерируют примитивы подтверждения.