コード例 #1
0
        private Element HarvestElement(Hl7.Fhir.Model.ElementDefinition source)
        {
            Element target = new Element();

            HarvestElement(source, target);
            return(target);
        }
コード例 #2
0
        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;
        }
コード例 #3
0
        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);
        }
コード例 #4
0
        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);
        }
コード例 #5
0
 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);
     }
 }
コード例 #6
0
        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));
            }
        }
コード例 #7
0
        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;
            }
        }
コード例 #8
0
        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);
            }
        }
コード例 #9
0
        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);
        }
コード例 #10
0
        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;
                }
            }
        }
コード例 #11
0
 private void HarvestElementRef(Hl7.Fhir.Model.ElementDefinition source, Element target)
 {
     target.ElementRefPath = source.NameReference;
 }