Swift-SMART 是 SMART on FHIR 用于构建与医疗数据进行交互的应用程序的全客户端实现,遵循 🔥 FHIR 规范。使用 Swift 4.2 编写,与 iOS 11 和 macOS 10.13 以及更高版本兼容,需要 Xcode 10 或更高版本。
版本控制
由于组合两种易变技术的复杂性,以下是哪些版本号使用哪些 Swift 和 FHIR 版本的概述。
请参阅 标记/发布。
版本 | Swift | FHIR | |
---|---|---|---|
4.0 | 4.2 | 4.0.0-a53ec6ee1b |
R4 |
3.2 | 3.2 | 3.0.0.11832 |
STU 3 |
3.0 | 3.0 | 3.0.0.11832 |
STU 3 |
2.9 | 3.0 | 1.6.0.9663 |
STU 3 投票,2016年9月 |
2.8 | 3.0 | 1.0.2.7202 |
DSTU 2 (教科书修订有技术勘误) |
2.4 | 2.2 | 1.6.0.9663 |
STU 3 投票,2016年9月 |
2.3 | 2.3 | 1.0.2.7202 |
DSTU 2 (教科书修订有技术勘误) |
2.2.3 | 2.2 | 1.0.2.7202 |
DSTU 2 (教科书修订有技术勘误) |
2.2 | 2.0-2.2 | 1.0.2.7202 |
DSTU 2 (教科书修订有技术勘误) |
2.1 | 2.0-2.2 | 1.0.1.7108 |
DSTU 2 |
2.0 | 2.0-2.2 | 0.5.0.5149 |
DSTU 2 投票,2015年5月 |
1.0 | 1.2 | 0.5.0.5149 |
DSTU 2 投票,2015年5月 |
0.2 | 1.1 | 0.5.0.5149 |
DSTU 2 投票,2015年5月 |
0.1 | 1.0 | 0.0.81.2382 |
DSTU 1 |
资源
- 编程指南,包含代码示例
- 技术文档,包含类、属性和方法
- 药典列表 示例应用程序
- SMART on FHIR API 文档
快速入门
请参阅编程指南,以获取更多代码示例和详细信息。
以下是在参考实现上工作的最小设置。假设您没有 client_id
,在首次认证时,将 将客户端注册到我们的服务器,然后继续检索令牌。如果您知道客户端-id,您可以在设置字典中指定它。应用程序还必须注册 redirect
URL 方案,以便在认证完成后接收通知。
import SMART
// create the client
let smart = Client(
baseURL: URL(string: "https://fhir-api-dstu2.smarthealthit.org")!,
settings: [
//"client_id": "my_mobile_app", // if you have one
"redirect": "smartapp://callback", // must be registered
]
)
// authorize, then search for prescriptions
smart.authorize() { patient, error in
if nil != error || nil == patient {
// report error
}
else {
MedicationOrder.search(["patient": patient!.id])
.perform(smart.server) { bundle, error in
if nil != error {
// report error
}
else {
var meds = bundle?.entry?
.filter() { return $0.resource is MedicationOrder }
.map() { return $0.resource as! MedicationOrder }
// now `meds` holds all the patient's orders (or is nil)
}
}
}
}
为了能与 Safari/SFViewController 一起使用,您还需要
- 在您的应用程序的
Info.plist
中注册方案(例如,下面例子中的smartapp
),并 - 在您的应用程序代理中拦截回调,如下所示
class AppDelegate: UIResponder, UIApplicationDelegate {
func application(_ app: UIApplication, open url: URL,
options: [UIApplicationOpenURLOptionsKey: Any] = [:]) -> Bool {
// "smart" is your SMART `Client` instance
if smart.awaitingAuthCallback {
return smart.didRedirect(to: url)
}
return false
}
}
安装
建议将 Swift-SMART 添加为 git 子模块到您的项目中。您可以在安装页面上找到有关如何操作的详细说明。
框架也可以通过 Carthage 安装,并且通过 CocoaPods (命名为 “SMART”)提供。
许可证
此工作受Apache 2许可证: NOTICE.txt。FHIR® 是 HL7 的注册商标,并经 HL7 许可使用。