Skip to content

Schemas

The following schemas specify the data format for FaceScan. Please note that:

  • _ent_ are "entered" values from the App.
  • _raw_ are raw measurement values from the scan technology and have not been "smoothed" to remove outliers.
  • _adj_ are the adjusted values by running a "smoothing" filter to enhance repeatability of results (use where possible).
  • _gen_ values which have no meaningful value, but might be used for retrieving extra scan data, such as 3D mesh generation.

Input

The following schema specifies the expected parameters that the App must pass to MultiScan initiateScan() method:

{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "type": "object",
    "description": "Schema for FaceScan options parameter, as passed to initiateScan().",
    "properties": {
        "miscData": {
            "description": "Optional misc data as provided by the app when scan is initiated. For example, can be used for expense tracking.",
            "type": "object"
        },
        "kg_ent_weight": {
            "description": "Weight entered at the time of scan, in kilograms. Minimum = 30kg; Maximum = 300kg. (Required)",
            "type": "number",
            "minimum": 30,
            "maximum": 300
        },
        "cm_ent_height": {
            "description": "Height entered at the time of scan, in centimeters. Minimum = 50cm; Maximum = 300cm. (Required)",
            "type": "number",
            "minimum": 120,
            "maximum": 220
        },
        "enum_ent_sex": {
            "description": "The biological sex of the user, as they have entered. (Required)",
            "type": "string",
            "enum": [
                "male",
                "female"
            ]
        },
        "yr_ent_age": {
            "description": "The age of the user, in years, as they have entered or calculated from birth date. Minimum = 13 years; Maximum = 120 years. (Required)",
            "type": "integer",
            "minimum": 13,
            "maximum": 120
        },
        "bool_ent_smoker": {
            "description": "Whether the user is a smoker or not. (Optional)",
            "type": "boolean",
            "default": false
        },
        "bool_ent_hypertension": {
            "description": "Whether the user is diagnosed with hypertension or not. (Optional)",
            "type": "boolean",
            "default": false
        },
        "bool_ent_bloodPressureMedication": {
            "description": "Whether the user is taking blood pressure medication or not, such as to treat hypertension or hypotension. (Optional)",
            "type": "boolean",
            "default": false
        },
        "enum_ent_diabetic": {
            "description": "If the user is diabetic, what diabetes type they are diagnosed with. (Optional)",
            "type": "string",
            "default": "none",
            "enum": [
                "none",
                "type1",
                "type2"
            ]
        },
        "sec_ent_scanLength": {
            "description": "Scan time, in seconds. (Optional)",
            "type": "number",
            "default": 30
        },
        "num_ent_chunks": {
            "description": "Calculated number of chunks for the whole measurement — Default is 6 chunks for a 30 second measurement with 5-second chunks. (Optional)",
            "type": "number",
            "default": 6
        },
        "sec_ent_countdownLength": {
            "description": "Countdown time, in seconds. (Optional)",
            "type": "number",
            "default": 3
        },
        "bool_ent_default_constraints": {
            "description": "A Boolean value that determines whether the default face position and movement constraints are enabled. (Optional)",
            "type": "boolean",
            "default": true
        },
        "bool_ent_lighting_quality_constraints": {
            "description": "A Boolean value that determines whether the lighting quality constraint is enabled. (Optional)",
            "type": "boolean",
            "default": false
        },
        "bool_ent_debugMode": {
            "description": "A Boolean value that activate the debug mode to display live values received. (Optional)",
            "type": "boolean",
            "default": false
        }
    },
    "required": [
        "kg_ent_weight",
        "cm_ent_height",
        "enum_ent_sex",
        "yr_ent_age"
    ]
}

Output (Scan Result)

The following schema specifies the result from successful scan. FaceScan in particular is an instantaneous measurement, so "smoothing" of data is not run on results.

NOTE: Not all measurements may be available, depending on the contract agreement with AHI and the client:

{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "type": "object",
    "description": "Schema of a FaceScan result. Extends 'schema.sdk.result.json'.",
    "properties": {
        "id": {
            "description": "Unique identifier of the scan result, e.g. the AttemptID for BodyScan or MeasurementID for FaceScan.",
            "type": "string"
        },
        "uid": {
            "description": "Unique identifier of the User ID, as authorized.",
            "type": "string"
        },
        "date": {
            "description": "Unix timestamp of when the scan result was returned.",
            "type": "integer"
        },
        "type": {
            "description": "Indicate result scan type. E.g. 'body', 'face', etc...",
            "type": "string",
            "enum": [
                "body",
                "face",
                "derma"
            ]
        },
        "ver": {
            "description": "Result schema version. Currently '21.1' as base version.",
            "type": "string"
        },
        "miscData": {
            "description": "Optional misc data as provided by the app when scan is initiated. For example, can be used for expense tracking.",
            "type": "object"
        },
        "kg_ent_weight": {
            "description": "Weight entered at the time of scan, in kilograms.",
            "type": "number"
        },
        "cm_ent_height": {
            "description": "Height entered at the time of scan, in centimeters.",
            "type": "number"
        },
        "enum_ent_sex": {
            "description": "The biological sex of the user, as they have entered.",
            "type": "string",
            "enum": [
                "male",
                "female"
            ]
        },
        "yr_ent_age": {
            "description": "The age of the user, in years, as they have entered.",
            "type": "integer"
        },
        "bool_ent_bloodPressureMed": {
            "description": "Boolean flag to indicate if the user has taken blood pressure medication today, as they have entered. A value of 'false' means that the user has not taken blood pressure medication today. A value of 'true' means that the user has taken blood pressure medication today.",
            "type": "boolean"
        },
        "bool_ent_hypertension": {
            "description": "Boolean flag to indicate if the user has hypertension, as they have entered. A value of 'false' means that the user does not have hypertension. A value of 'true' means that the user does have hypertension.",
            "type": "boolean"
        },
        "bool_ent_smoker": {
            "description": "Boolean flag to indicate if the user is a smoker, as they have entered. A value of 'false' means that the user does not smoke. A value of 'true' means the user does smoke.",
            "type": "boolean"
        },
        "enum_ent_diabetic": {
            "description": "Indicates if the user has diabetes (and if so, what type), as they have entered. A value of 'no' means that the user does not have diabetes. A value of 'type1' means that the user has type 1 diabetes. A value of 'type2' means that the user has type 2 diabetes.",
            "type": "string",
            "enum": [
                "no",
                "type1",
                "type2"
            ]
        },
        "hz_raw_heartRate": {
            "description": "HEART_RATE. Heart Rate in Hertz (Hz - beats per second)",
            "type": "number"
        },
        "sdnn_raw_heartRateVariability": {
            "description": "HRV_SDNN. Standard Deviation of NN intervals (SDNN) is a measure of Heart Rate Variability (HRV). NN intervals refer to beat-to-beat intervals. It is the time interval between each heartbeat. SDNN is the standard deviation of the time intervals between each heartbeat, expressed in milliseconds (ms).",
            "type": "number"
        },
        "bpm_raw_heartRateIrregular": {
            "description": "IHB_COUNT. The number of missing heartbeats within a minute.",
            "type": "number"
        },
        "mmHg_raw_bloodPressureDiastolic": {
            "description": "BP_DIASTOLIC. Diastolic blood pressure is the amount of pressure in your brachial arteries when your heart muscle is relaxed, measured in millimeters of mercury (mmHg). Diastolic blood pressure levels: Below 60mmHg is considered hypotensive; 60-89mmHg is normal; 90mmHg and above is hypertensive. If you fall on the hypotensive side, you may want to consult a doctor. If you fall on the hypertensive side, you may want to make adjustments to your lifestyle involving more exercise, healthy eating (less salt, no caffeine, no alcohol), and meditation to reduce stress, you may also want to consult a doctor.",
            "type": "number"
        },
        "mmHg_raw_bloodPressureSystolic": {
            "description": "BP_SYSTOLIC. Systolic blood pressure is the peak pressure in your brachial arteries during the contraction of your heart muscle, measured in millimeters of mercury (mmHg). Systolic blood pressure levels: Below 90mmHg is considered hypotensive; 90-139mmHg is is normal; 140mmHg and above is hypertensive. If you fall on the hypotensive side, you may want to consult a doctor. If you fall on the hypertensive side, you may want to make adjustments to your lifestyle involving more exercise, healthy eating (less salt, no caffeine, no alcohol), and meditation to reduce stress, you may also want to consult a doctor.",
            "type": "number"
        },
        "percent_raw_cardiovascularDiseaseRisk": {
            "description": "BP_CVD. Cardiovascular Disease Risk is the likelihood (expressed in percentage) for you to experience a cardiovascular disease (heart attack, stroke, or peripheral artery disease) within the next 10 years. This risk score is based upon the Framingham Method and derived from an algorithm developed based on data from prospective studies that followed up participants in terms of their cardiovascular health for over ten years.",
            "type": "number"
        },
        "percent_raw_heartAttackRisk": {
            "description": "BP_HEART_ATTACK. Heart Attack Risk is the likelihood (expressed in percentage) for you to experience a heart attack within the next 10 years. This risk score is based upon the Framingham Method and derived from an algorithm developed based on data form prospective studies that followed up participants in terms of their cardiovascular health for over ten years.",
            "type": "number"
        },
        "percent_raw_strokeRisk": {
            "description": "BP_STROKE. Stroke Risk is the likelihood (expressed in percentage) for you to experience a stroke within the next 10 years. This risk score is based upon the Framingham Method, and derived from an algorithm developed based on data from prospective studies that followed up participants in terms of their cardiovascular health for over ten years.",
            "type": "number"
        },
        "index_raw_bodyShapeIndex": {
            "description": "ABSI. Body Shape Index (sometimes called “a Body Shape Index”; abbreviated BSI) is a measure of fat accumulation that considers both overall fat level measured by BMI (Body Mass Index) and abdominal fat level measured by waist circumference. Individuals with an elevated aBSI are at increased risk of mortality, cardiovascular disease and diabetes.",
            "type": "number"
        },
        "yr_raw_topographicalAge": {
            "description": "AGE. Facial Topographical Age is an estimate of your age based on the shape and form of your face. This estimation can be used as an indicator for the effects of aging on your facial shape.This estimation may be influenced by factors such as fatigue, the use of skincare or cosmetic products. Video images taken in poor lighting conditions (e.g., backlighting, overhead lighting) may distort the estimation of your facial topographical age.",
            "type": "number"
        },
        "index_raw_bodyMassIndex": {
            "description": "BMI. Body Mass Index (BMI) is a quantification of the amount of tissue mass (muscle, fat, and bone) in an individual. It is often used for categorizing an individual as being underweight, normal weight, overweight, or obese. You can calculate your Body Mass Index using the formula: BMI (kg/m²) = weight (kg)/height (m2). According to the World Health Organiztion, BMI: Below 18.5 is considered underweight; 18.5-24.9 is normal weight; 25.0-29.9 is pre-obesity; 30.0-34.9 is obesity class I; 35.0-39.9 is obesity class II; 40 and above is obesity class III.",
            "type": "number"
        },
        "index_raw_bodyMassIndexCalculated": {
            "description": "BMI_CALC. Calculated Body Mass Index (BMI) is a quantification of an individual's tissue mass (muscle, fat, and bone) based upon the height (m) and weight (kg) you input. The calculation is conducted using the formula: BMI (kg/m²) = weight (kg)/height (m2). Body Mass Index is often used for categorizing an individual as being underweight, normal weight, overweight, or obese. According to the World Health Organiztion, BMI: Below 18.5 is considered underweight; 18.5-24.9 is normal weight; 25.0-29.9 is pre-obesity; 30.0-34.9 is obesity class I; 35.0-39.9 is obesity class II; 40 and above is obesity class III.",
            "type": "number"
        },
        "mmHg_raw_meanArterialPressure": {
            "description": "BP_MAP. Mean Arterial Pressure (MAP) is the average pressure in a person's arteries during one cardiac cycle, measured in millimeters of mercury (mmHg).",
            "type": "number"
        },
        "percent_raw_bloodPressureMedProbability": {
            "description": "BP_MED_PROB. Blood pressure medication probability is the likelihood (expressed in percentage) that you have taken blood pressure medication today.",
            "type": "number"
        },
        "mmHg_raw_pulsePressure": {
            "description": "BP_PP. Pulse Pressure (PP) is the difference between systolic and diastolic blood pressure, measured in millimeters of mercury (mmHg). It represents the force that the heart generates each time it contracts.",
            "type": "number"
        },
        "db_raw_cardiacWorkload": {
            "description": "BP_RPP. Cardiac Workload, or more precisely myocardial workload, is a measure of the stress put on the heart muscle. Cardiac Workload can be calculated using the formula: Heart Rate (bpm) x Systolic Blood Pressure (mmHg). When measured at rest, this index can be used as an indicator of cardiovascular health. For example, a person who exercises regularly may have lower cardiac workload than another person who has a sedentary lifestyle. During intense physical exercise, your cardiac workload may increase, but should decrease post-exercise.",
            "type": "number"
        },
        "secs_raw_vascularCapacity": {
            "description": "BP_TAU. Vascular Capacity, or Tau, is a measure of the elasticity of your blood vessels. Vascular Capacity can be calculated using the formula: R (Vascular Resistance) x C (Arterial Compliance) When measured at rest, this index can be used as an indicator of cardiovascular health as it is strongly correlated with vascular stiffness. A person with a high Tau has better vascular health than a person with a low Tau. Also, certain transient activities and physiological events can lead to immediate changes in Tau (e.g., drinking alcohol, smoking).",
            "type": "number"
        },
        "bpm_raw_breathingRate": {
            "description": "BR_BPM. Breathing rate in breathes per minute (bpm). Measurable Range: 9-40bpm (0.15-0.67Hz).",
            "type": "number"
        },
        "hz_raw_breathingRate": {
            "description": "BR_HERTZ. Breathing rate in breathes per second (Hz). Measurable Range: 0.15-0.67Hz.",
            "type": "number"
        },
        "bpm_raw_heartRate": {
            "description": "HR_BPM. Heart rate in beats-per-minute (bpm). Measurable Range: 40-140bpm (0.67-2.33Hz).",
            "type": "number"
        },
        "ml_raw_breathingWave": {
            "description": "BR_ENVELOPE. This indicates the range of signal amplitude within the breathing band frequency (signal occurring 0.15-0.67Hz). Moment by moment breathing rate signal.",
            "type": "number"
        },
        "percent_raw_covidScore": {
            "description": "COVID19_SCORE. The COVID-19 score is the likelihood of testing positive for COVID-19 (expressed as a percent), given the specific set of symptoms entered in the COVID-19 questionnaire. It is based upon a study of patients who visited their physician with COVID-19 symptoms and were diagnosed with either COVID-19, a seasonal flu or a common cold.",
            "type": "number"
        },
        "bool_raw_diabetesRisk": {
            "description": "DBT_RISK. Diabetes risk indicates whether you are at risk of diabetes today. A result of 0 means that you are not at risk of diabetes today. A result of 1 means that you are at risk of diabetes today.",
            "type": "boolean"
        },
        "percent_raw_diabetesRiskProbability": {
            "description": "DBT_RISK_PROB. Diabetes risk probability is the likelihood (expressed in percentage) that you are at risk of diabetes today.",
            "type": "number"
        },
        "bool_raw_hdltcRisk": {
            "description": "HDLTC_RISK. Hypercholesterolemia risk indicates whether you are at risk of high cholesterol today. A result of 0 means that you are not at risk of high cholesterol today. A result of 1 means that you are at risk of high cholesterol today.",
            "type": "boolean"
        },
        "percent_raw_hdltcRiskProbability": {
            "description": "HDLTC_RISK_PROB. Hypercholesterolemia risk probability is the likelihood (expressed in percentage) that you are at risk of high cholesterol today.",
            "type": "number"
        },
        "index_raw_healthScore": {
            "description": "HEALTH_SCORE. General Wellness Score is a measure of your overall physiological health based on a combined calculation of your most essential vitals including Heart rate, Stress, Blood Pressure, Body Mass Index, Heart Rate Variability-SDNN, Cardiac Workload, and Cardiovascular Disease Risks.",
            "type": "number"
        },
        "bool_raw_hypertensionRisk": {
            "description": "HPT_RISK. Hypertension risk indicates whether you have hypertension risk today. A result of 0 means that you are not at risk to have hypertension today. A result of 1 means that you are at risk to have hypertension today.",
            "type": "boolean"
        },
        "percent_raw_hypertensionRiskProbability": {
            "description": "HPT_RISK_PROB. Hypertension risk probability is the likelihood (expressed in percentage) that you are at risk of having hypertension today.",
            "type": "number"
        },
        "ml_raw_heartRateEnvelope": {
            "description": "HR_ENVELOPE. This indicates the range of signal amplitude within the heart band frequency (signal occurring 0.9-1.1 Hz). Moment by moment heart rate signal.",
            "type": "number"
        },
        "index_raw_mentalScore": {
            "description": "MENTAL_SCORE. A summary score of your vital health based on predicted measures of mental stress index.",
            "type": "number"
        },
        "index_raw_mentalStressIndex": {
            "description": "MSI or MENTAL_STRESS_INDEX. Mental Stress Index as determined by heart rate variability features. The range is [1.0 - 5.9], the higher the value, the greater the stress.",
            "type": "number"
        },
        "bool_raw_obesityRisk": {
            "description": "OBT_RISK. Obesity risk indicates whether you have obesity risk today. A result of 0 means that you are not at risk of obesity today. A result of 1 means that you are at risk of obesity today.",
            "type": "boolean"
        },
        "percent_raw_obesityRiskProbability": {
            "description": "OBT_RISK_PROB. Obesity risk probability is the likelihood (expressed in percentage) that you are at risk of obesity today.",
            "type": "number"
        },
        "index_raw_physicalScore": {
            "description": "PHYSICAL_SCORE. A summary score of your physical health based on predicted measures of BMI.",
            "type": "number"
        },
        "index_raw_physioScore": {
            "description": "PHYSIO_SCORE. A summary score of your physiological health based on predicted measures of Heart Rate Variability-SDNN and Cardiac Workload.",
            "type": "number"
        },
        "index_raw_risksScore": {
            "description": "RISKS_SCORE. A summary score for the likelihood for you to not experience disease within the next 10 years based on predicted measures of Cardiovascular Disease Risks.",
            "type": "number"
        },
        "ml_raw_beatInterval": {
            "description": "RRI. Interval between each heart beat. This is a high resolution signal which is used for computing Mental Stress Index.",
            "type": "number"
        },
        "db_raw_signalNoiseRatio": {
            "description": "SNR. Blood flow signal SNR over the duration of the measurement with moving window when the measurement duration over 30s.",
            "type": "number"
        },
        "index_raw_stressScore": {
            "description": "STRESS_SCORE. Stress score as determined by heart rate variability features. It is the inverse score of Mental Stress Index. The range is [0 - 1], the lower the value, the greater the stress.",
            "type": "number"
        },
        "bool_raw_htgRisk": {
            "description": "TG_RISK. Hypertryglyceridemia risk indicates whether you are at risk of high triglycerides today. A result of 0 means that you are not at risk of high triglycerides today. A result of 1 means that you are at risk of high triglycerides today.",
            "type": "boolean"
        },
        "percent_raw_htgRiskProbability": {
            "description": "TG_RISK_PROB. Hypertriglyceridemia risk probability is the likelihood (expressed in percentage) that you are at risk of high triglycerides today.",
            "type": "number"
        },
        "index_raw_vitalScore": {
            "description": "VITAL_SCORE. A summary score of your vital health based on predicted measures of heart rate, and blood pressure.",
            "type": "number"
        },
        "cm_raw_heightPrediction": {
            "description": "HEIGHT. A prediction of the user's height, in centimeters.",
            "type": "number"
        },
        "kg_raw_weightPrediction": {
            "description": "WEIGHT. A prediction of the user's weight, in kilograms.",
            "type": "number"
        }
    },
    "required": [
        "id",
        "uid",
        "date",
        "type",
        "ver"
    ]
}