enable detection of whether tx server knows about value set and better track returned errors from tx server
This commit is contained in:
parent
89732b4512
commit
579d98cf85
|
@ -906,9 +906,9 @@ public abstract class BaseWorkerContext extends I18nBase implements IWorkerConte
|
||||||
pIn.addParameter().setName("implySystem").setValue(new BooleanType(true));
|
pIn.addParameter().setName("implySystem").setValue(new BooleanType(true));
|
||||||
}
|
}
|
||||||
setTerminologyOptions(options, pIn);
|
setTerminologyOptions(options, pIn);
|
||||||
res = validateOnServer(vs, pIn);
|
res = validateOnServer(vs, pIn, options);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
res = new ValidationResult(IssueSeverity.ERROR, e.getMessage() == null ? e.getClass().getName() : e.getMessage()).setTxLink(txLog == null ? null : txLog.getLastId());
|
res = new ValidationResult(IssueSeverity.ERROR, e.getMessage() == null ? e.getClass().getName() : e.getMessage()).setTxLink(txLog == null ? null : txLog.getLastId()).setErrorClass(TerminologyServiceErrorClass.SERVER_ERROR);
|
||||||
}
|
}
|
||||||
if (res.getErrorClass() == TerminologyServiceErrorClass.CODESYSTEM_UNSUPPORTED) {
|
if (res.getErrorClass() == TerminologyServiceErrorClass.CODESYSTEM_UNSUPPORTED) {
|
||||||
unsupportedCodeSystems.add(code.getSystem());
|
unsupportedCodeSystems.add(code.getSystem());
|
||||||
|
@ -967,7 +967,7 @@ public abstract class BaseWorkerContext extends I18nBase implements IWorkerConte
|
||||||
Parameters pIn = new Parameters();
|
Parameters pIn = new Parameters();
|
||||||
pIn.addParameter().setName("codeableConcept").setValue(code);
|
pIn.addParameter().setName("codeableConcept").setValue(code);
|
||||||
setTerminologyOptions(options, pIn);
|
setTerminologyOptions(options, pIn);
|
||||||
res = validateOnServer(vs, pIn);
|
res = validateOnServer(vs, pIn, options);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
res = new ValidationResult(IssueSeverity.ERROR, e.getMessage() == null ? e.getClass().getName() : e.getMessage()).setTxLink(txLog.getLastId());
|
res = new ValidationResult(IssueSeverity.ERROR, e.getMessage() == null ? e.getClass().getName() : e.getMessage()).setTxLink(txLog.getLastId());
|
||||||
}
|
}
|
||||||
|
@ -975,7 +975,7 @@ public abstract class BaseWorkerContext extends I18nBase implements IWorkerConte
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
private ValidationResult validateOnServer(ValueSet vs, Parameters pin) throws FHIRException {
|
private ValidationResult validateOnServer(ValueSet vs, Parameters pin, ValidationOptions options) throws FHIRException {
|
||||||
boolean cache = false;
|
boolean cache = false;
|
||||||
if (vs != null) {
|
if (vs != null) {
|
||||||
for (ConceptSetComponent inc : vs.getCompose().getInclude()) {
|
for (ConceptSetComponent inc : vs.getCompose().getInclude()) {
|
||||||
|
@ -988,6 +988,8 @@ public abstract class BaseWorkerContext extends I18nBase implements IWorkerConte
|
||||||
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.hasVersion() ? "|"+vs.getVersion() : "")));
|
pin.addParameter().setName("url").setValue(new UriType(vs.getUrl()+(vs.hasVersion() ? "|"+vs.getVersion() : "")));
|
||||||
|
} else if (options.getVsAsUrl()){
|
||||||
|
pin.addParameter().setName("url").setValue(new StringType(vs.getUrl()));
|
||||||
} else {
|
} else {
|
||||||
pin.addParameter().setName("valueSet").setResource(vs);
|
pin.addParameter().setName("valueSet").setResource(vs);
|
||||||
cached.add(vs.getUrl()+"|"+vs.getVersion());
|
cached.add(vs.getUrl()+"|"+vs.getVersion());
|
||||||
|
|
|
@ -613,6 +613,11 @@ public interface IWorkerContext {
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public ValidationResult setErrorClass(TerminologyServiceErrorClass errorClass) {
|
||||||
|
this.errorClass = errorClass;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
public String getTxLink() {
|
public String getTxLink() {
|
||||||
return txLink;
|
return txLink;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue