REST API EN MIRTH CONNECT - TALLER VIRTUAL GRATUITO EN ESPAÑOL 25 JUNIO 2021 7 PM (GMT-3)
Temario
- Configuración del Source y HTTP Listener
- Configuración del Destination con JavaScript
- Lectura en Base de datos SQL
- Conocimiento básico de Mirth Connect sobre canales
- Conocimiento básico de REST API
- Conocimiento básico de Postman
REST, REpresentational State Transfer, es un tipo de arquitectura de desarrollo web que se apoya totalmente en el estándar HTTP.
REST nos permite crear servicios y aplicaciones que pueden ser usadas por cualquier dispositivo o cliente que entienda HTTP, por lo que es increíblemente más simple y convencional que otras alternativas que se han usado en los últimos diez años como SOAP y XML-RPC.
REST se definió en el 2000 por Roy Fielding, coautor principal también de la especificación HTTP. Podríamos considerar REST como un framework para construir aplicaciones web respetando HTTP.
Por lo tanto REST es el tipo de arquitectura más natural y estándar para crear APIs para servicios orientados a Internet.
Para configurar una Api REST en Mirth Connect vamos a seguir los siguientes pasos:
En primer paso es crear nuestro Rest API. Para lo cual vamos a canales presionamos botón derecho y creamos New Channel
luego vamos a Source y configuramos nuestro canal de entrada
Configuramos lo siguiente:
un Connector Type HTTP Listener, en el puerto 7000
La respuesta va a ser en Destination 1
En el puerto de escucha HTTP Listener Settings
ponemos
Base Context Path: /pacientes
Binary Minet types: application/.*(?<!json|xml)$|image/.*|video/.*|audio/.*
http url: http://localhost:7000/pacientes/
El formato de la respuesta en Message Content es XML
Marcamos qué incluye medata datos (Yes)
En el Response Content type ponemos {responseContentType} la idea acá es poner dinámicamente el valor en este parámetro para usarlo en destination cuando procesamos los datos.
En Response Status Code ponemos:
${responseCode}
Luego vamos a Destination
Vamos a obtener los datos desde la base de datos para lo cual:
tenemos que abrir la conexión a la base de datos ejecutar el procedimientos de búsqueda y devolverlos a través de un objeto JSON M usando Java Database Connectivity (JDBC) .
JDBC es la especificación JavaSoft de una interfaz de programación de aplicaciones (API) estándar que permite que los programas Java accedan a sistemas de gestión de bases de datos. La API JDBC consiste en un conjunto de interfaces y clases escribas en el lenguaje de programación Java.vCon estas interfaces y clases estándar, los programadores pueden escribir aplicaciones que conecten con bases de datos, envíen consultas escritas en el lenguaje de consulta estructurada (SQL) y procesen los resultados.
Puesto que JDBC es una especificación estándar, un programa Java que utilice la API JDBC puede conectar con cualquier sistema de gestión de bases de datos (DBMS), siempre y cuando haya un controlador para dicho DBMS en concreto.
Para esto configuramos en el Connector Type seleccionamos un <Java script Writer>
Lo que tenemos que hacer es la búsqueda en nuestra base de datos y devolver la respuesta.
Para asistirnos en la construcción del Query de SQL MIRTH tiene un asistente que podemos buscar en Dentro de Destination vamos a Edit transformer donde tenemos template que nos ayudan a generar el código.
Luego de configurar todo grabamos para ver como queda este contenido chequen con lo que está abajo.
var dbConn;
var result;
var patientsArray = [];
try {
dbConn = DatabaseConnectionFactory.createDatabaseConnection("com.mysql.cj.jdbc.Driver", "jdbc:mysql://localhost:3306/mydatabase", 'root', 'root');
result = dbConn.executeCachedQuery('select * from pacientes');
while (result.next()) {
const Nom = result.getString('Nombre');
const Ape = result.getString('Apellido’');
const Fechnac = result.getString('Fechnacimiento');
const patientObject = {firstname: Nom, lastname: Ape, date_of_birth: Fechnac};
patientsArray.push(patientObject);
}
channelMap.put('responseContentType', 'application/json');
channelMap.put('responseCode', '300');
return JSON.stringify(patientsArray);
} catch (e) {
logger.info(e);
return [];
} finally {
if (dbConn) {
dbConn.close();
}
}
Grabamos y hacemos el deploy de nuestro canal para probar la API
Buscamos database query y seleccionamos new step
Referencias
https://hl7latam.blogspot.com/2021/05/setup-de-una-rest-api-en-mirth-connect.html
Hola Dr. Humberto F. Mandirola,
ResponderBorrarSeguí su ejemplo y me funcionó, pero en vez de conectar a una BD me conecte a un API REST con método POST, realice la conexión y funciona a medias, lo que no logro entender o saber es como desde un postman le envio la url http://localhost:7001/Order/ y el objeto json pero al momento de llegar al API REST configurado llega vació.
En el source - transformer le he agregado los 4 parámetros (y aquí es donde estoy perdido, no sé si debería ser así)
En el destination en content le envío así :
{
"id":"${id}",
"createdAt" : "${createdAt}",
"name": "${name}",
"avatar": "${avatar}"
}
o como se deberia enviar o recibir un objeto json?
PD: llevo casi un día aprendiendo Mirth Connect, disculpe si ando medio perdido
Muchas gracias