Documentation Index Fetch the complete documentation index at: https://mintlify.com/kingstinct/react-native-healthkit/llms.txt
Use this file to discover all available pages before exploring further.
Overview
Electrocardiogram (ECG) data is captured by Apple Watch and stored in HealthKit. ECG samples include classification, symptoms status, average heart rate, voltage measurements, and sampling frequency.
Functions
queryElectrocardiogramSamples
Query electrocardiogram samples with optional voltage data.
import { queryElectrocardiogramSamples } from '@kingstinct/react-native-healthkit' ;
const ecgs = await queryElectrocardiogramSamples ({
includeVoltages: true ,
limit: 20 ,
ascending: false ,
});
Parameters
options
ECGQueryOptionsWithSortOrder
Query options for ECG samples Whether to include voltage measurements in the response. Voltage data can be large, so it’s excluded by default.
Maximum number of samples to return
Filter options for date range and other criteria
Response
Returns a Promise resolving to an array of ElectrocardiogramSample objects.
interface ElectrocardiogramSample {
readonly uuid : string ;
readonly startDate : Date ;
readonly endDate : Date ;
readonly classification : ElectrocardiogramClassification ;
readonly symptomsStatus : ElectrocardiogramSymptomsStatus ;
readonly averageHeartRateBpm ?: number ;
readonly samplingFrequencyHz ?: number ;
readonly numberOfVoltageMeasurements : number ;
readonly voltages ?: ElectrocardiogramVoltage [];
}
Classification types:
notSet - No classification
sinusRhythm - Normal sinus rhythm
atrialFibrillation - AFib detected
inconclusiveLowHeartRate - Inconclusive due to low heart rate
inconclusiveHighHeartRate - Inconclusive due to high heart rate
inconclusivePoorReading - Inconclusive due to poor reading
inconclusiveOther - Inconclusive for other reasons
Symptoms status:
notSet - Not specified
none - No symptoms
present - Symptoms present
queryElectrocardiogramSamplesWithAnchor
Query ECG samples with anchor-based pagination for syncing data efficiently.
import { queryElectrocardiogramSamplesWithAnchor } from '@kingstinct/react-native-healthkit' ;
// Initial query
const { samples , deletedSamples , newAnchor } = await queryElectrocardiogramSamplesWithAnchor ({
includeVoltages: false ,
limit: 20 ,
});
// Subsequent query to get only changes
const nextResult = await queryElectrocardiogramSamplesWithAnchor ({
includeVoltages: false ,
limit: 20 ,
anchor: newAnchor ,
});
Parameters
options
ECGQueryOptionsWithAnchor
Query options with anchor support Whether to include voltage measurements. Must be explicitly set when using anchors.
Maximum number of samples to return. Set to 0 for no limit.
Base64-encoded anchor from previous query. Omit for initial query.
Filter options for date range and other criteria
Response
interface ElectrocardiogramSamplesWithAnchorResponse {
readonly samples : readonly ElectrocardiogramSample [];
readonly deletedSamples : readonly DeletedSample [];
readonly newAnchor : string ;
}
samples
ElectrocardiogramSample[]
New or modified ECG samples since the last anchor
Samples that were deleted since the last anchor
Base64-encoded anchor to use for the next query
Usage Example
import {
queryElectrocardiogramSamples ,
requestAuthorization
} from '@kingstinct/react-native-healthkit' ;
// Request authorization first
await requestAuthorization ({
toRead: [ 'HKCategoryTypeIdentifierElectrocardiogram' ]
});
// Query ECG samples with voltage data
const ecgs = await queryElectrocardiogramSamples ({
includeVoltages: true ,
limit: 20 ,
});
ecgs . forEach (( ecg ) => {
console . log ( `Classification: ${ ecg . classification } ` );
console . log ( `Average HR: ${ ecg . averageHeartRateBpm } BPM` );
console . log ( `Voltage measurements: ${ ecg . numberOfVoltageMeasurements } ` );
if ( ecg . voltages ) {
ecg . voltages . forEach (( v ) => {
console . log ( `Time: ${ v . timeSinceSampleStart } s, Voltage: ${ v . voltage } V` );
});
}
});
See Also