public static ItemTypes.Address ToHealthVault(this Hl7.Fhir.Model.Address address) { if ((string.IsNullOrEmpty(address.City)) || (string.IsNullOrWhiteSpace(address.Line.ToString())) || (string.IsNullOrWhiteSpace(address.PostalCode)) || (string.IsNullOrWhiteSpace(address.Country))) { return(null); } var hvAddress = new ItemTypes.Address(); foreach (var line in address.Line) { hvAddress.Street.Add(line); } hvAddress.City = address.City; hvAddress.State = address.State; hvAddress.County = address.District; hvAddress.PostalCode = address.PostalCode; if (!string.IsNullOrEmpty(address.Country)) { hvAddress.Country = address.Country; } hvAddress.Description = address.Text; hvAddress.IsPrimary = address.GetBoolExtension(HealthVaultExtensions.IsPrimary); return(hvAddress); }
public void WhenAddressTransformedToFhir_ThenValuesEqual() { var address = new ItemTypes.Address { Description = "John's Office Address", IsPrimary = true, Street = { "1", "Microsoft Way" }, City = "KEENE", State = "California", Country = "US", PostalCode = "93531", County = "NorthWest" }; var fhirAddress = address.ToFhir(); Assert.IsNotNull(fhirAddress); Assert.AreEqual(address.Description, fhirAddress.Text); Assert.AreEqual(address.Street.Count(), fhirAddress.Line.Count()); Assert.AreEqual(address.City, fhirAddress.City); Assert.AreEqual(address.PostalCode, fhirAddress.PostalCode); Assert.AreEqual(address.State, fhirAddress.State); Assert.AreEqual(address.Country, fhirAddress.Country); Assert.AreEqual(address.County, fhirAddress.District); Assert.IsInstanceOfType(fhirAddress.Extension.Single().Value, typeof(FhirBoolean)); var extensionValue = ((FhirBoolean)fhirAddress.Extension.Single().Value).Value; Assert.IsNotNull(extensionValue); Assert.AreEqual(true, extensionValue); }
internal static Contact ToContact(this Patient patient) { var hasValue = false; var contact = patient.ToThingBase <ItemTypes.Contact>(); if (!patient.Address.IsNullOrEmpty()) { hasValue = true; foreach (var address in patient.Address) { var hvAddress = new ItemTypes.Address(); foreach (var line in address.Line) { hvAddress.Street.Add(line); } hvAddress.City = address.City; hvAddress.State = address.State; hvAddress.County = address.District; hvAddress.PostalCode = address.PostalCode; hvAddress.Country = address.Country; hvAddress.Description = address.Text; hvAddress.IsPrimary = address.GetBoolExtension(HealthVaultExtensions.IsPrimary); contact.ContactInformation.Address.Add(hvAddress); } } if (!patient.Telecom.IsNullOrEmpty()) { hasValue = true; foreach (var contactPoint in patient.Telecom) { switch (contactPoint.System) { case ContactPoint.ContactPointSystem.Email: contact.ContactInformation.Email.Add(ConvertContactPointToEmail(contactPoint)); break; case ContactPoint.ContactPointSystem.Phone: contact.ContactInformation.Phone.Add(ConvertContactPointToPhone(contactPoint)); break; } } } if (hasValue) { return(contact); } return(null); }
public void WhenPersonItemTransformedToFhir_ThenContactAddressIsCopiedToAddress() { const string description = "14503 Apt# 102"; const bool isPrimary = true; const string street = "SE 140th St"; //Required Multi const string city = "DC"; //Required const string state = "WA"; const string postCode = "98008"; //Required const string country = "USA"; //Required const string county = "County"; PersonItem person = GetSamplePerson(); var address = new ItemTypes.Address { Description = description, IsPrimary = isPrimary, City = city, State = state, PostalCode = postCode, Country = country, County = county }; address.Street.Add(street); var contactInfo = new ContactInfo(); contactInfo.Address.Add(address); person.ContactInformation = contactInfo; var practitioner = person.ToFhir(); Assert.IsTrue(practitioner.Address.Any()); var fhirAddress = practitioner.Address.First(); Assert.AreEqual(description, fhirAddress.Text); Assert.AreEqual(street, fhirAddress.Line.First()); Assert.AreEqual(city, fhirAddress.City); Assert.AreEqual(state, fhirAddress.State); Assert.AreEqual(postCode, fhirAddress.PostalCode); Assert.AreEqual(country, fhirAddress.Country); Assert.AreEqual(county, fhirAddress.District); Assert.IsTrue(fhirAddress.Extension.Any(ext => ext.Url == HealthVaultExtensions.IsPrimary)); }
internal static Hl7.Fhir.Model.Address ToFhirInternal(ItemTypes.Address hvAddress) { var address = new Hl7.Fhir.Model.Address { Text = hvAddress.Description, Line = hvAddress.Street, City = hvAddress.City, PostalCode = hvAddress.PostalCode, District = hvAddress.County, State = hvAddress.State, Country = hvAddress.Country, }; if (hvAddress.IsPrimary.HasValue && hvAddress.IsPrimary.Value) { address.AddExtension(HealthVaultExtensions.IsPrimary, new FhirBoolean(true)); } return(address); }
public void WhenMinimumAddressTransformedToFhir_ThenValuesEqual() { var address = new ItemTypes.Address { Street = { "3804 Lakeland ", "Terrace" }, City = "KEENE", Country = "US", PostalCode = "93531" }; var fhirAddress = address.ToFhir(); Assert.IsNotNull(fhirAddress); Assert.IsTrue(string.IsNullOrEmpty(fhirAddress.Text)); Assert.IsTrue(string.IsNullOrEmpty(fhirAddress.State)); Assert.IsTrue(string.IsNullOrEmpty(fhirAddress.District)); Assert.IsTrue(fhirAddress.Extension.IsNullOrEmpty()); Assert.AreEqual(address.Street.Count(), fhirAddress.Line.Count()); Assert.AreEqual(address.City, fhirAddress.City); Assert.AreEqual(address.PostalCode, fhirAddress.PostalCode); Assert.AreEqual(address.Country, fhirAddress.Country); }
public static Hl7.Fhir.Model.Address ToFhir(this ItemTypes.Address hvAddress) { return(AddressToFhir.ToFhirInternal(hvAddress)); }
private static ItemTypes.PersonItem ToPerson(this Hl7.Fhir.Model.Practitioner fhirPractitioner) { if (!fhirPractitioner.Name.Any()) { throw new NotSupportedException($"{fhirPractitioner} needs to have a {nameof(HumanName)}"); } var practitionerName = fhirPractitioner.Name.First(); // Let's consider just the first item //name var person = new ItemTypes.PersonItem() { PersonType = HealthVaultThingPersonTypesCodes.Provider, Name = practitionerName.ToHealthVault(), ContactInformation = new ContactInfo() }; //address if (!fhirPractitioner.Address.IsNullOrEmpty()) { foreach (var address in fhirPractitioner.Address) { ItemTypes.Address hvAddress = address.ToHealthVault(); if (hvAddress != null) { person.ContactInformation.Address.Add(hvAddress); } } } //telecom if (!fhirPractitioner.Telecom.IsNullOrEmpty()) { foreach (var contactPoint in fhirPractitioner.Telecom) { switch (contactPoint.System) { case ContactPoint.ContactPointSystem.Email: person.ContactInformation.Email.Add(contactPoint.ToHealthVault <Email>()); break; case ContactPoint.ContactPointSystem.Phone: person.ContactInformation.Phone.Add(contactPoint.ToHealthVault <Phone>()); break; } } } //qualification if (!fhirPractitioner.Qualification.IsNullOrEmpty()) { var firstQualification = fhirPractitioner.Qualification.First(); //Let's take just the first one if (!string.IsNullOrEmpty(firstQualification.Code.Text)) { person.ProfessionalTraining = firstQualification.Code.Text; } else if (!firstQualification.Code.Coding.IsNullOrEmpty()) { person.ProfessionalTraining = firstQualification.Code.Coding.First().Display; } } person.Organization = fhirPractitioner.GetStringExtension(HealthVaultExtensions.Organization); if (fhirPractitioner.Identifier.Any()) { person.PersonId = fhirPractitioner.Identifier.First().Value; } return(person); }