CRM de Ensayos Clínicos
Construido con Agente de IA
Backend de CRM para Sujetos de Ensayos Clínicos

Plantilla de Backend de CRM para Sujetos de Ensayos Clínicos
Seguimiento de Usuario, Estudio, Sujeto, Selección, Visita y Evento Adverso

Un backend CRM para Sujetos de Ensayos Clínicos listo para producción en Back4app con flujos de trabajo de Estudio, Sujeto, Selección, Visita, Evento Adverso y Nota del Sujeto. Incluye diagrama ER, diccionario de datos, esquema JSON, área de pruebas de API y un aviso de Agente de IA para un inicio rápido.

Conclusiones del ensayo

Esta plantilla te proporciona un backend de CRM de Sujetos de Ensayos Clínicos con clases de Usuario, Estudio, Sujeto, Cribado, Visita, EventoAdverso y NotaDelSujeto para que los coordinadores puedan realizar operaciones con sujetos con menos seguimiento manual.

  1. Rastreo del estatus de cribadoModela cada registro de Sujeto y Cribado para que los coordinadores puedan ver estados pendientes, aprobados, fallidos o de re-cribado con screeningDate y notas.
  2. Visibilidad del programa de visitasUtiliza Visit.visitType, scheduledAt, visitStatus, location y coordinator para mantener las visitas planificadas y reprogramaciones consultables.
  3. Registro de eventos adversosCaptura AdverseEvent.eventTerm, gravedad, serio, onsetDate, estado y reportedBy para la revisión de seguridad.
  4. Flujo de trabajo amigable para coordinadoresApoye al personal del estudio con asignaciones de Subject.coordinator, Screening.completedBy, Visit.coordinator y SubjectNote.author en un backend.
  5. Operaciones de ensayos multiplataformaSirva paneles de web, móvil y clínicos a través de una API REST y GraphQL para sujetos, visitas, notas de seguridad y eventos adversos.

¿Qué es la plantilla CRM de sujetos de ensayos clínicos?

Los informes en el CRM de sujetos de ensayos clínicos deben responder a las preguntas de liderazgo sin una búsqueda manual a través de carpetas e hilos de mensajes. Rara vez es un solo error; es deriva. Back4app ancla las entidades centrales para las prácticas de CRM de sujetos de ensayos clínicos que necesitan plazos, documentos y comunicaciones en un espacio de trabajo autorizado. El esquema cubre registros de User, Study, Subject, Screening, Visit, AdverseEvent y SubjectNote con flujos de trabajo de autorización y seguridad integrados. Conecte su frontend preferido y envíe más rápido.

Mejor para:

Aplicaciones de operaciones de ensayos clínicosSeguimiento de sujeciones de sujetosHerramientas de programación de visitasSistemas de registro de eventos adversosTableros de coordinadores clínicosEquipos seleccionando BaaS para flujos de trabajo regulados

Resumen del backend de CRM de sujetos de ensayos clínicos

Los equipos de CRM de sujetos de ensayos clínicos ganan cuando el trabajo rutinario es aburrido: registros predecibles, propiedad obvia y alertas antes de que pequeños problemas se conviertan en incidentes.

Revisa primero el seguimiento de asignaciones de estudios, registro de sujetos, flujo de trabajo de selección, luego abre una tarjeta de pila para ver notas específicas de SDK y patrones de integración.

Funciones Centrales de Ensayos Clínicos

Cada tarjeta de tecnología en este centro utiliza el mismo esquema de backend de ensayos clínicos con Usuario, Estudio, Sujeto, Cribado, Visita, EventoAdverso y NotaDelSujeto.

Seguimiento de asignación de estudio

El estudio almacena protocolId, título, estado, investigador principal y siteName.

Registro de sujetos

El sujeto almacena subjectId, fullName, screeningStatus, study, coordinator, dob, sexAtBirth y consentSignedAt.

Flujo de trabajo de cribado

El cribado vincula un sujeto, estudio, estado de cribado, fecha de cribado, completado por y notas.

Programación de visitas

La visita captura sujeto, estudio, tipo de visita, programado en, estado de visita, ubicación y coordinador.

Registro de eventos de seguridad

AdverseEvent almacena sujeto, estudio, término del evento, gravedad, serio, fecha de inicio, estado y reportado por.

¿Por qué construir tu backend de CRM para sujetos de ensayos clínicos con Back4app?

Back4app te ofrece primitivas de Usuario, Estudio, Sujeto, Cribado, Visita, EventoAdverso y Nota delSujeto para que los coordinadores puedan centrarse en las operaciones del ensayo en lugar de en la infraestructura.

  • Flujo de cribado y sujeto en un esquema: Las clases de Sujeto y Cribado mantienen subjectId, fullName, screeningStatus, screeningDate y completedBy en un solo lugar.
  • Los horarios de visita permanecen consultables: Los campos de Visita y Nota delSujeto facilitan la revisión de citas programadas, reprogramaciones y seguimientos del personal.
  • El registro de seguridad es explícito: Las entradas de EventoAdverso con eventTerm, severity, serious, onsetDate, status y reportedBy apoyan líneas de tiempo de eventos revisables.

Construye un backend de ensayo clínico que mantenga alineados el cribado, las visitas, las notas y los eventos adversos entre equipos.

Beneficios del ensayo

Un backend de ensayo clínico que ayuda a los coordinadores a trabajar más rápido mientras mantiene las operaciones del sujeto estructuradas.

Inicio rápido del ensayo

Comience desde un esquema completo de Usuario, Estudio, Sujeto, Cribado, Visita, EventoAdverso y NotaDelSujeto en lugar de mapear tablas de ensayos desde cero.

Estado de cribado claro

Utilice Subject.screeningStatus y Screening.screeningStatus para separar casos pendientes, aprobados, fallidos y de recribado.

Coordinación de visitas sin suposiciones

Programe y reprograme registros de Visita con tipoDeVisita, programadoEn, estadoDeVisita y ubicación para que el personal sepa qué viene a continuación.

Revisión de seguridad

AdverseEvent.severity, serious, onsetDate, status y reportedBy ofrecen a los equipos de seguridad un historial de eventos legible.

Las notas del sujeto permanecen vinculadas al registro

SubjectNote.noteType, noteText, author y subject mantienen notas de llamada, visita y cribado adjuntas al participante adecuado.

Flujo de trabajo de arranque asistido por IA

Genera rápidamente andamiaje de backend y orientación de integración con un solo aviso estructurado.

¿Listo para lanzar tu CRM de Sujetos de Ensayo Clínico?

Deja que el Agente de IA de Back4app estructure tu backend de CRM de Sujetos de Ensayo Clínico y genere flujos de trabajo de Usuario, Estudio, Sujeto, Cribado, Visita, AdverseEvent y SubjectNote desde un solo aviso.

Gratis para comenzar — 50 indicaciones de Agente AI/mes, no se requiere tarjeta de crédito

Tecnología de ensayo clínico

Todo incluido en esta plantilla de backend de ensayo clínico.

Frontend
13+ tecnologías
Backend
Back4app
Base de datos
MongoDB
Autenticación
Autenticación y sesiones integradas
API
REST y GraphQL
Tiempo real
Live Queries

Mapa de esquema clínico

Modelo de relación de entidades para el esquema de backend CRM de sujetos de ensayos clínicos.

Ver fuente del diagrama
Mermaid
erDiagram
    User ||--o{ Study : "principalInvestigator"
    User ||--o{ Subject : "coordinator"
    User ||--o{ Screening : "completedBy"
    User ||--o{ Visit : "coordinator"
    User ||--o{ AdverseEvent : "reportedBy"
    User ||--o{ SubjectNote : "author"
    Study ||--o{ Subject : "study"
    Study ||--o{ Screening : "study"
    Study ||--o{ Visit : "study"
    Study ||--o{ AdverseEvent : "study"
    Subject ||--o{ Screening : "subject"
    Subject ||--o{ Visit : "subject"
    Subject ||--o{ AdverseEvent : "subject"
    Subject ||--o{ SubjectNote : "subject"

    User {
        String objectId PK
        String username
        String email
        String password
        String role
        String siteName
        Date createdAt
        Date updatedAt
    }

    Study {
        String objectId PK
        String protocolId
        String title
        String status
        String principalInvestigatorId FK
        String siteName
        Date createdAt
        Date updatedAt
    }

    Subject {
        String objectId PK
        String subjectId
        String fullName
        String screeningStatus
        String studyId FK
        String coordinatorId FK
        Date dob
        String sexAtBirth
        Date consentSignedAt
        Date createdAt
        Date updatedAt
    }

    Screening {
        String objectId PK
        String subjectId FK
        String studyId FK
        String screeningStatus
        Date screeningDate
        String completedById FK
        String notes
        Date createdAt
        Date updatedAt
    }

    Visit {
        String objectId PK
        String subjectId FK
        String studyId FK
        String visitType
        Date scheduledAt
        String visitStatus
        String location
        String coordinatorId FK
        Date createdAt
        Date updatedAt
    }

    AdverseEvent {
        String objectId PK
        String subjectId FK
        String studyId FK
        String eventTerm
        String severity
        Boolean serious
        Date onsetDate
        String status
        String reportedById FK
        Date createdAt
        Date updatedAt
    }

    SubjectNote {
        String objectId PK
        String subjectId FK
        String authorId FK
        String noteType
        String noteText
        Date createdAt
        Date updatedAt
    }

Flujo de integración clínica

Flujo de tiempo de ejecución típico para inicio de sesión de usuario, selección de sujetos, programación de visitas, entrada de NotaDelSujeto y registro de EventoAdverso.

Ver fuente del diagrama
Mermaid
sequenceDiagram
  participant User
  participant App as Clinical Trial Subject CRM App
  participant Back4app as Back4app Cloud

  User->>App: Sign in
  App->>Back4app: POST /login
  Back4app-->>App: Session token

  User->>App: Open screening queue
  App->>Back4app: GET /classes/Screening?include=subject,study&order=-screeningDate
  Back4app-->>App: Screening rows with subjectId and screeningStatus

  User->>App: Add a visit schedule
  App->>Back4app: POST /classes/Visit
  Back4app-->>App: Visit objectId and scheduledAt

  User->>App: Log an adverse event
  App->>Back4app: POST /classes/AdverseEvent
  Back4app-->>App: AdverseEvent objectId and status

  App->>Back4app: Subscribe to live updates for Visit and AdverseEvent
  Back4app-->>App: Real-time subject activity

Guía de Campo

Referencia completa a nivel de campo para cada clase en el esquema de ensayo clínico.

CampoTipoDescripciónRequerido
objectIdStringAuto-generated unique identifierAuto
usernameStringUser login name
emailStringUser email address
passwordStringHashed password (write-only)
roleStringRole of the user, such as coordinator, investigator, or sponsor
siteNameStringClinical site or clinic name
createdAtDateAuto-generated creation timestampAuto
updatedAtDateAuto-generated last-update timestampAuto

8 campos en User

Controles de Acceso Clínico

Cómo la estrategia ACL y CLP asegura estudios, sujetos, visitas, notas de sujetos y registros de eventos adversos.

Acceso limitado al coordinador

Solo el personal aprobado de la prueba puede crear o editar registros de Sujeto, Selección, Visita, Evento Adverso y Nota del Sujeto.

Separación de datos a nivel de sitio

Utilice la propiedad del estudio y consultas basadas en punteros para que los equipos solo vean los sujetos asignados a su sitio.

Integridad del registro de seguridad

Las entradas de Evento Adverso deben tener restricciones de escritura y validarse en Cloud Code antes de llegar a la revisión.

Esquema JSON

Definición de esquema JSON en bruto lista para copiar en Back4app o usar como referencia de implementación.

JSON
{
  "classes": [
    {
      "className": "User",
      "fields": {
        "objectId": {
          "type": "String",
          "required": false
        },
        "username": {
          "type": "String",
          "required": true
        },
        "email": {
          "type": "String",
          "required": true
        },
        "password": {
          "type": "String",
          "required": true
        },
        "role": {
          "type": "String",
          "required": true
        },
        "siteName": {
          "type": "String",
          "required": false
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    },
    {
      "className": "Study",
      "fields": {
        "objectId": {
          "type": "String",
          "required": false
        },
        "protocolId": {
          "type": "String",
          "required": true
        },
        "title": {
          "type": "String",
          "required": true
        },
        "status": {
          "type": "String",
          "required": true
        },
        "principalInvestigator": {
          "type": "Pointer",
          "required": true,
          "targetClass": "User"
        },
        "siteName": {
          "type": "String",
          "required": true
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    },
    {
      "className": "Subject",
      "fields": {
        "objectId": {
          "type": "String",
          "required": false
        },
        "subjectId": {
          "type": "String",
          "required": true
        },
        "fullName": {
          "type": "String",
          "required": true
        },
        "screeningStatus": {
          "type": "String",
          "required": true
        },
        "study": {
          "type": "Pointer",
          "required": true,
          "targetClass": "Study"
        },
        "coordinator": {
          "type": "Pointer",
          "required": true,
          "targetClass": "User"
        },
        "dob": {
          "type": "Date",
          "required": false
        },
        "sexAtBirth": {
          "type": "String",
          "required": false
        },
        "consentSignedAt": {
          "type": "Date",
          "required": false
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    },
    {
      "className": "Screening",
      "fields": {
        "objectId": {
          "type": "String",
          "required": false
        },
        "subject": {
          "type": "Pointer",
          "required": true,
          "targetClass": "Subject"
        },
        "study": {
          "type": "Pointer",
          "required": true,
          "targetClass": "Study"
        },
        "screeningStatus": {
          "type": "String",
          "required": true
        },
        "screeningDate": {
          "type": "Date",
          "required": true
        },
        "completedBy": {
          "type": "Pointer",
          "required": true,
          "targetClass": "User"
        },
        "notes": {
          "type": "String",
          "required": false
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    },
    {
      "className": "Visit",
      "fields": {
        "objectId": {
          "type": "String",
          "required": false
        },
        "subject": {
          "type": "Pointer",
          "required": true,
          "targetClass": "Subject"
        },
        "study": {
          "type": "Pointer",
          "required": true,
          "targetClass": "Study"
        },
        "visitType": {
          "type": "String",
          "required": true
        },
        "scheduledAt": {
          "type": "Date",
          "required": true
        },
        "visitStatus": {
          "type": "String",
          "required": true
        },
        "location": {
          "type": "String",
          "required": false
        },
        "coordinator": {
          "type": "Pointer",
          "required": true,
          "targetClass": "User"
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    },
    {
      "className": "AdverseEvent",
      "fields": {
        "objectId": {
          "type": "String",
          "required": false
        },
        "subject": {
          "type": "Pointer",
          "required": true,
          "targetClass": "Subject"
        },
        "study": {
          "type": "Pointer",
          "required": true,
          "targetClass": "Study"
        },
        "eventTerm": {
          "type": "String",
          "required": true
        },
        "severity": {
          "type": "String",
          "required": true
        },
        "serious": {
          "type": "Boolean",
          "required": true
        },
        "onsetDate": {
          "type": "Date",
          "required": true
        },
        "status": {
          "type": "String",
          "required": true
        },
        "reportedBy": {
          "type": "Pointer",
          "required": true,
          "targetClass": "User"
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    },
    {
      "className": "SubjectNote",
      "fields": {
        "objectId": {
          "type": "String",
          "required": false
        },
        "subject": {
          "type": "Pointer",
          "required": true,
          "targetClass": "Subject"
        },
        "author": {
          "type": "Pointer",
          "required": true,
          "targetClass": "User"
        },
        "noteType": {
          "type": "String",
          "required": true
        },
        "noteText": {
          "type": "String",
          "required": true
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    }
  ]
}

Construir con AI Agent

Utiliza el agente de IA de Back4app para generar una aplicación CRM de Sujetos de Ensayos Clínicos real a partir de esta plantilla, incluyendo frontend, backend, autenticación y flujos de cribado, visita, nota y seguridad.

Agente de IA de Back4app
Listo para construir
Crea un backend seguro de CRM de Sujetos de Ensayos Clínicos en Back4app con este esquema y comportamiento exactos.

Esquema:
1. Usuario (usa el incorporado de Back4app): nombre de usuario, correo electrónico, contraseña, rol, nombre del sitio; objectId, createdAt, updatedAt (sistema).
2. Estudio: protocolId (String, requerido), título (String, requerido), estado (String, requerido), investigadorPrincipal (Puntero a Usuario, requerido), nombre del sitio (String, requerido); objectId, createdAt, updatedAt (sistema).
3. Sujeto: subjectId (String, requerido), nombreCompleto (String, requerido), estadoDeCribado (String, requerido), estudio (Puntero a Estudio, requerido), coordinador (Puntero a Usuario, requerido), fechaDeNacimiento, sexoAlNacer, consentimientoFirmadoEn; objectId, createdAt, updatedAt (sistema).
4. Cribado: sujeto (Puntero a Sujeto, requerido), estudio (Puntero a Estudio, requerido), estadoDeCribado (String, requerido), fechaDeCribado (Fecha, requerido), completadoPor (Puntero a Usuario, requerido), notas (String); objectId, createdAt, updatedAt (sistema).
5. Visita: sujeto (Puntero a Sujeto, requerido), estudio (Puntero a Estudio, requerido), tipoDeVisita (String, requerido), programadoEn (Fecha, requerido), estadoDeVisita (String, requerido), ubicación (String), coordinador (Puntero a Usuario, requerido); objectId, createdAt, updatedAt (sistema).
6. EventoAdverso: sujeto (Puntero a Sujeto, requerido), estudio (Puntero a Estudio, requerido), términoDelEvento (String, requerido), gravedad (String, requerido), serio (Booleano, requerido), fechaDeInicio (Fecha, requerido), estado (String, requerido), reportadoPor (Puntero a Usuario, requerido); objectId, createdAt, updatedAt (sistema).
7. NotaDelSujeto: sujeto (Puntero a Sujeto, requerido), autor (Puntero a Usuario, requerido), tipoDeNota (String, requerido), textoDeNota (String, requerido); objectId, createdAt, updatedAt (sistema).

Seguridad:
- Mantén las listas de sujetos limitadas al personal autenticado.
- Permite a los coordinadores editar Sujetos y Visitas para su sitio.
- Restringe la entrada de EventoAdverso a usuarios autenticados con roles de coordinador o investigador.
- Usa ACLs y CLPs para que el estado de cribado, los horarios de visita, las notas de sujeto y los registros de eventos adversos estén protegidos del acceso público.

Autenticación:
- Registro, inicio de sesión, cierre de sesión.

Comportamiento:
- Realiza un seguimiento de la cola de cribado, la asignación de sujetos, los horarios de visita, los registros de eventos adversos y las notas de sujetos.
- Soporta consultas filtradas por estudio, estadoDeCribado, estadoDeVisita y eventos adversos graves.

Entregar:
- Aplicación Back4app con esquema, ACLs, CLPs; frontend para tableros de cribado, planificación de visitas, informes de eventos adversos y notas de sujetos.

Presiona el botón de abajo para abrir el Agente con este aviso de plantilla prellenado.

Este es el aviso base sin un sufijo tecnológico. Puedes adaptar la pila de frontend generada después.

Desplegar en minutos50 avisos gratuitos / mesNo se requiere tarjeta de crédito

API Sandbox

Prueba los endpoints REST y GraphQL contra el esquema de ensayo clínico. Las respuestas utilizan datos simulados y no requieren una cuenta de Back4app.

Cargando playground…

Utiliza el mismo esquema que esta plantilla.

Elige tu pila

Expande cada tarjeta para ver cómo integrar Estudio, Asignatura y Cribado con tu pila elegida.

Flutter CRM de sujetos de ensayos clínicos

React CRM de sujetos de ensayos clínicos

React Nativo CRM de sujetos de ensayos clínicos

Next.js CRM de sujetos de ensayos clínicos

JavaScript CRM de sujetos de ensayos clínicos

Android CRM de sujetos de ensayos clínicos

iOS CRM de sujetos de ensayos clínicos

Vue CRM de sujetos de ensayos clínicos

Angular CRM de sujetos de ensayos clínicos

GraphQL CRM de sujetos de ensayos clínicos

REST API CRM de sujetos de ensayos clínicos

PHP CRM de sujetos de ensayos clínicos

.NET CRM de sujetos de ensayos clínicos

Lo Que Obtienes con Cada Tecnología

Cada pila utiliza el mismo esquema de backend de ensayos clínicos y contratos de API.

Estructura de datos unificada para operaciones de ensayos

Administra fácilmente los registros de Usuario, Estudio, Sujeto, Selección, Visita, Evento Adverso y Nota del Sujeto con un esquema consistente.

Control del estado de selección para los equipos de ensayo

Rastrea la elegibilidad y los hitos de inscripción con campos de Sujeto explícitos.

Programación de visitas para coordinadores

Coordina visitas programadas, completadas, perdidas o canceladas en un solo lugar.

Registro de eventos de seguridad para flujos de trabajo clínicos

Registra eventos adversos con severidad y estado de seguimiento.

Comparación de Pilas Clínicas

Compara la velocidad de configuración, el estilo del SDK y el soporte de IA entre todas las tecnologías soportadas.

MarcoTiempo de ConfiguraciónBeneficio de Ensayo ClínicoTipo de SDKSoporte de IA
Alrededor de 5 minCódigo único para aplicaciones de coordinación en móvil y web.SDK TipadoCompleto
Menos de 5 minutosTablero web rápido para la evaluación y planificación de visitas.SDK tipadoCompleto
~3–7 minAplicación móvil multiplataforma para el personal del sitio.SDK tipadoCompleto
Configuración rápida (5 min)Tablero de operaciones clínicas renderizado en servidor.SDK tipadoCompleto
~3–5 minIntegración web ligera para operaciones de prueba.SDK tipadoCompleto
Aproximadamente 5 minAplicación nativa Android para coordinadores.SDK tipadoCompleto
Menos de 5 minutosAplicación nativa iOS para revisión de visita y seguridad.SDK tipadoCompleto
~3–7 minInterfaz web React para el seguimiento de sujetos.SDK EscritoCompleto
Configuración rápida (5 min)Panel de control empresarial para equipos clínicos.SDK EscritoCompleto
Menos de 2 minAPI GraphQL flexible para consultas de ensayos anidados.API GraphQLCompleto
Configuración rápida (2 min)Integración de REST API para operaciones clínicas.REST APICompleto
~3 minIntegración de PHP en el servidor para herramientas de coordinador.REST APICompleto
~3–7 minBackend de .NET para aplicaciones de flujo de trabajo reguladas.SDK tipadoCompleto

El tiempo de configuración refleja la duración esperada desde el arranque del proyecto hasta la primera consulta de sujeto o visita utilizando este esquema de plantilla.

Preguntas frecuentes sobre ensayos clínicos

Preguntas comunes sobre la construcción de un backend de CRM para Sujetos de Ensayos Clínicos con esta plantilla.

¿Cómo mantienen las prácticas de CRM de sujetos de ensayos clínicos la calidad de la recepción a medida que aumenta el volumen?
¿Cómo deben los equipos de CRM de sujetos de ensayos clínicos modelar clientes, asuntos y traspasos internos sin ambigüedad?
¿Podemos integrar firma electrónica o almacenamiento de documentos sin fragmentar el registro de CRM de sujetos de ensayos clínicos?
¿Cómo consulto sujetos y visitas con Flutter?
¿Cómo gestiono el acceso CRM de sujetos de ensayos clínicos con Next.js Server Actions?
¿Puede React Native almacenar en caché eventos adversos sin conexión?
¿Cómo prevengo el acceso no autorizado a los datos de los sujetos?
¿Cuál es la mejor manera de mostrar las operaciones del ensayo en Android?
¿Cómo funciona el flujo de screening a visita de principio a fin?

Confiado por desarrolladores de todo el mundo

Únete a equipos que envían productos CRM para Sujetos de Ensayos Clínicos más rápido con plantillas de Back4app

G2 Users Love Us Badge

¿Listo para construir tu aplicación CRM para Sujetos de Ensayos Clínicos?

Comience su proyecto de ensayo clínico en minutos. No se requiere tarjeta de crédito.

Elija tecnología