import { Expose, Transform } from 'class-transformer' import { isString } from 'lodash' import { parse } from '../utils/number/parse' import { BaseModel } from './base.model' export class Bioimpedance extends BaseModel { @Expose() id: string @Expose() @Transform(parse, { toClassOnly: true }) lower_limit_weight?: number @Expose() @Transform(parse, { toClassOnly: true }) upper_limit_weight?: number @Expose() @Transform(parse, { toClassOnly: true }) total_body_water?: number @Expose() @Transform(parse, { toClassOnly: true }) lower_limit_total_body_water?: number @Expose() @Transform(parse, { toClassOnly: true }) upper_limit_total_body_water?: number // bfm = body fat mass @Expose() @Transform(parse, { toClassOnly: true }) bfm?: number @Expose() @Transform(parse, { toClassOnly: true }) lower_limit_bfm?: number @Expose() @Transform(parse, { toClassOnly: true }) upper_limit_bfm?: number @Expose() @Transform(parse, { toClassOnly: true }) bfm_right_arm?: number @Expose() @Transform(parse, { toClassOnly: true }) bfm_left_arm?: number @Expose() @Transform(parse, { toClassOnly: true }) bfm_percentage_right_arm?: number @Expose() @Transform(parse, { toClassOnly: true }) bfm_percentage_left_arm?: number @Expose() @Transform(parse, { toClassOnly: true }) bfm_trunk?: number @Expose() @Transform(parse, { toClassOnly: true }) bfm_percentage_trunk?: number @Expose() @Transform(parse, { toClassOnly: true }) bfm_right_leg?: number @Expose() @Transform(parse, { toClassOnly: true }) bfm_left_leg?: number @Expose() @Transform(parse, { toClassOnly: true }) bfm_percentage_right_leg?: number @Expose() @Transform(parse, { toClassOnly: true }) bfm_percentage_left_leg?: number // smm = skeletal muscle mass @Expose() @Transform(parse, { toClassOnly: true }) smm?: number @Expose() @Transform(parse, { toClassOnly: true }) lower_limit_smm?: number @Expose() @Transform(parse, { toClassOnly: true }) upper_limit_smm?: number // bmi = body mass index @Expose() @Transform(parse, { toClassOnly: true }) bmi?: number @Expose() @Transform(parse, { toClassOnly: true }) lower_limit_bmi?: number @Expose() @Transform(parse, { toClassOnly: true }) upper_limit_bmi?: number // pbf = percent body fat @Expose() @Transform(parse, { toClassOnly: true }) pbf?: number @Expose() @Transform(parse, { toClassOnly: true }) lower_limit_pbf?: number @Expose() @Transform(parse, { toClassOnly: true }) upper_limit_pbf?: number // ffm = fat free mass @Expose() @Transform(parse, { toClassOnly: true }) ffm_right_arm?: number @Expose() @Transform(parse, { toClassOnly: true }) ffm_left_arm?: number @Expose() @Transform(parse, { toClassOnly: true }) ffm_percentage_right_arm?: number @Expose() @Transform(parse, { toClassOnly: true }) ffm_percentage_left_arm?: number @Expose() @Transform(parse, { toClassOnly: true }) ffm_trunk?: number @Expose() @Transform(parse, { toClassOnly: true }) ffm_percentage_trunk?: number @Expose() @Transform(parse, { toClassOnly: true }) ffm_right_leg?: number @Expose() @Transform(parse, { toClassOnly: true }) ffm_left_leg?: number @Expose() @Transform(parse, { toClassOnly: true }) ffm_percentage_right_leg?: number @Expose() @Transform(parse, { toClassOnly: true }) ffm_percentage_left_leg?: number // vfl = visceral fat level @Expose() @Transform(value => (isString(value) ? parse(value?.replace(/Level /g, '')) : value), { toClassOnly: true }) vfl?: number // inbody score @Expose() @Transform(parse, { toClassOnly: true }) score?: number get ideal_vfl(): string { return '1-9' } }