Beispiel #1
0
		public StaffDetail CreateStaffDetail(Staff staff, IPersistenceContext context)
		{
			PersonNameAssembler assembler = new PersonNameAssembler();
			StaffGroupAssembler groupAssembler = new StaffGroupAssembler();
			EmailAddressAssembler emailAssembler = new EmailAddressAssembler();
			TelephoneNumberAssembler telephoneAssembler = new TelephoneNumberAssembler();
			AddressAssembler addressAssembler = new AddressAssembler();

			return new StaffDetail(
				staff.GetRef(),
				staff.Id,
				EnumUtils.GetEnumValueInfo(staff.Type),
				assembler.CreatePersonNameDetail(staff.Name),
				EnumUtils.GetEnumValueInfo(staff.Sex, context),
				staff.Title,
				staff.LicenseNumber,
				staff.BillingNumber,
				CollectionUtils.Map<TelephoneNumber, TelephoneDetail>(
					staff.TelephoneNumbers,
					delegate(TelephoneNumber tn) { return telephoneAssembler.CreateTelephoneDetail(tn, context); }),
				CollectionUtils.Map<Address, AddressDetail>(
					staff.Addresses,
					delegate(Address a) { return addressAssembler.CreateAddressDetail(a, context); }),
				CollectionUtils.Map<EmailAddress, EmailAddressDetail>(
					staff.EmailAddresses,
					delegate(EmailAddress ea) { return emailAssembler.CreateEmailAddressDetail(ea, context); }),
				CollectionUtils.Map<StaffGroup, StaffGroupSummary>(
					staff.Groups,
					delegate(StaffGroup group) { return groupAssembler.CreateSummary(group); }),
				ExtendedPropertyUtils.Copy(staff.ExtendedProperties),
				staff.Deactivated,
				staff.UserName);
		}
        public ExternalPractitionerContactPointDetail CreateExternalPractitionerContactPointDetail(ExternalPractitionerContactPoint contactPoint,
                                                                                                   IPersistenceContext context)
        {
            var telephoneNumberAssembler = new TelephoneNumberAssembler();
            var addressAssembler         = new AddressAssembler();
            var emailAddressAssembler    = new EmailAddressAssembler();

            var currentPhone        = contactPoint.CurrentPhoneNumber;
            var currentFax          = contactPoint.CurrentFaxNumber;
            var currentAddress      = contactPoint.CurrentAddress;
            var currentEmailAddress = contactPoint.CurrentEmailAddress;

            return(new ExternalPractitionerContactPointDetail(
                       contactPoint.GetRef(),
                       contactPoint.Name,
                       contactPoint.Description,
                       contactPoint.IsDefaultContactPoint,
                       EnumUtils.GetEnumValueInfo(contactPoint.PreferredResultCommunicationMode, context),
                       EnumUtils.GetEnumValueInfo(contactPoint.InformationAuthority),
                       CollectionUtils.Map(contactPoint.TelephoneNumbers, (TelephoneNumber phone) => telephoneNumberAssembler.CreateTelephoneDetail(phone, context)),
                       CollectionUtils.Map(contactPoint.Addresses, (Address address) => addressAssembler.CreateAddressDetail(address, context)),
                       CollectionUtils.Map(contactPoint.EmailAddresses, (EmailAddress emailAddress) => emailAddressAssembler.CreateEmailAddressDetail(emailAddress, context)),
                       currentPhone == null ? null : telephoneNumberAssembler.CreateTelephoneDetail(currentPhone, context),
                       currentFax == null ? null : telephoneNumberAssembler.CreateTelephoneDetail(currentFax, context),
                       currentAddress == null ? null : addressAssembler.CreateAddressDetail(currentAddress, context),
                       currentEmailAddress == null ? null : emailAddressAssembler.CreateEmailAddressDetail(currentEmailAddress, context),
                       CreateExternalPractitionerContactPointSummary(contactPoint.GetUltimateMergeDestination()),
                       contactPoint.IsMerged,
                       contactPoint.Deactivated));
        }
        public StaffDetail CreateStaffDetail(Staff staff, IPersistenceContext context)
        {
            PersonNameAssembler      assembler          = new PersonNameAssembler();
            StaffGroupAssembler      groupAssembler     = new StaffGroupAssembler();
            EmailAddressAssembler    emailAssembler     = new EmailAddressAssembler();
            TelephoneNumberAssembler telephoneAssembler = new TelephoneNumberAssembler();
            AddressAssembler         addressAssembler   = new AddressAssembler();

            return(new StaffDetail(
                       staff.GetRef(),
                       staff.Id,
                       EnumUtils.GetEnumValueInfo(staff.Type),
                       assembler.CreatePersonNameDetail(staff.Name),
                       EnumUtils.GetEnumValueInfo(staff.Sex, context),
                       staff.Title,
                       staff.LicenseNumber,
                       staff.BillingNumber,
                       CollectionUtils.Map <TelephoneNumber, TelephoneDetail>(
                           staff.TelephoneNumbers,
                           delegate(TelephoneNumber tn) { return telephoneAssembler.CreateTelephoneDetail(tn, context); }),
                       CollectionUtils.Map <Address, AddressDetail>(
                           staff.Addresses,
                           delegate(Address a) { return addressAssembler.CreateAddressDetail(a, context); }),
                       CollectionUtils.Map <EmailAddress, EmailAddressDetail>(
                           staff.EmailAddresses,
                           delegate(EmailAddress ea) { return emailAssembler.CreateEmailAddressDetail(ea, context); }),
                       CollectionUtils.Map <StaffGroup, StaffGroupSummary>(
                           staff.Groups,
                           delegate(StaffGroup group) { return groupAssembler.CreateSummary(group); }),
                       ExtendedPropertyUtils.Copy(staff.ExtendedProperties),
                       staff.Deactivated,
                       staff.UserName));
        }
		public ExternalPractitionerContactPointDetail CreateExternalPractitionerContactPointDetail(ExternalPractitionerContactPoint contactPoint,
			IPersistenceContext context)
		{
			var telephoneNumberAssembler = new TelephoneNumberAssembler();
			var addressAssembler = new AddressAssembler();
			var emailAddressAssembler = new EmailAddressAssembler();

			var currentPhone = contactPoint.CurrentPhoneNumber;
			var currentFax = contactPoint.CurrentFaxNumber;
			var currentAddress = contactPoint.CurrentAddress;
			var currentEmailAddress = contactPoint.CurrentEmailAddress;

			return new ExternalPractitionerContactPointDetail(
				contactPoint.GetRef(),
				contactPoint.Name,
				contactPoint.Description,
				contactPoint.IsDefaultContactPoint,
				EnumUtils.GetEnumValueInfo(contactPoint.PreferredResultCommunicationMode, context),
				EnumUtils.GetEnumValueInfo(contactPoint.InformationAuthority),
				CollectionUtils.Map(contactPoint.TelephoneNumbers, (TelephoneNumber phone) => telephoneNumberAssembler.CreateTelephoneDetail(phone, context)),
				CollectionUtils.Map(contactPoint.Addresses, (Address address) => addressAssembler.CreateAddressDetail(address, context)),
				CollectionUtils.Map(contactPoint.EmailAddresses, (EmailAddress emailAddress) => emailAddressAssembler.CreateEmailAddressDetail(emailAddress, context)),
				currentPhone == null ? null : telephoneNumberAssembler.CreateTelephoneDetail(currentPhone, context),
				currentFax == null ? null : telephoneNumberAssembler.CreateTelephoneDetail(currentFax, context),
				currentAddress == null ? null : addressAssembler.CreateAddressDetail(currentAddress, context),
				currentEmailAddress == null ? null : emailAddressAssembler.CreateEmailAddressDetail(currentEmailAddress, context),
				CreateExternalPractitionerContactPointSummary(contactPoint.GetUltimateMergeDestination()),
				contactPoint.IsMerged,
				contactPoint.Deactivated);
		}
        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;
		}