🏥 API DoctorYa - Documentación

API REST para gestión de información médica

📍 Endpoints Disponibles

Obras Sociales

GET /api/os/

Obtiene todas las obras sociales

GET /api/os/?id={id}

Obtiene una obra social específica por ID

GET /api/os/?search={término}

Busca obras sociales por nombre o código

Profesionales

GET /api/profesionales/

Obtiene todos los profesionales (sin relaciones)

GET /api/profesionales/?relations=true

Obtiene todos los profesionales con sus relaciones (especialidades, prácticas, obras sociales, categoría, abono)

GET /api/profesionales/?id={id}

Obtiene un profesional específico por ID (sin relaciones)

GET /api/profesionales/?id={id}&relations=true

Obtiene un profesional específico con sus relaciones

GET /api/profesionales/?search={término}

Busca profesionales por nombre, apellido, email o matrícula

Clínicas

GET /api/clinicas/

Obtiene todas las clínicas

GET /api/clinicas/?id={id}

Obtiene una clínica específica por ID

GET /api/clinicas/?search={término}

Busca clínicas por nombre, apellido, email o matrícula

Disponibilidades

GET /api/disponibilidades/

Obtiene todas las disponibilidades de profesionales (sin relaciones)

GET /api/disponibilidades/?relations=true

Obtiene todas las disponibilidades con sus relaciones (especialidades, obras sociales, profesional, clínica, dirección)

GET /api/disponibilidades/?id={id}

Obtiene una disponibilidad específica por ID (sin relaciones)

GET /api/disponibilidades/?id={id}&relations=true

Obtiene una disponibilidad específica con sus relaciones

📝 Ejemplo de Respuesta

Sin Relaciones

{
  "success": true,
  "data": {
    "id": 1,
    "nombre": "Juan",
    "apellido": "Pérez",
    "email": "juan@example.com",
    "matricula": "MP123456",
    "categoria_id": 5,
    "abono_id": 3,
    "rol": "profesional"
  },
  "message": "Profesional encontrado"
}

Con Relaciones (?relations=true)

{
  "success": true,
  "data": {
    "id": 1,
    "nombre": "Juan",
    "apellido": "Pérez",
    "email": "juan@example.com",
    "matricula": "MP123456",
    "categoria_id": 5,
    "abono_id": 3,
    "rol": "profesional",
    "especialidades": [
      {"id": 1, "nombre": "Cardiología"},
      {"id": 5, "nombre": "Medicina Interna"}
    ],
    "practicas": [
      {"id": 2, "nombre": "Consultorio A"},
      {"id": 8, "nombre": "Consultorio B"}
    ],
    "obras_sociales": [
      {
        "id": 3,
        "nombre": "OSDE",
        "codigo": "OSDE001",
        "copago": 500,
        "practica_id": 2
      },
      {
        "id": 7,
        "nombre": "Swiss Medical",
        "codigo": "SM002",
        "copago": 0,
        "practica_id": null
      }
    ],
    "categoria": {
      "id": 5,
      "nombre": "Especialista",
      "color": "#3498db"
    },
    "abono": {
      "id": 3,
      "nombre": "Plan Premium",
      "dias": 365,
      "precio": 25000.00,
      "premium": 1
    }
  },
  "message": "Profesional encontrado"
}

Disponibilidad (Con Relaciones)

{
  "success": true,
  "data": {
    "id": 15,
    "usuario_id": 5,
    "clinica_id": 2,
    "dia_semana": 1,
    "inicio": "09:00",
    "fin": "13:00",
    "direccione_id": 10,
    "especialidad_id": 3,
    "particular": 1,
    "eco": 0,
    "agenda_dy": 1,
    "turnos_simultaneos": 2,
    "habilitado": 1,
    "especialidades": [
      {"id": 3, "nombre": "Kinesiología Deportiva"},
      {"id": 7, "nombre": "Rehabilitación"}
    ],
    "obras_sociales": [
      {"id": 1, "nombre": "OSDE", "codigo": "OSDE001"},
      {"id": 3, "nombre": "Swiss Medical", "codigo": "SM002"},
      {"id": 5, "nombre": "IOMA", "codigo": "IOMA001"}
    ],
    "profesional": {
      "id": 5,
      "nombre": "Dr. Carlos",
      "apellido": "García",
      "email": "carlos@example.com",
      "matricula": "MP789012",
      "rol": "profesional"
    },
    "clinica": {
      "id": 2,
      "nombre": "Clínica San Martín",
      "direccion": "Av. Corrientes 1234"
    },
    "direccion": {
      "id": 10,
      "calle": "Av. Corrientes",
      "numero": "1234",
      "ciudad": "Buenos Aires"
    },
    "especialidad_principal": {
      "id": 3,
      "nombre": "Kinesiología Deportiva"
    }
  },
  "message": "Disponibilidad encontrada"
}

🔗 Relaciones Disponibles

Profesionales

Al agregar el parámetro ?relations=true se incluyen las siguientes relaciones:

Disponibilidades

Al agregar el parámetro ?relations=true se incluyen las siguientes relaciones:

🔧 Información Técnica