All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.hl7.fhir.r5.terminologies.validation.ValidationProcessInfo Maven / Gradle / Ivy

package org.hl7.fhir.r5.terminologies.validation;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

import org.hl7.fhir.r5.model.OperationOutcome.IssueSeverity;
import org.hl7.fhir.r5.model.OperationOutcome.OperationOutcomeIssueComponent;
import org.hl7.fhir.r5.terminologies.utilities.TerminologyServiceErrorClass;
import org.hl7.fhir.utilities.CommaSeparatedStringBuilder;
import org.hl7.fhir.utilities.MarkedToMoveToAdjunctPackage;

@MarkedToMoveToAdjunctPackage
public class ValidationProcessInfo {
  private TerminologyServiceErrorClass err;
  private List issues = new ArrayList<>();
  
  public ValidationProcessInfo() {
  }
  
  public ValidationProcessInfo(List issues) {
    this.issues = issues;
  }
  public TerminologyServiceErrorClass getErr() {
    return err;
  }
  public void setErr(TerminologyServiceErrorClass err) {
    this.err = err;
  }
  
  public List getIssues() {
    return issues;
  }
  public void addIssue(List issues) {
    this.issues.addAll(issues);
    
  }
  public boolean hasErrors() {
    for (OperationOutcomeIssueComponent issue : issues) {
      if (issue.getSeverity() == IssueSeverity.FATAL || issue.getSeverity() == IssueSeverity.ERROR) {
        return true;
      }
    }
    return false;
  }
  public String summary() {
    List msgs = new ArrayList<>();
    for (OperationOutcomeIssueComponent issue : issues) {
      msgs.add(issue.getDetails().getText());
    }
    Collections.sort(msgs);
    return CommaSeparatedStringBuilder.join("; ", msgs);
  }
  public List summaryList() {
    List msgs = new ArrayList<>();
    for (OperationOutcomeIssueComponent issue : issues) {
      msgs.add(issue.getDetails().getText());
    }
    Collections.sort(msgs);
    return msgs;
  }

  public boolean hasMessage(String msg) {
    for (OperationOutcomeIssueComponent iss : issues) {
      if (msg.equals(iss.getDetails().getText())) {
        return true;        
      }
    }
    return false;
  }

  public boolean hasNotFound(String system) {
    for (OperationOutcomeIssueComponent iss : issues) {
      if (iss.getDetails().hasCoding("http://hl7.org/fhir/tools/CodeSystem/tx-issue-type", "not-found") &&
          iss.getDetails().hasText() && iss.getDetails().getText().contains(system)) {
        return true;
      }
    }
    return false;
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy