fix bug handling fragment code systems with value sets with pre-build expansions

This commit is contained in:
Grahame Grieve 2020-08-07 11:30:31 +10:00
parent a12b1bdc93
commit ad07997c5d
2 changed files with 10 additions and 7 deletions

View File

@ -144,7 +144,7 @@ public class ValueSetCheckerSimple implements ValueSetChecker {
throw new FHIRException(warningMessage); throw new FHIRException(warningMessage);
} }
if (cs!=null && cs.getContent() == CodeSystemContentMode.COMPLETE) { if (cs!=null && (cs.getContent() == CodeSystemContentMode.COMPLETE || cs.getContent() == CodeSystemContentMode.FRAGMENT)) {
res = validateCode(code, cs); res = validateCode(code, cs);
} else { } else {
// it's in the expansion, but we could find it in a code system // it's in the expansion, but we could find it in a code system

View File

@ -72,19 +72,22 @@ public class ResourceUtilities {
} }
public static String getErrorDescription(OperationOutcome error) { public static String getErrorDescription(OperationOutcome error) {
if (error.hasText() && error.getText().hasDiv()) if (error.hasText() && error.getText().hasDiv()) {
return new XhtmlComposer(XhtmlComposer.XML).composePlainText(error.getText().getDiv()); return new XhtmlComposer(XhtmlComposer.XML).composePlainText(error.getText().getDiv());
}
StringBuilder b = new StringBuilder(); StringBuilder b = new StringBuilder();
for (OperationOutcomeIssueComponent t : error.getIssue()) for (OperationOutcomeIssueComponent t : error.getIssue()) {
if (t.getSeverity() == IssueSeverity.ERROR) if (t.getSeverity() == IssueSeverity.ERROR) {
b.append("Error:" +t.getDetails()+"\r\n"); b.append("Error:" +t.getDetails()+"\r\n");
else if (t.getSeverity() == IssueSeverity.FATAL) } else if (t.getSeverity() == IssueSeverity.FATAL) {
b.append("Fatal:" +t.getDetails()+"\r\n"); b.append("Fatal:" +t.getDetails()+"\r\n");
else if (t.getSeverity() == IssueSeverity.WARNING) } else if (t.getSeverity() == IssueSeverity.WARNING) {
b.append("Warning:" +t.getDetails()+"\r\n"); b.append("Warning:" +t.getDetails()+"\r\n");
else if (t.getSeverity() == IssueSeverity.INFORMATION) } else if (t.getSeverity() == IssueSeverity.INFORMATION) {
b.append("Information:" +t.getDetails()+"\r\n"); b.append("Information:" +t.getDetails()+"\r\n");
}
}
return b.toString(); return b.toString();
} }