public void ExportTemplatesModelTest1() { MockObjectRepository tdb = new MockObjectRepository(); tdb.InitializeCDARepository(); Organization org = tdb.FindOrAddOrganization("LCG Test"); ImplementationGuide ig = tdb.FindOrAddImplementationGuide(tdb.FindImplementationGuideType(MockObjectRepository.DEFAULT_CDA_IG_TYPE_NAME), "Test Implementation Guide"); IGSettingsManager igSettings = new IGSettingsManager(tdb, ig.Id); Template template = tdb.GenerateTemplate("1.2.3.4", "Document", "Test Template", ig, "observation", "Observation", "Test Description", "Test Notes", org); var tc1 = tdb.GenerateConstraint(template, null, null, "entryRelationship", "SHALL", "1..1"); var tc2 = tdb.GenerateConstraint(template, tc1, null, "observation", "SHOULD", "0..1"); var tc3 = tdb.GenerateConstraint(template, tc2, null, "value", "SHALL", "1..1", "CD", value: "4321", displayName: "Test"); tc3.Description = "Test description"; tc3.Label = "Test Label"; var tc4 = tdb.GeneratePrimitive(template, null, "SHALL", "This is a test"); ExportTemplate export = template.Export(tdb, igSettings); Assert.IsNotNull(export); Assert.AreEqual(template.Oid, export.identifier); Assert.AreEqual(template.Name, export.title); Assert.AreEqual(template.TemplateType.Name, export.templateType); Assert.AreEqual(template.PrimaryContext, export.context); Assert.AreEqual(template.PrimaryContextType, export.contextType); Assert.AreEqual(template.Description, export.Description); Assert.AreEqual(template.Notes, export.Notes); Assert.AreEqual(template.OrganizationName, export.organizationName); // Assert constraints Assert.IsNotNull(export.Constraint); Assert.AreEqual(2, export.Constraint.Count); // tc1 Assert.AreEqual(tc1.Context, export.Constraint[0].context); Assert.AreEqual(ExportConformanceTypes.SHALL, export.Constraint[0].conformance); Assert.AreEqual(tc1.Cardinality, export.Constraint[0].cardinality); // tc4 Assert.IsNull(export.Constraint[1].context); Assert.AreEqual(true, export.Constraint[1].isPrimitive); Assert.AreEqual(tc4.PrimitiveText, export.Constraint[1].NarrativeText); // tc2 Assert.AreEqual(1, export.Constraint[0].Constraint.Count); Assert.AreEqual(tc2.Context, export.Constraint[0].Constraint[0].context); Assert.AreEqual(ExportConformanceTypes.SHOULD, export.Constraint[0].Constraint[0].conformance); Assert.AreEqual(tc2.Cardinality, export.Constraint[0].Constraint[0].cardinality); // tc3 Assert.AreEqual(1, export.Constraint[0].Constraint[0].Constraint.Count); Assert.AreEqual(tc3.Context, export.Constraint[0].Constraint[0].Constraint[0].context); Assert.AreEqual(ExportConformanceTypes.SHALL, export.Constraint[0].Constraint[0].Constraint[0].conformance); Assert.AreEqual(tc3.Cardinality, export.Constraint[0].Constraint[0].Constraint[0].cardinality); Assert.AreEqual(tc3.Description, export.Constraint[0].Constraint[0].Constraint[0].Description); Assert.AreEqual(tc3.Label, export.Constraint[0].Constraint[0].Constraint[0].Label); Assert.IsFalse(string.IsNullOrEmpty(export.Constraint[0].Constraint[0].Constraint[0].Description)); }
public void TemplateValidationFailurePrimitiveWithoutNarrative() { Template newTemplate = tdb.GenerateTemplate("1.2.3.4", tdb.FindTemplateType("CDA", "Document"), "Test 1", this.ig, "observation", "Observation"); var tc1 = tdb.GeneratePrimitive(newTemplate, null, "SHALL", string.Empty); List <TemplateValidationResult> errors = newTemplate.ValidateTemplate(); Assert.IsNotNull(errors, "Errors list should not be null."); Assert.AreEqual(1, errors.Count, "Expected to find only one error."); Assert.AreEqual("Primitive does not have any narrative text.", errors[0].Message); Assert.AreEqual(ValidationLevels.Error, errors[0].Level); }
public void MyTestInitialize() { tdb = new MockObjectRepository(); // IG Type ImplementationGuideType cdaType = tdb.FindOrCreateImplementationGuideType("CDA", "cda.xsd", "cda", "urn:hl7-org:v3"); // Template Type TemplateType docType = tdb.FindOrCreateTemplateType(cdaType, "document", "ClinicalDocument", "ClinicalDocument", 1); TemplateType secType = tdb.FindOrCreateTemplateType(cdaType, "section", "section", "Section", 2); TemplateType entType = tdb.FindOrCreateTemplateType(cdaType, "entry", "entry", "Entry", 3); // Code System CodeSystem cs1 = tdb.FindOrCreateCodeSystem("SNOMED CT", "6.36"); // Value Set ValueSet vs1 = tdb.FindOrCreateValueSet("Test Value Set 1", "1.2.3.4"); tdb.FindOrCreateValueSetMember(vs1, cs1, "1234", "Test Member 1"); tdb.FindOrCreateValueSetMember(vs1, cs1, "4321", "Test Member 2"); // Implementation Guide ImplementationGuide ig1 = tdb.FindOrAddImplementationGuide(cdaType, "Test Implementation Guide 1", publishDate: new DateTime(2012, 1, 1)); // IG Files byte[] testSchBytes = Helper.GetSampleContentBytes("Trifolia.Test.DocSamples.test.sch"); ImplementationGuideFile testSchFile = tdb.GenerateImplementationGuideFile(ig1, "test.sch", ImplementationGuideFile.ContentTypeSchematron, "text/xml", content: testSchBytes); this.testSchFileId = testSchFile.Id; tdb.GenerateImplementationGuideFile(ig1, "voc.xml", ImplementationGuideFile.ContentTypeVocabulary, "text/xml", content: testSchBytes); tdb.GenerateImplementationGuideFile(ig1, "test1_template1.ent", ImplementationGuideFile.ContentTypeSchematronHelper, "text/xml", content: testSchBytes); ImplementationGuide ig2 = tdb.FindOrAddImplementationGuide(cdaType, "Test Implementation Guide 2"); // Template 1 Template t1 = tdb.GenerateTemplate("urn:oid:1.2.3.4", docType, "Test Template", ig1, null, null, null); tdb.GenerateConstraint(t1, null, null, "title", "SHALL", "1..1"); // Template 2 Template t2 = tdb.GenerateTemplate("urn:oid:1.2.3.4.1", docType, "Test Template", ig1, null, null, null); TemplateConstraint t2_tc1 = tdb.GenerateConstraint(t2, null, null, "title", "SHALL", "1..1"); t2_tc1.Schematron = "count(cda:title)"; TemplateConstraint t2_tc2 = tdb.GeneratePrimitive(t2, null, "SHALL", "This is a test primitive"); tdb.GeneratePrimitive(t2, null, "SHALL", "This is test primitive #2", "count(cda:title) > 0"); // Template 3 Template t3 = tdb.GenerateTemplate("urn:oid:1.2.3.4.2", docType, "Test Template", ig2, null, null, null); tdb.GenerateConstraint(t1, null, null, "title", "SHOULD", "1..1"); // Template 4 Template t4 = tdb.GenerateTemplate("urn:oid:1.2.3.4.3", docType, "Test Template", ig2, null, null, null); TemplateConstraint t4_p1 = tdb.GenerateConstraint(t4, null, null, "entryRelationship", "SHALL", "1..1", null, null, null, null, null, null, null, true); TemplateConstraint t4_p2 = tdb.GenerateConstraint(t4, t4_p1, null, "@typeCode", "SHALL", "1..1", null, null, "DRIV"); TemplateConstraint t4_p3 = tdb.GenerateConstraint(t4, t4_p1, null, "observation", "SHALL", "1..1", null, null, "DRIV", null, null, null, null, true); }