> ## Documentation Index
> Fetch the complete documentation index at: https://docs.arlohealth.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Health Records Tools

> Read the user's connected insurance and health records

## Overview

`get_health_records` is a read-only view over the patient's connected insurance and health records, sourced from their insurer via Flexpa (flattened SQL-on-FHIR views). It never connects, refreshes, or mutates anything.

<Note>
  Connecting insurance happens in the Arlo patient portal or the [onboarding widget](/mcp-tools/onboarding) — the Flexpa Link OAuth flow runs in a browser. If the user isn't connected yet, this tool tells you so; point the user there.
</Note>

## get\_health\_records

### Parameters

| Parameter | Type   | Required | Description                                                             |
| --------- | ------ | -------- | ----------------------------------------------------------------------- |
| `section` | string | No       | Which area to read (default `summary`)                                  |
| `offset`  | number | No       | Paging offset within a section, from a previous response's `nextOffset` |

### Start with the summary

Call with no arguments first. `section: "summary"` returns the connection status, the insurance coverage header, basic demographics, and a **count of records in each category** — a cheap overview so you know what's worth pulling before drilling in.

### Sections

| Section         | Contents                                                                                                        |
| --------------- | --------------------------------------------------------------------------------------------------------------- |
| `summary`       | Connection status, coverage header, demographics, per-category counts                                           |
| `coverage`      | Insurance plan: payer, member/subscriber, plan period, pharmacy benefit IDs (RxBIN/RxPCN/RxGroup), cost-sharing |
| `conditions`    | Problem/diagnosis list                                                                                          |
| `medications`   | Prescribed / reported / dispensed medications                                                                   |
| `allergies`     | Allergies and reactions                                                                                         |
| `immunizations` | Immunization history                                                                                            |
| `labs`          | Lab results (observations categorized `laboratory`, plus diagnostic reports)                                    |
| `vitals`        | Vital signs (heart rate, blood pressure, respiratory rate, ...)                                                 |
| `visits`        | Encounters and procedures                                                                                       |
| `claims`        | Claims headers, diagnoses, procedures, and line items                                                           |
| `everything`    | All of the above (large — prefer targeted sections)                                                             |

<Note>
  Labs and vitals are split deliberately: in FHIR both are `Observation` resources, and a patient can have thousands of vital-sign readings. The split keeps recent labs from being buried behind vitals.
</Note>

### Paging

Each underlying view returns at most 100 rows per call, **sorted newest-first** so the cap keeps the most recent records. When a view is truncated, the response includes `truncated: true`, `showing`, and `nextOffset` — pass `nextOffset` back as `offset` to get the next page.

### Returns (summary example)

```json theme={null}
{
  "connected": true,
  "lastSyncStatus": "SUCCESS",
  "coverage": {
    "payer": "Blue Shield of California",
    "memberId": "XYZ123456789",
    "planPeriod": { "start": "2026-01-01" }
  },
  "demographics": {
    "name": "John Doe",
    "birthDate": "1990-03-15"
  },
  "counts": {
    "conditions": 4,
    "medications": 12,
    "allergies": 1,
    "immunizations": 8,
    "labs": 61,
    "vitals": 340,
    "visits": 23,
    "claims": 47
  }
}
```

### Example flow

```javascript theme={null}
// 1. Cheap overview
const summary = await getHealthRecords();

// 2. Drill into what matters for the current question
if (summary.counts.medications > 0) {
  const meds = await getHealthRecords({ section: "medications" });
}

// 3. Page through a long history when needed
let labs = await getHealthRecords({ section: "labs" });
while (labs.observations?.nextOffset) {
  labs = await getHealthRecords({ section: "labs", offset: labs.observations.nextOffset });
}
```
