Metryki Zdrowia - Format Eksportu JSON

Dokumentacja dotycząca struktury metryk zdrowia w eksportach JSON

Last updated: February 6, 2026

On this page

Metryki Zdrowia

Metryki zdrowia reprezentują różne pomiary i punkty danych zbierane przez aplikację Apple Health i podłączone urządzenia. W eksportach JSON metryki zdrowia są przechowywane w tablicy metrics.

Format Nazwy Metryki

Wszystkie nazwy metryk w eksportach JSON używają formatu snake_case (małe litery z podkreśleniami). Na przykład:

  • "Step Count" staje się "step_count"
  • "Blood Pressure" staje się "blood_pressure"
  • "Heart Rate" staje się "heart_rate"
  • "Walking + Running Distance" staje się "walking_running_distance"

Struktura

Tablica metrics zawiera obiekty, z których każdy reprezentuje określony typ metryki zdrowia. Większość metryk zdrowia następuje wspólnej strukturze:

{
  "name": "step_count",
  "units": "count",
  "data": [
    {
      "qty": 8500,
      "date": "2024-02-06 14:30:00 -0800"
    }
  ]
}

Wspólne Pola

  • name (String): Nazwa metryki zdrowia w formacie snake_case (np. "step_count", "heart_rate", "active_energy")
  • units (String): Jednostka miary (np. "count", "bpm", "kcal")
  • data (Array): Tablica punktów danych, z których każdy zawiera:
    • qty (Number): Wartość ilościowa
    • date (Date): Znacznik czasu w formacie yyyy-MM-dd HH:mm:ss Z

Specjalne Format Metryk

Niektóre metryki zdrowia mają unikalne struktury, które różnią się od wspólnego formatu:

Ciśnienie Krwi

Odczyty ciśnienia krwi obejmują wartości zarówno skurczowe, jak i rozkurczowe:

{
  "name": "blood_pressure",
  "units": "mmHg",
  "data": [
    {
      "date": "2024-02-06 14:30:00 -0800",
      "systolic": 120,
      "diastolic": 80
    }
  ]
}

Pola:

  • systolic (Number): Odczyty ciśnienia krwi skurczowego (górnego)
  • diastolic (Number): Odczyty ciśnienia krwi rozkurczowego (dolnego)

Tętno

Dane tętna obejmują wartości minimalne, średnie i maksymalne:

{
  "name": "heart_rate",
  "units": "bpm",
  "data": [
    {
      "date": "2024-02-06 14:30:00 -0800",
      "Min": 65,
      "Avg": 72,
      "Max": 85
    }
  ]
}

Pola:

  • Min (Number): Minimalne tętno w okresie pomiaru
  • Avg (Number): Średnie tętno w okresie pomiaru
  • Max (Number): Maksymalne tętno w okresie pomiaru

Analiza Snu

Struktura danych snu różni się w zależności od tego, czy agregacja danych jest włączona w ustawieniach eksportu.

Agregowane Dane Snu

Gdy agregacja jest włączona, dane snu są podsumowywane według dnia:

{
  "name": "sleep_analysis",
  "units": "hr",
  "data": [
    {
      "date": "2024-02-06",
      "totalSleep": 7.5,
      "asleep": 7.0,
      "core": 3.5,
      "deep": 1.5,
      "rem": 2.0,
      "sleepStart": "2024-02-05 23:00:00 -0800",
      "sleepEnd": "2024-02-06 06:30:00 -0800",
      "inBed": 8.0,
      "inBedStart": "2024-02-05 22:45:00 -0800",
      "inBedEnd": "2024-02-06 06:45:00 -0800"
    }
  ]
}

Pola:

  • totalSleep (Number): Całkowity czas snu w godzinach
  • asleep (Number): Całkowity czas w jakimkolwiek stanie snu
  • core (Number): Czas trwania lekkiego snu w godzinach
  • deep (Number): Czas trwania głębokiego snu w godzinach
  • rem (Number): Czas trwania snu REM w godzinach
  • sleepStart (Date): Kiedy sen faktycznie się rozpoczął
  • sleepEnd (Date): Kiedy sen faktycznie się zakończył
  • inBed (Number): Całkowity czas w łóżku w godzinach
  • inBedStart (Date): Kiedy położyłeś się do łóżka
  • inBedEnd (Date): Kiedy wstałeś z łóżka

Nieagregowane Dane Snu

Gdy agregacja jest wyłączona, uwzględniane są indywidualne segmenty snu:

{
  "name": "sleep_analysis",
  "units": "hr",
  "data": [
    {
      "startDate": "2024-02-05 23:00:00 -0800",
      "endDate": "2024-02-05 23:30:00 -0800",
      "qty": 0.5,
      "value": "Core",
      "deep": 0.0,
      "rem": 0.0,
      "sleepStart": "2024-02-05 23:00:00 -0800",
      "sleepEnd": "2024-02-06 06:30:00 -0800",
      "inBed": 8.0,
      "inBedStart": "2024-02-05 22:45:00 -0800",
      "inBedEnd": "2024-02-06 06:45:00 -0800"
    }
  ]
}

Pola:

  • startDate (Date): Czas rozpoczęcia segmentu snu
  • endDate (Date): Czas zakończenia segmentu snu
  • qty (Number): Czas trwania segmentu w godzinach
  • value (String): Stan snu - jeden z:
    • "Awake"
    • "Asleep" (niekategoryzowana faza snu)
    • "In Bed"
    • "Core"
    • "REM"
    • "Deep"
    • "Unspecified"

Uwaga: "Asleep" odnosi się do niekategoryzowanej fazy snu (a nie do całkowitego czasu snu). Może to wystąpić, jeśli źródło danych nie obsługuje śledzenia faz snu.

Glukoza we Krwi

Odczyty glukozy we krwi obejmują informacje o czasie posiłku:

{
  "name": "blood_glucose",
  "units": "mg/dL",
  "data": [
    {
      "date": "2024-02-06 08:00:00 -0800",
      "qty": 95,
      "mealTime": "Before Meal"
    }
  ]
}

Pola:

  • qty (Number): Poziom glukozy we krwi
  • mealTime (String): Jeden z:
    • "Before Meal"
    • "After Meal"
    • "Unspecified"

Aktywność Seksualna

Wpisy aktywności seksualnej śledzą użycie ochrony:

{
  "name": "sexual_activity",
  "units": "count",
  "data": [
    {
      "date": "2024-02-06 20:00:00 -0800",
      "Unspecified": 0,
      "Protection Used": 1,
      "Protection Not Used": 0
    }
  ]
}

Pola:

  • Unspecified (Number): Liczba, gdy status ochrony jest nieznany
  • Protection Used (Number): Liczba, gdy użyto ochrony
  • Protection Not Used (Number): Liczba, gdy nie użyto ochrony

Mycie Rąk

Zdarzenia mycia rąk śledzą status ukończenia:

{
  "name": "handwashing",
  "units": "count",
  "data": [
    {
      "date": "2024-02-06 12:00:00 -0800",
      "qty": 1,
      "value": "Complete"
    }
  ]
}

Pola:

  • qty (Number): Liczba zdarzeń mycia rąk
  • value (String): Jeden z:
    • "Complete"
    • "Incomplete"

Mycie Zębów

Zdarzenia mycia zębów śledzą status ukończenia:

{
  "name": "toothbrushing",
  "units": "count",
  "data": [
    {
      "date": "2024-02-06 08:00:00 -0800",
      "qty": 1,
      "value": "Complete"
    }
  ]
}

Pola:

  • qty (Number): Liczba zdarzeń mycia zębów
  • value (String): Jeden z:
    • "Complete"
    • "Incomplete"

Podawanie Insuliny

Wpisy podawania insuliny obejmują powód podania:

{
  "name": "insulin_delivery",
  "units": "IU",
  "data": [
    {
      "date": "2024-02-06 08:00:00 -0800",
      "qty": 5,
      "reason": "Bolus"
    }
  ]
}

Pola:

  • qty (Number): Ilość podanej insuliny
  • reason (String): Jeden z:
    • "Bolus" (insulina posiłkowa)
    • "Basal" (insulina podstawowa)

Częste Metryki Zdrowia

Niektóre często eksportowane metryki zdrowia obejmują (wszystkie nazwy metryk są w formacie snake_case):

  • step_count - Dzienne liczniki kroków
  • walking_running_distance - Pokonana odległość
  • active_energy - Kalorie spalone przez aktywność
  • resting_heart_rate - Tętno spoczynkowe
  • heart_rate - Pomiary tętna
  • respiratory_rate - Częstość oddechów
  • body_temperature - Odczyty temperatury ciała
  • blood_oxygen_saturation - Poziomy SpO2
  • weight_&_body_mass - Pomiary masy ciała
  • body_mass_index - Obliczone wartości BMI
  • height - Pomiary wzrostu
  • dietary_water - Spożycie płynów
  • mindful_minutes - Czas medytacji lub uważności

Wskazówki

  • Grupowanie Czasowe: Użyj ustawień grupowania czasowego w konfiguracji eksportu, aby kontrolować sposób agregacji danych (według sekundy, minuty, godziny, dnia itp.)
  • Agregacja Danych: Włącz agregację danych, aby podsumować sen i inne metryki według dnia dla łatwiejszej analizy
  • Selektywny Eksport: Możesz wybrać, które konkretne metryki zdrowia uwzględnić w eksporcie, aby zmniejszyć rozmiar pliku i czas przetwarzania

Powiązana Dokumentacja