Sistema RIS en un SiHosEl intercambio de información entre un sistema de información hospitalaria y un Sistema de Información Radiológica RIS se logra a través del uso de sockets, en donde se crea primero la estructura de datos que deberá interpretar el sistema del RIS y después se realiza la conexión bajo el concepto de cliente servidor.

Este documento se divide en 2 (dos) partes, la primera parte explica la preparación de los datos y la segunda muestra un ejemplo de manejo de sockets.

La preparación de los datos de un Sistema RIS

El presente documento describe los pasos que se siguieron para desarrollar la interface a través de los estándares HL7.

El Hospital tiene un sistema en operación que permite el registro de sus pacientes en una aplicación, que trabaja en una base de datos no comercial y un sistema RIS de una empresa americana.

Requerimientos del Sistema RIS.

El Sistema de Información Radioloógica RIS requiere recibir una cadena de caracteres con el formato siguiente, que para su mejor comprensión lo desglosaremos en 4 registros, estos son:

  • Primer registro. Su contenido será:
    • MSH|^~\&|HIS|HNOMBREHOSPITAL|RIS|HSAHO|20110114133738||ADT^A01|1|P|2.3.1
    • En donde:
      • MSH es la identificación del registro.

Nota. Los pipes | son separadores de campos

      • Campo 1. ^~\& caracteres especiales.
      • Campo 2. HIS identificador de la aplicación.
      • Campo 3. HNEURO fuente emisora.
      • Campo 4. RIS fuente receptora.
      • Campo 5. HSAHO fuente emisora / nombre del servidor
      • Campo 6. 20110221113123 Fecha y hora del sistema.
      • Campo 7 vacío.
      • Campo 8. ADT^A01 tipo de mensaje y código del evento.
      • Campo 9. 1 número secuencial del mensaje.
      • Campo 10. P ID de procesamiento P es producción.
      • Campo 11. 2.3.1 Número de versión de HL7.
  • Segundo registro.
    • Su contenido es EVN||20110114133738
    • En donde:
      • EVN es la identificación del segundo registro.
      • Campo 1 está vacío.
      • Campo 2. 20110114133738 fecha del sistema en formato YYYYMMDDHHMMSS.
  • Tercer registro.
    • Su contenido es:
      • PID que es la identificación del registro.
      • Campos 1 y 2 están vacíos.
      • Campo 3. E133736^^^HNOMBREHOSPITAL es la identificación del paciente más la autoridad de asignación.
      • Campo 4 está vacío.
      • Campo 5. Gutierrez Lopez^Hector Trinidad es el apellido paterno, apellido materno y nombres separados por ^.
      • Campo 6 está vacío.
      • Campo 7. 19510909 fecha de nacimiento del paciente en formato AAAAMMDD.
      • Campo 8. Es el sexo del paciente, M masculino, F femenino. y U para desconocido.
      • Campo 9. 2 es el nivel socio económico.
      • Campo 10 es la nota que asienta el médico.
      • Campo 11. Av. Ejercito Nacional No. 547, Col. Irrigacion^Miguel Hidalgo^Ciudad de Mexico^Disitrito Federal^04620^Mexico es la dirección del paciente compuesta por:
        • Dirección particular (.Av. Ejercito Nacional No. 547, Col. Irrigacion)
        • Comuna (Miguel Hidalgo).
        • Ciudad (Ciudad de Mexico).
        • Código de región (Distrito Federal).
        • Código Postal (04620)
        • País (Mexico).
      • Campo 12 está vacío.
      • Campo 13. Teléfono casa ^^^^^^5512345678.
      • Campo 14. Email y teléfono celular ^^^Esta dirección de correo electrónico está protegida contra spambots. Usted necesita tener Javascript activado para poder verla.^^^0445512345678.
      • Campo 15 está vacío.
      • Campo 16. Estado civil (apegado al catálogo en vigor).
      • Campos 17 y 18 están vacíos.
      • Campo 19. CURP y RFC MAJE5I0909MDFASDFE^MAJE510909PES.
  • Cuarto registro.
    •  Su contenido es PV1||O|||||||||||||||||14012011133738
    • Donde:
      • PV1 es le identificación del registro.
      • Campo 1. Vacío.
      • Campo 2. Origen del paciente:
        • P hospitalización.
        • R terapia intensiva.
        • E urgencias
        • I consulta externa.
        • O ambulatorio.
        • S sin registro.
      • Campos del 3 al 18 vacíos.
      • Campo 19. Número de visita 14012011133738.

Esta información deberá ser enviada a la dirección IP y PUERTO que defina el proveedor en donde reside el RIS y se recibirá un mensaje de respuesta del tipo:

  • MSH|^~\&|RIS|HNEURO|HIS|HSAHO|||ACK^|1|P|2.3.1  MSA|AA|1|OK 

Requerimientos del sistema SiHos

La aplicación cuenta con una pantalla que contiene los siguientes campos:

Sistema RIS

A partir de esta información y tomando como base la estructura del tercer registro que se deberá generar, el contenido de los campos sería:

  • PID que es la identificación del registro.
  • Campos 1 y 2 están vacíos.
  • Campo 3. 132055^^^HNOMBREHOSPITAL es la identificación del paciente más la autoridad de asignación.
  • Campo 4 está vacío.
  • Campo 5. Escobar Torres^Adrian es el apellido paterno concatenado con el apellido materno, EL SIMBOLO ^ y nombres.
  • Campo 6 está vacío.
  • Campo 7. 19750204 fecha de nacimiento del paciente en formato AAAAMMDD.
  • Campo 8. M masculino.
  • Campo 9. Se dejará vacío es el nivel socio económico.
  • Campo 10 contendrá el motivo de la consulta, en este ejemplo quedará vacío.
  • Campo 11. AC JUAREZ S/N ATLAUTLA MEXICO^AGUASCALIENTES^AGUASCALIENTES^AGUASCALIENTES^56070^Mexico es la dirección del paciente.
  • Campo 12 está vacío.
  • Campo 13. Teléfono casa vacío.
  • Campo 14. Email y teléfono celular vacío
  • Campo 15 está vacío.
  • Campo 16. Estado civil C casado (a), D para divorciado (a), S para soltera (a), V para viudo (a), U unión libre y P separado (a).
  • Campos 17 y 18 están vacíos.
  • Campo 19. CURP y RFC  ^EOTA750204.

Diseño conceptual del desarrollo.

Diagrama sistema RIS

SIHOS. Es el sistema de información que actualmente opera en el Instituto y donde se registran los datos del paciente, en especial en la tabla de PACIENTE.

DATA VIEW. Es una aplicación desarrollada en Java y base de datos  postgresql versión 8.2 que utiliza un Data View para extraer los datos socio económicos de cada paciente del SiHos y genera 2 tablas en una base de datos local llamada interfacehl7, la primera tabla llamada tbdatos en donde deja los datos del paciente apegados a la norma HL7 que proporcionó personal de la marca del equipo RIS y una segunda tabla llamada resultados en donde se guardaran las respuestas que envíe el RIS, además de un archivo en texto llamado rcvdata.hl7 que deberá estar colocado en el directorio c:\interface.

INTERFACE RIS. Es el programa que extrae los datos de la tabla tbdatos y del archivo de texto rcvdata.hl7 y los envía a la dirección IP y puerto que designó el personal del RIS y espera la respuesta (ack) del RIS, la cual queda almacenada en la tabla resultados.

RIS. Es el sistema de información radiológica que administra los datos de los pacientes que serán atendidos en Imagenología.

Pasos a seguir para crear la interface

El Data View.

  1. Se genera un archivo de parámetros que contenga:
    1. Sending application  valor HIS
    2. Sending facility valor HNOMBREHOSPITAL
    3. Receiving application valor RIS
    4. Receiving facility / server name valor HSAHO
    5. País valor México
  2. Los valores pueden ser modificados y no pueden quedar vacíos.

  3. Se genera una pantalla en donde se ingresen los números de expediente de los pacientes que serán atendidos en imagenología.
  4. Las tablas y campos para obtener la información son:
    • Tabla Paciente, campos:
      • PAC_ID contiene la clave del paciente.
      • PAC_NOM contiene el nombre.
      • PAC_APE_PAT contiene el apellido paterno.
      • PAC_APE_MAT contiene el apellido materno.
      • PAC_FEC_NAC contiene fecha de nacimiento.
      • PAC_SEXO contiene la clave del sexo.
      • PAC_RFC contiene el RFC.
      • PAC_CURP contiene el CURP.
      • PAC_TELN1 contiene el teléfono particular.
      • PAC_TELN2 contiene el teléfono celular.
      • PAC_EDO_CIVIL contiene la clave del estado civil.
      • PAC_MOT_CONSULTA contiene la nota del médico que atendió al paciente.
      • EDO_CVE contiene la clave de la entidad federativa, hay que obtener la descripción de la entidad a partir de este dato.
      • DEMU_CVE contiene la clave del municipio con ella y la clave de la entidad se obtiene el nombre del municipio.
      • LOC_CVE contiene la clave de la localidad, con ella, la del municipio y la de la entidad se obtiene el nombre del municipio.
      • PAC_TIPOPS contiene la clave del tipo de paciente.
    • Tabla estado, campos:
      • edo_cve es la llave.
      • edo_nom contiene el nombre de la entidad federativa.
    • Tabla del municipio, campos:
      • edo_cve es llave.
      • demu_cve es llave.
      • demu_nom contiene la descripción del municipio o delegación.
    • Tabla localidad, campos:
      • edo_cve es llave.
      • demu_cve es llave.
      • loc_cve es llave.
      • loc_nom contiene el nombre de la localidad. 

Particularidades.

Para el registro PID:

  1. Todos los datos en formato texto como dirección, nombre del paciente, notas deberán ir en mayúsculas, sin acentos y las Ñs deberán ser sustituidas por Ns.
  2. Los apellidos paterno y materno deberán concatenarse para quedar unidos y separados por un espacio.
  3. Para los pacientes sin No. de expediente, se deberá capturar en el sistema SiHos como identificación una S seguida de un número consecutivo comenzando por 1, mismo que no deberá repetirse, un ejemplo sería S000001 y en el campo de PAC_TIPOPS se deberá capturar una S.
  4. El nivel socio económico estará vacío.
  5. Si el número de teléfono particular no existe el campo queda vacío.
  6. Si el paciente tiene los 2 apellidos y nombres el formato sería AP. PATERNO AP MATERNO^NOMBRES.
  7. Si no tiene fecha de nacimiento dejar vacío el campo.
  8. Si falta algún dato en la dirección particular del paciente se dejan los ^.
  9. Si no existe el mail el formato es |^^^^^^no. celular|.
  10. Si no existe el No. celular y si el mail, el formato es |^^^mail|.
  11. Si no existen el mail y el número celular el campo queda vacío.
  12. Si no existe el CURP y si el RFC el formato es |^RFC|.
  13. Si no existe el RFC y si el CURP el formato es |CURP|.

Para el registro PVI:

  1. Se colocará la fecha del servidor en formato YYYYMMDDHHMMSS.

La interface gráfica con el sistema RIS

Interfaz Gráfica RIS

 

La segunda parte es un programa que utiliza el concepto de SOCKET para enviar y recibir datos entre ambas aplicaciones, su desarrollo es en PYTHON. Los datos a transmitir los toma de rcvdata.hl7 y la respuesta del RIS la almacena en la tabla resultados.

Datos técnicos de los componentes.

 El Data View está desarrollada en GeneXus versión 8.0, upgrade 9 y necesita para su operación:

  • Base de datos postgresql versión 8.2.
  • Java 1_4_2_08
  • Apache tomcat 5.5

La interface con el RIS está desarrollada en Python y requiere la instalación el setup_RISv11.5.exe que se encuentra en el CD que integra la documentación.

Las direcciones IP y claves de acceso son:

  • SIHOS:
    • Las claves para la base de datos son :
      • USUARIO administrador
      • CLAVE sistemas
    • Las claves para postgres son:
      • USUARIO postgres
      • CLAVE sdah05
    • Las claves para dar de alta otro servidor vía pgadmin son:
      • Nombre saho
      • Ip 167.172.2.120
      • Usuario postgres
      • Clave sdah05
  • Data View
    • Las claves para la base de datos son:
      • USUARIO postgres
      • CLAVE postgres
      • Localhost
      • Puerto 5432
  • RIS
    • IP 192.9.101.6
    • Puerto 5003

Notas:

  • Las direcciones IP, puertos y contraseñas son datos ficticios.
  • El formato presentado puede cambiar en función de la marca y características del equipo RIS. 

Para continuar con esta publicación, los invitamos a leer la segunda parte, Sockets: Protocolos de comunicación TCP y UDP.

 

comments powered by Disqus