/// <summary> /// Parse Device /// </summary> public static Hl7.Fhir.Model.Device ParseDevice(IFhirReader reader, ErrorList errors, Hl7.Fhir.Model.Device existingInstance = null) { Hl7.Fhir.Model.Device result = existingInstance != null ? existingInstance : new Hl7.Fhir.Model.Device(); 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 type else if (atName == "type") { result.Type = CodeableConceptParser.ParseCodeableConcept(reader, errors); } // Parse element manufacturer else if (atName == "manufacturer") { result.ManufacturerElement = FhirStringParser.ParseFhirString(reader, errors); } // Parse element model else if (atName == "model") { result.ModelElement = FhirStringParser.ParseFhirString(reader, errors); } // Parse element version else if (atName == "version") { result.VersionElement = FhirStringParser.ParseFhirString(reader, errors); } // Parse element expiry else if (atName == "expiry") { result.ExpiryElement = DateParser.ParseDate(reader, errors); } // Parse element identity else if (atName == "identity") { result.Identity = DeviceParser.ParseDeviceIdentityComponent(reader, errors); } // Parse element owner else if (atName == "owner") { result.Owner = ResourceReferenceParser.ParseResourceReference(reader, errors); } // Parse element assignedId else if (atName == "assignedId") { result.AssignedId = new List <Hl7.Fhir.Model.Identifier>(); reader.EnterArray(); while (ParserUtils.IsAtArrayElement(reader, "assignedId")) { result.AssignedId.Add(IdentifierParser.ParseIdentifier(reader, errors)); } reader.LeaveArray(); } // Parse element location else if (atName == "location") { result.Location = ResourceReferenceParser.ParseResourceReference(reader, errors); } // Parse element patient else if (atName == "patient") { result.Patient = ResourceReferenceParser.ParseResourceReference(reader, errors); } // Parse element contact else if (atName == "contact") { result.Contact = new List <Hl7.Fhir.Model.Contact>(); reader.EnterArray(); while (ParserUtils.IsAtArrayElement(reader, "contact")) { result.Contact.Add(ContactParser.ParseContact(reader, errors)); } reader.LeaveArray(); } // Parse element url else if (atName == "url") { result.UrlElement = FhirUriParser.ParseFhirUri(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 Organization /// </summary> public static Hl7.Fhir.Model.Organization ParseOrganization(IFhirReader reader, ErrorList errors, Hl7.Fhir.Model.Organization existingInstance = null) { Hl7.Fhir.Model.Organization result = existingInstance != null ? existingInstance : new Hl7.Fhir.Model.Organization(); 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 name else if (atName == "name") { result.NameElement = FhirStringParser.ParseFhirString(reader, errors); } // Parse element type else if (atName == "type") { result.Type = CodeableConceptParser.ParseCodeableConcept(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 address else if (atName == "address") { result.Address = new List <Hl7.Fhir.Model.Address>(); reader.EnterArray(); while (ParserUtils.IsAtArrayElement(reader, "address")) { result.Address.Add(AddressParser.ParseAddress(reader, errors)); } reader.LeaveArray(); } // Parse element partOf else if (atName == "partOf") { result.PartOf = ResourceReferenceParser.ParseResourceReference(reader, errors); } // Parse element contact else if (atName == "contact") { result.Contact = new List <Hl7.Fhir.Model.Organization.OrganizationContactComponent>(); reader.EnterArray(); while (ParserUtils.IsAtArrayElement(reader, "contact")) { result.Contact.Add(OrganizationParser.ParseOrganizationContactComponent(reader, errors)); } reader.LeaveArray(); } // Parse element active else if (atName == "active") { result.ActiveElement = 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 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 Practitioner /// </summary> public static Hl7.Fhir.Model.Practitioner ParsePractitioner(IFhirReader reader, ErrorList errors, Hl7.Fhir.Model.Practitioner existingInstance = null) { Hl7.Fhir.Model.Practitioner result = existingInstance != null ? existingInstance : new Hl7.Fhir.Model.Practitioner(); 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 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 address else if (atName == "address") { result.Address = AddressParser.ParseAddress(reader, errors); } // Parse element gender else if (atName == "gender") { result.Gender = CodeableConceptParser.ParseCodeableConcept(reader, errors); } // Parse element birthDate else if (atName == "birthDate") { result.BirthDateElement = FhirDateTimeParser.ParseFhirDateTime(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(); } // Parse element organization else if (atName == "organization") { result.Organization = ResourceReferenceParser.ParseResourceReference(reader, errors); } // Parse element role else if (atName == "role") { result.Role = new List <Hl7.Fhir.Model.CodeableConcept>(); reader.EnterArray(); while (ParserUtils.IsAtArrayElement(reader, "role")) { result.Role.Add(CodeableConceptParser.ParseCodeableConcept(reader, errors)); } reader.LeaveArray(); } // Parse element specialty else if (atName == "specialty") { result.Specialty = new List <Hl7.Fhir.Model.CodeableConcept>(); reader.EnterArray(); while (ParserUtils.IsAtArrayElement(reader, "specialty")) { result.Specialty.Add(CodeableConceptParser.ParseCodeableConcept(reader, errors)); } reader.LeaveArray(); } // Parse element period else if (atName == "period") { result.Period = PeriodParser.ParsePeriod(reader, errors); } // Parse element qualification else if (atName == "qualification") { result.Qualification = new List <Hl7.Fhir.Model.Practitioner.PractitionerQualificationComponent>(); reader.EnterArray(); while (ParserUtils.IsAtArrayElement(reader, "qualification")) { result.Qualification.Add(PractitionerParser.ParsePractitionerQualificationComponent(reader, errors)); } reader.LeaveArray(); } // Parse element communication else if (atName == "communication") { result.Communication = new List <Hl7.Fhir.Model.CodeableConcept>(); reader.EnterArray(); while (ParserUtils.IsAtArrayElement(reader, "communication")) { result.Communication.Add(CodeableConceptParser.ParseCodeableConcept(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 OrganizationContactComponent /// </summary> public static Hl7.Fhir.Model.Organization.OrganizationContactComponent ParseOrganizationContactComponent(IFhirReader reader, ErrorList errors, Hl7.Fhir.Model.Organization.OrganizationContactComponent existingInstance = null) { Hl7.Fhir.Model.Organization.OrganizationContactComponent result = existingInstance != null ? existingInstance : new Hl7.Fhir.Model.Organization.OrganizationContactComponent(); 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 purpose else if (atName == "purpose") { result.Purpose = 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 address else if (atName == "address") { result.Address = AddressParser.ParseAddress(reader, errors); } // Parse element gender else if (atName == "gender") { result.Gender = 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 MessageSourceComponent /// </summary> public static Hl7.Fhir.Model.Message.MessageSourceComponent ParseMessageSourceComponent(IFhirReader reader, ErrorList errors, Hl7.Fhir.Model.Message.MessageSourceComponent existingInstance = null) { Hl7.Fhir.Model.Message.MessageSourceComponent result = existingInstance != null ? existingInstance : new Hl7.Fhir.Model.Message.MessageSourceComponent(); 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 software else if (atName == "software") { result.SoftwareElement = FhirStringParser.ParseFhirString(reader, errors); } // Parse element version else if (atName == "version") { result.VersionElement = FhirStringParser.ParseFhirString(reader, errors); } // Parse element contact else if (atName == "contact") { result.Contact = ContactParser.ParseContact(reader, errors); } // Parse element endpoint else if (atName == "endpoint") { result.EndpointElement = FhirUriParser.ParseFhirUri(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 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 Demographics /// </summary> public static Hl7.Fhir.Model.Demographics ParseDemographics(IFhirReader reader, ErrorList errors, Hl7.Fhir.Model.Demographics existingInstance = null) { Hl7.Fhir.Model.Demographics result = existingInstance != null ? existingInstance : new Hl7.Fhir.Model.Demographics(); try { 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.LocalId = 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 name else if (atName == "name") { result.Name = new List <Hl7.Fhir.Model.HumanName>(); reader.EnterArray(); while (ParserUtils.IsAtArrayElement(reader, "name")) { result.Name.Add(HumanNameParser.ParseHumanName(reader, errors)); } reader.LeaveArray(); } // 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 birthDate else if (atName == "birthDate") { result.BirthDate = FhirDateTimeParser.ParseFhirDateTime(reader, errors); } // Parse element deceased else if (atName == "deceased") { result.Deceased = FhirBooleanParser.ParseFhirBoolean(reader, errors); } // Parse element address else if (atName == "address") { result.Address = new List <Hl7.Fhir.Model.Address>(); reader.EnterArray(); while (ParserUtils.IsAtArrayElement(reader, "address")) { result.Address.Add(AddressParser.ParseAddress(reader, errors)); } reader.LeaveArray(); } // 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(); } // Parse element maritalStatus else if (atName == "maritalStatus") { result.MaritalStatus = CodeableConceptParser.ParseCodeableConcept(reader, errors); } // Parse element language else if (atName == "language") { result.Language = new List <Hl7.Fhir.Model.Demographics.DemographicsLanguageComponent>(); reader.EnterArray(); while (ParserUtils.IsAtArrayElement(reader, "language")) { result.Language.Add(DemographicsParser.ParseDemographicsLanguageComponent(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(); } catch (Exception ex) { errors.Add(ex.Message, reader); } return(result); }
/// <summary> /// Parse XdsEntryAuthorComponent /// </summary> public static XdsEntry.XdsEntryAuthorComponent ParseXdsEntryAuthorComponent(IFhirReader reader, ErrorList errors, XdsEntry.XdsEntryAuthorComponent existingInstance = null) { XdsEntry.XdsEntryAuthorComponent result = existingInstance != null ? existingInstance : new XdsEntry.XdsEntryAuthorComponent(); 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 internalId else if (reader.IsAtRefIdElement()) { result.InternalId = Id.Parse(reader.ReadRefIdContents()); } // Parse element name else if (ParserUtils.IsAtFhirElement(reader, "name")) { result.Name = HumanNameParser.ParseHumanName(reader, errors); } // Parse element id else if (ParserUtils.IsAtFhirElement(reader, "id")) { result.Id = IdentifierParser.ParseIdentifier(reader, errors); } // Parse element role else if (ParserUtils.IsAtFhirElement(reader, "role")) { result.Role = new List <FhirString>(); reader.EnterArray(); while (ParserUtils.IsAtArrayElement(reader, "role")) { result.Role.Add(FhirStringParser.ParseFhirString(reader, errors)); } reader.LeaveArray(); } // Parse element specialty else if (ParserUtils.IsAtFhirElement(reader, "specialty")) { result.Specialty = new List <FhirString>(); reader.EnterArray(); while (ParserUtils.IsAtArrayElement(reader, "specialty")) { result.Specialty.Add(FhirStringParser.ParseFhirString(reader, errors)); } reader.LeaveArray(); } // Parse element institution else if (ParserUtils.IsAtFhirElement(reader, "institution")) { result.Institution = new List <XdsEntry.XdsEntryAuthorInstitutionComponent>(); reader.EnterArray(); while (ParserUtils.IsAtArrayElement(reader, "institution")) { result.Institution.Add(XdsEntryParser.ParseXdsEntryAuthorInstitutionComponent(reader, errors)); } reader.LeaveArray(); } // Parse element contact else if (ParserUtils.IsAtFhirElement(reader, "contact")) { result.Contact = new List <Contact>(); reader.EnterArray(); while (ParserUtils.IsAtArrayElement(reader, "contact")) { result.Contact.Add(ContactParser.ParseContact(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(); } catch (Exception ex) { errors.Add(ex.Message, reader); } return(result); }
/// <summary> /// Parse ValueSet /// </summary> public static Hl7.Fhir.Model.ValueSet ParseValueSet(IFhirReader reader, ErrorList errors, Hl7.Fhir.Model.ValueSet existingInstance = null) { Hl7.Fhir.Model.ValueSet result = existingInstance != null ? existingInstance : new Hl7.Fhir.Model.ValueSet(); 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 copyright else if (atName == "copyright") { result.CopyrightElement = FhirStringParser.ParseFhirString(reader, errors); } // Parse element status else if (atName == "status") { result.StatusElement = CodeParser.ParseCode <Hl7.Fhir.Model.ValueSet.ValueSetStatus>(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 define else if (atName == "define") { result.Define = ValueSetParser.ParseValueSetDefineComponent(reader, errors); } // Parse element compose else if (atName == "compose") { result.Compose = ValueSetParser.ParseValueSetComposeComponent(reader, errors); } // Parse element expansion else if (atName == "expansion") { result.Expansion = ValueSetParser.ParseValueSetExpansionComponent(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 Patient /// </summary> public static Hl7.Fhir.Model.Patient ParsePatient(IFhirReader reader, ErrorList errors, Hl7.Fhir.Model.Patient existingInstance = null) { Hl7.Fhir.Model.Patient result = existingInstance != null ? existingInstance : new Hl7.Fhir.Model.Patient(); 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 name else if (atName == "name") { result.Name = new List <Hl7.Fhir.Model.HumanName>(); reader.EnterArray(); while (ParserUtils.IsAtArrayElement(reader, "name")) { result.Name.Add(HumanNameParser.ParseHumanName(reader, errors)); } reader.LeaveArray(); } // 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 birthDate else if (atName == "birthDate") { result.BirthDateElement = FhirDateTimeParser.ParseFhirDateTime(reader, errors); } // Parse element deceased else if (atName.StartsWith("deceased")) { result.Deceased = FhirParser.ParseElement(reader, errors); } // Parse element address else if (atName == "address") { result.Address = new List <Hl7.Fhir.Model.Address>(); reader.EnterArray(); while (ParserUtils.IsAtArrayElement(reader, "address")) { result.Address.Add(AddressParser.ParseAddress(reader, errors)); } reader.LeaveArray(); } // Parse element maritalStatus else if (atName == "maritalStatus") { result.MaritalStatus = CodeableConceptParser.ParseCodeableConcept(reader, errors); } // Parse element multipleBirth else if (atName.StartsWith("multipleBirth")) { result.MultipleBirth = FhirParser.ParseElement(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(); } // Parse element contact else if (atName == "contact") { result.Contact = new List <Hl7.Fhir.Model.Patient.ContactComponent>(); reader.EnterArray(); while (ParserUtils.IsAtArrayElement(reader, "contact")) { result.Contact.Add(PatientParser.ParseContactComponent(reader, errors)); } reader.LeaveArray(); } // Parse element animal else if (atName == "animal") { result.Animal = PatientParser.ParseAnimalComponent(reader, errors); } // Parse element communication else if (atName == "communication") { result.Communication = new List <Hl7.Fhir.Model.CodeableConcept>(); reader.EnterArray(); while (ParserUtils.IsAtArrayElement(reader, "communication")) { result.Communication.Add(CodeableConceptParser.ParseCodeableConcept(reader, errors)); } reader.LeaveArray(); } // Parse element provider else if (atName == "provider") { result.Provider = ResourceReferenceParser.ParseResourceReference(reader, errors); } // Parse element link else if (atName == "link") { result.Link = new List <Hl7.Fhir.Model.ResourceReference>(); reader.EnterArray(); while (ParserUtils.IsAtArrayElement(reader, "link")) { result.Link.Add(ResourceReferenceParser.ParseResourceReference(reader, errors)); } reader.LeaveArray(); } // Parse element active else if (atName == "active") { result.ActiveElement = 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); }
internal static Element ParseElement(IFhirReader reader, ErrorList errors) { try { reader.MoveToContent(); if (ParserUtils.IsAtFhirElementEndingWith(reader, "Age")) { return(AgeParser.ParseAge(reader, errors)); } else if (ParserUtils.IsAtFhirElementEndingWith(reader, "Count")) { return(CountParser.ParseCount(reader, errors)); } else if (ParserUtils.IsAtFhirElementEndingWith(reader, "Distance")) { return(DistanceParser.ParseDistance(reader, errors)); } else if (ParserUtils.IsAtFhirElementEndingWith(reader, "Duration")) { return(DurationParser.ParseDuration(reader, errors)); } else if (ParserUtils.IsAtFhirElementEndingWith(reader, "Money")) { return(MoneyParser.ParseMoney(reader, errors)); } else if (ParserUtils.IsAtFhirElementEndingWith(reader, "Address")) { return(AddressParser.ParseAddress(reader, errors)); } else if (ParserUtils.IsAtFhirElementEndingWith(reader, "Attachment")) { return(AttachmentParser.ParseAttachment(reader, errors)); } else if (ParserUtils.IsAtFhirElementEndingWith(reader, "Choice")) { return(ChoiceParser.ParseChoice(reader, errors)); } else if (ParserUtils.IsAtFhirElementEndingWith(reader, "CodeableConcept")) { return(CodeableConceptParser.ParseCodeableConcept(reader, errors)); } else if (ParserUtils.IsAtFhirElementEndingWith(reader, "Coding")) { return(CodingParser.ParseCoding(reader, errors)); } else if (ParserUtils.IsAtFhirElementEndingWith(reader, "Contact")) { return(ContactParser.ParseContact(reader, errors)); } else if (ParserUtils.IsAtFhirElementEndingWith(reader, "Extension")) { return(ExtensionParser.ParseExtension(reader, errors)); } else if (ParserUtils.IsAtFhirElementEndingWith(reader, "HumanName")) { return(HumanNameParser.ParseHumanName(reader, errors)); } else if (ParserUtils.IsAtFhirElementEndingWith(reader, "Identifier")) { return(IdentifierParser.ParseIdentifier(reader, errors)); } else if (ParserUtils.IsAtFhirElementEndingWith(reader, "Narrative")) { return(NarrativeParser.ParseNarrative(reader, errors)); } else if (ParserUtils.IsAtFhirElementEndingWith(reader, "Period")) { return(PeriodParser.ParsePeriod(reader, errors)); } else if (ParserUtils.IsAtFhirElementEndingWith(reader, "Quantity")) { return(QuantityParser.ParseQuantity(reader, errors)); } else if (ParserUtils.IsAtFhirElementEndingWith(reader, "Range")) { return(RangeParser.ParseRange(reader, errors)); } else if (ParserUtils.IsAtFhirElementEndingWith(reader, "Ratio")) { return(RatioParser.ParseRatio(reader, errors)); } else if (ParserUtils.IsAtFhirElementEndingWith(reader, "Resource")) { return(ResourceReferenceParser.ParseResourceReference(reader, errors)); } else if (ParserUtils.IsAtFhirElementEndingWith(reader, "SampledData")) { return(SampledDataParser.ParseSampledData(reader, errors)); } else if (ParserUtils.IsAtFhirElementEndingWith(reader, "Schedule")) { return(ScheduleParser.ParseSchedule(reader, errors)); } else if (ParserUtils.IsAtFhirElementEndingWith(reader, "Base64Binary")) { return(Base64BinaryParser.ParseBase64Binary(reader, errors)); } else if (ParserUtils.IsAtFhirElementEndingWith(reader, "Boolean")) { return(FhirBooleanParser.ParseFhirBoolean(reader, errors)); } else if (ParserUtils.IsAtFhirElementEndingWith(reader, "Code")) { return(CodeParser.ParseCode(reader, errors)); } else if (ParserUtils.IsAtFhirElementEndingWith(reader, "Date")) { return(DateParser.ParseDate(reader, errors)); } else if (ParserUtils.IsAtFhirElementEndingWith(reader, "DateTime")) { return(FhirDateTimeParser.ParseFhirDateTime(reader, errors)); } else if (ParserUtils.IsAtFhirElementEndingWith(reader, "Decimal")) { return(FhirDecimalParser.ParseFhirDecimal(reader, errors)); } else if (ParserUtils.IsAtFhirElementEndingWith(reader, "Id")) { return(IdParser.ParseId(reader, errors)); } else if (ParserUtils.IsAtFhirElementEndingWith(reader, "Idref")) { return(IdRefParser.ParseIdRef(reader, errors)); } else if (ParserUtils.IsAtFhirElementEndingWith(reader, "Instant")) { return(InstantParser.ParseInstant(reader, errors)); } else if (ParserUtils.IsAtFhirElementEndingWith(reader, "Integer")) { return(IntegerParser.ParseInteger(reader, errors)); } else if (ParserUtils.IsAtFhirElementEndingWith(reader, "Oid")) { return(OidParser.ParseOid(reader, errors)); } else if (ParserUtils.IsAtFhirElementEndingWith(reader, "String")) { return(FhirStringParser.ParseFhirString(reader, errors)); } else if (ParserUtils.IsAtFhirElementEndingWith(reader, "Uri")) { return(FhirUriParser.ParseFhirUri(reader, errors)); } else if (ParserUtils.IsAtFhirElementEndingWith(reader, "Uuid")) { return(UuidParser.ParseUuid(reader, errors)); } else if (ParserUtils.IsAtFhirElementEndingWith(reader, "Xhtml")) { return(XHtmlParser.ParseXHtml(reader, errors)); } else { errors.Add(String.Format("Encountered unrecognized datatype '{0}'", reader.CurrentElementName), reader); reader.SkipSubElementsFor(reader.CurrentElementName); return(null); } } catch (Exception xe) { errors.Add(xe.Message, reader); return(null); } }