Exemplo n.º 1
0
        public static string ToValue(this FHIR.Element element)
        {
            switch (element)
            {
            case FHIR.FhirString s:
                return(s.Value);

            case FHIR.Quantity q:
                return($"{q.Value}{q.Code}");

            default:
                throw new ArgumentException($"Unsupported FHIR value type {element.GetType().Name}.");
            }
        }
Exemplo n.º 2
0
        /// <summary>
        /// Maps element to a list of Expression.
        /// </summary>
        /// <param name="element"></param>
        /// <returns>List of Expression, empty List if no mapping was possible.</returns>
        public List <Expression> Map(FhirModel.Element element)
        {
            var result = new List <Expression>();

            try
            {
                List <Expression> expressions = ToExpressions((dynamic)element);
                if (expressions != null)
                {
                    result.AddRange(expressions.Where(exp => exp != null).ToList());
                }
            }
            catch (Microsoft.CSharp.RuntimeBinder.RuntimeBinderException)
            {
                _log.UnsupportedFeature("ElementIndexer.Map", "Mapping of type " + element.GetType().Name);
            }
            return(result);
        }
Exemplo n.º 3
0
 internal static void SerializeElement(Element value, IFhirWriter writer, bool summary)
 {
     if(value.GetType() == typeof(Hl7.Fhir.Model.Address))
         AddressSerializer.SerializeAddress((Hl7.Fhir.Model.Address)value, writer, summary);
     else if(value.GetType() == typeof(Hl7.Fhir.Model.Attachment))
         AttachmentSerializer.SerializeAttachment((Hl7.Fhir.Model.Attachment)value, writer, summary);
     else if(value.GetType() == typeof(Hl7.Fhir.Model.Choice))
         ChoiceSerializer.SerializeChoice((Hl7.Fhir.Model.Choice)value, writer, summary);
     else if(value.GetType() == typeof(Hl7.Fhir.Model.CodeableConcept))
         CodeableConceptSerializer.SerializeCodeableConcept((Hl7.Fhir.Model.CodeableConcept)value, writer, summary);
     else if(value.GetType() == typeof(Hl7.Fhir.Model.Coding))
         CodingSerializer.SerializeCoding((Hl7.Fhir.Model.Coding)value, writer, summary);
     else if(value.GetType() == typeof(Hl7.Fhir.Model.Contact))
         ContactSerializer.SerializeContact((Hl7.Fhir.Model.Contact)value, writer, summary);
     else if(value.GetType() == typeof(Hl7.Fhir.Model.Extension))
         ExtensionSerializer.SerializeExtension((Hl7.Fhir.Model.Extension)value, writer, summary);
     else if(value.GetType() == typeof(Hl7.Fhir.Model.HumanName))
         HumanNameSerializer.SerializeHumanName((Hl7.Fhir.Model.HumanName)value, writer, summary);
     else if(value.GetType() == typeof(Hl7.Fhir.Model.Identifier))
         IdentifierSerializer.SerializeIdentifier((Hl7.Fhir.Model.Identifier)value, writer, summary);
     else if(value.GetType() == typeof(Hl7.Fhir.Model.Narrative))
         NarrativeSerializer.SerializeNarrative((Hl7.Fhir.Model.Narrative)value, writer, summary);
     else if(value.GetType() == typeof(Hl7.Fhir.Model.Period))
         PeriodSerializer.SerializePeriod((Hl7.Fhir.Model.Period)value, writer, summary);
     else if(value.GetType() == typeof(Hl7.Fhir.Model.Quantity))
         QuantitySerializer.SerializeQuantity((Hl7.Fhir.Model.Quantity)value, writer, summary);
     else if(value.GetType() == typeof(Hl7.Fhir.Model.Range))
         RangeSerializer.SerializeRange((Hl7.Fhir.Model.Range)value, writer, summary);
     else if(value.GetType() == typeof(Hl7.Fhir.Model.Ratio))
         RatioSerializer.SerializeRatio((Hl7.Fhir.Model.Ratio)value, writer, summary);
     else if(value.GetType() == typeof(Hl7.Fhir.Model.ResourceReference))
         ResourceReferenceSerializer.SerializeResourceReference((Hl7.Fhir.Model.ResourceReference)value, writer, summary);
     else if(value.GetType() == typeof(Hl7.Fhir.Model.SampledData))
         SampledDataSerializer.SerializeSampledData((Hl7.Fhir.Model.SampledData)value, writer, summary);
     else if(value.GetType() == typeof(Hl7.Fhir.Model.Schedule))
         ScheduleSerializer.SerializeSchedule((Hl7.Fhir.Model.Schedule)value, writer, summary);
     else if(value.GetType() == typeof(Hl7.Fhir.Model.Base64Binary))
         Base64BinarySerializer.SerializeBase64Binary((Hl7.Fhir.Model.Base64Binary)value, writer, summary);
     else if(value.GetType() == typeof(Hl7.Fhir.Model.FhirBoolean))
         FhirBooleanSerializer.SerializeFhirBoolean((Hl7.Fhir.Model.FhirBoolean)value, writer, summary);
     else if(value.GetType() == typeof(Hl7.Fhir.Model.Code))
         CodeSerializer.SerializeCode((Hl7.Fhir.Model.Code)value, writer, summary);
     else if(value.GetType() == typeof(Hl7.Fhir.Model.Date))
         DateSerializer.SerializeDate((Hl7.Fhir.Model.Date)value, writer, summary);
     else if(value.GetType() == typeof(Hl7.Fhir.Model.FhirDateTime))
         FhirDateTimeSerializer.SerializeFhirDateTime((Hl7.Fhir.Model.FhirDateTime)value, writer, summary);
     else if(value.GetType() == typeof(Hl7.Fhir.Model.FhirDecimal))
         FhirDecimalSerializer.SerializeFhirDecimal((Hl7.Fhir.Model.FhirDecimal)value, writer, summary);
     else if(value.GetType() == typeof(Hl7.Fhir.Model.Id))
         IdSerializer.SerializeId((Hl7.Fhir.Model.Id)value, writer, summary);
     else if(value.GetType() == typeof(Hl7.Fhir.Model.IdRef))
         IdRefSerializer.SerializeIdRef((Hl7.Fhir.Model.IdRef)value, writer, summary);
     else if(value.GetType() == typeof(Hl7.Fhir.Model.Instant))
         InstantSerializer.SerializeInstant((Hl7.Fhir.Model.Instant)value, writer, summary);
     else if(value.GetType() == typeof(Hl7.Fhir.Model.Integer))
         IntegerSerializer.SerializeInteger((Hl7.Fhir.Model.Integer)value, writer, summary);
     else if(value.GetType() == typeof(Hl7.Fhir.Model.Oid))
         OidSerializer.SerializeOid((Hl7.Fhir.Model.Oid)value, writer, summary);
     else if(value.GetType() == typeof(Hl7.Fhir.Model.FhirString))
         FhirStringSerializer.SerializeFhirString((Hl7.Fhir.Model.FhirString)value, writer, summary);
     else if(value.GetType() == typeof(Hl7.Fhir.Model.FhirUri))
         FhirUriSerializer.SerializeFhirUri((Hl7.Fhir.Model.FhirUri)value, writer, summary);
     else if(value.GetType() == typeof(Hl7.Fhir.Model.Uuid))
         UuidSerializer.SerializeUuid((Hl7.Fhir.Model.Uuid)value, writer, summary);
     else if(value.GetType() == typeof(Hl7.Fhir.Model.XHtml))
         XHtmlSerializer.SerializeXHtml((Hl7.Fhir.Model.XHtml)value, writer, summary);
     else if(value.GetType() == typeof(Hl7.Fhir.Model.Age))
         QuantitySerializer.SerializeQuantity((Hl7.Fhir.Model.Age)value, writer, summary);
     else if(value.GetType() == typeof(Hl7.Fhir.Model.Count))
         QuantitySerializer.SerializeQuantity((Hl7.Fhir.Model.Count)value, writer, summary);
     else if(value.GetType() == typeof(Hl7.Fhir.Model.Distance))
         QuantitySerializer.SerializeQuantity((Hl7.Fhir.Model.Distance)value, writer, summary);
     else if(value.GetType() == typeof(Hl7.Fhir.Model.Duration))
         QuantitySerializer.SerializeQuantity((Hl7.Fhir.Model.Duration)value, writer, summary);
     else if(value.GetType() == typeof(Hl7.Fhir.Model.Money))
         QuantitySerializer.SerializeQuantity((Hl7.Fhir.Model.Money)value, writer, summary);
     else
         throw new Exception("Encountered unknown type " + value.GetType().Name);
 }