首页
/ Granola:健康数据的营养化序列器

Granola:健康数据的营养化序列器

2024-05-30 16:07:20作者:秋阔奎Evelyn

Granola,一个用于将你的HealthKit数据转化为JSON的健康良伴,让你轻松地将这些宝贵的数据存储到HealthKit之外的地方,如远程服务器进行分析或备份。借助Granola,你可以省去手动映射HealthKit API到JSON的繁琐工作,并确保输出的JSON符合Open mHealth开发的规范,使其更具直观性和临床意义。

安装

使用CocoaPods,Objective-C的依赖管理工具,只需在你的Podfile中添加:

pod "Granola"

然后运行:

$ pod install

简单几步,Granola就已准备就绪。

使用

快速启动时,首先要熟悉Apple的HealthKit Framework Reference,了解如何请求用户的权限以及如何查询获取的数据。以下是一个简单的示例,展示如何将步数样本转换为JSON:

// ...
HKSampleQuery* query = 
  [[HKSampleQuery alloc] initWithSampleType:stepsSampleType
                                  predicate:nil
                                      limit:HKObjectQueryNoLimit
                            sortDescriptors:nil
                             resultsHandler:^(HKSampleQuery *query,
                                              NSArray *results,
                                              NSError *error) {
     HKQuantitySample *sample = [results first];
     OMHSerializer *serializer = [OMHSerializer new];
     NSString* jsonString = [serializer jsonForSample:sample error:nil];
     NSLog(@"sample json: %@", jsonString);
   }];
// ...

你会看到,结果是符合Open mHealth标准的JSON格式。

支持的HKObjectType

Granola支持所有的HealthKit样本(HKSample),无论是通过精心策划的Open mHealth模式还是通用的HealthKit模式。你可以查看详细的类型和其对应模式映射表,并可使用静态方法获取所有支持类型的类名:

[OMHHealthKitConstantsMapper allSupportedTypeIdentifiersToClasses]

或者只获取类型标识符:

[OMHSerializer supportedTypeIdentifiers]

甚至仅获取使用Open mHealth模式的类型:

[OMHSerializer supportedTypeIdentifiersWithOMHSchema]

时间区处理

Granola会使用HKMetadataKeyTimeZone键指定的时间区来序列化时间戳。如果没有提供时间区信息,它将使用应用的默认时间区。需要注意的是,如果原始数据创建时的时间区与序列化时不同,可能会导致时间戳出现偏差。

联系我们与贡献

有任何问题?请开启新的Issue! 或者直接在Twitter上找到Open mHealth (@openmhealth)。

想参与进来?只需按照经典的GitHub流程:fork,创建新分支,提交更改,然后发起pull request。

许可证

Granola遵循Apache 2许可,详情见LICENSE文件。

作者

  • Brent Hargrave (@brenthargrave)
  • Chris Schaefbauer (chris.schaefbauer@openmhealth.org)
  • Emerson Farrugia (emerson@openmhealth.org)

Granola是你走向健康数据管理和分析的理想伴侣,准备好了吗?现在就开始用它释放你的数据潜力吧!

登录后查看全文
热门项目推荐