Saltar al contenido principal
La propiedad patientdata permite proporcionar el historial clínico y contexto del paciente a SofIA. Aunque es opcional, es altamente recomendada — permite que SofIA haga referencia al historial del paciente al generar reportes y responder preguntas clínicas.

Estructura de Datos

La prop patientdata acepta un objeto JSON con la siguiente estructura:
CampoTipoDescripción
fullNamestringNombre completo del paciente
birthDatestringFecha de nacimiento (cualquier formato: YYYY-MM-DD, DD/MM/YYYY, etc.)
phonestringNúmero de teléfono de contacto
addressstringDirección del paciente
extraDataobjectObjeto clave-valor flexible para cualquier dato clínico adicional
signedConsent{ signed: boolean, date?: string } or undefinedObjeto para indicar si el paciente ha firmado el consentimiento para ser grabado. Opcional. Esto requiere que la propiedad showconsentindicator sea true para estar habilitado.
Los campos fullName, birthDate, phone y address se anonimizan automáticamente en el procesamiento de IA. SofIA reemplaza estos valores con marcadores de posición antes de enviar los datos al motor de IA, y luego los restaura en la salida final. Esto asegura el cumplimiento HIPAA/GDPR.
Todos los datos de pacientes mostrados en los ejemplos a continuación son completamente ficticios. Nunca utilice información real de pacientes en ejemplos de configuración, entornos de prueba o código fuente.

Ejemplos de Uso

Ejemplo Mínimo

El uso más simple con solo la identidad del paciente:
{
  "fullName": "María García",
  "birthDate": "1985-05-15"
}

Ejemplo Estándar

Un uso típico incluyendo información de contacto e historial médico:
{
  "fullName": "María García",
  "birthDate": "1985-05-15",
  "phone": "612345678",
  "address": "Calle Principal 123, Madrid",
  "extraData": {
    "medical_practice": "Cardiología",
    "patient_medical_notes": {
      "notes": [
        {
          "consultation": "Seguimiento cardiológico",
          "date": "2024-10-25",
          "summary": "Presión arterial estable con medicación actual. ECG normal."
        },
        {
          "consultation": "Revisión general",
          "date": "2024-08-12",
          "summary": "Examen anual rutinario. Todos los signos vitales dentro del rango normal."
        }
      ]
    }
  }
}

Ejemplo Completo

Uso completo con múltiples fuentes de datos clínicos:
{
  "fullName": "María García",
  "birthDate": "1985-05-15",
  "phone": "612345678",
  "address": "Calle Principal 123, Madrid",
  "signedConsent": { "signed": true, "date": "2025-08-01" },
  "extraData": {
    "medical_practice": "Medicina Interna",
    "patient_medical_notes": {
      "notes": [
        {
          "consultation": "Endocrinología",
          "date": "2024-11-01",
          "url": "https://ehr.ejemplo.com/notas/12345",
          "summary": "HbA1c en 7.2%. Ajustada dosis de metformina."
        }
      ]
    },
    "allergies": ["Penicilina", "Sulfonamidas"],
    "active_medications": [
      {"name": "Metformina", "dose": "1000mg", "frequency": "dos veces al día"},
      {"name": "Lisinopril", "dose": "10mg", "frequency": "una vez al día"}
    ],
    "lab_results": {
      "date": "2024-10-28",
      "values": {
        "glucose_fasting": "142 mg/dL",
        "HbA1c": "7.2%",
        "creatinine": "0.9 mg/dL"
      }
    },
    "chronic_conditions": ["Diabetes Tipo 2", "Hipertensión"]
  }
}

El Campo extraData

El campo extraData es un Record<string, unknown> flexible que acepta cualquier estructura clave-valor. Aquí es donde se proporciona el contexto clínico que SofIA utilizará durante la consulta. Campos comunes usados en extraData:
CampoDescripción
medical_practiceEspecialidad del doctor (ej.: “Cardiología”, “Pediatría”). Ayuda a SofIA a adaptar las respuestas al contexto clínico
patient_medical_notesNotas de consultas previas. Incluir campos url si se desea que SofIA cite la fuente
allergiesAlergias conocidas para verificación cruzada de seguridad
active_medicationsMedicamentos actuales para verificación de interacciones
lab_resultsValores de laboratorio recientes
chronic_conditionsCondiciones médicas crónicas
Incluya un campo url en las notas médicas si desea que SofIA cite la fuente de datos al guiar al doctor. SofIA referenciará la URL en sus respuestas para que el doctor pueda verificar el registro original.

Pasar patientdata al Componente

Como Atributo HTML

Dado que patientdata es de tipo JSON, el SDK lo parsea automáticamente:
<sofia-sdk
  apikey="sk-your-api-key-here"
  baseurl="https://api.example.com/v1"
  wssurl="wss://ws.example.com"
  userid="dr-martinez-789"
  patientid="paciente-123"
  patientdata='{
    "fullName": "María García",
    "birthDate": "1985-05-15",
    "extraData": {
      "medical_practice": "Cardiología"
    }
  }'
></sofia-sdk>

Programáticamente (JavaScript)

const sofiaElement = document.querySelector('sofia-sdk');
const patientData = {
  fullName: "María García",
  birthDate: "1985-05-15",
  extraData: {
    medical_practice: "Cardiología",
    allergies: ["Penicilina"]
  }
};

sofiaElement.setAttribute('patientdata', JSON.stringify(patientData));

React

const [patientData, setPatientData] = useState({
  fullName: "María García",
  birthDate: "1985-05-15",
  extraData: { medical_practice: "Cardiología" }
});

return (
  <sofia-sdk
    apikey="YOUR_API_KEY"
    baseurl="https://api.example.com/v1"
    wssurl="wss://ws.example.com"
    userid="dr-martinez-789"
    patientid="paciente-123"
    patientdata={JSON.stringify(patientData)}
  />
);

Límites y Validación

ReglaDetalles
Tamaño máximo100 KB
Error al excederEl componente rechaza con error: "patientData supera 100 kB"
FormatoDebe ser JSON válido (o un objeto JavaScript cuando se pasa programáticamente)
Campos requeridosNinguno — todos los campos son opcionales

Anonimización Automática

SofIA anonimiza automáticamente los siguientes campos personales antes de enviar datos al motor de IA:
  • fullName
  • birthDate
  • phone
  • address
Estos valores se reemplazan con marcadores de posición neutrales durante el procesamiento de IA y se restauran en la salida final. Esto asegura que la información de identificación personal (PII) nunca llegue directamente al modelo de IA.
Los datos dentro de extraData no se anonimizan automáticamente. Evite colocar PII en bruto (números de seguridad social, documentos de identidad, etc.) en campos de extraData. Use identificadores anonimizados cuando sea posible.

Próximos Pasos

  1. Integrar con tu framework
  2. Diseñar esquemas de datos clínicos
  3. Probar tu integración