From 57a149210f549f3c717576b8fcd771e9a83230bd Mon Sep 17 00:00:00 2001
From: fern-api <115122769+fern-api[bot]@users.noreply.github.com>
Date: Thu, 12 Dec 2024 20:45:06 +0000
Subject: [PATCH] Release 2.1.147
---
pyproject.toml | 2 +-
reference.md | 7334 +----------------
src/vital/__init__.py | 22 +-
src/vital/client.py | 4 +
src/vital/core/client_wrapper.py | 2 +-
src/vital/electrocardiogram/__init__.py | 2 +
src/vital/electrocardiogram/client.py | 185 +
src/vital/types/__init__.py | 20 +-
.../types/client_facing_electrocardiogram.py | 40 +
...facing_electrocardiogram_classification.py | 25 +
...ng_electrocardiogram_inconclusive_cause.py | 25 +
...lient_facing_electrocardiogram_response.py | 20 +
...acing_electrocardiogram_source_provider.py | 7 +
...nt_facing_electrocardiogram_source_type.py | 65 +
...le.py => client_facing_menstrual_cycle.py} | 9 +-
..._facing_menstrual_cycle_source_provider.py | 7 +
...ient_facing_menstrual_cycle_source_type.py | 65 +
src/vital/types/client_facing_sport.py | 6 +-
src/vital/types/menstrual_cycle_response.py | 4 +-
.../types/workout_column_expr_workout.py | 4 -
20 files changed, 596 insertions(+), 7252 deletions(-)
create mode 100644 src/vital/electrocardiogram/__init__.py
create mode 100644 src/vital/electrocardiogram/client.py
create mode 100644 src/vital/types/client_facing_electrocardiogram.py
create mode 100644 src/vital/types/client_facing_electrocardiogram_classification.py
create mode 100644 src/vital/types/client_facing_electrocardiogram_inconclusive_cause.py
create mode 100644 src/vital/types/client_facing_electrocardiogram_response.py
create mode 100644 src/vital/types/client_facing_electrocardiogram_source_provider.py
create mode 100644 src/vital/types/client_facing_electrocardiogram_source_type.py
rename src/vital/types/{menstrual_cycle.py => client_facing_menstrual_cycle.py} (83%)
create mode 100644 src/vital/types/client_facing_menstrual_cycle_source_provider.py
create mode 100644 src/vital/types/client_facing_menstrual_cycle_source_type.py
diff --git a/pyproject.toml b/pyproject.toml
index 381d63e..7aa609b 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -1,6 +1,6 @@
[tool.poetry]
name = "vital"
-version = "2.1.146"
+version = "2.1.147"
description = ""
readme = "README.md"
authors = []
diff --git a/reference.md b/reference.md
index 238ac2f..9815732 100644
--- a/reference.md
+++ b/reference.md
@@ -1170,6 +1170,102 @@ client.link.connect_demo_provider(
+
+
+
+
+## Electrocardiogram
+client.electrocardiogram.get(...)
+
+-
+
+#### 📝 Description
+
+
+-
+
+
+-
+
+Get electrocardiogram summary for user_id
+
+
+
+
+
+#### 🔌 Usage
+
+
+-
+
+
+-
+
+```python
+from vital import Vital
+
+client = Vital(
+ api_key="YOUR_API_KEY",
+)
+client.electrocardiogram.get(
+ user_id="user_id",
+ start_date="start_date",
+)
+
+```
+
+
+
+
+
+#### ⚙️ Parameters
+
+
+-
+
+
+-
+
+**user_id:** `str`
+
+
+
+
+
+-
+
+**start_date:** `str`
+
+
+
+
+
+-
+
+**end_date:** `typing.Optional[str]`
+
+
+
+
+
+-
+
+**provider:** `typing.Optional[str]` — Provider oura/strava etc
+
+
+
+
+
+-
+
+**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration.
+
+
+
+
+
+
+
@@ -5759,7241 +5855,3 @@ client.vitals.vo_2_max(
client.vitals.stress_level(...)
-
--
-
-#### 🔌 Usage
-
-
--
-
-
--
-
-```python
-from vital import Vital
-
-client = Vital(
- api_key="YOUR_API_KEY",
-)
-client.vitals.stress_level(
- user_id="user_id",
- start_date="start_date",
-)
-
-```
-
-
-
-
-
-#### ⚙️ Parameters
-
-
--
-
-
--
-
-**user_id:** `str`
-
-
-
-
-
--
-
-**start_date:** `str` — Date from in YYYY-MM-DD or ISO formatted date time. If a date is provided without a time, the time will be set to 00:00:00
-
-
-
-
-
--
-
-**provider:** `typing.Optional[str]` — Provider oura/strava etc
-
-
-
-
-
--
-
-**end_date:** `typing.Optional[str]` — Date to YYYY-MM-DD or ISO formatted date time. If a date is provided without a time, the time will be set to 23:59:59
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.vitals.mindfulness_minutes(...)
-
--
-
-#### 🔌 Usage
-
-
--
-
-
--
-
-```python
-from vital import Vital
-
-client = Vital(
- api_key="YOUR_API_KEY",
-)
-client.vitals.mindfulness_minutes(
- user_id="user_id",
- start_date="start_date",
-)
-
-```
-
-
-
-
-
-#### ⚙️ Parameters
-
-
--
-
-
--
-
-**user_id:** `str`
-
-
-
-
-
--
-
-**start_date:** `str` — Date from in YYYY-MM-DD or ISO formatted date time. If a date is provided without a time, the time will be set to 00:00:00
-
-
-
-
-
--
-
-**provider:** `typing.Optional[str]` — Provider oura/strava etc
-
-
-
-
-
--
-
-**end_date:** `typing.Optional[str]` — Date to YYYY-MM-DD or ISO formatted date time. If a date is provided without a time, the time will be set to 23:59:59
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.vitals.caffeine(...)
-
--
-
-#### 🔌 Usage
-
-
--
-
-
--
-
-```python
-from vital import Vital
-
-client = Vital(
- api_key="YOUR_API_KEY",
-)
-client.vitals.caffeine(
- user_id="user_id",
- start_date="start_date",
-)
-
-```
-
-
-
-
-
-#### ⚙️ Parameters
-
-
--
-
-
--
-
-**user_id:** `str`
-
-
-
-
-
--
-
-**start_date:** `str` — Date from in YYYY-MM-DD or ISO formatted date time. If a date is provided without a time, the time will be set to 00:00:00
-
-
-
-
-
--
-
-**provider:** `typing.Optional[str]` — Provider oura/strava etc
-
-
-
-
-
--
-
-**end_date:** `typing.Optional[str]` — Date to YYYY-MM-DD or ISO formatted date time. If a date is provided without a time, the time will be set to 23:59:59
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.vitals.water(...)
-
--
-
-#### 🔌 Usage
-
-
--
-
-
--
-
-```python
-from vital import Vital
-
-client = Vital(
- api_key="YOUR_API_KEY",
-)
-client.vitals.water(
- user_id="user_id",
- start_date="start_date",
-)
-
-```
-
-
-
-
-
-#### ⚙️ Parameters
-
-
--
-
-
--
-
-**user_id:** `str`
-
-
-
-
-
--
-
-**start_date:** `str` — Date from in YYYY-MM-DD or ISO formatted date time. If a date is provided without a time, the time will be set to 00:00:00
-
-
-
-
-
--
-
-**provider:** `typing.Optional[str]` — Provider oura/strava etc
-
-
-
-
-
--
-
-**end_date:** `typing.Optional[str]` — Date to YYYY-MM-DD or ISO formatted date time. If a date is provided without a time, the time will be set to 23:59:59
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.vitals.steps(...)
-
--
-
-#### 🔌 Usage
-
-
--
-
-
--
-
-```python
-from vital import Vital
-
-client = Vital(
- api_key="YOUR_API_KEY",
-)
-client.vitals.steps(
- user_id="user_id",
- start_date="start_date",
-)
-
-```
-
-
-
-
-
-#### ⚙️ Parameters
-
-
--
-
-
--
-
-**user_id:** `str`
-
-
-
-
-
--
-
-**start_date:** `str` — Date from in YYYY-MM-DD or ISO formatted date time. If a date is provided without a time, the time will be set to 00:00:00
-
-
-
-
-
--
-
-**provider:** `typing.Optional[str]` — Provider oura/strava etc
-
-
-
-
-
--
-
-**end_date:** `typing.Optional[str]` — Date to YYYY-MM-DD or ISO formatted date time. If a date is provided without a time, the time will be set to 23:59:59
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.vitals.floors_climbed(...)
-
--
-
-#### 🔌 Usage
-
-
--
-
-
--
-
-```python
-from vital import Vital
-
-client = Vital(
- api_key="YOUR_API_KEY",
-)
-client.vitals.floors_climbed(
- user_id="user_id",
- start_date="start_date",
-)
-
-```
-
-
-
-
-
-#### ⚙️ Parameters
-
-
--
-
-
--
-
-**user_id:** `str`
-
-
-
-
-
--
-
-**start_date:** `str` — Date from in YYYY-MM-DD or ISO formatted date time. If a date is provided without a time, the time will be set to 00:00:00
-
-
-
-
-
--
-
-**provider:** `typing.Optional[str]` — Provider oura/strava etc
-
-
-
-
-
--
-
-**end_date:** `typing.Optional[str]` — Date to YYYY-MM-DD or ISO formatted date time. If a date is provided without a time, the time will be set to 23:59:59
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.vitals.distance(...)
-
--
-
-#### 🔌 Usage
-
-
--
-
-
--
-
-```python
-from vital import Vital
-
-client = Vital(
- api_key="YOUR_API_KEY",
-)
-client.vitals.distance(
- user_id="user_id",
- start_date="start_date",
-)
-
-```
-
-
-
-
-
-#### ⚙️ Parameters
-
-
--
-
-
--
-
-**user_id:** `str`
-
-
-
-
-
--
-
-**start_date:** `str` — Date from in YYYY-MM-DD or ISO formatted date time. If a date is provided without a time, the time will be set to 00:00:00
-
-
-
-
-
--
-
-**provider:** `typing.Optional[str]` — Provider oura/strava etc
-
-
-
-
-
--
-
-**end_date:** `typing.Optional[str]` — Date to YYYY-MM-DD or ISO formatted date time. If a date is provided without a time, the time will be set to 23:59:59
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.vitals.calories_basal(...)
-
--
-
-#### 🔌 Usage
-
-
--
-
-
--
-
-```python
-from vital import Vital
-
-client = Vital(
- api_key="YOUR_API_KEY",
-)
-client.vitals.calories_basal(
- user_id="user_id",
- start_date="start_date",
-)
-
-```
-
-
-
-
-
-#### ⚙️ Parameters
-
-
--
-
-
--
-
-**user_id:** `str`
-
-
-
-
-
--
-
-**start_date:** `str` — Date from in YYYY-MM-DD or ISO formatted date time. If a date is provided without a time, the time will be set to 00:00:00
-
-
-
-
-
--
-
-**provider:** `typing.Optional[str]` — Provider oura/strava etc
-
-
-
-
-
--
-
-**end_date:** `typing.Optional[str]` — Date to YYYY-MM-DD or ISO formatted date time. If a date is provided without a time, the time will be set to 23:59:59
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.vitals.calories_active(...)
-
--
-
-#### 🔌 Usage
-
-
--
-
-
--
-
-```python
-from vital import Vital
-
-client = Vital(
- api_key="YOUR_API_KEY",
-)
-client.vitals.calories_active(
- user_id="user_id",
- start_date="start_date",
-)
-
-```
-
-
-
-
-
-#### ⚙️ Parameters
-
-
--
-
-
--
-
-**user_id:** `str`
-
-
-
-
-
--
-
-**start_date:** `str` — Date from in YYYY-MM-DD or ISO formatted date time. If a date is provided without a time, the time will be set to 00:00:00
-
-
-
-
-
--
-
-**provider:** `typing.Optional[str]` — Provider oura/strava etc
-
-
-
-
-
--
-
-**end_date:** `typing.Optional[str]` — Date to YYYY-MM-DD or ISO formatted date time. If a date is provided without a time, the time will be set to 23:59:59
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.vitals.respiratory_rate(...)
-
--
-
-#### 🔌 Usage
-
-
--
-
-
--
-
-```python
-from vital import Vital
-
-client = Vital(
- api_key="YOUR_API_KEY",
-)
-client.vitals.respiratory_rate(
- user_id="user_id",
- start_date="start_date",
-)
-
-```
-
-
-
-
-
-#### ⚙️ Parameters
-
-
--
-
-
--
-
-**user_id:** `str`
-
-
-
-
-
--
-
-**start_date:** `str` — Date from in YYYY-MM-DD or ISO formatted date time. If a date is provided without a time, the time will be set to 00:00:00
-
-
-
-
-
--
-
-**provider:** `typing.Optional[str]` — Provider oura/strava etc
-
-
-
-
-
--
-
-**end_date:** `typing.Optional[str]` — Date to YYYY-MM-DD or ISO formatted date time. If a date is provided without a time, the time will be set to 23:59:59
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.vitals.ige(...)
-
--
-
-#### 🔌 Usage
-
-
--
-
-
--
-
-```python
-from vital import Vital
-
-client = Vital(
- api_key="YOUR_API_KEY",
-)
-client.vitals.ige(
- user_id="user_id",
- start_date="start_date",
-)
-
-```
-
-
-
-
-
-#### ⚙️ Parameters
-
-
--
-
-
--
-
-**user_id:** `str`
-
-
-
-
-
--
-
-**start_date:** `str` — Date from in YYYY-MM-DD or ISO formatted date time. If a date is provided without a time, the time will be set to 00:00:00
-
-
-
-
-
--
-
-**provider:** `typing.Optional[str]` — Provider oura/strava etc
-
-
-
-
-
--
-
-**end_date:** `typing.Optional[str]` — Date to YYYY-MM-DD or ISO formatted date time. If a date is provided without a time, the time will be set to 23:59:59
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.vitals.igg(...)
-
--
-
-#### 🔌 Usage
-
-
--
-
-
--
-
-```python
-from vital import Vital
-
-client = Vital(
- api_key="YOUR_API_KEY",
-)
-client.vitals.igg(
- user_id="user_id",
- start_date="start_date",
-)
-
-```
-
-
-
-
-
-#### ⚙️ Parameters
-
-
--
-
-
--
-
-**user_id:** `str`
-
-
-
-
-
--
-
-**start_date:** `str` — Date from in YYYY-MM-DD or ISO formatted date time. If a date is provided without a time, the time will be set to 00:00:00
-
-
-
-
-
--
-
-**provider:** `typing.Optional[str]` — Provider oura/strava etc
-
-
-
-
-
--
-
-**end_date:** `typing.Optional[str]` — Date to YYYY-MM-DD or ISO formatted date time. If a date is provided without a time, the time will be set to 23:59:59
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.vitals.hypnogram(...)
-
--
-
-#### 🔌 Usage
-
-
--
-
-
--
-
-```python
-from vital import Vital
-
-client = Vital(
- api_key="YOUR_API_KEY",
-)
-client.vitals.hypnogram(
- user_id="user_id",
- start_date="start_date",
-)
-
-```
-
-
-
-
-
-#### ⚙️ Parameters
-
-
--
-
-
--
-
-**user_id:** `str`
-
-
-
-
-
--
-
-**start_date:** `str` — Date from in YYYY-MM-DD or ISO formatted date time. If a date is provided without a time, the time will be set to 00:00:00
-
-
-
-
-
--
-
-**provider:** `typing.Optional[str]` — Provider oura/strava etc
-
-
-
-
-
--
-
-**end_date:** `typing.Optional[str]` — Date to YYYY-MM-DD or ISO formatted date time. If a date is provided without a time, the time will be set to 23:59:59
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.vitals.hrv(...)
-
--
-
-#### 🔌 Usage
-
-
--
-
-
--
-
-```python
-from vital import Vital
-
-client = Vital(
- api_key="YOUR_API_KEY",
-)
-client.vitals.hrv(
- user_id="user_id",
- start_date="start_date",
-)
-
-```
-
-
-
-
-
-#### ⚙️ Parameters
-
-
--
-
-
--
-
-**user_id:** `str`
-
-
-
-
-
--
-
-**start_date:** `str` — Date from in YYYY-MM-DD or ISO formatted date time. If a date is provided without a time, the time will be set to 00:00:00
-
-
-
-
-
--
-
-**provider:** `typing.Optional[str]` — Provider oura/strava etc
-
-
-
-
-
--
-
-**end_date:** `typing.Optional[str]` — Date to YYYY-MM-DD or ISO formatted date time. If a date is provided without a time, the time will be set to 23:59:59
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.vitals.heartrate(...)
-
--
-
-#### 🔌 Usage
-
-
--
-
-
--
-
-```python
-from vital import Vital
-
-client = Vital(
- api_key="YOUR_API_KEY",
-)
-client.vitals.heartrate(
- user_id="user_id",
- start_date="start_date",
-)
-
-```
-
-
-
-
-
-#### ⚙️ Parameters
-
-
--
-
-
--
-
-**user_id:** `str`
-
-
-
-
-
--
-
-**start_date:** `str` — Date from in YYYY-MM-DD or ISO formatted date time. If a date is provided without a time, the time will be set to 00:00:00
-
-
-
-
-
--
-
-**provider:** `typing.Optional[str]` — Provider oura/strava etc
-
-
-
-
-
--
-
-**end_date:** `typing.Optional[str]` — Date to YYYY-MM-DD or ISO formatted date time. If a date is provided without a time, the time will be set to 23:59:59
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.vitals.glucose(...)
-
--
-
-#### 🔌 Usage
-
-
--
-
-
--
-
-```python
-from vital import Vital
-
-client = Vital(
- api_key="YOUR_API_KEY",
-)
-client.vitals.glucose(
- user_id="user_id",
- start_date="start_date",
-)
-
-```
-
-
-
-
-
-#### ⚙️ Parameters
-
-
--
-
-
--
-
-**user_id:** `str`
-
-
-
-
-
--
-
-**start_date:** `str` — Date from in YYYY-MM-DD or ISO formatted date time. If a date is provided without a time, the time will be set to 00:00:00
-
-
-
-
-
--
-
-**provider:** `typing.Optional[str]` — Provider oura/strava etc
-
-
-
-
-
--
-
-**end_date:** `typing.Optional[str]` — Date to YYYY-MM-DD or ISO formatted date time. If a date is provided without a time, the time will be set to 23:59:59
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.vitals.cholesterol_triglycerides(...)
-
--
-
-#### 🔌 Usage
-
-
--
-
-
--
-
-```python
-from vital import Vital
-
-client = Vital(
- api_key="YOUR_API_KEY",
-)
-client.vitals.cholesterol_triglycerides(
- user_id="user_id",
- start_date="start_date",
-)
-
-```
-
-
-
-
-
-#### ⚙️ Parameters
-
-
--
-
-
--
-
-**user_id:** `str`
-
-
-
-
-
--
-
-**start_date:** `str` — Date from in YYYY-MM-DD or ISO formatted date time. If a date is provided without a time, the time will be set to 00:00:00
-
-
-
-
-
--
-
-**provider:** `typing.Optional[str]` — Provider oura/strava etc
-
-
-
-
-
--
-
-**end_date:** `typing.Optional[str]` — Date to YYYY-MM-DD or ISO formatted date time. If a date is provided without a time, the time will be set to 23:59:59
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.vitals.cholesterol_total(...)
-
--
-
-#### 🔌 Usage
-
-
--
-
-
--
-
-```python
-from vital import Vital
-
-client = Vital(
- api_key="YOUR_API_KEY",
-)
-client.vitals.cholesterol_total(
- user_id="user_id",
- start_date="start_date",
-)
-
-```
-
-
-
-
-
-#### ⚙️ Parameters
-
-
--
-
-
--
-
-**user_id:** `str`
-
-
-
-
-
--
-
-**start_date:** `str` — Date from in YYYY-MM-DD or ISO formatted date time. If a date is provided without a time, the time will be set to 00:00:00
-
-
-
-
-
--
-
-**provider:** `typing.Optional[str]` — Provider oura/strava etc
-
-
-
-
-
--
-
-**end_date:** `typing.Optional[str]` — Date to YYYY-MM-DD or ISO formatted date time. If a date is provided without a time, the time will be set to 23:59:59
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.vitals.cholesterol_ldl(...)
-
--
-
-#### 🔌 Usage
-
-
--
-
-
--
-
-```python
-from vital import Vital
-
-client = Vital(
- api_key="YOUR_API_KEY",
-)
-client.vitals.cholesterol_ldl(
- user_id="user_id",
- start_date="start_date",
-)
-
-```
-
-
-
-
-
-#### ⚙️ Parameters
-
-
--
-
-
--
-
-**user_id:** `str`
-
-
-
-
-
--
-
-**start_date:** `str` — Date from in YYYY-MM-DD or ISO formatted date time. If a date is provided without a time, the time will be set to 00:00:00
-
-
-
-
-
--
-
-**provider:** `typing.Optional[str]` — Provider oura/strava etc
-
-
-
-
-
--
-
-**end_date:** `typing.Optional[str]` — Date to YYYY-MM-DD or ISO formatted date time. If a date is provided without a time, the time will be set to 23:59:59
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.vitals.cholesterol_hdl(...)
-
--
-
-#### 🔌 Usage
-
-
--
-
-
--
-
-```python
-from vital import Vital
-
-client = Vital(
- api_key="YOUR_API_KEY",
-)
-client.vitals.cholesterol_hdl(
- user_id="user_id",
- start_date="start_date",
-)
-
-```
-
-
-
-
-
-#### ⚙️ Parameters
-
-
--
-
-
--
-
-**user_id:** `str`
-
-
-
-
-
--
-
-**start_date:** `str` — Date from in YYYY-MM-DD or ISO formatted date time. If a date is provided without a time, the time will be set to 00:00:00
-
-
-
-
-
--
-
-**provider:** `typing.Optional[str]` — Provider oura/strava etc
-
-
-
-
-
--
-
-**end_date:** `typing.Optional[str]` — Date to YYYY-MM-DD or ISO formatted date time. If a date is provided without a time, the time will be set to 23:59:59
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.vitals.cholesterol(...)
-
--
-
-#### 🔌 Usage
-
-
--
-
-
--
-
-```python
-from vital import Vital
-
-client = Vital(
- api_key="YOUR_API_KEY",
-)
-client.vitals.cholesterol(
- user_id="user_id",
- start_date="start_date",
-)
-
-```
-
-
-
-
-
-#### ⚙️ Parameters
-
-
--
-
-
--
-
-**user_id:** `str`
-
-
-
-
-
--
-
-**start_date:** `str` — Date from in YYYY-MM-DD or ISO formatted date time. If a date is provided without a time, the time will be set to 00:00:00
-
-
-
-
-
--
-
-**provider:** `typing.Optional[str]` — Provider oura/strava etc
-
-
-
-
-
--
-
-**end_date:** `typing.Optional[str]` — Date to YYYY-MM-DD or ISO formatted date time. If a date is provided without a time, the time will be set to 23:59:59
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.vitals.body_weight(...)
-
--
-
-#### 🔌 Usage
-
-
--
-
-
--
-
-```python
-from vital import Vital
-
-client = Vital(
- api_key="YOUR_API_KEY",
-)
-client.vitals.body_weight(
- user_id="user_id",
- start_date="start_date",
-)
-
-```
-
-
-
-
-
-#### ⚙️ Parameters
-
-
--
-
-
--
-
-**user_id:** `str`
-
-
-
-
-
--
-
-**start_date:** `str` — Date from in YYYY-MM-DD or ISO formatted date time. If a date is provided without a time, the time will be set to 00:00:00
-
-
-
-
-
--
-
-**provider:** `typing.Optional[str]` — Provider oura/strava etc
-
-
-
-
-
--
-
-**end_date:** `typing.Optional[str]` — Date to YYYY-MM-DD or ISO formatted date time. If a date is provided without a time, the time will be set to 23:59:59
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.vitals.body_fat(...)
-
--
-
-#### 🔌 Usage
-
-
--
-
-
--
-
-```python
-from vital import Vital
-
-client = Vital(
- api_key="YOUR_API_KEY",
-)
-client.vitals.body_fat(
- user_id="user_id",
- start_date="start_date",
-)
-
-```
-
-
-
-
-
-#### ⚙️ Parameters
-
-
--
-
-
--
-
-**user_id:** `str`
-
-
-
-
-
--
-
-**start_date:** `str` — Date from in YYYY-MM-DD or ISO formatted date time. If a date is provided without a time, the time will be set to 00:00:00
-
-
-
-
-
--
-
-**provider:** `typing.Optional[str]` — Provider oura/strava etc
-
-
-
-
-
--
-
-**end_date:** `typing.Optional[str]` — Date to YYYY-MM-DD or ISO formatted date time. If a date is provided without a time, the time will be set to 23:59:59
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.vitals.blood_oxygen(...)
-
--
-
-#### 🔌 Usage
-
-
--
-
-
--
-
-```python
-from vital import Vital
-
-client = Vital(
- api_key="YOUR_API_KEY",
-)
-client.vitals.blood_oxygen(
- user_id="user_id",
- start_date="start_date",
-)
-
-```
-
-
-
-
-
-#### ⚙️ Parameters
-
-
--
-
-
--
-
-**user_id:** `str`
-
-
-
-
-
--
-
-**start_date:** `str` — Date from in YYYY-MM-DD or ISO formatted date time. If a date is provided without a time, the time will be set to 00:00:00
-
-
-
-
-
--
-
-**provider:** `typing.Optional[str]` — Provider oura/strava etc
-
-
-
-
-
--
-
-**end_date:** `typing.Optional[str]` — Date to YYYY-MM-DD or ISO formatted date time. If a date is provided without a time, the time will be set to 23:59:59
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.vitals.electrocardiogram_voltage(...)
-
--
-
-#### 🔌 Usage
-
-
--
-
-
--
-
-```python
-from vital import Vital
-
-client = Vital(
- api_key="YOUR_API_KEY",
-)
-client.vitals.electrocardiogram_voltage(
- user_id="user_id",
- start_date="start_date",
-)
-
-```
-
-
-
-
-
-#### ⚙️ Parameters
-
-
--
-
-
--
-
-**user_id:** `str`
-
-
-
-
-
--
-
-**start_date:** `str` — Date from in YYYY-MM-DD or ISO formatted date time. If a date is provided without a time, the time will be set to 00:00:00
-
-
-
-
-
--
-
-**provider:** `typing.Optional[str]` — Provider oura/strava etc
-
-
-
-
-
--
-
-**end_date:** `typing.Optional[str]` — Date to YYYY-MM-DD or ISO formatted date time. If a date is provided without a time, the time will be set to 23:59:59
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.vitals.blood_pressure(...)
-
--
-
-#### 🔌 Usage
-
-
--
-
-
--
-
-```python
-from vital import Vital
-
-client = Vital(
- api_key="YOUR_API_KEY",
-)
-client.vitals.blood_pressure(
- user_id="user_id",
- start_date="start_date",
-)
-
-```
-
-
-
-
-
-#### ⚙️ Parameters
-
-
--
-
-
--
-
-**user_id:** `str`
-
-
-
-
-
--
-
-**start_date:** `str` — Date from in YYYY-MM-DD or ISO formatted date time. If a date is provided without a time, the time will be set to 00:00:00
-
-
-
-
-
--
-
-**provider:** `typing.Optional[str]` — Provider oura/strava etc
-
-
-
-
-
--
-
-**end_date:** `typing.Optional[str]` — Date to YYYY-MM-DD or ISO formatted date time. If a date is provided without a time, the time will be set to 23:59:59
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-## User
-client.user.get_all(...)
-
--
-
-#### 📝 Description
-
-
--
-
-
--
-
-GET All users for team.
-
-
-
-
-
-#### 🔌 Usage
-
-
--
-
-
--
-
-```python
-from vital import Vital
-
-client = Vital(
- api_key="YOUR_API_KEY",
-)
-client.user.get_all()
-
-```
-
-
-
-
-
-#### ⚙️ Parameters
-
-
--
-
-
--
-
-**offset:** `typing.Optional[int]`
-
-
-
-
-
--
-
-**limit:** `typing.Optional[int]`
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.user.create(...)
-
--
-
-#### 📝 Description
-
-
--
-
-
--
-
-POST Create a Vital user given a client_user_id and returns the user_id.
-
-
-
-
-
-#### 🔌 Usage
-
-
--
-
-
--
-
-```python
-from vital import Vital
-
-client = Vital(
- api_key="YOUR_API_KEY",
-)
-client.user.create(
- client_user_id="client_user_id",
-)
-
-```
-
-
-
-
-
-#### ⚙️ Parameters
-
-
--
-
-
--
-
-**client_user_id:** `str` — A unique ID representing the end user. Typically this will be a user ID from your application. Personally identifiable information, such as an email address or phone number, should not be used in the client_user_id.
-
-
-
-
-
--
-
-**fallback_time_zone:** `typing.Optional[str]`
-
-
- Fallback time zone of the user, in the form of a valid IANA tzdatabase identifier (e.g., `Europe/London` or `America/Los_Angeles`).
- Used when pulling data from sources that are completely time zone agnostic (e.g., all time is relative to UTC clock, without any time zone attributions on data points).
-
-
-
-
-
-
--
-
-**fallback_birth_date:** `typing.Optional[str]` — Fallback date of birth of the user, in YYYY-mm-dd format. Used for calculating max heartrate for providers that don not provide users' age.
-
-
-
-
-
--
-
-**ingestion_start:** `typing.Optional[str]` — Starting bound for user data ingestion. Data older than this date will not be ingested.
-
-
-
-
-
--
-
-**ingestion_end:** `typing.Optional[str]` — Ending bound for user data ingestion. Data from this date or later will not be ingested and the connection will be deregistered.
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.user.get_team_metrics()
-
--
-
-#### 📝 Description
-
-
--
-
-
--
-
-GET metrics for team.
-
-
-
-
-
-#### 🔌 Usage
-
-
--
-
-
--
-
-```python
-from vital import Vital
-
-client = Vital(
- api_key="YOUR_API_KEY",
-)
-client.user.get_team_metrics()
-
-```
-
-
-
-
-
-#### ⚙️ Parameters
-
-
--
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.user.get_user_sign_in_token(...)
-
--
-
-#### 🔌 Usage
-
-
--
-
-
--
-
-```python
-from vital import Vital
-
-client = Vital(
- api_key="YOUR_API_KEY",
-)
-client.user.get_user_sign_in_token(
- user_id="user_id",
-)
-
-```
-
-
-
-
-
-#### ⚙️ Parameters
-
-
--
-
-
--
-
-**user_id:** `str`
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.user.get_connected_providers(...)
-
--
-
-#### 📝 Description
-
-
--
-
-
--
-
-GET Users connected providers
-
-
-
-
-
-#### 🔌 Usage
-
-
--
-
-
--
-
-```python
-from vital import Vital
-
-client = Vital(
- api_key="YOUR_API_KEY",
-)
-client.user.get_connected_providers(
- user_id="user_id",
-)
-
-```
-
-
-
-
-
-#### ⚙️ Parameters
-
-
--
-
-
--
-
-**user_id:** `str`
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.user.get(...)
-
--
-
-#### 📝 Description
-
-
--
-
-
--
-
-GET User details given the user_id.
-
-
-
-
-
-#### 🔌 Usage
-
-
--
-
-
--
-
-```python
-from vital import Vital
-
-client = Vital(
- api_key="YOUR_API_KEY",
-)
-client.user.get(
- user_id="user_id",
-)
-
-```
-
-
-
-
-
-#### ⚙️ Parameters
-
-
--
-
-
--
-
-**user_id:** `str`
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.user.delete(...)
-
--
-
-#### 🔌 Usage
-
-
--
-
-
--
-
-```python
-from vital import Vital
-
-client = Vital(
- api_key="YOUR_API_KEY",
-)
-client.user.delete(
- user_id="user_id",
-)
-
-```
-
-
-
-
-
-#### ⚙️ Parameters
-
-
--
-
-
--
-
-**user_id:** `str`
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.user.patch(...)
-
--
-
-#### 🔌 Usage
-
-
--
-
-
--
-
-```python
-from vital import Vital
-
-client = Vital(
- api_key="YOUR_API_KEY",
-)
-client.user.patch(
- user_id="user_id",
-)
-
-```
-
-
-
-
-
-#### ⚙️ Parameters
-
-
--
-
-
--
-
-**user_id:** `str`
-
-
-
-
-
--
-
-**fallback_time_zone:** `typing.Optional[str]`
-
-
- Fallback time zone of the user, in the form of a valid IANA tzdatabase identifier (e.g., `Europe/London` or `America/Los_Angeles`).
- Used when pulling data from sources that are completely time zone agnostic (e.g., all time is relative to UTC clock, without any time zone attributions on data points).
-
-
-
-
-
-
--
-
-**fallback_birth_date:** `typing.Optional[str]` — Fallback date of birth of the user, in YYYY-mm-dd format. Used for calculating max heartrate for providers that don not provide users' age.
-
-
-
-
-
--
-
-**ingestion_start:** `typing.Optional[str]` — Starting bound for user data ingestion. Data older than this date will not be ingested.
-
-
-
-
-
--
-
-**ingestion_end:** `typing.Optional[str]` — Ending bound for user data ingestion. Data from this date or later will not be ingested and the connection will be deregistered.
-
-
-
-
-
--
-
-**client_user_id:** `typing.Optional[str]` — A unique ID representing the end user. Typically this will be a user ID from your application. Personally identifiable information, such as an email address or phone number, should not be used in the client_user_id.
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.user.get_latest_user_info(...)
-
--
-
-#### 🔌 Usage
-
-
--
-
-
--
-
-```python
-from vital import Vital
-
-client = Vital(
- api_key="YOUR_API_KEY",
-)
-client.user.get_latest_user_info(
- user_id="user_id",
-)
-
-```
-
-
-
-
-
-#### ⚙️ Parameters
-
-
--
-
-
--
-
-**user_id:** `str`
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.user.create_insurance(...)
-
--
-
-#### 🔌 Usage
-
-
--
-
-
--
-
-```python
-from vital import (
- Address,
- Gender,
- ResponsibleRelationship,
- Vital,
- VitalCoreSchemasDbSchemasLabTestInsurancePersonDetails,
-)
-
-client = Vital(
- api_key="YOUR_API_KEY",
-)
-client.user.create_insurance(
- user_id="user_id",
- payor_code="payor_code",
- member_id="member_id",
- relationship=ResponsibleRelationship.SELF,
- insured=VitalCoreSchemasDbSchemasLabTestInsurancePersonDetails(
- first_name="first_name",
- last_name="last_name",
- gender=Gender.FEMALE,
- address=Address(
- first_line="first_line",
- country="country",
- zip="zip",
- city="city",
- state="state",
- ),
- dob="dob",
- email="email",
- phone_number="phone_number",
- ),
-)
-
-```
-
-
-
-
-
-#### ⚙️ Parameters
-
-
--
-
-
--
-
-**user_id:** `str`
-
-
-
-
-
--
-
-**payor_code:** `str`
-
-
-
-
-
--
-
-**member_id:** `str`
-
-
-
-
-
--
-
-**relationship:** `ResponsibleRelationship`
-
-
-
-
-
--
-
-**insured:** `VitalCoreSchemasDbSchemasLabTestInsurancePersonDetails`
-
-
-
-
-
--
-
-**group_id:** `typing.Optional[str]`
-
-
-
-
-
--
-
-**guarantor:** `typing.Optional[GuarantorDetails]`
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.user.get_latest_insurance(...)
-
--
-
-#### 🔌 Usage
-
-
--
-
-
--
-
-```python
-from vital import Vital
-
-client = Vital(
- api_key="YOUR_API_KEY",
-)
-client.user.get_latest_insurance(
- user_id="user_id",
-)
-
-```
-
-
-
-
-
-#### ⚙️ Parameters
-
-
--
-
-
--
-
-**user_id:** `str`
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.user.upsert_user_info(...)
-
--
-
-#### 🔌 Usage
-
-
--
-
-
--
-
-```python
-from vital import Address, Vital
-
-client = Vital(
- api_key="YOUR_API_KEY",
-)
-client.user.upsert_user_info(
- user_id="user_id",
- first_name="first_name",
- last_name="last_name",
- email="email",
- phone_number="phone_number",
- gender="gender",
- dob="dob",
- address=Address(
- first_line="first_line",
- country="country",
- zip="zip",
- city="city",
- state="state",
- ),
-)
-
-```
-
-
-
-
-
-#### ⚙️ Parameters
-
-
--
-
-
--
-
-**user_id:** `str`
-
-
-
-
-
--
-
-**first_name:** `str`
-
-
-
-
-
--
-
-**last_name:** `str`
-
-
-
-
-
--
-
-**email:** `str`
-
-
-
-
-
--
-
-**phone_number:** `str`
-
-
-
-
-
--
-
-**gender:** `str`
-
-
-
-
-
--
-
-**dob:** `str`
-
-
-
-
-
--
-
-**address:** `Address`
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.user.get_by_client_user_id(...)
-
--
-
-#### 📝 Description
-
-
--
-
-
--
-
-GET user_id from client_user_id.
-
-
-
-
-
-#### 🔌 Usage
-
-
--
-
-
--
-
-```python
-from vital import Vital
-
-client = Vital(
- api_key="YOUR_API_KEY",
-)
-client.user.get_by_client_user_id(
- client_user_id="client_user_id",
-)
-
-```
-
-
-
-
-
-#### ⚙️ Parameters
-
-
--
-
-
--
-
-**client_user_id:** `str` — A unique ID representing the end user. Typically this will be a user ID number from your application. Personally identifiable information, such as an email address or phone number, should not be used in the client_user_id.
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.user.deregister_provider(...)
-
--
-
-#### 🔌 Usage
-
-
--
-
-
--
-
-```python
-from vital import Providers, Vital
-
-client = Vital(
- api_key="YOUR_API_KEY",
-)
-client.user.deregister_provider(
- user_id="user_id",
- provider=Providers.OURA,
-)
-
-```
-
-
-
-
-
-#### ⚙️ Parameters
-
-
--
-
-
--
-
-**user_id:** `str`
-
-
-
-
-
--
-
-**provider:** `Providers` — Provider slug. e.g., `oura`, `fitbit`, `garmin`.
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.user.undo_delete(...)
-
--
-
-#### 🔌 Usage
-
-
--
-
-
--
-
-```python
-from vital import Vital
-
-client = Vital(
- api_key="YOUR_API_KEY",
-)
-client.user.undo_delete()
-
-```
-
-
-
-
-
-#### ⚙️ Parameters
-
-
--
-
-
--
-
-**user_id:** `typing.Optional[str]` — User ID to undo deletion. Mutually exclusive with `client_user_id`.
-
-
-
-
-
--
-
-**client_user_id:** `typing.Optional[str]` — Client User ID to undo deletion. Mutually exclusive with `user_id`.
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.user.refresh(...)
-
--
-
-#### 📝 Description
-
-
--
-
-
--
-
-Trigger a manual refresh for a specific user
-
-
-
-
-
-#### 🔌 Usage
-
-
--
-
-
--
-
-```python
-from vital import Vital
-
-client = Vital(
- api_key="YOUR_API_KEY",
-)
-client.user.refresh(
- user_id="user_id",
-)
-
-```
-
-
-
-
-
-#### ⚙️ Parameters
-
-
--
-
-
--
-
-**user_id:** `str`
-
-
-
-
-
--
-
-**timeout:** `typing.Optional[float]`
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-## Team
-client.team.get_link_config(...)
-
--
-
-#### 📝 Description
-
-
--
-
-
--
-
-Post teams.
-
-
-
-
-
-#### 🔌 Usage
-
-
--
-
-
--
-
-```python
-from vital import Vital
-
-client = Vital(
- api_key="YOUR_API_KEY",
-)
-client.team.get_link_config()
-
-```
-
-
-
-
-
-#### ⚙️ Parameters
-
-
--
-
-
--
-
-**vital_link_token:** `typing.Optional[str]`
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.team.get(...)
-
--
-
-#### 📝 Description
-
-
--
-
-
--
-
-Get team.
-
-
-
-
-
-#### 🔌 Usage
-
-
--
-
-
--
-
-```python
-from vital import Vital
-
-client = Vital(
- api_key="YOUR_API_KEY",
-)
-client.team.get(
- team_id="team_id",
-)
-
-```
-
-
-
-
-
-#### ⚙️ Parameters
-
-
--
-
-
--
-
-**team_id:** `str`
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.team.get_user_by_id(...)
-
--
-
-#### 📝 Description
-
-
--
-
-
--
-
-Search team users by user_id
-
-
-
-
-
-#### 🔌 Usage
-
-
--
-
-
--
-
-```python
-from vital import Vital
-
-client = Vital(
- api_key="YOUR_API_KEY",
-)
-client.team.get_user_by_id()
-
-```
-
-
-
-
-
-#### ⚙️ Parameters
-
-
--
-
-
--
-
-**query_id:** `typing.Optional[str]`
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.team.get_svix_url()
-
--
-
-#### 🔌 Usage
-
-
--
-
-
--
-
-```python
-from vital import Vital
-
-client = Vital(
- api_key="YOUR_API_KEY",
-)
-client.team.get_svix_url()
-
-```
-
-
-
-
-
-#### ⚙️ Parameters
-
-
--
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.team.get_source_priorities(...)
-
--
-
-#### 📝 Description
-
-
--
-
-
--
-
-GET source priorities.
-
-
-
-
-
-#### 🔌 Usage
-
-
--
-
-
--
-
-```python
-from vital import Vital
-
-client = Vital(
- api_key="YOUR_API_KEY",
-)
-client.team.get_source_priorities()
-
-```
-
-
-
-
-
-#### ⚙️ Parameters
-
-
--
-
-
--
-
-**data_type:** `typing.Optional[str]`
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.team.update_source_priorities()
-
--
-
-#### 📝 Description
-
-
--
-
-
--
-
-Patch source priorities.
-
-
-
-
-
-#### 🔌 Usage
-
-
--
-
-
--
-
-```python
-from vital import Vital
-
-client = Vital(
- api_key="YOUR_API_KEY",
-)
-client.team.update_source_priorities()
-
-```
-
-
-
-
-
-#### ⚙️ Parameters
-
-
--
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.team.get_physicians(...)
-
--
-
-#### 🔌 Usage
-
-
--
-
-
--
-
-```python
-from vital import Vital
-
-client = Vital(
- api_key="YOUR_API_KEY",
-)
-client.team.get_physicians(
- team_id="team_id",
-)
-
-```
-
-
-
-
-
-#### ⚙️ Parameters
-
-
--
-
-
--
-
-**team_id:** `str`
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-## Providers
-client.providers.get_all(...)
-
--
-
-#### 📝 Description
-
-
--
-
-
--
-
-Get Provider list
-
-
-
-
-
-#### 🔌 Usage
-
-
--
-
-
--
-
-```python
-from vital import Vital
-
-client = Vital(
- api_key="YOUR_API_KEY",
-)
-client.providers.get_all()
-
-```
-
-
-
-
-
-#### ⚙️ Parameters
-
-
--
-
-
--
-
-**source_type:** `typing.Optional[str]`
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-## Introspect
-client.introspect.get_user_resources(...)
-
--
-
-#### 🔌 Usage
-
-
--
-
-
--
-
-```python
-from vital import Vital
-
-client = Vital(
- api_key="YOUR_API_KEY",
-)
-client.introspect.get_user_resources()
-
-```
-
-
-
-
-
-#### ⚙️ Parameters
-
-
--
-
-
--
-
-**user_id:** `typing.Optional[str]`
-
-
-
-
-
--
-
-**provider:** `typing.Optional[Providers]`
-
-
-
-
-
--
-
-**user_limit:** `typing.Optional[int]`
-
-
-
-
-
--
-
-**cursor:** `typing.Optional[str]`
-
-
-
-
-
--
-
-**next_cursor:** `typing.Optional[str]` — The cursor for fetching the next page, or `null` to fetch the first page.
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.introspect.get_user_historical_pulls(...)
-
--
-
-#### 🔌 Usage
-
-
--
-
-
--
-
-```python
-from vital import Vital
-
-client = Vital(
- api_key="YOUR_API_KEY",
-)
-client.introspect.get_user_historical_pulls()
-
-```
-
-
-
-
-
-#### ⚙️ Parameters
-
-
--
-
-
--
-
-**user_id:** `typing.Optional[str]`
-
-
-
-
-
--
-
-**provider:** `typing.Optional[Providers]`
-
-
-
-
-
--
-
-**user_limit:** `typing.Optional[int]`
-
-
-
-
-
--
-
-**cursor:** `typing.Optional[str]`
-
-
-
-
-
--
-
-**next_cursor:** `typing.Optional[str]` — The cursor for fetching the next page, or `null` to fetch the first page.
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-## LabTests
-client.lab_tests.get()
-
--
-
-#### 📝 Description
-
-
--
-
-
--
-
-GET all the lab tests the team has access to.
-
-
-
-
-
-#### 🔌 Usage
-
-
--
-
-
--
-
-```python
-from vital import Vital
-
-client = Vital(
- api_key="YOUR_API_KEY",
-)
-client.lab_tests.get()
-
-```
-
-
-
-
-
-#### ⚙️ Parameters
-
-
--
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.lab_tests.create(...)
-
--
-
-#### 🔌 Usage
-
-
--
-
-
--
-
-```python
-from vital import LabTestCollectionMethod, Vital
-
-client = Vital(
- api_key="YOUR_API_KEY",
-)
-client.lab_tests.create(
- name="name",
- method=LabTestCollectionMethod.TESTKIT,
- description="description",
-)
-
-```
-
-
-
-
-
-#### ⚙️ Parameters
-
-
--
-
-
--
-
-**name:** `str`
-
-
-
-
-
--
-
-**method:** `LabTestCollectionMethod`
-
-
-
-
-
--
-
-**description:** `str`
-
-
-
-
-
--
-
-**marker_ids:** `typing.Optional[typing.Sequence[int]]`
-
-
-
-
-
--
-
-**provider_ids:** `typing.Optional[typing.Sequence[str]]`
-
-
-
-
-
--
-
-**fasting:** `typing.Optional[bool]`
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.lab_tests.get_markers(...)
-
--
-
-#### 📝 Description
-
-
--
-
-
--
-
-GET all the markers for the given lab.
-
-
-
-
-
-#### 🔌 Usage
-
-
--
-
-
--
-
-```python
-from vital import Vital
-
-client = Vital(
- api_key="YOUR_API_KEY",
-)
-client.lab_tests.get_markers()
-
-```
-
-
-
-
-
-#### ⚙️ Parameters
-
-
--
-
-
--
-
-**lab_id:** `typing.Optional[typing.Union[int, typing.Sequence[int]]]` — The identifier Vital assigned to a lab partner.
-
-
-
-
-
--
-
-**name:** `typing.Optional[str]` — The name or test code of an individual biomarker or a panel.
-
-
-
-
-
--
-
-**a_la_carte_enabled:** `typing.Optional[bool]`
-
-
-
-
-
--
-
-**page:** `typing.Optional[int]`
-
-
-
-
-
--
-
-**size:** `typing.Optional[int]`
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.lab_tests.get_markers_for_order_set(...)
-
--
-
-#### 🔌 Usage
-
-
--
-
-
--
-
-```python
-from vital import OrderSetRequest, Vital
-
-client = Vital(
- api_key="YOUR_API_KEY",
-)
-client.lab_tests.get_markers_for_order_set(
- request=OrderSetRequest(),
-)
-
-```
-
-
-
-
-
-#### ⚙️ Parameters
-
-
--
-
-
--
-
-**request:** `OrderSetRequest`
-
-
-
-
-
--
-
-**page:** `typing.Optional[int]`
-
-
-
-
-
--
-
-**size:** `typing.Optional[int]`
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.lab_tests.get_markers_for_lab_test(...)
-
--
-
-#### 🔌 Usage
-
-
--
-
-
--
-
-```python
-from vital import Vital
-
-client = Vital(
- api_key="YOUR_API_KEY",
-)
-client.lab_tests.get_markers_for_lab_test(
- lab_test_id="lab_test_id",
-)
-
-```
-
-
-
-
-
-#### ⚙️ Parameters
-
-
--
-
-
--
-
-**lab_test_id:** `str`
-
-
-
-
-
--
-
-**page:** `typing.Optional[int]`
-
-
-
-
-
--
-
-**size:** `typing.Optional[int]`
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.lab_tests.get_markers_by_lab_and_provider_id(...)
-
--
-
-#### 📝 Description
-
-
--
-
-
--
-
-GET a specific marker for the given lab and provider_id
-
-
-
-
-
-#### 🔌 Usage
-
-
--
-
-
--
-
-```python
-from vital import Vital
-
-client = Vital(
- api_key="YOUR_API_KEY",
-)
-client.lab_tests.get_markers_by_lab_and_provider_id(
- provider_id="provider_id",
- lab_id=1,
-)
-
-```
-
-
-
-
-
-#### ⚙️ Parameters
-
-
--
-
-
--
-
-**provider_id:** `str`
-
-
-
-
-
--
-
-**lab_id:** `int`
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.lab_tests.get_labs()
-
--
-
-#### 📝 Description
-
-
--
-
-
--
-
-GET all the labs.
-
-
-
-
-
-#### 🔌 Usage
-
-
--
-
-
--
-
-```python
-from vital import Vital
-
-client = Vital(
- api_key="YOUR_API_KEY",
-)
-client.lab_tests.get_labs()
-
-```
-
-
-
-
-
-#### ⚙️ Parameters
-
-
--
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.lab_tests.get_by_id(...)
-
--
-
-#### 📝 Description
-
-
--
-
-
--
-
-GET all the lab tests the team has access to.
-
-
-
-
-
-#### 🔌 Usage
-
-
--
-
-
--
-
-```python
-from vital import Vital
-
-client = Vital(
- api_key="YOUR_API_KEY",
-)
-client.lab_tests.get_by_id(
- lab_test_id="lab_test_id",
-)
-
-```
-
-
-
-
-
-#### ⚙️ Parameters
-
-
--
-
-
--
-
-**lab_test_id:** `str`
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.lab_tests.get_phlebotomy_appointment_availability(...)
-
--
-
-#### 📝 Description
-
-
--
-
-
--
-
-Return the available time slots to book an appointment with a phlebotomist
-for the given address and order.
-
-
-
-
-
-#### 🔌 Usage
-
-
--
-
-
--
-
-```python
-from vital import UsAddress, Vital
-
-client = Vital(
- api_key="YOUR_API_KEY",
-)
-client.lab_tests.get_phlebotomy_appointment_availability(
- request=UsAddress(
- first_line="first_line",
- city="city",
- state="state",
- zip_code="zip_code",
- ),
-)
-
-```
-
-
-
-
-
-#### ⚙️ Parameters
-
-
--
-
-
--
-
-**request:** `UsAddress`
-
-
-
-
-
--
-
-**start_date:** `typing.Optional[str]` — Start date for appointment availability
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.lab_tests.book_phlebotomy_appointment(...)
-
--
-
-#### 📝 Description
-
-
--
-
-
--
-
-Book an at-home phlebotomy appointment.
-
-
-
-
-
-#### 🔌 Usage
-
-
--
-
-
--
-
-```python
-from vital import AppointmentBookingRequest, Vital
-
-client = Vital(
- api_key="YOUR_API_KEY",
-)
-client.lab_tests.book_phlebotomy_appointment(
- order_id="order_id",
- request=AppointmentBookingRequest(
- booking_key="booking_key",
- ),
-)
-
-```
-
-
-
-
-
-#### ⚙️ Parameters
-
-
--
-
-
--
-
-**order_id:** `str` — Your Order ID.
-
-
-
-
-
--
-
-**request:** `AppointmentBookingRequest`
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.lab_tests.request_phlebotomy_appointment(...)
-
--
-
-#### 📝 Description
-
-
--
-
-
--
-
-Request an at-home phlebotomy appointment.
-
-
-
-
-
-#### 🔌 Usage
-
-
--
-
-
--
-
-```python
-from vital import AppointmentProvider, UsAddress, Vital
-
-client = Vital(
- api_key="YOUR_API_KEY",
-)
-client.lab_tests.request_phlebotomy_appointment(
- order_id="order_id",
- address=UsAddress(
- first_line="first_line",
- city="city",
- state="state",
- zip_code="zip_code",
- ),
- provider=AppointmentProvider.GETLABS,
-)
-
-```
-
-
-
-
-
-#### ⚙️ Parameters
-
-
--
-
-
--
-
-**order_id:** `str` — Your Order ID.
-
-
-
-
-
--
-
-**address:** `UsAddress` — At-home phlebotomy appointment address.
-
-
-
-
-
--
-
-**provider:** `AppointmentProvider`
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.lab_tests.reschedule_phlebotomy_appointment(...)
-
--
-
-#### 📝 Description
-
-
--
-
-
--
-
-Reschedule a previously booked at-home phlebotomy appointment.
-
-
-
-
-
-#### 🔌 Usage
-
-
--
-
-
--
-
-```python
-from vital import AppointmentRescheduleRequest, Vital
-
-client = Vital(
- api_key="YOUR_API_KEY",
-)
-client.lab_tests.reschedule_phlebotomy_appointment(
- order_id="order_id",
- request=AppointmentRescheduleRequest(
- booking_key="booking_key",
- ),
-)
-
-```
-
-
-
-
-
-#### ⚙️ Parameters
-
-
--
-
-
--
-
-**order_id:** `str` — Your Order ID.
-
-
-
-
-
--
-
-**request:** `AppointmentRescheduleRequest`
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.lab_tests.cancel_phlebotomy_appointment(...)
-
--
-
-#### 📝 Description
-
-
--
-
-
--
-
-Cancel a previously booked at-home phlebotomy appointment.
-
-
-
-
-
-#### 🔌 Usage
-
-
--
-
-
--
-
-```python
-from vital import Vital
-
-client = Vital(
- api_key="YOUR_API_KEY",
-)
-client.lab_tests.cancel_phlebotomy_appointment(
- order_id="order_id",
- cancellation_reason_id="cancellation_reason_id",
-)
-
-```
-
-
-
-
-
-#### ⚙️ Parameters
-
-
--
-
-
--
-
-**order_id:** `str` — Your Order ID.
-
-
-
-
-
--
-
-**cancellation_reason_id:** `str`
-
-
-
-
-
--
-
-**notes:** `typing.Optional[str]`
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.lab_tests.get_phlebotomy_appointment_cancellation_reason()
-
--
-
-#### 📝 Description
-
-
--
-
-
--
-
-Get the list of reasons for cancelling an at-home phlebotomy appointment.
-
-
-
-
-
-#### 🔌 Usage
-
-
--
-
-
--
-
-```python
-from vital import Vital
-
-client = Vital(
- api_key="YOUR_API_KEY",
-)
-client.lab_tests.get_phlebotomy_appointment_cancellation_reason()
-
-```
-
-
-
-
-
-#### ⚙️ Parameters
-
-
--
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.lab_tests.get_phlebotomy_appointment(...)
-
--
-
-#### 📝 Description
-
-
--
-
-
--
-
-Get the appointment associated with an order.
-
-
-
-
-
-#### 🔌 Usage
-
-
--
-
-
--
-
-```python
-from vital import Vital
-
-client = Vital(
- api_key="YOUR_API_KEY",
-)
-client.lab_tests.get_phlebotomy_appointment(
- order_id="order_id",
-)
-
-```
-
-
-
-
-
-#### ⚙️ Parameters
-
-
--
-
-
--
-
-**order_id:** `str` — Your Order ID.
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.lab_tests.get_area_info(...)
-
--
-
-#### 📝 Description
-
-
--
-
-
--
-
-GET information about an area with respect to lab-testing.
-
-Information returned:
-
-- Whether a given zip code is served by our Phlebotomy network.
-- List of Lab locations in the area.
-
-
-
-
-
-#### 🔌 Usage
-
-
--
-
-
--
-
-```python
-from vital import Vital
-
-client = Vital(
- api_key="YOUR_API_KEY",
-)
-client.lab_tests.get_area_info(
- zip_code="zip_code",
-)
-
-```
-
-
-
-
-
-#### ⚙️ Parameters
-
-
--
-
-
--
-
-**zip_code:** `str` — Zip code of the area to check
-
-
-
-
-
--
-
-**radius:** `typing.Optional[AllowedRadius]` — Radius in which to search in miles
-
-
-
-
-
--
-
-**lab:** `typing.Optional[ClientFacingLabs]` — Lab to check for PSCs
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.lab_tests.get_psc_info(...)
-
--
-
-#### 🔌 Usage
-
-
--
-
-
--
-
-```python
-from vital import Vital
-
-client = Vital(
- api_key="YOUR_API_KEY",
-)
-client.lab_tests.get_psc_info(
- zip_code="zip_code",
- lab_id=1,
-)
-
-```
-
-
-
-
-
-#### ⚙️ Parameters
-
-
--
-
-
--
-
-**zip_code:** `str` — Zip code of the area to check
-
-
-
-
-
--
-
-**lab_id:** `int` — Lab ID to check for PSCs
-
-
-
-
-
--
-
-**radius:** `typing.Optional[AllowedRadius]` — Radius in which to search. (meters)
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.lab_tests.get_order_psc_info(...)
-
--
-
-#### 🔌 Usage
-
-
--
-
-
--
-
-```python
-from vital import Vital
-
-client = Vital(
- api_key="YOUR_API_KEY",
-)
-client.lab_tests.get_order_psc_info(
- order_id="order_id",
-)
-
-```
-
-
-
-
-
-#### ⚙️ Parameters
-
-
--
-
-
--
-
-**order_id:** `str` — Your Order ID.
-
-
-
-
-
--
-
-**radius:** `typing.Optional[AllowedRadius]` — Radius in which to search in miles
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.lab_tests.get_result_pdf(...)
-
--
-
-#### 📝 Description
-
-
--
-
-
--
-
-This endpoint returns the lab results for the order.
-
-
-
-
-
-#### 🔌 Usage
-
-
--
-
-
--
-
-```python
-from vital import Vital
-
-client = Vital(
- api_key="YOUR_API_KEY",
-)
-client.lab_tests.get_result_pdf(
- order_id="string",
-)
-
-```
-
-
-
-
-
-#### ⚙️ Parameters
-
-
--
-
-
--
-
-**order_id:** `str`
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.lab_tests.get_result_metadata(...)
-
--
-
-#### 📝 Description
-
-
--
-
-
--
-
-Return metadata related to order results, such as lab metadata,
-provider and sample dates.
-
-
-
-
-
-#### 🔌 Usage
-
-
--
-
-
--
-
-```python
-from vital import Vital
-
-client = Vital(
- api_key="YOUR_API_KEY",
-)
-client.lab_tests.get_result_metadata(
- order_id="order_id",
-)
-
-```
-
-
-
-
-
-#### ⚙️ Parameters
-
-
--
-
-
--
-
-**order_id:** `str`
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.lab_tests.get_result_raw(...)
-
--
-
-#### 📝 Description
-
-
--
-
-
--
-
-Return both metadata and raw json test data
-
-
-
-
-
-#### 🔌 Usage
-
-
--
-
-
--
-
-```python
-from vital import Vital
-
-client = Vital(
- api_key="YOUR_API_KEY",
-)
-client.lab_tests.get_result_raw(
- order_id="order_id",
-)
-
-```
-
-
-
-
-
-#### ⚙️ Parameters
-
-
--
-
-
--
-
-**order_id:** `str`
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.lab_tests.get_labels_pdf(...)
-
--
-
-#### 📝 Description
-
-
--
-
-
--
-
-This endpoint returns the printed labels for the order.
-
-
-
-
-
-#### 🔌 Usage
-
-
--
-
-
--
-
-```python
-import datetime
-
-from vital import Vital
-
-client = Vital(
- api_key="YOUR_API_KEY",
-)
-client.lab_tests.get_labels_pdf(
- order_id="string",
- number_of_labels=1,
- collection_date=datetime.datetime.fromisoformat(
- "2024-01-15 09:30:00+00:00",
- ),
-)
-
-```
-
-
-
-
-
-#### ⚙️ Parameters
-
-
--
-
-
--
-
-**order_id:** `str`
-
-
-
-
-
--
-
-**collection_date:** `dt.datetime` — Collection date
-
-
-
-
-
--
-
-**number_of_labels:** `typing.Optional[int]` — Number of labels to generate
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.lab_tests.get_psc_appointment_availability(...)
-
--
-
-#### 🔌 Usage
-
-
--
-
-
--
-
-```python
-from vital import Vital
-
-client = Vital(
- api_key="YOUR_API_KEY",
-)
-client.lab_tests.get_psc_appointment_availability()
-
-```
-
-
-
-
-
-#### ⚙️ Parameters
-
-
--
-
-
--
-
-**start_date:** `typing.Optional[str]` — Start date for appointment availability
-
-
-
-
-
--
-
-**site_codes:** `typing.Optional[typing.Union[str, typing.Sequence[str]]]` — List of site codes to fetch availability for
-
-
-
-
-
--
-
-**zip_code:** `typing.Optional[str]` — Zip code of the area to check
-
-
-
-
-
--
-
-**radius:** `typing.Optional[AllowedRadius]` — Radius in which to search. (meters)
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.lab_tests.book_psc_appointment(...)
-
--
-
-#### 🔌 Usage
-
-
--
-
-
--
-
-```python
-from vital import AppointmentBookingRequest, Vital
-
-client = Vital(
- api_key="YOUR_API_KEY",
-)
-client.lab_tests.book_psc_appointment(
- order_id="order_id",
- request=AppointmentBookingRequest(
- booking_key="booking_key",
- ),
-)
-
-```
-
-
-
-
-
-#### ⚙️ Parameters
-
-
--
-
-
--
-
-**order_id:** `str` — Your Order ID.
-
-
-
-
-
--
-
-**request:** `AppointmentBookingRequest`
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.lab_tests.reschedule_psc_appointment(...)
-
--
-
-#### 🔌 Usage
-
-
--
-
-
--
-
-```python
-from vital import AppointmentRescheduleRequest, Vital
-
-client = Vital(
- api_key="YOUR_API_KEY",
-)
-client.lab_tests.reschedule_psc_appointment(
- order_id="order_id",
- request=AppointmentRescheduleRequest(
- booking_key="booking_key",
- ),
-)
-
-```
-
-
-
-
-
-#### ⚙️ Parameters
-
-
--
-
-
--
-
-**order_id:** `str` — Your Order ID.
-
-
-
-
-
--
-
-**request:** `AppointmentRescheduleRequest`
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.lab_tests.cancel_psc_appointment(...)
-
--
-
-#### 🔌 Usage
-
-
--
-
-
--
-
-```python
-from vital import Vital
-
-client = Vital(
- api_key="YOUR_API_KEY",
-)
-client.lab_tests.cancel_psc_appointment(
- order_id="order_id",
- cancellation_reason_id="cancellationReasonId",
-)
-
-```
-
-
-
-
-
-#### ⚙️ Parameters
-
-
--
-
-
--
-
-**order_id:** `str` — Your Order ID.
-
-
-
-
-
--
-
-**cancellation_reason_id:** `str`
-
-
-
-
-
--
-
-**note:** `typing.Optional[str]`
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.lab_tests.get_psc_appointment_cancellation_reason()
-
--
-
-#### 🔌 Usage
-
-
--
-
-
--
-
-```python
-from vital import Vital
-
-client = Vital(
- api_key="YOUR_API_KEY",
-)
-client.lab_tests.get_psc_appointment_cancellation_reason()
-
-```
-
-
-
-
-
-#### ⚙️ Parameters
-
-
--
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.lab_tests.get_psc_appointment(...)
-
--
-
-#### 📝 Description
-
-
--
-
-
--
-
-Get the appointment associated with an order.
-
-
-
-
-
-#### 🔌 Usage
-
-
--
-
-
--
-
-```python
-from vital import Vital
-
-client = Vital(
- api_key="YOUR_API_KEY",
-)
-client.lab_tests.get_psc_appointment(
- order_id="order_id",
-)
-
-```
-
-
-
-
-
-#### ⚙️ Parameters
-
-
--
-
-
--
-
-**order_id:** `str` — Your Order ID.
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.lab_tests.get_order_requistion_pdf(...)
-
--
-
-#### 📝 Description
-
-
--
-
-
--
-
-GET requisition pdf for an order
-
-
-
-
-
-#### 🔌 Usage
-
-
--
-
-
--
-
-```python
-from vital import Vital
-
-client = Vital(
- api_key="YOUR_API_KEY",
-)
-client.lab_tests.get_order_requistion_pdf(
- order_id="string",
-)
-
-```
-
-
-
-
-
-#### ⚙️ Parameters
-
-
--
-
-
--
-
-**order_id:** `str` — Your Order ID.
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.lab_tests.get_order(...)
-
--
-
-#### 📝 Description
-
-
--
-
-
--
-
-GET individual order by ID.
-
-
-
-
-
-#### 🔌 Usage
-
-
--
-
-
--
-
-```python
-from vital import Vital
-
-client = Vital(
- api_key="YOUR_API_KEY",
-)
-client.lab_tests.get_order(
- order_id="order_id",
-)
-
-```
-
-
-
-
-
-#### ⚙️ Parameters
-
-
--
-
-
--
-
-**order_id:** `str` — Your Order ID.
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.lab_tests.create_order(...)
-
--
-
-#### 📝 Description
-
-
--
-
-
--
-
-POST create new order
-
-
-
-
-
-#### 🔌 Usage
-
-
--
-
-
--
-
-```python
-import datetime
-
-from vital import (
- Gender,
- PatientAddressCompatible,
- PatientDetailsWithValidation,
- Vital,
-)
-
-client = Vital(
- api_key="YOUR_API_KEY",
-)
-client.lab_tests.create_order(
- user_id="user_id",
- patient_details=PatientDetailsWithValidation(
- first_name="first_name",
- last_name="last_name",
- dob=datetime.datetime.fromisoformat(
- "2024-01-15 09:30:00+00:00",
- ),
- gender=Gender.FEMALE,
- phone_number="phone_number",
- email="email",
- ),
- patient_address=PatientAddressCompatible(
- first_line="first_line",
- city="city",
- state="state",
- zip="zip",
- country="country",
- ),
-)
-
-```
-
-
-
-
-
-#### ⚙️ Parameters
-
-
--
-
-
--
-
-**user_id:** `str`
-
-
-
-
-
--
-
-**patient_details:** `PatientDetailsWithValidation`
-
-
-
-
-
--
-
-**patient_address:** `PatientAddressCompatible`
-
-
-
-
-
--
-
-**lab_test_id:** `typing.Optional[str]`
-
-
-
-
-
--
-
-**order_set:** `typing.Optional[OrderSetRequest]`
-
-
-
-
-
--
-
-**collection_method:** `typing.Optional[LabTestCollectionMethod]`
-
-
-
-
-
--
-
-**physician:** `typing.Optional[PhysicianCreateRequest]`
-
-
-
-
-
--
-
-**health_insurance:** `typing.Optional[HealthInsuranceCreateRequest]`
-
-
-
-
-
--
-
-**priority:** `typing.Optional[bool]` — Defines whether order is priority or not. For some labs, this refers to a STAT order.
-
-
-
-
-
--
-
-**billing_type:** `typing.Optional[Billing]`
-
-
-
-
-
--
-
-**icd_codes:** `typing.Optional[typing.Sequence[str]]`
-
-
-
-
-
--
-
-**consents:** `typing.Optional[typing.Sequence[Consent]]`
-
-
-
-
-
--
-
-**activate_by:** `typing.Optional[str]` — Schedule an Order to be processed in a future date.
-
-
-
-
-
--
-
-**aoe_answers:** `typing.Optional[typing.Sequence[AoEAnswer]]`
-
-
-
-
-
--
-
-**passthrough:** `typing.Optional[str]`
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.lab_tests.cancel_order(...)
-
--
-
-#### 📝 Description
-
-
--
-
-
--
-
-POST cancel order
-
-
-
-
-
-#### 🔌 Usage
-
-
--
-
-
--
-
-```python
-from vital import Vital
-
-client = Vital(
- api_key="YOUR_API_KEY",
-)
-client.lab_tests.cancel_order(
- order_id="order_id",
-)
-
-```
-
-
-
-
-
-#### ⚙️ Parameters
-
-
--
-
-
--
-
-**order_id:** `str` — Your Order ID.
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.lab_tests.simulate_order_process(...)
-
--
-
-#### 📝 Description
-
-
--
-
-
--
-
-Get available test kits.
-
-
-
-
-
-#### 🔌 Usage
-
-
--
-
-
--
-
-```python
-from vital import Vital
-
-client = Vital(
- api_key="YOUR_API_KEY",
-)
-client.lab_tests.simulate_order_process(
- order_id="order_id",
-)
-
-```
-
-
-
-
-
-#### ⚙️ Parameters
-
-
--
-
-
--
-
-**order_id:** `str`
-
-
-
-
-
--
-
-**final_status:** `typing.Optional[OrderStatus]`
-
-
-
-
-
--
-
-**delay:** `typing.Optional[int]`
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.lab_tests.get_orders(...)
-
--
-
-#### 📝 Description
-
-
--
-
-
--
-
-GET many orders with filters.
-
-
-
-
-
-#### 🔌 Usage
-
-
--
-
-
--
-
-```python
-from vital import Vital
-
-client = Vital(
- api_key="YOUR_API_KEY",
-)
-client.lab_tests.get_orders()
-
-```
-
-
-
-
-
-#### ⚙️ Parameters
-
-
--
-
-
--
-
-**search_input:** `typing.Optional[str]` — Search by order id, user id, patient name, shipping dob, or shipping recipient name.
-
-
-
-
-
--
-
-**start_date:** `typing.Optional[dt.datetime]` — Date from in YYYY-MM-DD or ISO formatted date time. If a date is provided without a time, the time will be set to 00:00:00
-
-
-
-
-
--
-
-**end_date:** `typing.Optional[dt.datetime]` — Date to YYYY-MM-DD or ISO formatted date time. If a date is provided without a time, the time will be set to 23:59:59
-
-
-
-
-
--
-
-**updated_start_date:** `typing.Optional[dt.datetime]` — Date from in YYYY-MM-DD or ISO formatted date time. If a date is provided without a time, the time will be set to 00:00:00
-
-
-
-
-
--
-
-**updated_end_date:** `typing.Optional[dt.datetime]` — Date to YYYY-MM-DD or ISO formatted date time. If a date is provided without a time, the time will be set to 00:00:00
-
-
-
-
-
--
-
-**order_key:** `typing.Optional[LabTestsGetOrdersRequestOrderKey]`
-
-
-
-
-
--
-
-**order_direction:** `typing.Optional[LabTestsGetOrdersRequestOrderDirection]`
-
-
-
-
-
--
-
-**user_id:** `typing.Optional[str]` — Filter by user ID.
-
-
-
-
-
--
-
-**patient_name:** `typing.Optional[str]` — Filter by patient name.
-
-
-
-
-
--
-
-**shipping_recipient_name:** `typing.Optional[str]` — Filter by shipping recipient name.
-
-
-
-
-
--
-
-**order_ids:** `typing.Optional[typing.Union[str, typing.Sequence[str]]]` — Filter by order ids.
-
-
-
-
-
--
-
-**page:** `typing.Optional[int]`
-
-
-
-
-
--
-
-**size:** `typing.Optional[int]`
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-## Testkit
-client.testkit.register(...)
-
--
-
-#### 🔌 Usage
-
-
--
-
-
--
-
-```python
-import datetime
-
-from vital import Gender, PatientAddressCompatible, PatientDetails, Vital
-
-client = Vital(
- api_key="YOUR_API_KEY",
-)
-client.testkit.register(
- user_id="user_id",
- sample_id="sample_id",
- patient_details=PatientDetails(
- first_name="first_name",
- last_name="last_name",
- dob=datetime.datetime.fromisoformat(
- "2024-01-15 09:30:00+00:00",
- ),
- gender=Gender.FEMALE,
- phone_number="phone_number",
- email="email",
- ),
- patient_address=PatientAddressCompatible(
- first_line="first_line",
- city="city",
- state="state",
- zip="zip",
- country="country",
- ),
-)
-
-```
-
-
-
-
-
-#### ⚙️ Parameters
-
-
--
-
-
--
-
-**user_id:** `str`
-
-
-
-
-
--
-
-**sample_id:** `str`
-
-
-
-
-
--
-
-**patient_details:** `PatientDetails`
-
-
-
-
-
--
-
-**patient_address:** `PatientAddressCompatible`
-
-
-
-
-
--
-
-**physician:** `typing.Optional[PhysicianCreateRequestBase]`
-
-
-
-
-
--
-
-**health_insurance:** `typing.Optional[HealthInsuranceCreateRequest]`
-
-
-
-
-
--
-
-**consents:** `typing.Optional[typing.Sequence[Consent]]`
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.testkit.create_order(...)
-
--
-
-#### 📝 Description
-
-
--
-
-
--
-
-Creates an order for an unregistered testkit
-
-
-
-
-
-#### 🔌 Usage
-
-
--
-
-
--
-
-```python
-from vital import ShippingAddress, Vital
-
-client = Vital(
- api_key="YOUR_API_KEY",
-)
-client.testkit.create_order(
- user_id="user_id",
- lab_test_id="lab_test_id",
- shipping_details=ShippingAddress(
- receiver_name="receiver_name",
- first_line="first_line",
- city="city",
- state="state",
- zip="zip",
- country="country",
- phone_number="phone_number",
- ),
-)
-
-```
-
-
-
-
-
-#### ⚙️ Parameters
-
-
--
-
-
--
-
-**user_id:** `str`
-
-
-
-
-
--
-
-**lab_test_id:** `str`
-
-
-
-
-
--
-
-**shipping_details:** `ShippingAddress`
-
-
-
-
-
--
-
-**passthrough:** `typing.Optional[str]`
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-## Insurance
-client.insurance.search_payor_info(...)
-
--
-
-#### 🔌 Usage
-
-
--
-
-
--
-
-```python
-from vital import Vital
-
-client = Vital(
- api_key="YOUR_API_KEY",
-)
-client.insurance.search_payor_info(
- insurance_name="insurance_name",
-)
-
-```
-
-
-
-
-
-#### ⚙️ Parameters
-
-
--
-
-
--
-
-**insurance_name:** `str`
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.insurance.search_diagnosis(...)
-
--
-
-#### 🔌 Usage
-
-
--
-
-
--
-
-```python
-from vital import Vital
-
-client = Vital(
- api_key="YOUR_API_KEY",
-)
-client.insurance.search_diagnosis(
- diagnosis_query="diagnosis_query",
-)
-
-```
-
-
-
-
-
-#### ⚙️ Parameters
-
-
--
-
-
--
-
-**diagnosis_query:** `str`
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-## Aggregate
-client.aggregate.query_one(...)
-
--
-
-#### 🔌 Usage
-
-
--
-
-
--
-
-```python
-from vital import (
- AggregateExpr,
- AggregateExprFunc,
- Period,
- PeriodUnit,
- Query,
- RelativeTimeframe,
- SleepColumnExpr,
- SleepColumnExprSleep,
- Vital,
-)
-
-client = Vital(
- api_key="YOUR_API_KEY",
-)
-client.aggregate.query_one(
- user_id="user_id",
- timeframe=RelativeTimeframe(
- anchor="anchor",
- past=Period(
- unit=PeriodUnit.MINUTE,
- ),
- ),
- queries=[
- Query(
- select=[
- AggregateExpr(
- arg=SleepColumnExpr(
- sleep=SleepColumnExprSleep.SESSION_START,
- ),
- func=AggregateExprFunc.MEAN,
- )
- ],
- )
- ],
-)
-
-```
-
-
-
-
-
-#### ⚙️ Parameters
-
-
--
-
-
--
-
-**user_id:** `str`
-
-
-
-
-
--
-
-**timeframe:** `QueryBatchTimeframe`
-
-
-
-
-
--
-
-**queries:** `typing.Sequence[Query]`
-
-
-
-
-
--
-
-**config:** `typing.Optional[QueryConfig]`
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
diff --git a/src/vital/__init__.py b/src/vital/__init__.py
index aa01299..7228590 100644
--- a/src/vital/__init__.py
+++ b/src/vital/__init__.py
@@ -64,6 +64,12 @@
ClientFacingCholesterolTimeseries,
ClientFacingDiagnosisInformation,
ClientFacingDistanceTimeseries,
+ ClientFacingElectrocardiogram,
+ ClientFacingElectrocardiogramClassification,
+ ClientFacingElectrocardiogramInconclusiveCause,
+ ClientFacingElectrocardiogramResponse,
+ ClientFacingElectrocardiogramSourceProvider,
+ ClientFacingElectrocardiogramSourceType,
ClientFacingElectrocardiogramVoltageTimeseries,
ClientFacingFloorsClimbedTimeseries,
ClientFacingFood,
@@ -95,6 +101,9 @@
ClientFacingMarker,
ClientFacingMarkerComplete,
ClientFacingMealResponse,
+ ClientFacingMenstrualCycle,
+ ClientFacingMenstrualCycleSourceProvider,
+ ClientFacingMenstrualCycleSourceType,
ClientFacingMindfulnessMinutesTimeseries,
ClientFacingNoteSample,
ClientFacingNoteSampleTagsItem,
@@ -272,7 +281,6 @@
ManualProviders,
MarkerType,
MealInDbBaseClientFacingSource,
- MenstrualCycle,
MenstrualCycleResponse,
MenstrualFlowEntry,
MenstrualFlowEntryFlow,
@@ -382,6 +390,7 @@
aggregate,
body,
devices,
+ electrocardiogram,
insurance,
introspect,
lab_tests,
@@ -470,6 +479,12 @@
"ClientFacingCholesterolTimeseries",
"ClientFacingDiagnosisInformation",
"ClientFacingDistanceTimeseries",
+ "ClientFacingElectrocardiogram",
+ "ClientFacingElectrocardiogramClassification",
+ "ClientFacingElectrocardiogramInconclusiveCause",
+ "ClientFacingElectrocardiogramResponse",
+ "ClientFacingElectrocardiogramSourceProvider",
+ "ClientFacingElectrocardiogramSourceType",
"ClientFacingElectrocardiogramVoltageTimeseries",
"ClientFacingFloorsClimbedTimeseries",
"ClientFacingFood",
@@ -501,6 +516,9 @@
"ClientFacingMarker",
"ClientFacingMarkerComplete",
"ClientFacingMealResponse",
+ "ClientFacingMenstrualCycle",
+ "ClientFacingMenstrualCycleSourceProvider",
+ "ClientFacingMenstrualCycleSourceType",
"ClientFacingMindfulnessMinutesTimeseries",
"ClientFacingNoteSample",
"ClientFacingNoteSampleTagsItem",
@@ -680,7 +698,6 @@
"ManualProviders",
"MarkerType",
"MealInDbBaseClientFacingSource",
- "MenstrualCycle",
"MenstrualCycleResponse",
"MenstrualFlowEntry",
"MenstrualFlowEntryFlow",
@@ -792,6 +809,7 @@
"aggregate",
"body",
"devices",
+ "electrocardiogram",
"insurance",
"introspect",
"lab_tests",
diff --git a/src/vital/client.py b/src/vital/client.py
index 0e87a14..113637d 100644
--- a/src/vital/client.py
+++ b/src/vital/client.py
@@ -5,6 +5,7 @@
import httpx
from .core.client_wrapper import SyncClientWrapper
from .link.client import LinkClient
+from .electrocardiogram.client import ElectrocardiogramClient
from .sleep_cycle.client import SleepCycleClient
from .profile.client import ProfileClient
from .devices.client import DevicesClient
@@ -25,6 +26,7 @@
from .aggregate.client import AggregateClient
from .core.client_wrapper import AsyncClientWrapper
from .link.client import AsyncLinkClient
+from .electrocardiogram.client import AsyncElectrocardiogramClient
from .sleep_cycle.client import AsyncSleepCycleClient
from .profile.client import AsyncProfileClient
from .devices.client import AsyncDevicesClient
@@ -104,6 +106,7 @@ def __init__(
timeout=_defaulted_timeout,
)
self.link = LinkClient(client_wrapper=self._client_wrapper)
+ self.electrocardiogram = ElectrocardiogramClient(client_wrapper=self._client_wrapper)
self.sleep_cycle = SleepCycleClient(client_wrapper=self._client_wrapper)
self.profile = ProfileClient(client_wrapper=self._client_wrapper)
self.devices = DevicesClient(client_wrapper=self._client_wrapper)
@@ -183,6 +186,7 @@ def __init__(
timeout=_defaulted_timeout,
)
self.link = AsyncLinkClient(client_wrapper=self._client_wrapper)
+ self.electrocardiogram = AsyncElectrocardiogramClient(client_wrapper=self._client_wrapper)
self.sleep_cycle = AsyncSleepCycleClient(client_wrapper=self._client_wrapper)
self.profile = AsyncProfileClient(client_wrapper=self._client_wrapper)
self.devices = AsyncDevicesClient(client_wrapper=self._client_wrapper)
diff --git a/src/vital/core/client_wrapper.py b/src/vital/core/client_wrapper.py
index 7cec062..1b27a5a 100644
--- a/src/vital/core/client_wrapper.py
+++ b/src/vital/core/client_wrapper.py
@@ -16,7 +16,7 @@ def get_headers(self) -> typing.Dict[str, str]:
headers: typing.Dict[str, str] = {
"X-Fern-Language": "Python",
"X-Fern-SDK-Name": "vital",
- "X-Fern-SDK-Version": "2.1.146",
+ "X-Fern-SDK-Version": "2.1.147",
}
headers["x-vital-api-key"] = self.api_key
return headers
diff --git a/src/vital/electrocardiogram/__init__.py b/src/vital/electrocardiogram/__init__.py
new file mode 100644
index 0000000..f3ea265
--- /dev/null
+++ b/src/vital/electrocardiogram/__init__.py
@@ -0,0 +1,2 @@
+# This file was auto-generated by Fern from our API Definition.
+
diff --git a/src/vital/electrocardiogram/client.py b/src/vital/electrocardiogram/client.py
new file mode 100644
index 0000000..14c7fcc
--- /dev/null
+++ b/src/vital/electrocardiogram/client.py
@@ -0,0 +1,185 @@
+# This file was auto-generated by Fern from our API Definition.
+
+from ..core.client_wrapper import SyncClientWrapper
+import typing
+from ..core.request_options import RequestOptions
+from ..types.client_facing_electrocardiogram_response import ClientFacingElectrocardiogramResponse
+from ..core.jsonable_encoder import jsonable_encoder
+from ..core.pydantic_utilities import parse_obj_as
+from ..errors.unprocessable_entity_error import UnprocessableEntityError
+from ..types.http_validation_error import HttpValidationError
+from json.decoder import JSONDecodeError
+from ..core.api_error import ApiError
+from ..core.client_wrapper import AsyncClientWrapper
+
+
+class ElectrocardiogramClient:
+ def __init__(self, *, client_wrapper: SyncClientWrapper):
+ self._client_wrapper = client_wrapper
+
+ def get(
+ self,
+ user_id: str,
+ *,
+ start_date: str,
+ end_date: typing.Optional[str] = None,
+ provider: typing.Optional[str] = None,
+ request_options: typing.Optional[RequestOptions] = None,
+ ) -> ClientFacingElectrocardiogramResponse:
+ """
+ Get electrocardiogram summary for user_id
+
+ Parameters
+ ----------
+ user_id : str
+
+ start_date : str
+
+ end_date : typing.Optional[str]
+
+ provider : typing.Optional[str]
+ Provider oura/strava etc
+
+ request_options : typing.Optional[RequestOptions]
+ Request-specific configuration.
+
+ Returns
+ -------
+ ClientFacingElectrocardiogramResponse
+ Successful Response
+
+ Examples
+ --------
+ from vital import Vital
+
+ client = Vital(
+ api_key="YOUR_API_KEY",
+ )
+ client.electrocardiogram.get(
+ user_id="user_id",
+ start_date="start_date",
+ )
+ """
+ _response = self._client_wrapper.httpx_client.request(
+ f"v2/summary/electrocardiogram/{jsonable_encoder(user_id)}",
+ method="GET",
+ params={
+ "start_date": start_date,
+ "end_date": end_date,
+ "provider": provider,
+ },
+ request_options=request_options,
+ )
+ try:
+ if 200 <= _response.status_code < 300:
+ return typing.cast(
+ ClientFacingElectrocardiogramResponse,
+ parse_obj_as(
+ type_=ClientFacingElectrocardiogramResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ if _response.status_code == 422:
+ raise UnprocessableEntityError(
+ typing.cast(
+ HttpValidationError,
+ parse_obj_as(
+ type_=HttpValidationError, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
+ _response_json = _response.json()
+ except JSONDecodeError:
+ raise ApiError(status_code=_response.status_code, body=_response.text)
+ raise ApiError(status_code=_response.status_code, body=_response_json)
+
+
+class AsyncElectrocardiogramClient:
+ def __init__(self, *, client_wrapper: AsyncClientWrapper):
+ self._client_wrapper = client_wrapper
+
+ async def get(
+ self,
+ user_id: str,
+ *,
+ start_date: str,
+ end_date: typing.Optional[str] = None,
+ provider: typing.Optional[str] = None,
+ request_options: typing.Optional[RequestOptions] = None,
+ ) -> ClientFacingElectrocardiogramResponse:
+ """
+ Get electrocardiogram summary for user_id
+
+ Parameters
+ ----------
+ user_id : str
+
+ start_date : str
+
+ end_date : typing.Optional[str]
+
+ provider : typing.Optional[str]
+ Provider oura/strava etc
+
+ request_options : typing.Optional[RequestOptions]
+ Request-specific configuration.
+
+ Returns
+ -------
+ ClientFacingElectrocardiogramResponse
+ Successful Response
+
+ Examples
+ --------
+ import asyncio
+
+ from vital import AsyncVital
+
+ client = AsyncVital(
+ api_key="YOUR_API_KEY",
+ )
+
+
+ async def main() -> None:
+ await client.electrocardiogram.get(
+ user_id="user_id",
+ start_date="start_date",
+ )
+
+
+ asyncio.run(main())
+ """
+ _response = await self._client_wrapper.httpx_client.request(
+ f"v2/summary/electrocardiogram/{jsonable_encoder(user_id)}",
+ method="GET",
+ params={
+ "start_date": start_date,
+ "end_date": end_date,
+ "provider": provider,
+ },
+ request_options=request_options,
+ )
+ try:
+ if 200 <= _response.status_code < 300:
+ return typing.cast(
+ ClientFacingElectrocardiogramResponse,
+ parse_obj_as(
+ type_=ClientFacingElectrocardiogramResponse, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ if _response.status_code == 422:
+ raise UnprocessableEntityError(
+ typing.cast(
+ HttpValidationError,
+ parse_obj_as(
+ type_=HttpValidationError, # type: ignore
+ object_=_response.json(),
+ ),
+ )
+ )
+ _response_json = _response.json()
+ except JSONDecodeError:
+ raise ApiError(status_code=_response.status_code, body=_response.text)
+ raise ApiError(status_code=_response.status_code, body=_response_json)
diff --git a/src/vital/types/__init__.py b/src/vital/types/__init__.py
index 7c00538..116c07a 100644
--- a/src/vital/types/__init__.py
+++ b/src/vital/types/__init__.py
@@ -65,6 +65,12 @@
from .client_facing_cholesterol_timeseries import ClientFacingCholesterolTimeseries
from .client_facing_diagnosis_information import ClientFacingDiagnosisInformation
from .client_facing_distance_timeseries import ClientFacingDistanceTimeseries
+from .client_facing_electrocardiogram import ClientFacingElectrocardiogram
+from .client_facing_electrocardiogram_classification import ClientFacingElectrocardiogramClassification
+from .client_facing_electrocardiogram_inconclusive_cause import ClientFacingElectrocardiogramInconclusiveCause
+from .client_facing_electrocardiogram_response import ClientFacingElectrocardiogramResponse
+from .client_facing_electrocardiogram_source_provider import ClientFacingElectrocardiogramSourceProvider
+from .client_facing_electrocardiogram_source_type import ClientFacingElectrocardiogramSourceType
from .client_facing_electrocardiogram_voltage_timeseries import ClientFacingElectrocardiogramVoltageTimeseries
from .client_facing_floors_climbed_timeseries import ClientFacingFloorsClimbedTimeseries
from .client_facing_food import ClientFacingFood
@@ -112,6 +118,9 @@
from .client_facing_marker import ClientFacingMarker
from .client_facing_marker_complete import ClientFacingMarkerComplete
from .client_facing_meal_response import ClientFacingMealResponse
+from .client_facing_menstrual_cycle import ClientFacingMenstrualCycle
+from .client_facing_menstrual_cycle_source_provider import ClientFacingMenstrualCycleSourceProvider
+from .client_facing_menstrual_cycle_source_type import ClientFacingMenstrualCycleSourceType
from .client_facing_mindfulness_minutes_timeseries import ClientFacingMindfulnessMinutesTimeseries
from .client_facing_note_sample import ClientFacingNoteSample
from .client_facing_note_sample_tags_item import ClientFacingNoteSampleTagsItem
@@ -305,7 +314,6 @@
from .manual_providers import ManualProviders
from .marker_type import MarkerType
from .meal_in_db_base_client_facing_source import MealInDbBaseClientFacingSource
-from .menstrual_cycle import MenstrualCycle
from .menstrual_cycle_response import MenstrualCycleResponse
from .menstrual_flow_entry import MenstrualFlowEntry
from .menstrual_flow_entry_flow import MenstrualFlowEntryFlow
@@ -477,6 +485,12 @@
"ClientFacingCholesterolTimeseries",
"ClientFacingDiagnosisInformation",
"ClientFacingDistanceTimeseries",
+ "ClientFacingElectrocardiogram",
+ "ClientFacingElectrocardiogramClassification",
+ "ClientFacingElectrocardiogramInconclusiveCause",
+ "ClientFacingElectrocardiogramResponse",
+ "ClientFacingElectrocardiogramSourceProvider",
+ "ClientFacingElectrocardiogramSourceType",
"ClientFacingElectrocardiogramVoltageTimeseries",
"ClientFacingFloorsClimbedTimeseries",
"ClientFacingFood",
@@ -508,6 +522,9 @@
"ClientFacingMarker",
"ClientFacingMarkerComplete",
"ClientFacingMealResponse",
+ "ClientFacingMenstrualCycle",
+ "ClientFacingMenstrualCycleSourceProvider",
+ "ClientFacingMenstrualCycleSourceType",
"ClientFacingMindfulnessMinutesTimeseries",
"ClientFacingNoteSample",
"ClientFacingNoteSampleTagsItem",
@@ -685,7 +702,6 @@
"ManualProviders",
"MarkerType",
"MealInDbBaseClientFacingSource",
- "MenstrualCycle",
"MenstrualCycleResponse",
"MenstrualFlowEntry",
"MenstrualFlowEntryFlow",
diff --git a/src/vital/types/client_facing_electrocardiogram.py b/src/vital/types/client_facing_electrocardiogram.py
new file mode 100644
index 0000000..0ffe55c
--- /dev/null
+++ b/src/vital/types/client_facing_electrocardiogram.py
@@ -0,0 +1,40 @@
+# This file was auto-generated by Fern from our API Definition.
+
+from ..core.pydantic_utilities import UniversalBaseModel
+import datetime as dt
+import typing
+from .client_facing_electrocardiogram_classification import ClientFacingElectrocardiogramClassification
+from .client_facing_electrocardiogram_inconclusive_cause import ClientFacingElectrocardiogramInconclusiveCause
+from .client_facing_electrocardiogram_source_provider import ClientFacingElectrocardiogramSourceProvider
+from .client_facing_electrocardiogram_source_type import ClientFacingElectrocardiogramSourceType
+from .client_facing_source import ClientFacingSource
+from ..core.pydantic_utilities import IS_PYDANTIC_V2
+import pydantic
+
+
+class ClientFacingElectrocardiogram(UniversalBaseModel):
+ id: str
+ session_start: dt.datetime
+ session_end: dt.datetime
+ voltage_sample_count: int
+ heart_rate_mean: typing.Optional[int] = None
+ sampling_frequency_hz: typing.Optional[float] = None
+ classification: typing.Optional[ClientFacingElectrocardiogramClassification] = None
+ inconclusive_cause: typing.Optional[ClientFacingElectrocardiogramInconclusiveCause] = None
+ algorithm_version: typing.Optional[str] = None
+ time_zone: typing.Optional[str] = None
+ source_provider: ClientFacingElectrocardiogramSourceProvider
+ source_type: ClientFacingElectrocardiogramSourceType
+ source_app_id: typing.Optional[str] = None
+ source_device_model: typing.Optional[str] = None
+ user_id: str
+ source: ClientFacingSource
+
+ if IS_PYDANTIC_V2:
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
+ else:
+
+ class Config:
+ frozen = True
+ smart_union = True
+ extra = pydantic.Extra.allow
diff --git a/src/vital/types/client_facing_electrocardiogram_classification.py b/src/vital/types/client_facing_electrocardiogram_classification.py
new file mode 100644
index 0000000..8529ed4
--- /dev/null
+++ b/src/vital/types/client_facing_electrocardiogram_classification.py
@@ -0,0 +1,25 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import enum
+import typing
+
+T_Result = typing.TypeVar("T_Result")
+
+
+class ClientFacingElectrocardiogramClassification(str, enum.Enum):
+ SINUS_RHYTHM = "sinus_rhythm"
+ ATRIAL_FIBRILLATION = "atrial_fibrillation"
+ INCONCLUSIVE = "inconclusive"
+
+ def visit(
+ self,
+ sinus_rhythm: typing.Callable[[], T_Result],
+ atrial_fibrillation: typing.Callable[[], T_Result],
+ inconclusive: typing.Callable[[], T_Result],
+ ) -> T_Result:
+ if self is ClientFacingElectrocardiogramClassification.SINUS_RHYTHM:
+ return sinus_rhythm()
+ if self is ClientFacingElectrocardiogramClassification.ATRIAL_FIBRILLATION:
+ return atrial_fibrillation()
+ if self is ClientFacingElectrocardiogramClassification.INCONCLUSIVE:
+ return inconclusive()
diff --git a/src/vital/types/client_facing_electrocardiogram_inconclusive_cause.py b/src/vital/types/client_facing_electrocardiogram_inconclusive_cause.py
new file mode 100644
index 0000000..caa222c
--- /dev/null
+++ b/src/vital/types/client_facing_electrocardiogram_inconclusive_cause.py
@@ -0,0 +1,25 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import enum
+import typing
+
+T_Result = typing.TypeVar("T_Result")
+
+
+class ClientFacingElectrocardiogramInconclusiveCause(str, enum.Enum):
+ HIGH_HEART_RATE = "high_heart_rate"
+ LOW_HEART_RATE = "low_heart_rate"
+ POOR_READING = "poor_reading"
+
+ def visit(
+ self,
+ high_heart_rate: typing.Callable[[], T_Result],
+ low_heart_rate: typing.Callable[[], T_Result],
+ poor_reading: typing.Callable[[], T_Result],
+ ) -> T_Result:
+ if self is ClientFacingElectrocardiogramInconclusiveCause.HIGH_HEART_RATE:
+ return high_heart_rate()
+ if self is ClientFacingElectrocardiogramInconclusiveCause.LOW_HEART_RATE:
+ return low_heart_rate()
+ if self is ClientFacingElectrocardiogramInconclusiveCause.POOR_READING:
+ return poor_reading()
diff --git a/src/vital/types/client_facing_electrocardiogram_response.py b/src/vital/types/client_facing_electrocardiogram_response.py
new file mode 100644
index 0000000..122865c
--- /dev/null
+++ b/src/vital/types/client_facing_electrocardiogram_response.py
@@ -0,0 +1,20 @@
+# This file was auto-generated by Fern from our API Definition.
+
+from ..core.pydantic_utilities import UniversalBaseModel
+import typing
+from .client_facing_electrocardiogram import ClientFacingElectrocardiogram
+from ..core.pydantic_utilities import IS_PYDANTIC_V2
+import pydantic
+
+
+class ClientFacingElectrocardiogramResponse(UniversalBaseModel):
+ electrocardiogram: typing.List[ClientFacingElectrocardiogram]
+
+ if IS_PYDANTIC_V2:
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
+ else:
+
+ class Config:
+ frozen = True
+ smart_union = True
+ extra = pydantic.Extra.allow
diff --git a/src/vital/types/client_facing_electrocardiogram_source_provider.py b/src/vital/types/client_facing_electrocardiogram_source_provider.py
new file mode 100644
index 0000000..c0d744a
--- /dev/null
+++ b/src/vital/types/client_facing_electrocardiogram_source_provider.py
@@ -0,0 +1,7 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+from .providers import Providers
+from .labs import Labs
+
+ClientFacingElectrocardiogramSourceProvider = typing.Union[Providers, Labs]
diff --git a/src/vital/types/client_facing_electrocardiogram_source_type.py b/src/vital/types/client_facing_electrocardiogram_source_type.py
new file mode 100644
index 0000000..dba41a0
--- /dev/null
+++ b/src/vital/types/client_facing_electrocardiogram_source_type.py
@@ -0,0 +1,65 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import enum
+import typing
+
+T_Result = typing.TypeVar("T_Result")
+
+
+class ClientFacingElectrocardiogramSourceType(str, enum.Enum):
+ UNKNOWN = "unknown"
+ PHONE = "phone"
+ WATCH = "watch"
+ APP = "app"
+ MULTIPLE_SOURCES = "multiple_sources"
+ FINGERPRICK = "fingerprick"
+ CUFF = "cuff"
+ MANUAL_SCAN = "manual_scan"
+ AUTOMATIC = "automatic"
+ SCALE = "scale"
+ CHEST_STRAP = "chest_strap"
+ RING = "ring"
+ LAB = "lab"
+
+ def visit(
+ self,
+ unknown: typing.Callable[[], T_Result],
+ phone: typing.Callable[[], T_Result],
+ watch: typing.Callable[[], T_Result],
+ app: typing.Callable[[], T_Result],
+ multiple_sources: typing.Callable[[], T_Result],
+ fingerprick: typing.Callable[[], T_Result],
+ cuff: typing.Callable[[], T_Result],
+ manual_scan: typing.Callable[[], T_Result],
+ automatic: typing.Callable[[], T_Result],
+ scale: typing.Callable[[], T_Result],
+ chest_strap: typing.Callable[[], T_Result],
+ ring: typing.Callable[[], T_Result],
+ lab: typing.Callable[[], T_Result],
+ ) -> T_Result:
+ if self is ClientFacingElectrocardiogramSourceType.UNKNOWN:
+ return unknown()
+ if self is ClientFacingElectrocardiogramSourceType.PHONE:
+ return phone()
+ if self is ClientFacingElectrocardiogramSourceType.WATCH:
+ return watch()
+ if self is ClientFacingElectrocardiogramSourceType.APP:
+ return app()
+ if self is ClientFacingElectrocardiogramSourceType.MULTIPLE_SOURCES:
+ return multiple_sources()
+ if self is ClientFacingElectrocardiogramSourceType.FINGERPRICK:
+ return fingerprick()
+ if self is ClientFacingElectrocardiogramSourceType.CUFF:
+ return cuff()
+ if self is ClientFacingElectrocardiogramSourceType.MANUAL_SCAN:
+ return manual_scan()
+ if self is ClientFacingElectrocardiogramSourceType.AUTOMATIC:
+ return automatic()
+ if self is ClientFacingElectrocardiogramSourceType.SCALE:
+ return scale()
+ if self is ClientFacingElectrocardiogramSourceType.CHEST_STRAP:
+ return chest_strap()
+ if self is ClientFacingElectrocardiogramSourceType.RING:
+ return ring()
+ if self is ClientFacingElectrocardiogramSourceType.LAB:
+ return lab()
diff --git a/src/vital/types/menstrual_cycle.py b/src/vital/types/client_facing_menstrual_cycle.py
similarity index 83%
rename from src/vital/types/menstrual_cycle.py
rename to src/vital/types/client_facing_menstrual_cycle.py
index c75f391..e0262fb 100644
--- a/src/vital/types/menstrual_cycle.py
+++ b/src/vital/types/client_facing_menstrual_cycle.py
@@ -12,12 +12,15 @@
from .home_progesterone_test_entry import HomeProgesteroneTestEntry
from .sexual_activity_entry import SexualActivityEntry
from .basal_body_temperature_entry import BasalBodyTemperatureEntry
+from .client_facing_menstrual_cycle_source_provider import ClientFacingMenstrualCycleSourceProvider
+from .client_facing_menstrual_cycle_source_type import ClientFacingMenstrualCycleSourceType
from .client_facing_source import ClientFacingSource
from ..core.pydantic_utilities import IS_PYDANTIC_V2
import pydantic
-class MenstrualCycle(UniversalBaseModel):
+class ClientFacingMenstrualCycle(UniversalBaseModel):
+ id: str
period_start: str
period_end: typing.Optional[str] = None
cycle_end: typing.Optional[str] = None
@@ -32,6 +35,10 @@ class MenstrualCycle(UniversalBaseModel):
home_progesterone_test: typing.Optional[typing.List[HomeProgesteroneTestEntry]] = None
sexual_activity: typing.Optional[typing.List[SexualActivityEntry]] = None
basal_body_temperature: typing.Optional[typing.List[BasalBodyTemperatureEntry]] = None
+ source_provider: ClientFacingMenstrualCycleSourceProvider
+ source_type: ClientFacingMenstrualCycleSourceType
+ source_app_id: typing.Optional[str] = None
+ user_id: str
source: ClientFacingSource
if IS_PYDANTIC_V2:
diff --git a/src/vital/types/client_facing_menstrual_cycle_source_provider.py b/src/vital/types/client_facing_menstrual_cycle_source_provider.py
new file mode 100644
index 0000000..56be526
--- /dev/null
+++ b/src/vital/types/client_facing_menstrual_cycle_source_provider.py
@@ -0,0 +1,7 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+from .providers import Providers
+from .labs import Labs
+
+ClientFacingMenstrualCycleSourceProvider = typing.Union[Providers, Labs]
diff --git a/src/vital/types/client_facing_menstrual_cycle_source_type.py b/src/vital/types/client_facing_menstrual_cycle_source_type.py
new file mode 100644
index 0000000..5a76842
--- /dev/null
+++ b/src/vital/types/client_facing_menstrual_cycle_source_type.py
@@ -0,0 +1,65 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import enum
+import typing
+
+T_Result = typing.TypeVar("T_Result")
+
+
+class ClientFacingMenstrualCycleSourceType(str, enum.Enum):
+ UNKNOWN = "unknown"
+ PHONE = "phone"
+ WATCH = "watch"
+ APP = "app"
+ MULTIPLE_SOURCES = "multiple_sources"
+ FINGERPRICK = "fingerprick"
+ CUFF = "cuff"
+ MANUAL_SCAN = "manual_scan"
+ AUTOMATIC = "automatic"
+ SCALE = "scale"
+ CHEST_STRAP = "chest_strap"
+ RING = "ring"
+ LAB = "lab"
+
+ def visit(
+ self,
+ unknown: typing.Callable[[], T_Result],
+ phone: typing.Callable[[], T_Result],
+ watch: typing.Callable[[], T_Result],
+ app: typing.Callable[[], T_Result],
+ multiple_sources: typing.Callable[[], T_Result],
+ fingerprick: typing.Callable[[], T_Result],
+ cuff: typing.Callable[[], T_Result],
+ manual_scan: typing.Callable[[], T_Result],
+ automatic: typing.Callable[[], T_Result],
+ scale: typing.Callable[[], T_Result],
+ chest_strap: typing.Callable[[], T_Result],
+ ring: typing.Callable[[], T_Result],
+ lab: typing.Callable[[], T_Result],
+ ) -> T_Result:
+ if self is ClientFacingMenstrualCycleSourceType.UNKNOWN:
+ return unknown()
+ if self is ClientFacingMenstrualCycleSourceType.PHONE:
+ return phone()
+ if self is ClientFacingMenstrualCycleSourceType.WATCH:
+ return watch()
+ if self is ClientFacingMenstrualCycleSourceType.APP:
+ return app()
+ if self is ClientFacingMenstrualCycleSourceType.MULTIPLE_SOURCES:
+ return multiple_sources()
+ if self is ClientFacingMenstrualCycleSourceType.FINGERPRICK:
+ return fingerprick()
+ if self is ClientFacingMenstrualCycleSourceType.CUFF:
+ return cuff()
+ if self is ClientFacingMenstrualCycleSourceType.MANUAL_SCAN:
+ return manual_scan()
+ if self is ClientFacingMenstrualCycleSourceType.AUTOMATIC:
+ return automatic()
+ if self is ClientFacingMenstrualCycleSourceType.SCALE:
+ return scale()
+ if self is ClientFacingMenstrualCycleSourceType.CHEST_STRAP:
+ return chest_strap()
+ if self is ClientFacingMenstrualCycleSourceType.RING:
+ return ring()
+ if self is ClientFacingMenstrualCycleSourceType.LAB:
+ return lab()
diff --git a/src/vital/types/client_facing_sport.py b/src/vital/types/client_facing_sport.py
index a2a1eda..084d4a9 100644
--- a/src/vital/types/client_facing_sport.py
+++ b/src/vital/types/client_facing_sport.py
@@ -7,7 +7,11 @@
class ClientFacingSport(UniversalBaseModel):
- id: int
+ id: int = pydantic.Field()
+ """
+ This ID is unstable across environments. Use the slug instead.
+ """
+
name: str = pydantic.Field()
"""
Sport's name
diff --git a/src/vital/types/menstrual_cycle_response.py b/src/vital/types/menstrual_cycle_response.py
index 4904c34..638d20c 100644
--- a/src/vital/types/menstrual_cycle_response.py
+++ b/src/vital/types/menstrual_cycle_response.py
@@ -2,13 +2,13 @@
from ..core.pydantic_utilities import UniversalBaseModel
import typing
-from .menstrual_cycle import MenstrualCycle
+from .client_facing_menstrual_cycle import ClientFacingMenstrualCycle
from ..core.pydantic_utilities import IS_PYDANTIC_V2
import pydantic
class MenstrualCycleResponse(UniversalBaseModel):
- menstrual_cycle: typing.List[MenstrualCycle]
+ menstrual_cycle: typing.List[ClientFacingMenstrualCycle]
if IS_PYDANTIC_V2:
model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
diff --git a/src/vital/types/workout_column_expr_workout.py b/src/vital/types/workout_column_expr_workout.py
index acf0600..5f59641 100644
--- a/src/vital/types/workout_column_expr_workout.py
+++ b/src/vital/types/workout_column_expr_workout.py
@@ -10,7 +10,6 @@ class WorkoutColumnExprWorkout(str, enum.Enum):
SESSION_START = "session_start"
SESSION_END = "session_end"
TITLE = "title"
- SPORT_ID = "sport_id"
SPORT_NAME = "sport_name"
SPORT_SLUG = "sport_slug"
DURATION_ACTIVE_SECOND = "duration_active_second"
@@ -45,7 +44,6 @@ def visit(
session_start: typing.Callable[[], T_Result],
session_end: typing.Callable[[], T_Result],
title: typing.Callable[[], T_Result],
- sport_id: typing.Callable[[], T_Result],
sport_name: typing.Callable[[], T_Result],
sport_slug: typing.Callable[[], T_Result],
duration_active_second: typing.Callable[[], T_Result],
@@ -81,8 +79,6 @@ def visit(
return session_end()
if self is WorkoutColumnExprWorkout.TITLE:
return title()
- if self is WorkoutColumnExprWorkout.SPORT_ID:
- return sport_id()
if self is WorkoutColumnExprWorkout.SPORT_NAME:
return sport_name()
if self is WorkoutColumnExprWorkout.SPORT_SLUG: