Está en la página 1de 5

23/5/2019 dcm4chee: Actualización del estado del pedido de SPs de un artículo MWL a través de HL7 y mejor cumplimiento con

mplimiento con HL7

BLOG DE
DAVID SIMIC

Reflexiones sobre (datos) ciencia, tecnología y vida.


Buscar: Inicio » 2016 » noviembre » 27 » dcm4chee: Actualización del estado del pedido de SPs de un artículo de MWL a través de HL7 y un mejor
cumplimiento de HL7

DCM4CHEE: ACTUALIZACIÓN DEL ESTADO Search this site...

DEL PEDIDO DE SPS DE UN ARTÍCULO


MWL A TRAVÉS DE HL7 Y MEJOR ¿Quieres más artículos
CUMPLIMIENTO CON HL7 como estos?
Sin trucos ni ventanas
27 de noviembre de 2016· Por David Simic · en Salud , Software emergentes, simplemente
algunos artículos de mis
Supongamos que desea actualizar el estado de SPS de un elemento mwl en dcm4chee, artículos al mes, a medida que
aparecen.
preferiblemente de una manera compatible con HL7.

Your email addres


(Crear elementos mwl desde cero en dcm4chee a través de los mensajes de HL7 es fácil y
se explica por separado aquí ).
Unirse

La suposición obvia de leer el estándar HL7 sobre este asunto sería enviar un mensaje de
ORM con un segmento de ORC así:
A C E RC A D E DA V ID

ORC | SC | 1 ||| PROGRAMADO || 1 ^ 0 ^ 60 ^ 20161012040000 ¡Bienvenido a mi blog!

Soy un físico,
si está actualizando el estado de un elemento MWL existente (indicado mediante la
empresario y
configuración de ORC-1 en SC, que según HL7 2.5 significa "Estado cambiado"), o
trotamundos con
quizás:
experiencia en
desarrollo de software,

ORC | XO | 1 ||| PROGRAMADO || 1 ^ 0 ^ 60 ^ 20161012040000 big data y gestión de


proyectos.

si está creando y configurando simultáneamente el estado de un elemento MWL. Presto servicios de


consultoría. No dude en
(El conjunto completo de valores ORC-1 se define en el Capítulo 4 de la norma HL7 2.5 ponerse en contacto
en la “Tabla HL7 0119 - Códigos de control de orden” . Aquí se explica cómo descargar y conmigo en
navegar las especificaciones de la norma ). david@moringasci.com
para tener un chat.
Sin embargo, en la configuración predeterminada de dcm4chee, ninguno de estos
funcionará como se esperaba. También puedes
encontrarme en
Aunque estamos especificando el estado en el campo ORC-5 (que de acuerdo con HL7 LinkedIn ,
v2.5 corresponde a un campo opcional de "Estado del pedido"), encontrará que este stackoverflow , Twitter

davidsimic.com/2016/11/27/dcm4chee-updating-sps-order-status-of-a-modality-worklist-item-via-an-hl7-message/ 1/5
23/5/2019 dcm4chee: Actualización del estado del pedido de SPs de un artículo MWL a través de HL7 y mejor cumplimiento con HL7

campo es completamente ignorado por el analizador de dcm4chee que ejecuta la , ResearchGate &
configuración predeterminada. Peor aún, los mensajes con ORC-1 configurado en SC se GitHub .
ignoran completamente.

Esto se debe a que, por defecto, dcm4chee maneja las actualizaciones de SPS en su
M EN SAJ E S RE C I EN TE S
propia forma particular (y no exactamente compatible con HL7), y esto se especifica
hasta cierto punto en la configuración del campo OrderControlOPerationMap en su Borrado de pedidos de FileCopy
servidor HL7Server, tipo = ORM bean (configurable a través de jmx- consola).
en dcm4chee2.x

Cómo adquirir o vender su

software: problemas de

impuestos en los Estados Unidos

Seguridad de WordPress: Parte 2

(o por qué fail2ban Rocks)

dcm4chee: Actualización del

estado del pedido de SPs de un


Servicio HL7, tipo = ORM bean.
artículo MWL a través de HL7 y

Al abrir la consola jmx para este bean, encontrará que el valor predeterminado del mejor cumplimiento con HL7

campo OrderControlOperationMap es: Desarrollo de aplicaciones

Dicom: cómo obtener un UID


1 NW:NW
2 XO:XO raíz de organización de forma
3 XO(SC):XO(SCHEDULED)
4 XO(CM):XO(COMPLETED) gratuita
5 CA:CA
6 OC:CA
7 DC:SC(DISCONTINUED) C OM EN T A RIO S RE C I E NT E S
8 OD:SC(DISCONTINUED)
9 SC(IP):SC(STARTED)
10 SC(AR):SC(ARRIVED) David Simic sobre el desarrollo
11 SC(CM):SC(COMPLETED)
12 SC(DC):SC(DISCONTINUED) de aplicaciones Dicom: cómo
13 SC(CA):CA
14 SC:NOOP obtener un UID raíz de

organización de forma gratuita


que le dice a dcm4chee qué función interna precompilada debe usar para analizar un
mensaje ORM entrante en función del valor de su campo ORC-1 (es decir, la segunda a la James Korte en Developing
última línea de la configuración anterior significa que si el campo ORC-1 es "SC (CA ) Dicom Apps: cómo obtener un
"Que dcm4chee ejecutará una función interna llamada" CA "- sin ningún argumento).
UID raíz de organización de

forma gratuita
Por lo tanto, si solo está interesado en saber cómo actualizar el estado SPS de un
elemento MWL de la manera dcm4chee, los documentos de ayuda del campo David Simic en dcm4chee:
OrderControlOperationMap le indicarán que, para actualizar el estado a Actualización del estado del
PROGRAMADO, el campo ORC-1 debe configurarse en XO. (CAROLINA DEL SUR):
pedido de SPs de un artículo

MWL a través de HL7 y mejor


ORC | XO (SC) | 1 ||||| 1 ^ 0 ^ 60 ^ 20161012040000
cumplimiento con HL7

Alejandro Benavides en
y para actualizar el estado a STARTED, ORC-1 debe ser SC (IP):
dcm4chee: Actualización del

estado del pedido de SPs de un


ORC | SC (IP) | 1 ||||| 1 ^ 0 ^ 60 ^ 20161012040000 artículo MWL a través de HL7 y

mejor cumplimiento con HL7

davidsimic.com/2016/11/27/dcm4chee-updating-sps-order-status-of-a-modality-worklist-item-via-an-hl7-message/ 2/5
23/5/2019 dcm4chee: Actualización del estado del pedido de SPs de un artículo MWL a través de HL7 y mejor cumplimiento con HL7

y así. El campo ORC-5 que normalmente correspondería a OrderStatus, es irrelevante en Paul en Dcm4chee: PACS
la configuración predeterminada.
Synchronization via Dicom

Forwarding
Configuración de dcm4chee para actualizaciones de
estado de orden compatibles con HL7 L AS C A T E GO RÍ AS

Aunque la solución predeterminada de dcm4chee hace el trabajo, suponga que desea


Cuidado de la salud
algo que sea más estrictamente compatible con HL7.
Seguridad

Por ejemplo, mirando el estándar HL7 v2.5, Capítulo 4 (que cubre los mensajes ORM y Software
en particular el segmento ORC), no se mencionan los códigos ORC-1 XO (SC), XO (CM),
SC (IP). ), SC (AR), etc., que se utilizan para establecer el estado de mwl en dcm4chee.
En su lugar, el estándar nos dice que configuremos ORC-1 en SC al actualizar el estado,
con el valor de estado especificado en ORC-5. Y como hemos visto anteriormente, en su
configuración predeterminada, dcm4chee (v2.18.x) simplemente ignora el campo de
estado de ORC-5 sps, estableciendo que no hace nada.

Podemos remediar esta situación y hacer que la instalación HL7 sea compatible con
respecto a las actualizaciones de estado de los pedidos modificando el archivo de
configuración om2dcm.xml. Este es el archivo de configuración encargado de decirle a
dcm4chee cómo analizar un mensaje HL7 y convertirlo en datos DICOM (que dcm4chee
entiende mejor, y entra directamente en sus columnas en su modelo de db cuando sea
apropiado, siendo su formato de datos "nativo", si Vas a).

En particular, necesitamos modificar la parte que dicta el análisis del segmento ORC en
modo = "sps", para que se vea así:

1 <xsl:template match="ORC" mode="sps">


2 <item>
3 <!-- Scheduled Procedure Step Start Date/Time -->
4 <xsl:call-template name="attrDATM">
5 <xsl:with-param name="datag" select="'00400002
6 <xsl:with-param name="tmtag" select="'00400003
7 <xsl:with-param name="val"
8 select="string(field[7]/component[3]/text
9 </xsl:call-template>
10 <!-- SPS Status -->
11 <xsl:call-template name="attr">
12 <xsl:with-param name="tag" select="'00400020'
13 <xsl:with-param name="vr" select="'UI'"/>
14 <xsl:with-param name="val"
15 select="string(field[5]/text())"/>
dieciséis </xsl:call-template>
17 <!-- End SPS Status -->
18 <xsl:apply-templates
19 select="following-sibling::OBR[1]" mode="sps"/
20 </item>
21 </xsl:template>

(Donde insertamos la sección entre los comentarios "Estado SPS" y "Estado SPS final").

La sección insertada le indica a dcm4chee que analice el quinto campo del segmento
ORC en la etiqueta DICOM (0040,0020) que corresponde al "Estado del pedido de SPS".

(Si los archivos xsl te dan miedo, incertidumbre y temor (FUD), unos minutos de lectura
sobre XSLT te harán maravillas. Los conceptos básicos son realmente muy simples).

davidsimic.com/2016/11/27/dcm4chee-updating-sps-order-status-of-a-modality-worklist-item-via-an-hl7-message/ 3/5
23/5/2019 dcm4chee: Actualización del estado del pedido de SPs de un artículo MWL a través de HL7 y mejor cumplimiento con HL7

Después de la edición de configuración anterior (no es necesario reiniciar dcm4chee,


yay), al enviar el siguiente mensaje HL7 ahora se actualiza el elemento mwl para que
sps_status = LLEGUE:

1 PID||1|9AG7989C16E9||BARRIO^EDGAR^^^^None
2 PV1||RAD|||||TEST.JaLo^Jaramillo^Lorenza
3 ORC|XO|||ARRIVED||1^0^60^20161012040000
4 OBR|1|1|2|CT^^^None|||||||||||||||2|JIXZFT||||CT||||||||||None
5 ZDS|1.2.826.0.1.3680043.9.6467.0.1476185012461.0^dorada.CT.1^CT.1

Una opción más estrictamente compatible con HL7 sería utilizar ORC-1 = SC (que de
acuerdo con HL7 v2.5 está específicamente reservado para actualizaciones de estado de
pedidos) en lugar de "XO". Para que esto funcione, necesitamos actualizar la línea SC:
NOOP en el campo OrderControlOperationMap del servicio ORM para que sea SC: XO
en lugar de SC: NOOP, es decir:

1 NW:NW
2 XO:XO
3 XO(SC):XO(SCHEDULED)
4 XO(CM):XO(COMPLETED)
5 CA:CA
6 OC:CA
7 DC:SC(DISCONTINUED)
8 OD:SC(DISCONTINUED)
9 SC(IP):SC(STARTED)
10 SC(AR):SC(ARRIVED)
11 SC(CM):SC(COMPLETED)
12 SC(DC):SC(DISCONTINUED)
13 SC(CA):CA
14 SC:XO

¿Por qué en esa última línea SC: XO y no SC: SC?

Bueno, SC sin argumentos no es una función definida en dcm4chee, y la asignación a


NOOP resultará en una no operación, por lo que lo mejor que podemos hacer es
configurarlo para que llame a la función interna "XO". Desde el punto de vista del
estándar HL7, esto es irrelevante, ya que no se relaciona con los nombres de funciones
internas que dcm4chee utiliza para ejecutar operaciones, siempre que los resultados de
esas operaciones sean coherentes con lo que el estándar solicitó / definió en respuesta al
mensaje enviado.

Con el cambio de configuración anterior, el siguiente mensaje ORM actualiza el estado


del elemento MWL a LLEGADO:

1 PID||1|9AG7989C16E9||BARRIO^EDGAR^^^^None
2 PV1||RAD|||||TEST.JaLo^Jaramillo^Lorenza
3 ORC|SC|||ARRIVED||1^0^60^20161012040000
4 OBR|1|1|2|CT^^^None|||||||||||||||2|JIXZFT||||CT||||||||||None
5 ZDS|1.2.826.0.1.3680043.9.6467.0.1476185012461.0^dorada.CT.1^CT.1

¡Y eso es!

Nota: Lo anterior ha sido probado con dcm4chee v2.18.1.

Campo de golf
La forma predeterminada de dcm4chee también se trata aquí:

https://groups.google.com/forum/#!topic/dcm4che/Yfkyp0S-Ns0
davidsimic.com/2016/11/27/dcm4chee-updating-sps-order-status-of-a-modality-worklist-item-via-an-hl7-message/ 4/5
23/5/2019 dcm4chee: Actualización del estado del pedido de SPs de un artículo MWL a través de HL7 y mejor cumplimiento con HL7

Si te ha gustado esta publicación, quisiera tu dirección de


correo electrónico, por favor.
Sin trucos ni ventanas emergentes, simplemente un artículo como el anterior, que
escribo varias veces al mes, solo para mis suscriptores.

Your email address...

Unirse

Etiquetas: dcm4chee , hl7

2 respuestas

Alejandro Benavides 7 de agosto de 2018 a 5:26 pm· Responder →

Hola David, gracias por tu publicación, especialidad en salud, espero que

continúes compartiendo más información, saludos.

David simic 11 de agosto de 2018 a 11:40 am· Responder →

Gracias Alejandro.

Deja una respuesta

Enter your comment here...

← Desarrollo de aplicaciones Dicom: cómo obtener una UID raíz de la organización de forma gratuita
Seguridad de WordPress: Parte 2 (o por qué fail2ban Rocks) →

Copyright © 2019 Moringa Science LLC. Todos los derechos reservados. Términos de servicio . Política de privacidad.

davidsimic.com/2016/11/27/dcm4chee-updating-sps-order-status-of-a-modality-worklist-item-via-an-hl7-message/ 5/5

También podría gustarte