Example #1
0
        public void GivenABadFhirPathExpression_WhenResolving_ThenResolveThrowException()
        {
            var expression = _compiler.Parse("Patient.cookie");

            Assert.Throws <NotSupportedException>(() =>
                                                  SearchParameterToTypeResolver.Resolve(
                                                      KnownResourceTypes.Patient,
                                                      (SearchParamType.Token, expression, new Uri("http://hl7.org/fhir/SearchParameter/Patient-cookie")),
                                                      null).ToArray());
        }
        public void GivenAFhirPathExpressionWithAsFunction_WhenResolvingTypes_ThenTheyAreReturnedCorrectly()
        {
            var expression = _compiler.Parse("Patient.extension.where(url = 'http://hl7.org/fhir/us/core/StructureDefinition/us-core-race').first().extension.where(url = 'ombCategory').value.as(string)");

            SearchParameterTypeResult[] results = SearchParameterToTypeResolver.Resolve(
                KnownResourceTypes.Patient,
                (SearchParamType.Token, expression, new Uri("http://hl7.org/fhir/SearchParameter/Patient-race")),
                null).ToArray();

            Assert.Equal("string", results.Single().FhirNodeType);
        }
        public void GivenAFhirPathExpressionWithTwoPossibleOutcomeTypes_WhenResolve_TwoTypesReturned()
        {
            var expression = _compiler.Parse("CarePlan.activity.detail.product");

            SearchParameterTypeResult[] results = SearchParameterToTypeResolver.Resolve(
                "CarePlan",
                (SearchParamType.Reference, expression, new Uri("http://hl7.org/fhir/SearchParameter/Patient-race")),
                null).ToArray();

            Assert.Equal(2, results.Length);
        }
Example #4
0
        public void GivenAFhirPathExpressionWithOfType_WhenResolvingTypes_ThenTheyAreReturnedCorrectly()
        {
            var expression = _compiler.Parse("QuestionnaireResponse.item.where(extension('http://hl7.org/fhir/StructureDefinition/questionnaireresponse-isSubject').exists()).answer.value.ofType(Reference)");

            SearchParameterTypeResult[] results = SearchParameterToTypeResolver.Resolve(
                KnownResourceTypes.QuestionnaireResponse,
                (SearchParamType.Reference, expression, new Uri("http://hl7.org/fhir/StructureDefinition/questionnaireresponse-isSubject")),
                null).ToArray();

            Assert.Equal("Reference", results.Single().FhirNodeType);
        }
Example #5
0
        public void GivenAFhirPathExpressionWithFirstFunction_WhenResolvingTypes_ThenTheyAreRetunedCorrectly()
        {
            var expression = _compiler.Parse("Patient.extension.where(url = 'http://hl7.org/fhir/us/core/StructureDefinition/us-core-race').first().extension.where(url = 'ombCategory').value");

            SearchParameterTypeResult[] results = SearchParameterToTypeResolver.Resolve(
                KnownResourceTypes.Patient,
                (SearchParamType.Token, expression, new Uri("http://hl7.org/fhir/SearchParameter/Patient-race")),
                null).ToArray();

            if (ModelInfoProvider.Version == FhirSpecification.Stu3)
            {
                Assert.Equal(38, results?.Length);
            }
            else
            {
                Assert.Equal(49, results?.Length);
            }
        }
Example #6
0
        public void GivenAFhirPathExpressionAsConstructorFilter_WhenResolvingTypes_ThenTheyReturnedSameAsWhen()
        {
            var whereExpression       = _compiler.Parse("Patient.extension.where(url = 'http://hl7.org/fhir/us/core/StructureDefinition/us-core-race')");
            var constructorExpression = _compiler.Parse("Patient.extension(url = 'http://hl7.org/fhir/us/core/StructureDefinition/us-core-race')");
            var whereResult           = SearchParameterToTypeResolver.Resolve(
                KnownResourceTypes.Patient,
                (SearchParamType.Token, whereExpression, new Uri("http://hl7.org/fhir/SearchParameter/Patient-race")),
                null).First();

            var constuctorResult = SearchParameterToTypeResolver.Resolve(
                KnownResourceTypes.Patient,
                (SearchParamType.Token, constructorExpression, new Uri("http://hl7.org/fhir/SearchParameter/Patient-race")),
                null).First();

            Assert.Equal(whereResult.ClassMapping, constuctorResult.ClassMapping);
            Assert.Equal(whereResult.Path, constuctorResult.Path);
            Assert.Equal(whereResult.SearchParamType, constuctorResult.SearchParamType);
            Assert.Equal(whereResult.FhirNodeType, constuctorResult.FhirNodeType);
            Assert.Equal(whereResult.Definition, constuctorResult.Definition);
        }