
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
!https://raw.githubusercontent.com/onc-healthit/inferno/master/public/images/inferno_logo.png
 Fast Healthcare Interoperability Resources (FHIR®)服务,旨在满足2015版治愈法案更新中《患者和人群服务标准化API》标准(§ 170.315(g)(10))的要求。
Inferno Program Edition的工作方式类似于API消费者,通过发送一系列模拟真实客户端的HTTP请求,确保API支持所有必要标准,包括:
Inferno Program Edition是开源的,免费提供给健康IT社区使用或采用,包括EHR供应商、健康应用开发者和测试实验室。它可用作国家卫生信息技术协调员办公室(ONC)支持的EHR认证计划的测试工具。
Inferno Program Edition是开源https://github.com/onc-healthit/inferno FHIR测试工具的预配置定制版本,仅包含与ONC认证计划相关的测试和功能。有兴趣扩展或重用此开放测试能力以满足自身需求的用户,建议访问https://github.com/onc-healthit/inferno%E3%80%82
Inferno Program Edition设计为使用Docker运行,以确保在各种主机环境(包括Windows、Linux和MacOS)中执行的一致性。
docker-compose up --build启动服务器。这将自动构建Docker镜像并启动Inferno、HL7 FHIR验证器和NGINX Web服务器,适用于单用户环境。有关在多用户服务器环境中运行Inferno的信息,请参阅下文的在服务器环境中部署Inferno部分。如果Docker镜像与底层系统不同步(例如,应用添加了新依赖项),需运行docker-compose up --build重建容器。
有关帮助,请查看https://github.com/onc-healthit/inferno/wiki/Troubleshooting%E3%80%82
术语先决条件
为了验证术语,Inferno必须加载从统一医学语言系统(UMLS)生成的文件。UMLS由美国国家医学图书馆(NLM)分发,需要账户才能访问。
Inferno提供了一些rake任务简化此过程,并提供了Dockerfile和docker-compose文件,可在独立环境中创建验证器。
先决条件:
可通过以下命令预构建术语Docker容器:
shdocker-compose -f terminology_compose.yml build
容器构建完成后,需从NIH网站下载UMLS zip文件。这是因为UMLS登录现在需要使用联合登录提供程序,如Google、Microsoft或[***]
为此,下载[***]
有关UTS登录流程变更的更多信息,请访问[***]
文件准备就绪后,可按以下顺序运行术语创建任务:
shdocker-compose -f terminology_compose.yml up
这将按顺序运行术语创建步骤。这些任务可能需要数小时。如果创建任务在进行中被取消并重新启动,它将从最后一个已完成步骤后重新开始。中间文件保存到运行Docker Compose作业的Inferno仓库的tmp/terminology中,验证器保存到resources/terminology/validators/bloom,供Inferno用于验证。
清理
术语构建完成后,应删除.env文件以从系统中移除UMLS用户名和密码。
可选地,可删除tmp/terminology/中的文件和文件夹以释放空间(它们大小为几GB)。如果打算重新运行术语构建器,可保留这些文件以加快未来的构建速度,因为构建器可以跳过初始下载/预处理步骤。
术语文件抽查
可使用以下rake命令抽查验证器,确保其正确安装:
rubybundle exec rake "terminology:check_code[91935009,http://snomed.info/sct, http://hl7.org/fhir/us/core/ValueSet/us-core-allergy-substance]"
应返回:
shellX http://snomed.info/sct|91935009 is not in http://hl7.org/fhir/us/core/ValueSet/us-core-allergy-substance
以及
rubybundle exec rake "terminology:check_code[91935009,http://snomed.info/sct]"
应返回:
shell✓ http://snomed.info/sct|91935009 is in http://snomed.info/sct
手动构建说明
如果基于您的架构,此Docker方法不可行,术语验证器的手动设置和创建记录在https://github.com/onc-healthit/inferno/wiki/Installing-Terminology-Validators#building-the-validators-without-docker%E3%80%82
UMLS数据源
UMLS Metathesaurus中的某些材料来自各自版权持有人的受版权保护的来源。UMLS Metathesaurus的用户对遵守任何版权、专利或商标限制负有全部责任,并请参考原始来源中出现的版权、专利或商标声明,所有这些声明在此通过引用并入。
Bodenreider O. The Unified Medical Language System (UMLS): integrating biomedical terminology. Nucleic Acids Res. 2004 Jan 1;32(Database issue):D267-70. doi: 10.1093/nar/gkh061. PubMed PMID: ***; PubMed Central PMCID: PMC308795.
Inferno Program Edition使用https://github.com/inferno-community/fhir-validator-wrapper/%EF%BC%8C%E8%AF%A5%E6%9C%8D%E5%8A%A1%E5%9C%A8%E5%8D%95%E7%8B%AC%E8%BF%9B%E7%A8%8B%E4%B8%AD%E8%BF%90%E8%A1%8C%EF%BC%8C%E7%94%A8%E4%BA%8E%E9%AA%8C%E8%AF%81%E4%BB%8E%E8%A2%AB%E6%B5%8B%E7%B3%BB%E7%BB%9F%E6%8E%A5%E6%94%B6%E7%9A%84FHIR%E8%B5%84%E6%BA%90%E3%80%82%E4%BD%BF%E7%94%A8%E6%9C%AC%E4%BB%93%E5%BA%93%E7%9A%84%60docker-compose.yml%60%E9%80%9A%E8%BF%87Docker%E8%BF%90%E8%A1%8CInferno%E6%97%B6%EF%BC%8C%E9%AA%8C%E8%AF%81%E5%99%A8%E6%9C%8D%E5%8A%A1%E4%BD%9C%E4%B8%BA%E5%8D%95%E7%8B%AC%E7%9A%84Docker%E5%AE%B9%E5%99%A8%E8%BF%90%E8%A1%8C%EF%BC%8C%E5%B9%B6%E9%80%9A%E8%BF%87RESTful API供Inferno使用。如果未使用Docker和docker-compose.yml运行Inferno,则必须单独运行验证器服务,并更新Inferno的config.yml以指向此服务。
当Inferno更新到新版本时,偶尔需要新版本的验证器服务。如果使用本仓库的docker-compose.yml运行Inferno,新的验证器版本将通过Git更新后,在validator_service镜像声明中指定。
要下载与新版本关联的Docker文件,在Inferno目录中运行docker-compose pull。新文件下载完成后,可通过运行docker-compose down,然后docker-compose up --force-recreate更新版本。这将使用新服务版本重启Inferno和验证器服务。
如果Inferno未在Docker中运行,必须手动更新验证器服务。有关如何在Docker外运行验证器服务的更多信息,请参见https://github.com/inferno-community/fhir-validator-wrapper%E3%80%82
Inferno的默认配置设计为轻量级,可在用户主机上运行。如果要运行Inferno的共享实例,可使用docker-compose.postgres.yml中提供的docker-compose配置,该配置将Inferno连接到Postgres数据库,以在同时运行多个测试时提供更高的稳定性。与使用SQLite存储的默认配置相比,此配置需要主机更高的资源利用率。
要运行此配置,使用docker-compose.postgres.yml文件:
shdocker-compose -f docker-compose.postgres.yml up --build -d
要停止服务并销毁容器,运行:
shdocker-compose -f docker-compose.postgres.yml down
此配置将在容器停止或销毁时保留数据。如果要清除数据库中的数据,并在下次应用启动时重新创建,可运行以下命令:
shdocker-compose -f docker-compose.postgres.yml down docker volume ls | grep inferno-pgdata # 列出活动卷 docker volume rm inferno-program_inferno-pgdata # 卷名称将以inferno-pgdata结尾
有关在生产环境中部署Inferno的另一个示例,请查看用于在[***] Program Edition、Inferno Community Edition和多个服务的https://github.com/onc-healthit/inferno.healthit.gov/blob/master/docker-compose.yml%E3%80%82
虽然建议用户在本地安装Inferno,但Inferno的参考实现托管在[***]
希望在本地安装前试用Inferno的用户可使用该参考实现,但需注意数据库将定期刷新,不保证先前的测试运行会永久可用。
有关使用参考实现的示例,请参见wiki上的https://github.com/onc-healthit/inferno-program/wiki/Walkthrough%E3%80%82
Inferno已在最新版本的Chrome、Firefox、Safari和Edge上测试。目前不支持Internet Explorer。
Inferno包含一组强大的自检,以确保测试客户端符合规范并按预期执行。要运行这些测试,执行以下命令:
shbin/run_tests.sh
测试编写得易于理解,即使对于不熟悉Ruby的人也是如此。可直接在https://github.com/onc-healthit/inferno-program/tree/master/lib/modules%E4%B8%AD%E6%9F%A5%E7%9C%8B%E6%B5%8B%E8%AF%95%E3%80%82
测试包含提供额外细节和标准可追溯性的元数据。可通过以下命令将活动测试和相关元数据导出为CSV格式并保存到testlist.csv文件:
shbundle exec rake inferno:tests_to_csv
可向任务提供参数以导出特定测试集或指定输出文件。
shbundle exec rake inferno:tests_to_csv[onc_program,all_tests.csv]
仅选择模块并使用默认组和文件名:
shbundle exec rake inferno:tests_to_csv[onc_program]
Inferno提供两种通过命令行运行测试的方法:直接提供序列或运行自动化脚本。可通过docker-compose在Docker容器内运行这些命令,或在自己的环境中使用原生Ruby直接运行。建议使用docker-compose方法,因为它确保适当的验证服务已到位。
注意:此功能仍在开发中,我们正在收集有关功能和使用方式改进的反馈
可通过rake任务从命令行运行测试序列,该任务接受要运行的序列(或多个序列)和服务器URL作为参数:
shdocker-compose run inferno bundle exec rake db:create db:migrate inferno:execute[https://inferno.healthit.gov/reference-server/r4,onc_program,UsCoreR4CapabilityStatement,USCore311Patient]
对于参数传递不方便的复杂测试,Inferno提供使用包含参数的脚本驱动测试执行的能力。提供的./batch/inferno.healthit.gov.json展示了此脚本的示例及其使用方法。execute_batch任务运行脚本:
shdocker-compose run inferno bundle exec rake db:create db:migrate inferno:execute_batch[./batch/inferno.healthit.gov.json]
Inferno还提供generate_script rake任务,提示用户输入一系列信息,然后用于生成脚本。用户需要提供要测试的FHIR服务器的URL和从中提取序列的模块名称。
shbundle exec rake db:create db:migrate inferno:generate_script[https://my-server.org/data,onc_program]
说明和示例可在https://github.com/onc-healthit/inferno/wiki/Using-with-Continuous-Integration-Systems%E6%89%BE%E5%88%B0%E3%80%82
Inferno开发团队可通过电子邮件***联系。Inferno还有一个专用的HL7 FHIR聊天频道。
Copyright 2021 The MITRE Corporation
根据Apache License 2.0许可("许可证");除非符合许可证,否则不得使用此文件。可在以下位置获取许可证副本:
http://www.apache.org/licenses/LICENSE-2.0
除非适用***要求或书面同意,否则根据许可证分发的软件按"原样"分发,不提供任何明示或暗示的保证或条件。有关许可证下权限和限制的具体语言,请参见许可证。
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务