Add more debugging to validation failure
This commit is contained in:
parent
15278061f9
commit
fedf7e9e6d
|
@ -1471,15 +1471,15 @@ public abstract class BaseWorkerContext extends I18nBase implements IWorkerConte
|
||||||
}
|
}
|
||||||
|
|
||||||
protected ValueSetExpander constructValueSetExpanderSimple(ValidationOptions options) {
|
protected ValueSetExpander constructValueSetExpanderSimple(ValidationOptions options) {
|
||||||
return new ValueSetExpander(this, new TerminologyOperationContext(this, options)).setDebug(logger.isDebugLogging());
|
return new ValueSetExpander(this, new TerminologyOperationContext(this, options, "expansion")).setDebug(logger.isDebugLogging());
|
||||||
}
|
}
|
||||||
|
|
||||||
protected ValueSetValidator constructValueSetCheckerSimple(ValidationOptions options, ValueSet vs, ValidationContextCarrier ctxt) {
|
protected ValueSetValidator constructValueSetCheckerSimple(ValidationOptions options, ValueSet vs, ValidationContextCarrier ctxt) {
|
||||||
return new ValueSetValidator(this, new TerminologyOperationContext(this, options), options, vs, ctxt, expParameters, terminologyClientManager);
|
return new ValueSetValidator(this, new TerminologyOperationContext(this, options, "validation"), options, vs, ctxt, expParameters, terminologyClientManager);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected ValueSetValidator constructValueSetCheckerSimple( ValidationOptions options, ValueSet vs) {
|
protected ValueSetValidator constructValueSetCheckerSimple( ValidationOptions options, ValueSet vs) {
|
||||||
return new ValueSetValidator(this, new TerminologyOperationContext(this, options), options, vs, expParameters, terminologyClientManager);
|
return new ValueSetValidator(this, new TerminologyOperationContext(this, options, "validation"), options, vs, expParameters, terminologyClientManager);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected Parameters constructParameters(TerminologyClientContext tcd, ValueSet vs, boolean hierarchical) {
|
protected Parameters constructParameters(TerminologyClientContext tcd, ValueSet vs, boolean hierarchical) {
|
||||||
|
|
|
@ -42,12 +42,14 @@ public class TerminologyOperationContext {
|
||||||
private IWorkerContext worker;
|
private IWorkerContext worker;
|
||||||
private boolean original;
|
private boolean original;
|
||||||
private ValidationOptions options;
|
private ValidationOptions options;
|
||||||
|
private String name;
|
||||||
|
|
||||||
public TerminologyOperationContext(IWorkerContext worker, ValidationOptions options) {
|
public TerminologyOperationContext(IWorkerContext worker, ValidationOptions options, String name) {
|
||||||
super();
|
super();
|
||||||
this.worker = worker;
|
this.worker = worker;
|
||||||
this.original = true;
|
this.original = true;
|
||||||
this.options = options;
|
this.options = options;
|
||||||
|
this.name = name;
|
||||||
|
|
||||||
if (EXPANSION_DEAD_TIME_SECS == 0 || debugging) {
|
if (EXPANSION_DEAD_TIME_SECS == 0 || debugging) {
|
||||||
deadTime = 0;
|
deadTime = 0;
|
||||||
|
@ -56,13 +58,14 @@ public class TerminologyOperationContext {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private TerminologyOperationContext(ValidationOptions options) {
|
private TerminologyOperationContext(ValidationOptions options, String name) {
|
||||||
super();
|
super();
|
||||||
this.options = options;
|
this.options = options;
|
||||||
|
this.name = name;
|
||||||
}
|
}
|
||||||
|
|
||||||
public TerminologyOperationContext copy() {
|
public TerminologyOperationContext copy() {
|
||||||
TerminologyOperationContext ret = new TerminologyOperationContext(this.options);
|
TerminologyOperationContext ret = new TerminologyOperationContext(this.options, name);
|
||||||
ret.worker = worker;
|
ret.worker = worker;
|
||||||
ret.contexts.addAll(contexts);
|
ret.contexts.addAll(contexts);
|
||||||
ret.deadTime = deadTime;
|
ret.deadTime = deadTime;
|
||||||
|
@ -71,7 +74,7 @@ public class TerminologyOperationContext {
|
||||||
|
|
||||||
public void deadCheck() {
|
public void deadCheck() {
|
||||||
if (deadTime != 0 && System.currentTimeMillis() > deadTime) {
|
if (deadTime != 0 && System.currentTimeMillis() > deadTime) {
|
||||||
throw new TerminologyServiceProtectionException(worker.formatMessage(I18nConstants.VALUESET_TOO_COSTLY_TIME, contexts.get(0), EXPANSION_DEAD_TIME_SECS), TerminologyServiceErrorClass.TOO_COSTLY, IssueType.TOOCOSTLY);
|
throw new TerminologyServiceProtectionException(worker.formatMessage(I18nConstants.VALUESET_TOO_COSTLY_TIME, contexts.get(0), EXPANSION_DEAD_TIME_SECS, name), TerminologyServiceErrorClass.TOO_COSTLY, IssueType.TOOCOSTLY);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -12,6 +12,7 @@ import java.util.Map;
|
||||||
|
|
||||||
import org.hl7.fhir.utilities.TextFile;
|
import org.hl7.fhir.utilities.TextFile;
|
||||||
import org.hl7.fhir.utilities.Utilities;
|
import org.hl7.fhir.utilities.Utilities;
|
||||||
|
import org.hl7.fhir.utilities.VersionUtilities;
|
||||||
import org.hl7.fhir.utilities.filesystem.ManagedFileAccess;
|
import org.hl7.fhir.utilities.filesystem.ManagedFileAccess;
|
||||||
import org.hl7.fhir.utilities.json.model.JsonArray;
|
import org.hl7.fhir.utilities.json.model.JsonArray;
|
||||||
import org.hl7.fhir.utilities.json.model.JsonObject;
|
import org.hl7.fhir.utilities.json.model.JsonObject;
|
||||||
|
@ -43,7 +44,44 @@ public class PackageHacker {
|
||||||
// new PackageHacker().edit("/Users/grahamegrieve/web/hl7.org/fhir/6.0.0-ballot2/hl7.fhir.r6.search.tgz");
|
// new PackageHacker().edit("/Users/grahamegrieve/web/hl7.org/fhir/6.0.0-ballot2/hl7.fhir.r6.search.tgz");
|
||||||
|
|
||||||
// new PackageHacker().edit("/Users/grahamegrieve/web/hl7.org/fhir/us/core/v311/package.tgz", "http://hl7.org/fhir/us/core/STU3.1.1");
|
// new PackageHacker().edit("/Users/grahamegrieve/web/hl7.org/fhir/us/core/v311/package.tgz", "http://hl7.org/fhir/us/core/STU3.1.1");
|
||||||
new PackageHacker().edit("/Users/grahamegrieve/web/hl7.org/fhir/us/core/v700/package.tgz", "http://hl7.org/fhir/us/core/STU7");
|
// new PackageHacker().edit("/Users/grahamegrieve/web/hl7.org/fhir/us/core/v700/package.tgz", "http://hl7.org/fhir/us/core/STU7");
|
||||||
|
|
||||||
|
PackageHacker self = new PackageHacker();
|
||||||
|
// self.cloneToR4B("/Users/grahamegrieve/web/terminology.hl7.org/hl7.terminology.r4.tgz", "/Users/grahamegrieve/web/terminology.hl7.org/hl7.terminology.r4b.tgz");
|
||||||
|
// self.cloneToR4B("/Users/grahamegrieve/web/terminology.hl7.org/1.0.0/hl7.terminology.r4.tgz", "/Users/grahamegrieve/web/terminology.hl7.org/1.0.0/hl7.terminology.r4b.tgz");
|
||||||
|
// self.cloneToR4B("/Users/grahamegrieve/web/terminology.hl7.org/2.0.0/hl7.terminology.r4.tgz", "/Users/grahamegrieve/web/terminology.hl7.org/2.0.0/hl7.terminology.r4b.tgz");
|
||||||
|
self.cloneToR4B("/Users/grahamegrieve/web/terminology.hl7.org/2.1.0/hl7.terminology.r4.tgz", "/Users/grahamegrieve/web/terminology.hl7.org/2.1.0/hl7.terminology.r4b.tgz");
|
||||||
|
// self.cloneToR4B("/Users/grahamegrieve/web/terminology.hl7.org/3.0.0/hl7.terminology.r4.tgz", "/Users/grahamegrieve/web/terminology.hl7.org/3.0.0/hl7.terminology.r4b.tgz");
|
||||||
|
// self.cloneToR4B("/Users/grahamegrieve/web/terminology.hl7.org/3.1.0/hl7.terminology.r4.tgz", "/Users/grahamegrieve/web/terminology.hl7.org/3.1.0/hl7.terminology.r4b.tgz");
|
||||||
|
// self.cloneToR4B("/Users/grahamegrieve/web/terminology.hl7.org/4.0.0/hl7.terminology.r4.tgz", "/Users/grahamegrieve/web/terminology.hl7.org/4.0.0/hl7.terminology.r4b.tgz");
|
||||||
|
// self.cloneToR4B("/Users/grahamegrieve/web/terminology.hl7.org/5.0.0/hl7.terminology.r4.tgz", "/Users/grahamegrieve/web/terminology.hl7.org/5.0.0/hl7.terminology.r4b.tgz");
|
||||||
|
// self.cloneToR4B("/Users/grahamegrieve/web/terminology.hl7.org/5.1.0/hl7.terminology.r4.tgz", "/Users/grahamegrieve/web/terminology.hl7.org/5.1.0/hl7.terminology.r4b.tgz");
|
||||||
|
// self.cloneToR4B("/Users/grahamegrieve/web/terminology.hl7.org/5.2.0/hl7.terminology.r4.tgz", "/Users/grahamegrieve/web/terminology.hl7.org/5.2.0/hl7.terminology.r4b.tgz");
|
||||||
|
// self.cloneToR4B("/Users/grahamegrieve/web/terminology.hl7.org/5.3.0/hl7.terminology.r4.tgz", "/Users/grahamegrieve/web/terminology.hl7.org/5.3.0/hl7.terminology.r4b.tgz");
|
||||||
|
// self.cloneToR4B("/Users/grahamegrieve/web/terminology.hl7.org/5.4.0/hl7.terminology.r4.tgz", "/Users/grahamegrieve/web/terminology.hl7.org/5.4.0/hl7.terminology.r4b.tgz");
|
||||||
|
// self.cloneToR4B("/Users/grahamegrieve/web/terminology.hl7.org/5.5.0/hl7.terminology.r4.tgz", "/Users/grahamegrieve/web/terminology.hl7.org/5.5.0/hl7.terminology.r4b.tgz");
|
||||||
|
// self.cloneToR4B("/Users/grahamegrieve/web/terminology.hl7.org/6.0.0/hl7.terminology.r4.tgz", "/Users/grahamegrieve/web/terminology.hl7.org/6.0.0/hl7.terminology.r4b.tgz");
|
||||||
|
// self.cloneToR4B("/Users/grahamegrieve/web/terminology.hl7.org/6.0.1/hl7.terminology.r4.tgz", "/Users/grahamegrieve/web/terminology.hl7.org/6.0.1/hl7.terminology.r4b.tgz");
|
||||||
|
// self.cloneToR4B("/Users/grahamegrieve/web/terminology.hl7.org/6.0.2/hl7.terminology.r4.tgz", "/Users/grahamegrieve/web/terminology.hl7.org/6.0.2/hl7.terminology.r4b.tgz");
|
||||||
|
}
|
||||||
|
|
||||||
|
private void cloneToR4B(String src, String dst) throws IOException {
|
||||||
|
FileInputStream fs = ManagedFileAccess.inStream(src);
|
||||||
|
NpmPackage pck = NpmPackage.fromPackage(fs);
|
||||||
|
System.out.println(nice(pck.getNpm()));
|
||||||
|
JsonObject json = pck.getNpm();
|
||||||
|
String name = json.asString("name");
|
||||||
|
json.remove("name");
|
||||||
|
json.add("name", name.replace(".r4", ".r4b"));
|
||||||
|
json.remove("fhirVersions");
|
||||||
|
json.remove("dependencies");
|
||||||
|
JsonArray fv = new JsonArray();
|
||||||
|
json.add("fhirVersions", fv);
|
||||||
|
fv.add("4.3.0");
|
||||||
|
JsonObject dep = new JsonObject();
|
||||||
|
json.add("dependencies", dep);
|
||||||
|
dep.add(VersionUtilities.packageForVersion("4.3.0"), "4.3.0");
|
||||||
|
pck.save(new FileOutputStream(dst));
|
||||||
}
|
}
|
||||||
|
|
||||||
// private void massEdit(File dir) throws IOException {
|
// private void massEdit(File dir) throws IOException {
|
||||||
|
|
Loading…
Reference in New Issue