eDCKV - jacquesfauquex/DCKV GitHub Wiki
DCKV define keys-values para registrar una instancia DICOM. eDCKV agrega la posibilidad de registrar todas las instancias de un estudio DICOM dentro de únicos listados de keys-values para todas las instancias. La "e" de eDCKV recuerda la palabra exam en ingles (o estudio en español). El formato eDCKV está diseñado para ser base de pacs, para evitar la subdivisión de estudios entre miles de instancias. Dentro del PACS opendicom, eDCKV está subdivido entre listas categoricas. Dentro de un visualizador DICOM web, todas las categorías pueden ser almacenadas dentro de una única tabla key-value.
formato
Formalmente, los keys eDCKV son derivadas de los keys DCKV mediante prefijo (PREF) de 8 bytes, que identifica la serie e instancia a la cual se refiere el resto del key.
DCKV: (SQIT)* ATRC
eDCKV: PREF (SQIT)* ATRC
Además de permitir la coexistencia de atributos de instancias distintas, el prefijo clasifica dichos atributos por familias transversales a las instancias.
DCKV
|
+------------+--------------+
| | |
[E]xamDCKV [S]eriesDCKV [I]nstanceDCKV + [P]rivateDCKV
|
+------------------+
| |
[N]ativeDCKV [C]ompressedDCKV
|
+--------------+--------------+
| | |
[F]astqlDCKV [H]ighqlDCKV [O]riginalqlDCKV
[E]xamDCKV
00 00 00 00 00 00 00 00
: atributos de nivel patient y study, comunes a todas las instancias del estudio.
- prefijo empezando con 00 00
- En eDCKV, se guarda una sola copia de estos atributo, que no tiene referencia ni de serie ni de instancia.
[S]eriesDCKV
1 s SS SS 0r RR RR CC CC
: atributos de nivel serie comunes a todas las instancias de la serie
-
prefijo empezando con 1
-
SS SS
: short litte endian -32768 <> +32767 correspondiente al número de serie.- Si el número de serie no existe, se crea uno negativo
- 0x8000 (-32768 está FF FF :reservado para cda encapsulated de solicitud.
- 0x8001...0x800F reservados para CDA de informe
- 0x8010...0x8FFF sirven para numeros de series artificiales
- Si el número de serie no existe, se crea uno negativo
-
s
: index 0-255 del Series Instance UID (permite diferenciar dos series de mismo numero y UIDs distintos). -
CC CC
: índice en la tabla de sop class. -
RR RR
: contiene 00 salvo que sea por ejemplo un grayscale softcopy presentation state (GSPS) o similar que indica como presentar otra serie. En este caso, RR RR contiene el número de serie atribuido a la serie que contiene los pixeles sobre los cuales aplica la representación. Ver el módulo Presentation State Relationship, attribute Referenced Series Sequence 00081115 acá y acá. -
r
: index 0-255 del Series Instance UID (permite diferenciar dos series de mismo numero y UIDs distintos). -
el formato del prefijo no contiene referencia a ninguna instancia particular de la serie. El mismo atributo tiene validez para todas las instancias de las serie.
- El atributo 00080080 InstitutionName es de nivel serie en el estándar DICOM. Derogamos esta disposición y le consideramos como de nivel exam.
[I]nstanceDCKV
2 s SS SS iu II II CC CC
: prefijo de los atributos propios de una instancia
- prefijo empezando con 2
- Si el parseo descubre un atributo nuevo (por ejemplo un atributo definido en un suplemento reciente al estándar DICOM), se agrega a nivel instancia, repetido en cada una de ellas.
i
: versión. Por ejemplo, las angiografía de Philips contienen dos versiones de calidad distinta y sop instance uid distintos pero mismo instance number para una misma secuencia. VV permite diferrenciarlas. Se ajusta la momento de descubrir el problema de integración de la instancia en el estudio. Se integra primero C o N y se atribuye el numero mas chico al que contiene pixeles mas chico o fecha de contenido mas chico.u
union, concatenation (relates the frames of instances into a same volume)
[P]rivateDCKV
3 s SS SS iu II II CC CC
: atributos privados.
- prefijo empezando con 3
II II
: short litte endian -32768 <> +32767 correspondiente al nro de instancia- estos atributos pueden ignorarse en las respuestas de un VNA y se guardan exclusivamente para el caso de entrega de copias de las imágenes a una estación de trabajo de la misma marca que el equipo de adquisición.
[N]ativeDCKV
4 s SS SS iu II II 00 00
: atributos imagen en formato nativo
- prefijo empezando con 4
- en forma nativo no puede haber más de una imagen en una instancia
- además del atributo 7E000010 de pixeles, entran tambien en este grupo
- obviamente 7E000008 7E000009 (que se alternativas a 7E000010 para pixel tipo float y double
- per tambien algunos atributos más directamente relacionados con la compresión o no
- 00020010 transfert syntax
- 00082111 derivation description
- 00204000 image comment
- distinción de prefijo nativo y comprimido permite que coexisten dentro de eDCKV dos representaciones de los pixeles. Una nativa y otra comprimida. En caso que existan ambos, cuando se exporta la imagen, se tiene que seleccionar el uno o el otro.
[C]ompressedDCKV
5 s SS SS iu II II FF FF
: atributos imagen en formato encapsulado comprimido
- prefijo empezando con 05
TS
: índice en la tabla de transfer syntax.II
: index 1-255 del SOP Instance UID (agrupación de frames dentro de una concatenación (https://dicom.nema.org/medical/dicom/current/output/chtml/part03/sect_C.7.6.16.2.html#sect_C.7.6.16.2.2.4).- l list,stack (refers to distinct slices of the volumes)
[F]astqlDCKV [H]ighqlDCKV [O]riginalqlDCKV
6 s SS SS iu II II FF FF
: segundo layer de calidad
7 s SS SS iu II II FF FF
: tercer layer de calidad
8 s SS SS iu II II FF FF
: cuarto layer de calidad
- complementa C en caso de compresión JPEG2000 lossless con 4 'quality layers' -capas de calildad- (C,F,H,O)
- para este caso, los fragmentos de la capa de calidad más baja quedan dentro de C, con los otros atributos relativos a los pixeles almacenados, y distribuimos, con mismo key los fragmentos de capa de calidad en F, H, O en otras categorias.
Nota explicativa : existen tres tipos de encapsulación, de los cuales dos son estándares:
- la instancia de imagen única con varios niveles de calidad, cada uno dentro de un fragmento
- el objeto enhanced con varios frames distintos dentro de una única instancia. En este caso, el estándar dictamina que cada fragmento contenga un frame completo.
- nos interesa implementar también un caso especifico de la combinación de ambos tipos como formato de almacenamiento de pacs: JPEG2000 losseless con 4 capas de calidad separadas en fragmentos distintos para cada frame de un multiframe. Para exportar el multiframe, se requiere una combinación de los niveles de calidad. Se realiza por transcoding a la salida del pacs, transformando uno o más niveles de calidad en un unico output. Si el transcoding usa menos de 4 layer, es lossy. Si usa los 4 layers es lossless.
ver (Per-Frame Functional Groups Sequence)[https://dicom.nema.org/medical/dicom/current/output/chtml/part03/sect_C.7.6.16.html#sect_C.7.6.16].