Módulo OpenMRS para interoperabilidad con RENHICE (Registro Nacional de Historias Clínicas Electrónicas) del MINSA Perú, utilizando HL7 FHIR R4 con perfiles Dyaku.
El Módulo de Interoperabilidad SIH.SALUS permite:
- Envío automático de resúmenes clínicos a RENHICE
- Consulta de información de pacientes desde RENHICE
- Arquitectura offline-first con cola de mensajes y reintentos automáticos
- Mapeo completo de recursos según International Patient Summary (IPS)
- Interfaz web para monitoreo de cola de interoperabilidad
- Estándar HL7 FHIR R4: Implementación completa con perfiles peruanos Dyaku
- Offline-First: Cola de mensajes persistente con reintentos automáticos para zonas rurales
- Mapeo Completo IPS: Medicamentos, Alergias, Diagnósticos, Procedimientos, Inmunizaciones, Observaciones
- Seguridad: TLS 1.2+, control de acceso por privilegios, trazabilidad completa
- Monitoreo: Interfaz web para supervisión de mensajes y diagnóstico de errores
- OpenMRS Core: 1.11.6 o superior
- Java: JDK 8
- Maven: 3.x
- Base de Datos: MySQL 5.7+ o compatible
- Servidor FHIR: HAPI FHIR R4 (RENHICE/Dyaku)
cd openmrs-module-sihsalusinterop
mvn clean installCopiar el archivo omod/target/sihsalusinterop-1.0.0.omod a OpenMRS:
Vía UI: Administración → Gestionar Módulos → Agregar o Actualizar Módulo
Vía Docker:
docker cp sihsalusinterop-1.0.0.omod peruHCE-backend:/openmrs/data/modules/
docker restart peruHCE-backendAcceder a: Administración → Mantenimiento → Configuración → Propiedades Globales
Configurar:
sihsalusinterop.renhice.endpoint: URL del servidor FHIR (usar HTTPS en producción)sihsalusinterop.renhice.enabled:truepara habilitar envío automáticosihsalusinterop.queue.maxRetries: Número máximo de reintentos (default: 5)sihsalusinterop.queue.retryInterval: Intervalo entre reintentos en ms (default: 300000)
- Médico registra atención de paciente en OpenMRS
- Al guardar el Encounter, el módulo automáticamente:
- Construye un Bundle FHIR R4 con todos los recursos clínicos
- Lo encola para envío a RENHICE
- Intenta enviarlo en segundo plano
curl http://localhost/openmrs/ws/rest/v1/interop/patient/12345678(Próximamente: integración con búsqueda de pacientes de OpenMRS O3)
Acceder a: Administración → Interoperabilidad SIH.SALUS → Monitoreo de Interoperabilidad
Permite:
- Ver estado de mensajes (Pendientes, Enviados, Con Error, Fallidos)
- Reintentar mensajes fallidos manualmente
- Inspeccionar payload FHIR completo
- Procesar cola manualmente
Base URL: http://localhost/openmrs/ws/rest/v1/interop
| Método | Endpoint | Descripción |
|---|---|---|
| GET | /status |
Estado del módulo y cola |
| GET | /queue |
Listar mensajes en cola |
| POST | /processQueue |
Procesar mensajes pendientes |
| POST | /retry/{id} |
Reintentar mensaje específico |
| GET | /patient/{dni} |
Consultar paciente en RENHICE |
Ver documentación completa en el Manual Técnico en la carpeta docs/
- Mappers: Conversión OpenMRS → FHIR R4 (Dyaku profiles)
- BundleBuilderService: Construcción de Bundles FHIR
- DyakuSenderService: Envío de mensajes a RENHICE
- EncounterSavedListener: Detección de eventos de OpenMRS
- InteropQueue: Cola persistente en BD local
- Scheduled Task: Procesamiento periódico de cola
Encounter guardado → EventListener → BundleBuilder → Cola BD → Scheduled Task → RENHICE
↓
(Retry si falla)
| Recurso FHIR | Perfil Dyaku | Origen OpenMRS |
|---|---|---|
| Patient | PacientePe | Patient |
| Organization | OrganizacionPe | Location |
| Practitioner | PractitionerPe | User |
| Encounter | EncounterPe | Encounter |
| Condition | ConditionPe | Obs (Diagnosis) |
| AllergyIntolerance | AlergiaPe | Allergy |
| MedicationStatement | MedicationStatementPe | DrugOrder |
| Procedure | ProcedurePe | Order |
| Observation | ObservationPe | Obs |
| Immunization | InmunizacionPe | Obs (Vaccine) |
El módulo cumple con:
- Ley N° 29733: Protección de Datos Personales (Perú)
- ISO/IEC 27001: Sistema de Gestión de Seguridad de la Información
- HL7 FHIR Security Guidelines: Seguridad en implementaciones FHIR
Medidas implementadas:
- Cifrado TLS 1.2+ en tránsito
- Control de acceso basado en privilegios
- Trazabilidad completa de operaciones
- Validación de recursos FHIR
Ver documento de Seguridad y Conformidad en la carpeta docs/
Documentación principal en la carpeta docs/:
- MANUAL_USO.md: Guía rápida de instalación y uso diario
- MANUAL_TECNICO.md: Documentación técnica completa
- PRUEBAS_INTEROPERABILIDAD.md: Pruebas funcionales y ejemplos
- SEGURIDAD_Y_CONFORMIDAD.md: Normativa y medidas de seguridad
Solución: Verificar que:
- El servidor HAPI FHIR esté ejecutándose
- La propiedad global
sihsalusinterop.renhice.endpointsea correcta - Si usan Docker, usar nombre de contenedor (no
localhost)
Solución:
- Ver
errorMessageen interfaz de monitoreo - Revisar logs:
docker logs peruHCE-backend - Reintentar manualmente desde interfaz
Ver sección completa de Troubleshooting en el Manual Técnico.
Se incluye configuración de HAPI FHIR JPA Server como simulador de RENHICE/Dyaku en: ../hapi-fhir-jpaserver-starter/
cd ../hapi-fhir-jpaserver-starter
py populate_test_data.py.\test_interoperability.ps1Ver: docs/PRUEBAS_INTEROPERABILIDAD.md para pruebas detalladas
openmrs-module-sihsalusinterop/
├── api/ # Lógica de negocio
│ ├── mapper/ # Mappers OpenMRS → FHIR
│ ├── model/ # InteropQueueItem
│ ├── service/ # Servicios principales
│ ├── listener/ # Event listeners
│ └── advice/ # AOP interceptors
├── omod/ # Módulo web
│ ├── web/controller/ # REST controllers
│ ├── resources/ # CSS, JS
│ └── pages/ # JSP
└── docs/ # Documentación
mvn clean installmvn testEste módulo es parte del proyecto SIH.SALUS del Hospital Santa Clotilde y se desarrolla como trabajo de tesis de Ingeniería Informática.
- Hospital: Hospital Santa Clotilde, Loreto, Perú
- Equipo: SIH.SALUS Development Team
- Email: [Contacto Institucional]
- HL7 FHIR R4 Documentation: https://hl7.org/fhir/R4/
- Dyaku MINSA Perú: https://dyaku.minsa.gob.pe/fhir
- OpenMRS Developer Guide: https://guide.openmrs.org/
- Open Concept Lab: https://openconceptlab.org/
Versión: 1.0.0
Última Actualización: Noviembre 2025