Volver a la página principal

Documentación de la API

Guía para integrar tus sistemas con docadmin.

Autenticación

Todas las solicitudes a la API deben estar autenticadas.

La API utiliza claves (API Keys) para autenticar las solicitudes. Puedes generar y gestionar tu API Key desde la sección Mi Cuenta en el panel de administración.

Debes incluir tu API Key en la cabecera `Authorization` de cada solicitud, con el prefijo `Bearer`.

Authorization: Bearer <TU_API_KEY>

URL Base

Todos los endpoints de la API están bajo la siguiente URL base:

https://api.docadmin.com.ar

Endpoints de Consultorios

GET
/consultorios

Obtiene una lista de todos los consultorios del usuario.

Parámetros de Consulta (Query)

  • `soloAutogestion` (opcional, booleano): Si es `true`, devuelve solo los consultorios con la autogestión de turnos activada.

Ejemplo de Solicitud

curl -H "Authorization: Bearer <TU_API_KEY>" "https://api.docadmin.com.ar/consultorios?soloAutogestion=true"

Ejemplo de Respuesta

[
  {
    "id": "consultorio_1",
    "nombre": "Consultorio Central",
    "direccion": "Av. Siempreviva 742",
    "tel": "123-4567",
    "email": "central@docadmin.com.ar",
    "estado": "ACTIVO",
    "autogestionTurnos": true,
    "autogestionTagIds": ["tag_consultas", "tag_estudios"]
  }
]

Endpoints de Obras Sociales

GET
/obrasSociales

Obtiene una lista de todas las obras sociales disponibles en el sistema.

Ejemplo de Solicitud

curl -H "Authorization: Bearer <TU_API_KEY>" "https://api.docadmin.com.ar/obrasSociales"

Ejemplo de Respuesta

[
  {
    "id": "osde",
    "nombre": "OSDE"
  },
  {
    "id": "swiss-medical",
    "nombre": "Swiss Medical"
  }
]

Endpoints de Turnos

GET
/turnos

Consulta los turnos disponibles, con filtros opcionales.

Parámetros de Consulta (Query)

  • `fechaDesde` (requerido): Fecha de inicio en formato `YYYY-MM-DD`.
  • `consultorioId` (opcional): Filtra los turnos para un consultorio específico. Si se omite, busca en todos los consultorios con autogestión.
  • `tagId` (opcional): Filtra los turnos por una etiqueta específica (ej. "primera-vez").
  • `autogestion` (opcional, booleano): Si es `true`, busca turnos solo en consultorios con autogestión y que coincidan con las etiquetas de autogestión configuradas.

Ejemplo de Solicitud

curl -H "Authorization: Bearer <TU_API_KEY>" "https://api.docadmin.com.ar/turnos?fechaDesde=2024-08-15&autogestion=true"

Ejemplo de Respuesta

[
  {
    "id": "202408150900_consultorio_1_tag_primera_vez",
    "consultorioId": "consultorio_1",
    "consultorioNombre": "Consultorio Central",
    "fecha": "2024-08-15T12:00:00Z",
    "estado": "disponible",
    "tipo": "Turno",
    "duracion": 20,
    "tags": ["tag_primera_vez"],
    "tagDetails": [
      {
        "id": "tag_primera_vez",
        "nombre": "Primera Vez",
        "color": "#3b82f6"
      }
    ]
  }
]

POST
/turnos/reservar

Reserva un turno disponible para un paciente existente.

Cuerpo de la Solicitud (JSON)

  • `turnoId` (requerido): ID del turno a reservar.
  • `consultorioId` (requerido): ID del consultorio donde está el turno.
  • `pacienteId` (requerido): ID del paciente a asignar al turno.

Ejemplo de Solicitud

curl -X POST -H "Authorization: Bearer <TU_API_KEY>" -H "Content-Type: application/json" \
-d '{
  "turnoId": "202408150900",
  "consultorioId": "consultorio_1",
  "pacienteId": "paciente_id_existente"
}' "https://api.docadmin.com.ar/turnos/reservar"

Ejemplo de Respuesta Exitosa

{
  "success": true,
  "message": "Turno reservado exitosamente.",
  "turnoId": "202408150900"
}

POST
/turnos/cancelar

Libera un turno previamente reservado, dejándolo disponible nuevamente.

Cuerpo de la Solicitud (JSON)

  • `turnoId` (requerido): ID del turno a cancelar/liberar.
  • `consultorioId` (requerido): ID del consultorio donde está el turno.

Ejemplo de Solicitud

curl -X POST -H "Authorization: Bearer <TU_API_KEY>" -H "Content-Type: application/json" \
-d '{
    "turnoId": "202408150900",
    "consultorioId": "consultorio_1"
}' "https://api.docadmin.com.ar/turnos/cancelar"

Ejemplo de Respuesta Exitosa

{
  "success": true,
  "message": "Turno liberado exitosamente."
}

GET
/misTurnos

Consulta el historial de turnos de un paciente específico.

Parámetros de Consulta (Query)

  • `idPaciente` (requerido): ID del paciente.
  • `tambienAnteriores` (opcional, booleano): Si es `true`, incluye turnos pasados. Por defecto es `false`.

Ejemplo (Turnos Futuros)

curl -H "Authorization: Bearer <TU_API_KEY>" "https://api.docadmin.com.ar/misTurnos?idPaciente=id_del_paciente"

Ejemplo (Historial Completo)

curl -H "Authorization: Bearer <TU_API_KEY>" "https://api.docadmin.com.ar/misTurnos?idPaciente=id_del_paciente&tambienAnteriores=true"

Ejemplo de Respuesta

[
  {
    "id": "202408150900",
    "consultorioId": "consultorio_1",
    "consultorioNombre": "Consultorio Central",
    "fecha": "2024-08-15T12:00:00.000Z",
    "estado": "confirmado",
    "tipo": "Turno",
    "duracion": 20,
    "pacienteId": "id_del_paciente"
  }
]

Endpoints de Pacientes

GET
/pacientes

Busca un paciente por su DNI o número de teléfono. La búsqueda por teléfono tiene prioridad.

Parámetros de Consulta (Query)

Debes proporcionar `dni` o `telefono`.

  • `dni` (opcional): Número de DNI del paciente.
  • `telefono` (opcional): Número de teléfono del paciente.

Ejemplo de Solicitud (por DNI)

curl -H "Authorization: Bearer <TU_API_KEY>" "https://api.docadmin.com.ar/pacientes?dni=12345678"

Ejemplo de Respuesta

[
  {
    "id": "paciente_id_existente",
    "dni": "12345678",
    "nombres": "Juan Perez",
    "email": "juan.perez@example.com",
    "telefono": "1122334455"
  }
]

POST
/pacientes/registrar

Registra un nuevo paciente en el sistema.

Cuerpo de la Solicitud (JSON)

  • `dni` (string): DNI del paciente.
  • `nombres` (string, requerido): Nombre completo.
  • `email` (string): Email de contacto.
  • `telefono` (string): Teléfono de contacto.
  • `obraSocialId` (string): ID de la obra social (obtenido de `GET /obrasSociales`).
  • `nroAfiliado` (string): Número de afiliado.

Ejemplo de Solicitud

curl -X POST -H "Authorization: Bearer <TU_API_KEY>" -H "Content-Type: application/json" \
-d '{
  "dni": "12345678",
  "nombres": "Juan Perez",
  "email": "juan.perez@example.com",
  "telefono": "1122334455",
  "obraSocialId": "osde",
  "nroAfiliado": "123-456"
}' "https://api.docadmin.com.ar/pacientes/registrar"

Ejemplo de Respuesta Exitosa

{
  "success": true,
  "message": "Paciente registrado exitosamente.",
  "pacienteId": "nuevo_paciente_id"
}

POST
/pacientes/update

Actualiza los datos de un paciente existente.

Cuerpo de la Solicitud (JSON)

  • `pacienteId` (requerido): ID del paciente a actualizar.
  • Cualquier otro campo del paciente (ej: `nombres`, `email`, `telefono`, etc.).

Solo se actualizarán los campos que se incluyan en la solicitud.

Ejemplo de Solicitud

curl -X POST -H "Authorization: Bearer <TU_API_KEY>" -H "Content-Type: application/json" \
-d '{
  "pacienteId": "id_del_paciente_a_actualizar",
  "email": "nuevo.email@example.com",
  "telefono": "1155667788"
}' "https://api.docadmin.com.ar/pacientes/update"

Ejemplo de Respuesta Exitosa

{
  "success": true,
  "message": "Paciente actualizado exitosamente.",
  "pacienteId": "id_del_paciente_a_actualizar"
}

Endpoints de Wasapi

POST
/wasapi/set_status

Actualiza el estado de conexión de una cuenta de Wasapi. Este endpoint es para uso interno de la integración con Wasapi.

Cuerpo de la Solicitud (JSON)

  • `wasapiEmail` (string, requerido): El email de la cuenta de Wasapi que cambió de estado.
  • `status` (string, requerido): El nuevo estado de la conexión (ej: "open", "close").

Ejemplo de Solicitud

curl -X POST -H "Authorization: Bearer <TU_API_KEY>" -H "Content-Type: application/json" \
-d '{
  "wasapiEmail": "usuario@wasapi.com",
  "status": "open"
}' "https://api.docadmin.com.ar/wasapi/set_status"

Ejemplo de Respuesta Exitosa

{
  "success": true,
  "message": "Estado actualizado a true"
}