Saltar al contenido principal
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

PropiedadTipoValor por DefectoDescripción
isopenbooleantrueEstado de visibilidad del componente, permite control bidireccional del estado abierto/cerrado. Cuando no se proporciona, el componente se inicia abierto por defecto

Callbacks

PropiedadTipoDescripción
handleReportfunctionFunción callback que recibe el reporte clínico estructurado generado por SofIA. También disponible como atributo handle-report. Puede referenciarse como nombre de función global
setIsOpenfunctionFunción callback para manejar cambios de visibilidad solicitados por el componente
setGetLastReportfunctionUn callback que recibe una función para recuperar el último reporte generado

Firmas de Callbacks

handleReport
handleReport: (report: Record<string, unknown>) => void
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:
{
  "diagnosis": "Diabetes Mellitus Tipo 2",
  "treatment_plan": "Metformina 500mg dos veces al día"
}
setIsOpen
setIsOpen: (isOpen: boolean) => void
Se invoca cuando el SDK solicita un cambio de visibilidad (ej.: el usuario hace clic en el botón de cerrar). setGetLastReport
setGetLastReport: (getter: () => Promise<Record<string, unknown> | undefined>) => void
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.

Datos Contextuales

PropiedadTipoValor por DefectoDescripción
patientdatastring (JSON) | objectundefinedInformación contextual del paciente (antecedentes, notas previas, referencias) para enriquecer el procesamiento clínico

Indicador de Consentimiento

PropiedadTipoValor por DefectoDescripción
showconsentindicatorbooleanfalseMuestra el indicador de estado de consentimiento en el encabezado. Funciona con el campo signedConsent en patientdata

Localización

PropiedadTipoValor por DefectoDescripción
languagestring"es"Idioma de la interfaz. Valores soportados: "es" (Español), "en" (Inglés)
El idioma por defecto es "es" (Español). Si tu aplicación está dirigida a usuarios de habla inglesa, establece language="en" explícitamente.

Depuración

PropiedadTipoValor por DefectoDescripción
debugbooleanfalseHabilita logging detallado para propósitos de depuración

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.
let getLastReportFn = null;

// Callback asignado a: set-get-last-report
function registerGetter(fn) {
  getLastReportFn = fn;
}

// Ejemplo de uso en un botón externo
async function handleSaveClick() {
  if (getLastReportFn) {
    const report = await getLastReportFn();
    console.log("Reporte recuperado:", report);
  }
}

Ejemplos de Uso

Configuración básica con datos del paciente

<sofia-sdk
  patientdata='{"age": 45, "history": "Hipertensión arterial"}'
  language="es"
  baseurl="https://api.example.com/v1"
  wssurl="wss://ws.example.com"
  apikey="sk-your-api-key-here"
  userid="user_12345"
  patientid="patient_67890"
  template='{"type": "object"}'
  templateid="soap-general-v1"
  isopen="true"
  handleReport="handleReport"
  setIsOpen="setIsOpen"
>
</sofia-sdk>

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á.
<sofia-sdk
  baseurl="https://api.example.com/v1"
  wssurl="wss://ws.example.com"
  apikey="sk-your-api-key-here"
  userid="user_12345"
  patientid="patient_67890"
  language="es"
>
</sofia-sdk>

Configuración avanzada con callbacks

<sofia-sdk
  setGetLastReport="setGetReportFunction"
  handleReport="handleReport"
  debug="true"
  baseurl="https://api.example.com/v1"
  wssurl="wss://ws.example.com"
  apikey="sk-your-api-key-here"
  userid="user_12345"
  patientid="patient_67890"
>
</sofia-sdk>
Convención de nombres para callbacks: Al asignar callbacks vía JavaScript, use camelCase (ej.: element.handleReport = fn). En atributos HTML, handle-report también funciona como alias. Las propiedades simples como isopen, patientdata y debug usan el mismo nombre en minúsculas tanto en HTML como en JS.
Atributo HTMLPropiedad JSNotas
handle-report o handleReporthandleReportAmbas formas funcionan como atributo HTML
setIsOpensetIsOpenUsar camelCase en HTML
setGetLastReportsetGetLastReportUsar camelCase en HTML
patientdatapatientdataIgual en ambos
isopenisopenIgual en ambos
debugdebugIgual en ambos

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.
PropiedadMigración
toolsargsRenombrada a template. Ver Propiedades Requeridas
isonlychatYa no es necesaria. El modo solo chat es automático cuando no se proporcionan template/templateid
disableactionsPara deshabilitar todas las acciones, no monte el componente <sofia-sdk>
disablegeneratePara ocultar el botón de generar, no pase template/templateid
sofiatitleYa no es configurable. El título siempre es “SofIA”
isscreenloadingNo disponible en la UI basada en Chat
transcriptorselectvaluesNo se usa en la UI basada en Chat
render-report-contentNo disponible en la UI basada en Chat
handleFillNo disponible en la UI basada en Chat
toastYa no tiene efecto

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: Las funciones pueden referenciarse por su nombre global (ej.: handleReport="myFunction" resuelve a window.myFunction) o asignarse programáticamente (ej.: element.handleReport = fn).