如何利用OAuth返回的Encounter ID从Epic获取对应Encounter资源?
明确ID类型差异:OAuth返回的长串ID
TAqTmwSWejWw52Ksfl2zlaiKfIbqjpN1CXEL68zfvJLsB是Epic的FHIR逻辑ID,你在搜索结果里看到的短IDeVffiE7SavpOc0PtATuBQWg3是Epic内部的业务主ID。直接调用Read接口失败,大概率是端点格式或权限问题。正确调用Encounter.Read接口:
按照Epic FHIR规范,Read接口的完整URL格式需包含基础端点、资源类型和逻辑ID,示例如下:GET [你的Epic FHIR基础URL]/Encounter/TAqTmwSWejWw52Ksfl2zlaiKfIbqjpN1CXEL68zfvJLsB务必确保请求头里携带有效的
Authorization: Bearer {你的access_token},且该token已申请Encounter.read的权限范围。Read失败时用Search接口兜底:
如果直接Read仍找不到资源,换用_id参数搜索该逻辑ID,接口格式:GET [你的Epic FHIR基础URL]/Encounter?_id=TAqTmwSWejWw52Ksfl2zlaiKfIbqjpN1CXEL68zfvJLsB这种方式会返回所有匹配该逻辑ID的Encounter资源,只要沙箱中存在对应资源就会被检索到。
关于identifier参数的编码系统:
若想用短业务ID搜索,Epic的Encounter业务ID对应的编码系统通常为urn:oid:2.16.840.1.113883.19.5.1.798,也可以从已获取的Encounter资源的identifier字段中直接提取system值。示例搜索格式:GET [你的Epic FHIR基础URL]/Encounter?identifier=urn:oid:2.16.840.1.113883.19.5.1.798|eVffiE7SavpOc0PtATuBQWg3排查权限与沙箱数据:
确认你的SMART应用已申请Encounter.read权限,另外部分测试沙箱的授权上下文可能返回虚拟的encounter ID,实际无对应资源,这种情况需更换有效的测试上下文重新授权。
内容的提问来源于stack exchange,提问作者Teun Ververs

