// Esperar a que el componente esté definido
customElements.whenDefined('sofia-sdk').then(() => {
const sofiaComponent = document.getElementById('sofia-component');
const toggleButton = document.getElementById('toggle-sofia');
// Configurar callback para recibir reportes
sofiaComponent.handleReport = (report) => {
console.log('Reporte clínico recibido:', report);
// Procesar el reporte según sus necesidades
displayReport(report);
sendToEHR(report);
};
// Configurar callback para cambios de visibilidad
sofiaComponent.setIsOpen = (isOpen) => {
console.log('Estado del componente:', isOpen ? 'Abierto' : 'Cerrado');
sofiaComponent.isopen = isOpen;
toggleButton.textContent = isOpen ? 'Cerrar SofIA' : 'Abrir SofIA';
};
// Manejar click del botón
toggleButton.addEventListener('click', () => {
const currentState = sofiaComponent.isopen === 'true';
sofiaComponent.isopen = !currentState;
});
});
// Función para mostrar el reporte en la interfaz
function displayReport(report) {
const reportContainer = document.getElementById('report-display');
if (reportContainer) {
reportContainer.innerHTML = `
<h3>Reporte Clínico</h3>
<pre>${JSON.stringify(report, null, 2)}</pre>
`;
}
}
// Función para enviar al sistema EHR/HIS
function sendToEHR(report) {
// Implementar integración con su sistema
fetch('/api/clinical-reports', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify(report)
}).then(response => {
console.log('Reporte enviado al EHR:', response.status);
}).catch(error => {
console.error('Error enviando reporte:', error);
});
}