Nutritional Database

Once the food detection process has returned a PassioID, it is time to query the database and see what information Passio has on the detected food.

The most detailed information can be found in the PassioIDAttributes object. To retrieve this object from a given PassioID or name or barcode or ocrCode and searchQuery.

/**
     * Look up the nutrition attributes for a given Passio ID.
     * @param passioID - The Passio ID for the attributes query.
     * @returns A `Promise` resolving to a `PassioIDAttributes` object if the
     *   record exists in the database or `null` if not.
     */
    getAttributesForPassioID(passioID: PassioID): Promise<PassioIDAttributes | null>;
    /**
     * Look up the nutrition attributes for the given name of a food item. This is
     * most often used with a string received from the `searchForFood` function.
     * @param name - The name of the item you'd like to query.
     * @returns A `Promise` resolving to a `PassioIDAttributes` object if the
     *   record exists in the database or `null` if not.
     */
    getAttributesForName(name: string): Promise<PassioIDAttributes | null>;
    /**
     * Query Passio's UPC web service for nutrition attributes of a given barcode.
     * @param barcode - The barcode value for the attributes query, typically
     * taken from a scanned `BarcodeCandidate`.
     * @returns A `Promise` resolving to a `PassioIDAttributes` object if the
     *   record exists in the database or `null` if not.
     */
    fetchAttributesForBarcode(barcode: Barcode): Promise<PassioIDAttributes | null>;
    /**
     * Query Passio's web service for nutrition attributes given an OCR identifier.
     * @param ocrCode - The OCR identifier for the attributes query, taken from
     *   the list of OCR candidates on a `FoodDetectionEvent`.
     * @returns A `Promise` resolving to a `PassioIDAttributes` object if the
     *   record exists in the database or `null` if not.
     */
    fetchAttributesForOCR(ocrCode: OCRCode): Promise<PassioIDAttributes | null>;
    /**
     * Search the local database of foods with a given search term.
     * @param searchQuery - The search term to match against food item names.
     * @returns A `Promise` resolving to an array of food item names.
     */
    searchForFood(searchQuery: string): Promise<string[]>;
    convertUPCProductToAttributes(product: UPCProduct, entityType: PassioIDEntityType): Promise<PassioIDAttributes | null>;

PassioIDAttributes: Information associated with an item in the nutritional database. Check the entityType field to determine the type of the item.

    export interface PassioIDAttributes {
    /**
     * The ID of the item in the database
     */
    passioID: PassioID;
    /**
     * The name of the item
     */
    name: string;
    /**
     * The name of the image for this item. Provide this value to a `PassioIconView`
     * in order to display the image.
     */
    imageName: string;
    /**
     * The entity type of the item
     */
    entityType: PassioIDEntityType;
    /**
     * The nutritional data for this item in the database
     */
    foodItem?: PassioFoodItem;
    /**
     * The recipe data for this item in the database
     */
    recipe?: PassioRecipe;
    /**
     * Related items above this item in the food heirarchy (more generic)
     */
    parents: PassioAlternative[];
    /**
     * Related items below this item in the food heirarchy (more specific)
     */
    children: PassioAlternative[];
    /**
     * Related items at the same level as this item in the food heirarchy
     */
    siblings: PassioAlternative[];
}

PassioFoodItem: Nutritional information for an item in the food database

export interface PassioFoodItem {
    /**
     * The ID of the item in the database
     */
    passioID: PassioID;
    /**
     * The name of the item
     */
    name: string;
    /**
     * The name of the image for this item. Provide this value to a `PassioIconView`
     * in order to display the image.
     */
    imageName: string;
    /**
     * The default serving quantity
     */
    selectedQuantity: number;
    /**
     * The default serving unit
     */
    selectedUnit: string;
    /**
     * The entity type of the item
     */
    entityType: PassioIDEntityType;
    /**
     * The serving units available for this recipe
     */
    servingUnits: ServingUnit[];
    /**
     * The serving sizes available for this recipe
     */
    servingSizes: ServingSize[];
    /**
     * The mass of the serving size, in grams
     */
    computedWeight: Measurement;
    /**
     * Related items above this item in the food heirarchy (more generic)
     */
    parents?: PassioAlternative[];
    /**
     * Related items below this item in the food heirarchy (more specific)
     */
    children?: PassioAlternative[];
    /**
     * Related items at the same level as this item in the food heirarchy
     */
    siblings?: PassioAlternative[];
    /**
     * Calories, in kcal
     */
    calories?: number;
    /**
     * Carbohydrates, in grams
     */
    carbs?: number;
    /**
     * Fat, in grams
     */
    fat?: number;
    /**
     * Protein, in grams
     */
    protein?: number;
    /**
     * Saturated fat, in grams
     */
    saturatedFat?: number;
    /**
     * Transfat, in grams
     */
    transFat?: number;
    /**
     * Monounsaturated fat, in grams
     */
    monounsaturatedFat?: number;
    /**
     * Polyunsaturated fat, in grams
     */
    polyunsaturatedFat?: number;
    /**
     * Cholesterol, in milligrams
     */
    cholesterol?: number;
    /**
     * Sodium, in milligrams
     */
    sodium?: number;
    /**
     * Dietary fiber, in grams
     */
    fiber?: number;
    /**
     * Total sugars, in grams
     */
    sugar?: number;
    /**
     * Added sugar, in grams
     */
    sugarAdded?: number;
    /**
     * Vitamin D, in milligrams
     */
    vitaminD?: number;
    /**
     * Calcium, in milligrams
     */
    calcium?: number;
    /**
     * Iron, in milligrams
     */
    iron?: number;
    /**
     * Potassium, in milligrams
     */
    potassium?: number;
    /**
     * Vitamin A, in IU
     */
    vitaminA?: number;
    /**
     * Vitamin C, in milligrams
     */
    vitaminC?: number;
    /**
     * Alcohol, in grams
     */
    alcohol?: number;
    /**
     * Sugar alcohol, in grams
     */
    sugarAlcohol?: number;
    /**
     * Vitamin B12, in micrograms
     */
    vitaminB12?: number;
    /**
     * Added Vitamin B12, in micrograms
     */
    vitaminB12Added?: number;
    /**
     * Vitamin B6, in milligrams
     */
    vitaminB6?: number;
    /**
     * Vitamin E, in milligrams
     */
    vitaminE?: number;
    /**
     * Added Vitamin E, in milligrams
     */
    vitaminEAdded?: number;
    /**
     * Magnesium, in milligrams
     */
    magnesium?: number;
    /**
     * Phosphorus, in milligrams
     */
    phosphorus?: number;
    /**
     * Iodine, in micrograms
     */
    iodine?: number;
    /**
     * The ingredients listed on the product packaging, if any
     */
    ingredientsDescription?: string;
    /**
     * The UPC code for this food product, if available
     */
    barcode?: string;
}

PassioRecipe

export interface PassioRecipe {
    /**
     * The ID of the recipe in the database
     */
    passioID: PassioID;
    /**
     * The name of the recipe
     */
    name: string;
    /**
     * The name of the image for this recipe. Provide this value to a
     * `PassioIconView` in order to display the image.
     */
    imageName: string;
    /**
     * The serving sizes available for this recipe
     */
    servingSizes: ServingSize[];
    /**
     * The serving units available for this recipe
     */
    servingUnits: ServingUnit[];
    /**
     * The default serving unit
     */
    selectedUnit: string;
    /**
     * The default serving quantity
     */
    selectedQuantity: number;
    /**
     * The food items in this recipe
     */
    foodItems: PassioFoodItem[];
}

If at any point you need help from the Passio team, please reach out to us at support@passiolife.com

Last updated