如何解决hapi-fhir-cli上传示例命令给出错误
我正在尝试使用hapi-fhir-cli将测试数据上传到本地JPA fhir服务器。但是在上传资源时,出现以下错误。
2020-09-03 17:33:26.486 [main] INFO c.u.f.c.ExampleDataUploader 1 good references
2020-09-03 17:33:26.511 [main] INFO c.u.f.c.ExampleDataUploader Final bundle: 18 entries
2020-09-03 17:33:26.527 [main] INFO c.u.f.c.ExampleDataUploader About to upload 11 examples in a transaction,2 remaining
2020-09-03 17:33:26.637 [main] INFO c.u.f.c.ExampleDataUploader Final bundle: 62 KB
2020-09-03 17:33:26.641 [main] INFO c.u.f.c.ExampleDataUploader Uploading bundle to server: http://127.0.0.1:8080/hapi-fhir-jpaserver/fhir
2020-09-03 17:33:26.960 [main] ERROR c.u.f.c.ExampleDataUploader Failed to upload bundle:HTTP 0: Failed to retrieve the server Metadata statement during client initialization. URL used was http://127.0.0.1:8080/hapi-fhir-jpaserver/fhir/Metadata
即使我用公共hapi fhir测试服务器(即http://127.0.0.1:8080/hapi-fhir-jpaserver/fhir/metadata)替换了http://hapi.fhir.org/baseR4,我也遇到了同样的错误。运行以下hapi-fhir-cli命令后,出现上述错误。
hapi-fhir-5.1.0-cli> hapi-fhir-cli上传示例-t http://127.0.0.1:8080/hapi-fhir-jpaserver/fhir -v dstu2 -l 40
如果将版本更改为dstu3或r4,则会收到验证错误,即即使在hl7网站上定义的值集中也没有找到bundle type = transaction,即使已定义。
有人对这两个错误有任何想法吗?任何帮助,将不胜感激。谢谢。
解决方法
您能显示您要在何处创建客户代码吗?
但是我有两个建议:
您是否将FhirContext设置为正确的版本?您需要不记名令牌吗?
//导入ca.uhn.fhir.context.FhirContext;
private FhirContext getContext() {
return FhirContext.forR4();
}
请注意,创建上下文(对“ forR4”的调用非常昂贵,因此您希望最大程度地减少调用次数)。
//// import ca.uhn.fhir.rest.client.api.IGenericClient;
private IGenericClient generateIGenericClient(FhirContext fhirContext,GenericClientCreateArgs createArgs) {
IGenericClient client = fhirContext.newRestfulGenericClient(createArgs.getServerBase());
if (null != createArgs && createArgs.getBearerToken().isPresent()) {
String token = createArgs.getBearerToken().get();
if (StringUtils.isNotBlank(token)) {
BearerTokenAuthInterceptor authInterceptor = new BearerTokenAuthInterceptor(token);
client.registerInterceptor(authInterceptor);
}
}
return client;
}
和我的“ args”持有者类别:
import java.util.Optional;
public final class GenericClientCreateArgs {
private String serverBase;
private Optional<String> bearerToken;
public String getServerBase() {
return serverBase;
}
public void setServerBase(String serverBase) {
this.serverBase = serverBase;
}
public Optional<String> getBearerToken() {
return bearerToken;
}
public void setBearerToken(Optional<String> bearerToken) {
this.bearerToken = bearerToken;
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。