Skip to main content

MeDataService API

MeData Service is the core of the Mobile SDK. It collects MeData values from various sources according to the MeData Definitions managed on Orchestrator. Most of other Mobile SDK services are triggered or effected by MeData Service.

To access MeDataService functions; get its instance from DataSapien object: DataSapien.getMeDataService().

Functions (JavaScript)

Public functions

Promise<void>

MeDataService.saveMeDataRecord(name, values)

Saves a new MeData record for the given definition name with the provided values.

Parameters

  • name: string - MeData definition name (for example "daily_steps").
  • values: any - JSON‑serializable value or array of values to be stored for the definition.

Promise<void>

MeDataService.syncMeDataDefinitions()

Synchronizes MeData definitions with the Orchestrator and updates local storage.

Parameters

  • (none)

Promise <MeDataDefinition[]>

MeDataService.getMeDataDefinitions()

Returns all MeData definitions as a JSON array.

Parameters

  • (none)

Promise <MeDataDefinition | null>

MeDataService.getMeDataDefinition(name)

Returns a single MeData definition by its name, or null if it is not found.

Parameters

  • name: string - The unique MeData definition name (for example "daily_steps").

Promise <MeDataCategory[] | null>

MeDataService.getMeDataCategories()

Returns all MeData categories as an array, or null if no categories are available.

Parameters

  • (none)

Promise <MeDataDefinition[] | null>

MeDataService.getMeDataDefinitionsByCategory(name)

Returns MeData definitions for the given category name, or null if no definitions exist in that category.

Parameters

  • name: string - Category name to filter MeData definitions.

Promise <MeDataRecord[] | null>

MeDataService.getMeDataRecords(name)

Returns all stored records for the given MeData definition name, or null if no records exist.

Parameters

  • name: string - MeData definition name whose records should be fetched.

Promise <MeDataRecord | null>

MeDataService.getLastMeDataRecord(name)

Returns the most recent MeData record for the given definition name, or null if there is no record.

Parameters

  • name: string - MeData definition name whose latest record should be returned.

Promise<object>

MeDataService.collectMeData(meDataDefinitionNames)

Triggers MeData collectors for the given definition names and returns an object mapping each definition name to its collected data.

Parameters

  • meDataDefinitionNames: string[] - Array of MeData definition names to collect.

Classes (JavaScript)

MeDataDefinition (JavaScript)

{
id: string;
name: string;
text: string;
source: string;
script?: Script | null;
valueDef?: ValueDefinition | null;
category?: MeDataCategory | null;
iconUrl?: string | null;
description?: string | null;
sharable?: boolean | null;
hidden?: boolean | null;
storageSettings?: MeDataStorageSettings | null;
question?: Question | null;
}

MeDataStorageSettings (JavaScript)

{
onlyIfChanged?: boolean | null;
longLimit?: number | null;
}

DataType (JavaScript)

"STRING" | "NUMBER" | "BOOLEAN" | "DATETIME" | "IMAGE" | "VIDEO" | "OBJECT" | "UNKNOWN" | null

EnumeratedValue (JavaScript)

{
id: string;
name: string;
text: string;
description?: string | null;
imageUrl?: string | null;
}

EnumeratedValueConstraints (JavaScript)

{
allowNone?: boolean | null;
allowIdk?: boolean | null;
allowNa?: boolean | null;
allowOther?: boolean | null;
}

MeDataCategory (JavaScript)

{
id: string;
text: string;
name: string;
iconUrl?: string | null;
description?: string | null;
}

MeDataType (JavaScript)

"NATIVE" | "QA" | "SCRIPT" | "INFERRED" | "UNKNOWN"

Question (JavaScript)

{
id: string;
name: string;
text: string;
description?: string | null;
imageUrl?: string | null;
}

QuestionDefinition (JavaScript)

{
valueDef: ValueDefinition;
question: Question;
isMeData: boolean;
contextKey: string;
}

ValueDefinition (JavaScript)

{
type: string;
constraints?: ValueTypeConstraints | null;
multivalued?: boolean | null;
multiValueConstraints?: MultiValueConstraints | null;
enumerated?: boolean | null;
enumeratedValues?: EnumeratedValue[] | null;
enumeratedValueConstraints?: EnumeratedValueConstraints | null;
}

ValueTypeConstraints (JavaScript)

{
minValue?: number | null;
maxValue?: number | null;
regex?: string | null;
allowCamera?: boolean | null;
allowGallery?: boolean | null;
}

MultiValueConstraints (JavaScript)

{
minValue: number;
maxValue: number;
}

MeData (JavaScript)

{
id: string;
definitionName: string;
records: MeDataRecord[];
}

MeDataRecord (JavaScript)

{
id: string;
meDataDefinitionId: string;
notAvailable: boolean;
date: number;
values: MeDataValue[];
}

MeDataValue (JavaScript)

{
id: string;
evName?: string | null;
value: string;
}