public static void SerializeSampledData(Hl7.Fhir.Model.SampledData value, IFhirWriter writer, bool summary) { writer.WriteStartComplexContent(); // Serialize element _id if (value.LocalIdElement != null) { writer.WritePrimitiveContents("_id", value.LocalIdElement, XmlSerializationHint.Attribute); } // Serialize element extension if (value.Extension != null && !summary && value.Extension.Count > 0) { writer.WriteStartArrayElement("extension"); foreach (var item in value.Extension) { writer.WriteStartArrayMember("extension"); ExtensionSerializer.SerializeExtension(item, writer, summary); writer.WriteEndArrayMember(); } writer.WriteEndArrayElement(); } // Serialize element origin if (value.Origin != null) { writer.WriteStartElement("origin"); QuantitySerializer.SerializeQuantity(value.Origin, writer, summary); writer.WriteEndElement(); } // Serialize element period if (value.PeriodElement != null) { writer.WriteStartElement("period"); FhirDecimalSerializer.SerializeFhirDecimal(value.PeriodElement, writer, summary); writer.WriteEndElement(); } // Serialize element factor if (value.FactorElement != null) { writer.WriteStartElement("factor"); FhirDecimalSerializer.SerializeFhirDecimal(value.FactorElement, writer, summary); writer.WriteEndElement(); } // Serialize element lowerLimit if (value.LowerLimitElement != null) { writer.WriteStartElement("lowerLimit"); FhirDecimalSerializer.SerializeFhirDecimal(value.LowerLimitElement, writer, summary); writer.WriteEndElement(); } // Serialize element upperLimit if (value.UpperLimitElement != null) { writer.WriteStartElement("upperLimit"); FhirDecimalSerializer.SerializeFhirDecimal(value.UpperLimitElement, writer, summary); writer.WriteEndElement(); } // Serialize element dimensions if (value.DimensionsElement != null) { writer.WriteStartElement("dimensions"); IntegerSerializer.SerializeInteger(value.DimensionsElement, writer, summary); writer.WriteEndElement(); } // Serialize element data if (value.DataElement != null) { writer.WriteStartElement("data"); FhirStringSerializer.SerializeFhirString(value.DataElement, writer, summary); writer.WriteEndElement(); } writer.WriteEndComplexContent(); }
/// <summary> /// Parse SampledData /// </summary> public static Hl7.Fhir.Model.SampledData ParseSampledData(IFhirReader reader, ErrorList errors, Hl7.Fhir.Model.SampledData existingInstance = null) { Hl7.Fhir.Model.SampledData result = existingInstance != null ? existingInstance : new Hl7.Fhir.Model.SampledData(); string currentElementName = reader.CurrentElementName; reader.EnterElement(); while (reader.HasMoreElements()) { var atName = reader.CurrentElementName; // Parse element extension if (atName == "extension") { result.Extension = new List <Hl7.Fhir.Model.Extension>(); reader.EnterArray(); while (ParserUtils.IsAtArrayElement(reader, "extension")) { result.Extension.Add(ExtensionParser.ParseExtension(reader, errors)); } reader.LeaveArray(); } // Parse element _id else if (atName == "_id") { result.LocalIdElement = Id.Parse(reader.ReadPrimitiveContents(typeof(Id))); } // Parse element origin else if (atName == "origin") { result.Origin = QuantityParser.ParseQuantity(reader, errors); } // Parse element period else if (atName == "period") { result.PeriodElement = FhirDecimalParser.ParseFhirDecimal(reader, errors); } // Parse element factor else if (atName == "factor") { result.FactorElement = FhirDecimalParser.ParseFhirDecimal(reader, errors); } // Parse element lowerLimit else if (atName == "lowerLimit") { result.LowerLimitElement = FhirDecimalParser.ParseFhirDecimal(reader, errors); } // Parse element upperLimit else if (atName == "upperLimit") { result.UpperLimitElement = FhirDecimalParser.ParseFhirDecimal(reader, errors); } // Parse element dimensions else if (atName == "dimensions") { result.DimensionsElement = IntegerParser.ParseInteger(reader, errors); } // Parse element data else if (atName == "data") { result.DataElement = FhirStringParser.ParseFhirString(reader, errors); } else { errors.Add(String.Format("Encountered unknown element {0} while parsing {1}", reader.CurrentElementName, currentElementName), reader); reader.SkipSubElementsFor(currentElementName); result = null; } } reader.LeaveElement(); return(result); }
private void button1_Click_2(object sender, EventArgs e) { var endpoint = new Uri("http://fhirtest.uhn.ca/baseDstu2"); var client = new FhirClient(endpoint); // Create new value for observation SampledData val = new SampledData(); CodeableConcept concept = new CodeableConcept(); concept.Coding = new List<Coding>(); if (conversionList.Text.Equals("age")) { val.Data = CurrentMeasurement.age.ToString(); Coding code = new Coding(); code.Code = "410668003"; concept.Coding.Add(code); } else if (conversionList.Text.Equals("bmr")) { val.Data = CurrentMeasurement.bmr.ToString(); Coding code = new Coding(); code.Code = "60621009"; concept.Coding.Add(code); } else if (conversionList.Text.Equals("height")) { val.Data = CurrentMeasurement.height.ToString(); Coding code = new Coding(); code.Code = "60621009"; //SNOMED CT code concept.Coding.Add(code); } else if (conversionList.Text.Equals("m_active_time")) val.Data = CurrentMeasurement.m_active_time.ToString(); else if (conversionList.Text.Equals("m_calories")) val.Data = CurrentMeasurement.m_calories.ToString(); else if (conversionList.Text.Equals("m_distance")) val.Data = CurrentMeasurement.m_distance.ToString(); else if (conversionList.Text.Equals("m_inactive_time")) val.Data = CurrentMeasurement.m_inactive_time.ToString(); else if (conversionList.Text.Equals("m_lcat")) val.Data = CurrentMeasurement.m_lcat.ToString(); else if (conversionList.Text.Equals("m_lcit")) val.Data = CurrentMeasurement.m_lcit.ToString(); else if (conversionList.Text.Equals("m_steps")) val.Data = CurrentMeasurement.m_steps.ToString(); else if (conversionList.Text.Equals("m_total_calories")) val.Data = CurrentMeasurement.m_total_calories.ToString(); else if (conversionList.Text.Equals("s_asleep_time")) val.Data = CurrentMeasurement.s_asleep_time.ToString(); else if (conversionList.Text.Equals("s_awake")) val.Data = CurrentMeasurement.s_awake.ToString(); else if (conversionList.Text.Equals("s_awake_time")) val.Data = CurrentMeasurement.s_awake_time.ToString(); else if (conversionList.Text.Equals("s_awakenings")) val.Data = CurrentMeasurement.s_awakenings.ToString(); else if (conversionList.Text.Equals("s_bedtime")) val.Data = CurrentMeasurement.s_bedtime.ToString(); else if (conversionList.Text.Equals("s_clinical_deep")) val.Data = CurrentMeasurement.s_clinical_deep.ToString(); else if (conversionList.Text.Equals("s_count")) val.Data = CurrentMeasurement.s_count.ToString(); else if (conversionList.Text.Equals("s_duration")) val.Data = CurrentMeasurement.s_duration.ToString(); else if (conversionList.Text.Equals("s_light")) val.Data = CurrentMeasurement.s_light.ToString(); else if (conversionList.Text.Equals("s_quality")) val.Data = CurrentMeasurement.s_quality.ToString(); else if (conversionList.Text.Equals("s_rem")) val.Data = CurrentMeasurement.s_rem.ToString(); else if (conversionList.Text.Equals("weight")) val.Data = CurrentMeasurement.weight.ToString(); else val.Data = "E"; // Error Console.WriteLine("Value data: " + val.Data); ResourceReference dev = new ResourceReference(); dev.Reference = "Device/" + CurrentDevice.Id; ResourceReference pat = new ResourceReference(); pat.Reference = "Patient/" + CurrentPatient.Id; Console.WriteLine("Patient reference: " + pat.Reference); Console.WriteLine("Conversion: " + conversionList.Text); CodeableConcept naam = new CodeableConcept(); naam.Text = conversionList.Text; DateTime date = DateTime.ParseExact(CurrentMeasurement.date, "yyyymmdd", null); Console.WriteLine("" + date.ToString()); var obs = new Observation() {Device = dev, Subject = pat, Value = val, Issued = date, Code = naam, Category = concept, Status = Observation.ObservationStatus.Final}; client.Create(obs); conversionStatus.Text = "Done!"; }