微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用带有参数 -ig

如何解决使用带有参数 -ig

我无法使用独立的命令行 HAPI 验证器 (validator_cli.jar) 来验证具有从 simplifier.net 下载的某些包的资源。

所需的包及其依赖项已根据 simplifier.net 包页面显示的常规说明安装在 FHIR 包缓存中,即通过 fhir install <package> <version>。手动检查缓存(@%userprofile%/.fhir/packages)未见异常;内容显示在这文章的末尾。 package.jsonfhirpkg.lock.json 位于验证器进程工作目录中,即使验证器似乎并不关心它。

用于调用验证器的命令行是:

<java.exe> -jar <validator_cli.jar> <resource> -tx n/a -version 4.0.1 -ig [package]

尖括号中的内容是相关文件的完全限定路径的占位符;如果发现文件名包含空格,则调用程序会自动添加引号字符。 [package] 是规范的包名,可以选择包含版本。

使用上面的调用模式,验证对某些包按预期工作,但对其他包则不然。一个有效的例子是 de.abda.eRezeptAbgabedaten#1.0.3(项目 eRezeptAbgabedaten @ simplifier.net)。

不起作用的示例是 de.gematik.erezept-workflow.r4#1.0.2de.gkvsv.eRezeptAbrechnungsdaten#1.0.3。对于这些,验证器加载所有相关的包,然后它要么以退出代码 1 终止,要么永远挂起,而不指示它在做什么。在任何情况下都不会出现“Validating”行,并且无论是否存在 -profile 参数,结果都是相同的。

FHIR Validation tool Version 5.3.14 (Git# d17a8da923f9). Built 2021-05-14T15:06:07.75Z (9 days old)
  Java:   1.8.0_101 from C:\Program Files\Java\jre1.8.0_101 on amd64 (64bit). 7264MB available
  Paths:  Current = d:\dev\FHIR\CLI,Package Cache = C:\Users\KnightOwl\.fhir\packages
  Params: d:\dev\CLR\ApoTI\E-Rezept-Beispieldaten\ABDA\eRezeptAbrechnungsdaten-1.0.3\529d741c-7ad8-41d8-97c3-9aabbdd084b2.xml -tx n/a -version 4.0.1 -debug -ig de.gkvsv.eRezeptAbrechnungsdaten#1.0.3
Loading
  Load FHIR v4.0 from hl7.fhir.r4.core#4.0.1 - 4575 resources (00:05.0071)
  Load hl7.terminology#2.1.0 - 3767 resources (00:01.0358)
  Terminology server null - Version n/a: No Terminology Server (00:00.0000)
  Load de.basisprofil.r4#0.9.13 - 128 resources (00:00.0161)
  Load de.abda.eRezeptAbgabedaten#1.0.3 - 49 resources (00:00.0066)
  Load KBV.Basis#1.1.3 - 68 resources (00:00.0081)
  Load KBV.ITA.FOR#1.0.3 - 14 resources (00:00.0068)
  Load KBV.ITA.ERP#1.0.1 - 28 resources (00:00.0051)
  Load de.gematik.erezept-workflow.r4#1.0.2

-> exit code 1

Firely 终端 (fhir validate) 中内置的验证器不会出现这些问题,即使它使用相同的包缓存。

注意:de.gematik.erezept-workflow.r4#1.0.2 可能以某种方式中毒并导致另一个包失败,因为它是它的依赖项之一。

关于找出有毒包有什么问题的任何提示,以便我可以清理它以供验证使用?不幸的是,即使使用 -debug,验证器本身也没有给出任何提示

注意:我上面使用的资源是来自项目 example resource、包 eRezeptAbrechnungsdaten 的第一个 de.gkvsv.eRezeptAbrechnungsdaten#1.0.3。这是 fhir cache输出

de.abda.eRezeptAbgabedaten@1.0.3
de.basisprofil.r4@0.9.13
de.gematik.erezept@workflow.r4#1.0.2
de.gkvsv.eRezeptAbrechnungsdaten@1.0.3
hl7.fhir.core@4.0.1
hl7.fhir.r4.core@4.0.1
hl7.fhir.r4.elements@4.0.1
hl7.fhir.r4.examples@4.0.1
hl7.fhir.r4.expansions@4.0.1
hl7.fhir.r5.core@current
hl7.fhir.xver@extensions#0.0.4
hl7.terminology@2.1.0
KBV.Basis@1.1.3
KBV.ITA.ERP@1.0.1
KBV.ITA.FOR@1.0.3

P.S.:二进制搜索在包 de.gematik.erezept-workflow.r4#1.0.2 中识别出两个有毒文件createOperation.json 导致验证器在包加载过程中以退出代码 1(没有任何错误消息)中止。 StructureDefinition-MedicationDispense-ERxMedicationDispense.json 导致验证器在包加载过程中挂起。从包缓存中删除这两个文件删除 .index.json 后,验证工作正常。但是,我们还必须验证 ErxMedicationdispense 资源,因此删除两个有毒文件不是补救措施;它只有诊断价值。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。