public Bundle SetBundleResult(OrderResponse orderResp, DiagnosticReport diagReport, Observation observ, Practitioner pract) { Bundle bundle = new Bundle(); bundle.Meta = new Meta() { Profile = new string[] { MetaBundleResult } }; bundle.Entry = new List<Bundle.BundleEntryComponent>(); if (orderResp != null) { Bundle.BundleEntryComponent component = new Bundle.BundleEntryComponent { Resource = orderResp, Transaction = new Bundle.BundleEntryTransactionComponent { Method = Bundle.HTTPVerb.POST, Url = "OrderResponse" } }; bundle.Entry.Add(component); } if (diagReport != null) { Bundle.BundleEntryComponent component = new Bundle.BundleEntryComponent { Resource = diagReport, Transaction = new Bundle.BundleEntryTransactionComponent() { Method = Bundle.HTTPVerb.POST, Url = "DiagnosticReport" } }; bundle.Entry.Add(component); } if (observ != null) { Bundle.BundleEntryComponent component = new Bundle.BundleEntryComponent() { Resource = observ, Transaction = new Bundle.BundleEntryTransactionComponent() { Method = Bundle.HTTPVerb.POST, Url = "Observation" } }; bundle.Entry.Add(component); } //необязательный параметр if (pract != null) { Bundle.BundleEntryComponent component = new Bundle.BundleEntryComponent { Resource = pract, Transaction = new Bundle.BundleEntryTransactionComponent { Method = Bundle.HTTPVerb.POST, Url = "Practitioner" } }; bundle.Entry.Add(component); } return bundle; }
public void ValidateResourceWithIncorrectChildElement() { FhirDateTime dt = new FhirDateTime(); dt.Value = "Ewout Kramer"; Observation o = new Observation { Applies = dt }; DiagnosticReport rep = new DiagnosticReport(); rep.Contained = new List<Resource> { o }; validateErrorOrFail(rep); }
/// <summary> /// Parse DiagnosticReport /// </summary> public static Hl7.Fhir.Model.DiagnosticReport ParseDiagnosticReport(IFhirReader reader, ErrorList errors, Hl7.Fhir.Model.DiagnosticReport existingInstance = null) { Hl7.Fhir.Model.DiagnosticReport result = existingInstance != null ? existingInstance : new Hl7.Fhir.Model.DiagnosticReport(); 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 status else if (atName == "status") { result.StatusElement = CodeParser.ParseCode <Hl7.Fhir.Model.ObservationStatus>(reader, errors); } // Parse element issued else if (atName == "issued") { result.IssuedElement = FhirDateTimeParser.ParseFhirDateTime(reader, errors); } // Parse element subject else if (atName == "subject") { result.Subject = ResourceReferenceParser.ParseResourceReference(reader, errors); } // Parse element performer else if (atName == "performer") { result.Performer = ResourceReferenceParser.ParseResourceReference(reader, errors); } // Parse element reportId else if (atName == "reportId") { result.ReportId = IdentifierParser.ParseIdentifier(reader, errors); } // Parse element requestDetail else if (atName == "requestDetail") { result.RequestDetail = new List <Hl7.Fhir.Model.DiagnosticReport.DiagnosticReportRequestDetailComponent>(); reader.EnterArray(); while (ParserUtils.IsAtArrayElement(reader, "requestDetail")) { result.RequestDetail.Add(DiagnosticReportParser.ParseDiagnosticReportRequestDetailComponent(reader, errors)); } reader.LeaveArray(); } // Parse element serviceCategory else if (atName == "serviceCategory") { result.ServiceCategory = CodeableConceptParser.ParseCodeableConcept(reader, errors); } // Parse element diagnosticTime else if (atName == "diagnosticTime") { result.DiagnosticTimeElement = FhirDateTimeParser.ParseFhirDateTime(reader, errors); } // Parse element results else if (atName == "results") { result.Results = DiagnosticReportParser.ParseResultGroupComponent(reader, errors); } // Parse element image else if (atName == "image") { result.Image = new List <Hl7.Fhir.Model.ResourceReference>(); reader.EnterArray(); while (ParserUtils.IsAtArrayElement(reader, "image")) { result.Image.Add(ResourceReferenceParser.ParseResourceReference(reader, errors)); } reader.LeaveArray(); } // Parse element conclusion else if (atName == "conclusion") { result.ConclusionElement = FhirStringParser.ParseFhirString(reader, errors); } // Parse element codedDiagnosis else if (atName == "codedDiagnosis") { result.CodedDiagnosis = new List <Hl7.Fhir.Model.CodeableConcept>(); reader.EnterArray(); while (ParserUtils.IsAtArrayElement(reader, "codedDiagnosis")) { result.CodedDiagnosis.Add(CodeableConceptParser.ParseCodeableConcept(reader, errors)); } reader.LeaveArray(); } // Parse element representation else if (atName == "representation") { result.Representation = new List <Hl7.Fhir.Model.Attachment>(); reader.EnterArray(); while (ParserUtils.IsAtArrayElement(reader, "representation")) { result.Representation.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); }
private static void validateDiagReportAttributes(ErrorList errors, DiagnosticReport rep) { Assert.IsTrue(errors.Count() == 0, errors.ToString()); Assert.IsNotNull(rep); Assert.AreEqual("2011-03-04T08:30:00+11:00", rep.DiagnosticTime.ToString()); Assert.AreEqual(17, rep.Contained.Count); Assert.AreEqual(17, rep.Results.Result.Count); Assert.IsNotNull(rep.Contained[1] as Observation); Observation obs1 = (Observation)rep.Contained[1]; Assert.AreEqual(typeof(Quantity), obs1.Value.GetType()); Assert.AreEqual((decimal)5.9, (obs1.Value as Quantity).Value.Value); Assert.IsNotNull(rep.Contained[8] as Observation); Observation obs8 = (Observation)rep.Contained[8]; Assert.AreEqual("Neutrophils", obs8.Name.Coding[0].Display); }
public static void SerializeDiagnosticReport(Hl7.Fhir.Model.DiagnosticReport value, IFhirWriter writer, bool summary) { writer.WriteStartRootObject("DiagnosticReport"); writer.WriteStartComplexContent(); // Serialize element _id if (value.LocalIdElement != null) { writer.WritePrimitiveContents("_id", value.LocalIdElement, XmlSerializationHint.Attribute); } // Serialize element extension if (value.Extension != null && !summary && value.Extension.Count > 0) { writer.WriteStartArrayElement("extension"); foreach (var item in value.Extension) { writer.WriteStartArrayMember("extension"); ExtensionSerializer.SerializeExtension(item, writer, summary); writer.WriteEndArrayMember(); } writer.WriteEndArrayElement(); } // Serialize element language if (value.LanguageElement != null && !summary) { writer.WriteStartElement("language"); CodeSerializer.SerializeCode(value.LanguageElement, writer, summary); writer.WriteEndElement(); } // Serialize element text if (value.Text != null && !summary) { writer.WriteStartElement("text"); NarrativeSerializer.SerializeNarrative(value.Text, writer, summary); writer.WriteEndElement(); } // Serialize element contained if (value.Contained != null && !summary && value.Contained.Count > 0) { writer.WriteStartArrayElement("contained"); foreach (var item in value.Contained) { writer.WriteStartArrayMember("contained"); FhirSerializer.SerializeResource(item, writer, summary); writer.WriteEndArrayMember(); } writer.WriteEndArrayElement(); } // Serialize element status if (value.StatusElement != null) { writer.WriteStartElement("status"); CodeSerializer.SerializeCode <Hl7.Fhir.Model.ObservationStatus>(value.StatusElement, writer, summary); writer.WriteEndElement(); } // Serialize element issued if (value.IssuedElement != null) { writer.WriteStartElement("issued"); FhirDateTimeSerializer.SerializeFhirDateTime(value.IssuedElement, writer, summary); writer.WriteEndElement(); } // Serialize element subject if (value.Subject != null) { writer.WriteStartElement("subject"); ResourceReferenceSerializer.SerializeResourceReference(value.Subject, writer, summary); writer.WriteEndElement(); } // Serialize element performer if (value.Performer != null) { writer.WriteStartElement("performer"); ResourceReferenceSerializer.SerializeResourceReference(value.Performer, writer, summary); writer.WriteEndElement(); } // Serialize element reportId if (value.ReportId != null) { writer.WriteStartElement("reportId"); IdentifierSerializer.SerializeIdentifier(value.ReportId, writer, summary); writer.WriteEndElement(); } // Serialize element requestDetail if (value.RequestDetail != null && !summary && value.RequestDetail.Count > 0) { writer.WriteStartArrayElement("requestDetail"); foreach (var item in value.RequestDetail) { writer.WriteStartArrayMember("requestDetail"); DiagnosticReportSerializer.SerializeDiagnosticReportRequestDetailComponent(item, writer, summary); writer.WriteEndArrayMember(); } writer.WriteEndArrayElement(); } // Serialize element serviceCategory if (value.ServiceCategory != null) { writer.WriteStartElement("serviceCategory"); CodeableConceptSerializer.SerializeCodeableConcept(value.ServiceCategory, writer, summary); writer.WriteEndElement(); } // Serialize element diagnosticTime if (value.DiagnosticTimeElement != null) { writer.WriteStartElement("diagnosticTime"); FhirDateTimeSerializer.SerializeFhirDateTime(value.DiagnosticTimeElement, writer, summary); writer.WriteEndElement(); } // Serialize element results if (value.Results != null && !summary) { writer.WriteStartElement("results"); DiagnosticReportSerializer.SerializeResultGroupComponent(value.Results, writer, summary); writer.WriteEndElement(); } // Serialize element image if (value.Image != null && !summary && value.Image.Count > 0) { writer.WriteStartArrayElement("image"); foreach (var item in value.Image) { writer.WriteStartArrayMember("image"); ResourceReferenceSerializer.SerializeResourceReference(item, writer, summary); writer.WriteEndArrayMember(); } writer.WriteEndArrayElement(); } // Serialize element conclusion if (value.ConclusionElement != null && !summary) { writer.WriteStartElement("conclusion"); FhirStringSerializer.SerializeFhirString(value.ConclusionElement, writer, summary); writer.WriteEndElement(); } // Serialize element codedDiagnosis if (value.CodedDiagnosis != null && !summary && value.CodedDiagnosis.Count > 0) { writer.WriteStartArrayElement("codedDiagnosis"); foreach (var item in value.CodedDiagnosis) { writer.WriteStartArrayMember("codedDiagnosis"); CodeableConceptSerializer.SerializeCodeableConcept(item, writer, summary); writer.WriteEndArrayMember(); } writer.WriteEndArrayElement(); } // Serialize element representation if (value.Representation != null && !summary && value.Representation.Count > 0) { writer.WriteStartArrayElement("representation"); foreach (var item in value.Representation) { writer.WriteStartArrayMember("representation"); AttachmentSerializer.SerializeAttachment(item, writer, summary); writer.WriteEndArrayMember(); } writer.WriteEndArrayElement(); } writer.WriteEndComplexContent(); writer.WriteEndRootObject(); }
public void ValidateResourceWithIncorrectElement() { FhirDateTime dt = new FhirDateTime(); dt.Value = "Ewout Kramer"; Observation o = new Observation { Applies = dt }; DiagnosticReport rep = new DiagnosticReport(); rep.Contained = new List<Resource> { o }; var errors = dt.Validate(); Assert.IsTrue(errors.Count == 1); }