Skip to content

Commit 154adb6

Browse files
authored
Merge pull request #3063 from IBM/issue-3052
Reduce severity of failed membership checks
2 parents 5bae423 + dec3911 commit 154adb6

File tree

4 files changed

+32
-22
lines changed

4 files changed

+32
-22
lines changed

conformance/fhir-ig-davinci-pdex/src/test/java/com/ibm/fhir/ig/davinci/pdex/test/ProvenanceValidationTest.java

+5-3
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,13 @@
11
/*
2-
* (C) Copyright IBM Corp. 2019, 2020
2+
* (C) Copyright IBM Corp. 2019, 2021
33
*
44
* SPDX-License-Identifier: Apache-2.0
55
*/
66

77
package com.ibm.fhir.ig.davinci.pdex.test;
88

99
import static com.ibm.fhir.validation.util.FHIRValidationUtil.countErrors;
10+
import static com.ibm.fhir.validation.util.FHIRValidationUtil.countInformation;
1011
import static com.ibm.fhir.validation.util.FHIRValidationUtil.countWarnings;
1112

1213
import java.io.InputStream;
@@ -24,13 +25,14 @@
2425
public class ProvenanceValidationTest {
2526
@Test
2627
public void testProvenanceValidation1() throws Exception {
27-
28+
2829
try (InputStream in = ProvenanceValidationTest.class.getClassLoader().getResourceAsStream("JSON/Provenance-Practitioner.json")) {
2930
Provenance provenance = FHIRParser.parser(Format.JSON).parse(in);
3031
List<Issue> issues = FHIRValidator.validator().validate(provenance);
3132
issues.forEach(System.out::println);
3233
Assert.assertEquals(countErrors(issues), 0);
33-
Assert.assertEquals(countWarnings(issues), 1);
34+
Assert.assertEquals(countWarnings(issues), 0);
35+
Assert.assertEquals(countInformation(issues), 2);
3436
}
3537
}
3638
}

fhir-path/src/main/java/com/ibm/fhir/path/function/MemberOfFunction.java

+3-3
Original file line numberDiff line numberDiff line change
@@ -268,15 +268,15 @@ private void generateIssue(ValidationOutcome outcome, EvaluationContext evaluati
268268
* @param strength the binding strength
269269
*/
270270
private void generateIssue(String message, EvaluationContext evaluationContext, FHIRPathElementNode elementNode, String strength) {
271-
IssueSeverity severity = ("extensible".equals(strength) || "preferred".equals(strength)) ? IssueSeverity.WARNING : IssueSeverity.ERROR;
271+
IssueSeverity severity = ("required".equals(strength)) ? IssueSeverity.ERROR : IssueSeverity.INFORMATION;
272272
generateIssue(evaluationContext, severity, IssueType.CODE_INVALID, message, elementNode.path());
273273
}
274274

275275
private Collection<FHIRPathNode> membershipCheckFailed(EvaluationContext evaluationContext, FHIRPathElementNode elementNode, String url, String strength) {
276276
if ("extensible".equals(strength) || "preferred".equals(strength)) {
277277
String prefix = evaluationContext.hasConstraint() ? evaluationContext.getConstraint().id() + ": " : "";
278-
String description = prefix + "The concept in this element " + ("extensible".equals(strength) ? "must" : "should") + " be from the specified value set '" + url + "' if possible";
279-
generateIssue(evaluationContext, IssueSeverity.WARNING, IssueType.CODE_INVALID, description, elementNode.path());
278+
String description = prefix + "A code in this element " + ("extensible".equals(strength) ? "must" : "should") + " be from the specified value set '" + url + "' if possible";
279+
generateIssue(evaluationContext, IssueSeverity.INFORMATION, IssueType.CODE_INVALID, description, elementNode.path());
280280
return SINGLETON_TRUE;
281281
}
282282
return SINGLETON_FALSE;

fhir-path/src/test/java/com/ibm/fhir/path/test/MemberOfFunctionTest.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -136,7 +136,7 @@ public void testMemberOfFunction8() throws Exception {
136136

137137
Assert.assertEquals(evaluationContext.getIssues().size(), 2);
138138
Issue issue = evaluationContext.getIssues().get(0);
139-
Assert.assertEquals(issue.getSeverity(), IssueSeverity.WARNING);
139+
Assert.assertEquals(issue.getSeverity(), IssueSeverity.INFORMATION);
140140
Assert.assertEquals(issue.getCode(), IssueType.CODE_INVALID);
141141
Assert.assertEquals(result, SINGLETON_TRUE);
142142
}
@@ -150,7 +150,7 @@ public void testMemberOfFunction9() throws Exception {
150150

151151
Assert.assertEquals(evaluationContext.getIssues().size(), 2);
152152
Issue issue = evaluationContext.getIssues().get(0);
153-
Assert.assertEquals(issue.getSeverity(), IssueSeverity.WARNING);
153+
Assert.assertEquals(issue.getSeverity(), IssueSeverity.INFORMATION);
154154
Assert.assertEquals(issue.getCode(), IssueType.CODE_INVALID);
155155
Assert.assertEquals(result, SINGLETON_TRUE);
156156
}

fhir-validation/src/test/java/com/ibm/fhir/validation/test/MaxValueSetTest.java

+22-14
Original file line numberDiff line numberDiff line change
@@ -155,29 +155,33 @@ public void testValidator() throws Exception {
155155
)).build();
156156
issues = FHIRValidator.validator().validate(device);
157157
assertEquals(FHIRValidationUtil.countErrors(issues), 0);
158-
assertEquals(FHIRValidationUtil.countWarnings(issues), 2);
158+
assertEquals(FHIRValidationUtil.countWarnings(issues), 0);
159+
assertEquals(FHIRValidationUtil.countInformation(issues), 2);
159160

160161
// Warning for type
161162
device = buildDevice().toBuilder()
162163
.type(CodeableConcept.builder().coding(Coding.builder().system(Uri.of(ValidationSupport.BCP_47_URN)).code(Code.of("tlh")).build()).build()).build();
163164
issues = FHIRValidator.validator().validate(device);
164165
assertEquals(FHIRValidationUtil.countErrors(issues), 0);
165-
assertEquals(FHIRValidationUtil.countWarnings(issues), 1);
166+
assertEquals(FHIRValidationUtil.countWarnings(issues), 0);
167+
assertEquals(FHIRValidationUtil.countInformation(issues), 1);
166168

167169
// Error for type
168170
device = buildDevice().toBuilder()
169171
.type(CodeableConcept.builder().coding(Coding.builder().system(Uri.of(ValidationSupport.BCP_47_URN)).code(Code.of("invalidLanguage")).build()).build()).build();
170172
issues = FHIRValidator.validator().validate(device);
171173
assertEquals(FHIRValidationUtil.countErrors(issues), 2);
172-
assertEquals(FHIRValidationUtil.countWarnings(issues), 1);
174+
assertEquals(FHIRValidationUtil.countWarnings(issues), 0);
175+
assertEquals(FHIRValidationUtil.countInformation(issues), 1);
173176

174177
// Warning and error for specialization.systemType
175178
device = buildDevice().toBuilder().specialization(Arrays.asList(
176179
Specialization.builder().systemType(CodeableConcept.builder().coding(Coding.builder().system(Uri.of(ValidationSupport.BCP_47_URN)).code(Code.of("tlh")).build()).build()).build(),
177180
Specialization.builder().systemType(CodeableConcept.builder().coding(Coding.builder().system(Uri.of(ValidationSupport.BCP_47_URN)).code(Code.of("invalidSystem")).build()).build()).build())).build();
178181
issues = FHIRValidator.validator().validate(device);
179182
assertEquals(FHIRValidationUtil.countErrors(issues), 2);
180-
assertEquals(FHIRValidationUtil.countWarnings(issues), 2);
183+
assertEquals(FHIRValidationUtil.countWarnings(issues), 0);
184+
assertEquals(FHIRValidationUtil.countInformation(issues), 2);
181185

182186
// Warning and error for safety
183187
device = buildDevice().toBuilder().safety(Arrays.asList(
@@ -186,58 +190,62 @@ public void testValidator() throws Exception {
186190
)).build();
187191
issues = FHIRValidator.validator().validate(device);
188192
assertEquals(FHIRValidationUtil.countErrors(issues), 2);
189-
assertEquals(FHIRValidationUtil.countWarnings(issues), 2);
193+
assertEquals(FHIRValidationUtil.countWarnings(issues), 0);
194+
assertEquals(FHIRValidationUtil.countInformation(issues), 2);
190195

191196
// Warning for test-language-primary-extension
192197
device = buildDevice().toBuilder()
193198
.extension(Collections.singletonList(Extension.builder().url("http://ibm.com/fhir/StructureDefinition/test-language-primary-extension")
194199
.value(CodeableConcept.builder().coding(Coding.builder().system(Uri.of(ValidationSupport.BCP_47_URN)).code(Code.of("tlh")).build()).build()).build())).build();
195200
issues = FHIRValidator.validator().validate(device);
196-
issues.forEach(System.out::println);
197201
assertEquals(FHIRValidationUtil.countErrors(issues), 0);
198-
assertEquals(FHIRValidationUtil.countWarnings(issues), 1);
202+
assertEquals(FHIRValidationUtil.countWarnings(issues), 0);
203+
assertEquals(FHIRValidationUtil.countInformation(issues), 1);
199204

200205
// Error for test-language-primary-extension
201206
device = buildDevice().toBuilder()
202207
.extension(Collections.singletonList(Extension.builder().url("http://ibm.com/fhir/StructureDefinition/test-language-primary-extension")
203208
.value(CodeableConcept.builder().coding(Coding.builder().system(Uri.of(ValidationSupport.BCP_47_URN)).code(Code.of("invalidLanguage")).build()).build()).build())).build();
204209
issues = FHIRValidator.validator().validate(device);
205210
assertEquals(FHIRValidationUtil.countErrors(issues), 2);
206-
assertEquals(FHIRValidationUtil.countWarnings(issues), 1);
207-
assertEquals(FHIRValidationUtil.countInformation(issues), 1);
211+
assertEquals(FHIRValidationUtil.countWarnings(issues), 0);
212+
assertEquals(FHIRValidationUtil.countInformation(issues), 2);
208213

209214
// Warning for test-language-secondary-extension
210215
device = buildDevice().toBuilder()
211216
.extension(Collections.singletonList(Extension.builder().url("http://ibm.com/fhir/StructureDefinition/test-language-secondary-extension")
212217
.value(Coding.builder().system(Uri.of(ValidationSupport.BCP_47_URN)).code(Code.of("tlh")).build()).build())).build();
213218
issues = FHIRValidator.validator().validate(device);
214219
assertEquals(FHIRValidationUtil.countErrors(issues), 0);
215-
assertEquals(FHIRValidationUtil.countWarnings(issues), 2);
220+
assertEquals(FHIRValidationUtil.countWarnings(issues), 0);
221+
assertEquals(FHIRValidationUtil.countInformation(issues), 2);
216222

217223
// Error for test-language-secondary-extension
218224
device = buildDevice().toBuilder()
219225
.extension(Collections.singletonList(Extension.builder().url("http://ibm.com/fhir/StructureDefinition/test-language-secondary-extension")
220226
.value(Coding.builder().system(Uri.of(ValidationSupport.BCP_47_URN)).code(Code.of("invalidLanguage")).build()).build())).build();
221227
issues = FHIRValidator.validator().validate(device);
222228
assertEquals(FHIRValidationUtil.countErrors(issues), 2);
223-
assertEquals(FHIRValidationUtil.countWarnings(issues), 2);
224-
assertEquals(FHIRValidationUtil.countInformation(issues), 1);
229+
assertEquals(FHIRValidationUtil.countWarnings(issues), 0);
230+
assertEquals(FHIRValidationUtil.countInformation(issues), 3);
225231

226232
// Warning for test-language-tertiary-extension
227233
device = buildDevice().toBuilder()
228234
.extension(Collections.singletonList(Extension.builder().url("http://ibm.com/fhir/StructureDefinition/test-language-tertiary-extension")
229235
.value(Code.of("tlh")).build())).build();
230236
issues = FHIRValidator.validator().validate(device);
231237
assertEquals(FHIRValidationUtil.countErrors(issues), 0);
232-
assertEquals(FHIRValidationUtil.countWarnings(issues), 2);
238+
assertEquals(FHIRValidationUtil.countWarnings(issues), 0);
239+
assertEquals(FHIRValidationUtil.countInformation(issues), 2);
233240

234241
// Error for test-language-tertiary-extension
235242
device = buildDevice().toBuilder()
236243
.extension(Collections.singletonList(Extension.builder().url("http://ibm.com/fhir/StructureDefinition/test-language-tertiary-extension")
237244
.value(Code.of("invalidLanguage")).build())).build();
238245
issues = FHIRValidator.validator().validate(device);
239246
assertEquals(FHIRValidationUtil.countErrors(issues), 2);
240-
assertEquals(FHIRValidationUtil.countWarnings(issues), 2);
247+
assertEquals(FHIRValidationUtil.countWarnings(issues), 0);
248+
assertEquals(FHIRValidationUtil.countInformation(issues), 3);
241249
}
242250

243251
/**

0 commit comments

Comments
 (0)