/// <summary> /// Parse XdsEntry2 /// </summary> public static XdsEntry2 ParseXdsEntry2(IFhirReader reader, ErrorList errors, XdsEntry2 existingInstance = null) { XdsEntry2 result = existingInstance != null ? existingInstance : new XdsEntry2(); 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()); } // Parse element id else if (ParserUtils.IsAtFhirElement(reader, "id")) { result.Id = IdentifierParser.ParseIdentifier(reader, errors); } // Parse element information else if (ParserUtils.IsAtFhirElement(reader, "information")) { result.Information = DocumentInformationParser.ParseDocumentInformation(reader, errors); } // Parse element format else if (ParserUtils.IsAtFhirElement(reader, "format")) { result.Format = CodingParser.ParseCoding(reader, errors); } // Parse element availability else if (ParserUtils.IsAtFhirElement(reader, "availability")) { result.Availability = CodeParser.ParseCode(reader, errors); } // Parse element folder else if (ParserUtils.IsAtFhirElement(reader, "folder")) { result.Folder = new List <ResourceReference>(); reader.EnterArray(); while (ParserUtils.IsAtArrayElement(reader, "folder")) { result.Folder.Add(ResourceReferenceParser.ParseResourceReference(reader, errors)); } reader.LeaveArray(); } // Parse element subject else if (ParserUtils.IsAtFhirElement(reader, "subject")) { result.Subject = ResourceReferenceParser.ParseResourceReference(reader, errors); } // Parse element content else if (ParserUtils.IsAtFhirElement(reader, "content")) { result.Content = AttachmentParser.ParseAttachment(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); }
public static void SerializeXdsEntry2(XdsEntry2 value, IFhirWriter writer) { writer.WriteStartRootObject("XdsEntry2"); writer.WriteStartComplexContent(); // Serialize element's localId attribute if( value.InternalId != null && !String.IsNullOrEmpty(value.InternalId.Contents) ) writer.WriteRefIdContents(value.InternalId.Contents); // Serialize element extension if(value.Extension != null && value.Extension.Count > 0) { writer.WriteStartArrayElement("extension"); foreach(var item in value.Extension) { writer.WriteStartArrayMember("extension"); ExtensionSerializer.SerializeExtension(item, writer); writer.WriteEndArrayMember(); } writer.WriteEndArrayElement(); } // Serialize element language if(value.Language != null) { writer.WriteStartElement("language"); CodeSerializer.SerializeCode(value.Language, writer); writer.WriteEndElement(); } // Serialize element text if(value.Text != null) { writer.WriteStartElement("text"); NarrativeSerializer.SerializeNarrative(value.Text, writer); writer.WriteEndElement(); } // Serialize element contained if(value.Contained != null && value.Contained.Count > 0) { writer.WriteStartArrayElement("contained"); foreach(var item in value.Contained) { writer.WriteStartArrayMember("contained"); FhirSerializer.SerializeResource(item, writer); writer.WriteEndArrayMember(); } writer.WriteEndArrayElement(); } // Serialize element id if(value.Id != null) { writer.WriteStartElement("id"); IdentifierSerializer.SerializeIdentifier(value.Id, writer); writer.WriteEndElement(); } // Serialize element information if(value.Information != null) { writer.WriteStartElement("information"); DocumentInformationSerializer.SerializeDocumentInformation(value.Information, writer); writer.WriteEndElement(); } // Serialize element format if(value.Format != null) { writer.WriteStartElement("format"); CodingSerializer.SerializeCoding(value.Format, writer); writer.WriteEndElement(); } // Serialize element availability if(value.Availability != null) { writer.WriteStartElement("availability"); CodeSerializer.SerializeCode(value.Availability, writer); writer.WriteEndElement(); } // Serialize element folder if(value.Folder != null && value.Folder.Count > 0) { writer.WriteStartArrayElement("folder"); foreach(var item in value.Folder) { writer.WriteStartArrayMember("folder"); ResourceReferenceSerializer.SerializeResourceReference(item, writer); writer.WriteEndArrayMember(); } writer.WriteEndArrayElement(); } // Serialize element subject if(value.Subject != null) { writer.WriteStartElement("subject"); ResourceReferenceSerializer.SerializeResourceReference(value.Subject, writer); writer.WriteEndElement(); } // Serialize element content if(value.Content != null) { writer.WriteStartElement("content"); AttachmentSerializer.SerializeAttachment(value.Content, writer); writer.WriteEndElement(); } writer.WriteEndComplexContent(); writer.WriteEndRootObject(); }
/// <summary> /// Parse XdsEntry2 /// </summary> public static XdsEntry2 ParseXdsEntry2(IFhirReader reader, ErrorList errors, XdsEntry2 existingInstance = null ) { XdsEntry2 result = existingInstance != null ? existingInstance : new XdsEntry2(); 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()); // Parse element id else if( ParserUtils.IsAtFhirElement(reader, "id") ) result.Id = IdentifierParser.ParseIdentifier(reader, errors); // Parse element information else if( ParserUtils.IsAtFhirElement(reader, "information") ) result.Information = DocumentInformationParser.ParseDocumentInformation(reader, errors); // Parse element format else if( ParserUtils.IsAtFhirElement(reader, "format") ) result.Format = CodingParser.ParseCoding(reader, errors); // Parse element availability else if( ParserUtils.IsAtFhirElement(reader, "availability") ) result.Availability = CodeParser.ParseCode(reader, errors); // Parse element folder else if( ParserUtils.IsAtFhirElement(reader, "folder") ) { result.Folder = new List<ResourceReference>(); reader.EnterArray(); while( ParserUtils.IsAtArrayElement(reader, "folder") ) result.Folder.Add(ResourceReferenceParser.ParseResourceReference(reader, errors)); reader.LeaveArray(); } // Parse element subject else if( ParserUtils.IsAtFhirElement(reader, "subject") ) result.Subject = ResourceReferenceParser.ParseResourceReference(reader, errors); // Parse element content else if( ParserUtils.IsAtFhirElement(reader, "content") ) result.Content = AttachmentParser.ParseAttachment(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; }
public static void SerializeXdsEntry2(XdsEntry2 value, IFhirWriter writer) { writer.WriteStartRootObject("XdsEntry2"); writer.WriteStartComplexContent(); // Serialize element's localId attribute if (value.InternalId != null && !String.IsNullOrEmpty(value.InternalId.Contents)) { writer.WriteRefIdContents(value.InternalId.Contents); } // Serialize element extension if (value.Extension != null && value.Extension.Count > 0) { writer.WriteStartArrayElement("extension"); foreach (var item in value.Extension) { writer.WriteStartArrayMember("extension"); ExtensionSerializer.SerializeExtension(item, writer); writer.WriteEndArrayMember(); } writer.WriteEndArrayElement(); } // Serialize element language if (value.Language != null) { writer.WriteStartElement("language"); CodeSerializer.SerializeCode(value.Language, writer); writer.WriteEndElement(); } // Serialize element text if (value.Text != null) { writer.WriteStartElement("text"); NarrativeSerializer.SerializeNarrative(value.Text, writer); writer.WriteEndElement(); } // Serialize element contained if (value.Contained != null && value.Contained.Count > 0) { writer.WriteStartArrayElement("contained"); foreach (var item in value.Contained) { writer.WriteStartArrayMember("contained"); FhirSerializer.SerializeResource(item, writer); writer.WriteEndArrayMember(); } writer.WriteEndArrayElement(); } // Serialize element id if (value.Id != null) { writer.WriteStartElement("id"); IdentifierSerializer.SerializeIdentifier(value.Id, writer); writer.WriteEndElement(); } // Serialize element information if (value.Information != null) { writer.WriteStartElement("information"); DocumentInformationSerializer.SerializeDocumentInformation(value.Information, writer); writer.WriteEndElement(); } // Serialize element format if (value.Format != null) { writer.WriteStartElement("format"); CodingSerializer.SerializeCoding(value.Format, writer); writer.WriteEndElement(); } // Serialize element availability if (value.Availability != null) { writer.WriteStartElement("availability"); CodeSerializer.SerializeCode(value.Availability, writer); writer.WriteEndElement(); } // Serialize element folder if (value.Folder != null && value.Folder.Count > 0) { writer.WriteStartArrayElement("folder"); foreach (var item in value.Folder) { writer.WriteStartArrayMember("folder"); ResourceReferenceSerializer.SerializeResourceReference(item, writer); writer.WriteEndArrayMember(); } writer.WriteEndArrayElement(); } // Serialize element subject if (value.Subject != null) { writer.WriteStartElement("subject"); ResourceReferenceSerializer.SerializeResourceReference(value.Subject, writer); writer.WriteEndElement(); } // Serialize element content if (value.Content != null) { writer.WriteStartElement("content"); AttachmentSerializer.SerializeAttachment(value.Content, writer); writer.WriteEndElement(); } writer.WriteEndComplexContent(); writer.WriteEndRootObject(); }