ProgramTrackedEntityAttribute.fromJson constructor
ProgramTrackedEntityAttribute.fromJson(
- Map<String, dynamic> jsonData
)
Implementation
factory ProgramTrackedEntityAttribute.fromJson(
Map<String, dynamic> jsonData) {
final optionSetValueCount =
jsonData['trackedEntityAttribute']?['optionSet']?['options']?.length;
final attribute =
jsonData['attribute'] ?? jsonData['trackedEntityAttribute']?['id'];
final translations = jsonData['trackedEntityAttribute']?['translations'] ??
jsonData['translationString'];
return ProgramTrackedEntityAttribute(
id: jsonData['id'],
attribute: attribute,
renderOptionsAsRadio: jsonData['renderOptionsAsRadio'],
name: jsonData['trackedEntityAttribute']?['name'] ?? jsonData['name'],
displayName: jsonData['trackedEntityAttribute']?['displayName'] ??
jsonData['displayName'],
formName: jsonData['trackedEntityAttribute']?['formName'] ??
jsonData['formName'],
program: jsonData['program'],
valueType: jsonData['valueType'],
displayInList: jsonData["displayInList"] ?? null,
sortOrder: jsonData['sortOrder'],
mandatory: jsonData['mandatory'],
aggregationType: jsonData['aggregationType'] ??
jsonData['trackedEntityAttribute']?['aggregationType'],
code: jsonData['trackedEntityAttribute']?['code'] ?? jsonData['code'],
generated: jsonData['generated'] ??
jsonData['trackedEntityAttribute']?['generated'],
isUnique: jsonData['isUnique'] ??
jsonData['trackedEntityAttribute']?['unique'],
optionSetValue: jsonData['optionSetValue'] ??
jsonData['trackedEntityAttribute']?['optionSetValue'],
optionSetValueCount: optionSetValueCount,
optionSetName: jsonData['optionSetName'] ??
jsonData['trackedEntityAttribute']?['optionSet']?['name'],
options: List<dynamic>.from(jsonData['options'] ??
jsonData['trackedEntityAttribute']?['optionSet']?['options'] ??
[])
.map((option) => AttributeOption.fromJson({
...option,
'id': '${option['id']}_${jsonData['id']}_$attribute',
'programTrackedEntityAttribute': jsonData['id'],
'attribute': attribute,
'dirty': false
}))
.toList(),
dirty: jsonData['dirty'],
translations: translations);
}