New Research: Supply Chain Attack on Axios Pulls Malicious Dependency from npm.Details →
Socket
Book a DemoSign in
Socket

predoc-sdk

Package Overview
Dependencies
Maintainers
1
Versions
37
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

predoc-sdk

SDK para integración de chat médico pre-consulta

latest
Source
npmnpm
Version
0.0.42
Version published
Maintainers
1
Created
Source

Predoc SDK 🏥

Un SDK de React para integrar un chat médico pre-consulta en tu aplicación

Chatbot para pacientes pre consulta Modo Pantalla Completa

✨ Características

  • 💬 Chat interactivo para pre-consultas médicas
  • 🎨 Totalmente personalizable
  • 📱 Diseño responsive
  • 🔄 Integración seamless con React
  • 🎯 Dos variantes: burbuja flotante o pantalla completa
  • 🖼️ Soporte para envío de imágenes
  • 📋 Resumen de consulta para profesionales médicos
  • 📝 Generación de recetas médicas

🚀 Instalación

npm install predoc-sdk
# o
yarn add predoc-sdk

📖 Uso Básico

1. Importa los componentes

import { ChatBot, Predoc } from 'predoc-sdk';
import 'predoc-sdk/dist/index.css';

2. Implementa el chat

function App() {
  const userData = {
    name: "Juan Pérez",
    uid: "user123",
    // opcional
    uniqueId: "unique123",
    img: "https://example.com/avatar.jpg",
    link: "https://ejemplo.com/perfil"
  };

  return (
    <ChatBot
      userData={userData}
      companyName="Mi Clínica"
      primaryColor="#3562FF"
      variant="bubble"
    />
  );
}

🎨 Personalización

ChatBot Props

PropTipoDefaultDescripción
companyNamestring-Nombre de la empresa que se mostrará en el chat
userDataUserData-Datos del usuario (ver interfaz abajo)
apiKeystring""Clave API opcional para autenticación
apiUrlstring""URL de la API para el servicio de chat
primaryColorstring"#091c1a"Color principal para el tema del chat
positionstring"bottom-right"Posición de la burbuja ("bottom-right", "bottom-left", "top-right", "top-left")
placeholderstring"Escribe un mensaje"Texto placeholder del input
variantstring"bubble"Variante del chat ("bubble" o "fullscreen")
onErrorfunctionconsole.errorCallback para manejar errores
onFinishfunctionundefinedCallback que se ejecuta cuando finaliza la consulta

Interfaz UserData

interface UserData {
  uid: string;           // ID único del usuario (requerido)
  uniqueId?: string;     // ID único alternativo (opcional)
  name?: string;         // Nombre del usuario
  img?: string;         // URL de la imagen de perfil
  link?: string;        // Link al perfil del usuario
  reason?: string;      // Motivo de la consulta
}

Interfaz MessageContent

interface MessageContent {
  message: string;      // Texto del mensaje
  time?: string;        // Hora del mensaje
  image?: string;       // URL de la imagen adjunta
  file?: File;          // Archivo adjunto
}

📋 Componente de Resumen

El componente Predoc proporciona un resumen de la consulta para profesionales médicos:

<Predoc
  companyName="Mi Clínica"
  userData={userData}
  position="top-right"
  animation="scale"
  apiUrl="https://api.miservicio.com"
  onGeneratePrescription={(data) => {
    // Lógica para generar receta médica
    console.log("Generando receta...", data);
  }}
/>

Predoc Props

PropTipoDefaultDescripción
companyNamestring-Nombre de la empresa
userDataUserData-Datos del usuario
apiUrlstring-URL de la API para obtener los datos del resumen
positionstring"bottom-right"Posición del botón de resumen ("bottom-right", "bottom-left", "top-right", "top-left", "custom")
customPositionstringundefinedClase CSS personalizada para posicionamiento cuando position es "custom"
animationstring"pulse"Tipo de animación ("none", "pulse", "bounce", "spin", "scale")
modalbooleanfalseSi es true, el resumen se muestra como un modal
onGeneratePrescriptionfunctionundefinedFunción que se ejecuta al hacer clic en "Generar receta" (recibe los datos del resumen)
isLoadingPrescriptionbooleanfalseIndica si la receta se está generando actualmente
prescriptionErrorbooleanfalseIndica si ha ocurrido un error durante la generación de la receta
prescriptionGeneratedbooleanfalseIndica si la receta ha sido generada exitosamente
isOpenbooleantrueControla si el modal está abierto o cerrado
renderAsModalbooleanfalseSi es true, renderiza el componente como un modal; si es false, lo renderiza como un componente normal

🌈 Ejemplos

Chat con Tema Personalizado

<ChatBot
  userData={userData}
  companyName="Mi Clínica"
  primaryColor="#FF5733"
  position="bottom-left"
  placeholder="Chatea con nuestro asistente médico..."
/>

Chat en Pantalla Completa

<ChatBot
  userData={userData}
  companyName="Mi Clínica"
  variant="fullscreen"
  primaryColor="#3562FF"
/>

Implementación con Generación de Receta

import React, { useState } from 'react';
import { ChatBot, Predoc } from 'predoc-sdk';
import 'predoc-sdk/dist/index.css';

function App() {
  const userData = {
    name: "Juan Pérez",
    uid: "user123",
    uniqueId: "unique123"
  };
  
  const [isPrescriptionGenerated, setIsPrescriptionGenerated] = useState(false);
  const [isLoadingPrescription, setIsLoadingPrescription] = useState(false);
  const [prescriptionError, setPrescriptionError] = useState(false);

  const handleGeneratePrescription = (summaryData) => {
    // Implementar lógica para generar receta con los datos del resumen
    setIsLoadingPrescription(true);
    console.log("Generando receta con datos:", summaryData);
    
    // Simular una llamada API
    setTimeout(() => {
      // API call u otras operaciones
      setIsLoadingPrescription(false);
      setIsPrescriptionGenerated(true);
      
      // En caso de error:
      // setPrescriptionError(true);
    }, 2000);
  };

  return (
    <>
      <Predoc
        animation="scale"
        position="top-right"
        userData={userData}
        companyName="Mi Clínica"
        apiUrl="https://api.miservicio.com"
        modal={true}
        onGeneratePrescription={handleGeneratePrescription}
        isLoadingPrescription={isLoadingPrescription}
        prescriptionError={prescriptionError}
        prescriptionGenerated={isPrescriptionGenerated}
      />
      
      <ChatBot
        userData={userData}
        companyName="Mi Clínica"
        primaryColor="#3562FF"
        variant="bubble"
        position="bottom-right"
        placeholder="Escribe tu consulta..."
        onError={(error) => console.error('Chat error:', error)}
        apiUrl="https://api.miservicio.com"
        onFinish={() => console.log("Consulta finalizada")}
      />
      
      {isPrescriptionGenerated && (
        <div className="notification">
          ¡Receta generada con éxito!
        </div>
      )}
    </>
  );
}

export default App;

🚨 Manejo de Mensajes y Archivos

El SDK permite el envío de mensajes de texto e imágenes:

// Estructura de mensaje utilizada internamente
const message = {
  message: "Texto del mensaje",
  time: "12:30",
  image: "https://example.com/image.jpg", // URL de imagen
  file: fileObject // Objeto File de JavaScript
};

🔧 Manejo de Errores

El componente incluye un manejador de errores que puede ser personalizado a través de la prop onError:

<ChatBot
  userData={userData}
  companyName="Mi Clínica"
  onError={(error) => {
    console.error('Error en el chat:', error);
    // Tu lógica de manejo de errores
  }}
/>

📱 Responsive Design

El SDK está diseñado para ser completamente responsive:

  • En móviles, la burbuja se adapta automáticamente
  • El modo fullscreen utiliza todo el espacio disponible
  • Los mensajes y elementos se ajustan al tamaño de la pantalla

🤝 Contribución

Las contribuciones son bienvenidas. Por favor, abre un issue primero para discutir los cambios que te gustaría hacer.

  • Fork el repositorio
  • Crea tu rama de feature (git checkout -b feature/amazing-feature)
  • Commit tus cambios (git commit -m 'Add: amazing feature')
  • Push a la rama (git push origin feature/amazing-feature)
  • Abre un Pull Request

📝 License

ISC © ÜMA Salud

🙋‍♂️ Soporte

¿Tienes preguntas? ¿Necesitas ayuda? No dudes en:

Keywords

react

FAQs

Package last updated on 27 May 2025

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts