Saltar al contenido principal
Estas propiedades son obligatorias para el correcto funcionamiento del componente SofIA SDK. El componente validará automáticamente la presencia y tipo de cada propiedad antes de establecer la conexión.

Propiedades de Configuración

PropiedadTipoDescripción
baseurlstringURL del endpoint de la API REST de SofIA. Debe usar protocolo HTTPS (ej.: https://api.example.com/v1)
wssurlstringURL WebSocket para streaming en tiempo real. Debe usar protocolo WSS (ej.: wss://ws.example.com)
apikeystringClave de autenticación proporcionada por Omniloy para acceso a los servicios de SofIA

Identificadores de Sesión

PropiedadTipoDescripción
useridstringIdentificador único del profesional sanitario en el sistema EHR/HIS
patientidstringIdentificador único del paciente para la sesión actual

Configuración de Esquema

PropiedadTipoDescripción
toolsargsstring (JSON)Esquema JSON Schema Draft-07 completo que define la estructura de datos clínicos a generar
templateidstringIdentificador único de la plantilla clínica que se está utilizando (obligatorio si isonlychat no es “true”)

Validación Automática

El componente SofIA SDK realiza validación automática de todas las propiedades requeridas:
  • Verificación de tipos: Confirma que cada propiedad tiene el tipo correcto
  • Validación de URLs: Verifica que baseurl y wssurl usan protocolos seguros (HTTPS/WSS)
  • Esquema JSON: Valida que toolsargs contiene un JSON Schema válido

Mensajes de Error de Validación

Cuando la validación falla, SofIA SDK mostrará mensajes de error detallados en la consola del navegador y evitará que el componente se monte. Esto asegura que los problemas de integración se identifiquen temprano en el proceso de desarrollo. Ejemplo de salida de error de validación:
[Sofia SDK] Configuration Error - Missing or invalid required properties:

  • baseurl: API base URL for backend communication
  • wssurl: WebSocket URL for real-time communication
  • apikey: API key for authentication
  • userid: Unique identifier of the healthcare professional in the EHR/HIS system
  • patientid: Unique identifier of the patient in the EHR/HIS system
    Current value: "INVALID_BASE_URL"
    Current value: "INVALID_WSS_URL"
    Current value: "INVALID_API_KEY"
    Current value: "INVALID_USER_ID"
    Current value: "INVALID_PATIENT_ID"

Component will not mount until all required properties are provided.
Documentation: https://omniloy.mintlify.app/es/api-schemas-properties/required-properties
Componentes del mensaje de error:
  • Nombre de propiedad: Identifica qué propiedad falló la validación
  • Descripción: Explica el propósito de cada propiedad
  • Valor actual: Muestra el valor inválido que se proporcionó (cuando aplica)
  • Enlace de documentación: Proporciona acceso directo a esta guía de referencia
Comportamiento del componente durante errores de validación:
  • El componente SofIA SDK no establecerá conexiones
  • No se realizará procesamiento de datos médicos
  • El componente permanece en un estado seguro y no funcional
  • Los mensajes de error se registran para ayudar a los desarrolladores a identificar y resolver problemas rápidamente
Para solución de problemas integral de errores de validación, vea nuestra guía de solución de problemas.

Ejemplo Mínimo

<sofia-sdk
  baseurl="https://api.example.com/v1"
  wssurl="wss://ws.example.com"
  apikey="your-api-key"
  userid="doctor123"
  patientid="patient456"
  toolsargs='{"type": "object", "properties": {"diagnosis": {"type": "string"}}}'
  templateid="template-123"
>
</sofia-sdk>
Si alguna propiedad requerida está ausente o es inválida, el componente mostrará un error y no se conectará a los servicios de SofIA.

userid (Requerido)

Identificador único para el profesional sanitario que usa el sistema.
<sofia-sdk userid="dr-martinez-123"></sofia-sdk>
Mejores prácticas:
  • Usar identificadores únicos persistentes
  • Evitar información personalmente identificable
  • Mantener consistencia entre sesiones
  • Considerar usar números de licencia profesional o IDs internos

patientid (Requerido)

Identificador único para el paciente en la sesión actual.
<sofia-sdk patientid="patient-789"></sofia-sdk>
Notas importantes:
  • Debe ser único dentro de su sistema
  • No debe contener identificadores personales directos
  • Puede cambiarse dinámicamente para diferentes consultas
  • Debe cumplir con las regulaciones de protección de datos

Configuración de Esquema

toolsargs (Requerido)

JSON Schema que define la estructura para captura de datos clínicos.
<sofia-sdk toolsargs='{"$schema":"http://json-schema.org/draft-07/schema#","title":"Medical Consultation"}'></sofia-sdk>
Requisitos del esquema:
  • Debe ser un JSON Schema Draft-07 válido
  • Debe incluir la propiedad $schema
  • Debe definir campos requeridos apropiadamente
  • No debe exceder 100KB de tamaño
Ejemplo para consulta general:
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "title": "Consulta Médica General",
  "type": "object",
  "properties": {
    "chief_complaint": {
      "type": "string",
      "description": "Motivo principal de la visita"
    },
    "diagnosis": {
      "type": "string",
      "description": "Diagnóstico principal"
    },
    "treatment_plan": {
      "type": "string",
      "description": "Tratamiento recomendado"
    }
  },
  "required": ["chief_complaint", "diagnosis"]
}

templateid (Requerido)

Identificador único de la plantilla clínica que define el flujo de trabajo específico y la estructura de datos para la consulta.
<sofia-sdk templateid="template-soap-123"></sofia-sdk>
Requisitos de la plantilla:
  • Debe ser una cadena no vacía
  • Debe corresponder a una plantilla válida configurada en su cuenta de Omniloy
  • Las plantillas definen el flujo de trabajo clínico y el formato de salida
  • Diferentes plantillas soportan diferentes especialidades clínicas y formatos de documentación
Patrones de uso:
  • Plantilla SOAP: "soap-general-v1" para generación de notas SOAP estructuradas
  • Plantilla de Emergencia: "emergency-triage-v2" para flujos de trabajo de urgencias
  • Plantillas de Especialidad: "cardiology-consult-v1", "radiology-report-v1", etc.
  • Plantillas Personalizadas: Plantillas definidas por el usuario para necesidades organizacionales específicas
Notas importantes:
  • Esta propiedad es obligatoria cuando isonlychat no está establecido como "true"
  • El ID de plantilla debe estar configurado en su cuenta de Omniloy antes de usarse
  • Las plantillas determinan los campos disponibles en los reportes generados
  • Contacte support@omniloy.com para configurar plantillas personalizadas

Ejemplo de Configuración Completa

<sofia-sdk
  apikey="prod_abc123xyz789"
  baseurl="https://api.omniloy.com"
  wssurl="wss://wss.omniloy.com"
  userid="dr-garcia-456"
  patientid="patient-123"
  templateid="emergency-triage-v2"
  toolsargs='{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "title": "Consulta de Emergencia",
    "type": "object",
    "properties": {
      "triage_level": {
        "type": "string",
        "enum": ["1", "2", "3", "4", "5"],
        "description": "Nivel de triaje de emergencia"
      },
      "chief_complaint": {
        "type": "string",
        "description": "Queja principal"
      },
      "vital_signs": {
        "type": "object",
        "properties": {
          "blood_pressure": {"type": "string"},
          "heart_rate": {"type": "number"},
          "temperature": {"type": "number"}
        }
      },
      "diagnosis": {
        "type": "string",
        "description": "Diagnóstico de emergencia"
      },
      "disposition": {
        "type": "string",
        "enum": ["discharge", "admit", "transfer", "observe"],
        "description": "Disposición del paciente"
      }
    },
    "required": ["triage_level", "chief_complaint", "diagnosis", "disposition"]
  }'>
</sofia-sdk>

Configuración Dinámica

Actualizar propiedades programáticamente

const sofiaElement = document.querySelector('sofia-sdk');

// Actualizar paciente para nueva consulta
sofiaElement.setAttribute('patientid', 'patient-456');

// Actualizar esquema para diferente especialidad
const cardiologySchema = {
  "$schema": "http://json-schema.org/draft-07/schema#",
  "title": "Consulta de Cardiología",
  "type": "object",
  "properties": {
    "heart_rhythm": {
      "type": "string",
      "enum": ["normal", "irregular", "fast", "slow"]
    },
    "blood_pressure": {
      "type": "string",
      "pattern": "^\\d{2,3}/\\d{2,3}$"
    },
    "ecg_findings": {
      "type": "string"
    }
  },
  "required": ["heart_rhythm", "blood_pressure"]
};

sofiaElement.setAttribute('toolsargs', JSON.stringify(cardiologySchema));

Configuración específica por framework

React
const [patientId, setPatientId] = useState('patient-123');
const [toolsArgs, setToolsArgs] = useState(defaultSchema);
const [templateId, setTemplateId] = useState('soap-general-v1');

return (
  <sofia-sdk
    apikey="YOUR_API_KEY"
    baseurl="https://api.omniloy.com"
    wssurl="wss://wss.omniloy.com"
    userid="dr-smith-789"
    patientid={patientId}
    templateid={templateId}
    toolsargs={JSON.stringify(toolsArgs)}
  />
);
Angular
export class AppComponent {
  apiKey = 'YOUR_API_KEY';
  baseUrl = 'https://api.omniloy.com';
  wssUrl = 'wss://wss.omniloy.com';
  userId = 'dr-lopez-456';
  patientId = 'patient-789';
  templateId = 'soap-general-v1';
  toolsArgs = JSON.stringify(this.getSchemaForSpecialty('general'));
}
Vue.js
export default {
  data() {
    return {
      apiKey: 'YOUR_API_KEY',
      baseUrl: 'https://api.omniloy.com',
      wssUrl: 'wss://wss.omniloy.com',
      userId: 'dr-rodriguez-123',
      patientId: 'patient-456',
      toolsArgs: JSON.stringify(this.generalSchema)
    };
  }
};

Validación

Lista de verificación de validación de propiedades

  • apikey es válida y no ha expirado
  • baseurl usa protocolo HTTPS
  • wssurl usa protocolo WSS
  • userid es único y consistente
  • patientid es único para la consulta
  • toolsargs es un JSON Schema Draft-07 válido
  • Todas las propiedades requeridas están presentes
  • Ninguna propiedad excede los límites de tamaño

Próximos Pasos

Después de configurar las propiedades requeridas:
  1. Configurar propiedades opcionales
  2. Diseñar esquemas de datos clínicos
  3. Configurar callbacks de eventos
  4. Implementar en tu framework