Fix some R4B test failures
This commit is contained in:
parent
150d78af63
commit
cc8a749656
|
@ -80,6 +80,7 @@ import org.mockito.stubbing.Answer;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.EnumSet;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
@ -354,7 +355,7 @@ public class FhirInstanceValidatorR4BTest extends BaseValidationTestWithInlineMo
|
||||||
ValidationResult result = val.validateWithResult(p);
|
ValidationResult result = val.validateWithResult(p);
|
||||||
List<SingleValidationMessage> all = logResultsAndReturnErrorOnes(result);
|
List<SingleValidationMessage> all = logResultsAndReturnErrorOnes(result);
|
||||||
assertFalse(result.isSuccessful());
|
assertFalse(result.isSuccessful());
|
||||||
assertEquals("The code 'AA ' is not valid (whitespace rules)", all.get(0).getMessage());
|
assertEquals("The code 'AA ' is not valid (whitespace rules)", all.get(1).getMessage());
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -476,6 +477,8 @@ public class FhirInstanceValidatorR4BTest extends BaseValidationTestWithInlineMo
|
||||||
*/
|
*/
|
||||||
@Test
|
@Test
|
||||||
public void testValidateDoesntEnforceBestPracticesByDefault() {
|
public void testValidateDoesntEnforceBestPracticesByDefault() {
|
||||||
|
addValidConcept("http://loinc.org", "1234");
|
||||||
|
|
||||||
Observation input = new Observation();
|
Observation input = new Observation();
|
||||||
input.addPerformer(new Reference("Practitioner/124"));
|
input.addPerformer(new Reference("Practitioner/124"));
|
||||||
input.setEffective(new DateTimeType("2023-01-01T11:22:33Z"));
|
input.setEffective(new DateTimeType("2023-01-01T11:22:33Z"));
|
||||||
|
@ -666,10 +669,12 @@ public class FhirInstanceValidatorR4BTest extends BaseValidationTestWithInlineMo
|
||||||
public void testLargeBase64() throws IOException {
|
public void testLargeBase64() throws IOException {
|
||||||
String input = IOUtils.toString(FhirInstanceValidatorR4BTest.class.getResourceAsStream("/r4/diagnosticreport-example-gingival-mass.json"), Constants.CHARSET_UTF8);
|
String input = IOUtils.toString(FhirInstanceValidatorR4BTest.class.getResourceAsStream("/r4/diagnosticreport-example-gingival-mass.json"), Constants.CHARSET_UTF8);
|
||||||
ValidationResult output = myFhirValidator.validateWithResult(input);
|
ValidationResult output = myFhirValidator.validateWithResult(input);
|
||||||
List<SingleValidationMessage> errors = logResultsAndReturnAll(output);
|
List<SingleValidationMessage> messages = logResultsAndReturnAll(output);
|
||||||
assertEquals(2, errors.size());
|
assertEquals(4, messages.size());
|
||||||
assertThat(errors.get(0).getMessage(), containsString("None of the codings provided are in the value set 'LOINC Diagnostic Report Codes'"));
|
assertThat(messages.get(0).getMessage(), containsString("Unknown code (for 'http://terminology.hl7.org/CodeSystem/v2-0074#PAT')"));
|
||||||
assertEquals("Base64 encoded values SHOULD not contain any whitespace (per RFC 4648). Note that non-validating readers are encouraged to accept whitespace anyway", errors.get(1).getMessage());
|
assertThat(messages.get(1).getMessage(), containsString("Unknown code (for 'http://loinc.org#1-8')"));
|
||||||
|
assertThat(messages.get(2).getMessage(), containsString("None of the codings provided are in the value set 'LOINC Diagnostic Report Codes'"));
|
||||||
|
assertEquals("Base64 encoded values SHOULD not contain any whitespace (per RFC 4648). Note that non-validating readers are encouraged to accept whitespace anyway", messages.get(3).getMessage());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
@ -1070,7 +1075,7 @@ public class FhirInstanceValidatorR4BTest extends BaseValidationTestWithInlineMo
|
||||||
ValidationResult output = myFhirValidator.validateWithResult(input);
|
ValidationResult output = myFhirValidator.validateWithResult(input);
|
||||||
List<SingleValidationMessage> res = logResultsAndReturnNonInformationalOnes(output);
|
List<SingleValidationMessage> res = logResultsAndReturnNonInformationalOnes(output);
|
||||||
assertEquals(1, res.size(), output.toString());
|
assertEquals(1, res.size(), output.toString());
|
||||||
assertEquals("A code with no system has no defined meaning, and it cannot be validated. A system should be provided", output.getMessages().get(0).getMessage());
|
assertEquals("Coding has no system. A code with no system has no defined meaning, and it cannot be validated. A system should be provided", output.getMessages().get(0).getMessage());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -1253,6 +1258,8 @@ public class FhirInstanceValidatorR4BTest extends BaseValidationTestWithInlineMo
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testValidateResourceWithExampleBindingCodeValidationFailing() {
|
public void testValidateResourceWithExampleBindingCodeValidationFailing() {
|
||||||
|
addValidConcept("http://loinc.org", "12345");
|
||||||
|
|
||||||
Observation input = createObservationWithDefaultSubjectPerfomerEffective();
|
Observation input = createObservationWithDefaultSubjectPerfomerEffective();
|
||||||
input.getText().setDiv(new XhtmlNode().setValue("<div>AA</div>")).setStatus(Narrative.NarrativeStatus.GENERATED);
|
input.getText().setDiv(new XhtmlNode().setValue("<div>AA</div>")).setStatus(Narrative.NarrativeStatus.GENERATED);
|
||||||
|
|
||||||
|
@ -1303,6 +1310,8 @@ public class FhirInstanceValidatorR4BTest extends BaseValidationTestWithInlineMo
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testValidateResourceWithExampleBindingCodeValidationPassingLoincWithExpansion() {
|
public void testValidateResourceWithExampleBindingCodeValidationPassingLoincWithExpansion() {
|
||||||
|
|
||||||
|
|
||||||
Observation input = createObservationWithDefaultSubjectPerfomerEffective();
|
Observation input = createObservationWithDefaultSubjectPerfomerEffective();
|
||||||
input.getText().setDiv(new XhtmlNode().setValue("<div>AA</div>")).setStatus(Narrative.NarrativeStatus.GENERATED);
|
input.getText().setDiv(new XhtmlNode().setValue("<div>AA</div>")).setStatus(Narrative.NarrativeStatus.GENERATED);
|
||||||
|
|
||||||
|
@ -1319,7 +1328,7 @@ public class FhirInstanceValidatorR4BTest extends BaseValidationTestWithInlineMo
|
||||||
ValidationResult output = myFhirValidator.validateWithResult(input);
|
ValidationResult output = myFhirValidator.validateWithResult(input);
|
||||||
List<SingleValidationMessage> errors = logResultsAndReturnNonInformationalOnes(output);
|
List<SingleValidationMessage> errors = logResultsAndReturnNonInformationalOnes(output);
|
||||||
assertEquals(1, errors.size());
|
assertEquals(1, errors.size());
|
||||||
assertEquals("Unknown code for 'http://loinc.org#1234'", errors.get(0).getMessage());
|
assertEquals("Unknown code (for 'http://loinc.org#1234')", errors.get(0).getMessage());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
@ -1347,10 +1356,14 @@ public class FhirInstanceValidatorR4BTest extends BaseValidationTestWithInlineMo
|
||||||
|
|
||||||
ValidationResult output = myFhirValidator.validateWithResult(p);
|
ValidationResult output = myFhirValidator.validateWithResult(p);
|
||||||
List<SingleValidationMessage> all = logResultsAndReturnAll(output);
|
List<SingleValidationMessage> all = logResultsAndReturnAll(output);
|
||||||
assertEquals(1, all.size());
|
assertEquals(2, all.size());
|
||||||
assertEquals("Patient.identifier[0].type", all.get(0).getLocationString());
|
assertEquals("Patient.identifier[0].type", all.get(0).getLocationString());
|
||||||
assertThat(all.get(0).getMessage(), containsString("None of the codings provided are in the value set 'IdentifierType'"));
|
|
||||||
assertEquals(ResultSeverityEnum.WARNING, all.get(0).getSeverity());
|
assertThat(all.get(0).getMessage(), containsString("Unknown code (for 'http://example.com/foo/bar#bar')"));
|
||||||
|
assertEquals(ResultSeverityEnum.ERROR, all.get(0).getSeverity());
|
||||||
|
|
||||||
|
assertThat(all.get(1).getMessage(), containsString("None of the codings provided are in the value set 'IdentifierType'"));
|
||||||
|
assertEquals(ResultSeverityEnum.WARNING, all.get(1).getSeverity());
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1369,7 +1382,7 @@ public class FhirInstanceValidatorR4BTest extends BaseValidationTestWithInlineMo
|
||||||
output = myFhirValidator.validateWithResult(input);
|
output = myFhirValidator.validateWithResult(input);
|
||||||
all = logResultsAndReturnNonInformationalOnes(output);
|
all = logResultsAndReturnNonInformationalOnes(output);
|
||||||
assertEquals(2, all.size());
|
assertEquals(2, all.size());
|
||||||
assertThat(all.get(0).getMessage(), containsString("The unit 'Heck' is unknown' at position 0 for 'http://unitsofmeasure.org#Heck'"));
|
assertThat(all.get(0).getMessage(), containsString("The Coding provided (http://unitsofmeasure.org#Heck) was not found in the value set 'Vital Signs Units' (http://hl7.org/fhir/ValueSet/ucum-vitals-common|4.3.0)"));
|
||||||
assertThat(all.get(1).getMessage(), containsString("The value provided ('Heck') was not found in the value set 'Body Temperature Units'"));
|
assertThat(all.get(1).getMessage(), containsString("The value provided ('Heck') was not found in the value set 'Body Temperature Units'"));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -1415,6 +1428,8 @@ public class FhirInstanceValidatorR4BTest extends BaseValidationTestWithInlineMo
|
||||||
|
|
||||||
IValidatorResourceFetcher resourceFetcher = mock(IValidatorResourceFetcher.class);
|
IValidatorResourceFetcher resourceFetcher = mock(IValidatorResourceFetcher.class);
|
||||||
IValidationPolicyAdvisor policyAdvisor = mock(IValidationPolicyAdvisor.class);
|
IValidationPolicyAdvisor policyAdvisor = mock(IValidationPolicyAdvisor.class);
|
||||||
|
when(policyAdvisor.policyForElement(any(), any(),any(),any(),any())).thenReturn(EnumSet.allOf(IValidationPolicyAdvisor.ElementValidationAction.class));
|
||||||
|
when(policyAdvisor.policyForCodedContent(any(),any(),any(),any(),any(),any(),any(),any(),any())).thenReturn(EnumSet.allOf(IValidationPolicyAdvisor.CodedContentValidationAction.class));
|
||||||
|
|
||||||
when(policyAdvisor.policyForReference(any(), any(), any(), any())).thenReturn(ReferenceValidationPolicy.CHECK_TYPE_IF_EXISTS);
|
when(policyAdvisor.policyForReference(any(), any(), any(), any())).thenReturn(ReferenceValidationPolicy.CHECK_TYPE_IF_EXISTS);
|
||||||
when(policyAdvisor.policyForContained(any(), any(), any(), any(), any(), any(), any(), any(), any())).thenReturn(ContainedReferenceValidationPolicy.CHECK_TYPE);
|
when(policyAdvisor.policyForContained(any(), any(), any(), any(), any(), any(), any(), any(), any())).thenReturn(ContainedReferenceValidationPolicy.CHECK_TYPE);
|
||||||
|
|
Loading…
Reference in New Issue