diff --git a/Dockerfile b/Dockerfile index bc3454fb..f3f9720b 100644 --- a/Dockerfile +++ b/Dockerfile @@ -6,7 +6,7 @@ WORKDIR /opt/codex-feasibility-backend COPY ./target/*.jar ./feasibility-gui-backend.jar COPY ontology ontology -ARG VERSION=0.0.0 +ARG VERSION=2.1.0 ENV APP_VERSION=${VERSION} ENV FEASIBILITY_DATABASE_HOST="feasibility-network" ENV FEASIBILITY_DATABASE_PORT=5432 @@ -19,12 +19,12 @@ ENTRYPOINT ["java","-jar","feasibility-gui-backend.jar"] ARG GIT_REF="" ARG BUILD_TIME="" -LABEL maintainer="num-codex" \ +LABEL maintainer="medizininformatik-initiative" \ org.opencontainers.image.created=${BUILD_TIME} \ - org.opencontainers.image.authors="num-codex" \ - org.opencontainers.image.source="https://github.com/num-codex/codex-feasibility-backend" \ + org.opencontainers.image.authors="medizininformatik-initiative" \ + org.opencontainers.image.source="https://github.com/medizininformatik-initiative/feasibility-backend" \ org.opencontainers.image.version=${VERSION} \ org.opencontainers.image.revision=${GIT_REF} \ - org.opencontainers.image.vendor="num-codex" \ - org.opencontainers.image.title="codex feasibility backend" \ + org.opencontainers.image.vendor="medizininformatik-initiative" \ + org.opencontainers.image.title="feasibility backend" \ org.opencontainers.image.description="Provides backend functions for feasibility UI including query execution" diff --git a/pom.xml b/pom.xml index 11acca78..68d30958 100644 --- a/pom.xml +++ b/pom.xml @@ -4,12 +4,12 @@ org.springframework.boot spring-boot-starter-parent - 2.7.3 + 2.7.6 de.medizininformatik-initiative FeasibilityGuiBackend - 1.0.1 + 2.1.0 FeasibilityGuiBackend Backend of the Feasibility GUI @@ -26,6 +26,7 @@ 4.9.3 4.9.1 42.4.1 + 5.8.0 @@ -80,10 +81,10 @@ keycloak-spring-boot-starter 18.0.0 + org.springframework.boot spring-boot-starter-security - 2.7.2 @@ -144,28 +145,44 @@ 1.3.2 + + + org.apache.commons + commons-text + 1.10.0 + org.highmed.dsf dsf-fhir-webservice-client - 0.7.0 + 0.9.0 + + + org.apache.commons + commons-text + + org.highmed.dsf dsf-fhir-websocket-client - 0.7.0 + 0.9.0 org.highmed.dsf dsf-fhir-rest-adapter - 0.7.0 + 0.9.0 de.medizininformatik-initiative sq2cql - 0.1.20 + 0.1.26 @@ -216,6 +233,14 @@ test + + + + org.yaml + snakeyaml + 1.32 + + io.projectreactor reactor-test diff --git a/src/main/java/de/numcodex/feasibility_gui_backend/query/broker/dsf/DSFQueryManager.java b/src/main/java/de/numcodex/feasibility_gui_backend/query/broker/dsf/DSFQueryManager.java index 8d3f47e1..0551ae7a 100644 --- a/src/main/java/de/numcodex/feasibility_gui_backend/query/broker/dsf/DSFQueryManager.java +++ b/src/main/java/de/numcodex/feasibility_gui_backend/query/broker/dsf/DSFQueryManager.java @@ -28,7 +28,7 @@ */ class DSFQueryManager implements QueryManager { - private static final String INSTANTIATE_URI = "http://medizininformatik-initiative.de/bpe/Process/feasibilityRequest/0.3.0"; + private static final String INSTANTIATE_URI = "http://medizininformatik-initiative.de/bpe/Process/feasibilityRequest/0.5.0"; private static final String REQUEST_PROFILE = "http://medizininformatik-initiative.de/fhir/StructureDefinition/feasibility-task-request"; private static final String MEASURE_PROFILE = "http://medizininformatik-initiative.de/fhir/StructureDefinition/feasibility-measure"; private static final String LIBRARY_PROFILE = "http://medizininformatik-initiative.de/fhir/StructureDefinition/feasibility-library"; @@ -42,6 +42,7 @@ class DSFQueryManager implements QueryManager { private static final String RECIPIENT_TYPE = "Organization"; private static final String LIBRARY_NAME = "Retrieve"; + private static final String LIBRARY_VERSION = "1.0.0"; private static final String CODE_SYSTEM_FEASIBILITY = "http://medizininformatik-initiative.de/fhir/CodeSystem/feasibility"; private static final String CODE_SYSTEM_FEASIBILITY_VALUE_MEASURE_REFERENCE = "measure-reference"; @@ -213,6 +214,7 @@ private Bundle addLibrary(Bundle queryBundle, Map queryContents, Bundle bundle = queryBundle.copy(); Library library = new Library() .setName(LIBRARY_NAME) + .setVersion(LIBRARY_VERSION) .setStatus(ACTIVE) .setType(new CodeableConcept() .addCoding(new Coding() diff --git a/src/main/java/de/numcodex/feasibility_gui_backend/query/broker/dsf/DSFQueryResultHandler.java b/src/main/java/de/numcodex/feasibility_gui_backend/query/broker/dsf/DSFQueryResultHandler.java index 40197d6a..eafffe2f 100644 --- a/src/main/java/de/numcodex/feasibility_gui_backend/query/broker/dsf/DSFQueryResultHandler.java +++ b/src/main/java/de/numcodex/feasibility_gui_backend/query/broker/dsf/DSFQueryResultHandler.java @@ -13,7 +13,7 @@ @Slf4j class DSFQueryResultHandler { - private static final String SINGLE_DIC_QUERY_RESULT_PROFILE = "http://medizininformatik-initiative.de/fhir/StructureDefinition/feasibility-task-single-dic-result|0.3.0"; + private static final String SINGLE_DIC_QUERY_RESULT_PROFILE = "http://medizininformatik-initiative.de/fhir/StructureDefinition/feasibility-task-single-dic-result|0.5.0"; private static final String CODE_SYSTEM_FEASIBILITY = "http://medizininformatik-initiative.de/fhir/CodeSystem/feasibility"; private static final String CODE_SYSTEM_FEASIBILITY_VALUE_MEASURE_REPORT_REF = "measure-report-reference"; private static final String CODE_SYSTEM_BPMN_MESSAGE = "http://highmed.org/fhir/CodeSystem/bpmn-message"; diff --git a/src/main/java/de/numcodex/feasibility_gui_backend/query/translation/CqlQueryTranslator.java b/src/main/java/de/numcodex/feasibility_gui_backend/query/translation/CqlQueryTranslator.java index d405d94b..c2dd9171 100644 --- a/src/main/java/de/numcodex/feasibility_gui_backend/query/translation/CqlQueryTranslator.java +++ b/src/main/java/de/numcodex/feasibility_gui_backend/query/translation/CqlQueryTranslator.java @@ -31,7 +31,7 @@ public String translate(StructuredQuery query) throws QueryTranslationException } try { - return translator.toCql(structuredQuery).print(PrintContext.ZERO); + return translator.toCql(structuredQuery).print(); } catch (Exception e) { throw new QueryTranslationException("cannot translate structured query to CQL format", e); } diff --git a/src/test/java/de/numcodex/feasibility_gui_backend/query/broker/dsf/DSFQueryManagerTest.java b/src/test/java/de/numcodex/feasibility_gui_backend/query/broker/dsf/DSFQueryManagerTest.java index e7218982..165956be 100644 --- a/src/test/java/de/numcodex/feasibility_gui_backend/query/broker/dsf/DSFQueryManagerTest.java +++ b/src/test/java/de/numcodex/feasibility_gui_backend/query/broker/dsf/DSFQueryManagerTest.java @@ -145,7 +145,7 @@ public void testPublishQuery() throws UnsupportedMediaTypeException, QueryNotFou assertEquals(businessKey, queryId); assertNotNull(library.getName()); - assertEquals("http://medizininformatik-initiative.de/bpe/Process/feasibilityRequest/0.3.0", task.getInstantiatesUri()); + assertEquals("http://medizininformatik-initiative.de/bpe/Process/feasibilityRequest/0.5.0", task.getInstantiatesUri()); assertEquals(1, task.getMeta().getProfile().stream().filter(p -> p.getValueAsString() .equals("http://medizininformatik-initiative.de/fhir/StructureDefinition/feasibility-task-request")) .count()); diff --git a/src/test/java/de/numcodex/feasibility_gui_backend/query/broker/dsf/DSFQueryResultCollectorIT.java b/src/test/java/de/numcodex/feasibility_gui_backend/query/broker/dsf/DSFQueryResultCollectorIT.java index 83db1c4c..ddb1e42a 100644 --- a/src/test/java/de/numcodex/feasibility_gui_backend/query/broker/dsf/DSFQueryResultCollectorIT.java +++ b/src/test/java/de/numcodex/feasibility_gui_backend/query/broker/dsf/DSFQueryResultCollectorIT.java @@ -31,7 +31,7 @@ @SuppressWarnings("NewClassNamingConvention") public class DSFQueryResultCollectorIT { - private static final String SINGLE_DIC_RESULT_PROFILE = "http://medizininformatik-initiative.de/fhir/StructureDefinition/feasibility-task-single-dic-result|0.3.0"; + private static final String SINGLE_DIC_RESULT_PROFILE = "http://medizininformatik-initiative.de/fhir/StructureDefinition/feasibility-task-single-dic-result|0.5.0"; @Mock private DSFBrokerClient brokerClient; @@ -60,7 +60,7 @@ private Task createTestTask(String brokerQueryId, String siteId, String measureR .setStatus(COMPLETED) .setIntent(ORDER) .setAuthoredOn(new Date()) - .setInstantiatesUri("http://highmed.org/bpe/Process/feasibilityRequest/0.3.0"); + .setInstantiatesUri("http://highmed.org/bpe/Process/feasibilityRequest/0.5.0"); task.getRequester() .setType("Organization") diff --git a/src/test/java/de/numcodex/feasibility_gui_backend/query/broker/dsf/DSFQueryResultHandlerTest.java b/src/test/java/de/numcodex/feasibility_gui_backend/query/broker/dsf/DSFQueryResultHandlerTest.java index c20dcf32..a7a0f8ff 100644 --- a/src/test/java/de/numcodex/feasibility_gui_backend/query/broker/dsf/DSFQueryResultHandlerTest.java +++ b/src/test/java/de/numcodex/feasibility_gui_backend/query/broker/dsf/DSFQueryResultHandlerTest.java @@ -55,7 +55,7 @@ public void testOnResultButReferencedMeasureReportCanNotBeFetched() throws FhirW .setIntent(ORDER) .setRequester(dicOrganizationRef) .setRestriction(new TaskRestrictionComponent().addRecipient(zarsOrganizationRef)); - task.getMeta().addProfile("http://medizininformatik-initiative.de/fhir/StructureDefinition/feasibility-task-single-dic-result|0.3.0"); + task.getMeta().addProfile("http://medizininformatik-initiative.de/fhir/StructureDefinition/feasibility-task-single-dic-result|0.5.0"); task.addInput() .setType(new CodeableConcept() @@ -88,7 +88,7 @@ public void testOnResult() throws FhirWebClientProvisionException { .setIntent(ORDER) .setRequester(dicOrganizationRef) .setRestriction(new TaskRestrictionComponent().addRecipient(zarsOrganizationRef)); - task.getMeta().addProfile("http://medizininformatik-initiative.de/fhir/StructureDefinition/feasibility-task-single-dic-result|0.3.0"); + task.getMeta().addProfile("http://medizininformatik-initiative.de/fhir/StructureDefinition/feasibility-task-single-dic-result|0.5.0"); task.addInput() .setType(new CodeableConcept() diff --git a/src/test/java/de/numcodex/feasibility_gui_backend/query/translation/CqlQueryTranslatorTest.java b/src/test/java/de/numcodex/feasibility_gui_backend/query/translation/CqlQueryTranslatorTest.java index 8718d90f..e10b3717 100644 --- a/src/test/java/de/numcodex/feasibility_gui_backend/query/translation/CqlQueryTranslatorTest.java +++ b/src/test/java/de/numcodex/feasibility_gui_backend/query/translation/CqlQueryTranslatorTest.java @@ -103,11 +103,12 @@ public void testTranslate_EverythingSucceeds() throws QueryTranslationException testQuery.setVersion(URI.create("http://to_be_decided.com/draft-2/schema#")); var resultLibraryMock = mock(Library.class); - when(resultLibraryMock.print(any())).thenReturn("bar"); + when(resultLibraryMock.print()).thenReturn("bar"); when(translator.toCql(any(de.numcodex.sq2cql.model.structured_query.StructuredQuery.class))) .thenReturn(resultLibraryMock); var translationResult = cqlQueryTranslator.translate(testQuery); assertEquals("bar", translationResult); + } }