private static Observation VitalSignsResultToFhir(VitalSignsResultType vitalSignsResult) { var observation = new Observation(); observation.Category = new List <CodeableConcept> { FhirCategories.VitalSigns }; observation.Code = vitalSignsResult.Title.ToFhir(); observation.Status = ObservationStatus.Final; var referenceRangeValue = new Observation.ReferenceRangeComponent(); referenceRangeValue.Low = new Quantity((decimal)vitalSignsResult.ReferenceMinimum, vitalSignsResult.Unit.Text) as SimpleQuantity; referenceRangeValue.High = new Quantity((decimal)vitalSignsResult.ReferenceMaximum, vitalSignsResult.Unit.Text) as SimpleQuantity; observation.ReferenceRange.Add(referenceRangeValue); var quantity = new Quantity((decimal)vitalSignsResult.Value, vitalSignsResult.Unit.Text); var codableUnitExtension = new Extension { Url = HealthVaultExtensions.CodableUnit }; codableUnitExtension.Value = vitalSignsResult.Unit.ToFhir(); quantity.Extension.Add(codableUnitExtension); observation.Value = quantity; return(observation); }
private List <Observation.ReferenceRangeComponent> buildReferenceRanges(fhir.model.ReferenceRange referenceRange) { if (referenceRange == null) { return(null); } var ret = new Observation.ReferenceRangeComponent(); ret.Low = referenceRange.NumericLower.HasValue ? new SimpleQuantity() { Value = referenceRange.NumericLower.Value } : null; ret.High = referenceRange.NumericUpper.HasValue ? new SimpleQuantity() { Value = referenceRange.NumericUpper.Value } : null; ret.Text = referenceRange.Text; return(new List <Observation.ReferenceRangeComponent>() { ret }); }
private List <Observation.ReferenceRangeComponent> GetReferenceRange(entitystorematerialised_CoreResult1 result, Observation obs) { var referenceRanges = new List <Observation.ReferenceRangeComponent>(); if (obs.ReferenceRange.IsCollectionValid()) { obs.ReferenceRange.Each(refRange => referenceRanges.Add(refRange)); } Observation.ReferenceRangeComponent referenceRange = new Observation.ReferenceRangeComponent(); referenceRange.Low = new SimpleQuantity { Value = Decimal.TryParse(result.Referencerangelow, out Decimal refLow) ? refLow : default(decimal?) }; referenceRange.High = new SimpleQuantity { Value = Decimal.TryParse(result.Referencerangehigh, out Decimal refHigh) ? refHigh : default(decimal?) }; referenceRanges.Add(referenceRange); return(referenceRanges); }