Luna SaludReferencia de la APILuna Salud

Obtener pruebas de laboratorio de un usuario

GET/lab-tests

Recupera una lista paginada de pruebas de laboratorio para un paciente específico con filtrado de fecha opcional. Incluye metadatos de prueba, información del proveedor y detalles de estado. Los resultados se pueden filtrar por rango de fechas y ordenar por varios criterios.

Ejemplos de código

Node.js

const fetch = require('node-fetch');

async function llamarApi() {
  const claveApi = 'YOUR_API_KEY';
  const patientId = 'su-patientId';
  const page = 'su-page';
  const limit = 'su-limit';
  const start_date = 'su-start_date';
  const end_date = 'su-end_date';

const queryString = new URLSearchParams({
    patientId: patientId,
    page: page,
    limit: limit,
    start_date: start_date,
    end_date: end_date
  }).toString();

  const url = `https://account.lunahealth.app/api/lab-tests` + (queryString ? `?${queryString}` : '');
  try {
    const response = await fetch(url, {
      method: 'GET',
      headers: {
        'Authorization': `Bearer ${claveApi}`,
        'Content-Type': 'application/json'
      }
    });
    
    if (!response.ok) {
      throw new Error(`API error: ${response.status}`);
    }
    
    const data = await response.json();
    console.log(data);
    return data;
  } catch (error) {
    console.error('Error al llamar a la API:', error);
    throw error;
  }
}

llamarApi();

Python

import requests

def llamarApi():
    claveApi = 'YOUR_API_KEY'
    
    url = 'https://account.lunahealth.app/api/lab-tests'
    
    headers = {
        'Authorization': f'Bearer {claveApi}',
        'Content-Type': 'application/json'
    }
    
    params = {
    'patientId': 'su-patientId',
    'page': 'su-page',
    'limit': 'su-limit',
    'start_date': 'su-start_date',
    'end_date': 'su-end_date'
    }
    
    try:
        response = requests.get(
            url,
            headers=headers,
            params=params
        )
        response.raise_for_status()
        
        data = response.json()
        print(data)
        return data
    except requests.exceptions.RequestException as e:
        print(f'Error al llamar a la API: {e}')
        raise

llamarApi()

Parámetros

NombreUbicaciónTipoRequeridoDescripción
patientIdquerystringID del paciente para filtrar los resultados
pagequerynumberNoNúmero de página (indexado en 0)
limitquerynumberNoNúmero de elementos por página
start_datequerystringNoFecha de inicio opcional para filtrar (formato ISO)
end_datequerystringNoFecha de fin opcional para filtrar (formato ISO)

Respuestas

EstadoDescripción
200Respuesta exitosa
400Datos de entrada no válidos
401Autorización no proporcionada
403Acceso insuficiente
404No encontrado
500Error interno del servidor

200 — Respuesta exitosa

Campos de la respuesta

NombreTipoRequeridoDescripción
itemsarray<object>
metaobject

Ejemplo de respuesta

{
  "items": [
    {
      "id": "string",
      "name": "string",
      "status": "string",
      "uploaded_at": "string",
      "file_count": 0,
      "biomarker_count": 0,
      "created_at": "string"
    }
  ],
  "meta": {
    "totalCount": 0,
    "currentPage": 0,
    "totalPages": 0
  }
}

400 — Datos de entrada no válidos

Campos de la respuesta

NombreTipoRequeridoDescripción
messagestringThe error message
codestringThe error code
issuesarray<object>NoAn array of issues that were responsible for the error

Ejemplo de respuesta

{
  "code": "BAD_REQUEST",
  "message": "Invalid input data",
  "issues": []
}

401 — Autorización no proporcionada

Campos de la respuesta

NombreTipoRequeridoDescripción
messagestringThe error message
codestringThe error code
issuesarray<object>NoAn array of issues that were responsible for the error

Ejemplo de respuesta

{
  "code": "UNAUTHORIZED",
  "message": "Authorization not provided",
  "issues": []
}

403 — Acceso insuficiente

Campos de la respuesta

NombreTipoRequeridoDescripción
messagestringThe error message
codestringThe error code
issuesarray<object>NoAn array of issues that were responsible for the error

Ejemplo de respuesta

{
  "code": "FORBIDDEN",
  "message": "Insufficient access",
  "issues": []
}

404 — No encontrado

Campos de la respuesta

NombreTipoRequeridoDescripción
messagestringThe error message
codestringThe error code
issuesarray<object>NoAn array of issues that were responsible for the error

Ejemplo de respuesta

{
  "code": "NOT_FOUND",
  "message": "Not found",
  "issues": []
}

500 — Error interno del servidor

Campos de la respuesta

NombreTipoRequeridoDescripción
messagestringThe error message
codestringThe error code
issuesarray<object>NoAn array of issues that were responsible for the error

Ejemplo de respuesta

{
  "code": "INTERNAL_SERVER_ERROR",
  "message": "Internal server error",
  "issues": []
}