/// <summary> /// Parse Protocol /// </summary> public static Hl7.Fhir.Model.Protocol ParseProtocol(IFhirReader reader, ErrorList errors, Hl7.Fhir.Model.Protocol existingInstance = null) { Hl7.Fhir.Model.Protocol result = existingInstance != null ? existingInstance : new Hl7.Fhir.Model.Protocol(); 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 title else if (ParserUtils.IsAtFhirElement(reader, "title")) { result.Title = FhirStringParser.ParseFhirString(reader, errors); } // Parse element type else if (ParserUtils.IsAtFhirElement(reader, "type")) { result.Type = CodeParser.ParseCode <Hl7.Fhir.Model.Protocol.ProtocolType>(reader, errors); } // Parse element status else if (ParserUtils.IsAtFhirElement(reader, "status")) { result.Status = CodeParser.ParseCode <Hl7.Fhir.Model.Protocol.ProtocolStatus>(reader, errors); } // Parse element author else if (ParserUtils.IsAtFhirElement(reader, "author")) { result.Author = ResourceReferenceParser.ParseResourceReference(reader, errors); } // Parse element purpose else if (ParserUtils.IsAtFhirElement(reader, "purpose")) { result.Purpose = FhirStringParser.ParseFhirString(reader, errors); } // Parse element subject else if (ParserUtils.IsAtFhirElement(reader, "subject")) { result.Subject = ResourceReferenceParser.ParseResourceReference(reader, errors); } // Parse element group else if (ParserUtils.IsAtFhirElement(reader, "group")) { result.Group = ResourceReferenceParser.ParseResourceReference(reader, errors); } // Parse element step else if (ParserUtils.IsAtFhirElement(reader, "step")) { result.Step = new List <Hl7.Fhir.Model.Protocol.ProtocolStepComponent>(); reader.EnterArray(); while (ParserUtils.IsAtArrayElement(reader, "step")) { result.Step.Add(ProtocolParser.ParseProtocolStepComponent(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 ProtocolStepNextComponent /// </summary> public static Hl7.Fhir.Model.Protocol.ProtocolStepNextComponent ParseProtocolStepNextComponent(IFhirReader reader, ErrorList errors, Hl7.Fhir.Model.Protocol.ProtocolStepNextComponent existingInstance = null) { Hl7.Fhir.Model.Protocol.ProtocolStepNextComponent result = existingInstance != null ? existingInstance : new Hl7.Fhir.Model.Protocol.ProtocolStepNextComponent(); 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 _id else if (ParserUtils.IsAtFhirElement(reader, "_id")) { result.LocalId = Id.Parse(reader.ReadPrimitiveContents("id")); } // Parse element description else if (ParserUtils.IsAtFhirElement(reader, "description")) { result.Description = FhirStringParser.ParseFhirString(reader, errors); } // Parse element id else if (ParserUtils.IsAtFhirElement(reader, "id")) { result.Id = IdRefParser.ParseIdRef(reader, errors); } // Parse element condition else if (ParserUtils.IsAtFhirElement(reader, "condition")) { result.Condition = ProtocolParser.ParseProtocolStepPreconditionComponent(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 ProtocolStepActivityComponent /// </summary> public static Hl7.Fhir.Model.Protocol.ProtocolStepActivityComponent ParseProtocolStepActivityComponent(IFhirReader reader, ErrorList errors, Hl7.Fhir.Model.Protocol.ProtocolStepActivityComponent existingInstance = null) { Hl7.Fhir.Model.Protocol.ProtocolStepActivityComponent result = existingInstance != null ? existingInstance : new Hl7.Fhir.Model.Protocol.ProtocolStepActivityComponent(); 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 _id else if (ParserUtils.IsAtFhirElement(reader, "_id")) { result.LocalId = Id.Parse(reader.ReadPrimitiveContents("id")); } // Parse element alternative else if (ParserUtils.IsAtFhirElement(reader, "alternative")) { result.Alternative = new List <Hl7.Fhir.Model.IdRef>(); reader.EnterArray(); while (ParserUtils.IsAtArrayElement(reader, "alternative")) { result.Alternative.Add(IdRefParser.ParseIdRef(reader, errors)); } reader.LeaveArray(); } // Parse element component else if (ParserUtils.IsAtFhirElement(reader, "component")) { result.Component = new List <Hl7.Fhir.Model.Protocol.ProtocolStepActivityComponentComponent>(); reader.EnterArray(); while (ParserUtils.IsAtArrayElement(reader, "component")) { result.Component.Add(ProtocolParser.ParseProtocolStepActivityComponentComponent(reader, errors)); } reader.LeaveArray(); } // Parse element following else if (ParserUtils.IsAtFhirElement(reader, "following")) { result.Following = new List <Hl7.Fhir.Model.IdRef>(); reader.EnterArray(); while (ParserUtils.IsAtArrayElement(reader, "following")) { result.Following.Add(IdRefParser.ParseIdRef(reader, errors)); } reader.LeaveArray(); } // Parse element wait else if (ParserUtils.IsAtFhirElement(reader, "wait")) { result.Wait = DurationParser.ParseDuration(reader, errors); } // Parse element detail else if (ParserUtils.IsAtFhirElement(reader, "detail")) { result.Detail = ActivityDefinitionParser.ParseActivityDefinition(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); }