SMART 4.0.0

SMART 4.0.0

测试已测试
语言语言 SwiftSwift
许可 未进行声明
发布上次发布2019年4月
SPM支持 SPM

Pascal PfiffnerDave Carlson 维护。



SMART 4.0.0

  • Pascal Pfiffner

Swift-SMART 是 SMART on FHIR 用于构建与医疗数据进行交互的应用程序的全客户端实现,遵循 🔥 FHIR 规范。使用 Swift 4.2 编写,与 iOS 11macOS 10.13 以及更高版本兼容,需要 Xcode 10 或更高版本。版本控制由于结合两种易变技术的复杂性,以下是 Swift 和 FHIR 使用的版本号的概述。

版本控制

由于组合两种易变技术的复杂性,以下是哪些版本号使用哪些 SwiftFHIR 版本的概述。

  • master 分支应该始终编译,并位于这些主要版本(点的发布)上。
  • develop 分支应该位于对应最新冻结版本的版本上,并且可能随时更新为最新的 CI 构建的最新和最佳版本。

请参阅 标记/发布

版本 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

资源

快速入门

请参阅编程指南,以获取更多代码示例和详细信息。

以下是在参考实现上工作的最小设置。假设您没有 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 一起使用,您还需要

  1. 在您的应用程序的 Info.plist 中注册方案(例如,下面例子中的 smartapp),并
  2. 在您的应用程序代理中拦截回调,如下所示
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 许可使用。