org.hl7.fhir.r5.terminologies.expansion.ValueSetExpansionOutcome Maven / Gradle / Ivy
package org.hl7.fhir.r5.terminologies.expansion;
import java.util.ArrayList;
import java.util.List;
import org.hl7.fhir.r5.model.OperationOutcome.OperationOutcomeIssueComponent;
import org.hl7.fhir.r5.model.ValueSet;
import org.hl7.fhir.r5.terminologies.ValueSetUtilities;
import org.hl7.fhir.r5.terminologies.utilities.TerminologyServiceErrorClass;
import org.hl7.fhir.utilities.MarkedToMoveToAdjunctPackage;
/**
* Some value sets are just too big to expand. Instead of an expanded value set,
* you get back an interface that can test membership - usually on a server somewhere
*
* @author Grahame
*/
@MarkedToMoveToAdjunctPackage
public class ValueSetExpansionOutcome {
private ValueSet valueset;
private String error;
private TerminologyServiceErrorClass errorClass;
private String txLink;
private List allErrors = new ArrayList<>();
private boolean fromServer;
private List issues;
public ValueSetExpansionOutcome(ValueSet valueset) {
super();
this.valueset = valueset;
this.error = null;
}
public ValueSetExpansionOutcome(ValueSet valueset, String error, TerminologyServiceErrorClass errorClass, boolean fromServer) {
super();
this.valueset = valueset;
this.error = error;
this.errorClass = errorClass;
this.fromServer = fromServer;
allErrors.add(error);
}
public ValueSetExpansionOutcome(String error, TerminologyServiceErrorClass errorClass, boolean fromServer) {
this.valueset = null;
this.error = error;
this.errorClass = errorClass;
this.fromServer = fromServer;
allErrors.add(error);
}
public ValueSetExpansionOutcome(String error, TerminologyServiceErrorClass errorClass, List errList, boolean fromServer) {
this.valueset = null;
this.error = error;
this.errorClass = errorClass;
this.fromServer = fromServer;
this.allErrors.addAll(errList);
if (!allErrors.contains(error)) {
allErrors.add(error);
}
if (!errList.contains(error)) {
errList.add(error);
}
}
public ValueSetExpansionOutcome(String error, TerminologyServiceErrorClass errorClass, List errList, List issueList) {
this.valueset = null;
this.error = error;
this.errorClass = errorClass;
this.allErrors.addAll(errList);
if (!allErrors.contains(error)) {
allErrors.add(error);
}
if (!errList.contains(error)) {
errList.add(error);
}
this.issues = issueList;
}
public ValueSet getValueset() {
return valueset;
}
public String getError() {
return error;
}
public TerminologyServiceErrorClass getErrorClass() {
return errorClass;
}
public String getTxLink() {
return txLink;
}
public ValueSetExpansionOutcome setTxLink(String txLink) {
this.txLink = txLink;
return this;
}
public List getAllErrors() {
return allErrors;
}
public boolean isFromServer() {
return fromServer;
}
public boolean isOk() {
return (allErrors.isEmpty() || (allErrors.size() == 1 && allErrors.get(0) == null)) && error == null;
}
public int count() {
if (valueset == null) {
return 0;
}
return ValueSetUtilities.countExpansion(valueset);
}
public List getIssues() {
return issues;
}
} © 2015 - 2025 Weber Informatics LLC | Privacy Policy