Команда загрузки hapi-fhir-cli выдает ошибку

Я пытаюсь загрузить тестовые данные на локальный сервер JPA fhir с помощью hapi-fhir-cli. Но при загрузке ресурсов я получаю следующую ошибку.

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

Даже если я заменю http://127.0.0.1:8080/hapi-fhir-jpaserver/fhir/metadata с общедоступного тестового сервера hapi fhir, т.е. http://hapi.fhir.org/baseR4, у меня такая же ошибка. Я получаю указанную выше ошибку после выполнения следующей команды hapi-fhir-cli.

hapi-fhir-5.1.0-cli ›hapi-fhir-cli upload-examples -t http://127.0.0.1:8080/hapi-fhir-jpaserver/fhir -v dstu2 -l 40

Если я изменю версию на dstu3 или r4, я получу ошибку проверки, т.е. тип пакета = транзакция не найдена в наборе значений, определенном на веб-сайте hl7, даже если он определен.

Кто-нибудь знает об обеих этих ошибках? Любая помощь будет оценена по достоинству. Спасибо.


person Kamlesh    schedule 03.09.2020    source источник


Ответы (1)


Не могли бы вы показать, где вы создаете свой клиентский код (пожалуйста).

Но у меня есть два предложения:

Вы устанавливаете 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;
}

и мой класс держателя аргументов:

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;
    }
}
person granadaCoder    schedule 08.09.2020