Operaciones CRUD en Base de datos Mirth Connect con Sentencias SQL

 


El lenguaje natural de Mirth es JAVA, sin embargo cuenta con mapeadores y asistentes que nos permiten manejar distintos estándares y sentencias en DICOM, FHIR, HL7, XML, SQL,JSON, etc....

Para los que venimos del mundo del C# .Net  y manejamos base de datos SQL, JAVA no nos resulta muy familiar  por lo cual que MIRTH nos permita usar sentencias SQL  y procedimientos almacenados para consultar base de datos nos facilita bastante las cosas.

El conector de origen se conecta a una base de datos externa, realiza una consulta y lee las filas seleccionadas en mensajes que se envían al canal. Esto se puede hacer usando una declaración SQL o usando el modo JavaScript.



Para realizar la consulta manualmente. La conexión de la base de datos se mantendrá abierta automáticamente a través de múltiples sondeos Windows, a menos que se especifique lo contrario. Este conector también admite una sección de post proceso donde una actualización.

La instrucción se puede ejecutar después de leer cada fila, por ejemplo, para establecer un indicador procesado en la tabla de origen. La

Los valores seleccionados de la consulta se convertirán automáticamente en un documento XML donde cada columna será un nodo separado. Ese documento XML es lo que realmente se envía al canal como mensaje.

Sentencias CRUD

CREATE Sentencia de Agregar Registros Insert 

INSERT INTO Patient (Apellido,Nombre)
VALUES (${maps.get('Apellido')}, ${maps.get('Nombre')})

READ Sentencia de lectura de datos

SELECT Apellido.vualue AS Ape_value, Nombre.value As Nom_value
WHERE BAJA=FAKSE 

UPDATE Sentencia de Actualización y/o Modificación Update

UPDATE Patient 
SET Patient.Apellido = (${maps.get('Apellido')}, Patient.Nombre =  ${maps.get('Nombre')})
Where Patient.PID = ${maps.get('PID')})

A veces hay variaciones en el lenguaje SQL de cada motor TSQL o SQL y la sintaxis puede variar un poco

UPDATE Patient 
SET Patient.Apellido  = ($ {maps.get ('Last Apellido')}, 
Patient.Nombre = $ {maps.get ('Nombre')}) 
Where Patient.PID = $ {maps.get ('PID')})::BIGINT

con eL MS SQL la sentencia de abajo funciona correctamente


UPDATE Patient

SET Patient.Apellido = ${Apellido}, Patient.Nombre = ${Nombre}

Where Patient.PID = ${PID}




DELETE Sentencia de Borrado de datos

DELETE Patient 
Where Patient.PID = ${maps.get('PID')})

Referencias

https://kailo.tech/health-it/mirth-nextgen-bits-3-crud-database-operations-using-javascript/

https://www.reddit.com/r/mirth/comments/g3ynqm/trying_to_write_to_mysql_db_from_hl7_file/

https://blog.devart.com/how-to-create-customizable-crud-operations-with-sql-complete.html?gclid=Cj0KCQjw2NyFBhDoARIsAMtHtZ6rtC7fLtW87jRucn2Vj42peZOJ4eOLfB5P6wAhSA26JZKgeRaBeOgaAl5CEALw_wcB

Comentarios

Entradas más populares de este blog

ESCANEO DEL CODIGO PDF417 DEL DNI (Documento Nacional de Identidad digital)

Receta electrónica Argentina 2024