Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
317 changes: 317 additions & 0 deletions actions/health.cherri
Original file line number Diff line number Diff line change
@@ -0,0 +1,317 @@
/*
Health Actions
*/

enum healthQuantitySampleType {
'Steps',
'Step Count',
'Walking + Running Distance',
'Distance Walking Running',
'Walking Step Length',
'Walking Speed',
'Time In Daylight',
'Vertical Oscillation',
'Running Vertical Oscillation',
'Forced Expiratory Volume 1',
'Forced Expiratory Volume1',
'Systolic Blood Pressure',
'Diastolic Blood Pressure',
'Blood Pressure Systolic',
'Blood Pressure Diastolic',
'Dietary Energy',
'Dietary Energy Consumed',
'Water',
'Dietary Water',
'Protein',
'Dietary Protein',
'Saturated Fat',
'Dietary Fat Saturated',
'Monounsaturated Fat',
'Dietary Fat Monounsaturated',
'Apple Sleeping Wrist Temperature',
'Body Fat Percentage',
'Body Mass',
'Body Mass Index',
'Electrodermal Activity',
'Height',
'Lean Body Mass',
'Waist Circumference',
'Active Energy Burned',
'Apple Exercise Time',
'Apple Move Time',
'Apple Stand Time',
'Basal Energy Burned',
'Cross Country Skiing Speed',
'Cycling Cadence',
'Cycling Functional Threshold Power',
'Cycling Power',
'Cycling Speed',
'Distance Cross Country Skiing',
'Distance Cycling',
'Distance Downhill Snow Sports',
'Distance Paddle Sports',
'Distance Rowing',
'Distance Skating Sports',
'Distance Swimming',
'Distance Wheelchair',
'Estimated Workout Effort Score',
'Flights Climbed',
'Nike Fuel',
'Paddle Sports Speed',
'Physical Effort',
'Push Count',
'Rowing Speed',
'Running Power',
'Running Speed',
'Swimming Stroke Count',
'Underwater Depth',
'Workout Effort Score',
'Environmental Audio Exposure',
'Environmental Sound Reduction',
'Headphone Audio Exposure',
'Atrial Fibrillation Burden',
'Heart Rate',
'Heart Rate Recovery One Minute',
'Heart Rate Variability SDNN',
'Peripheral Perfusion Index',
'Resting Heart Rate',
'VO2 Max',
'Walking Heart Rate Average',
'Apple Walking Steadiness',
'Running Ground Contact Time',
'Running Stride Length',
'Six Minute Walk Test Distance',
'Stair Ascent Speed',
'Stair Descent Speed',
'Walking Asymmetry Percentage',
'Walking Double Support Percentage',
'Dietary Biotin',
'Dietary Caffeine',
'Dietary Calcium',
'Dietary Carbohydrates',
'Dietary Chloride',
'Dietary Cholesterol',
'Dietary Chromium',
'Dietary Copper',
'Dietary Fat Polyunsaturated',
'Dietary Fat Total',
'Dietary Fiber',
'Dietary Folate',
'Dietary Iodine',
'Dietary Iron',
'Dietary Magnesium',
'Dietary Manganese',
'Dietary Molybdenum',
'Dietary Niacin',
'Dietary Pantothenic Acid',
'Dietary Phosphorus',
'Dietary Potassium',
'Dietary Riboflavin',
'Dietary Selenium',
'Dietary Sodium',
'Dietary Sugar',
'Dietary Thiamin',
'Dietary Vitamin A',
'Dietary Vitamin B12',
'Dietary Vitamin B6',
'Dietary Vitamin C',
'Dietary Vitamin D',
'Dietary Vitamin E',
'Dietary Vitamin K',
'Dietary Zinc',
'Blood Alcohol Content',
'Insulin Delivery',
'Number Of Alcoholic Beverages',
'Number Of Times Fallen',
'UV Exposure',
'Water Temperature',
'Basal Body Temperature',
'Apple Sleeping Breathing Disturbances',
'Forced Vital Capacity',
'Inhaler Usage',
'Oxygen Saturation',
'Peak Expiratory Flow Rate',
'Respiratory Rate',
'Blood Glucose',
'Body Temperature',
}

enum healthQuantityUnit {
'count',
'count/min',
'%',
'kg',
'lb',
'g',
'mg',
'mg/dL',
'mg/dl',
'mmol/L',
'kcal',
'Cal',
'cal',
'L',
'mL',
'm',
'km',
'cm',
'mm',
's',
'ms',
'min',
'hr',
'd',
'degC',
'degF',
'S',
'W',
'Pa',
'kPa',
'atm',
'dBASPL',
'J',
'kJ',
'J/s',
'm/s',
'm/s^2',
'L/min',
'mL/(kg*min)',
'ml/(kg*min)',
'kcal/(kg*hr)',
'IU',
'appleEffortScore',
'mmHg',
}

enum bloodPressureUnit {
'mmHg',
}

enum healthCategorySampleType {
'Apple Stand Hour',
'Environmental Audio Exposure Event',
'Headphone Audio Exposure Event',
'High Heart Rate Event',
'Hypertension Event',
'Irregular Heart Rhythm Event',
'Low Cardio Fitness Event',
'Low Heart Rate Event',
'Mindful Session',
'Apple Walking Steadiness Event',
'Handwashing Event',
'Toothbrushing Event',
'Bleeding After Pregnancy',
'Bleeding During Pregnancy',
'Cervical Mucus Quality',
'Contraceptive',
'Infrequent Menstrual Cycles',
'Intermenstrual Bleeding',
'Irregular Menstrual Cycles',
'Lactation',
'Menstrual Flow',
'Ovulation Test Result',
'Persistent Intermenstrual Bleeding',
'Pregnancy',
'Pregnancy Test Result',
'Progesterone Test Result',
'Prolonged Menstrual Periods',
'Sexual Activity',
'Sleep Apnea Event',
'Sleep Analysis',
'Abdominal Cramps',
'Acne',
'Appetite Changes',
'Bladder Incontinence',
'Bloating',
'Breast Pain',
'Chest Tightness Or Pain',
'Chills',
'Constipation',
'Coughing',
'Diarrhea',
'Dizziness',
'Dry Skin',
'Fainting',
'Fatigue',
'Fever',
'Generalized Body Ache',
'Hair Loss',
'Headache',
'Heartburn',
'Hot Flashes',
'Loss Of Smell',
'Loss Of Taste',
'Lower Back Pain',
'Memory Lapse',
'Mood Changes',
'Nausea',
'Night Sweats',
'Pelvic Pain',
'Rapid Pounding Or Fluttering Heartbeat',
'Runny Nose',
'Shortness Of Breath',
'Sinus Congestion',
'Skipped Heartbeat',
'Sleep Changes',
'Sore Throat',
'Vaginal Dryness',
'Vomiting',
'Wheezing',
'Audio Exposure Event',
}

enum physicalActivity {
'Unknown',
'Stationary',
'Walking',
'Running',
'Cycling',
'In a Stationary Vehicle',
'In a Moving Vehicle',
'Moving',
}

// [Doc]: [Samples] Log Health Quantity Sample: Log a quantity sample to Health.
action 'health.quantity.log' logHealthQuantitySample(
#healthQuantityUnit quantity: 'WFQuantitySampleQuantity',
healthQuantitySampleType sampleType: 'WFQuantitySampleType',
variable ?date: 'WFQuantitySampleDate'
)

// [Doc]: [Samples] Log Blood Pressure: Log systolic and diastolic blood pressure to Health.
action 'health.quantity.log' logBloodPressure(
#bloodPressureUnit systolic: 'WFQuantitySampleQuantity',
#bloodPressureUnit diastolic: 'WFQuantitySampleAdditionalQuantity',
variable ?date: 'WFQuantitySampleDate'
) {
"WFQuantitySampleType": "Systolic Blood Pressure"
}

// [Doc]: [Samples] Log Health Category Sample: Log a category sample, such as symptoms or sleep analysis, to Health.
action 'health.quantity.log' logHealthCategorySample(
healthCategorySampleType sampleType: 'WFQuantitySampleType',
text value: 'WFCategorySampleEnumeration',
text ?additionalValue: 'WFCategorySampleAdditionalEnumerationKey',
variable ?startDate: 'WFQuantitySampleDate',
variable ?endDate: 'WFSampleEndDate'
)

// [Doc]: [Samples] Find Health Samples: Find quantity samples from Health.
action 'filter.health.quantity' findHealthSamples(
variable input: 'WFContentItemInputParameter'
): array

// [Doc]: [Samples] Get Details of Health Sample: Get a detail from a Health sample.
action 'properties.health.quantity' getHealthSampleDetail(
variable sample: 'WFInput',
text detail: 'WFContentItemPropertyName'
): variable

// [Doc]: [Workouts] Log Workout: Log a workout to Health.
action 'health.workout.log' logWorkout(
text workoutType: 'WFWorkoutReadableActivityType',
#healthQuantityUnit ?calories: 'WFWorkoutCaloriesQuantity',
variable ?date: 'WFWorkoutDate',
#healthQuantityUnit ?duration: 'WFWorkoutDuration',
#healthQuantityUnit ?distance: 'WFWorkoutDistanceQuantity'
)
Loading
Loading