public PatientProfileDetail CreatePatientProfileDetail(PatientProfile profile, IPersistenceContext context, bool includeAddresses, bool includeContactPersons, bool includeEmailAddresses, bool includeTelephoneNumbers, bool includeNotes, bool includeAttachments, bool includeAllergies) { var healthcardAssembler = new HealthcardAssembler(); var nameAssembler = new PersonNameAssembler(); var addressAssembler = new AddressAssembler(); var telephoneAssembler = new TelephoneNumberAssembler(); var detail = new PatientProfileDetail { PatientRef = profile.Patient.GetRef(), PatientProfileRef = profile.GetRef(), Mrn = new MrnAssembler().CreateMrnDetail(profile.Mrn), Healthcard = healthcardAssembler.CreateHealthcardDetail(profile.Healthcard), Name = nameAssembler.CreatePersonNameDetail(profile.Name), Sex = EnumUtils.GetEnumValueInfo(profile.Sex, context), DateOfBirth = profile.DateOfBirth, DeathIndicator = profile.DeathIndicator, TimeOfDeath = profile.TimeOfDeath, PrimaryLanguage = EnumUtils.GetEnumValueInfo(profile.PrimaryLanguage), Religion = EnumUtils.GetEnumValueInfo(profile.Religion), CurrentHomeAddress = addressAssembler.CreateAddressDetail(profile.CurrentHomeAddress, context), CurrentWorkAddress = addressAssembler.CreateAddressDetail(profile.CurrentWorkAddress, context), CurrentHomePhone = telephoneAssembler.CreateTelephoneDetail(profile.CurrentHomePhone, context), CurrentWorkPhone = telephoneAssembler.CreateTelephoneDetail(profile.CurrentWorkPhone, context), BillingInformation = profile.BillingInformation }; if (includeTelephoneNumbers) { detail.TelephoneNumbers = new List <TelephoneDetail>(); foreach (var t in profile.TelephoneNumbers) { detail.TelephoneNumbers.Add(telephoneAssembler.CreateTelephoneDetail(t, context)); } } if (includeAddresses) { detail.Addresses = new List <AddressDetail>(); foreach (var a in profile.Addresses) { detail.Addresses.Add(addressAssembler.CreateAddressDetail(a, context)); } } if (includeContactPersons) { var contactPersonAssembler = new ContactPersonAssembler(); detail.ContactPersons = new List <ContactPersonDetail>(); foreach (var cp in profile.ContactPersons) { detail.ContactPersons.Add(contactPersonAssembler.CreateContactPersonDetail(cp)); } } if (includeEmailAddresses) { var emailAssembler = new EmailAddressAssembler(); detail.EmailAddresses = new List <EmailAddressDetail>(); foreach (var e in profile.EmailAddresses) { detail.EmailAddresses.Add(emailAssembler.CreateEmailAddressDetail(e, context)); } } if (includeNotes) { var noteAssembler = new PatientNoteAssembler(); detail.Notes = new List <PatientNoteDetail>(); foreach (var n in profile.Patient.Notes) { detail.Notes.Add(noteAssembler.CreateNoteDetail(n, context)); } } if (includeAttachments) { var attachmentAssembler = new PatientAttachmentAssembler(); detail.Attachments = new List <AttachmentSummary>(); foreach (var a in profile.Patient.Attachments) { detail.Attachments.Add(attachmentAssembler.CreatePatientAttachmentSummary(a, context)); } } if (includeAllergies) { var allergyAssembler = new PatientAllergyAssembler(); detail.Allergies = new List <PatientAllergyDetail>(); foreach (var a in profile.Patient.Allergies) { detail.Allergies.Add(allergyAssembler.CreateAllergyDetail(a)); } } return(detail); }
public PatientProfileDetail CreatePatientProfileDetail(PatientProfile profile, IPersistenceContext context, bool includeAddresses, bool includeContactPersons, bool includeEmailAddresses, bool includeTelephoneNumbers, bool includeNotes, bool includeAttachments, bool includeAllergies) { var healthcardAssembler = new HealthcardAssembler(); var nameAssembler = new PersonNameAssembler(); var addressAssembler = new AddressAssembler(); var telephoneAssembler = new TelephoneNumberAssembler(); var detail = new PatientProfileDetail { PatientRef = profile.Patient.GetRef(), PatientProfileRef = profile.GetRef(), Mrn = new MrnAssembler().CreateMrnDetail(profile.Mrn), Healthcard = healthcardAssembler.CreateHealthcardDetail(profile.Healthcard), Name = nameAssembler.CreatePersonNameDetail(profile.Name), Sex = EnumUtils.GetEnumValueInfo(profile.Sex, context), DateOfBirth = profile.DateOfBirth, DeathIndicator = profile.DeathIndicator, TimeOfDeath = profile.TimeOfDeath, PrimaryLanguage = EnumUtils.GetEnumValueInfo(profile.PrimaryLanguage), Religion = EnumUtils.GetEnumValueInfo(profile.Religion), CurrentHomeAddress = addressAssembler.CreateAddressDetail(profile.CurrentHomeAddress, context), CurrentWorkAddress = addressAssembler.CreateAddressDetail(profile.CurrentWorkAddress, context), CurrentHomePhone = telephoneAssembler.CreateTelephoneDetail(profile.CurrentHomePhone, context), CurrentWorkPhone = telephoneAssembler.CreateTelephoneDetail(profile.CurrentWorkPhone, context), BillingInformation = profile.BillingInformation }; if (includeTelephoneNumbers) { detail.TelephoneNumbers = new List<TelephoneDetail>(); foreach (var t in profile.TelephoneNumbers) { detail.TelephoneNumbers.Add(telephoneAssembler.CreateTelephoneDetail(t, context)); } } if (includeAddresses) { detail.Addresses = new List<AddressDetail>(); foreach (var a in profile.Addresses) { detail.Addresses.Add(addressAssembler.CreateAddressDetail(a, context)); } } if (includeContactPersons) { var contactPersonAssembler = new ContactPersonAssembler(); detail.ContactPersons = new List<ContactPersonDetail>(); foreach (var cp in profile.ContactPersons) { detail.ContactPersons.Add(contactPersonAssembler.CreateContactPersonDetail(cp)); } } if (includeEmailAddresses) { var emailAssembler = new EmailAddressAssembler(); detail.EmailAddresses = new List<EmailAddressDetail>(); foreach (var e in profile.EmailAddresses) { detail.EmailAddresses.Add(emailAssembler.CreateEmailAddressDetail(e, context)); } } if (includeNotes) { var noteAssembler = new PatientNoteAssembler(); detail.Notes = new List<PatientNoteDetail>(); foreach (var n in profile.Patient.Notes) { detail.Notes.Add(noteAssembler.CreateNoteDetail(n, context)); } } if (includeAttachments) { var attachmentAssembler = new PatientAttachmentAssembler(); detail.Attachments = new List<AttachmentSummary>(); foreach (var a in profile.Patient.Attachments) { detail.Attachments.Add(attachmentAssembler.CreatePatientAttachmentSummary(a, context)); } } if (includeAllergies) { var allergyAssembler = new PatientAllergyAssembler(); detail.Allergies = new List<PatientAllergyDetail>(); foreach (var a in profile.Patient.Allergies) { detail.Allergies.Add(allergyAssembler.CreateAllergyDetail(a)); } } return detail; }
public void UpdatePatientProfile(PatientProfile profile, PatientProfileDetail detail, bool updateMrn, IPersistenceContext context) { if (updateMrn) { profile.Mrn.Id = detail.Mrn.Id; profile.Mrn.AssigningAuthority = EnumUtils.GetEnumValue <InformationAuthorityEnum>(detail.Mrn.AssigningAuthority, context); } profile.Healthcard = new HealthcardNumber(); new HealthcardAssembler().UpdateHealthcard(profile.Healthcard, detail.Healthcard, context); var nameAssembler = new PersonNameAssembler(); nameAssembler.UpdatePersonName(detail.Name, profile.Name); profile.Sex = EnumUtils.GetEnumValue <Sex>(detail.Sex); profile.DateOfBirth = detail.DateOfBirth; profile.DeathIndicator = detail.DeathIndicator; profile.TimeOfDeath = detail.TimeOfDeath; profile.PrimaryLanguage = EnumUtils.GetEnumValue <SpokenLanguageEnum>(detail.PrimaryLanguage, context); profile.Religion = EnumUtils.GetEnumValue <ReligionEnum>(detail.Religion, context); profile.BillingInformation = detail.BillingInformation; var telephoneAssembler = new TelephoneNumberAssembler(); profile.TelephoneNumbers.Clear(); if (detail.TelephoneNumbers != null) { foreach (var phoneDetail in detail.TelephoneNumbers) { profile.TelephoneNumbers.Add(telephoneAssembler.CreateTelephoneNumber(phoneDetail)); } } var addressAssembler = new AddressAssembler(); profile.Addresses.Clear(); if (detail.Addresses != null) { foreach (var addressDetail in detail.Addresses) { profile.Addresses.Add(addressAssembler.CreateAddress(addressDetail)); } } var emailAssembler = new EmailAddressAssembler(); profile.EmailAddresses.Clear(); foreach (var e in detail.EmailAddresses) { profile.EmailAddresses.Add(emailAssembler.CreateEmailAddress(e)); } var contactAssembler = new ContactPersonAssembler(); profile.ContactPersons.Clear(); foreach (var cp in detail.ContactPersons) { profile.ContactPersons.Add(contactAssembler.CreateContactPerson(cp, context)); } }
public void UpdatePatientProfile(PatientProfile profile, PatientProfileDetail detail, bool updateMrn, IPersistenceContext context) { if(updateMrn) { profile.Mrn.Id = detail.Mrn.Id; profile.Mrn.AssigningAuthority = EnumUtils.GetEnumValue<InformationAuthorityEnum>(detail.Mrn.AssigningAuthority, context); } profile.Healthcard = new HealthcardNumber(); new HealthcardAssembler().UpdateHealthcard(profile.Healthcard, detail.Healthcard, context); var nameAssembler = new PersonNameAssembler(); nameAssembler.UpdatePersonName(detail.Name, profile.Name); profile.Sex = EnumUtils.GetEnumValue<Sex>(detail.Sex); profile.DateOfBirth = detail.DateOfBirth; profile.DeathIndicator = detail.DeathIndicator; profile.TimeOfDeath = detail.TimeOfDeath; profile.PrimaryLanguage = EnumUtils.GetEnumValue<SpokenLanguageEnum>(detail.PrimaryLanguage, context); profile.Religion = EnumUtils.GetEnumValue<ReligionEnum>(detail.Religion, context); profile.BillingInformation = detail.BillingInformation; var telephoneAssembler = new TelephoneNumberAssembler(); profile.TelephoneNumbers.Clear(); if (detail.TelephoneNumbers != null) { foreach (var phoneDetail in detail.TelephoneNumbers) { profile.TelephoneNumbers.Add(telephoneAssembler.CreateTelephoneNumber(phoneDetail)); } } var addressAssembler = new AddressAssembler(); profile.Addresses.Clear(); if (detail.Addresses != null) { foreach (var addressDetail in detail.Addresses) { profile.Addresses.Add(addressAssembler.CreateAddress(addressDetail)); } } var emailAssembler = new EmailAddressAssembler(); profile.EmailAddresses.Clear(); foreach (var e in detail.EmailAddresses) { profile.EmailAddresses.Add(emailAssembler.CreateEmailAddress(e)); } var contactAssembler = new ContactPersonAssembler(); profile.ContactPersons.Clear(); foreach (var cp in detail.ContactPersons) { profile.ContactPersons.Add(contactAssembler.CreateContactPerson(cp, context)); } }