Skip to content
This repository was archived by the owner on Oct 6, 2025. It is now read-only.

Commit f60ba5e

Browse files
committed
Align Feasibility Process With DSF 0.5.0
1 parent 2b399da commit f60ba5e

39 files changed

Lines changed: 326 additions & 330 deletions

codex-process-feasibility/pom.xml

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
<dependency>
1919
<groupId>org.highmed.dsf</groupId>
2020
<artifactId>dsf-bpe-process-base</artifactId>
21-
<version>0.5.0-SNAPSHOT</version>
21+
<version>0.5.0</version>
2222
<scope>provided</scope>
2323
</dependency>
2424
<dependency>
@@ -45,7 +45,7 @@
4545
<dependency>
4646
<groupId>org.highmed.dsf</groupId>
4747
<artifactId>dsf-fhir-validation</artifactId>
48-
<version>0.5.0-SNAPSHOT</version>
48+
<version>0.5.0</version>
4949
<scope>test</scope>
5050
</dependency>
5151
</dependencies>
@@ -106,7 +106,7 @@
106106
<version>${project.version}</version>
107107
</artifactItem>
108108
</artifactItems>
109-
<outputDirectory>../codex-processes-ap2-docker-test-setup/dic-1/bpe/app/process
109+
<outputDirectory>../codex-processes-ap2-docker-test-setup/dic-1/bpe/process
110110
</outputDirectory>
111111
</configuration>
112112
</execution>
@@ -123,7 +123,7 @@
123123
<artifactId>hapi-fhir-client</artifactId>
124124
</artifactItem>
125125
</artifactItems>
126-
<outputDirectory>../codex-processes-ap2-docker-test-setup/dic-1/bpe/app/plugin</outputDirectory>
126+
<outputDirectory>../codex-processes-ap2-docker-test-setup/dic-1/bpe/plugin</outputDirectory>
127127
</configuration>
128128
</execution>
129129
<execution>
@@ -140,7 +140,7 @@
140140
<version>${project.version}</version>
141141
</artifactItem>
142142
</artifactItems>
143-
<outputDirectory>../codex-processes-ap2-docker-test-setup/dic-2/bpe/app/process
143+
<outputDirectory>../codex-processes-ap2-docker-test-setup/dic-2/bpe/process
144144
</outputDirectory>
145145
</configuration>
146146
</execution>
@@ -157,7 +157,7 @@
157157
<artifactId>hapi-fhir-client</artifactId>
158158
</artifactItem>
159159
</artifactItems>
160-
<outputDirectory>../codex-processes-ap2-docker-test-setup/dic-2/bpe/app/plugin</outputDirectory>
160+
<outputDirectory>../codex-processes-ap2-docker-test-setup/dic-2/bpe/plugin</outputDirectory>
161161
</configuration>
162162
</execution>
163163
<execution>
@@ -174,7 +174,7 @@
174174
<version>${project.version}</version>
175175
</artifactItem>
176176
</artifactItems>
177-
<outputDirectory>../codex-processes-ap2-docker-test-setup/zars/bpe/app/process</outputDirectory>
177+
<outputDirectory>../codex-processes-ap2-docker-test-setup/zars/bpe/process</outputDirectory>
178178
</configuration>
179179
</execution>
180180
<execution>
@@ -190,7 +190,7 @@
190190
<artifactId>hapi-fhir-client</artifactId>
191191
</artifactItem>
192192
</artifactItems>
193-
<outputDirectory>../codex-processes-ap2-docker-test-setup/zars/bpe/app/plugin</outputDirectory>
193+
<outputDirectory>../codex-processes-ap2-docker-test-setup/zars/bpe/plugin</outputDirectory>
194194
</configuration>
195195
</execution>
196196
</executions>
@@ -215,42 +215,42 @@
215215
<followSymlinks>false</followSymlinks>
216216
</fileset>
217217
<fileset>
218-
<directory>../codex-processes-ap2-docker-test-setup/dic-1/bpe/app/plugin</directory>
218+
<directory>../codex-processes-ap2-docker-test-setup/dic-1/bpe/plugin</directory>
219219
<includes>
220220
<include>*.jar</include>
221221
</includes>
222222
<followSymlinks>false</followSymlinks>
223223
</fileset>
224224
<fileset>
225-
<directory>../codex-processes-ap2-docker-test-setup/dic-1/bpe/app/process</directory>
225+
<directory>../codex-processes-ap2-docker-test-setup/dic-1/bpe/process</directory>
226226
<includes>
227227
<include>*.jar</include>
228228
</includes>
229229
<followSymlinks>false</followSymlinks>
230230
</fileset>
231231
<fileset>
232-
<directory>../codex-processes-ap2-docker-test-setup/dic-2/bpe/app/plugin</directory>
232+
<directory>../codex-processes-ap2-docker-test-setup/dic-2/bpe/plugin</directory>
233233
<includes>
234234
<include>*.jar</include>
235235
</includes>
236236
<followSymlinks>false</followSymlinks>
237237
</fileset>
238238
<fileset>
239-
<directory>../codex-processes-ap2-docker-test-setup/dic-2/bpe/app/process</directory>
239+
<directory>../codex-processes-ap2-docker-test-setup/dic-2/bpe/process</directory>
240240
<includes>
241241
<include>*.jar</include>
242242
</includes>
243243
<followSymlinks>false</followSymlinks>
244244
</fileset>
245245
<fileset>
246-
<directory>../codex-processes-ap2-docker-test-setup/zars/bpe/app/plugin</directory>
246+
<directory>../codex-processes-ap2-docker-test-setup/zars/bpe/plugin</directory>
247247
<includes>
248248
<include>*.jar</include>
249249
</includes>
250250
<followSymlinks>false</followSymlinks>
251251
</fileset>
252252
<fileset>
253-
<directory>../codex-processes-ap2-docker-test-setup/zars/bpe/app/process</directory>
253+
<directory>../codex-processes-ap2-docker-test-setup/zars/bpe/process</directory>
254254
<includes>
255255
<include>*.jar</include>
256256
</includes>

codex-process-feasibility/src/main/java/de/netzwerk_universitaetsmedizin/codex/processes/feasibility/EnhancedFhirWebserviceClientProvider.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,5 +15,5 @@ public interface EnhancedFhirWebserviceClientProvider extends FhirWebserviceClie
1515
* @param reference A FHIR ID Type that points either to a local or a remote resource.
1616
* @return A FHIR webservice client.
1717
*/
18-
FhirWebserviceClient getWebserviceClient(IdType reference);
18+
FhirWebserviceClient getWebserviceClientByReference(IdType reference);
1919
}

codex-process-feasibility/src/main/java/de/netzwerk_universitaetsmedizin/codex/processes/feasibility/EnhancedFhirWebserviceClientProviderImpl.java

Lines changed: 4 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,11 @@ public EnhancedFhirWebserviceClientProviderImpl(FhirWebserviceClientProvider fhi
1313
}
1414

1515
@Override
16-
public FhirWebserviceClient getWebserviceClient(IdType reference) {
16+
public FhirWebserviceClient getWebserviceClientByReference(IdType reference) {
1717
if (reference.getBaseUrl() == null || reference.getBaseUrl().equals(getLocalBaseUrl())) {
1818
return getLocalWebserviceClient();
1919
} else {
20-
return getRemoteWebserviceClient(reference.getBaseUrl());
20+
return getWebserviceClient(reference.getBaseUrl());
2121
}
2222
}
2323

@@ -32,19 +32,7 @@ public FhirWebserviceClient getLocalWebserviceClient() {
3232
}
3333

3434
@Override
35-
public FhirWebserviceClient getRemoteWebserviceClient(IdType organizationReference) {
36-
return this.fhirClientProvider.getRemoteWebserviceClient(organizationReference);
37-
}
38-
39-
@Override
40-
public FhirWebserviceClient getRemoteWebserviceClient(String organizationIdentifierSystem,
41-
String organizationIdentifierValue) {
42-
return this.fhirClientProvider.getRemoteWebserviceClient(organizationIdentifierSystem,
43-
organizationIdentifierValue);
44-
}
45-
46-
@Override
47-
public FhirWebserviceClient getRemoteWebserviceClient(String webserviceUrl) {
48-
return this.fhirClientProvider.getRemoteWebserviceClient(webserviceUrl);
35+
public FhirWebserviceClient getWebserviceClient(String webserviceUrl) {
36+
return this.fhirClientProvider.getWebserviceClient(webserviceUrl);
4937
}
5038
}

codex-process-feasibility/src/main/java/de/netzwerk_universitaetsmedizin/codex/processes/feasibility/FeasibilityProcessPluginDefinition.java

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
import org.highmed.dsf.fhir.resources.ResourceProvider;
1414
import org.highmed.dsf.fhir.resources.StructureDefinitionResource;
1515
import org.highmed.dsf.fhir.resources.ValueSetResource;
16+
import org.springframework.core.env.PropertyResolver;
1617

1718
import java.util.Arrays;
1819
import java.util.List;
@@ -45,7 +46,8 @@ public Stream<Class<?>> getSpringConfigClasses() {
4546
}
4647

4748
@Override
48-
public ResourceProvider getResourceProvider(FhirContext fhirContext, ClassLoader classLoader) {
49+
public ResourceProvider getResourceProvider(FhirContext fhirContext, ClassLoader classLoader,
50+
PropertyResolver propertyResolver) {
4951
var aExe = ActivityDefinitionResource.file("fhir/ActivityDefinition/executeSimpleFeasibility.xml");
5052
var aReq = ActivityDefinitionResource.file("fhir/ActivityDefinition/requestSimpleFeasibility.xml");
5153

@@ -71,13 +73,13 @@ public ResourceProvider getResourceProvider(FhirContext fhirContext, ClassLoader
7173
var vF = ValueSetResource.file("fhir/ValueSet/feasibility.xml");
7274

7375
Map<String, List<AbstractResource>> resourcesByProcessKeyAndVersion = Map.of(
74-
"executeSimpleFeasibility/" + VERSION,
76+
"wwwnetzwerk-universitaetsmedizinde_executeSimpleFeasibility/" + VERSION,
7577
Arrays.asList(aExe, sTExe, sTResS, vF, cF, sMeasure, sMeasureReport, sLibrary),
76-
"requestSimpleFeasibility/" + VERSION,
78+
"wwwnetzwerk-universitaetsmedizinde_requestSimpleFeasibility/" + VERSION,
7779
Arrays.asList(aReq, sTReq, sExtDic, vF, cF, sMeasure, sMeasureReport, sLibrary));
7880

7981
return ResourceProvider.read(VERSION,
8082
() -> fhirContext.newXmlParser().setStripVersionsFromReferences(false),
81-
classLoader, resourcesByProcessKeyAndVersion);
83+
classLoader, propertyResolver, resourcesByProcessKeyAndVersion);
8284
}
8385
}

codex-process-feasibility/src/main/java/de/netzwerk_universitaetsmedizin/codex/processes/feasibility/message/SendDicRequest.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import ca.uhn.fhir.context.FhirContext;
44
import de.netzwerk_universitaetsmedizin.codex.processes.feasibility.variables.ConstantsFeasibility;
55
import org.camunda.bpm.engine.delegate.DelegateExecution;
6+
import org.highmed.dsf.fhir.authorization.read.ReadAccessHelper;
67
import org.highmed.dsf.fhir.client.FhirWebserviceClientProvider;
78
import org.highmed.dsf.fhir.organization.OrganizationProvider;
89
import org.highmed.dsf.fhir.task.AbstractTaskMessageSend;
@@ -20,8 +21,9 @@ public class SendDicRequest extends AbstractTaskMessageSend {
2021
private static final Logger logger = LoggerFactory.getLogger(SendDicRequest.class);
2122

2223
public SendDicRequest(FhirWebserviceClientProvider clientProvider, TaskHelper taskHelper,
23-
OrganizationProvider organizationProvider, FhirContext fhirContext) {
24-
super(clientProvider, taskHelper, organizationProvider, fhirContext);
24+
ReadAccessHelper readAccessHelper, OrganizationProvider organizationProvider,
25+
FhirContext fhirContext) {
26+
super(clientProvider, taskHelper, readAccessHelper, organizationProvider, fhirContext);
2527
}
2628

2729
protected Stream<Task.ParameterComponent> getAdditionalInputParameters(DelegateExecution execution) {

codex-process-feasibility/src/main/java/de/netzwerk_universitaetsmedizin/codex/processes/feasibility/message/SendDicResponse.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import ca.uhn.fhir.context.FhirContext;
44
import org.camunda.bpm.engine.delegate.DelegateExecution;
5+
import org.highmed.dsf.fhir.authorization.read.ReadAccessHelper;
56
import org.highmed.dsf.fhir.client.FhirWebserviceClientProvider;
67
import org.highmed.dsf.fhir.organization.OrganizationProvider;
78
import org.highmed.dsf.fhir.task.AbstractTaskMessageSend;
@@ -18,8 +19,9 @@
1819
public class SendDicResponse extends AbstractTaskMessageSend {
1920

2021
public SendDicResponse(FhirWebserviceClientProvider clientProvider, TaskHelper taskHelper,
21-
OrganizationProvider organizationProvider, FhirContext fhirContext) {
22-
super(clientProvider, taskHelper, organizationProvider, fhirContext);
22+
ReadAccessHelper readAccessHelper, OrganizationProvider organizationProvider,
23+
FhirContext fhirContext) {
24+
super(clientProvider, taskHelper, readAccessHelper, organizationProvider, fhirContext);
2325
}
2426

2527
@Override

codex-process-feasibility/src/main/java/de/netzwerk_universitaetsmedizin/codex/processes/feasibility/service/AggregateMeasureReports.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import org.camunda.bpm.engine.delegate.DelegateExecution;
44
import org.highmed.dsf.bpe.delegate.AbstractServiceDelegate;
5+
import org.highmed.dsf.fhir.authorization.read.ReadAccessHelper;
56
import org.highmed.dsf.fhir.client.FhirWebserviceClientProvider;
67
import org.highmed.dsf.fhir.task.TaskHelper;
78
import org.hl7.fhir.r4.model.MeasureReport;
@@ -26,8 +27,9 @@ public class AggregateMeasureReports extends AbstractServiceDelegate implements
2627
* @param clientProvider the client provider
2728
* @param taskHelper the task helper
2829
*/
29-
public AggregateMeasureReports(FhirWebserviceClientProvider clientProvider, TaskHelper taskHelper) {
30-
super(clientProvider, taskHelper);
30+
public AggregateMeasureReports(FhirWebserviceClientProvider clientProvider, TaskHelper taskHelper,
31+
ReadAccessHelper readAccessHelper) {
32+
super(clientProvider, taskHelper, readAccessHelper);
3133
}
3234

3335
@Override

codex-process-feasibility/src/main/java/de/netzwerk_universitaetsmedizin/codex/processes/feasibility/service/DownloadFeasibilityResources.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import de.netzwerk_universitaetsmedizin.codex.processes.feasibility.variables.ConstantsFeasibility;
55
import org.camunda.bpm.engine.delegate.DelegateExecution;
66
import org.highmed.dsf.bpe.delegate.AbstractServiceDelegate;
7+
import org.highmed.dsf.fhir.authorization.read.ReadAccessHelper;
78
import org.highmed.dsf.fhir.organization.OrganizationProvider;
89
import org.highmed.dsf.fhir.task.TaskHelper;
910
import org.highmed.fhir.client.FhirWebserviceClient;
@@ -29,8 +30,8 @@ public class DownloadFeasibilityResources extends AbstractServiceDelegate implem
2930
private final OrganizationProvider organizationProvider;
3031

3132
public DownloadFeasibilityResources(EnhancedFhirWebserviceClientProvider clientProvider, TaskHelper taskHelper,
32-
OrganizationProvider organizationProvider) {
33-
super(clientProvider, taskHelper);
33+
ReadAccessHelper readAccessHelper, OrganizationProvider organizationProvider) {
34+
super(clientProvider, taskHelper, readAccessHelper);
3435
this.organizationProvider = organizationProvider;
3536
}
3637

@@ -46,7 +47,7 @@ protected void doExecute(DelegateExecution execution) {
4647

4748
IdType measureId = getMeasureId(task);
4849
FhirWebserviceClient client = ((EnhancedFhirWebserviceClientProvider) getFhirWebserviceClientProvider())
49-
.getWebserviceClient(measureId);
50+
.getWebserviceClientByReference(measureId);
5051
Bundle bundle = getMeasureAndLibrary(measureId, client);
5152

5253
execution.setVariable(ConstantsFeasibility.VARIABLE_MEASURE, bundle.getEntry().get(0).getResource());
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,9 @@
11
package de.netzwerk_universitaetsmedizin.codex.processes.feasibility.service;
22

3-
import com.google.common.collect.Iterables;
4-
import de.netzwerk_universitaetsmedizin.codex.processes.feasibility.variables.ConstantsFeasibility;
3+
import de.netzwerk_universitaetsmedizin.codex.processes.feasibility.EnhancedFhirWebserviceClientProvider;
54
import org.camunda.bpm.engine.delegate.DelegateExecution;
65
import org.highmed.dsf.bpe.delegate.AbstractServiceDelegate;
7-
import org.highmed.dsf.fhir.client.FhirWebserviceClientProvider;
6+
import org.highmed.dsf.fhir.authorization.read.ReadAccessHelper;
87
import org.highmed.dsf.fhir.organization.OrganizationProvider;
98
import org.highmed.dsf.fhir.task.TaskHelper;
109
import org.highmed.fhir.client.FhirWebserviceClient;
@@ -19,15 +18,19 @@
1918
import java.util.Objects;
2019
import java.util.Optional;
2120

21+
import static de.netzwerk_universitaetsmedizin.codex.processes.feasibility.variables.ConstantsFeasibility.CODESYSTEM_FEASIBILITY;
22+
import static de.netzwerk_universitaetsmedizin.codex.processes.feasibility.variables.ConstantsFeasibility.CODESYSTEM_FEASIBILITY_VALUE_MEASURE_REPORT_REFERENCE;
23+
import static de.netzwerk_universitaetsmedizin.codex.processes.feasibility.variables.ConstantsFeasibility.VARIABLE_MEASURE_REPORT;
24+
2225
public class DownloadMeasureReport extends AbstractServiceDelegate implements InitializingBean {
2326

2427
private static final Logger logger = LoggerFactory.getLogger(DownloadMeasureReport.class);
2528

2629
private final OrganizationProvider organizationProvider;
2730

28-
public DownloadMeasureReport(FhirWebserviceClientProvider clientProvider, TaskHelper taskHelper,
29-
OrganizationProvider organizationProvider) {
30-
super(clientProvider, taskHelper);
31+
public DownloadMeasureReport(EnhancedFhirWebserviceClientProvider clientProvider, TaskHelper taskHelper,
32+
ReadAccessHelper readAccessHelper, OrganizationProvider organizationProvider) {
33+
super(clientProvider, taskHelper, readAccessHelper);
3134
this.organizationProvider = organizationProvider;
3235
}
3336

@@ -41,34 +44,26 @@ public void afterPropertiesSet() throws Exception {
4144
protected void doExecute(DelegateExecution execution) {
4245
Task task = getCurrentTaskFromExecutionVariables();
4346
IdType measureReportId = getMeasureReportId(task);
44-
FhirWebserviceClient client = getWebserviceClient(measureReportId);
47+
FhirWebserviceClient client = ((EnhancedFhirWebserviceClientProvider) getFhirWebserviceClientProvider())
48+
.getWebserviceClientByReference(measureReportId);
4549
MeasureReport measureReport = downloadMeasureReport(client, measureReportId);
46-
execution.setVariable(ConstantsFeasibility.VARIABLE_MEASURE_REPORT, measureReport);
50+
execution.setVariable(VARIABLE_MEASURE_REPORT, measureReport);
4751
}
48-
52+
4953
private MeasureReport downloadMeasureReport(FhirWebserviceClient client, IdType measureReportId) {
5054
logger.debug("Download MeasureReport with ID {} from {}", measureReportId.getIdPart(), client.getBaseUrl());
5155
return client.read(MeasureReport.class, measureReportId.getIdPart());
5256
}
5357

5458
private IdType getMeasureReportId(Task task) {
5559
Optional<Reference> measureRef = getTaskHelper()
56-
.getFirstInputParameterReferenceValue(task, ConstantsFeasibility.CODESYSTEM_FEASIBILITY,
57-
ConstantsFeasibility.CODESYSTEM_FEASIBILITY_VALUE_MEASURE_REPORT_REFERENCE);
60+
.getFirstInputParameterReferenceValue(task, CODESYSTEM_FEASIBILITY,
61+
CODESYSTEM_FEASIBILITY_VALUE_MEASURE_REPORT_REFERENCE);
5862
if (measureRef.isPresent()) {
5963
return new IdType(measureRef.get().getReference());
6064
} else {
6165
logger.error("Task {} is missing the measure report reference.", task.getId());
6266
throw new RuntimeException("Missing measure report reference.");
6367
}
6468
}
65-
66-
private FhirWebserviceClient getWebserviceClient(IdType measureReportId) {
67-
if (measureReportId.getBaseUrl() == null || measureReportId.getBaseUrl()
68-
.equals(getFhirWebserviceClientProvider().getLocalBaseUrl())) {
69-
return getFhirWebserviceClientProvider().getLocalWebserviceClient();
70-
} else {
71-
return getFhirWebserviceClientProvider().getRemoteWebserviceClient(measureReportId.getBaseUrl());
72-
}
73-
}
7469
}

0 commit comments

Comments
 (0)