public static bool IsAtFhirElementEndingWith(IFhirReader reader, string suffix) { if (!IsAtFhirElement(reader)) return false; return reader.CurrentElementName.EndsWith(suffix); }
/// <summary> /// Parse Identifier /// </summary> public static Hl7.Fhir.Model.Identifier ParseIdentifier(IFhirReader reader, ErrorList errors, Hl7.Fhir.Model.Identifier existingInstance = null ) { Hl7.Fhir.Model.Identifier result = existingInstance != null ? existingInstance : new Hl7.Fhir.Model.Identifier(); 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 use else if( atName == "use" ) result.UseElement = CodeParser.ParseCode<Hl7.Fhir.Model.Identifier.IdentifierUse>(reader, errors); // Parse element label else if( atName == "label" ) result.LabelElement = FhirStringParser.ParseFhirString(reader, errors); // Parse element system else if( atName == "system" ) result.SystemElement = FhirUriParser.ParseFhirUri(reader, errors); // Parse element key else if( atName == "key" ) result.KeyElement = FhirStringParser.ParseFhirString(reader, errors); // Parse element period else if( atName == "period" ) result.Period = PeriodParser.ParsePeriod(reader, errors); // Parse element assigner else if( atName == "assigner" ) result.Assigner = ResourceReferenceParser.ParseResourceReference(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; }
/// <summary> /// Parse AnimalComponent /// </summary> public static Hl7.Fhir.Model.Patient.AnimalComponent ParseAnimalComponent(IFhirReader reader, ErrorList errors, Hl7.Fhir.Model.Patient.AnimalComponent existingInstance = null) { Hl7.Fhir.Model.Patient.AnimalComponent result = existingInstance != null ? existingInstance : new Hl7.Fhir.Model.Patient.AnimalComponent(); 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 species else if (atName == "species") { result.Species = CodeableConceptParser.ParseCodeableConcept(reader, errors); } // Parse element breed else if (atName == "breed") { result.Breed = CodeableConceptParser.ParseCodeableConcept(reader, errors); } // Parse element genderStatus else if (atName == "genderStatus") { result.GenderStatus = CodeableConceptParser.ParseCodeableConcept(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); }
/// <summary> /// Parse Coding /// </summary> public static Hl7.Fhir.Model.Coding ParseCoding(IFhirReader reader, ErrorList errors, Hl7.Fhir.Model.Coding existingInstance = null) { Hl7.Fhir.Model.Coding result = existingInstance != null ? existingInstance : new Hl7.Fhir.Model.Coding(); 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 system else if (atName == "system") { result.SystemElement = FhirUriParser.ParseFhirUri(reader, errors); } // Parse element code else if (atName == "code") { result.CodeElement = CodeParser.ParseCode(reader, errors); } // Parse element display else if (atName == "display") { result.DisplayElement = 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); }
/// <summary> /// Parse Extension /// </summary> public static Hl7.Fhir.Model.Extension ParseExtension(IFhirReader reader, ErrorList errors, Hl7.Fhir.Model.Extension existingInstance = null) { Hl7.Fhir.Model.Extension result = existingInstance != null ? existingInstance : new Hl7.Fhir.Model.Extension(); 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 url else if (atName == "url") { result.UrlElement = FhirUriParser.ParseFhirUri(reader, errors); } // Parse element isModifier else if (atName == "isModifier") { result.IsModifierElement = FhirBooleanParser.ParseFhirBoolean(reader, errors); } // Parse element value else if (atName.StartsWith("value")) { result.Value = FhirParser.ParseElement(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); }
public static bool IsAtFhirElement(IFhirReader reader) { // If the element is from a different namespace than the FHIR ns // the name will look like {<ns name>}<local name> // NB: the Xhtml <div> element will be treated as a local name // by the FHIR reader. return(!reader.CurrentElementName.StartsWith("{")); }
public static bool IsAtFhirElement(IFhirReader reader) { // If the element is from a different namespace than the FHIR ns // the name will look like {<ns name>}<local name> // NB: the Xhtml <div> element will be treated as a local name // by the FHIR reader. return !reader.CurrentElementName.StartsWith("{"); }
public DispatchingReader(IFhirReader data, ParserSettings settings, bool arrayMode) { _current = data; _inspector = BaseFhirParser.Inspector; _arrayMode = arrayMode; Settings = settings; }
public static bool IsAtFhirElement(IFhirReader reader, string name, bool isPolymorph = false) { string currElem = reader.CurrentElementName; if (!isPolymorph) return currElem == name; else return currElem.StartsWith(name); }
public static bool IsAtFhirElementEndingWith(IFhirReader reader, string suffix) { if (!IsAtFhirElement(reader)) { return(false); } return(reader.CurrentElementName.EndsWith(suffix)); }
/// <summary> /// Parse InterestOfCare /// </summary> public static Hl7.Fhir.Model.InterestOfCare ParseInterestOfCare(IFhirReader reader, ErrorList errors, Hl7.Fhir.Model.InterestOfCare existingInstance = null ) { Hl7.Fhir.Model.InterestOfCare result = existingInstance != null ? existingInstance : new Hl7.Fhir.Model.InterestOfCare(); 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 language else if( atName == "language" ) result.LanguageElement = CodeParser.ParseCode(reader, errors); // Parse element text else if( atName == "text" ) result.Text = NarrativeParser.ParseNarrative(reader, errors); // Parse element contained else if( atName == "contained" ) { result.Contained = new List<Hl7.Fhir.Model.Resource>(); reader.EnterArray(); while( ParserUtils.IsAtArrayElement(reader, "contained") ) result.Contained.Add(ParserUtils.ParseContainedResource(reader,errors)); reader.LeaveArray(); } // Parse element _id else if( atName == "_id" ) result.LocalIdElement = Id.Parse(reader.ReadPrimitiveContents(typeof(Id))); 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; }
/// <summary> /// Parse Quantity /// </summary> public static Hl7.Fhir.Model.Quantity ParseQuantity(IFhirReader reader, ErrorList errors, Hl7.Fhir.Model.Quantity existingInstance = null ) { Hl7.Fhir.Model.Quantity result = existingInstance != null ? existingInstance : new Hl7.Fhir.Model.Quantity(); 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 value else if( atName == "value" ) result.ValueElement = FhirDecimalParser.ParseFhirDecimal(reader, errors); // Parse element comparator else if( atName == "comparator" ) result.ComparatorElement = CodeParser.ParseCode<Hl7.Fhir.Model.Quantity.QuantityCompararator>(reader, errors); // Parse element units else if( atName == "units" ) result.UnitsElement = FhirStringParser.ParseFhirString(reader, errors); // Parse element system else if( atName == "system" ) result.SystemElement = FhirUriParser.ParseFhirUri(reader, errors); // Parse element code else if( atName == "code" ) result.CodeElement = CodeParser.ParseCode(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; }
/// <summary> /// Parse Choice /// </summary> public static Hl7.Fhir.Model.Choice ParseChoice(IFhirReader reader, ErrorList errors, Hl7.Fhir.Model.Choice existingInstance = null ) { Hl7.Fhir.Model.Choice result = existingInstance != null ? existingInstance : new Hl7.Fhir.Model.Choice(); 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 code else if( atName == "code" ) result.CodeElement = CodeParser.ParseCode(reader, errors); // Parse element option else if( atName == "option" ) { result.Option = new List<Hl7.Fhir.Model.Choice.ChoiceOptionComponent>(); reader.EnterArray(); while( ParserUtils.IsAtArrayElement(reader, "option") ) result.Option.Add(ChoiceParser.ParseChoiceOptionComponent(reader, errors)); reader.LeaveArray(); } // Parse element isOrdered else if( atName == "isOrdered" ) result.IsOrderedElement = FhirBooleanParser.ParseFhirBoolean(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; }
/// <summary> /// Parse CodeableConcept /// </summary> public static Hl7.Fhir.Model.CodeableConcept ParseCodeableConcept(IFhirReader reader, ErrorList errors, Hl7.Fhir.Model.CodeableConcept existingInstance = null ) { Hl7.Fhir.Model.CodeableConcept result = existingInstance != null ? existingInstance : new Hl7.Fhir.Model.CodeableConcept(); 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 coding else if( atName == "coding" ) { result.Coding = new List<Hl7.Fhir.Model.Coding>(); reader.EnterArray(); while( ParserUtils.IsAtArrayElement(reader, "coding") ) result.Coding.Add(CodingParser.ParseCoding(reader, errors)); reader.LeaveArray(); } // Parse element text else if( atName == "text" ) result.TextElement = FhirStringParser.ParseFhirString(reader, errors); // Parse element primary else if( atName == "primary" ) result.PrimaryElement = IdRefParser.ParseIdRef(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; }
public Base Parse(IFhirReader reader, Type dataType) { if (dataType.CanBeTreatedAsType(typeof(Resource))) { return(new ResourceReader(reader, Settings).Deserialize()); } else { return(new ComplexTypeReader(reader, Settings).Deserialize(dataType)); } }
internal static Base Parse(IFhirReader reader, Type dataType = null) { if (dataType == null) { return(new ResourceReader(reader).Deserialize()); } else { return(new ComplexTypeReader(reader).Deserialize(dataType)); } }
/// <summary> /// Parse Narrative /// </summary> public static Hl7.Fhir.Model.Narrative ParseNarrative(IFhirReader reader, ErrorList errors, Hl7.Fhir.Model.Narrative existingInstance = null) { Hl7.Fhir.Model.Narrative result = existingInstance != null ? existingInstance : new Hl7.Fhir.Model.Narrative(); 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 status else if (atName == "status") { result.StatusElement = CodeParser.ParseCode <Hl7.Fhir.Model.Narrative.NarrativeStatus>(reader, errors); } // Parse element div else if (atName == "div") { result.DivElement = XHtml.Parse(reader.ReadPrimitiveContents(typeof(XHtml))); } 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); }
/// <summary> /// Parse Ratio /// </summary> public static Hl7.Fhir.Model.Ratio ParseRatio(IFhirReader reader, ErrorList errors, Hl7.Fhir.Model.Ratio existingInstance = null) { Hl7.Fhir.Model.Ratio result = existingInstance != null ? existingInstance : new Hl7.Fhir.Model.Ratio(); 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 numerator else if (atName == "numerator") { result.Numerator = QuantityParser.ParseQuantity(reader, errors); } // Parse element denominator else if (atName == "denominator") { result.Denominator = QuantityParser.ParseQuantity(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); }
/// <summary> /// Parse Schedule /// </summary> public static Hl7.Fhir.Model.Schedule ParseSchedule(IFhirReader reader, ErrorList errors, Hl7.Fhir.Model.Schedule existingInstance = null ) { Hl7.Fhir.Model.Schedule result = existingInstance != null ? existingInstance : new Hl7.Fhir.Model.Schedule(); 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 event else if( atName == "event" ) { result.Event = new List<Hl7.Fhir.Model.Period>(); reader.EnterArray(); while( ParserUtils.IsAtArrayElement(reader, "event") ) result.Event.Add(PeriodParser.ParsePeriod(reader, errors)); reader.LeaveArray(); } // Parse element repeat else if( atName == "repeat" ) result.Repeat = ScheduleParser.ParseScheduleRepeatComponent(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; }
/// <summary> /// Parse ElementComponent /// </summary> public static Hl7.Fhir.Model.Profile.ElementComponent ParseElementComponent(IFhirReader reader, ErrorList errors, Hl7.Fhir.Model.Profile.ElementComponent existingInstance = null ) { Hl7.Fhir.Model.Profile.ElementComponent result = existingInstance != null ? existingInstance : new Hl7.Fhir.Model.Profile.ElementComponent(); 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 path else if( atName == "path" ) result.PathElement = FhirStringParser.ParseFhirString(reader, errors); // Parse element name else if( atName == "name" ) result.NameElement = FhirStringParser.ParseFhirString(reader, errors); // Parse element slicing else if( atName == "slicing" ) result.Slicing = ProfileParser.ParseElementSlicingComponent(reader, errors); // Parse element definition else if( atName == "definition" ) result.Definition = ProfileParser.ParseElementDefinitionComponent(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; }
internal static T Parse <T>(IFhirReader reader) where T : class { var result = Parse(reader); if (result is T) { return((T)result); } else { throw Error.Format("Parsed data is not of given type {0}", reader, typeof(T).Name); } }
public static bool IsAtFhirElement(IFhirReader reader, string name, bool isPolymorph = false) { string currElem = reader.CurrentElementName; if (!isPolymorph) { return(currElem == name); } else { return(currElem.StartsWith(name)); } }
public static Resource ParseContainedResource(IFhirReader reader, ErrorList errors) { Resource result = null; // Read into "contained" element reader.EnterElement(); result = FhirParser.ParseResource(reader, errors); // Exit from "contained" element reader.LeaveElement(); return(result); }
/// <summary> /// Parse AnimalComponent /// </summary> public static Hl7.Fhir.Model.Patient.AnimalComponent ParseAnimalComponent(IFhirReader reader, ErrorList errors, Hl7.Fhir.Model.Patient.AnimalComponent existingInstance = null ) { Hl7.Fhir.Model.Patient.AnimalComponent result = existingInstance != null ? existingInstance : new Hl7.Fhir.Model.Patient.AnimalComponent(); 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 species else if( atName == "species" ) result.Species = CodeableConceptParser.ParseCodeableConcept(reader, errors); // Parse element breed else if( atName == "breed" ) result.Breed = CodeableConceptParser.ParseCodeableConcept(reader, errors); // Parse element genderStatus else if( atName == "genderStatus" ) result.GenderStatus = CodeableConceptParser.ParseCodeableConcept(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; }
/// <summary> /// Parse ResourceReference /// </summary> public static Hl7.Fhir.Model.ResourceReference ParseResourceReference(IFhirReader reader, ErrorList errors, Hl7.Fhir.Model.ResourceReference existingInstance = null ) { Hl7.Fhir.Model.ResourceReference result = existingInstance != null ? existingInstance : new Hl7.Fhir.Model.ResourceReference(); 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 type else if( atName == "type" ) result.TypeElement = CodeParser.ParseCode(reader, errors); // Parse element reference else if( atName == "reference" ) result.ReferenceElement = FhirStringParser.ParseFhirString(reader, errors); // Parse element display else if( atName == "display" ) result.DisplayElement = 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; }
/// <summary> /// Parse base64Binary /// </summary> public static Hl7.Fhir.Model.Base64Binary ParseBase64Binary(IFhirReader reader, ErrorList errors, Hl7.Fhir.Model.Base64Binary existingInstance = null) { Hl7.Fhir.Model.Base64Binary result = existingInstance != null ? existingInstance : new Hl7.Fhir.Model.Base64Binary(); 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 value else if (atName == "value") { result.Value = Base64Binary.Parse(reader.ReadPrimitiveContents(typeof(Base64Binary))).Value; } 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); }
/// <summary> /// Parse Narrative /// </summary> public static Hl7.Fhir.Model.Narrative ParseNarrative(IFhirReader reader, ErrorList errors, Hl7.Fhir.Model.Narrative existingInstance = null ) { Hl7.Fhir.Model.Narrative result = existingInstance != null ? existingInstance : new Hl7.Fhir.Model.Narrative(); 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 status else if( atName == "status" ) result.StatusElement = CodeParser.ParseCode<Hl7.Fhir.Model.Narrative.NarrativeStatus>(reader, errors); // Parse element div else if( atName == "div" ) result.DivElement = XHtml.Parse(reader.ReadPrimitiveContents(typeof(XHtml))); 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; }
/// <summary> /// Parse Range /// </summary> public static Hl7.Fhir.Model.Range ParseRange(IFhirReader reader, ErrorList errors, Hl7.Fhir.Model.Range existingInstance = null ) { Hl7.Fhir.Model.Range result = existingInstance != null ? existingInstance : new Hl7.Fhir.Model.Range(); 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 low else if( atName == "low" ) result.Low = QuantityParser.ParseQuantity(reader, errors); // Parse element high else if( atName == "high" ) result.High = QuantityParser.ParseQuantity(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 static void verifyContinueOnEmptyElements(IFhirReader xfr) { Assert.AreEqual("x", xfr.CurrentElementName); xfr.EnterElement(); Assert.IsTrue(ParserUtils.IsAtFhirElement(xfr)); Assert.AreEqual("someElem", xfr.CurrentElementName); xfr.EnterElement(); Assert.IsTrue(xfr.HasMoreElements()); xfr.SkipSubElementsFor("someElem"); xfr.LeaveElement(); Assert.IsTrue(ParserUtils.IsAtFhirElement(xfr)); Assert.AreEqual("someElem2", xfr.CurrentElementName); xfr.EnterElement(); Assert.IsFalse(xfr.HasMoreElements()); xfr.LeaveElement(); xfr.LeaveElement(); }
private void forDoc() { FhirXmlParser parser = new FhirXmlParser(new ParserSettings { AcceptUnknownMembers = true }); IFhirReader xmlWithPatientData = null; var patient = parser.Parse <Patient>(xmlWithPatientData); // ----- ArtifactResolver source = ArtifactResolver.CreateCachedDefault(); var settings = new SnapshotGeneratorSettings { IgnoreMissingTypeProfiles = true }; StructureDefinition profile = null; var generator = new SnapshotGenerator(source, _settings); generator.Generate(profile); }
public Base Parse(IFhirReader reader, Type dataType) { if (reader == null) { throw Error.ArgumentNull(nameof(reader)); } if (dataType == null) { throw Error.ArgumentNull(nameof(dataType)); } if (dataType.CanBeTreatedAsType(typeof(Resource))) { return(new ResourceReader(reader, Settings).Deserialize()); } else { return(new ComplexTypeReader(reader, Settings).Deserialize(dataType)); } }
public RepeatingElementReader(IFhirReader reader) { _current = reader; _inspector = SerializationConfig.Inspector; }
public PrimitiveValueReader(IFhirReader data) { _current = data; _inspector = SerializationConfig.Inspector; }
/// <summary> /// Parse OperationOutcomeIssueComponent /// </summary> public static Hl7.Fhir.Model.OperationOutcome.OperationOutcomeIssueComponent ParseOperationOutcomeIssueComponent(IFhirReader reader, ErrorList errors, Hl7.Fhir.Model.OperationOutcome.OperationOutcomeIssueComponent existingInstance = null ) { Hl7.Fhir.Model.OperationOutcome.OperationOutcomeIssueComponent result = existingInstance != null ? existingInstance : new Hl7.Fhir.Model.OperationOutcome.OperationOutcomeIssueComponent(); 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 severity else if( atName == "severity" ) result.SeverityElement = CodeParser.ParseCode<Hl7.Fhir.Model.OperationOutcome.IssueSeverity>(reader, errors); // Parse element type else if( atName == "type" ) result.Type = CodingParser.ParseCoding(reader, errors); // Parse element details else if( atName == "details" ) result.DetailsElement = FhirStringParser.ParseFhirString(reader, errors); // Parse element location else if( atName == "location" ) { result.LocationElement = new List<Hl7.Fhir.Model.FhirString>(); reader.EnterArray(); while( ParserUtils.IsAtArrayElement(reader, "location") ) result.LocationElement.Add(FhirStringParser.ParseFhirString(reader, errors)); reader.LeaveArray(); } 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; }
/// <summary> /// Parse Identifier /// </summary> public static Hl7.Fhir.Model.Identifier ParseIdentifier(IFhirReader reader, ErrorList errors, Hl7.Fhir.Model.Identifier existingInstance = null) { Hl7.Fhir.Model.Identifier result = existingInstance != null ? existingInstance : new Hl7.Fhir.Model.Identifier(); 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 use else if (atName == "use") { result.UseElement = CodeParser.ParseCode <Hl7.Fhir.Model.Identifier.IdentifierUse>(reader, errors); } // Parse element label else if (atName == "label") { result.LabelElement = FhirStringParser.ParseFhirString(reader, errors); } // Parse element system else if (atName == "system") { result.SystemElement = FhirUriParser.ParseFhirUri(reader, errors); } // Parse element key else if (atName == "key") { result.KeyElement = FhirStringParser.ParseFhirString(reader, errors); } // Parse element period else if (atName == "period") { result.Period = PeriodParser.ParsePeriod(reader, errors); } // Parse element assigner else if (atName == "assigner") { result.Assigner = ResourceReferenceParser.ParseResourceReference(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); }
public T Parse <T>(IFhirReader reader) where T : Base { return((T)Parse(reader, typeof(T))); }
public ResourceReader(IFhirReader reader) { _reader = reader; _inspector = SerializationConfig.Inspector; }
/// <summary> /// Parse ConformanceRestResourceSearchParamComponent /// </summary> public static Hl7.Fhir.Model.Conformance.ConformanceRestResourceSearchParamComponent ParseConformanceRestResourceSearchParamComponent(IFhirReader reader, ErrorList errors, Hl7.Fhir.Model.Conformance.ConformanceRestResourceSearchParamComponent existingInstance = null ) { Hl7.Fhir.Model.Conformance.ConformanceRestResourceSearchParamComponent result = existingInstance != null ? existingInstance : new Hl7.Fhir.Model.Conformance.ConformanceRestResourceSearchParamComponent(); 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 name else if( atName == "name" ) result.NameElement = FhirStringParser.ParseFhirString(reader, errors); // Parse element source else if( atName == "source" ) result.SourceElement = FhirUriParser.ParseFhirUri(reader, errors); // Parse element type else if( atName == "type" ) result.TypeElement = CodeParser.ParseCode<Hl7.Fhir.Model.Conformance.SearchParamType>(reader, errors); // Parse element documentation else if( atName == "documentation" ) result.DocumentationElement = FhirStringParser.ParseFhirString(reader, errors); // Parse element xpath else if( atName == "xpath" ) result.XpathElement = FhirStringParser.ParseFhirString(reader, errors); // Parse element target else if( atName == "target" ) { result.TargetElement = new List<Hl7.Fhir.Model.Code>(); reader.EnterArray(); while( ParserUtils.IsAtArrayElement(reader, "target") ) result.TargetElement.Add(CodeParser.ParseCode(reader, errors)); reader.LeaveArray(); } // Parse element chain else if( atName == "chain" ) { result.ChainElement = new List<Hl7.Fhir.Model.FhirString>(); reader.EnterArray(); while( ParserUtils.IsAtArrayElement(reader, "chain") ) result.ChainElement.Add(FhirStringParser.ParseFhirString(reader, errors)); reader.LeaveArray(); } 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; }
/// <summary> /// Parse ConformanceMessagingEventComponent /// </summary> public static Hl7.Fhir.Model.Conformance.ConformanceMessagingEventComponent ParseConformanceMessagingEventComponent(IFhirReader reader, ErrorList errors, Hl7.Fhir.Model.Conformance.ConformanceMessagingEventComponent existingInstance = null ) { Hl7.Fhir.Model.Conformance.ConformanceMessagingEventComponent result = existingInstance != null ? existingInstance : new Hl7.Fhir.Model.Conformance.ConformanceMessagingEventComponent(); 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 code else if( atName == "code" ) result.CodeElement = CodeParser.ParseCode(reader, errors); // Parse element mode else if( atName == "mode" ) result.ModeElement = CodeParser.ParseCode<Hl7.Fhir.Model.Conformance.ConformanceEventMode>(reader, errors); // Parse element protocol else if( atName == "protocol" ) { result.Protocol = new List<Hl7.Fhir.Model.Coding>(); reader.EnterArray(); while( ParserUtils.IsAtArrayElement(reader, "protocol") ) result.Protocol.Add(CodingParser.ParseCoding(reader, errors)); reader.LeaveArray(); } // Parse element focus else if( atName == "focus" ) result.FocusElement = CodeParser.ParseCode(reader, errors); // Parse element request else if( atName == "request" ) result.Request = ResourceReferenceParser.ParseResourceReference(reader, errors); // Parse element response else if( atName == "response" ) result.Response = ResourceReferenceParser.ParseResourceReference(reader, errors); // Parse element documentation else if( atName == "documentation" ) result.DocumentationElement = 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; }
/// <summary> /// Parse Address /// </summary> public static Hl7.Fhir.Model.Address ParseAddress(IFhirReader reader, ErrorList errors, Hl7.Fhir.Model.Address existingInstance = null) { Hl7.Fhir.Model.Address result = existingInstance != null ? existingInstance : new Hl7.Fhir.Model.Address(); 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 use else if (atName == "use") { result.UseElement = CodeParser.ParseCode <Hl7.Fhir.Model.Address.AddressUse>(reader, errors); } // Parse element text else if (atName == "text") { result.TextElement = FhirStringParser.ParseFhirString(reader, errors); } // Parse element line else if (atName == "line") { result.LineElement = new List <Hl7.Fhir.Model.FhirString>(); reader.EnterArray(); while (ParserUtils.IsAtArrayElement(reader, "line")) { result.LineElement.Add(FhirStringParser.ParseFhirString(reader, errors)); } reader.LeaveArray(); } // Parse element city else if (atName == "city") { result.CityElement = FhirStringParser.ParseFhirString(reader, errors); } // Parse element state else if (atName == "state") { result.StateElement = FhirStringParser.ParseFhirString(reader, errors); } // Parse element zip else if (atName == "zip") { result.ZipElement = FhirStringParser.ParseFhirString(reader, errors); } // Parse element country else if (atName == "country") { result.CountryElement = FhirStringParser.ParseFhirString(reader, errors); } // Parse element period else if (atName == "period") { result.Period = PeriodParser.ParsePeriod(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); }
/// <summary> /// Parse Test /// </summary> public static Hl7.Fhir.Model.Test ParseTest(IFhirReader reader, ErrorList errors, Hl7.Fhir.Model.Test existingInstance = null) { Hl7.Fhir.Model.Test result = existingInstance != null ? existingInstance : new Hl7.Fhir.Model.Test(); try { string currentElementName = reader.CurrentElementName; reader.EnterElement(); while (reader.HasMoreElements()) { // Parse element extension if (ParserUtils.IsAtFhirElement(reader, "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 language else if (ParserUtils.IsAtFhirElement(reader, "language")) { result.Language = CodeParser.ParseCode(reader, errors); } // Parse element text else if (ParserUtils.IsAtFhirElement(reader, "text")) { result.Text = NarrativeParser.ParseNarrative(reader, errors); } // Parse element contained else if (ParserUtils.IsAtFhirElement(reader, "contained")) { result.Contained = new List <Hl7.Fhir.Model.Resource>(); reader.EnterArray(); while (ParserUtils.IsAtArrayElement(reader, "contained")) { result.Contained.Add(ParserUtils.ParseContainedResource(reader, errors)); } reader.LeaveArray(); } // Parse element _id else if (ParserUtils.IsAtFhirElement(reader, "_id")) { result.LocalId = Id.Parse(reader.ReadPrimitiveContents("id")); } // Parse element stringErr else if (ParserUtils.IsAtFhirElement(reader, "stringErr")) { result.StringErr = new List <Hl7.Fhir.Model.FhirString>(); reader.EnterArray(); while (ParserUtils.IsAtArrayElement(reader, "stringErr")) { result.StringErr.Add(FhirStringParser.ParseFhirString(reader, errors)); } reader.LeaveArray(); } // Parse element stringCorr else if (ParserUtils.IsAtFhirElement(reader, "stringCorr")) { result.StringCorr = new List <Hl7.Fhir.Model.FhirString>(); reader.EnterArray(); while (ParserUtils.IsAtArrayElement(reader, "stringCorr")) { result.StringCorr.Add(FhirStringParser.ParseFhirString(reader, errors)); } reader.LeaveArray(); } // Parse element booleanErr else if (ParserUtils.IsAtFhirElement(reader, "booleanErr")) { result.BooleanErr = new List <Hl7.Fhir.Model.FhirBoolean>(); reader.EnterArray(); while (ParserUtils.IsAtArrayElement(reader, "booleanErr")) { result.BooleanErr.Add(FhirBooleanParser.ParseFhirBoolean(reader, errors)); } reader.LeaveArray(); } // Parse element booleanCorr else if (ParserUtils.IsAtFhirElement(reader, "booleanCorr")) { result.BooleanCorr = new List <Hl7.Fhir.Model.FhirBoolean>(); reader.EnterArray(); while (ParserUtils.IsAtArrayElement(reader, "booleanCorr")) { result.BooleanCorr.Add(FhirBooleanParser.ParseFhirBoolean(reader, errors)); } reader.LeaveArray(); } // Parse element integerErr else if (ParserUtils.IsAtFhirElement(reader, "integerErr")) { result.IntegerErr = new List <Hl7.Fhir.Model.Integer>(); reader.EnterArray(); while (ParserUtils.IsAtArrayElement(reader, "integerErr")) { result.IntegerErr.Add(IntegerParser.ParseInteger(reader, errors)); } reader.LeaveArray(); } // Parse element integerCorr else if (ParserUtils.IsAtFhirElement(reader, "integerCorr")) { result.IntegerCorr = new List <Hl7.Fhir.Model.Integer>(); reader.EnterArray(); while (ParserUtils.IsAtArrayElement(reader, "integerCorr")) { result.IntegerCorr.Add(IntegerParser.ParseInteger(reader, errors)); } reader.LeaveArray(); } // Parse element decimalErr else if (ParserUtils.IsAtFhirElement(reader, "decimalErr")) { result.DecimalErr = new List <Hl7.Fhir.Model.FhirDecimal>(); reader.EnterArray(); while (ParserUtils.IsAtArrayElement(reader, "decimalErr")) { result.DecimalErr.Add(FhirDecimalParser.ParseFhirDecimal(reader, errors)); } reader.LeaveArray(); } // Parse element decimalCorr else if (ParserUtils.IsAtFhirElement(reader, "decimalCorr")) { result.DecimalCorr = new List <Hl7.Fhir.Model.FhirDecimal>(); reader.EnterArray(); while (ParserUtils.IsAtArrayElement(reader, "decimalCorr")) { result.DecimalCorr.Add(FhirDecimalParser.ParseFhirDecimal(reader, errors)); } reader.LeaveArray(); } // Parse element b64Err else if (ParserUtils.IsAtFhirElement(reader, "b64Err")) { result.B64Err = new List <Hl7.Fhir.Model.Base64Binary>(); reader.EnterArray(); while (ParserUtils.IsAtArrayElement(reader, "b64Err")) { result.B64Err.Add(Base64BinaryParser.ParseBase64Binary(reader, errors)); } reader.LeaveArray(); } // Parse element b64Corr else if (ParserUtils.IsAtFhirElement(reader, "b64Corr")) { result.B64Corr = new List <Hl7.Fhir.Model.Base64Binary>(); reader.EnterArray(); while (ParserUtils.IsAtArrayElement(reader, "b64Corr")) { result.B64Corr.Add(Base64BinaryParser.ParseBase64Binary(reader, errors)); } reader.LeaveArray(); } // Parse element instantErr else if (ParserUtils.IsAtFhirElement(reader, "instantErr")) { result.InstantErr = new List <Hl7.Fhir.Model.Instant>(); reader.EnterArray(); while (ParserUtils.IsAtArrayElement(reader, "instantErr")) { result.InstantErr.Add(InstantParser.ParseInstant(reader, errors)); } reader.LeaveArray(); } // Parse element instantCorr else if (ParserUtils.IsAtFhirElement(reader, "instantCorr")) { result.InstantCorr = new List <Hl7.Fhir.Model.Instant>(); reader.EnterArray(); while (ParserUtils.IsAtArrayElement(reader, "instantCorr")) { result.InstantCorr.Add(InstantParser.ParseInstant(reader, errors)); } reader.LeaveArray(); } // Parse element uriErr else if (ParserUtils.IsAtFhirElement(reader, "uriErr")) { result.UriErr = new List <Hl7.Fhir.Model.FhirUri>(); reader.EnterArray(); while (ParserUtils.IsAtArrayElement(reader, "uriErr")) { result.UriErr.Add(FhirUriParser.ParseFhirUri(reader, errors)); } reader.LeaveArray(); } // Parse element uriCorr else if (ParserUtils.IsAtFhirElement(reader, "uriCorr")) { result.UriCorr = new List <Hl7.Fhir.Model.FhirUri>(); reader.EnterArray(); while (ParserUtils.IsAtArrayElement(reader, "uriCorr")) { result.UriCorr.Add(FhirUriParser.ParseFhirUri(reader, errors)); } reader.LeaveArray(); } // Parse element idrefSingle else if (ParserUtils.IsAtFhirElement(reader, "idrefSingle")) { result.IdrefSingle = IdRefParser.ParseIdRef(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(); } catch (Exception ex) { errors.Add(ex.Message, reader); } return(result); }
/// <summary> /// Parse Distance /// </summary> public static Hl7.Fhir.Model.Distance ParseDistance(IFhirReader reader, ErrorList errors, Hl7.Fhir.Model.Distance existingInstance = null) { Hl7.Fhir.Model.Distance result = existingInstance != null ? existingInstance : new Hl7.Fhir.Model.Distance(); QuantityParser.ParseQuantity(reader, errors, result); return(result); }
/// <summary> /// Parse ConformanceRestSecurityComponent /// </summary> public static Hl7.Fhir.Model.Conformance.ConformanceRestSecurityComponent ParseConformanceRestSecurityComponent(IFhirReader reader, ErrorList errors, Hl7.Fhir.Model.Conformance.ConformanceRestSecurityComponent existingInstance = null ) { Hl7.Fhir.Model.Conformance.ConformanceRestSecurityComponent result = existingInstance != null ? existingInstance : new Hl7.Fhir.Model.Conformance.ConformanceRestSecurityComponent(); 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 service else if( atName == "service" ) { result.Service = new List<Hl7.Fhir.Model.CodeableConcept>(); reader.EnterArray(); while( ParserUtils.IsAtArrayElement(reader, "service") ) result.Service.Add(CodeableConceptParser.ParseCodeableConcept(reader, errors)); reader.LeaveArray(); } // Parse element description else if( atName == "description" ) result.DescriptionElement = FhirStringParser.ParseFhirString(reader, errors); // Parse element certificate else if( atName == "certificate" ) { result.Certificate = new List<Hl7.Fhir.Model.Conformance.ConformanceRestSecurityCertificateComponent>(); reader.EnterArray(); while( ParserUtils.IsAtArrayElement(reader, "certificate") ) result.Certificate.Add(ConformanceParser.ParseConformanceRestSecurityCertificateComponent(reader, errors)); reader.LeaveArray(); } 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; }
/// <summary> /// Parse AnatomicalLocation /// </summary> public static AnatomicalLocation ParseAnatomicalLocation(IFhirReader reader, ErrorList errors, AnatomicalLocation existingInstance = null ) { AnatomicalLocation result = existingInstance != null ? existingInstance : new AnatomicalLocation(); try { string currentElementName = reader.CurrentElementName; reader.EnterElement(); while (reader.HasMoreElements()) { // Parse element extension if( ParserUtils.IsAtFhirElement(reader, "extension") ) { result.Extension = new List<Extension>(); reader.EnterArray(); while( ParserUtils.IsAtArrayElement(reader, "extension") ) result.Extension.Add(ExtensionParser.ParseExtension(reader, errors)); reader.LeaveArray(); } // Parse element language else if( ParserUtils.IsAtFhirElement(reader, "language") ) result.Language = CodeParser.ParseCode(reader, errors); // Parse element text else if( ParserUtils.IsAtFhirElement(reader, "text") ) result.Text = NarrativeParser.ParseNarrative(reader, errors); // Parse element contained else if( ParserUtils.IsAtFhirElement(reader, "contained") ) { result.Contained = new List<Resource>(); reader.EnterArray(); while( ParserUtils.IsAtArrayElement(reader, "contained") ) result.Contained.Add(ParserUtils.ParseContainedResource(reader,errors)); reader.LeaveArray(); } // Parse element internalId else if( reader.IsAtRefIdElement() ) result.InternalId = Id.Parse(reader.ReadRefIdContents()); else { errors.Add(String.Format("Encountered unknown element {0} while parsing {1}", reader.CurrentElementName, currentElementName), reader); reader.SkipSubElementsFor(currentElementName); result = null; } } reader.LeaveElement(); } catch (Exception ex) { errors.Add(ex.Message, reader); } return result; }
public static bool IsPrimitive(this IFhirReader reader) { return(reader.CurrentToken == TokenType.Boolean || reader.CurrentToken == TokenType.Number || reader.CurrentToken == TokenType.String); }
/// <summary> /// Parse ConformanceMessagingComponent /// </summary> public static Hl7.Fhir.Model.Conformance.ConformanceMessagingComponent ParseConformanceMessagingComponent(IFhirReader reader, ErrorList errors, Hl7.Fhir.Model.Conformance.ConformanceMessagingComponent existingInstance = null ) { Hl7.Fhir.Model.Conformance.ConformanceMessagingComponent result = existingInstance != null ? existingInstance : new Hl7.Fhir.Model.Conformance.ConformanceMessagingComponent(); 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 endpoint else if( atName == "endpoint" ) result.EndpointElement = FhirUriParser.ParseFhirUri(reader, errors); // Parse element reliableCache else if( atName == "reliableCache" ) result.ReliableCacheElement = IntegerParser.ParseInteger(reader, errors); // Parse element documentation else if( atName == "documentation" ) result.DocumentationElement = FhirStringParser.ParseFhirString(reader, errors); // Parse element event else if( atName == "event" ) { result.Event = new List<Hl7.Fhir.Model.Conformance.ConformanceMessagingEventComponent>(); reader.EnterArray(); while( ParserUtils.IsAtArrayElement(reader, "event") ) result.Event.Add(ConformanceParser.ParseConformanceMessagingEventComponent(reader, errors)); reader.LeaveArray(); } 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; }
/// <summary> /// Parse Conformance /// </summary> public static Hl7.Fhir.Model.Conformance ParseConformance(IFhirReader reader, ErrorList errors, Hl7.Fhir.Model.Conformance existingInstance = null ) { Hl7.Fhir.Model.Conformance result = existingInstance != null ? existingInstance : new Hl7.Fhir.Model.Conformance(); 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 language else if( atName == "language" ) result.LanguageElement = CodeParser.ParseCode(reader, errors); // Parse element text else if( atName == "text" ) result.Text = NarrativeParser.ParseNarrative(reader, errors); // Parse element contained else if( atName == "contained" ) { result.Contained = new List<Hl7.Fhir.Model.Resource>(); reader.EnterArray(); while( ParserUtils.IsAtArrayElement(reader, "contained") ) result.Contained.Add(ParserUtils.ParseContainedResource(reader,errors)); reader.LeaveArray(); } // Parse element _id else if( atName == "_id" ) result.LocalIdElement = Id.Parse(reader.ReadPrimitiveContents(typeof(Id))); // Parse element identifier else if( atName == "identifier" ) result.IdentifierElement = FhirStringParser.ParseFhirString(reader, errors); // Parse element version else if( atName == "version" ) result.VersionElement = FhirStringParser.ParseFhirString(reader, errors); // Parse element name else if( atName == "name" ) result.NameElement = FhirStringParser.ParseFhirString(reader, errors); // Parse element publisher else if( atName == "publisher" ) result.PublisherElement = FhirStringParser.ParseFhirString(reader, errors); // Parse element telecom else if( atName == "telecom" ) { result.Telecom = new List<Hl7.Fhir.Model.Contact>(); reader.EnterArray(); while( ParserUtils.IsAtArrayElement(reader, "telecom") ) result.Telecom.Add(ContactParser.ParseContact(reader, errors)); reader.LeaveArray(); } // Parse element description else if( atName == "description" ) result.DescriptionElement = FhirStringParser.ParseFhirString(reader, errors); // Parse element status else if( atName == "status" ) result.StatusElement = CodeParser.ParseCode<Hl7.Fhir.Model.Conformance.ConformanceStatementStatus>(reader, errors); // Parse element experimental else if( atName == "experimental" ) result.ExperimentalElement = FhirBooleanParser.ParseFhirBoolean(reader, errors); // Parse element date else if( atName == "date" ) result.DateElement = FhirDateTimeParser.ParseFhirDateTime(reader, errors); // Parse element software else if( atName == "software" ) result.Software = ConformanceParser.ParseConformanceSoftwareComponent(reader, errors); // Parse element implementation else if( atName == "implementation" ) result.Implementation = ConformanceParser.ParseConformanceImplementationComponent(reader, errors); // Parse element fhirVersion else if( atName == "fhirVersion" ) result.FhirVersionElement = IdParser.ParseId(reader, errors); // Parse element acceptUnknown else if( atName == "acceptUnknown" ) result.AcceptUnknownElement = FhirBooleanParser.ParseFhirBoolean(reader, errors); // Parse element format else if( atName == "format" ) { result.FormatElement = new List<Hl7.Fhir.Model.Code>(); reader.EnterArray(); while( ParserUtils.IsAtArrayElement(reader, "format") ) result.FormatElement.Add(CodeParser.ParseCode(reader, errors)); reader.LeaveArray(); } // Parse element rest else if( atName == "rest" ) { result.Rest = new List<Hl7.Fhir.Model.Conformance.ConformanceRestComponent>(); reader.EnterArray(); while( ParserUtils.IsAtArrayElement(reader, "rest") ) result.Rest.Add(ConformanceParser.ParseConformanceRestComponent(reader, errors)); reader.LeaveArray(); } // Parse element messaging else if( atName == "messaging" ) { result.Messaging = new List<Hl7.Fhir.Model.Conformance.ConformanceMessagingComponent>(); reader.EnterArray(); while( ParserUtils.IsAtArrayElement(reader, "messaging") ) result.Messaging.Add(ConformanceParser.ParseConformanceMessagingComponent(reader, errors)); reader.LeaveArray(); } // Parse element document else if( atName == "document" ) { result.Document = new List<Hl7.Fhir.Model.Conformance.ConformanceDocumentComponent>(); reader.EnterArray(); while( ParserUtils.IsAtArrayElement(reader, "document") ) result.Document.Add(ConformanceParser.ParseConformanceDocumentComponent(reader, errors)); reader.LeaveArray(); } 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; }
/// <summary> /// Parse ConformanceRestComponent /// </summary> public static Hl7.Fhir.Model.Conformance.ConformanceRestComponent ParseConformanceRestComponent(IFhirReader reader, ErrorList errors, Hl7.Fhir.Model.Conformance.ConformanceRestComponent existingInstance = null ) { Hl7.Fhir.Model.Conformance.ConformanceRestComponent result = existingInstance != null ? existingInstance : new Hl7.Fhir.Model.Conformance.ConformanceRestComponent(); 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 mode else if( atName == "mode" ) result.ModeElement = CodeParser.ParseCode<Hl7.Fhir.Model.Conformance.RestfulConformanceMode>(reader, errors); // Parse element documentation else if( atName == "documentation" ) result.DocumentationElement = FhirStringParser.ParseFhirString(reader, errors); // Parse element security else if( atName == "security" ) result.Security = ConformanceParser.ParseConformanceRestSecurityComponent(reader, errors); // Parse element resource else if( atName == "resource" ) { result.Resource = new List<Hl7.Fhir.Model.Conformance.ConformanceRestResourceComponent>(); reader.EnterArray(); while( ParserUtils.IsAtArrayElement(reader, "resource") ) result.Resource.Add(ConformanceParser.ParseConformanceRestResourceComponent(reader, errors)); reader.LeaveArray(); } // Parse element batch else if( atName == "batch" ) result.BatchElement = FhirBooleanParser.ParseFhirBoolean(reader, errors); // Parse element history else if( atName == "history" ) result.HistoryElement = FhirBooleanParser.ParseFhirBoolean(reader, errors); // Parse element query else if( atName == "query" ) { result.Query = new List<Hl7.Fhir.Model.Conformance.ConformanceRestQueryComponent>(); reader.EnterArray(); while( ParserUtils.IsAtArrayElement(reader, "query") ) result.Query.Add(ConformanceParser.ParseConformanceRestQueryComponent(reader, errors)); reader.LeaveArray(); } 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; }
/// <summary> /// Parse MedicationDispenseDispenseDosageComponent /// </summary> public static Hl7.Fhir.Model.MedicationDispense.MedicationDispenseDispenseDosageComponent ParseMedicationDispenseDispenseDosageComponent(IFhirReader reader, ErrorList errors, Hl7.Fhir.Model.MedicationDispense.MedicationDispenseDispenseDosageComponent existingInstance = null) { Hl7.Fhir.Model.MedicationDispense.MedicationDispenseDispenseDosageComponent result = existingInstance != null ? existingInstance : new Hl7.Fhir.Model.MedicationDispense.MedicationDispenseDispenseDosageComponent(); 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 additionalInstructions else if (atName.StartsWith("additionalInstructions")) { result.AdditionalInstructions = FhirParser.ParseElement(reader, errors); } // Parse element timing else if (atName.StartsWith("timing")) { result.Timing = FhirParser.ParseElement(reader, errors); } // Parse element site else if (atName == "site") { result.Site = CodeableConceptParser.ParseCodeableConcept(reader, errors); } // Parse element route else if (atName == "route") { result.Route = CodeableConceptParser.ParseCodeableConcept(reader, errors); } // Parse element method else if (atName == "method") { result.Method = CodeableConceptParser.ParseCodeableConcept(reader, errors); } // Parse element quantity else if (atName == "quantity") { result.Quantity = QuantityParser.ParseQuantity(reader, errors); } // Parse element rate else if (atName == "rate") { result.Rate = RatioParser.ParseRatio(reader, errors); } // Parse element maxDosePerPeriod else if (atName == "maxDosePerPeriod") { result.MaxDosePerPeriod = RatioParser.ParseRatio(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); }
/// <summary> /// Parse ConformanceRestResourceComponent /// </summary> public static Hl7.Fhir.Model.Conformance.ConformanceRestResourceComponent ParseConformanceRestResourceComponent(IFhirReader reader, ErrorList errors, Hl7.Fhir.Model.Conformance.ConformanceRestResourceComponent existingInstance = null ) { Hl7.Fhir.Model.Conformance.ConformanceRestResourceComponent result = existingInstance != null ? existingInstance : new Hl7.Fhir.Model.Conformance.ConformanceRestResourceComponent(); 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 type else if( atName == "type" ) result.TypeElement = CodeParser.ParseCode(reader, errors); // Parse element profile else if( atName == "profile" ) result.Profile = ResourceReferenceParser.ParseResourceReference(reader, errors); // Parse element operation else if( atName == "operation" ) { result.Operation = new List<Hl7.Fhir.Model.Conformance.ConformanceRestResourceOperationComponent>(); reader.EnterArray(); while( ParserUtils.IsAtArrayElement(reader, "operation") ) result.Operation.Add(ConformanceParser.ParseConformanceRestResourceOperationComponent(reader, errors)); reader.LeaveArray(); } // Parse element readHistory else if( atName == "readHistory" ) result.ReadHistoryElement = FhirBooleanParser.ParseFhirBoolean(reader, errors); // Parse element searchInclude else if( atName == "searchInclude" ) { result.SearchIncludeElement = new List<Hl7.Fhir.Model.FhirString>(); reader.EnterArray(); while( ParserUtils.IsAtArrayElement(reader, "searchInclude") ) result.SearchIncludeElement.Add(FhirStringParser.ParseFhirString(reader, errors)); reader.LeaveArray(); } // Parse element searchParam else if( atName == "searchParam" ) { result.SearchParam = new List<Hl7.Fhir.Model.Conformance.ConformanceRestResourceSearchParamComponent>(); reader.EnterArray(); while( ParserUtils.IsAtArrayElement(reader, "searchParam") ) result.SearchParam.Add(ConformanceParser.ParseConformanceRestResourceSearchParamComponent(reader, errors)); reader.LeaveArray(); } 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; }
/// <summary> /// Parse MedicationDispenseSubstitutionComponent /// </summary> public static Hl7.Fhir.Model.MedicationDispense.MedicationDispenseSubstitutionComponent ParseMedicationDispenseSubstitutionComponent(IFhirReader reader, ErrorList errors, Hl7.Fhir.Model.MedicationDispense.MedicationDispenseSubstitutionComponent existingInstance = null) { Hl7.Fhir.Model.MedicationDispense.MedicationDispenseSubstitutionComponent result = existingInstance != null ? existingInstance : new Hl7.Fhir.Model.MedicationDispense.MedicationDispenseSubstitutionComponent(); 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 type else if (atName == "type") { result.Type = CodeableConceptParser.ParseCodeableConcept(reader, errors); } // Parse element reason else if (atName == "reason") { result.Reason = new List <Hl7.Fhir.Model.CodeableConcept>(); reader.EnterArray(); while (ParserUtils.IsAtArrayElement(reader, "reason")) { result.Reason.Add(CodeableConceptParser.ParseCodeableConcept(reader, errors)); } reader.LeaveArray(); } // Parse element responsibleParty else if (atName == "responsibleParty") { result.ResponsibleParty = new List <Hl7.Fhir.Model.ResourceReference>(); reader.EnterArray(); while (ParserUtils.IsAtArrayElement(reader, "responsibleParty")) { result.ResponsibleParty.Add(ResourceReferenceParser.ParseResourceReference(reader, errors)); } reader.LeaveArray(); } 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); }
/// <summary> /// Parse ConformanceRestSecurityCertificateComponent /// </summary> public static Hl7.Fhir.Model.Conformance.ConformanceRestSecurityCertificateComponent ParseConformanceRestSecurityCertificateComponent(IFhirReader reader, ErrorList errors, Hl7.Fhir.Model.Conformance.ConformanceRestSecurityCertificateComponent existingInstance = null ) { Hl7.Fhir.Model.Conformance.ConformanceRestSecurityCertificateComponent result = existingInstance != null ? existingInstance : new Hl7.Fhir.Model.Conformance.ConformanceRestSecurityCertificateComponent(); 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 type else if( atName == "type" ) result.TypeElement = CodeParser.ParseCode(reader, errors); // Parse element blob else if( atName == "blob" ) result.BlobElement = Base64BinaryParser.ParseBase64Binary(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; }
/// <summary> /// Parse MedicationDispenseDispenseComponent /// </summary> public static Hl7.Fhir.Model.MedicationDispense.MedicationDispenseDispenseComponent ParseMedicationDispenseDispenseComponent(IFhirReader reader, ErrorList errors, Hl7.Fhir.Model.MedicationDispense.MedicationDispenseDispenseComponent existingInstance = null) { Hl7.Fhir.Model.MedicationDispense.MedicationDispenseDispenseComponent result = existingInstance != null ? existingInstance : new Hl7.Fhir.Model.MedicationDispense.MedicationDispenseDispenseComponent(); 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 identifier else if (atName == "identifier") { result.Identifier = IdentifierParser.ParseIdentifier(reader, errors); } // Parse element status else if (atName == "status") { result.StatusElement = CodeParser.ParseCode <Hl7.Fhir.Model.MedicationDispense.MedicationDispenseStatus>(reader, errors); } // Parse element type else if (atName == "type") { result.Type = CodeableConceptParser.ParseCodeableConcept(reader, errors); } // Parse element quantity else if (atName == "quantity") { result.Quantity = QuantityParser.ParseQuantity(reader, errors); } // Parse element medication else if (atName == "medication") { result.Medication = ResourceReferenceParser.ParseResourceReference(reader, errors); } // Parse element whenPrepared else if (atName == "whenPrepared") { result.WhenPrepared = PeriodParser.ParsePeriod(reader, errors); } // Parse element whenHandedOver else if (atName == "whenHandedOver") { result.WhenHandedOver = PeriodParser.ParsePeriod(reader, errors); } // Parse element destination else if (atName == "destination") { result.Destination = ResourceReferenceParser.ParseResourceReference(reader, errors); } // Parse element receiver else if (atName == "receiver") { result.Receiver = new List <Hl7.Fhir.Model.ResourceReference>(); reader.EnterArray(); while (ParserUtils.IsAtArrayElement(reader, "receiver")) { result.Receiver.Add(ResourceReferenceParser.ParseResourceReference(reader, errors)); } reader.LeaveArray(); } // Parse element dosage else if (atName == "dosage") { result.Dosage = new List <Hl7.Fhir.Model.MedicationDispense.MedicationDispenseDispenseDosageComponent>(); reader.EnterArray(); while (ParserUtils.IsAtArrayElement(reader, "dosage")) { result.Dosage.Add(MedicationDispenseParser.ParseMedicationDispenseDispenseDosageComponent(reader, errors)); } reader.LeaveArray(); } 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); }
/// <summary> /// Parse ConformanceSoftwareComponent /// </summary> public static Hl7.Fhir.Model.Conformance.ConformanceSoftwareComponent ParseConformanceSoftwareComponent(IFhirReader reader, ErrorList errors, Hl7.Fhir.Model.Conformance.ConformanceSoftwareComponent existingInstance = null ) { Hl7.Fhir.Model.Conformance.ConformanceSoftwareComponent result = existingInstance != null ? existingInstance : new Hl7.Fhir.Model.Conformance.ConformanceSoftwareComponent(); 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 name else if( atName == "name" ) result.NameElement = FhirStringParser.ParseFhirString(reader, errors); // Parse element version else if( atName == "version" ) result.VersionElement = FhirStringParser.ParseFhirString(reader, errors); // Parse element releaseDate else if( atName == "releaseDate" ) result.ReleaseDateElement = FhirDateTimeParser.ParseFhirDateTime(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; }
/// <summary> /// Parse MedicationDispense /// </summary> public static Hl7.Fhir.Model.MedicationDispense ParseMedicationDispense(IFhirReader reader, ErrorList errors, Hl7.Fhir.Model.MedicationDispense existingInstance = null) { Hl7.Fhir.Model.MedicationDispense result = existingInstance != null ? existingInstance : new Hl7.Fhir.Model.MedicationDispense(); 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 language else if (atName == "language") { result.LanguageElement = CodeParser.ParseCode(reader, errors); } // Parse element text else if (atName == "text") { result.Text = NarrativeParser.ParseNarrative(reader, errors); } // Parse element contained else if (atName == "contained") { result.Contained = new List <Hl7.Fhir.Model.Resource>(); reader.EnterArray(); while (ParserUtils.IsAtArrayElement(reader, "contained")) { result.Contained.Add(ParserUtils.ParseContainedResource(reader, errors)); } reader.LeaveArray(); } // Parse element _id else if (atName == "_id") { result.LocalIdElement = Id.Parse(reader.ReadPrimitiveContents(typeof(Id))); } // Parse element identifier else if (atName == "identifier") { result.Identifier = IdentifierParser.ParseIdentifier(reader, errors); } // Parse element status else if (atName == "status") { result.StatusElement = CodeParser.ParseCode <Hl7.Fhir.Model.MedicationDispense.MedicationDispenseStatus>(reader, errors); } // Parse element patient else if (atName == "patient") { result.Patient = ResourceReferenceParser.ParseResourceReference(reader, errors); } // Parse element dispenser else if (atName == "dispenser") { result.Dispenser = ResourceReferenceParser.ParseResourceReference(reader, errors); } // Parse element authorizingPrescription else if (atName == "authorizingPrescription") { result.AuthorizingPrescription = new List <Hl7.Fhir.Model.ResourceReference>(); reader.EnterArray(); while (ParserUtils.IsAtArrayElement(reader, "authorizingPrescription")) { result.AuthorizingPrescription.Add(ResourceReferenceParser.ParseResourceReference(reader, errors)); } reader.LeaveArray(); } // Parse element dispense else if (atName == "dispense") { result.Dispense = new List <Hl7.Fhir.Model.MedicationDispense.MedicationDispenseDispenseComponent>(); reader.EnterArray(); while (ParserUtils.IsAtArrayElement(reader, "dispense")) { result.Dispense.Add(MedicationDispenseParser.ParseMedicationDispenseDispenseComponent(reader, errors)); } reader.LeaveArray(); } // Parse element substitution else if (atName == "substitution") { result.Substitution = MedicationDispenseParser.ParseMedicationDispenseSubstitutionComponent(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); }
/// <summary> /// Parse RelatedPerson /// </summary> public static Hl7.Fhir.Model.RelatedPerson ParseRelatedPerson(IFhirReader reader, ErrorList errors, Hl7.Fhir.Model.RelatedPerson existingInstance = null ) { Hl7.Fhir.Model.RelatedPerson result = existingInstance != null ? existingInstance : new Hl7.Fhir.Model.RelatedPerson(); 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 language else if( atName == "language" ) result.LanguageElement = CodeParser.ParseCode(reader, errors); // Parse element text else if( atName == "text" ) result.Text = NarrativeParser.ParseNarrative(reader, errors); // Parse element contained else if( atName == "contained" ) { result.Contained = new List<Hl7.Fhir.Model.Resource>(); reader.EnterArray(); while( ParserUtils.IsAtArrayElement(reader, "contained") ) result.Contained.Add(ParserUtils.ParseContainedResource(reader,errors)); reader.LeaveArray(); } // Parse element _id else if( atName == "_id" ) result.LocalIdElement = Id.Parse(reader.ReadPrimitiveContents(typeof(Id))); // Parse element identifier else if( atName == "identifier" ) { result.Identifier = new List<Hl7.Fhir.Model.Identifier>(); reader.EnterArray(); while( ParserUtils.IsAtArrayElement(reader, "identifier") ) result.Identifier.Add(IdentifierParser.ParseIdentifier(reader, errors)); reader.LeaveArray(); } // Parse element patient else if( atName == "patient" ) result.Patient = ResourceReferenceParser.ParseResourceReference(reader, errors); // Parse element relationship else if( atName == "relationship" ) result.Relationship = CodeableConceptParser.ParseCodeableConcept(reader, errors); // Parse element name else if( atName == "name" ) result.Name = HumanNameParser.ParseHumanName(reader, errors); // Parse element telecom else if( atName == "telecom" ) { result.Telecom = new List<Hl7.Fhir.Model.Contact>(); reader.EnterArray(); while( ParserUtils.IsAtArrayElement(reader, "telecom") ) result.Telecom.Add(ContactParser.ParseContact(reader, errors)); reader.LeaveArray(); } // Parse element gender else if( atName == "gender" ) result.Gender = CodeableConceptParser.ParseCodeableConcept(reader, errors); // Parse element address else if( atName == "address" ) result.Address = AddressParser.ParseAddress(reader, errors); // Parse element photo else if( atName == "photo" ) { result.Photo = new List<Hl7.Fhir.Model.Attachment>(); reader.EnterArray(); while( ParserUtils.IsAtArrayElement(reader, "photo") ) result.Photo.Add(AttachmentParser.ParseAttachment(reader, errors)); reader.LeaveArray(); } 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; }
/// <summary> /// Parse Group /// </summary> public static Hl7.Fhir.Model.Group ParseGroup(IFhirReader reader, ErrorList errors, Hl7.Fhir.Model.Group existingInstance = null ) { Hl7.Fhir.Model.Group result = existingInstance != null ? existingInstance : new Hl7.Fhir.Model.Group(); 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 language else if( atName == "language" ) result.LanguageElement = CodeParser.ParseCode(reader, errors); // Parse element text else if( atName == "text" ) result.Text = NarrativeParser.ParseNarrative(reader, errors); // Parse element contained else if( atName == "contained" ) { result.Contained = new List<Hl7.Fhir.Model.Resource>(); reader.EnterArray(); while( ParserUtils.IsAtArrayElement(reader, "contained") ) result.Contained.Add(ParserUtils.ParseContainedResource(reader,errors)); reader.LeaveArray(); } // Parse element _id else if( atName == "_id" ) result.LocalIdElement = Id.Parse(reader.ReadPrimitiveContents(typeof(Id))); // Parse element identifier else if( atName == "identifier" ) result.Identifier = IdentifierParser.ParseIdentifier(reader, errors); // Parse element type else if( atName == "type" ) result.TypeElement = CodeParser.ParseCode<Hl7.Fhir.Model.Group.GroupType>(reader, errors); // Parse element actual else if( atName == "actual" ) result.ActualElement = FhirBooleanParser.ParseFhirBoolean(reader, errors); // Parse element code else if( atName == "code" ) result.Code = CodeableConceptParser.ParseCodeableConcept(reader, errors); // Parse element name else if( atName == "name" ) result.NameElement = FhirStringParser.ParseFhirString(reader, errors); // Parse element quantity else if( atName == "quantity" ) result.QuantityElement = IntegerParser.ParseInteger(reader, errors); // Parse element characteristic else if( atName == "characteristic" ) { result.Characteristic = new List<Hl7.Fhir.Model.Group.GroupCharacteristicComponent>(); reader.EnterArray(); while( ParserUtils.IsAtArrayElement(reader, "characteristic") ) result.Characteristic.Add(GroupParser.ParseGroupCharacteristicComponent(reader, errors)); reader.LeaveArray(); } // Parse element member else if( atName == "member" ) { result.Member = new List<Hl7.Fhir.Model.ResourceReference>(); reader.EnterArray(); while( ParserUtils.IsAtArrayElement(reader, "member") ) result.Member.Add(ResourceReferenceParser.ParseResourceReference(reader, errors)); reader.LeaveArray(); } 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; }
public ComplexTypeReader(IFhirReader reader, ParserSettings settings) { _current = reader; _inspector = BaseFhirParser.Inspector; Settings = settings; }
public ComplexTypeReader(IFhirReader reader) { _current = reader; _inspector = SerializationConfig.Inspector; }