toSingleton static method
Returns a singleton, based on the input.
Throws if input is not empty, or has single entry. Creates FhirPathQuantity from map inputs.
Anything else is merely returned unmodified.
Implementation
static List<dynamic> toSingleton(
List<dynamic> input, {
String? name,
String? operation,
List<dynamic>? collection,
}) {
if (input.isEmpty) {
return [];
}
if (input.length > 1) {
throw FhirPathEvaluationException(
'The $name is required to be '
'either an empty value, or a single value. Instead it evaluated to: $input.',
operation: operation,
collection: collection);
}
final item = input.first;
if (item is Map) {
if (item['value'] != null && item['code'] != null) {
return [
FhirPathQuantity(FhirDecimal(item['value']).value ?? double.nan,
item['code'] as String)
];
}
}
return input;
}