public IResource MapBloodPressure(ViSiBloodPressure bp)
        {
            var observation = new Observation
            {
                Id        = bp.Id.ToString(),
                Subject   = new ResourceReference($"Patient/{bp.PatientId}"),
                Effective = new FhirDateTime(new DateTimeOffset(bp.MeasuredAt, TimeSpan.FromHours(2))), //Change to your local offset.
                Status    = ObservationStatus.Final
            };

            observation.Category.Add(new CodeableConcept("http://hl7.org/fhir/observation-category", "vital-signs", "Vital Signs"));
            observation.Component.Add(
                new Observation.ComponentComponent()
            {
                Code  = new CodeableConcept("http://loinc.org", "8480-6", "Systolic blood pressure"),
                Value = new Quantity(bp.Systolic, "mm[Hg]", VonkConstants.UcumSystem)
            });
            observation.Component.Add(
                new Observation.ComponentComponent()
            {
                Code  = new CodeableConcept("http://loinc.org", "8462-4", "Diastolic blood pressure"),
                Value = new Quantity(bp.Diastolic, "mm[Hg]", VonkConstants.UcumSystem)
            });

            return(observation.ToIResource());
        }
        public ViSiBloodPressure MapViSiBloodPressure(IResource source)
        {
            var fhirObservation   = source.ToPoco <Observation>();
            var visiBloodPressure = new ViSiBloodPressure();

            if (source.Id != null)
            {
                visiBloodPressure.Id = int.Parse(source.Id);
            }

            visiBloodPressure.PatientId  = int.Parse(new ResourceIdentity(fhirObservation.Subject.Reference).Id);
            visiBloodPressure.MeasuredAt = Convert.ToDateTime(((FhirDateTime)fhirObservation.Effective).ToString());

            var systolicComponent  = fhirObservation.Component.Find(c => c.Code.Coding.Exists(coding => coding.Code == "8480-6"));
            var diastolicComponent = fhirObservation.Component.Find(c => c.Code.Coding.Exists(coding => coding.Code == "8462-4"));

            visiBloodPressure.Systolic  = Convert.ToInt32(((Quantity)systolicComponent.Value).Value);
            visiBloodPressure.Diastolic = Convert.ToInt32(((Quantity)diastolicComponent.Value).Value);;

            return(visiBloodPressure);
        }