Skip to main content
Estas propiedades te permiten personalizar el comportamiento y apariencia del componente SofIA SDK para adaptarse a las necesidades específicas de tu implementación.

Propiedades Activas

Control de Interfaz

Callbacks

Firmas de Callbacks

handleReport
Se invoca cuando el usuario activa la generación de reportes. El objeto report coincide con la estructura definida en tu JSON Schema template. Ejemplo de payload:
setIsOpen
Se invoca cuando el SDK solicita un cambio de visibilidad (ej.: el usuario hace clic en el botón de cerrar). setGetLastReport
Se invoca una vez durante la inicialización. Proporciona una función que puedes almacenar y llamar posteriormente para recuperar el último reporte generado para la sesión actual de paciente/usuario. handleExtras
Se invoca al pulsar un botón de categoría de extras (peticiones, citas, pruebas, derivaciones…). Recibe el array de items de esa categoría, tal como los produjo tu esquema templateExtras: el SDK no renombra ni transforma campos. Se empareja con la prop templateExtras. Ver Acciones clínicas (Extras).

Datos Contextuales

Curación de informes y pre-carga desde el EMR

Estas props impulsan dos funcionalidades de informes. Consulta sus guías dedicadas para el flujo completo.

Indicador de Consentimiento

El indicador de estado de consentimiento en el encabezado no es una propiedad del componente. Se habilita desde la configuración de tu cuenta/perfil de Omniloy (contacta a support@omniloy.com para activarlo). Cuando está habilitado, el indicador refleja el campo signedConsent que proporcionas dentro de patientdata (ver Datos del Paciente).

Localización

El idioma por defecto es "es" (Español). Si tu aplicación está dirigida a usuarios de habla inglesa, establece language="en" explícitamente.

Contexto de analítica

Cambio incompatible (v1.0.9). usermedicalspecialty sustituye al nombre en camelCase userMedicalSpecialty que se publicó en v1.0.8. El nombre antiguo ya no se lee: un host que lo siga pasando no recibe error, pero el valor se descarta en silencio y los eventos pierden la especialidad. Renómbralo al nombre en minúsculas usermedicalspecialty, en línea con el resto de props string (userid, patientid, templateid).

Depuración

Personalización CSS

SofIA SDK se renderiza como un Web Component con Shadow DOM. Esto evita conflictos con los estilos de la aplicación host, pero también significa que el CSS global de la aplicación no afecta directamente a los elementos internos del SDK. Si necesita ajustar estilos internos concretos, inyecte una etiqueta <style> dentro del shadowRoot del componente una vez que el Web Component esté definido y montado:
Use el selector que corresponda a su componente, por ejemplo #sofia o #sofia-component. En Angular, ejecute esta lógica en ngAfterViewInit. En AngularJS, puede llamarla después de configurar los atributos y callbacks del componente. Si el componente se crea de forma condicional, vuelva a ejecutar la función después de montarlo.
Los selectores de clases internas pueden cambiar entre versiones del SDK. El selector anterior corresponde a @omniloy/sofia-sdk 1.0.4. Mantenga estos estilos centralizados, pruebe la interfaz al actualizar @omniloy/sofia-sdk y prefiera propiedades documentadas del componente cuando estén disponibles.

Recuperación Manual de Reportes

Además de recibir el reporte automáticamente, puedes solicitarlo bajo demanda desde tu aplicación. La propiedad set-get-last-report ejecuta un callback que te proporciona una función asíncrona. Debes almacenar esta referencia para usarla cuando necesites recuperar el último reporte generado.

Ejemplos de Uso

Configuración básica con datos del paciente

Las propiedades de datos van como atributos del elemento; los callbacks se asignan como propiedades JS:

Modo solo chat (sin generación de reportes)

Para usar SofIA en modo solo chat, simplemente omita las propiedades template y templateid. El botón de generar no aparecerá.

Configuración avanzada con callbacks

Los callbacks son propiedades JS, no atributos HTML. Asigna cada callback directamente sobre el elemento en camelCase (ej.: element.handleReport = fn, element.setIsOpen = fn, element.setGetLastReport = fn, element.onReportApply = fn, element.updateTemplate = fn). No existe un atributo HTML handle-report ni un evento DOM — un atributo como handle-report="miFn" no se dispara. Las propiedades de datos simples (isopen, patientdata, debug) usan el mismo nombre en minúsculas como atributo HTML y como propiedad JS.

Propiedades Deprecadas

Las siguientes propiedades están deprecadas y serán eliminadas en v2.0. No tienen efecto en la arquitectura actual basada en Chat.

Notas Importantes

  • patientdata: Debe contener solo información necesaria para el contexto clínico, siguiendo principios de minimización de datos.
  • Estados: Los cambios en propiedades booleanas se reflejan inmediatamente en la interfaz.
  • Localización: Cambiar el idioma afecta toda la interfaz del componente, incluyendo mensajes de error y etiquetas.
  • Callbacks: Asigna los callbacks programáticamente como propiedades JS del elemento (ej.: element.handleReport = fn). No pueden conectarse mediante atributos HTML ni nombres de función globales.