I decided to run this task on app launch to sync the clinical labs into the SwiftData store. This allows me to use Query macro in the views where it's needed and no need to combine lab results. Let me know if this is the right approach: import SwiftData import SwiftUI import OSLog @ModelActor actor HealthKitSyncManager { private let logger = Logger(subsystem: com.trtmanager, category: HealthKitSyncManager) func sync() async { do { // Get all Clinical labs let hkClinicalRecords = try await TRTHealthKitService.getHKClinicalRecords() guard !hkClinicalRecords.isEmpty else { return } // Get existing HealthKit IDs in one query let descriptor = FetchDescriptor( // predicate: #Predicate { $0.source == .clinicalRecord } ) let existing = try modelContext.fetch(descriptor) .compactMap { $0.fhirResourceId } let existingIDs = Set(existing) let missingRecords = hkClinicalRecords.filter { lab in guard let fhirResource = lab.fhirResource else { return false } return !existingIDs.contains(f
Topic:
UI Frameworks
SubTopic:
SwiftUI
Tags: