commit
bf4cfd3cc0
|
@ -597,10 +597,12 @@ public abstract class BaseWorkerContext extends I18nBase implements IWorkerConte
|
||||||
Parameters p = expParameters.copy();
|
Parameters p = expParameters.copy();
|
||||||
p.setParameter("includeDefinition", false);
|
p.setParameter("includeDefinition", false);
|
||||||
p.setParameter("excludeNested", !hierarchical);
|
p.setParameter("excludeNested", !hierarchical);
|
||||||
if (isTxCaching && cacheId != null) {
|
|
||||||
|
boolean cached = addDependentResources(p, vs);
|
||||||
|
if (cached) {
|
||||||
p.addParameter().setName("cache-id").setValue(new StringType(cacheId));
|
p.addParameter().setName("cache-id").setValue(new StringType(cacheId));
|
||||||
}
|
}
|
||||||
addDependentResources(p, vs);
|
;
|
||||||
|
|
||||||
if (noTerminologyServer) {
|
if (noTerminologyServer) {
|
||||||
return new ValueSetExpansionOutcome(formatMessage(I18nConstants.ERROR_EXPANDING_VALUESET_RUNNING_WITHOUT_TERMINOLOGY_SERVICES), TerminologyServiceErrorClass.NOSERVICE);
|
return new ValueSetExpansionOutcome(formatMessage(I18nConstants.ERROR_EXPANDING_VALUESET_RUNNING_WITHOUT_TERMINOLOGY_SERVICES), TerminologyServiceErrorClass.NOSERVICE);
|
||||||
|
@ -672,10 +674,10 @@ public abstract class BaseWorkerContext extends I18nBase implements IWorkerConte
|
||||||
}
|
}
|
||||||
|
|
||||||
// if that failed, we try to expand on the server
|
// if that failed, we try to expand on the server
|
||||||
if (isTxCaching && cacheId != null) {
|
if (addDependentResources(p, vs)) {
|
||||||
p.addParameter().setName("cache-id").setValue(new StringType(cacheId));
|
p.addParameter().setName("cache-id").setValue(new StringType(cacheId));
|
||||||
}
|
}
|
||||||
addDependentResources(p, vs);
|
|
||||||
if (noTerminologyServer) {
|
if (noTerminologyServer) {
|
||||||
return new ValueSetExpansionOutcome(formatMessage(I18nConstants.ERROR_EXPANDING_VALUESET_RUNNING_WITHOUT_TERMINOLOGY_SERVICES), TerminologyServiceErrorClass.NOSERVICE, allErrors);
|
return new ValueSetExpansionOutcome(formatMessage(I18nConstants.ERROR_EXPANDING_VALUESET_RUNNING_WITHOUT_TERMINOLOGY_SERVICES), TerminologyServiceErrorClass.NOSERVICE, allErrors);
|
||||||
}
|
}
|
||||||
|
@ -808,6 +810,9 @@ public abstract class BaseWorkerContext extends I18nBase implements IWorkerConte
|
||||||
BundleEntryComponent r = resp.getEntry().get(i);
|
BundleEntryComponent r = resp.getEntry().get(i);
|
||||||
if (r.getResource() instanceof Parameters) {
|
if (r.getResource() instanceof Parameters) {
|
||||||
t.setResult(processValidationResult((Parameters) r.getResource()));
|
t.setResult(processValidationResult((Parameters) r.getResource()));
|
||||||
|
if (txCache != null) {
|
||||||
|
txCache.cacheValidation(t.getCacheToken(), t.getResult(), TerminologyCache.PERMANENT);
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
t.setResult(new ValidationResult(IssueSeverity.ERROR, getResponseText(r.getResource())).setTxLink(txLog == null ? null : txLog.getLastId()));
|
t.setResult(new ValidationResult(IssueSeverity.ERROR, getResponseText(r.getResource())).setTxLink(txLog == null ? null : txLog.getLastId()));
|
||||||
}
|
}
|
||||||
|
@ -939,9 +944,7 @@ public abstract class BaseWorkerContext extends I18nBase implements IWorkerConte
|
||||||
}
|
}
|
||||||
|
|
||||||
private ValidationResult validateOnServer(ValueSet vs, Parameters pin) throws FHIRException {
|
private ValidationResult validateOnServer(ValueSet vs, Parameters pin) throws FHIRException {
|
||||||
if (isTxCaching && cacheId != null) {
|
boolean cache = false;
|
||||||
pin.addParameter().setName("cache-id").setValue(new StringType(cacheId));
|
|
||||||
}
|
|
||||||
if (vs != null) {
|
if (vs != null) {
|
||||||
if (isTxCaching && cacheId != null && cached.contains(vs.getUrl()+"|"+vs.getVersion())) {
|
if (isTxCaching && cacheId != null && cached.contains(vs.getUrl()+"|"+vs.getVersion())) {
|
||||||
pin.addParameter().setName("url").setValue(new UriType(vs.getUrl()+"|"+vs.getVersion()));
|
pin.addParameter().setName("url").setValue(new UriType(vs.getUrl()+"|"+vs.getVersion()));
|
||||||
|
@ -949,8 +952,12 @@ public abstract class BaseWorkerContext extends I18nBase implements IWorkerConte
|
||||||
pin.addParameter().setName("valueSet").setResource(vs);
|
pin.addParameter().setName("valueSet").setResource(vs);
|
||||||
cached.add(vs.getUrl()+"|"+vs.getVersion());
|
cached.add(vs.getUrl()+"|"+vs.getVersion());
|
||||||
}
|
}
|
||||||
|
cache = true;
|
||||||
addDependentResources(pin, vs);
|
addDependentResources(pin, vs);
|
||||||
}
|
}
|
||||||
|
if (cache) {
|
||||||
|
pin.addParameter().setName("cache-id").setValue(new StringType(cacheId));
|
||||||
|
}
|
||||||
for (ParametersParameterComponent pp : pin.getParameter()) {
|
for (ParametersParameterComponent pp : pin.getParameter()) {
|
||||||
if (pp.getName().equals("profile")) {
|
if (pp.getName().equals("profile")) {
|
||||||
throw new Error(formatMessage(I18nConstants.CAN_ONLY_SPECIFY_PROFILE_IN_THE_CONTEXT));
|
throw new Error(formatMessage(I18nConstants.CAN_ONLY_SPECIFY_PROFILE_IN_THE_CONTEXT));
|
||||||
|
@ -975,22 +982,26 @@ public abstract class BaseWorkerContext extends I18nBase implements IWorkerConte
|
||||||
return processValidationResult(pOut);
|
return processValidationResult(pOut);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void addDependentResources(Parameters pin, ValueSet vs) {
|
private boolean addDependentResources(Parameters pin, ValueSet vs) {
|
||||||
|
boolean cache = false;
|
||||||
for (ConceptSetComponent inc : vs.getCompose().getInclude()) {
|
for (ConceptSetComponent inc : vs.getCompose().getInclude()) {
|
||||||
addDependentResources(pin, inc);
|
cache = addDependentResources(pin, inc) || cache;
|
||||||
}
|
}
|
||||||
for (ConceptSetComponent inc : vs.getCompose().getExclude()) {
|
for (ConceptSetComponent inc : vs.getCompose().getExclude()) {
|
||||||
addDependentResources(pin, inc);
|
cache = addDependentResources(pin, inc) || cache;
|
||||||
}
|
}
|
||||||
|
return cache;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void addDependentResources(Parameters pin, ConceptSetComponent inc) {
|
private boolean addDependentResources(Parameters pin, ConceptSetComponent inc) {
|
||||||
|
boolean cache = false;
|
||||||
for (CanonicalType c : inc.getValueSet()) {
|
for (CanonicalType c : inc.getValueSet()) {
|
||||||
ValueSet vs = fetchResource(ValueSet.class, c.getValue());
|
ValueSet vs = fetchResource(ValueSet.class, c.getValue());
|
||||||
if (vs != null) {
|
if (vs != null) {
|
||||||
if (isTxCaching && cacheId == null || !cached.contains(vs.getVUrl())) {
|
if (isTxCaching && cacheId == null || !cached.contains(vs.getVUrl())) {
|
||||||
pin.addParameter().setName("tx-resource").setResource(vs);
|
pin.addParameter().setName("tx-resource").setResource(vs);
|
||||||
cached.add(vs.getVUrl());
|
cached.add(vs.getVUrl());
|
||||||
|
cache = true;
|
||||||
}
|
}
|
||||||
addDependentResources(pin, vs);
|
addDependentResources(pin, vs);
|
||||||
}
|
}
|
||||||
|
@ -1000,9 +1011,11 @@ public abstract class BaseWorkerContext extends I18nBase implements IWorkerConte
|
||||||
if (isTxCaching && cacheId == null || !cached.contains(cs.getVUrl())) {
|
if (isTxCaching && cacheId == null || !cached.contains(cs.getVUrl())) {
|
||||||
pin.addParameter().setName("tx-resource").setResource(cs);
|
pin.addParameter().setName("tx-resource").setResource(cs);
|
||||||
cached.add(cs.getVUrl());
|
cached.add(cs.getVUrl());
|
||||||
|
cache = true;
|
||||||
}
|
}
|
||||||
// todo: supplements
|
// todo: supplements
|
||||||
}
|
}
|
||||||
|
return cache;
|
||||||
}
|
}
|
||||||
|
|
||||||
public ValidationResult processValidationResult(Parameters pOut) {
|
public ValidationResult processValidationResult(Parameters pOut) {
|
||||||
|
|
|
@ -401,11 +401,13 @@ public class BundleRenderer extends ResourceRenderer {
|
||||||
|
|
||||||
public boolean canRender(Bundle b) {
|
public boolean canRender(Bundle b) {
|
||||||
for (BundleEntryComponent be : b.getEntry()) {
|
for (BundleEntryComponent be : b.getEntry()) {
|
||||||
|
if (be.hasResource()) {
|
||||||
ResourceRenderer rr = RendererFactory.factory(be.getResource(), context);
|
ResourceRenderer rr = RendererFactory.factory(be.getResource(), context);
|
||||||
if (!rr.canRender(be.getResource())) {
|
if (!rr.canRender(be.getResource())) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -626,6 +626,7 @@ public class FilesystemPackageCacheManager extends BasePackageCacheManager imple
|
||||||
loadFromBuildServer();
|
loadFromBuildServer();
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
System.out.println("Error connecting to build server - running without build (" + e.getMessage() + ")");
|
System.out.println("Error connecting to build server - running without build (" + e.getMessage() + ")");
|
||||||
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
2
pom.xml
2
pom.xml
|
@ -19,7 +19,7 @@
|
||||||
|
|
||||||
<properties>
|
<properties>
|
||||||
<hapi_fhir_version>5.1.0</hapi_fhir_version>
|
<hapi_fhir_version>5.1.0</hapi_fhir_version>
|
||||||
<validator_test_case_version>1.1.52-SNAPSHOT</validator_test_case_version>
|
<validator_test_case_version>1.1.53-SNAPSHOT</validator_test_case_version>
|
||||||
<junit_jupiter_version>5.6.2</junit_jupiter_version>
|
<junit_jupiter_version>5.6.2</junit_jupiter_version>
|
||||||
<maven_surefire_version>3.0.0-M4</maven_surefire_version>
|
<maven_surefire_version>3.0.0-M4</maven_surefire_version>
|
||||||
<jacoco_version>0.8.5</jacoco_version>
|
<jacoco_version>0.8.5</jacoco_version>
|
||||||
|
|
Loading…
Reference in New Issue