Exemplo n.º 1
0
        public static void SetupData(TestContext context)
        {
            STU3Tests.tdb = new MockObjectRepository();
            STU3Tests.tdb.InitializeFHIR3Repository();

            var fhirIgType = STU3Tests.tdb.FindImplementationGuideType(Constants.IGTypeNames.FHIR_STU3);

            STU3Tests.fhirIg = STU3Tests.tdb.FindOrCreateImplementationGuide(fhirIgType, "Test IG");

            string schemaLocation = Trifolia.Shared.Helper.GetIGSimplifiedSchemaLocation(fhirIgType);

            schema = SimpleSchema.CreateSimpleSchema(schemaLocation);

            var templateType = tdb.FindTemplateType(Constants.IGTypeNames.FHIR_STU3, RESOURCE_TYPE_OBS);

            STU3Tests.template1 = STU3Tests.tdb.CreateTemplate("http://test.com/StructureDefinition/1", templateType, "Test Observation", fhirIg, RESOURCE_TYPE_OBS, RESOURCE_TYPE_OBS, DESCRIPTION);
            var c1_1 = STU3Tests.tdb.AddConstraintToTemplate(STU3Tests.template1, null, null, "extension");
            var c1_2 = STU3Tests.tdb.AddConstraintToTemplate(STU3Tests.template1, c1_1, null, "value[x]", isChoice: true);
            var c1_3 = STU3Tests.tdb.AddConstraintToTemplate(STU3Tests.template1, c1_2, null, "valueCodeableConcept", value: "1234-x", displayName: "test single-value binding");

            STU3Tests.template2 = STU3Tests.tdb.CreateTemplate("http://test.com/StructureDefinition/2", templateType, "Test Observation", fhirIg, RESOURCE_TYPE_OBS, RESOURCE_TYPE_OBS, DESCRIPTION);
            var c2_1 = STU3Tests.tdb.AddConstraintToTemplate(STU3Tests.template2, null, null, "extension");
            var c2_2 = STU3Tests.tdb.AddConstraintToTemplate(STU3Tests.template2, c2_1, null, "value[x]", isChoice: true, cardinality: "1..1");
            var c2_3 = STU3Tests.tdb.AddConstraintToTemplate(STU3Tests.template2, c2_2, null, "valueCodeableConcept", value: "1234-x", displayName: "test single-value binding");
            var c2_4 = STU3Tests.tdb.AddConstraintToTemplate(STU3Tests.template2, c2_2, null, "valuePeriod");
            var c2_5 = STU3Tests.tdb.AddConstraintToTemplate(STU3Tests.template2, c2_4, null, "start", cardinality: "1..1");

            STU3Tests.template3 = STU3Tests.tdb.CreateTemplate("http://test.com/StructureDefinition/3", templateType, "Test Observation", fhirIg, RESOURCE_TYPE_OBS, RESOURCE_TYPE_OBS, DESCRIPTION);
            var c3_1 = STU3Tests.tdb.AddConstraintToTemplate(STU3Tests.template3, null, null, "comment", cardinality: "1..1", value: "Test");

            STU3Tests.template4 = STU3Tests.tdb.CreateTemplate("http://test.com/StructureDefinition/4", templateType, "Test Observation", fhirIg, RESOURCE_TYPE_OBS, RESOURCE_TYPE_OBS, DESCRIPTION);
            var c4_1 = STU3Tests.tdb.AddConstraintToTemplate(STU3Tests.template4, null, null, "referenceRange", cardinality: "1..1", isBranch: true);
            var c4_2 = STU3Tests.tdb.AddConstraintToTemplate(STU3Tests.template4, c4_1, null, "low", cardinality: "1..1");
            var c4_3 = STU3Tests.tdb.AddConstraintToTemplate(STU3Tests.template4, c4_1, null, "appliesTo", cardinality: "1..1", value: "at1", displayName: "appliesTo1", isBranchIdentifier: true);
            var c4_4 = STU3Tests.tdb.AddConstraintToTemplate(STU3Tests.template4, null, null, "referenceRange", cardinality: "1..1", isBranch: true);
            var c4_5 = STU3Tests.tdb.AddConstraintToTemplate(STU3Tests.template4, c4_4, null, "high", cardinality: "1..1");
            var c4_6 = STU3Tests.tdb.AddConstraintToTemplate(STU3Tests.template4, c4_4, null, "appliesTo", cardinality: "1..1", value: "at2", displayName: "appliesTo2", isBranchIdentifier: true);
        }
Exemplo n.º 2
0
        public void FindTemplate_Local_RelativeUrl_Test()
        {
            HttpRequestMessage request = new HttpRequestMessage();

            request.RequestUri = new Uri("http://test:100/");
            MockObjectRepository repo = new MockObjectRepository();

            repo.InitializeFHIR2Repository();

            var ig       = repo.FindOrAddImplementationGuide(repo.FindImplementationGuideType(MockObjectRepository.DEFAULT_FHIR_DSTU2_IG_TYPE_NAME), "Test IG");
            var template = repo.GenerateTemplate("urn:oid:1.2.3.4", repo.FindTemplateType(MockObjectRepository.DEFAULT_FHIR_DSTU2_IG_TYPE_NAME, "Composition"), "Test Template", ig);

            ResourceReference reference = new ResourceReference();

            reference.Reference = "StructureDefinition/" + template.Id;

            MockWebClient webClient     = new MockWebClient();
            var           foundTemplate = Shared.FindTemplate(request, webClient, repo, reference);

            Assert.IsNotNull(foundTemplate);
            Assert.AreEqual(template.Id, foundTemplate.Id);
            Assert.AreEqual(template.Name, foundTemplate.Name);
            Assert.AreEqual(0, webClient.RequestCount);
        }
Exemplo n.º 3
0
        public void TemplateValidationSuccess()
        {
            Template newTemplate = tdb.CreateTemplate("1.2.3.4", tdb.FindTemplateType(Constants.IGTypeNames.CDA, "Document"), "Test 1", this.ig, "section", "Section");
            var      tc1         = tdb.AddConstraintToTemplate(newTemplate, null, null, "code", "SHALL", "1..1");

            tdb.AddConstraintToTemplate(newTemplate, tc1, null, "@code", "SHALL", "1..1", value: "TEST", displayName: "TESTDISPLAY");
            tdb.AddConstraintToTemplate(newTemplate, null, null, "title", "SHALL", "1..1");
            tdb.AddConstraintToTemplate(newTemplate, null, null, "text", "SHALL", "1..1");
            var tc2 = tdb.AddConstraintToTemplate(newTemplate, null, null, "entry", "SHALL", "1..1");

            /* TODO: Schema Choice support temporarily removed from non-FHIR schemas
             * var tc2Choice = tdb.AddConstraintToTemplate(newTemplate, tc2, null, "choice", "SHALL", "1..1");
             * tdb.AddConstraintToTemplate(newTemplate, tc2Choice, null, "observation", "SHALL", "1..1");
             */

            tdb.AddConstraintToTemplate(newTemplate, tc2, null, "observation", "SHALL", "1..1");

            RIMValidator validator = new RIMValidator(tdb);
            var          errors    = validator.ValidateTemplate(newTemplate, null);

            Assert.IsNotNull(errors, "Errors list should not be null.");
            Assert.AreEqual(0, errors.Count, "Shouldn't have found any errors.");
        }
Exemplo n.º 4
0
        public void TemplateValidationSuccess()
        {
            Template newTemplate = tdb.GenerateTemplate("1.2.3.4", tdb.FindTemplateType("CDA", "Document"), "Test 1", this.ig, "section", "Section");
            var      tc1         = tdb.GenerateConstraint(newTemplate, null, null, "code", "SHALL", "1..1");

            tdb.GenerateConstraint(newTemplate, tc1, null, "@code", "SHALL", "1..1", value: "TEST", displayName: "TESTDISPLAY");
            tdb.GenerateConstraint(newTemplate, null, null, "title", "SHALL", "1..1");
            tdb.GenerateConstraint(newTemplate, null, null, "text", "SHALL", "1..1");
            var tc2 = tdb.GenerateConstraint(newTemplate, null, null, "entry", "SHALL", "1..1");

            tdb.GenerateConstraint(newTemplate, tc2, null, "observation", "SHALL", "1..1");

            List <TemplateValidationResult> errors = newTemplate.ValidateTemplate();

            Assert.IsNotNull(errors, "Errors list should not be null.");
            Assert.AreEqual(0, errors.Count, "Shouldn't have found any errors.");
        }