public void ToDelimitedString_WithAllProperties_ReturnsCorrectlySequencedFields() { IType hl7Type = new ExtendedCompositeIdNumberAndNameForPersons { PersonIdentifier = "1", FamilyName = new FamilyName { Surname = "2" }, GivenName = "3", SecondAndFurtherGivenNamesOrInitialsThereof = "4", Suffix = "5", Prefix = "6", Degree = "7", SourceTable = new CodedWithExceptions { Identifier = "8" }, AssigningAuthority = new HierarchicDesignator { NamespaceId = "9" }, NameTypeCode = "10", IdentifierCheckDigit = "11", CheckDigitScheme = "12", IdentifierTypeCode = "13", AssigningFacility = new HierarchicDesignator { NamespaceId = "14" }, NameRepresentationCode = "15", NameContext = new CodedWithExceptions { Identifier = "16" }, NameValidityRange = new DateTimeRange { RangeStartDateTime = new DateTime(2020, 1, 17, 0, 0, 17) }, NameAssemblyOrder = "18", EffectiveDate = new DateTime(2020, 1, 19, 0, 0, 19), ExpirationDate = new DateTime(2020, 1, 20, 0, 0, 20), ProfessionalSuffix = "21", AssigningJurisdiction = new CodedWithExceptions { Identifier = "22" }, AssigningAgencyOrDepartment = new CodedWithExceptions { Identifier = "23" }, SecurityCheck = "24", SecurityCheckScheme = "25" }; string expected = "1^2^3^4^5^6^7^8^9^10^11^12^13^14^15^16^20200117000017^18^20200119000019^20200120000020^21^22^23^24^25"; string actual = hl7Type.ToDelimitedString(); Assert.Equal(expected, actual); }
/// <inheritdoc/> public void FromDelimitedString(string delimitedString, Separators separators) { Separators seps = separators ?? new Separators().UsingConfigurationValues(); string[] segments = delimitedString == null ? Array.Empty <string>() : delimitedString.Split(seps.FieldSeparator, StringSplitOptions.None); if (segments.Length > 0) { if (string.Compare(Id, segments[0], true, CultureInfo.CurrentCulture) != 0) { throw new ArgumentException($"{ nameof(delimitedString) } does not begin with the proper segment Id: '{ Id }{ seps.FieldSeparator }'.", nameof(delimitedString)); } } SetIdObx = segments.Length > 1 && segments[1].Length > 0 ? segments[1].ToNullableUInt() : null; ValueType = segments.Length > 2 && segments[2].Length > 0 ? segments[2] : null; ObservationIdentifier = segments.Length > 3 && segments[3].Length > 0 ? TypeSerializer.Deserialize <CodedWithExceptions>(segments[3], false, seps) : null; ObservationSubId = segments.Length > 4 && segments[4].Length > 0 ? segments[4] : null; ObservationValue = segments.Length > 5 && segments[5].Length > 0 ? segments[5].Split(seps.FieldRepeatSeparator, StringSplitOptions.None) : null; Units = segments.Length > 6 && segments[6].Length > 0 ? TypeSerializer.Deserialize <CodedWithExceptions>(segments[6], false, seps) : null; ReferencesRange = segments.Length > 7 && segments[7].Length > 0 ? segments[7] : null; InterpretationCodes = segments.Length > 8 && segments[8].Length > 0 ? segments[8].Split(seps.FieldRepeatSeparator, StringSplitOptions.None).Select(x => TypeSerializer.Deserialize <CodedWithExceptions>(x, false, seps)) : null; Probability = segments.Length > 9 && segments[9].Length > 0 ? segments[9].ToNullableDecimal() : null; NatureOfAbnormalTest = segments.Length > 10 && segments[10].Length > 0 ? segments[10].Split(seps.FieldRepeatSeparator, StringSplitOptions.None) : null; ObservationResultStatus = segments.Length > 11 && segments[11].Length > 0 ? segments[11] : null; EffectiveDateOfReferenceRange = segments.Length > 12 && segments[12].Length > 0 ? segments[12].ToNullableDateTime() : null; UserDefinedAccessChecks = segments.Length > 13 && segments[13].Length > 0 ? segments[13] : null; DateTimeOfTheObservation = segments.Length > 14 && segments[14].Length > 0 ? segments[14].ToNullableDateTime() : null; ProducersId = segments.Length > 15 && segments[15].Length > 0 ? TypeSerializer.Deserialize <CodedWithExceptions>(segments[15], false, seps) : null; ResponsibleObserver = segments.Length > 16 && segments[16].Length > 0 ? segments[16].Split(seps.FieldRepeatSeparator, StringSplitOptions.None).Select(x => TypeSerializer.Deserialize <ExtendedCompositeIdNumberAndNameForPersons>(x, false, seps)) : null; ObservationMethod = segments.Length > 17 && segments[17].Length > 0 ? segments[17].Split(seps.FieldRepeatSeparator, StringSplitOptions.None).Select(x => TypeSerializer.Deserialize <CodedWithExceptions>(x, false, seps)) : null; EquipmentInstanceIdentifier = segments.Length > 18 && segments[18].Length > 0 ? segments[18].Split(seps.FieldRepeatSeparator, StringSplitOptions.None).Select(x => TypeSerializer.Deserialize <EntityIdentifier>(x, false, seps)) : null; DateTimeOfTheAnalysis = segments.Length > 19 && segments[19].Length > 0 ? segments[19].ToNullableDateTime() : null; ObservationSite = segments.Length > 20 && segments[20].Length > 0 ? segments[20].Split(seps.FieldRepeatSeparator, StringSplitOptions.None).Select(x => TypeSerializer.Deserialize <CodedWithExceptions>(x, false, seps)) : null; ObservationInstanceIdentifier = segments.Length > 21 && segments[21].Length > 0 ? TypeSerializer.Deserialize <EntityIdentifier>(segments[21], false, seps) : null; MoodCode = segments.Length > 22 && segments[22].Length > 0 ? TypeSerializer.Deserialize <CodedWithNoExceptions>(segments[22], false, seps) : null; PerformingOrganizationName = segments.Length > 23 && segments[23].Length > 0 ? TypeSerializer.Deserialize <ExtendedCompositeNameAndIdNumberForOrganizations>(segments[23], false, seps) : null; PerformingOrganizationAddress = segments.Length > 24 && segments[24].Length > 0 ? TypeSerializer.Deserialize <ExtendedAddress>(segments[24], false, seps) : null; PerformingOrganizationMedicalDirector = segments.Length > 25 && segments[25].Length > 0 ? TypeSerializer.Deserialize <ExtendedCompositeIdNumberAndNameForPersons>(segments[25], false, seps) : null; }
/// <inheritdoc/> public void FromDelimitedString(string delimitedString, Separators separators) { Separators seps = separators ?? new Separators().UsingConfigurationValues(); string[] segments = delimitedString == null ? Array.Empty <string>() : delimitedString.Split(seps.FieldSeparator, StringSplitOptions.None); if (segments.Length > 0) { if (string.Compare(Id, segments[0], true, CultureInfo.CurrentCulture) != 0) { throw new ArgumentException($"{ nameof(delimitedString) } does not begin with the proper segment Id: '{ Id }{ seps.FieldSeparator }'.", nameof(delimitedString)); } } BusinessRuleOverrideType = segments.Length > 1 && segments[1].Length > 0 ? TypeSerializer.Deserialize <CodedWithExceptions>(segments[1], false, seps) : null; BusinessRuleOverrideCode = segments.Length > 2 && segments[2].Length > 0 ? TypeSerializer.Deserialize <CodedWithExceptions>(segments[2], false, seps) : null; OverrideComments = segments.Length > 3 && segments[3].Length > 0 ? TypeSerializer.Deserialize <Text>(segments[3], false, seps) : null; OverrideEnteredBy = segments.Length > 4 && segments[4].Length > 0 ? TypeSerializer.Deserialize <ExtendedCompositeIdNumberAndNameForPersons>(segments[4], false, seps) : null; OverrideAuthorizedBy = segments.Length > 5 && segments[5].Length > 0 ? TypeSerializer.Deserialize <ExtendedCompositeIdNumberAndNameForPersons>(segments[5], false, seps) : null; }
/// <inheritdoc/> public void FromDelimitedString(string delimitedString, Separators separators) { Separators seps = separators ?? new Separators().UsingConfigurationValues(); string[] segments = delimitedString == null ? Array.Empty <string>() : delimitedString.Split(seps.FieldSeparator, StringSplitOptions.None); if (segments.Length > 0) { if (string.Compare(Id, segments[0], true, CultureInfo.CurrentCulture) != 0) { throw new ArgumentException($"{ nameof(delimitedString) } does not begin with the proper segment Id: '{ Id }{ seps.FieldSeparator }'.", nameof(delimitedString)); } } SetIdBpx = segments.Length > 1 && segments[1].Length > 0 ? segments[1].ToNullableUInt() : null; BpDispenseStatus = segments.Length > 2 && segments[2].Length > 0 ? TypeSerializer.Deserialize <CodedWithExceptions>(segments[2], false, seps) : null; BpStatus = segments.Length > 3 && segments[3].Length > 0 ? segments[3] : null; BpDateTimeOfStatus = segments.Length > 4 && segments[4].Length > 0 ? segments[4].ToNullableDateTime() : null; BcDonationId = segments.Length > 5 && segments[5].Length > 0 ? TypeSerializer.Deserialize <EntityIdentifier>(segments[5], false, seps) : null; BcComponent = segments.Length > 6 && segments[6].Length > 0 ? TypeSerializer.Deserialize <CodedWithNoExceptions>(segments[6], false, seps) : null; BcDonationTypeIntendedUse = segments.Length > 7 && segments[7].Length > 0 ? TypeSerializer.Deserialize <CodedWithNoExceptions>(segments[7], false, seps) : null; CpCommercialProduct = segments.Length > 8 && segments[8].Length > 0 ? TypeSerializer.Deserialize <CodedWithExceptions>(segments[8], false, seps) : null; CpManufacturer = segments.Length > 9 && segments[9].Length > 0 ? TypeSerializer.Deserialize <ExtendedCompositeNameAndIdNumberForOrganizations>(segments[9], false, seps) : null; CpLotNumber = segments.Length > 10 && segments[10].Length > 0 ? TypeSerializer.Deserialize <EntityIdentifier>(segments[10], false, seps) : null; BpBloodGroup = segments.Length > 11 && segments[11].Length > 0 ? TypeSerializer.Deserialize <CodedWithNoExceptions>(segments[11], false, seps) : null; BcSpecialTesting = segments.Length > 12 && segments[12].Length > 0 ? segments[12].Split(seps.FieldRepeatSeparator, StringSplitOptions.None).Select(x => TypeSerializer.Deserialize <CodedWithNoExceptions>(x, false, seps)) : null; BpExpirationDateTime = segments.Length > 13 && segments[13].Length > 0 ? segments[13].ToNullableDateTime() : null; BpQuantity = segments.Length > 14 && segments[14].Length > 0 ? segments[14].ToNullableDecimal() : null; BpAmount = segments.Length > 15 && segments[15].Length > 0 ? segments[15].ToNullableDecimal() : null; BpUnits = segments.Length > 16 && segments[16].Length > 0 ? TypeSerializer.Deserialize <CodedWithExceptions>(segments[16], false, seps) : null; BpUniqueId = segments.Length > 17 && segments[17].Length > 0 ? TypeSerializer.Deserialize <EntityIdentifier>(segments[17], false, seps) : null; BpActualDispensedToLocation = segments.Length > 18 && segments[18].Length > 0 ? TypeSerializer.Deserialize <PersonLocation>(segments[18], false, seps) : null; BpActualDispensedToAddress = segments.Length > 19 && segments[19].Length > 0 ? TypeSerializer.Deserialize <ExtendedAddress>(segments[19], false, seps) : null; BpDispensedToReceiver = segments.Length > 20 && segments[20].Length > 0 ? TypeSerializer.Deserialize <ExtendedCompositeIdNumberAndNameForPersons>(segments[20], false, seps) : null; BpDispensingIndividual = segments.Length > 21 && segments[21].Length > 0 ? TypeSerializer.Deserialize <ExtendedCompositeIdNumberAndNameForPersons>(segments[21], false, seps) : null; }
/// <inheritdoc/> public void FromDelimitedString(string delimitedString, Separators separators) { Separators seps = separators ?? new Separators().UsingConfigurationValues(); string[] segments = delimitedString == null ? Array.Empty <string>() : delimitedString.Split(seps.FieldSeparator, StringSplitOptions.None); if (segments.Length > 0) { if (string.Compare(Id, segments[0], true, CultureInfo.CurrentCulture) != 0) { throw new ArgumentException($"{ nameof(delimitedString) } does not begin with the proper segment Id: '{ Id }{ seps.FieldSeparator }'.", nameof(delimitedString)); } } RecordLevelEventCode = segments.Length > 1 && segments[1].Length > 0 ? segments[1] : null; MfnControlId = segments.Length > 2 && segments[2].Length > 0 ? segments[2] : null; EffectiveDateTime = segments.Length > 3 && segments[3].Length > 0 ? segments[3].ToNullableDateTime() : null; PrimaryKeyValueMfe = segments.Length > 4 && segments[4].Length > 0 ? segments[4].Split(seps.FieldRepeatSeparator, StringSplitOptions.None) : null; PrimaryKeyValueType = segments.Length > 5 && segments[5].Length > 0 ? segments[5].Split(seps.FieldRepeatSeparator, StringSplitOptions.None) : null; EnteredDateTime = segments.Length > 6 && segments[6].Length > 0 ? segments[6].ToNullableDateTime() : null; EnteredBy = segments.Length > 7 && segments[7].Length > 0 ? TypeSerializer.Deserialize <ExtendedCompositeIdNumberAndNameForPersons>(segments[7], false, seps) : null; }
/// <inheritdoc/> public void FromDelimitedString(string delimitedString, Separators separators) { Separators seps = separators ?? new Separators().UsingConfigurationValues(); string[] segments = delimitedString == null ? Array.Empty <string>() : delimitedString.Split(seps.FieldSeparator, StringSplitOptions.None); if (segments.Length > 0) { if (string.Compare(Id, segments[0], true, CultureInfo.CurrentCulture) != 0) { throw new ArgumentException($"{ nameof(delimitedString) } does not begin with the proper segment Id: '{ Id }{ seps.FieldSeparator }'.", nameof(delimitedString)); } } OrderControl = segments.Length > 1 && segments[1].Length > 0 ? segments[1] : null; PlacerOrderNumber = segments.Length > 2 && segments[2].Length > 0 ? TypeSerializer.Deserialize <EntityIdentifier>(segments[2], false, seps) : null; FillerOrderNumber = segments.Length > 3 && segments[3].Length > 0 ? TypeSerializer.Deserialize <EntityIdentifier>(segments[3], false, seps) : null; PlacerGroupNumber = segments.Length > 4 && segments[4].Length > 0 ? TypeSerializer.Deserialize <EntityIdentifier>(segments[4], false, seps) : null; OrderStatus = segments.Length > 5 && segments[5].Length > 0 ? segments[5] : null; ResponseFlag = segments.Length > 6 && segments[6].Length > 0 ? segments[6] : null; QuantityTiming = segments.Length > 7 && segments[7].Length > 0 ? TypeSerializer.Deserialize <TimingQuantity>(segments[7], false, seps) : null; ParentOrder = segments.Length > 8 && segments[8].Length > 0 ? TypeSerializer.Deserialize <ParentOrder>(segments[8], false, seps) : null; DateTimeOfTransaction = segments.Length > 9 && segments[9].Length > 0 ? segments[9].ToNullableDateTime() : null; EnteredBy = segments.Length > 10 && segments[10].Length > 0 ? TypeSerializer.Deserialize <ExtendedCompositeIdNumberAndNameForPersons>(segments[10], false, seps) : null; VerifiedBy = segments.Length > 11 && segments[11].Length > 0 ? TypeSerializer.Deserialize <ExtendedCompositeIdNumberAndNameForPersons>(segments[11], false, seps) : null; OrderingProvider = segments.Length > 12 && segments[12].Length > 0 ? TypeSerializer.Deserialize <ExtendedCompositeIdNumberAndNameForPersons>(segments[12], false, seps) : null; EnterersLocation = segments.Length > 13 && segments[13].Length > 0 ? TypeSerializer.Deserialize <PersonLocation>(segments[13], false, seps) : null; CallBackPhoneNumber = segments.Length > 14 && segments[14].Length > 0 ? segments[14].Split(seps.FieldRepeatSeparator, StringSplitOptions.None).Select(x => TypeSerializer.Deserialize <ExtendedTelecommunicationNumber>(x, false, seps)) : null; OrderEffectiveDateTime = segments.Length > 15 && segments[15].Length > 0 ? segments[15].ToNullableDateTime() : null; OrderControlCodeReason = segments.Length > 16 && segments[16].Length > 0 ? TypeSerializer.Deserialize <CodedElement>(segments[16], false, seps) : null; EnteringOrganization = segments.Length > 17 && segments[17].Length > 0 ? TypeSerializer.Deserialize <CodedElement>(segments[17], false, seps) : null; EnteringDevice = segments.Length > 18 && segments[18].Length > 0 ? TypeSerializer.Deserialize <CodedElement>(segments[18], false, seps) : null; ActionBy = segments.Length > 19 && segments[19].Length > 0 ? TypeSerializer.Deserialize <ExtendedCompositeIdNumberAndNameForPersons>(segments[19], false, seps) : null; }
/// <inheritdoc/> public void FromDelimitedString(string delimitedString, Separators separators) { Separators seps = separators ?? new Separators().UsingConfigurationValues(); string[] segments = delimitedString == null ? Array.Empty <string>() : delimitedString.Split(seps.FieldSeparator, StringSplitOptions.None); if (segments.Length > 0) { if (string.Compare(Id, segments[0], true, CultureInfo.CurrentCulture) != 0) { throw new ArgumentException($"{ nameof(delimitedString) } does not begin with the proper segment Id: '{ Id }{ seps.FieldSeparator }'.", nameof(delimitedString)); } } SetIdPv1 = segments.Length > 1 && segments[1].Length > 0 ? segments[1].ToNullableUInt() : null; PatientClass = segments.Length > 2 && segments[2].Length > 0 ? segments[2] : null; AssignedPatientLocation = segments.Length > 3 && segments[3].Length > 0 ? TypeSerializer.Deserialize <PersonLocation>(segments[3], false, seps) : null; AdmissionType = segments.Length > 4 && segments[4].Length > 0 ? segments[4] : null; PreadmitNumber = segments.Length > 5 && segments[5].Length > 0 ? TypeSerializer.Deserialize <ExtendedCompositeIdWithCheckDigit>(segments[5], false, seps) : null; PriorPatientLocation = segments.Length > 6 && segments[6].Length > 0 ? TypeSerializer.Deserialize <PersonLocation>(segments[6], false, seps) : null; AttendingDoctor = segments.Length > 7 && segments[7].Length > 0 ? segments[7].Split(seps.FieldRepeatSeparator, StringSplitOptions.None).Select(x => TypeSerializer.Deserialize <ExtendedCompositeIdNumberAndNameForPersons>(x, false, seps)) : null; ReferringDoctor = segments.Length > 8 && segments[8].Length > 0 ? segments[8].Split(seps.FieldRepeatSeparator, StringSplitOptions.None).Select(x => TypeSerializer.Deserialize <ExtendedCompositeIdNumberAndNameForPersons>(x, false, seps)) : null; ConsultingDoctor = segments.Length > 9 && segments[9].Length > 0 ? segments[9].Split(seps.FieldRepeatSeparator, StringSplitOptions.None).Select(x => TypeSerializer.Deserialize <ExtendedCompositeIdNumberAndNameForPersons>(x, false, seps)) : null; HospitalService = segments.Length > 10 && segments[10].Length > 0 ? segments[10] : null; TemporaryLocation = segments.Length > 11 && segments[11].Length > 0 ? TypeSerializer.Deserialize <PersonLocation>(segments[11], false, seps) : null; PreadmitTestIndicator = segments.Length > 12 && segments[12].Length > 0 ? segments[12] : null; ReadmissionIndicator = segments.Length > 13 && segments[13].Length > 0 ? segments[13] : null; AdmitSource = segments.Length > 14 && segments[14].Length > 0 ? segments[14] : null; AmbulatoryStatus = segments.Length > 15 && segments[15].Length > 0 ? segments[15].Split(seps.FieldRepeatSeparator, StringSplitOptions.None) : null; VipIndicator = segments.Length > 16 && segments[16].Length > 0 ? segments[16] : null; AdmittingDoctor = segments.Length > 17 && segments[17].Length > 0 ? segments[17].Split(seps.FieldRepeatSeparator, StringSplitOptions.None).Select(x => TypeSerializer.Deserialize <ExtendedCompositeIdNumberAndNameForPersons>(x, false, seps)) : null; PatientType = segments.Length > 18 && segments[18].Length > 0 ? segments[18] : null; VisitNumber = segments.Length > 19 && segments[19].Length > 0 ? TypeSerializer.Deserialize <ExtendedCompositeIdWithCheckDigit>(segments[19], false, seps) : null; FinancialClass = segments.Length > 20 && segments[20].Length > 0 ? segments[20].Split(seps.FieldRepeatSeparator, StringSplitOptions.None).Select(x => TypeSerializer.Deserialize <FinancialClass>(x, false, seps)) : null; ChargePriceIndicator = segments.Length > 21 && segments[21].Length > 0 ? segments[21] : null; CourtesyCode = segments.Length > 22 && segments[22].Length > 0 ? segments[22] : null; CreditRating = segments.Length > 23 && segments[23].Length > 0 ? segments[23] : null; ContractCode = segments.Length > 24 && segments[24].Length > 0 ? segments[24].Split(seps.FieldRepeatSeparator, StringSplitOptions.None) : null; ContractEffectiveDate = segments.Length > 25 && segments[25].Length > 0 ? segments[25].Split(seps.FieldRepeatSeparator, StringSplitOptions.None).Select(x => x.ToDateTime()) : null; ContractAmount = segments.Length > 26 && segments[26].Length > 0 ? segments[26].Split(seps.FieldRepeatSeparator, StringSplitOptions.None).Select(x => x.ToDecimal()) : null; ContractPeriod = segments.Length > 27 && segments[27].Length > 0 ? segments[27].Split(seps.FieldRepeatSeparator, StringSplitOptions.None).Select(x => x.ToDecimal()) : null; InterestCode = segments.Length > 28 && segments[28].Length > 0 ? segments[28] : null; TransferToBadDebtCode = segments.Length > 29 && segments[29].Length > 0 ? segments[29] : null; TransferToBadDebtDate = segments.Length > 30 && segments[30].Length > 0 ? segments[30].ToNullableDateTime() : null; BadDebtAgencyCode = segments.Length > 31 && segments[31].Length > 0 ? segments[31] : null; BadDebtTransferAmount = segments.Length > 32 && segments[32].Length > 0 ? segments[32].ToNullableDecimal() : null; BadDebtRecoveryAmount = segments.Length > 33 && segments[33].Length > 0 ? segments[33].ToNullableDecimal() : null; DeleteAccountIndicator = segments.Length > 34 && segments[34].Length > 0 ? segments[34] : null; DeleteAccountDate = segments.Length > 35 && segments[35].Length > 0 ? segments[35].ToNullableDateTime() : null; DischargeDisposition = segments.Length > 36 && segments[36].Length > 0 ? segments[36] : null; DischargedToLocation = segments.Length > 37 && segments[37].Length > 0 ? TypeSerializer.Deserialize <DischargeToLocationAndDate>(segments[37], false, seps) : null; DietType = segments.Length > 38 && segments[38].Length > 0 ? TypeSerializer.Deserialize <CodedWithExceptions>(segments[38], false, seps) : null; ServicingFacility = segments.Length > 39 && segments[39].Length > 0 ? segments[39] : null; BedStatus = segments.Length > 40 && segments[40].Length > 0 ? segments[40] : null; AccountStatus = segments.Length > 41 && segments[41].Length > 0 ? segments[41] : null; PendingLocation = segments.Length > 42 && segments[42].Length > 0 ? TypeSerializer.Deserialize <PersonLocation>(segments[42], false, seps) : null; PriorTemporaryLocation = segments.Length > 43 && segments[43].Length > 0 ? TypeSerializer.Deserialize <PersonLocation>(segments[43], false, seps) : null; AdmitDateTime = segments.Length > 44 && segments[44].Length > 0 ? segments[44].ToNullableDateTime() : null; DischargeDateTime = segments.Length > 45 && segments[45].Length > 0 ? segments[45].ToNullableDateTime() : null; CurrentPatientBalance = segments.Length > 46 && segments[46].Length > 0 ? segments[46].ToNullableDecimal() : null; TotalCharges = segments.Length > 47 && segments[47].Length > 0 ? segments[47].ToNullableDecimal() : null; TotalAdjustments = segments.Length > 48 && segments[48].Length > 0 ? segments[48].ToNullableDecimal() : null; TotalPayments = segments.Length > 49 && segments[49].Length > 0 ? segments[49].ToNullableDecimal() : null; AlternateVisitId = segments.Length > 50 && segments[50].Length > 0 ? TypeSerializer.Deserialize <ExtendedCompositeIdWithCheckDigit>(segments[50], false, seps) : null; VisitIndicator = segments.Length > 51 && segments[51].Length > 0 ? segments[51] : null; OtherHealthcareProvider = segments.Length > 52 && segments[52].Length > 0 ? TypeSerializer.Deserialize <ExtendedCompositeIdNumberAndNameForPersons>(segments[52], false, seps) : null; }