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); }
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); }
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."); }
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."); }