【问题标题】:HealthKit Clinical Health Records - App Crash & Sample JSON Date type detailsHealthKit 临床健康记录 - 应用程序崩溃和示例 JSON 日期类型详细信息
【发布时间】:2022-01-06 05:24:01
【问题描述】:

参考 HealthKit - 临床健康记录,我们实现了以下方法来获取用户的临床记录,但似乎查询失败并且应用程序每次都崩溃。没有生成崩溃报告,因为查询数据后,应用崩溃了。

我们用 Apple 提供的示例帐户尝试了相同的方法,它在模拟器中运行良好,但它在实际用户中崩溃。

以下是我们使用article from Apple创建的代码sn-p:

func getRecordsForCHRType(type: HKClinicalTypeIdentifier, completion:@escaping ([HKClinicalRecord]?) -> Void) {
    guard let healthRecordType = HKObjectType.clinicalType(forIdentifier: type) else { return }

    let startDate = Calendar.current.date(byAdding: DateComponents(day: -365), to: Date())!
    let endDate = Calendar.current.date(byAdding: DateComponents(day: 0), to: Date())!
    let predicate = HKQuery.predicateForSamples(withStart: startDate, end: endDate, options: [.strictStartDate])
    let sortDescriptor = NSSortDescriptor(key: HKSampleSortIdentifierStartDate, ascending: false)
    let healthRecordQuery = HKSampleQuery(sampleType: healthRecordType, predicate: predicate, limit: 0, sortDescriptors: [sortDescriptor]) { (query, samples, error) in
        guard let actualSamples = samples else {
            completion(nil)
            return
        }
        let healthRecordSamples = actualSamples as? [HKClinicalRecord]
        completion(healthRecordSamples)
    }
    HKHealthStore().execute(healthRecordQuery)
   }

您能帮我们找出问题吗?

另外,请帮助我们了解样本临床健康记录 JSON 中可用的以下不同类型的日期(详细),是否可以对这些日期应用过滤器以缩小临床记录响应范围?

  1. 已发布
  2. 日期记录
  3. 记录日期
  4. 发病
  5. 有效数据时间

任何帮助将不胜感激!

【问题讨论】:

  • 在真机Xcode下运行你的应用
  • 感谢@Paulw11,我们在 xcode 下运行了应用程序,但我们使用 HealthKit 提供的示例数据,它可以工作并且我们能够获取 EHR。问题是我们的设备中没有 EHR,因为我们所在地区不支持它。但是对于我们拥有 EHR 数据和支持的用户,应用程序正在崩溃,我们无法在那里获取 xcode。

标签: ios apple-watch healthkit


【解决方案1】:

有人在https://developer.apple.com/forums/thread/695189上发布了同样的问题

崩溃肯定不会发生,你能把堆栈跟踪贴在这里吗?

关于日期,很大程度上取决于您要解析的资源类型以及数据模型中实际填充的日期,这取决于数据来源。 “开始日期”和“结束日期”有不同的含义,请参阅https://developer.apple.com/documentation/healthkit/hkclinicalrecord 的文档:

请注意,该记录继承了 HKSample 类的 startDate 和 endDate 属性。但是,系统不会使用来自 FHIR 数据的信息填充这些属性;相反,startDate 和 endDate 反映了系统将 FHIR 数据下载到设备的时间和日期。

【讨论】:

  • 谢谢@Pascal,我们在 xcode 模拟器下运行了应用程序,但使用 HealthKit 提供的示例数据,它可以工作并且我们能够获取 EHR。问题是我们的设备中没有 EHR,因为我们所在地区不支持它。但是对于我们拥有 EHR 数据和支持的用户,应用程序正在崩溃,我们无法从最终用户那里获取堆栈跟踪。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-07-27
  • 2020-01-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多