public override int GetHashCode() { unchecked { var hashCode = (ContractAmount != null ? ContractAmount.GetHashCode() : 0); hashCode = (hashCode * 397) ^ (PrimaryRate != null ? PrimaryRate.GetHashCode() : 0); hashCode = (hashCode * 397) ^ (AdditionalRates != null ? AdditionalRates.GetHashCode() : 0); hashCode = (hashCode * 397) ^ CommitRollover.GetHashCode(); hashCode = (hashCode * 397) ^ (BillingPeriod != null ? BillingPeriod.GetHashCode() : 0); return(hashCode); } }
/// <inheritdoc/> public string ToDelimitedString() { CultureInfo culture = CultureInfo.CurrentCulture; return(string.Format( culture, StringHelper.StringFormatSequence(0, 53, Configuration.FieldSeparator), Id, SetIdPv1.HasValue ? SetIdPv1.Value.ToString(culture) : null, PatientClass, AssignedPatientLocation?.ToDelimitedString(), AdmissionType, PreadmitNumber?.ToDelimitedString(), PriorPatientLocation?.ToDelimitedString(), AttendingDoctor != null ? string.Join(Configuration.FieldRepeatSeparator, AttendingDoctor.Select(x => x.ToDelimitedString())) : null, ReferringDoctor != null ? string.Join(Configuration.FieldRepeatSeparator, ReferringDoctor.Select(x => x.ToDelimitedString())) : null, ConsultingDoctor != null ? string.Join(Configuration.FieldRepeatSeparator, ConsultingDoctor.Select(x => x.ToDelimitedString())) : null, HospitalService, TemporaryLocation?.ToDelimitedString(), PreadmitTestIndicator, ReadmissionIndicator, AdmitSource, AmbulatoryStatus != null ? string.Join(Configuration.FieldRepeatSeparator, AmbulatoryStatus) : null, VipIndicator, AdmittingDoctor != null ? string.Join(Configuration.FieldRepeatSeparator, AdmittingDoctor.Select(x => x.ToDelimitedString())) : null, PatientType, VisitNumber?.ToDelimitedString(), FinancialClass != null ? string.Join(Configuration.FieldRepeatSeparator, FinancialClass.Select(x => x.ToDelimitedString())) : null, ChargePriceIndicator, CourtesyCode, CreditRating, ContractCode != null ? string.Join(Configuration.FieldRepeatSeparator, ContractCode) : null, ContractEffectiveDate != null ? string.Join(Configuration.FieldRepeatSeparator, ContractEffectiveDate.Select(x => x.ToString(Consts.DateFormatPrecisionDay, culture))) : null, ContractAmount != null ? string.Join(Configuration.FieldRepeatSeparator, ContractAmount.Select(x => x.ToString(Consts.NumericFormat, culture))) : null, ContractPeriod != null ? string.Join(Configuration.FieldRepeatSeparator, ContractPeriod.Select(x => x.ToString(Consts.NumericFormat, culture))) : null, InterestCode, TransferToBadDebtCode, TransferToBadDebtDate.HasValue ? TransferToBadDebtDate.Value.ToString(Consts.DateFormatPrecisionDay, culture) : null, BadDebtAgencyCode, BadDebtTransferAmount.HasValue ? BadDebtTransferAmount.Value.ToString(Consts.NumericFormat, culture) : null, BadDebtRecoveryAmount.HasValue ? BadDebtRecoveryAmount.Value.ToString(Consts.NumericFormat, culture) : null, DeleteAccountIndicator, DeleteAccountDate.HasValue ? DeleteAccountDate.Value.ToString(Consts.DateFormatPrecisionDay, culture) : null, DischargeDisposition, DischargedToLocation?.ToDelimitedString(), DietType?.ToDelimitedString(), ServicingFacility, BedStatus, AccountStatus, PendingLocation?.ToDelimitedString(), PriorTemporaryLocation?.ToDelimitedString(), AdmitDateTime.HasValue ? AdmitDateTime.Value.ToString(Consts.DateTimeFormatPrecisionSecond, culture) : null, DischargeDateTime.HasValue ? DischargeDateTime.Value.ToString(Consts.DateTimeFormatPrecisionSecond, culture) : null, CurrentPatientBalance.HasValue ? CurrentPatientBalance.Value.ToString(Consts.NumericFormat, culture) : null, TotalCharges.HasValue ? TotalCharges.Value.ToString(Consts.NumericFormat, culture) : null, TotalAdjustments.HasValue ? TotalAdjustments.Value.ToString(Consts.NumericFormat, culture) : null, TotalPayments.HasValue ? TotalPayments.Value.ToString(Consts.NumericFormat, culture) : null, AlternateVisitId?.ToDelimitedString(), VisitIndicator, OtherHealthcareProvider?.ToDelimitedString() ).TrimEnd(Configuration.FieldSeparator.ToCharArray())); }