public void DownloadCompletedTest() { var completedQuestionaire = new Questionnaire { Status = Questionnaire.QuestionnaireStatus.Completed, Authored = "2013-08-13" }; client.Create(completedQuestionaire); Bundle bundle = client.Search<Questionnaire>(new string[] { "status=completed" }); Uri id = bundle.Entries.First().Id; Questionnaire questionnaire = client.Read<Questionnaire>(id).Resource; }
public void TestSummary() { var p = new Patient(); p.BirthDate = "1972-11-30"; // present in both summary and full p.Photo = new List<Attachment>() { new Attachment() { ContentType = "text/plain" } }; var full = FhirSerializer.SerializeResourceToXml(p); Assert.IsTrue(full.Contains("<birthDate")); Assert.IsTrue(full.Contains("<photo")); var summ = FhirSerializer.SerializeResourceToXml(p, summary: true); Assert.IsTrue(summ.Contains("<birthDate")); Assert.IsFalse(summ.Contains("<photo")); var q = new Questionnaire(); q.Status = Questionnaire.QuestionnaireStatus.Published; q.Date = "2015-09-27"; q.Group = new Questionnaire.GroupComponent(); q.Group.Title = "TITLE"; q.Group.Text = "TEXT"; q.Group.LinkId = "linkid"; var qfull = FhirSerializer.SerializeResourceToXml(q); Console.WriteLine(qfull); Assert.IsTrue(qfull.Contains("<status value=\"published\"")); Assert.IsTrue(qfull.Contains("<date value=\"2015-09-27\"")); Assert.IsTrue(qfull.Contains("<title value=\"TITLE\"")); Assert.IsTrue(qfull.Contains("<text value=\"TEXT\"")); Assert.IsTrue(qfull.Contains("<linkId value=\"linkid\"")); var qSum = FhirSerializer.SerializeResourceToXml(q, summary: true); Console.WriteLine(qSum); Assert.IsTrue(qSum.Contains("<status value=\"published\"")); Assert.IsTrue(qSum.Contains("<date value=\"2015-09-27\"")); Assert.IsTrue(qSum.Contains("<title value=\"TITLE\"")); Assert.IsFalse(qSum.Contains("<text value=\"TEXT\"")); Assert.IsFalse(qSum.Contains("<linkId value=\"linkid\"")); }
static void Main() { var qDødsmelding = new Hl7.Fhir.Model.Questionnaire { Id = "7", Title = "Dødsmelding", Name = "doedsmelding_nb_01", Description = new Markdown("Melding som rapporterer dødsfall til Folkeregisteret"), Purpose = new Markdown("Melding som skal fylles ut av lege ved dødsfall"), Publisher = "Direktoratet for e-helse", Date = "2017", Status = PublicationStatus.Draft, Version = "1", Url = "http://nde-fhir-ehelse.azurewebsites.net/fhir/Questionnaire/7", Language = "nb-NO", Meta = new Meta() { Tag = new List <Coding>() { new Coding() { System = "https://sarepta.ehelse.no/FHIR/Questionnaire_doedsmelding", Version = "1.0", }, new Coding() { System = "urn:ietf:bcp:47", Code = "nb-NO", Display = "Norsk (bokmål)" } }, Profile = new List <string>() { "https://sarepta.ehelse.no/FHIR/StructureDefinition/SDF-Questionnaire" } }, SubjectType = new List <ResourceType?>() { ResourceType.Person }, Item = new List <Hl7.Fhir.Model.Questionnaire.ItemComponent>() { new Hl7.Fhir.Model.Questionnaire.ItemComponent() { LinkId = "deceasedPerson", Text = "Personidentifikator til den avdøde", Required = true, Repeats = false, Type = Hl7.Fhir.Model.Questionnaire.QuestionnaireItemType.Text, FhirComments = new List <string>() { "PersonPicker" }, }, new Hl7.Fhir.Model.Questionnaire.ItemComponent() { LinkId = "timeOfDeath", Text = "Dødstidspunkt (dd.mm.åååå)", Required = true, Repeats = false, Type = Hl7.Fhir.Model.Questionnaire.QuestionnaireItemType.DateTime }, new Hl7.Fhir.Model.Questionnaire.ItemComponent() { LinkId = "confirmation", EnableWhen = new List <Hl7.Fhir.Model.Questionnaire.EnableWhenComponent>() { new Hl7.Fhir.Model.Questionnaire.EnableWhenComponent() { Question = "timeOfDeath", HasAnswer = true } }, Text = "Bekreftelse", Required = true, Repeats = false, Type = Hl7.Fhir.Model.Questionnaire.QuestionnaireItemType.Boolean } } }; const string fhirServer = "http://nde-fhir-ehelse.azurewebsites.net/fhir"; //const string fhirServer = "http://vonk.furore.com"; var client = new FhirClient(fhirServer); try { //var resCreate = client.Create(qDødsmelding); var resCreate = client.Update(qDødsmelding); Console.WriteLine($"Questionnaire ID: {resCreate.Id}"); } catch (Exception e) { Console.WriteLine(e.Message); } Console.WriteLine("Finished..."); }
public static void SerializeQuestionnaire(Hl7.Fhir.Model.Questionnaire value, IFhirWriter writer, bool summary) { writer.WriteStartRootObject("Questionnaire"); 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 authored if (value.AuthoredElement != null) { writer.WriteStartElement("authored"); FhirDateTimeSerializer.SerializeFhirDateTime(value.AuthoredElement, writer, summary); writer.WriteEndElement(); } // Serialize element subject if (value.Subject != null) { writer.WriteStartElement("subject"); ResourceReferenceSerializer.SerializeResourceReference(value.Subject, writer, summary); writer.WriteEndElement(); } // Serialize element author if (value.Author != null) { writer.WriteStartElement("author"); ResourceReferenceSerializer.SerializeResourceReference(value.Author, writer, summary); writer.WriteEndElement(); } // Serialize element source if (value.Source != null) { writer.WriteStartElement("source"); ResourceReferenceSerializer.SerializeResourceReference(value.Source, writer, summary); writer.WriteEndElement(); } // Serialize element name if (value.Name != null) { writer.WriteStartElement("name"); CodeableConceptSerializer.SerializeCodeableConcept(value.Name, writer, summary); writer.WriteEndElement(); } // Serialize element identifier if (value.Identifier != null) { writer.WriteStartElement("identifier"); IdentifierSerializer.SerializeIdentifier(value.Identifier, writer, summary); writer.WriteEndElement(); } // Serialize element encounter if (value.Encounter != null) { writer.WriteStartElement("encounter"); ResourceReferenceSerializer.SerializeResourceReference(value.Encounter, writer, summary); writer.WriteEndElement(); } // Serialize element question if (value.Question != null && !summary && value.Question.Count > 0) { writer.WriteStartArrayElement("question"); foreach (var item in value.Question) { writer.WriteStartArrayMember("question"); QuestionnaireSerializer.SerializeQuestionComponent(item, writer, summary); writer.WriteEndArrayMember(); } writer.WriteEndArrayElement(); } // Serialize element group if (value.Group != null && !summary && value.Group.Count > 0) { writer.WriteStartArrayElement("group"); foreach (var item in value.Group) { writer.WriteStartArrayMember("group"); QuestionnaireSerializer.SerializeGroupComponent(item, writer, summary); writer.WriteEndArrayMember(); } writer.WriteEndArrayElement(); } writer.WriteEndComplexContent(); writer.WriteEndRootObject(); }
/// <summary> /// Parse Questionnaire /// </summary> public static Hl7.Fhir.Model.Questionnaire ParseQuestionnaire(IFhirReader reader, ErrorList errors, Hl7.Fhir.Model.Questionnaire existingInstance = null) { Hl7.Fhir.Model.Questionnaire result = existingInstance != null ? existingInstance : new Hl7.Fhir.Model.Questionnaire(); 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 authored else if (atName == "authored") { result.AuthoredElement = FhirDateTimeParser.ParseFhirDateTime(reader, errors); } // Parse element subject else if (atName == "subject") { result.Subject = ResourceReferenceParser.ParseResourceReference(reader, errors); } // Parse element author else if (atName == "author") { result.Author = ResourceReferenceParser.ParseResourceReference(reader, errors); } // Parse element source else if (atName == "source") { result.Source = ResourceReferenceParser.ParseResourceReference(reader, errors); } // Parse element name else if (atName == "name") { result.Name = CodeableConceptParser.ParseCodeableConcept(reader, errors); } // Parse element identifier else if (atName == "identifier") { result.Identifier = IdentifierParser.ParseIdentifier(reader, errors); } // Parse element encounter else if (atName == "encounter") { result.Encounter = ResourceReferenceParser.ParseResourceReference(reader, errors); } // Parse element question else if (atName == "question") { result.Question = new List <Hl7.Fhir.Model.Questionnaire.QuestionComponent>(); reader.EnterArray(); while (ParserUtils.IsAtArrayElement(reader, "question")) { result.Question.Add(QuestionnaireParser.ParseQuestionComponent(reader, errors)); } reader.LeaveArray(); } // Parse element group else if (atName == "group") { result.Group = new List <Hl7.Fhir.Model.Questionnaire.GroupComponent>(); reader.EnterArray(); while (ParserUtils.IsAtArrayElement(reader, "group")) { result.Group.Add(QuestionnaireParser.ParseGroupComponent(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); }