diff --git a/pom.xml b/pom.xml
index e565732..a692adb 100644
--- a/pom.xml
+++ b/pom.xml
@@ -8,7 +8,7 @@
de.difuture.uds
odm2fhir
- 0.7.6
+ 0.7.7
ODM2FHIR
Mapper for GECCO based study/patient data in CDISC ODM to HL7 FHIR
@@ -16,7 +16,7 @@
org.springframework.boot
spring-boot-starter-parent
- 2.6.4
+ 2.6.6
@@ -25,18 +25,17 @@
UTF-8
UTF-8
- 5.7.0
+ 5.7.2
2.13.2
- 1.0.2
1.18.22
${project.parent.version}
1.3.2
6.2.8
3.0.0
- 3.9.0
- 3.1.2
- 3.10.0
+ 3.10.1
+ 3.2.2
+ 3.11.0
diff --git a/src/main/java/de/difuture/uds/odm2fhir/fhir/writer/FHIRBundleWriter.java b/src/main/java/de/difuture/uds/odm2fhir/fhir/writer/FHIRBundleWriter.java
index c43398f..ad13841 100644
--- a/src/main/java/de/difuture/uds/odm2fhir/fhir/writer/FHIRBundleWriter.java
+++ b/src/main/java/de/difuture/uds/odm2fhir/fhir/writer/FHIRBundleWriter.java
@@ -18,7 +18,6 @@
* OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
-import ca.uhn.fhir.context.FhirContext;
import ca.uhn.fhir.parser.IParser;
import ca.uhn.fhir.parser.StrictErrorHandler;
@@ -30,6 +29,8 @@
import java.util.concurrent.atomic.AtomicInteger;
import javax.annotation.PostConstruct;
+import static ca.uhn.fhir.context.FhirContext.forR4Cached;
+
import static de.difuture.uds.odm2fhir.util.HTTPHelper.HTTP_CLIENT;
public abstract class FHIRBundleWriter {
@@ -37,8 +38,7 @@ public abstract class FHIRBundleWriter {
@Value("${fhir.errorhandling.strict:false}")
protected boolean errorhandlingStrict;
- protected static final FhirContext FHIR_CONTEXT = FhirContext.forR4();
- protected static final IParser JSON_PARSER = FHIR_CONTEXT.newJsonParser().setPrettyPrint(true);
+ protected static final IParser JSON_PARSER = forR4Cached().newJsonParser().setPrettyPrint(true);
public static final AtomicInteger RESOURCES_NUMBER = new AtomicInteger();
public static final AtomicInteger BUNDLES_NUMBER = new AtomicInteger();
@@ -50,7 +50,7 @@ private void init() {
if (errorhandlingStrict) {
JSON_PARSER.setParserErrorHandler(new StrictErrorHandler());
}
- FHIR_CONTEXT.getRestfulClientFactory().setHttpClient(HTTP_CLIENT);
+ forR4Cached().getRestfulClientFactory().setHttpClient(HTTP_CLIENT);
}
}
\ No newline at end of file
diff --git a/src/main/java/de/difuture/uds/odm2fhir/fhir/writer/FHIRBundler.java b/src/main/java/de/difuture/uds/odm2fhir/fhir/writer/FHIRBundler.java
index 5f3597a..c642e02 100644
--- a/src/main/java/de/difuture/uds/odm2fhir/fhir/writer/FHIRBundler.java
+++ b/src/main/java/de/difuture/uds/odm2fhir/fhir/writer/FHIRBundler.java
@@ -58,6 +58,7 @@
import javax.annotation.Nullable;
import javax.annotation.PostConstruct;
+import static ca.uhn.fhir.context.FhirContext.forR4Cached;
import static ca.uhn.fhir.validation.ResultSeverityEnum.ERROR;
import static ca.uhn.fhir.validation.ResultSeverityEnum.WARNING;
@@ -66,7 +67,6 @@
import static de.difuture.uds.odm2fhir.fhir.util.CommonCodeSystem.SNOMED_CT;
import static de.difuture.uds.odm2fhir.fhir.util.IdentifierHelper.getIdentifierSystem;
import static de.difuture.uds.odm2fhir.fhir.util.NUMStructureDefinition.GECCO_BUNDLE;
-import static de.difuture.uds.odm2fhir.fhir.writer.FHIRBundleWriter.FHIR_CONTEXT;
import static de.difuture.uds.odm2fhir.fhir.writer.FHIRBundleWriter.JSON_PARSER;
import static de.difuture.uds.odm2fhir.util.HTTPHelper.createAuthInterceptor;
@@ -132,7 +132,7 @@ private void init() throws IOException {
Locale.setDefault(ENGLISH);
@SuppressWarnings("unchecked")
- var prePopulatedValidationSupport = new PrePopulatedValidationSupport(FHIR_CONTEXT) {
+ var prePopulatedValidationSupport = new PrePopulatedValidationSupport(forR4Cached()) {
@Override
public ValueSetExpansionOutcome expandValueSet(ValidationSupportContext validationSupportContext,
@Nullable ValueSetExpansionOptions valueSetExpansionOptions,
@@ -150,19 +150,19 @@ public ValueSetExpansionOutcome expandValueSet(ValidationSupportContext validati
.map(JSON_PARSER::parseResource)
.forEach(prePopulatedValidationSupport::addResource);
- var unknownCodeSystemWarningValidationSupport = new UnknownCodeSystemWarningValidationSupport(FHIR_CONTEXT);
+ var unknownCodeSystemWarningValidationSupport = new UnknownCodeSystemWarningValidationSupport(forR4Cached());
unknownCodeSystemWarningValidationSupport.setNonExistentCodeSystemSeverity(IssueSeverity.WARNING);
var validationSupportChain = new ValidationSupportChain(
- new DefaultProfileValidationSupport(FHIR_CONTEXT),
- new CommonCodeSystemsTerminologyService(FHIR_CONTEXT),
- new InMemoryTerminologyServerValidationSupport(FHIR_CONTEXT),
+ new DefaultProfileValidationSupport(forR4Cached()),
+ new CommonCodeSystemsTerminologyService(forR4Cached()),
+ new InMemoryTerminologyServerValidationSupport(forR4Cached()),
unknownCodeSystemWarningValidationSupport,
- new SnapshotGeneratingValidationSupport(FHIR_CONTEXT),
+ new SnapshotGeneratingValidationSupport(forR4Cached()),
prePopulatedValidationSupport);
if (terminologyserverUrl.isAbsolute()) {
- var remoteTerminologyServiceValidationSupport = new RemoteTerminologyServiceValidationSupport(FHIR_CONTEXT);
+ var remoteTerminologyServiceValidationSupport = new RemoteTerminologyServiceValidationSupport(forR4Cached());
remoteTerminologyServiceValidationSupport.setBaseUrl(terminologyserverUrl.toString());
remoteTerminologyServiceValidationSupport.addClientInterceptor(
createAuthInterceptor(terminologyserverBasicauthUsername, terminologyserverBasicauthPassword,
@@ -170,7 +170,7 @@ public ValueSetExpansionOutcome expandValueSet(ValidationSupportContext validati
validationSupportChain.addValidationSupport(remoteTerminologyServiceValidationSupport);
}
- fhirValidator = FHIR_CONTEXT.newValidator()
+ fhirValidator = forR4Cached().newValidator()
.registerValidatorModule(new FhirInstanceValidator(new CachingValidationSupport(validationSupportChain)));
}
}
diff --git a/src/main/java/de/difuture/uds/odm2fhir/fhir/writer/ServerFHIRBundleWriter.java b/src/main/java/de/difuture/uds/odm2fhir/fhir/writer/ServerFHIRBundleWriter.java
index 56fb3c9..31f819c 100644
--- a/src/main/java/de/difuture/uds/odm2fhir/fhir/writer/ServerFHIRBundleWriter.java
+++ b/src/main/java/de/difuture/uds/odm2fhir/fhir/writer/ServerFHIRBundleWriter.java
@@ -39,6 +39,8 @@
import static de.difuture.uds.odm2fhir.util.HTTPHelper.createAuthInterceptor;
+import static ca.uhn.fhir.context.FhirContext.forR4Cached;
+
@ConditionalOnExpression("!'${fhir.server.url:}'.empty")
@Service
@Slf4j
@@ -66,7 +68,7 @@ public class ServerFHIRBundleWriter extends FHIRBundleWriter {
private RetryTemplate retryTemplate;
private void init() throws IOException {
- genericClient = FHIR_CONTEXT.getRestfulClientFactory().newGenericClient(url.toString());
+ genericClient = forR4Cached().getRestfulClientFactory().newGenericClient(url.toString());
genericClient.registerInterceptor(
createAuthInterceptor(basicauthUsername, basicauthPassword, oauth2TokenURL, oauth2ClientId, oauth2ClientSecret));
diff --git a/src/main/java/de/difuture/uds/odm2fhir/util/HTTPHelper.java b/src/main/java/de/difuture/uds/odm2fhir/util/HTTPHelper.java
index e9d7840..6562fd6 100644
--- a/src/main/java/de/difuture/uds/odm2fhir/util/HTTPHelper.java
+++ b/src/main/java/de/difuture/uds/odm2fhir/util/HTTPHelper.java
@@ -64,8 +64,6 @@ public void setHttpClient(Environment environment) throws Exception {
HTTP_CLIENT = HttpClientBuilder.create()
.useSystemProperties()
- .setMaxConnTotal(100)
- .setMaxConnPerRoute(100)
.setSSLContext(sslContextBuilder.build())
.setSSLHostnameVerifier(new NoopHostnameVerifier())
.build();
diff --git a/src/test/resources/DIS_Synthetic_Data_2021-04-15.xml b/src/test/resources/DIS_Synthetic_Data_2021-04-15.xml
index e104ec5..7ff5a79 100644
--- a/src/test/resources/DIS_Synthetic_Data_2021-04-15.xml
+++ b/src/test/resources/DIS_Synthetic_Data_2021-04-15.xml
@@ -1297,7 +1297,8 @@
-
+
+
@@ -1307,7 +1308,8 @@
-
+
+
@@ -1316,7 +1318,8 @@
-
+
+
@@ -1325,7 +1328,8 @@
-
+
+
@@ -1338,7 +1342,8 @@
-
+
+
@@ -1346,7 +1351,8 @@
-
+
+
@@ -1354,7 +1360,8 @@
-
+
+
@@ -1362,7 +1369,8 @@
-
+
+
@@ -1372,7 +1380,8 @@
-
+
+
@@ -1382,7 +1391,8 @@
-
+
+
@@ -1391,7 +1401,8 @@
-
+
+
@@ -1400,7 +1411,8 @@
-
+
+
@@ -1408,7 +1420,8 @@
-
+
+
@@ -1416,7 +1429,8 @@
-
+
+
@@ -1424,7 +1438,8 @@
-
+
+
@@ -1432,7 +1447,8 @@
-
+
+
@@ -1440,7 +1456,8 @@
-
+
+
@@ -1448,7 +1465,8 @@
-
+
+
@@ -1458,7 +1476,8 @@
-
+
+
@@ -1467,7 +1486,8 @@
-
+
+
@@ -1475,7 +1495,8 @@
-
+
+
@@ -1483,7 +1504,8 @@
-
+
+
@@ -1491,7 +1513,8 @@
-
+
+
@@ -1514,7 +1537,8 @@
-
+
+
@@ -1529,7 +1553,8 @@
-
+
+
@@ -1544,7 +1569,8 @@
-
+
+
@@ -1559,7 +1585,8 @@
-
+
+
@@ -2955,7 +2982,8 @@
-
+
+
@@ -2965,7 +2993,8 @@
-
+
+
@@ -2974,7 +3003,8 @@
-
+
+
@@ -2983,7 +3013,8 @@
-
+
+
@@ -2996,7 +3027,8 @@
-
+
+
@@ -3004,7 +3036,8 @@
-
+
+
@@ -3012,7 +3045,8 @@
-
+
+
@@ -3020,7 +3054,8 @@
-
+
+
@@ -3030,7 +3065,8 @@
-
+
+
@@ -3040,7 +3076,8 @@
-
+
+
@@ -3049,7 +3086,8 @@
-
+
+
@@ -3058,7 +3096,8 @@
-
+
+
@@ -3066,7 +3105,8 @@
-
+
+
@@ -3074,7 +3114,8 @@
-
+
+
@@ -3082,7 +3123,8 @@
-
+
+
@@ -3090,7 +3132,8 @@
-
+
+
@@ -3098,7 +3141,8 @@
-
+
+
@@ -3106,7 +3150,8 @@
-
+
+
@@ -3116,7 +3161,8 @@
-
+
+
@@ -3125,7 +3171,8 @@
-
+
+
@@ -3133,7 +3180,8 @@
-
+
+
@@ -3141,7 +3189,8 @@
-
+
+
@@ -3149,7 +3198,8 @@
-
+
+
@@ -3172,7 +3222,8 @@
-
+
+
@@ -3187,7 +3238,8 @@
-
+
+
@@ -3202,7 +3254,8 @@
-
+
+
@@ -3217,7 +3270,8 @@
-
+
+
@@ -4613,7 +4667,8 @@
-
+
+
@@ -4623,7 +4678,8 @@
-
+
+
@@ -4632,7 +4688,8 @@
-
+
+
@@ -4641,7 +4698,8 @@
-
+
+
@@ -4654,7 +4712,8 @@
-
+
+
@@ -4662,7 +4721,8 @@
-
+
+
@@ -4670,7 +4730,8 @@
-
+
+
@@ -4678,7 +4739,8 @@
-
+
+
@@ -4688,7 +4750,8 @@
-
+
+
@@ -4698,7 +4761,8 @@
-
+
+
@@ -4707,7 +4771,8 @@
-
+
+
@@ -4716,7 +4781,8 @@
-
+
+
@@ -4724,7 +4790,8 @@
-
+
+
@@ -4732,7 +4799,8 @@
-
+
+
@@ -4740,7 +4808,8 @@
-
+
+
@@ -4748,7 +4817,8 @@
-
+
+
@@ -4756,7 +4826,8 @@
-
+
+
@@ -4764,7 +4835,8 @@
-
+
+
@@ -4774,7 +4846,8 @@
-
+
+
@@ -4783,7 +4856,8 @@
-
+
+
@@ -4791,7 +4865,8 @@
-
+
+
@@ -4799,7 +4874,8 @@
-
+
+
@@ -4807,7 +4883,8 @@
-
+
+
@@ -4830,7 +4907,8 @@
-
+
+
@@ -4845,7 +4923,8 @@
-
+
+
@@ -4860,7 +4939,8 @@
-
+
+
@@ -4875,7 +4955,8 @@
-
+
+
@@ -6271,7 +6352,8 @@
-
+
+
@@ -6281,7 +6363,8 @@
-
+
+
@@ -6290,7 +6373,8 @@
-
+
+
@@ -6299,7 +6383,8 @@
-
+
+
@@ -6312,7 +6397,8 @@
-
+
+
@@ -6320,7 +6406,8 @@
-
+
+
@@ -6328,7 +6415,8 @@
-
+
+
@@ -6336,7 +6424,8 @@
-
+
+
@@ -6346,7 +6435,8 @@
-
+
+
@@ -6356,7 +6446,8 @@
-
+
+
@@ -6365,7 +6456,8 @@
-
+
+
@@ -6374,7 +6466,8 @@
-
+
+
@@ -6382,7 +6475,8 @@
-
+
+
@@ -6390,7 +6484,8 @@
-
+
+
@@ -6398,7 +6493,8 @@
-
+
+
@@ -6406,7 +6502,8 @@
-
+
+
@@ -6414,7 +6511,8 @@
-
+
+
@@ -6422,7 +6520,8 @@
-
+
+
@@ -6432,7 +6531,8 @@
-
+
+
@@ -6441,7 +6541,8 @@
-
+
+
@@ -6449,7 +6550,8 @@
-
+
+
@@ -6457,7 +6559,8 @@
-
+
+
@@ -6465,7 +6568,8 @@
-
+
+
@@ -6488,7 +6592,8 @@
-
+
+
@@ -6503,7 +6608,8 @@
-
+
+
@@ -6518,7 +6624,8 @@
-
+
+
@@ -6533,7 +6640,8 @@
-
+
+
@@ -7929,7 +8037,8 @@
-
+
+
@@ -7939,7 +8048,8 @@
-
+
+
@@ -7948,7 +8058,8 @@
-
+
+
@@ -7957,7 +8068,8 @@
-
+
+
@@ -7970,7 +8082,8 @@
-
+
+
@@ -7978,7 +8091,8 @@
-
+
+
@@ -7986,7 +8100,8 @@
-
+
+
@@ -7994,7 +8109,8 @@
-
+
+
@@ -8004,7 +8120,8 @@
-
+
+
@@ -8014,7 +8131,8 @@
-
+
+
@@ -8023,7 +8141,8 @@
-
+
+
@@ -8032,7 +8151,8 @@
-
+
+
@@ -8040,7 +8160,8 @@
-
+
+
@@ -8048,7 +8169,8 @@
-
+
+
@@ -8056,7 +8178,8 @@
-
+
+
@@ -8064,7 +8187,8 @@
-
+
+
@@ -8072,7 +8196,8 @@
-
+
+
@@ -8080,7 +8205,8 @@
-
+
+
@@ -8090,7 +8216,8 @@
-
+
+
@@ -8099,7 +8226,8 @@
-
+
+
@@ -8107,7 +8235,8 @@
-
+
+
@@ -8115,7 +8244,8 @@
-
+
+
@@ -8123,7 +8253,8 @@
-
+
+
@@ -8146,7 +8277,8 @@
-
+
+
@@ -8161,7 +8293,8 @@
-
+
+
@@ -8176,7 +8309,8 @@
-
+
+
@@ -8191,7 +8325,8 @@
-
+
+
@@ -9587,7 +9722,8 @@
-
+
+
@@ -9597,7 +9733,8 @@
-
+
+
@@ -9606,7 +9743,8 @@
-
+
+
@@ -9615,7 +9753,8 @@
-
+
+
@@ -9628,7 +9767,8 @@
-
+
+
@@ -9636,7 +9776,8 @@
-
+
+
@@ -9644,7 +9785,8 @@
-
+
+
@@ -9652,7 +9794,8 @@
-
+
+
@@ -9662,7 +9805,8 @@
-
+
+
@@ -9672,7 +9816,8 @@
-
+
+
@@ -9681,7 +9826,8 @@
-
+
+
@@ -9690,7 +9836,8 @@
-
+
+
@@ -9698,7 +9845,8 @@
-
+
+
@@ -9706,7 +9854,8 @@
-
+
+
@@ -9714,7 +9863,8 @@
-
+
+
@@ -9722,7 +9872,8 @@
-
+
+
@@ -9730,7 +9881,8 @@
-
+
+
@@ -9738,7 +9890,8 @@
-
+
+
@@ -9748,7 +9901,8 @@
-
+
+
@@ -9757,7 +9911,8 @@
-
+
+
@@ -9765,7 +9920,8 @@
-
+
+
@@ -9773,7 +9929,8 @@
-
+
+
@@ -9781,7 +9938,8 @@
-
+
+
@@ -9804,7 +9962,8 @@
-
+
+
@@ -9819,7 +9978,8 @@
-
+
+
@@ -9834,7 +9994,8 @@
-
+
+
@@ -9849,7 +10010,8 @@
-
+
+
@@ -11245,7 +11407,8 @@
-
+
+
@@ -11255,7 +11418,8 @@
-
+
+
@@ -11264,7 +11428,8 @@
-
+
+
@@ -11273,7 +11438,8 @@
-
+
+
@@ -11286,7 +11452,8 @@
-
+
+
@@ -11294,7 +11461,8 @@
-
+
+
@@ -11302,7 +11470,8 @@
-
+
+
@@ -11310,7 +11479,8 @@
-
+
+
@@ -11320,7 +11490,8 @@
-
+
+
@@ -11330,7 +11501,8 @@
-
+
+
@@ -11339,7 +11511,8 @@
-
+
+
@@ -11348,7 +11521,8 @@
-
+
+
@@ -11356,7 +11530,8 @@
-
+
+
@@ -11364,7 +11539,8 @@
-
+
+
@@ -11372,7 +11548,8 @@
-
+
+
@@ -11380,7 +11557,8 @@
-
+
+
@@ -11388,7 +11566,8 @@
-
+
+
@@ -11396,7 +11575,8 @@
-
+
+
@@ -11406,7 +11586,8 @@
-
+
+
@@ -11415,7 +11596,8 @@
-
+
+
@@ -11423,7 +11605,8 @@
-
+
+
@@ -11431,7 +11614,8 @@
-
+
+
@@ -11439,7 +11623,8 @@
-
+
+
@@ -11462,7 +11647,8 @@
-
+
+
@@ -11477,7 +11663,8 @@
-
+
+
@@ -11492,7 +11679,8 @@
-
+
+
@@ -11507,7 +11695,8 @@
-
+
+
@@ -12903,7 +13092,8 @@
-
+
+
@@ -12913,7 +13103,8 @@
-
+
+
@@ -12922,7 +13113,8 @@
-
+
+
@@ -12931,7 +13123,8 @@
-
+
+
@@ -12944,7 +13137,8 @@
-
+
+
@@ -12952,7 +13146,8 @@
-
+
+
@@ -12960,7 +13155,8 @@
-
+
+
@@ -12968,7 +13164,8 @@
-
+
+
@@ -12978,7 +13175,8 @@
-
+
+
@@ -12988,7 +13186,8 @@
-
+
+
@@ -12997,7 +13196,8 @@
-
+
+
@@ -13006,7 +13206,8 @@
-
+
+
@@ -13014,7 +13215,8 @@
-
+
+
@@ -13022,7 +13224,8 @@
-
+
+
@@ -13030,7 +13233,8 @@
-
+
+
@@ -13038,7 +13242,8 @@
-
+
+
@@ -13046,7 +13251,8 @@
-
+
+
@@ -13054,7 +13260,8 @@
-
+
+
@@ -13064,7 +13271,8 @@
-
+
+
@@ -13073,7 +13281,8 @@
-
+
+
@@ -13081,7 +13290,8 @@
-
+
+
@@ -13089,7 +13299,8 @@
-
+
+
@@ -13097,7 +13308,8 @@
-
+
+
@@ -13120,7 +13332,8 @@
-
+
+
@@ -13135,7 +13348,8 @@
-
+
+
@@ -13150,7 +13364,8 @@
-
+
+
@@ -13165,7 +13380,8 @@
-
+
+
diff --git a/src/test/resources/DIS_Synthetic_Data_2021-08-04.xml b/src/test/resources/DIS_Synthetic_Data_2021-08-04.xml
index 721f63b..807d177 100644
--- a/src/test/resources/DIS_Synthetic_Data_2021-08-04.xml
+++ b/src/test/resources/DIS_Synthetic_Data_2021-08-04.xml
@@ -1297,7 +1297,8 @@
-
+
+
@@ -1307,7 +1308,8 @@
-
+
+
@@ -1316,7 +1318,8 @@
-
+
+
@@ -1325,7 +1328,8 @@
-
+
+
@@ -1338,7 +1342,8 @@
-
+
+
@@ -1346,7 +1351,8 @@
-
+
+
@@ -1354,7 +1360,8 @@
-
+
+
@@ -1362,7 +1369,8 @@
-
+
+
@@ -1372,7 +1380,8 @@
-
+
+
@@ -1382,7 +1391,8 @@
-
+
+
@@ -1391,7 +1401,8 @@
-
+
+
@@ -1400,7 +1411,8 @@
-
+
+
@@ -1408,7 +1420,8 @@
-
+
+
@@ -1416,7 +1429,8 @@
-
+
+
@@ -1424,7 +1438,8 @@
-
+
+
@@ -1432,7 +1447,8 @@
-
+
+
@@ -1440,7 +1456,8 @@
-
+
+
@@ -1448,7 +1465,8 @@
-
+
+
@@ -1458,7 +1476,8 @@
-
+
+
@@ -1467,7 +1486,8 @@
-
+
+
@@ -1475,7 +1495,8 @@
-
+
+
@@ -1483,7 +1504,8 @@
-
+
+
@@ -1491,7 +1513,8 @@
-
+
+
@@ -1514,7 +1537,8 @@
-
+
+
@@ -1529,7 +1553,8 @@
-
+
+
@@ -1544,7 +1569,8 @@
-
+
+
@@ -1559,7 +1585,8 @@
-
+
+
@@ -2955,7 +2982,8 @@
-
+
+
@@ -2965,7 +2993,8 @@
-
+
+
@@ -2974,7 +3003,8 @@
-
+
+
@@ -2983,7 +3013,8 @@
-
+
+
@@ -2996,7 +3027,8 @@
-
+
+
@@ -3004,7 +3036,8 @@
-
+
+
@@ -3012,7 +3045,8 @@
-
+
+
@@ -3020,7 +3054,8 @@
-
+
+
@@ -3030,7 +3065,8 @@
-
+
+
@@ -3040,7 +3076,8 @@
-
+
+
@@ -3049,7 +3086,8 @@
-
+
+
@@ -3058,7 +3096,8 @@
-
+
+
@@ -3066,7 +3105,8 @@
-
+
+
@@ -3074,7 +3114,8 @@
-
+
+
@@ -3082,7 +3123,8 @@
-
+
+
@@ -3090,7 +3132,8 @@
-
+
+
@@ -3098,7 +3141,8 @@
-
+
+
@@ -3106,7 +3150,8 @@
-
+
+
@@ -3116,7 +3161,8 @@
-
+
+
@@ -3125,7 +3171,8 @@
-
+
+
@@ -3133,7 +3180,8 @@
-
+
+
@@ -3141,7 +3189,8 @@
-
+
+
@@ -3149,7 +3198,8 @@
-
+
+
@@ -3172,7 +3222,8 @@
-
+
+
@@ -3187,7 +3238,8 @@
-
+
+
@@ -3202,7 +3254,8 @@
-
+
+
@@ -3217,7 +3270,8 @@
-
+
+
@@ -4613,7 +4667,8 @@
-
+
+
@@ -4623,7 +4678,8 @@
-
+
+
@@ -4632,7 +4688,8 @@
-
+
+
@@ -4641,7 +4698,8 @@
-
+
+
@@ -4654,7 +4712,8 @@
-
+
+
@@ -4662,7 +4721,8 @@
-
+
+
@@ -4670,7 +4730,8 @@
-
+
+
@@ -4678,7 +4739,8 @@
-
+
+
@@ -4688,7 +4750,8 @@
-
+
+
@@ -4698,7 +4761,8 @@
-
+
+
@@ -4707,7 +4771,8 @@
-
+
+
@@ -4716,7 +4781,8 @@
-
+
+
@@ -4724,7 +4790,8 @@
-
+
+
@@ -4732,7 +4799,8 @@
-
+
+
@@ -4740,7 +4808,8 @@
-
+
+
@@ -4748,7 +4817,8 @@
-
+
+
@@ -4756,7 +4826,8 @@
-
+
+
@@ -4764,7 +4835,8 @@
-
+
+
@@ -4774,7 +4846,8 @@
-
+
+
@@ -4783,7 +4856,8 @@
-
+
+
@@ -4791,7 +4865,8 @@
-
+
+
@@ -4799,7 +4874,8 @@
-
+
+
@@ -4807,7 +4883,8 @@
-
+
+
@@ -4830,7 +4907,8 @@
-
+
+
@@ -4845,7 +4923,8 @@
-
+
+
@@ -4860,7 +4939,8 @@
-
+
+
@@ -4875,7 +4955,8 @@
-
+
+
@@ -6271,7 +6352,8 @@
-
+
+
@@ -6281,7 +6363,8 @@
-
+
+
@@ -6290,7 +6373,8 @@
-
+
+
@@ -6299,7 +6383,8 @@
-
+
+
@@ -6312,7 +6397,8 @@
-
+
+
@@ -6320,7 +6406,8 @@
-
+
+
@@ -6328,7 +6415,8 @@
-
+
+
@@ -6336,7 +6424,8 @@
-
+
+
@@ -6346,7 +6435,8 @@
-
+
+
@@ -6356,7 +6446,8 @@
-
+
+
@@ -6365,7 +6456,8 @@
-
+
+
@@ -6374,7 +6466,8 @@
-
+
+
@@ -6382,7 +6475,8 @@
-
+
+
@@ -6390,7 +6484,8 @@
-
+
+
@@ -6398,7 +6493,8 @@
-
+
+
@@ -6406,7 +6502,8 @@
-
+
+
@@ -6414,7 +6511,8 @@
-
+
+
@@ -6422,7 +6520,8 @@
-
+
+
@@ -6432,7 +6531,8 @@
-
+
+
@@ -6441,7 +6541,8 @@
-
+
+
@@ -6449,7 +6550,8 @@
-
+
+
@@ -6457,7 +6559,8 @@
-
+
+
@@ -6465,7 +6568,8 @@
-
+
+
@@ -6488,7 +6592,8 @@
-
+
+
@@ -6503,7 +6608,8 @@
-
+
+
@@ -6518,7 +6624,8 @@
-
+
+
@@ -6533,7 +6640,8 @@
-
+
+
@@ -7929,7 +8037,8 @@
-
+
+
@@ -7939,7 +8048,8 @@
-
+
+
@@ -7948,7 +8058,8 @@
-
+
+
@@ -7957,7 +8068,8 @@
-
+
+
@@ -7970,7 +8082,8 @@
-
+
+
@@ -7978,7 +8091,8 @@
-
+
+
@@ -7986,7 +8100,8 @@
-
+
+
@@ -7994,7 +8109,8 @@
-
+
+
@@ -8004,7 +8120,8 @@
-
+
+
@@ -8014,7 +8131,8 @@
-
+
+
@@ -8023,7 +8141,8 @@
-
+
+
@@ -8032,7 +8151,8 @@
-
+
+
@@ -8040,7 +8160,8 @@
-
+
+
@@ -8048,7 +8169,8 @@
-
+
+
@@ -8056,7 +8178,8 @@
-
+
+
@@ -8064,7 +8187,8 @@
-
+
+
@@ -8072,7 +8196,8 @@
-
+
+
@@ -8080,7 +8205,8 @@
-
+
+
@@ -8090,7 +8216,8 @@
-
+
+
@@ -8099,7 +8226,8 @@
-
+
+
@@ -8107,7 +8235,8 @@
-
+
+
@@ -8115,7 +8244,8 @@
-
+
+
@@ -8123,7 +8253,8 @@
-
+
+
@@ -8146,7 +8277,8 @@
-
+
+
@@ -8161,7 +8293,8 @@
-
+
+
@@ -8176,7 +8309,8 @@
-
+
+
@@ -8191,7 +8325,8 @@
-
+
+
@@ -9587,7 +9722,8 @@
-
+
+
@@ -9597,7 +9733,8 @@
-
+
+
@@ -9606,7 +9743,8 @@
-
+
+
@@ -9615,7 +9753,8 @@
-
+
+
@@ -9628,7 +9767,8 @@
-
+
+
@@ -9636,7 +9776,8 @@
-
+
+
@@ -9644,7 +9785,8 @@
-
+
+
@@ -9652,7 +9794,8 @@
-
+
+
@@ -9662,7 +9805,8 @@
-
+
+
@@ -9672,7 +9816,8 @@
-
+
+
@@ -9681,7 +9826,8 @@
-
+
+
@@ -9690,7 +9836,8 @@
-
+
+
@@ -9698,7 +9845,8 @@
-
+
+
@@ -9706,7 +9854,8 @@
-
+
+
@@ -9714,7 +9863,8 @@
-
+
+
@@ -9722,7 +9872,8 @@
-
+
+
@@ -9730,7 +9881,8 @@
-
+
+
@@ -9738,7 +9890,8 @@
-
+
+
@@ -9748,7 +9901,8 @@
-
+
+
@@ -9757,7 +9911,8 @@
-
+
+
@@ -9765,7 +9920,8 @@
-
+
+
@@ -9773,7 +9929,8 @@
-
+
+
@@ -9781,7 +9938,8 @@
-
+
+
@@ -9804,7 +9962,8 @@
-
+
+
@@ -9819,7 +9978,8 @@
-
+
+
@@ -9834,7 +9994,8 @@
-
+
+
@@ -9849,7 +10010,8 @@
-
+
+
@@ -11245,7 +11407,8 @@
-
+
+
@@ -11255,7 +11418,8 @@
-
+
+
@@ -11264,7 +11428,8 @@
-
+
+
@@ -11273,7 +11438,8 @@
-
+
+
@@ -11286,7 +11452,8 @@
-
+
+
@@ -11294,7 +11461,8 @@
-
+
+
@@ -11302,7 +11470,8 @@
-
+
+
@@ -11310,7 +11479,8 @@
-
+
+
@@ -11320,7 +11490,8 @@
-
+
+
@@ -11330,7 +11501,8 @@
-
+
+
@@ -11339,7 +11511,8 @@
-
+
+
@@ -11348,7 +11521,8 @@
-
+
+
@@ -11356,7 +11530,8 @@
-
+
+
@@ -11364,7 +11539,8 @@
-
+
+
@@ -11372,7 +11548,8 @@
-
+
+
@@ -11380,7 +11557,8 @@
-
+
+
@@ -11388,7 +11566,8 @@
-
+
+
@@ -11396,7 +11575,8 @@
-
+
+
@@ -11406,7 +11586,8 @@
-
+
+
@@ -11415,7 +11596,8 @@
-
+
+
@@ -11423,7 +11605,8 @@
-
+
+
@@ -11431,7 +11614,8 @@
-
+
+
@@ -11439,7 +11623,8 @@
-
+
+
@@ -11462,7 +11647,8 @@
-
+
+
@@ -11477,7 +11663,8 @@
-
+
+
@@ -11492,7 +11679,8 @@
-
+
+
@@ -11507,7 +11695,8 @@
-
+
+
@@ -12903,7 +13092,8 @@
-
+
+
@@ -12913,7 +13103,8 @@
-
+
+
@@ -12922,7 +13113,8 @@
-
+
+
@@ -12931,7 +13123,8 @@
-
+
+
@@ -12944,7 +13137,8 @@
-
+
+
@@ -12952,7 +13146,8 @@
-
+
+
@@ -12960,7 +13155,8 @@
-
+
+
@@ -12968,7 +13164,8 @@
-
+
+
@@ -12978,7 +13175,8 @@
-
+
+
@@ -12988,7 +13186,8 @@
-
+
+
@@ -12997,7 +13196,8 @@
-
+
+
@@ -13006,7 +13206,8 @@
-
+
+
@@ -13014,7 +13215,8 @@
-
+
+
@@ -13022,7 +13224,8 @@
-
+
+
@@ -13030,7 +13233,8 @@
-
+
+
@@ -13038,7 +13242,8 @@
-
+
+
@@ -13046,7 +13251,8 @@
-
+
+
@@ -13054,7 +13260,8 @@
-
+
+
@@ -13064,7 +13271,8 @@
-
+
+
@@ -13073,7 +13281,8 @@
-
+
+
@@ -13081,7 +13290,8 @@
-
+
+
@@ -13089,7 +13299,8 @@
-
+
+
@@ -13097,7 +13308,8 @@
-
+
+
@@ -13120,7 +13332,8 @@
-
+
+
@@ -13135,7 +13348,8 @@
-
+
+
@@ -13150,7 +13364,8 @@
-
+
+
@@ -13165,7 +13380,8 @@
-
+
+
diff --git a/src/test/resources/REDCap_Realistic_Data_2021-04-15.xml b/src/test/resources/REDCap_Realistic_Data_2021-04-15.xml
index 0e2de7e..bdf3db3 100644
--- a/src/test/resources/REDCap_Realistic_Data_2021-04-15.xml
+++ b/src/test/resources/REDCap_Realistic_Data_2021-04-15.xml
@@ -1393,7 +1393,8 @@
-
+
+
@@ -1403,7 +1404,8 @@
-
+
+
@@ -1412,7 +1414,8 @@
-
+
+
@@ -1421,7 +1424,8 @@
-
+
+
@@ -1434,7 +1438,8 @@
-
+
+
@@ -1442,7 +1447,8 @@
-
+
+
@@ -1450,7 +1456,8 @@
-
+
+
@@ -1458,7 +1465,8 @@
-
+
+
@@ -1468,7 +1476,8 @@
-
+
+
@@ -1478,7 +1487,8 @@
-
+
+
@@ -1487,7 +1497,8 @@
-
+
+
@@ -1496,7 +1507,8 @@
-
+
+
@@ -1504,7 +1516,8 @@
-
+
+
@@ -1512,7 +1525,8 @@
-
+
+
@@ -1520,7 +1534,8 @@
-
+
+
@@ -1528,7 +1543,8 @@
-
+
+
@@ -1536,7 +1552,8 @@
-
+
+
@@ -1544,7 +1561,8 @@
-
+
+
@@ -1554,7 +1572,8 @@
-
+
+
@@ -1563,7 +1582,8 @@
-
+
+
@@ -1571,7 +1591,8 @@
-
+
+
@@ -1579,7 +1600,8 @@
-
+
+
@@ -1587,7 +1609,8 @@
-
+
+
@@ -1610,7 +1633,8 @@
-
+
+
@@ -1625,7 +1649,8 @@
-
+
+
@@ -1640,7 +1665,8 @@
-
+
+
@@ -1655,7 +1681,8 @@
-
+
+
@@ -1671,7 +1698,8 @@
-
+
+
@@ -1681,7 +1709,8 @@
-
+
+
@@ -1690,7 +1719,8 @@
-
+
+
@@ -1699,7 +1729,8 @@
-
+
+
@@ -1712,7 +1743,8 @@
-
+
+
@@ -1720,7 +1752,8 @@
-
+
+
@@ -1728,7 +1761,8 @@
-
+
+
@@ -1736,7 +1770,8 @@
-
+
+
@@ -1746,7 +1781,8 @@
-
+
+
@@ -1756,7 +1792,8 @@
-
+
+
@@ -1765,7 +1802,8 @@
-
+
+
@@ -1774,7 +1812,8 @@
-
+
+
@@ -1782,7 +1821,8 @@
-
+
+
@@ -1790,7 +1830,8 @@
-
+
+
@@ -1798,7 +1839,8 @@
-
+
+
@@ -1806,7 +1848,8 @@
-
+
+
@@ -1814,7 +1857,8 @@
-
+
+
@@ -1822,7 +1866,8 @@
-
+
+
@@ -1832,7 +1877,8 @@
-
+
+
@@ -1841,7 +1887,8 @@
-
+
+
@@ -1849,7 +1896,8 @@
-
+
+
@@ -1857,7 +1905,8 @@
-
+
+
@@ -1865,7 +1914,8 @@
-
+
+
@@ -1888,7 +1938,8 @@
-
+
+
@@ -1903,7 +1954,8 @@
-
+
+
@@ -1918,7 +1970,8 @@
-
+
+
@@ -1933,7 +1986,8 @@
-
+
+
@@ -2316,7 +2370,8 @@
-
+
+
@@ -2326,7 +2381,8 @@
-
+
+
@@ -2335,7 +2391,8 @@
-
+
+
@@ -2344,7 +2401,8 @@
-
+
+
@@ -2357,7 +2415,8 @@
-
+
+
@@ -2365,7 +2424,8 @@
-
+
+
@@ -2373,7 +2433,8 @@
-
+
+
@@ -2381,7 +2442,8 @@
-
+
+
@@ -2391,7 +2453,8 @@
-
+
+
@@ -2401,7 +2464,8 @@
-
+
+
@@ -2410,7 +2474,8 @@
-
+
+
@@ -2419,7 +2484,8 @@
-
+
+
@@ -2427,7 +2493,8 @@
-
+
+
@@ -2435,7 +2502,8 @@
-
+
+
@@ -2443,7 +2511,8 @@
-
+
+
@@ -2451,7 +2520,8 @@
-
+
+
@@ -2459,7 +2529,8 @@
-
+
+
@@ -2467,7 +2538,8 @@
-
+
+
@@ -2477,7 +2549,8 @@
-
+
+
@@ -2486,7 +2559,8 @@
-
+
+
@@ -2494,7 +2568,8 @@
-
+
+
@@ -2502,7 +2577,8 @@
-
+
+
@@ -2510,7 +2586,8 @@
-
+
+
@@ -2533,7 +2610,8 @@
-
+
+
@@ -2548,7 +2626,8 @@
-
+
+
@@ -2563,7 +2642,8 @@
-
+
+
@@ -2578,7 +2658,8 @@
-
+
+
@@ -3019,7 +3100,8 @@
-
+
+
@@ -3029,7 +3111,8 @@
-
+
+
@@ -3038,7 +3121,8 @@
-
+
+
@@ -3047,7 +3131,8 @@
-
+
+
@@ -3060,7 +3145,8 @@
-
+
+
@@ -3068,7 +3154,8 @@
-
+
+
@@ -3076,7 +3163,8 @@
-
+
+
@@ -3084,7 +3172,8 @@
-
+
+
@@ -3094,7 +3183,8 @@
-
+
+
@@ -3104,7 +3194,8 @@
-
+
+
@@ -3113,7 +3204,8 @@
-
+
+
@@ -3122,7 +3214,8 @@
-
+
+
@@ -3130,7 +3223,8 @@
-
+
+
@@ -3138,7 +3232,8 @@
-
+
+
@@ -3146,7 +3241,8 @@
-
+
+
@@ -3154,7 +3250,8 @@
-
+
+
@@ -3162,7 +3259,8 @@
-
+
+
@@ -3170,7 +3268,8 @@
-
+
+
@@ -3180,7 +3279,8 @@
-
+
+
@@ -3189,7 +3289,8 @@
-
+
+
@@ -3197,7 +3298,8 @@
-
+
+
@@ -3205,7 +3307,8 @@
-
+
+
@@ -3213,7 +3316,8 @@
-
+
+
@@ -3236,7 +3340,8 @@
-
+
+
@@ -3251,7 +3356,8 @@
-
+
+
@@ -3266,7 +3372,8 @@
-
+
+
@@ -3281,7 +3388,8 @@
-
+
+
@@ -3297,7 +3405,8 @@
-
+
+
@@ -3307,7 +3416,8 @@
-
+
+
@@ -3316,7 +3426,8 @@
-
+
+
@@ -3325,7 +3436,8 @@
-
+
+
@@ -3338,7 +3450,8 @@
-
+
+
@@ -3346,7 +3459,8 @@
-
+
+
@@ -3354,7 +3468,8 @@
-
+
+
@@ -3362,7 +3477,8 @@
-
+
+
@@ -3372,7 +3488,8 @@
-
+
+
@@ -3382,7 +3499,8 @@
-
+
+
@@ -3391,7 +3509,8 @@
-
+
+
@@ -3400,7 +3519,8 @@
-
+
+
@@ -3408,7 +3528,8 @@
-
+
+
@@ -3416,7 +3537,8 @@
-
+
+
@@ -3424,7 +3546,8 @@
-
+
+
@@ -3432,7 +3555,8 @@
-
+
+
@@ -3440,7 +3564,8 @@
-
+
+
@@ -3448,7 +3573,8 @@
-
+
+
@@ -3458,7 +3584,8 @@
-
+
+
@@ -3467,7 +3594,8 @@
-
+
+
@@ -3475,7 +3603,8 @@
-
+
+
@@ -3483,7 +3612,8 @@
-
+
+
@@ -3491,7 +3621,8 @@
-
+
+
@@ -3514,7 +3645,8 @@
-
+
+
@@ -3529,7 +3661,8 @@
-
+
+
@@ -3544,7 +3677,8 @@
-
+
+
@@ -3559,7 +3693,8 @@
-
+
+
@@ -3575,7 +3710,8 @@
-
+
+
@@ -3585,7 +3721,8 @@
-
+
+
@@ -3594,7 +3731,8 @@
-
+
+
@@ -3603,7 +3741,8 @@
-
+
+
@@ -3616,7 +3755,8 @@
-
+
+
@@ -3624,7 +3764,8 @@
-
+
+
@@ -3632,7 +3773,8 @@
-
+
+
@@ -3640,7 +3782,8 @@
-
+
+
@@ -3650,7 +3793,8 @@
-
+
+