0

我在 FHIR 上使用 SMART 成功地从 Epic 的沙箱中提取测试患者数据,用于面向患者的应用程序(这是一个独立的启动)。我现在正在尝试从健康系统中提取真实的患者数据,但在尝试授权我的应用程序时不断收到错误消息:“OAuth2 错误。尝试授权客户端时出错。请尝试再次登录。”

当我使用沙盒数据进行测试时,我使用此代码作为参考,然后对其进行修改以适用于 React。这是我用来授权我的应用程序的代码:

function pullEpicData() {
    FHIR.oauth2.authorize({
        'client_id': {Non-Prod Client ID given by Epic},
        'scope':  'PATIENT.READ, PATIENT.SEARCH',
        'redirect_uri': {my website},
        'iss': 'https://fhir.epic.com/interconnect-fhir-oauth/api/FHIR/R4/'
    })
}

这工作得很好。

当我切换到 prod 模式时,我使用以下代码尝试授权我的应用程序:

function pullEpicData() {
    FHIR.oauth2.authorize({
        'client_id': {Prod Client ID given by Epic},
        'scope':  'PATIENT.READ, PATIENT.SEARCH',
        'redirect_uri': {my website},
        'iss': 'https://sfd.stanfordmed.org/FHIR/api/FHIR/R4/'
    })
}

但是,此授权不断失败。

我没有对我的代码进行任何其他更改。从沙盒切换到产品以使授权正常工作时,我还应该做些什么吗?我目前没有使用刷新令牌。谢谢!

4

1 回答 1

1

此问题有两个非常常见的原因:

  1. 您的客户端 ID 不符合自动同步条件。
  2. 您没有等待大约 12 小时来同步您的客户端 ID。

对于自动同步,当您注册客户端 ID 时,您选择的 API 可能会使您失去自动同步的资格。如果您不符合自动同步的条件,那么您要连接的医疗保健组织只需明确批准您的应用程序,然后才能使用它连接到他们的端点。客户端注册表底部附近有一个指示器,指示您是否有资格进行自动同步。

无论您的应用程序是否符合自动同步的条件,或者是否已获得健康系统的明确批准,对客户端的任何更改都可能需要长达约 12 小时才能同步(有一个作业每约 12 小时运行一次以下载更新)。

其他常见的 OAuth2 连接问题记录在我们的故障排除指南中(需要登录,但您可以免费注册一个帐户)。

于 2022-01-11T15:01:57.590 回答