Integración entre aplicaciones de escritorio médico y el sistema de Licencias Médicas Electrónicas

Introducción

El siguiente documento define dos métodos de integración entre aplicaciones de escritorio médico y el sistema de Licencias médicas electrónicas (LME), el primer método es enviar los datos para precargar la información de una licencia médica electrónica utilizando el método POST vía el protocolo HTTP.

El segundo método de integración es mediante una interfaz en forma de librería DLL, con ella se asegura un control sobre el proceso que esta realiza y siendo posible obtener datos desde el sistema de LME una vez que este termine su proceso, de manera transparente para la aplicación del cliente.

Descripción métodos de integración

El método POST puede ser utilizado para enviar los datos necesarios para precargar los datos de una licencia médica mediante un formulario de interfaz WEB, para más detalles revisar punto Método POST y parámetros de entrada.

La librería provista, en forma de DLL, se preocupa de encapsular tanto la llamada al navegador (Internet Explorer), preocuparse de que este lleve a cabo lo que tenga que realizar, y finalmente, obtener los datos desde el sistema de LME para pasarlos inmediatamente a la aplicación del cliente, para más detalles revisar punto Uso de la librería DLL para aplicaciones de escritorio.

Método POST y parámetros de entrada

En la dirección que se especifica mas abajo, se desplegará un ejemplo de cómo construir un formulario WEB para el envío de los campos mediante método POST que precargarán los datos de una licencia médica electrónica en el sistema de LME.

En el ejemplo se muestra a cada campo con una glosa explicativa, esta última mostrará cual es la función del campo dentro de una licencia médica o cuales son los datos permitidos para su envío.

Campo Descripción
URL ejemplo formulario WEB Ambiente de Pruebas http://www.licencia.cl/lme_pruebas/documentacion/prestador/ejemplo.php
URL envío campos mediante método POST Ambiente de Pruebas http://www.licencia.cl/lme_pruebas/intranet/prestador/licencia_paso0.php
URL envío campos mediante método POST Ambiente de Producción http://www.licencia.cl/lme_produccion/intranet/prestador/licencia_paso0.php

Parámetros de entrada

Campo Descripción
url_retorno Esta URL es utilizada por el sistema de LME para redireccionar los parámetros de salida una vez que este finalice su proceso.
rut_prestador Sin puntos, guión ni dígito verificador.
Ej: 12345678
password Contraseña del prestador
solicitud_licencia Para más detalles revisar punto Lista de campos para precargar los datos de la licencia médica.

Método POST y parámetros de salida

Parámetros de salida

Una vez finalizado el proceso del sistema de LME, este retornará un XML base64, a la URL de retorno mencionada en el punto anterior, con los datos de una o mas licencias creadas.

Campo Tipo Descripción
licencias Texto XML base64, para mas detalles de su estructura revisar punto Datos estructura XML.
Si por algún motivo la emisión de la licencia llegará a fallar o esta es cancelada se retornará vacío.

Uso de la librería DLL para aplicaciones de escritorio

Parámetros de entrada

A continuación se detallan los pasos realizados por la librería DLL para comunicarse con el sistema LME:

1.- La aplicación del cliente invoca a una función de la librería provista con los datos necesarios para precargar la emisión de una licencia electrónica en el sistema de LME.

2.- La librería se preocupa de crear un pequeño servidor WEB para recibir datos desde el sistema LME.

3.- La librería levanta una instancia del navegador (Internet Explorer) en la aplicación correspondiente. Le pasa al sistema de LME un parámetro para que cuando finalice, redirija al servidor creado en el punto 2.

4.- Durante la ejecución, la librería lleva un control sobre la aplicación de navegación abierta, de manera de capturar, por ejemplo, eventuales cierres del navegador.

5.- El sistema de LME al finalizar, redirige a la dirección provista en el punto 3.

6.- La librería deja disponibles los datos a la aplicación cliente.

Para realizar la operación descrita anteriormente, la librería proveerá una función, la cual tendrá los siguientes datos de entrada:

Campo Tipo Descripción
URLApp Texto URL de la aplicación a invocar, en este caso sería:
http://www.licencia.cl/lme_produccion/intranet/prestador/licencia_paso0.php
datos Texto Datos a pasar al sistema LME. A continuación se despliega un ejemplo de parámetros que serán pasados al sistema de LME, para mas detalles revisar punto Detalle parámetros de entrada:
rut_prestador=15561571&password=Xtd089Kf&rut_usuario=15561572

Detalle parámetros de entrada

El campo "datos" es un campo de texto que será enviado al sistema de LME. El formato es el siguiente:

1.- Se pueden pasar varios parámetros.

2.- Un parámetro tiene un nombre y un valor.

3.- Para asignar un valor a un parámetro, se utiliza el carácter = de la siguiente forma nombre_parametro=valor_parametro.

4.- Para separar distintos parámetros, se utiliza el carácter & entre dos parámetros definidos.

A continuación se detallan los campos que serán enviados al sistema de LME mediante el campo "datos":

Campo Descripción
rut_prestador Sin puntos, guión ni dígito verificador.
Ej: 12345678
password Contraseña del prestador
solicitud_licencia Lista de campos para precargar los datos de la licencia a emitir, para mas detalles revisar punto Lista de campos para precargar los datos de la licencia médica.

Detalle parámetros de salida

La función provista, retorna una estructura con los siguientes campos:

Campo Tipo Descripción
estado Número 0 indica que terminó correctamente, otro valor indica algún error.
glosaEstado Texto Glosa descriptiva del estado retornado
datos Texto XML base64, para mas detalles de su estructura revisar punto Datos estructura XML
Si por algún motivo la emisión de la licencia llegará a fallar o esta es cancelada se retornará vacío.

Lista de campos para precargar los datos de una licencia médica

Campo Descripción
rut_profesional (OBLIGATORIO) Sin puntos, guión ni dígito verificador.
Ej: 12345678
dv_profesional (OBLIGATORIO) Dígito verificador del rut del profesional que otorga la licencia
id_asegurador Código de la entidad que se pronunciará sobre la licencia, de acuerdo a los siguientes códigos:
67 : COLMENA
71 : CONSALUD
78 : CRUZ BLANCA / ING
80 : VIDA TRES
88 : MASVIDA
99 : BANMEDICA
rut_trabajador Rut del trabajador en formato número.
Ejemplo: 12345678
dv_trabajador Dígito verificador del rut del trabajador.
Ejemplos: 1,2,...,K
codigo_tipo_lcc Código del tipo de la licencia, según los siguientes códigos:
1 : Enfermedad o accidente común
3 : Licencia maternal pre y post natal
4 : Enfermedad grave del hijo menor de un año
7 : Patología del embarazo
subtipo_lcc Indicador de prenatal o postnatal para licencias tipo 3.
Valores posibles=[ 'prenatal' | 'postnatal' ]
fecha_inicio_reposo Fecha de inicio de reposo en formato YYYY-MM-DD
dias_licencia Número de días de reposo
fecha_nac_hijo Fecha de nacimiento del hijo, en formato YYYY-MM-DD.
Campo requerido para licencias tipo 3 (sólo postnatal) y 4.
nombre_hijo Nombres del hijo.
Campo requerido para licencias tipo 3 (sólo postnatal) y 4.
paterno_hijo Apellido paterno del hijo.
Campo requerido para licencias tipo 3 (sólo postnatal) y 4.
materno_hijo Apellido materno del hijo.
Campo requerido para licencias tipo 3 (sólo postnatal) y 4.
rut_hijo RUT del hijo.
Campo requerido para licencias tipo 3 (sólo postnatal) y 4.
dv_hijo Dígito verificador del rut del hijo.
Campo requerido para licencias tipo 3 (sólo postnatal) y 4
mortinato_hijo Indicador de mortinato, aplicable a licencias tipo 3 (sólo postnatal) y 4.
Valores posibles=[ 'SI' | 'NO' ]
recuperabilidad ¿Recuperabilidad laboral? Valores posibles:
1 : Si
2 : No
inic_tram_inval ¿Inicio de trámites de invalidez? Valores posibles:
1 : Si
2 : No
fecha_concepcion Fecha de concepción del hijo, sólo para licencias tipo 7 y 3-prenatales. Fecha en formato YYYY-MM-DD
codigo_tipo_reposo Código del tipo de reposo, de acuerdo a los siguientes valores:
1 : Total
2 : Parcial
codigo_duracion_reposo Código de duración de reposo parcial, de acuerdo a los siguientes valores:
A : Mañana
B : Tarde
C : Noche
codigo_lugar_reposo1 Código de lugar de reposo principal, de acuerdo a los siguientes valores:
1 : Domicilio
2 : Hospital
3 : Otro
reposo_fono1 Teléfono de la dirección de reposo principal, en formato CODIGO-TELEFONO.
Ejemplo 02-1234567
reposo_dir_glosa1 Calle y número de la dirección de reposo principal
reposo_dir_comuna1 Código de comuna de reposo principal, de acuerdo a los códigos INE.
justificar_otro Justificación en caso de seleccionar 'Otro' como lugar de reposo principal
codigo_lugar_reposo2 Código de lugar de reposo secundario (y opcional), de acuerdo a los siguientes valores:
1 : Domicilio
2 : Hospital
3 : Otro
reposo_fono2 Teléfono de la dirección de reposo secundaria, en formato CODIGO-TELEFONO.
Ejemplo 02-1234567
reposo_dir_glosa2 Calle y número de la dirección de reposo secundaria
reposo_dir_comuna2 Código de comuna de reposo secundario, de acuerdo a los códigos INE.
pro_email Correo electrónico del profesional (Este no es desplegado en la licencia, sólo se usa para actualizar los datos del profesional)
diag_principal Diagnóstico principal (hasta 250 caracteres)
diag_otro Otros diagnósticos (hasta 250 caracteres)
antecedentes_clinicos Antecedentes clínicos (hasta 250 caracteres)
exam_apoyo_diag Exámenes de apoyo a diagnóstico (hasta 250 caracteres)

Datos estructura XML

Campo Tipo Descripción
id_licencia Integer Folio de Licencia Electrónica parte numérica
dv_licencia Char(01) Folio de Licencia Electrónica parte dígito
rut_trabajador Integer Rut del Trabajador parte numérica
dv_trabajador Char(01) Rut del Trabajador parte dígito
paterno_trabajador Char(30) Apellido Paterno
materno_trabajador Char(30) Apellido Materno
nombre_trabajador Char(30) Nombre del Trabajador
fecha_emision Datetime Fecha de Emisión de la Licencia
fecha_inicio_reposo Datetime Fecha Inicio de Reposo
edad_trabajador Smallint Edad del Trabajador
sexo_trabajador Char(1)  
emailtrabajador Char(40) Email del Trabajador
dias_licencia Smallint Número de Dìas
rut_hijo Integer Rut del Beneficiario parte numérica
dv_hijo Char(01) Rut del Beneficiario parte dígito
paterno_hijo Char(30) Apellido Paterno del Beneficiario
materno_hijo Char(30) Apellido Materno del Beneficiario
nombre_hijo Char(30) Nombre del Beneficiario del Trabajador
fecha_nac_hijo Datetime Fecha de Nacimiento (DEFAULT 0001-01-01T00:00:00)
codigo_tipo_licencia Smallint Tipo de Licencia de acuerdo a tabla legal
recuperabilidad Smallint Recuperabilidad (1:Si, 2:No)
inic_tram_inval Smallint Inicio del Trámite (1:Si, 2:No)
fecha_concepcion DateTime Fecha de la Concepción
codigo_tipo_reposo Smallint Tipo de Reposo de Acuerdo a tabla Legal
codigo_duracion_reposo Char(1) Periodo de Acuerdo a tabla Legal
codigo_lugar_reposo1 Smallint Lugar de Reposo de Acuerdo a tabla Legal
justificar_otro Char(128) Justificar Otro Reposo
reposo_dir_glosa1 Char(100) Glosa de la Dirección
reposo_dir_comuna1 Integer Código de Comunas de acuerdo al INE (FAVOR REVISAR DE TENER LA MISMA TABLA)
reposo_dir_comuna1_glosa Char(30) Glosa de Comuna
reposo_fono1 Char(12) Teléfono
codigo_lugar_reposo2 Smallint Lugar de Reposo de Acuerdo a tabla Legal
reposo_dir_glosa2 Char(100) Glosa de la Dirección
reposo_dir_comuna2 Integer Código de Comunas de acuerdo al INE
reposo_dir_comuna2_glosa Char(30) Glosa de Comuna
reposo_fono2 Char(12) Teléfono
rut_profesional Integer Rut del Profesional parte numérica
dv_profesional Char(01) Rut del Profesional parte dígito
paterno_profesional Char(30) Apellido Paterno
materno_profesional Char(30) Apellido Materno
nombre_profesional Char(30) Nombre del Trabajador
pro_dir_glosa Char(100) Glosa de la Dirección del profesional
pro_dir_comuna Integer Código de Comunas de acuerdo al INE
pro_dir_comuna_glosa Char(30)  
pro_fono Char(12) Teléfono del profesional
pro_fax Char(12) Fax
pro_email Char(40) Email del profesional
pro_especialidad Char(80) Glosa de Especialidad
pro_cod_especialidad Integer Código de especialidad según tabla I-Med
pro_tipo Smallint Tipo de Prestador de acuerdo a tabla Legal
num_colegio_medico Char(32) Colegio Médico
diag_principal Char(511) Diagnóstico Principal
diag_otros Char(511) Otros Diagnósticos
antecedentes_clinicos Char(511) Antecedentes Clínicos
exam_apoyo_diag Char(511) Examen de Apoyo Clínico
rut_empleador Integer Rut del Empleador parte numérica
dv_empleador Char(01) Rut del Empleador parte dígito
nombre_empleador Text Nombre del Empleador
empleador_adscrito Integer 0: Indica empleador no adscrito
1: Indica empleador adscrito
subtipo_lcc Char(10) Indica si una licencia tipo maternal es PRE o POST natal (prenatal, postnatal)
Redireccionando
Redireccionando, espere por favor...