getResourceType method

Future<List<Resource>> getResourceType(
  1. String? password, {
  2. List<R4ResourceType>? resourceTypes,
  3. List<String>? resourceTypeStrings,
  4. Resource? resource,
})

returns all resources of a specific type

Implementation

Future<List<Resource>> getResourceType(
  String? password, {
  List<R4ResourceType>? resourceTypes,
  List<String>? resourceTypeStrings,
  Resource? resource,
}) async {
  final typeList = <R4ResourceType>{};
  if (resource?.resourceType != null) {
    typeList.add(resource!.resourceType!);
  }
  if (resourceTypes != null) {
    if (resourceTypes.isNotEmpty) {
      typeList.addAll(resourceTypes);
    }
  }
  if (resourceTypeStrings != null) {
    for (final type in resourceTypeStrings) {
      if (ResourceUtils.resourceTypeFromStringMap[type] != null) {
        typeList.add(ResourceUtils.resourceTypeFromStringMap[type]!);
      }
    }
  }

  final List<Resource> resourceList = [];
  for (final type in typeList) {
    if (ResourceUtils.resourceTypeToStringMap[type] != null) {
      _setStoreType(ResourceUtils.resourceTypeToStringMap[type]!);
      final finder = Finder(sortOrders: [SortOrder('id')]);
      resourceList.addAll(await _search(password, finder));
    }
  }
  return resourceList;
}