A Norma DICOM
Paulo de Carvalho, Jorge Henriques {carvalho, jh}@dei.uc.pt Universidade de Coimbra
DICOM
! Bibliografia
Bas Revet, DICOM Cook Book for Implementation in Modalities: Chapter 1 and 2, Philips Medical Systems, 1997. Norma: ftp://medical.nema.org/medical/Dicom/ (recomenda-se que o seu uso seja s para consultas pontuais, j que esta composta por vrios milhares de pginas)
DICOM
! Modelo
OSI Upper Layer Service: independncia de suporte especfico de comunicao fsica (existem extenses para TCP/IP) DICOM File Service: acesso a arquivos independentemente dos formatos fsicos e estrutura de ficheiros.
Domnio de Aplicao:
Qual o papel dos intervenientes Servidor (Service Provider) Cliente (Service User) Viso equivalente dos dados Semntica Informao depende do contexto do servio distribudo As operaes (servios) implementadas Armazenamento, processamento, etc.
Relao: Servio+Dados+Papel
Domnio da Comunicao
Interface Lgica Protocolo Representao de Dados (Integer, Float, etc.) Sintaxe de Transferncia (Little/Big Endian; Construo da Stream)
DICOM: Modelo
! RelaoClasse de Servio (Service
Classe)
Servios (Service Elements-operaes) Informao (IOD-Dados) SE+IOD = SOP Cada classe de servio pode conter SOPs distintas (ex: guardar diferentes tipos de imagem; sendo os servios realizados custa de grupos de servio, ex.,C-STORE)
DICOM: A Norma
Modelo Abstracto de Dados para veicular informao de objectos reais. Permitem s Aplicaes DICOM (AE) terem a mesma vista dos dados. Exemplo: Um doente, uma imagem, um ECG, etc. Agrupamentos genricos utilizveis em diversas IE
Normalizada composta somente por uma IE Composta composta por duas ou mais IEs. A relao entre as IEs depende do Modelo de Informao.
IOM
10
DICOM: IOD&IOM
! Exemplo Real (Extrado da norma de 2003):
IOD Parte 3 IOM Parte 3
11
DICOM: IOM
! Como definido cada Atributo ?
IOM Parte 3
Attribute Name (legvel Humanos) Attribute Description (Semntica) Attribute TAG (legvel Sis. Inf.) Value Representation (Sintaxe) Value Multiplicity Type Classification
12
DICOM: Atributos
! Attribute TAG
Permite determinar univocamente a representao (sintaxe) do atributo e a sua multiplicidade usando o Dicionrio de Dados.
IOM Parte 3
Grupo Patient
13
DICOM: Atributos
! Value Representation and Multiplicity
14
DICOM: Atributos
IOM Parte 3
Tipo 1: Atributo Obrigatrio. Tipo 1C: IODs e SOP definem Atributos que devem ser includos em determinadas condies. Nessas condies so obrigatrios. Na ausncia dessas condies no podem ser includos. Tipo 2: So valores obrigatrios. Contudo quando o valor desconhecido permitido que este seja codificado com 0bytes (ver streaming). Tipo 2C: IODs e SOP definem Atributos que devem ser includos em determinadas condies. Nessas condies nestas condies estes atributos funcionam como os do tipo 2. Na ausncia dessas condies no podem ser includos. Tipo 3: Opcionais.
15
DICOM: Consulta
IOD
16
DICOM: Consulta
17
DICOM: Consulta
18
VR 16 bits char
2 caracteres do conjunto por omisso
do DICOM
21
22
VR Byte Ordering
Big Endian Little Endian
! Cada sintaxe de transferncia dispe de um identificador nico (UID). ! A sintaxe de transferncia por omisso do DICOM : Implicit VR Little
Endian Transfer Syntax. UID=1.2.840.10008.1.2
23
24
25
Os Os Os Os
Papeis servios [e modelos] IODs envolvidos em sub-servios (SOPs) grupos de servio envolvidos (DIMSE)
26
DICOM: Servios
! Tipos de Classes de Servio (Captulo 4 da Norma) classe de operaes
realizveis sobre os IOD
Verification Storage Query/Retrieve Study Content Notification Patient Management Study Management Results Management Print Management Media Storage Storage Commitment Basic Worklist Management Queue Management Grayscale Softcopy Presentation State Storage Structured Reporting Storage
27
28
Modelo Funcional
29
30
DICOM: SOP
! Modelo Geral
IODs
X X X X X X X X X X X X X X X X X X X X X X X X
STORE
Uma dada aco sobre um IOD definida pelo classe SOP SOP=Dados+Aco
Informtica Mdica - DEI Univ. de Coimbra 31
Servios
DICOM: SOP
! As classes SOP so identificadas
recorrendo a UIDs.
32
Part 4
! Exemplo
Patient Management:
Receive Patient Event Notification Implementado custa de uma
Information Objects
Normalized - Patient - Study - Visit Composite - CT image - MR image - CR image
Part 3
mensagem N-EVENT-REPORT
Part 7
33
DICOM: DIMSE
! Tipos de grupos de servio:
Verificao de Ligao
Leitura/Alterao de Informao
34
DICOM: Mensagens
! Formato das Mensagens (Captulo 7)
35
DICOM: Mensagens
! Formato das Mensagens DIMSE
(Captulo 7 da Norma)
TAG identificador nico Length Unsigned Integer32 bits Value Parmetro propriamente dito.
36
DICOM: Comunicao
37
DICOM: Comunicao
! Classe de Servio Storage ! Objectivo: Transferncia simples de objectos entre AE DICOM
SCU e SCP suportam os IODs envolvidos Informao armazenada no meio Informao fica disponvel durante um certo tempo
! Papis:
MAGN ETOM
1 SCU 1 SCP
38
DICOM: Comunicao
! Classe de Servio Storage Protocolo
SCU invoca C-Store-RQ 1 Constroi msg C-Store-RQ com o IOD 2 Envia para Preentation Layer usando
SCP Recebe C-Store-RQ (armazena IOD) e responde com C-Store-RSP Recebe uma C-Store-Ind 1 Constroi msg C-Store-RSP 2 Envia para Preentation Layer usando msg P-Data
39
DICOM: Comunicao
! Classe de Servio Storage Protocolo
SCU invoca C-Store-RQ 1 Constroi msg C-Store-RQ com o IOD 2 Envia para Preentation Layer usando msg P-Data
...
SCP Recebe C-Store-RQ (armazena IOD) e responde com C-Store-RSP Recebe uma C-Store-Ind 1 Constroi msg C-Store-RSP 2 Envia para Preentation Layer usando msg P-Data
40
DICOM: Associao
! Primeiro iniciar uma ligao
! Acordar:
Quais as SOPs que vo ser aplicadas Papeis Sintaxe de Transferncia Parmetros de comunicao
Maximum Package Size Nmero de associaes simultneas
41
! Nvel Paciente:
Identificao Dados Demogrficos Actividade central Identificao Tipo de modalidade Data/hora Detalhes do tipo de exame Detalhes do equipamento (parmetros)
! Nvel do Estudo:
! Srie
42
Informao da posio Informao relacionada com os parmetros de aquisio Dados relativos organizao Dados da imagem
! Modelo Completo:
43
Organizao de imagens:
Relao temporal (ex:angiografia) Relao espacial (ex: CT)
Neste caso poder conter uma imagem de referncia Quando so aplicados algoritmos distintos de reconstruo, os resultados so guardados em sries distintas. Relativas a um rgo (ex: vrias vistas do intestino)
44
45
Identificador do Paciente
RIS ou HIS
Identificador do Study
RIS ou HIS fundamental que seja nico no RIS
Identificador da Srie
Primeira informao gerada pela
modalidade. Pode ser usado para estabelecer uma ordem nas sries de imagens
Identificador da Imagem
Igual ao UID da SOP
46
Codificao
Complementos de 2 Pixel Representation Data Element (0028,0103)
47
48
49
50
Outras organizaes para imagens com compresso so definidas no captulo 5 da norma. Existem organizaes especficas para (Cap. 5):
RLE JPEG JPEG lossless JPEG-LS JPEG2000
51
DICOM: Arquivo
! Modelo
Physical Media Layer: dimenses, propriedades fsicas e mecnicas, propriedades de gravao, etc. (CDR,etc.) Media Format Layer: organizao das bit streams em estruturas especficas; estruturas de directorias etc. DICOM Data Format Layer
DICOM Media Storage SOP e IODs
relacionados Formato de ficheiro DICOM Formato de ficheiro seguro DICOM DICOM Media Storage Directory SOP e IODs DICOM Media Storage Application Profiles DICOM Security Profiles
52
DICOM: Ficheiros
! Media Storage Service Classe
53
Identificador do ficheiro que ter que ser nico no File-Set. ID composto por 1 a 8 caracteres do seguinte conjunto: {A-Z,1-0,_} O ID DICOMDIR um nome reservado para um ficheiro que descreve o File-Set A organizao pode ser como no DOS (directorias, sub-directorias). A path como no DOS: SUBDIR1\SUBDIR2\IMDICOM O FileID de um dado ficheiro composto pela Path completa. Um FILE-SET corresponde a um conjunto de ficheiros que partilham um espao de nomes no qual cada ID de ficheiro nico. Cada FILE-SET dispe de um ficheiro DICOMDIR.
! FILE-SETS:
! Servios
54
DICOM: Ficheiros
! Formato de Ficheiro ! Ficheiro
nica (tem que ser sempre legvel) O FMI deve ser transferido com Explicit VR Little Endian Transfer Syntax; UID=1.2.840.10008.1.2.1 (excepo os dois primeiros campos do Header) Em verses anteriores da norma era aplicado a Implicit VR Little Endian Transfer Syntax O data set transferido com a sintaxe definida no Header (UID)
55
DICOM: Ficheiros
! Header ! Preambulo
! Prefixo:
128 bytes para informao especfica de implementao. No tem TAG No tem value length Caso no seja usado: 00h 4 bytes No tem TAG No tem value length DICM serve para reconhecer de que se trata de um ficheiro DICOM
4 bytes Nmero de bytes no Meta File Information (permite estabelecer o nmero de bytes de informao privada no final do FMI). Offset para o incio do Data Set.
2bytes Indica a verso do header (compatibilidade com o Standard) Identificao do standard de 2003: bit 0 do 2 byte = 1
56
DICOM: Ficheiros
! Header ! Media Storage SOP UID
Identifica a classe SOP no Data Set Identifica a instncia no data set Identifica a sintaxe de transferncia no data set Identificao da implementao que escreveu o ficheiro. Para efeitos de debugging. A verso da API usada para escrever o ficheiro
57
DICOM: Ficheiros
! Header ! Source Application Entity Title
Identifica a aplicao que escreveu o ficheiro Identifica quem colocou informao privada no ficheiro A informao privada
! Private Information
58
sintaxe Explicit VR Little Endian. Em normas anteriores, a sintaxe de transferncia era Implicit VR Little Endian.
59
Notas: Implicit VR Little Endian Transfer Syntax Assume-se que os campos opcionais no esto presentes116 bytes para Data Set
unsigned int tagGN=0x0200, tagEN=0x0000; unsigned long int valLen=0x02000000;//valor = 2 em 4 bytes fwrite(&tagGN, sizeof(tagGN), 1, fich); fwrite(&tagEN, sizeof(tagEN), 1, fich); fwrite(&valLen, sizeof(valLen), 1, fich); unsigned int val_ui=0x7400;//116 bytes fwrite(&val_ui, sizeof(val_ui), 1, fich);
60
unsigned int tagGN=0x0200, tagEN=0x0100; unsigned long int valLen=0x02000000;//valor = 2 em 4 bytes fwrite(&tagGN, sizeof(tagGN), 1, fich); fwrite(&tagEN, sizeof(tagEN), 1, fich); fwrite(&valLen, sizeof(valLen), 1, fich); unsigned int val_ui=0x0100; fwrite(&val_ui, sizeof(val_ui), 1, fich);
61
26 caracteres=0x1A
unsigned int tagGN=0x0200, tagEN=0x0300; fwrite(&tagGN, sizeof(tagGN), 1, fich); fwrite(&tagEN, sizeof(tagEN), 1, fich); char *valueCH=geraUID(); unsigned long int val_ui=strlen(valueCH);//26 bytes fwrite(&val_ui, sizeof(val_ui), 1, fich); fwrite(valueCH, strlen(valueCH), 1, fich);
unsigned int tagGN=0x0200, tagEN=0x0200; fwrite(&tagGN, sizeof(tagGN), 1, fich); fwrite(&tagEN, sizeof(tagEN), 1, fich); unsigned long int val_ui=0x1A00;//26 bytes fwrite(&val_ui, sizeof(val_ui), 1, fich); char *valueCH=1.2.840.10008.5.1.4.1.1.20; fwrite(valueCH, strlen(valueCH), 1, fich);
62
63
DICOM: DICOMDIR
! DICOMDIR
Identifica um File-Set; cada File-Set tem que dispor de uma DICOMDIR uma directoria que facilita o acesso informao pelo recurso a informao mdica chave.
64
DICOM: DICOMDIR
! Elementos Principais
! Directory Records
Referncia a uma Entitiy record de
nvel inferior. Selection Keys Referncia a um ficheiro do File-Set (FileID) Um mecanismo que permita realizar a ligao das DR
65
DICOM:DICOMDIR
! Regras para a construo de DICOMDIR:
Cada DE de Nvel inferior ser referenciada por, no mximo, uma DR de nvel superior. (Hierarquia) Cada DR tem que pertencer a uma DE. (Hierarquia) Todos os ficheiros referenciados por DR pertencem ao mesmo File-Set. Se o DICOMDIR dispuser de um Directory Information Module, todos os ficheiros do File-Set tm que ser referenciados por um DR. Cada ficheiro do File-Set deve ser referenciado por, no mximo, uma DR.
66
DICOM:DICOMDIR
! Exemplo:
67
DICOM:DICOMDIR
! Relao entre DRs
68
DICOM:DICOMDIR
! Estrutura Base
69
DICOM:DICOMDIR
70
DICOM:DICOMDIR
! Directory Record
DICOM:DICOMDIR
Identificao de tipo
Informao do Ficheiro
Informtica Mdica - DEI Univ. de Coimbra 72
DICOM:DICOMDIR
Informao do Ficheiro
73
DICOM: DICOMDIR
! Exemplo:
DICOM: DICOMDIR
75