Skip to content

Commit 98c9ccd

Browse files
committed
revert main stuff
1 parent 0ee8658 commit 98c9ccd

File tree

3 files changed

+12
-65
lines changed

3 files changed

+12
-65
lines changed

licenses/licenses.xml

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -138,19 +138,6 @@
138138
<url>http://creativecommons.org/publicdomain/zero/1.0</url>
139139
</urls>
140140
</license>
141-
<license>
142-
<name>Indiana University Extreme! Lab Software License, vesion 1.1.1</name>
143-
<names>
144-
<name>Indiana University Extreme! Lab Software License, vesion 1.1.1</name>
145-
<name>Public Domain</name>
146-
<name>Apache Software License, version 1.1</name>
147-
</names>
148-
<urls>
149-
<url>http://www.extreme.indiana.edu/viewcvs/~checkout~/XPP3/java/LICENSE.txt</url>
150-
<url>http://creativecommons.org/licenses/publicdomain</url>
151-
<url>http://www.apache.org/licenses/LICENSE-1.1</url>
152-
</urls>
153-
</license>
154141
</valid>
155142
<forbidden>
156143
<license>

pom.xml

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
<maven.compiler.source>21</maven.compiler.source>
1919
<maven.compiler.target>21</maven.compiler.target>
2020
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
21-
<fhir.version>5.4.2</fhir.version>
21+
<fhir.version>7.6.1</fhir.version>
2222
<log4j.version>2.24.3</log4j.version>
2323
<fasterxml.version>2.19.0</fasterxml.version>
2424
<sonar.organization>nhsdigital</sonar.organization>
@@ -64,6 +64,11 @@
6464
<artifactId>hapi-fhir-validation</artifactId>
6565
<version>${fhir.version}</version>
6666
</dependency>
67+
<dependency>
68+
<groupId>ca.uhn.hapi.fhir</groupId>
69+
<artifactId>hapi-fhir-caching-caffeine</artifactId>
70+
<version>${fhir.version}</version>
71+
</dependency>
6772
<dependency>
6873
<groupId>ca.uhn.hapi.fhir</groupId>
6974
<artifactId>hapi-fhir-base</artifactId>
@@ -163,7 +168,6 @@
163168
<includes>
164169
<include>log4j2.xml</include>
165170
<include>package/*</include>
166-
<include>*.tgz</include>
167171
<include>primerPayload.json</include>
168172
<include>nhs_digital.manifest.json</include>
169173
<include>uk_core.manifest.json</include>

src/main/java/software/nhs/fhirvalidator/configuration/ValidatorConfiguration.java

Lines changed: 6 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -4,32 +4,27 @@
44
import java.io.InputStream;
55
import java.util.ArrayList;
66
import java.util.List;
7-
import java.util.stream.Collectors;
87

98
import com.google.gson.Gson;
109

1110
import org.hl7.fhir.common.hapi.validation.support.CachingValidationSupport;
1211
import org.hl7.fhir.common.hapi.validation.support.CommonCodeSystemsTerminologyService;
1312
import org.hl7.fhir.common.hapi.validation.support.InMemoryTerminologyServerValidationSupport;
14-
import org.hl7.fhir.common.hapi.validation.support.PrePopulatedValidationSupport;
13+
import org.hl7.fhir.common.hapi.validation.support.NpmPackageValidationSupport;
1514
import org.hl7.fhir.common.hapi.validation.support.SnapshotGeneratingValidationSupport;
1615
import org.hl7.fhir.common.hapi.validation.support.ValidationSupportChain;
1716
import org.hl7.fhir.common.hapi.validation.validator.FhirInstanceValidator;
1817
import org.hl7.fhir.instance.model.api.IBaseResource;
1918
import org.hl7.fhir.r4.model.CanonicalType;
20-
import org.hl7.fhir.r4.model.CodeSystem;
2119
import org.hl7.fhir.r4.model.ElementDefinition;
22-
import org.hl7.fhir.r4.model.Resource;
2320
import org.hl7.fhir.r4.model.StructureDefinition;
24-
import org.hl7.fhir.r4.model.ValueSet;
2521
import org.hl7.fhir.utilities.npm.NpmPackage;
2622

2723
import ca.uhn.fhir.context.FhirContext;
2824
import ca.uhn.fhir.context.support.ConceptValidationOptions;
2925
import ca.uhn.fhir.context.support.DefaultProfileValidationSupport;
3026
import ca.uhn.fhir.context.support.IValidationSupport;
3127
import ca.uhn.fhir.context.support.ValidationSupportContext;
32-
import ca.uhn.fhir.parser.IParser;
3328
import ca.uhn.fhir.rest.server.exceptions.InternalErrorException;
3429
import ca.uhn.fhir.util.ClasspathUtil;
3530
import ca.uhn.fhir.validation.FhirValidator;
@@ -53,44 +48,6 @@ public class ValidatorConfiguration {
5348

5449
Logger log = LogManager.getLogger(ValidatorConfiguration.class);
5550

56-
private <T extends Resource> List<T> getResourcesOfType(NpmPackage npmPackage, T resourceType) throws IOException {
57-
IParser jsonParser = fhirContext.newJsonParser();
58-
59-
return npmPackage.listResources(resourceType.fhirType()).stream()
60-
.map(t -> {
61-
try {
62-
return npmPackage.loadResource(t);
63-
} catch (IOException e) {
64-
// TODO Auto-generated catch block
65-
e.printStackTrace();
66-
}
67-
return null;
68-
})
69-
.map(jsonParser::parseResource)
70-
.filter(resource -> resourceType.getClass().isInstance(resource))
71-
.map(resource -> (T) resource)
72-
.collect(Collectors.toList());
73-
}
74-
75-
private PrePopulatedValidationSupport createPrePopulatedValidationSupport(InputStream inputStream) throws IOException {
76-
NpmPackage npmPackage = NpmPackage.fromPackage(inputStream);
77-
PrePopulatedValidationSupport prePopulatedSupport = new PrePopulatedValidationSupport(fhirContext);
78-
79-
for (StructureDefinition sd : getResourcesOfType(npmPackage, new StructureDefinition())) {
80-
prePopulatedSupport.addStructureDefinition(sd);
81-
}
82-
83-
for (CodeSystem cs : getResourcesOfType(npmPackage, new CodeSystem())) {
84-
prePopulatedSupport.addCodeSystem(cs);
85-
}
86-
87-
for (ValueSet vs : getResourcesOfType(npmPackage, new ValueSet())) {
88-
prePopulatedSupport.addValueSet(vs);
89-
}
90-
91-
return prePopulatedSupport;
92-
}
93-
9451
public ValidatorConfiguration(String _PROFILE_MANIFEST_FILE) {
9552
PROFILE_MANIFEST_FILE = _PROFILE_MANIFEST_FILE;
9653
fhirContext = FhirContext.forR4();
@@ -103,15 +60,13 @@ public ValidatorConfiguration(String _PROFILE_MANIFEST_FILE) {
10360
new SnapshotGeneratingValidationSupport(fhirContext));
10461

10562
SimplifierPackage[] packages = getPackages();
63+
NpmPackageValidationSupport npmPackageSupport = new NpmPackageValidationSupport(fhirContext);
10664

10765
try {
10866
for (SimplifierPackage individualPackage : packages) {
109-
String packagePath = String.format("%s-%s.tgz", individualPackage.packageName,
67+
String packagePath = String.format("classpath:package/%s-%s.tgz", individualPackage.packageName,
11068
individualPackage.version);
111-
try (InputStream is = ClasspathUtil.loadResourceAsStream(packagePath)) {
112-
PrePopulatedValidationSupport foo = createPrePopulatedValidationSupport(is);
113-
supportChain.addValidationSupport(foo);
114-
}
69+
npmPackageSupport.loadPackageFromClasspath(packagePath);
11570
try (InputStream is = ClasspathUtil.loadResourceAsStream(packagePath)) {
11671
NpmPackage pkg = NpmPackage.fromPackage(is);
11772
npmPackages.add(pkg);
@@ -121,6 +76,7 @@ public ValidatorConfiguration(String _PROFILE_MANIFEST_FILE) {
12176
log.error(ex.getMessage(), ex);
12277
throw new RuntimeException("error loading simplifier packages", ex);
12378
}
79+
supportChain.addValidationSupport(npmPackageSupport);
12480
generateSnapshots(supportChain);
12581
supportChain.fetchCodeSystem("http://snomed.info/sct");
12682

@@ -227,7 +183,7 @@ public IValidationSupport.CodeValidationResult validateCodeInValueSet(
227183
String theCode,
228184
String theDisplay,
229185
IBaseResource theValueSet) {
230-
String valueSetUrl = CommonCodeSystemsTerminologyService.getValueSetUrl(theValueSet);
186+
String valueSetUrl = CommonCodeSystemsTerminologyService.getValueSetUrl(fhirContext, theValueSet);
231187

232188
if ("https://fhir.nhs.uk/ValueSet/NHSDigital-MedicationRequest-Code".equals(valueSetUrl)
233189
|| "https://fhir.nhs.uk/ValueSet/NHSDigital-MedicationDispense-Code".equals(valueSetUrl)

0 commit comments

Comments
 (0)