Skip to content

Commit d957d49

Browse files
committed
Merge remote-tracking branch 'origin/release/0.4.0' into main
2 parents fbd4a59 + cda36cf commit d957d49

File tree

140 files changed

+12798
-5
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

140 files changed

+12798
-5
lines changed

.gitignore

100755100644
File mode changed.
Lines changed: 187 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,187 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0"
3+
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
4+
<modelVersion>4.0.0</modelVersion>
5+
6+
<artifactId>dsf-bpe-process-feasibility</artifactId>
7+
8+
<parent>
9+
<artifactId>dsf-bpe-highmed-processes-pom</artifactId>
10+
<groupId>org.highmed.dsf</groupId>
11+
<version>0.4.0</version>
12+
</parent>
13+
14+
<dependencies>
15+
<dependency>
16+
<groupId>org.highmed.dsf</groupId>
17+
<artifactId>dsf-bpe-process-base</artifactId>
18+
<scope>provided</scope>
19+
</dependency>
20+
<dependency>
21+
<groupId>com.fasterxml.jackson.core</groupId>
22+
<artifactId>jackson-annotations</artifactId>
23+
<scope>provided</scope>
24+
</dependency>
25+
26+
<dependency>
27+
<groupId>de.hs-heilbronn.mi</groupId>
28+
<artifactId>log4j2-utils</artifactId>
29+
<scope>test</scope>
30+
</dependency>
31+
<dependency>
32+
<groupId>org.highmed.dsf</groupId>
33+
<artifactId>dsf-fhir-validation</artifactId>
34+
<scope>test</scope>
35+
</dependency>
36+
<dependency>
37+
<groupId>org.highmed.dsf</groupId>
38+
<artifactId>dsf-bpe-process-base</artifactId>
39+
<scope>test</scope>
40+
<type>test-jar</type>
41+
</dependency>
42+
</dependencies>
43+
44+
<profiles>
45+
<profile>
46+
<id>copy-to-highmed-dsf-process</id>
47+
<build>
48+
<plugins>
49+
<plugin>
50+
<groupId>org.apache.maven.plugins</groupId>
51+
<artifactId>maven-dependency-plugin</artifactId>
52+
<executions>
53+
<execution>
54+
<id>copy-process-plugin-to-docker-test-setup</id>
55+
<phase>package</phase>
56+
<goals>
57+
<goal>copy</goal>
58+
</goals>
59+
<configuration>
60+
<artifactItems>
61+
<artifactItem>
62+
<groupId>${project.groupId}</groupId>
63+
<artifactId>${project.artifactId}</artifactId>
64+
<version>${project.version}</version>
65+
</artifactItem>
66+
</artifactItems>
67+
<outputDirectory>../../highmed-dsf/dsf-docker-test-setup/bpe/app/process</outputDirectory>
68+
</configuration>
69+
</execution>
70+
<execution>
71+
<id>copy-process-plugin-to-docker-test-setup-3medic-ttp/medic1</id>
72+
<phase>package</phase>
73+
<goals>
74+
<goal>copy</goal>
75+
</goals>
76+
<configuration>
77+
<artifactItems>
78+
<artifactItem>
79+
<groupId>${project.groupId}</groupId>
80+
<artifactId>${project.artifactId}</artifactId>
81+
<version>${project.version}</version>
82+
</artifactItem>
83+
</artifactItems>
84+
<outputDirectory>../../highmed-dsf/dsf-docker-test-setup-3medic-ttp/medic1/bpe/app/process</outputDirectory>
85+
</configuration>
86+
</execution>
87+
<execution>
88+
<id>copy-process-plugin-to-docker-test-setup-3medic-ttp/medic2</id>
89+
<phase>package</phase>
90+
<goals>
91+
<goal>copy</goal>
92+
</goals>
93+
<configuration>
94+
<artifactItems>
95+
<artifactItem>
96+
<groupId>${project.groupId}</groupId>
97+
<artifactId>${project.artifactId}</artifactId>
98+
<version>${project.version}</version>
99+
</artifactItem>
100+
</artifactItems>
101+
<outputDirectory>../../highmed-dsf/dsf-docker-test-setup-3medic-ttp/medic2/bpe/app/process</outputDirectory>
102+
</configuration>
103+
</execution>
104+
<execution>
105+
<id>copy-process-plugin-to-docker-test-setup-3medic-ttp/medic3</id>
106+
<phase>package</phase>
107+
<goals>
108+
<goal>copy</goal>
109+
</goals>
110+
<configuration>
111+
<artifactItems>
112+
<artifactItem>
113+
<groupId>${project.groupId}</groupId>
114+
<artifactId>${project.artifactId}</artifactId>
115+
<version>${project.version}</version>
116+
</artifactItem>
117+
</artifactItems>
118+
<outputDirectory>../../highmed-dsf/dsf-docker-test-setup-3medic-ttp/medic3/bpe/app/process</outputDirectory>
119+
</configuration>
120+
</execution>
121+
<execution>
122+
<id>copy-process-plugin-to-docker-test-setup-3medic-ttp/ttp</id>
123+
<phase>package</phase>
124+
<goals>
125+
<goal>copy</goal>
126+
</goals>
127+
<configuration>
128+
<artifactItems>
129+
<artifactItem>
130+
<groupId>${project.groupId}</groupId>
131+
<artifactId>${project.artifactId}</artifactId>
132+
<version>${project.version}</version>
133+
</artifactItem>
134+
</artifactItems>
135+
<outputDirectory>../../highmed-dsf/dsf-docker-test-setup-3medic-ttp/ttp/bpe/app/process</outputDirectory>
136+
</configuration>
137+
</execution>
138+
</executions>
139+
</plugin>
140+
<plugin>
141+
<groupId>org.apache.maven.plugins</groupId>
142+
<artifactId>maven-clean-plugin</artifactId>
143+
<configuration>
144+
<filesets>
145+
<fileset>
146+
<directory>../../highmed-dsf/dsf-docker-test-setup/bpe/app/process</directory>
147+
<includes>
148+
<include>${project.artifactId}-${project.version}.jar</include>
149+
</includes>
150+
<followSymlinks>false</followSymlinks>
151+
</fileset>
152+
<fileset>
153+
<directory>../../highmed-dsf/dsf-docker-test-setup-3medic-ttp/medic1/bpe/app/process</directory>
154+
<includes>
155+
<include>${project.artifactId}-${project.version}.jar</include>
156+
</includes>
157+
<followSymlinks>false</followSymlinks>
158+
</fileset>
159+
<fileset>
160+
<directory>../../highmed-dsf/dsf-docker-test-setup-3medic-ttp/medic2/bpe/app/process</directory>
161+
<includes>
162+
<include>${project.artifactId}-${project.version}.jar</include>
163+
</includes>
164+
<followSymlinks>false</followSymlinks>
165+
</fileset>
166+
<fileset>
167+
<directory>../../highmed-dsf/dsf-docker-test-setup-3medic-ttp/medic3/bpe/app/process</directory>
168+
<includes>
169+
<include>${project.artifactId}-${project.version}.jar</include>
170+
</includes>
171+
<followSymlinks>false</followSymlinks>
172+
</fileset>
173+
<fileset>
174+
<directory>../../highmed-dsf/dsf-docker-test-setup-3medic-ttp/ttp/bpe/app/process</directory>
175+
<includes>
176+
<include>${project.artifactId}-${project.version}.jar</include>
177+
</includes>
178+
<followSymlinks>false</followSymlinks>
179+
</fileset>
180+
</filesets>
181+
</configuration>
182+
</plugin>
183+
</plugins>
184+
</build>
185+
</profile>
186+
</profiles>
187+
</project>
Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
package org.highmed.dsf.bpe;
2+
3+
import static org.highmed.dsf.bpe.ConstantsBase.PROCESS_HIGHMED_URI_BASE;
4+
import static org.highmed.dsf.bpe.FeasibilityProcessPluginDefinition.VERSION;
5+
6+
public interface ConstantsFeasibility
7+
{
8+
String BPMN_EXECUTION_VARIABLE_RESEARCH_STUDY = "researchStudy";
9+
String BPMN_EXECUTION_VARIABLE_NEEDS_CONSENT_CHECK = "needsConsentCheck";
10+
String BPMN_EXECUTION_VARIABLE_NEEDS_RECORD_LINKAGE = "needsRecordLinkage";
11+
String BPMN_EXECUTION_VARIABLE_BLOOM_FILTER_CONFIG = "bloomFilterConfig";
12+
String BPMN_EXECUTION_VARIABLE_COHORTS = "cohorts";
13+
String BPMN_EXECUTION_VARIABLE_QUERIES = "queries";
14+
String BPMN_EXECUTION_VARIABLE_QUERY_RESULTS = "queryResults";
15+
String BPMN_EXECUTION_VARIABLE_FINAL_QUERY_RESULTS = "finalQueryResults";
16+
17+
String BPMN_EXECUTION_ERROR_CODE_MULTI_MEDIC_RESULT = "errorMultiMedicFeasibilityResult";
18+
19+
// Must be 3 or larger, as otherwise it is possible to draw conclusions about the individual MeDICs
20+
// (if I already know the cohort size in my MeDIC)
21+
int MIN_PARTICIPATING_MEDICS = 3;
22+
int MIN_COHORT_DEFINITIONS = 1;
23+
String FEASIBILITY_QUERY_PREFIX = "select count";
24+
25+
String CODESYSTEM_HIGHMED_FEASIBILITY = "http://highmed.org/fhir/CodeSystem/feasibility";
26+
String CODESYSTEM_HIGHMED_FEASIBILITY_VALUE_PARTICIPATING_MEDIC_CORRELATION_KEY = "medic-correlation-key";
27+
String CODESYSTEM_HIGHMED_FEASIBILITY_VALUE_NEEDS_CONSENT_CHECK = "needs-consent-check";
28+
String CODESYSTEM_HIGHMED_FEASIBILITY_VALUE_NEEDS_RECORD_LINKAGE = "needs-record-linkage";
29+
String CODESYSTEM_HIGHMED_FEASIBILITY_VALUE_BLOOM_FILTER_CONFIG = "bloom-filter-configuration";
30+
String CODESYSTEM_HIGHMED_FEASIBILITY_VALUE_SINGLE_MEDIC_RESULT = "single-medic-result";
31+
String CODESYSTEM_HIGHMED_FEASIBILITY_VALUE_SINGLE_MEDIC_RESULT_REFERENCE = "single-medic-result-reference";
32+
String CODESYSTEM_HIGHMED_FEASIBILITY_VALUE_PARTICIPATING_MEDICS_COUNT = "participating-medics";
33+
String CODESYSTEM_HIGHMED_FEASIBILITY_VALUE_NOT_ENOUGH_PARTICIPATION = "not-enough-participation";
34+
String CODESYSTEM_HIGHMED_FEASIBILITY_VALUE_MULTI_MEDIC_RESULT = "multi-medic-result";
35+
String CODESYSTEM_HIGHMED_FEASIBILITY_VALUE_RESEARCH_STUDY_REFERENCE = "research-study-reference";
36+
37+
String PROFILE_HIGHMED_TASK_REQUEST_FEASIBILITY = "http://highmed.org/fhir/StructureDefinition/task-request-feasibility";
38+
String PROFILE_HIGHMED_TASK_REQUEST_FEASIBILITY_PROCESS_URI = PROCESS_HIGHMED_URI_BASE + "requestFeasibility/";
39+
String PROFILE_HIGHMED_TASK_REQUEST_FEASIBILITY_PROCESS_URI_AND_LATEST_VERSION =
40+
PROFILE_HIGHMED_TASK_REQUEST_FEASIBILITY_PROCESS_URI + VERSION;
41+
String PROFILE_HIGHMED_TASK_REQUEST_FEASIBILITY_MESSAGE_NAME = "requestFeasibilityMessage";
42+
43+
String PROFILE_HIGHMED_TASK_LOCAL_SERVICES_PROCESS_URI = PROCESS_HIGHMED_URI_BASE + "localServicesIntegration/";
44+
45+
String PROFILE_HIGHMED_TASK_EXECUTE_FEASIBILITY = "http://highmed.org/fhir/StructureDefinition/task-execute-feasibility";
46+
String PROFILE_HIGHMED_TASK_EXECUTE_FEASIBILITY_PROCESS_URI = PROCESS_HIGHMED_URI_BASE + "executeFeasibility/";
47+
String PROFILE_HIGHMED_TASK_EXECUTE_FEASIBILITY_PROCESS_URI_AND_LATEST_VERSION =
48+
PROFILE_HIGHMED_TASK_EXECUTE_FEASIBILITY_PROCESS_URI + VERSION;
49+
String PROFILE_HIGHMED_TASK_EXECUTE_FEASIBILITY_MESSAGE_NAME = "executeFeasibilityMessage";
50+
51+
String PROFILE_HIGHMED_TASK_COMPUTE_FEASIBILITY = "http://highmed.org/fhir/StructureDefinition/task-compute-feasibility";
52+
String PROFILE_HIGHMED_TASK_COMPUTE_FEASIBILITY_PROCESS_URI = PROCESS_HIGHMED_URI_BASE + "computeFeasibility/";
53+
String PROFILE_HIGHMED_TASK_COMPUTE_FEASIBILITY_PROCESS_URI_AND_LATEST_VERSION =
54+
PROFILE_HIGHMED_TASK_COMPUTE_FEASIBILITY_PROCESS_URI + VERSION;
55+
String PROFILE_HIGHMED_TASK_COMPUTE_FEASIBILITY_MESSAGE_NAME = "computeFeasibilityMessage";
56+
57+
String PROFILE_HIGHMED_TASK_SINGLE_MEDIC_RESULT_FEASIBILITY = "http://highmed.org/fhir/StructureDefinition/task-single-medic-result-feasibility";
58+
String PROFILE_HIGHMED_TASK_SINGLE_MEDIC_RESULT_FEASIBILITY_MESSAGE_NAME = "resultSingleMedicFeasibilityMessage";
59+
60+
String PROFILE_HIGHMED_TASK_MULTI_MEDIC_RESULT_FEASIBILITY = "http://highmed.org/fhir/StructureDefinition/task-multi-medic-result-feasibility";
61+
String PROFILE_HIGHMED_TASK_MULTI_MEDIC_RESULT_FEASIBILITY_MESSAGE_NAME = "resultMultiMedicFeasibilityMessage";
62+
63+
String PROFILE_HIGHMED_TASK_ERROR_FEASIBILITY = "http://highmed.org/fhir/StructureDefinition/task-multi-medic-error-feasibility";
64+
String PROFILE_HIGHMED_TASK_ERROR_FEASIBILITY_MESSAGE_NAME = "errorMultiMedicFeasibilityMessage";
65+
}
Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
package org.highmed.dsf.bpe;
2+
3+
import java.util.Arrays;
4+
import java.util.List;
5+
import java.util.Map;
6+
import java.util.stream.Stream;
7+
8+
import org.highmed.dsf.bpe.spring.config.FeasibilityConfig;
9+
import org.highmed.dsf.bpe.spring.config.FeasibilitySerializerConfig;
10+
import org.highmed.dsf.fhir.resources.AbstractResource;
11+
import org.highmed.dsf.fhir.resources.ActivityDefinitionResource;
12+
import org.highmed.dsf.fhir.resources.CodeSystemResource;
13+
import org.highmed.dsf.fhir.resources.ResourceProvider;
14+
import org.highmed.dsf.fhir.resources.StructureDefinitionResource;
15+
import org.highmed.dsf.fhir.resources.ValueSetResource;
16+
17+
import ca.uhn.fhir.context.FhirContext;
18+
19+
public class FeasibilityProcessPluginDefinition implements ProcessPluginDefinition
20+
{
21+
public static final String VERSION = "0.4.0";
22+
23+
@Override
24+
public String getName()
25+
{
26+
return "dsf-bpe-process-feasibility";
27+
}
28+
29+
@Override
30+
public String getVersion()
31+
{
32+
return VERSION;
33+
}
34+
35+
@Override
36+
public Stream<String> getBpmnFiles()
37+
{
38+
return Stream.of("bpe/requestFeasibility.bpmn", "bpe/computeFeasibility.bpmn", "bpe/executeFeasibility.bpmn");
39+
}
40+
41+
@Override
42+
public Stream<Class<?>> getSpringConfigClasses()
43+
{
44+
return Stream.of(FeasibilityConfig.class, FeasibilitySerializerConfig.class);
45+
}
46+
47+
@Override
48+
public ResourceProvider getResourceProvider(FhirContext fhirContext, ClassLoader classLoader)
49+
{
50+
var aCom = ActivityDefinitionResource.file("fhir/ActivityDefinition/highmed-computeFeasibility.xml");
51+
var aExe = ActivityDefinitionResource.file("fhir/ActivityDefinition/highmed-executeFeasibility.xml");
52+
var aReq = ActivityDefinitionResource.file("fhir/ActivityDefinition/highmed-requestFeasibility.xml");
53+
54+
var cF = CodeSystemResource.file("fhir/CodeSystem/highmed-feasibility.xml");
55+
56+
var sTCom = StructureDefinitionResource.file("fhir/StructureDefinition/highmed-task-compute-feasibility.xml");
57+
var sTErr = StructureDefinitionResource.file("fhir/StructureDefinition/highmed-task-error-feasibility.xml");
58+
var sTExe = StructureDefinitionResource.file("fhir/StructureDefinition/highmed-task-execute-feasibility.xml");
59+
var sTResM = StructureDefinitionResource
60+
.file("fhir/StructureDefinition/highmed-task-multi-medic-result-feasibility.xml");
61+
var sTReq = StructureDefinitionResource.file("fhir/StructureDefinition/highmed-task-request-feasibility.xml");
62+
var sTResS = StructureDefinitionResource
63+
.file("fhir/StructureDefinition/highmed-task-single-medic-result-feasibility.xml");
64+
65+
var vF = ValueSetResource.file("fhir/ValueSet/highmed-feasibility.xml");
66+
67+
Map<String, List<AbstractResource>> resourcesByProcessKeyAndVersion = Map.of(
68+
"computeFeasibility/" + VERSION, Arrays.asList(aCom, cF, sTCom, sTResS, vF),
69+
"executeFeasibility/" + VERSION, Arrays.asList(aExe, cF, sTExe, vF),
70+
"requestFeasibility/" + VERSION, Arrays.asList(aReq, cF, sTReq, sTResM, sTErr, vF));
71+
72+
return ResourceProvider
73+
.read(VERSION, () -> fhirContext.newXmlParser().setStripVersionsFromReferences(false), classLoader,
74+
resourcesByProcessKeyAndVersion);
75+
}
76+
}

0 commit comments

Comments
 (0)