private Element HarvestElement(Hl7.Fhir.Model.ElementDefinition source) { Element target = new Element(); HarvestElement(source, target); return(target); }
private void HarvestCardinality(Hl7.Fhir.Model.ElementDefinition source, Element target) { Cardinality cardinality = new Cardinality(); cardinality.Min = source.Min.ToString(); cardinality.Max = source.Max; target.Cardinality = cardinality; }
private void HarvestElement(Hl7.Fhir.Model.ElementDefinition source, Element target) { target.Path = new Path(source.Path); target.Name = target.Path.ElementName; //source.Name; target.Representation = TransformRepresentation(source); HarvestElementDefinition(source, target); HarvestSlicing(target); }
private Representation TransformRepresentation(Hl7.Fhir.Model.ElementDefinition source) { if (source.Representation == null) { return(Representation.Element); } return((source.Representation.Contains(Hl7.Fhir.Model.ElementDefinition.PropertyRepresentation.XmlAttr)) ? Representation.Attribute : Representation.Element); }
private void HarvestElementDefinition(Hl7.Fhir.Model.ElementDefinition source, Element target) { if (source != null) { HarvestBinding(source, target); HarvestTypeRefs(source, target); HarvestElementRef(source, target); HarvestCardinality(source, target); HarvestConstraints(source, target); HarvestFixedValue(source, target); } }
private void HarvestTypeRefs(Hl7.Fhir.Model.ElementDefinition source, Element target) { if (source.Type == null) { return; } foreach (var type in source.Type) { target.TypeRefs.Add(HarvestTypeRef(type)); } }
private void HarvestFixedValue(Hl7.Fhir.Model.ElementDefinition source, Element target) { target.FixedValue = null; if (source.Fixed != null) { target.FixedValue = source.Fixed; } if (source.Pattern != null) { target.PatternValue = source.Pattern; } }
private void HarvestConstraints(Hl7.Fhir.Model.ElementDefinition source, Element target) { if (source.Constraint == null) { return; } foreach (Hl7.Fhir.Model.ElementDefinition.ConstraintComponent c in source.Constraint) { Constraint constraint = new Constraint(); constraint.Name = c.Key; constraint.XPath = c.Xpath; constraint.HumanReadable = c.Human; target.Constraints.Add(constraint); } }
private Slicing PrepareSlice(Hl7.Fhir.Model.ElementDefinition source) { Slicing slicing = new Slicing(); slicing.Path = new Path(source.Path); //TODO: Support multiple discriminators if (source.Slicing.Discriminator.Count() > 1) { throw Error.NotImplemented("Multiple discriminators not yet implemented"); } //TODO: Support discriminator-less matching! slicing.Discriminator = new Path(source.Slicing.Discriminator.First()); return(slicing); }
private void HarvestBinding(Hl7.Fhir.Model.ElementDefinition source, Element target) { if (source.Binding != null) { var reference = source.Binding.ValueSet; if (reference is Hl7.Fhir.Model.ResourceReference) { // todo: dit deel is nog niet getest. target.BindingUri = (reference as Hl7.Fhir.Model.ResourceReference).Url.ToString(); } else if (reference is Hl7.Fhir.Model.FhirUri) { target.BindingUri = (reference as Hl7.Fhir.Model.FhirUri).Value; } } }
private void HarvestElementRef(Hl7.Fhir.Model.ElementDefinition source, Element target) { target.ElementRefPath = source.NameReference; }