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 setup().",
    "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 = 25kg; Maximum = 300kg.",
            "type": "number",
            "minimum": 25,
            "maximum": 300
        },
        "cm_ent_height": {
            "description": "Height entered at the time of scan, in centimeters. Minimum = 50cm; Maximum = 300cm.",
            "type": "number",
            "minimum": 50,
            "maximum": 300
        },
        "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 or calculated from birth date. Minimum = 13 years; Maximum = 120 years.",
            "type":"integer",
            "minimum": 13,
            "maximum": 120
        },
        "bool_ent_smoker": {
            "description": "Whether the user is a smoker or not.",
            "type": "boolean"
        },
        "bool_ent_hypertension": {
            "description": "Whether the user is diagnosed with hypertension or not.",
            "type": "boolean"
        },
        "bool_ent_bloodPressureMedication": {
            "description": "Whether the user is taking blood pressure medication or not, such as to treat hypertension or hypotension.",
            "type": "boolean"
        },
        "enum_ent_diabetic": {
            "description": "If the user is diabetic, what diabetes type they are diagnosed with.",
            "type": "string",
            "enum": [
                "none",
                "type1",
                "type2"
            ]
        }
    },
    "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"
        },
        "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"
        }
    },
    "required": [
        "id",
        "uid",
        "date",
        "type",
        "ver"
    ]
}