Skip to content

Schemas

The following schemas specify the data format for FingerScan. 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 FingerScan 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"
        },
        "sec_ent_scanLength": {
            "description": "Scan time, in seconds.",
            "type": "number"
        },
        "str_ent_instruction1": {
            "description": "1st instruction to display before starting scan. For example, Stand upright and try not to move.",
            "type": "string"
        },
        "str_ent_instruction2": {
            "description": "2nd instruction to display before starting scan. For example, Position your finger over the camera to begin scan.",
            "type": "string"
        }
    },
    "required": [
        "sec_ent_scanLength"
    ]
}

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 FingerScan 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",
                "finger"
            ]
        },
        "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"
        },
        "hrv_raw_AVNN": {
            "description": "AVNN. Mean of all normal sinus to normal sinus inter-beat intervals.",
            "type": "number"
        },
        "hrv_raw_SDNN": {
            "description": "The standard deviation of the IBI of normal sinus beats.",
            "type": "number"
        },
        "hrv_raw_pNN50": {
            "description": "The mean number of times an hour in which the change in successive normal sinus intervals exceeds 50 ms.",
            "type": "number"
        },
        "hrv_raw_pNN20": {
            "description": "The mean number of times an hour in which the change in successive normal sinus intervals exceeds 20 ms.",
            "type": "number"
        },
        "hrv_raw_lfhf": {
            "description": "The ratio of low frequency to high frequency measurements.",
            "type": "number"
        },
        "hrv_raw_rmssd": {
            "description": "The root mean square of successive differences between normal heartbeats.",
            "type": "number"
        },
        "bpm_raw_heartRate": {
            "description": "Heart rate in bpm. It's being calulated at the end of a scan from AVNN",
            "type": "number"
        },
        "index_raw_quality": {
            "description": "The quality of the result produced, keeps reducing with the amount of bad data received during the scan. The range is [0 - 1], the higher the value, the greater the quality.",
            "type": "number"
        },
        "index_raw_badSamples": {
            "description": "The number of bad measurements recorded.",
            "type": "number"
        },
        "index_raw_errors": {
            "description": "Number of errors recorded.",
            "type": "number"
        },
        "hrv_raw_LF": {
            "description": "Low-Frequency power (LF): frequency activity in the 0.04 - 0.15Hz range.",
            "type": "number"
        },
        "hrv_raw_HF": {
            "description": "High-Frequency power (HF): frequency activity in the 0.15 - 0.40Hz range.",
            "type": "number"
        },
        "list_raw_heartRate": {
            "description": "Time series data for heart rate, usualy calculated every second",
            "type": "array"
        },
        "list_raw_rrIntervals": {
            "description": "Time series data for rr intervals.",
            "type": "array",
            "items": {
                "description": "rr interval with timestamp",
                "type": "object",
                "properties": {
                    "ts" : {
                        "description": "Unix timestamp of rr interval.",
                        "type": "integer"
                    },
                    "rr": {
                        "description": "rr interval.",
                        "type": "number"
                    }
                },
                "required": [
                    "ts",
                    "rr"
                ]
            }
        },
        "string_raw_ppgFilePath": {
            "description": "Location on disk of PPG data stored in a .txt file as a JSON array. PPG data consists the magnitude of PPG signal in each frame for the duration of the scan.",
            "type": "array"
        }
    },
    "required": [
        "id",
        "uid",
        "date",
        "type",
        "ver"
    ]
}