/// <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)); } } SequenceNumberTestObservationMasterFile = segments.Length > 1 && segments[1].Length > 0 ? segments[1].ToNullableDecimal() : null; DerivedSpecimen = segments.Length > 2 && segments[2].Length > 0 ? segments[2] : null; ContainerDescription = segments.Length > 3 && segments[3].Length > 0 ? TypeSerializer.Deserialize <Text>(segments[3], false, seps) : null; ContainerVolume = segments.Length > 4 && segments[4].Length > 0 ? segments[4].ToNullableDecimal() : null; ContainerUnits = segments.Length > 5 && segments[5].Length > 0 ? TypeSerializer.Deserialize <CodedElement>(segments[5], false, seps) : null; Specimen = segments.Length > 6 && segments[6].Length > 0 ? TypeSerializer.Deserialize <CodedElement>(segments[6], false, seps) : null; Additive = segments.Length > 7 && segments[7].Length > 0 ? TypeSerializer.Deserialize <CodedWithExceptions>(segments[7], false, seps) : null; Preparation = segments.Length > 8 && segments[8].Length > 0 ? TypeSerializer.Deserialize <Text>(segments[8], false, seps) : null; SpecialHandlingRequirements = segments.Length > 9 && segments[9].Length > 0 ? TypeSerializer.Deserialize <Text>(segments[9], false, seps) : null; NormalCollectionVolume = segments.Length > 10 && segments[10].Length > 0 ? TypeSerializer.Deserialize <CompositeQuantityWithUnits>(segments[10], false, seps) : null; MinimumCollectionVolume = segments.Length > 11 && segments[11].Length > 0 ? TypeSerializer.Deserialize <CompositeQuantityWithUnits>(segments[11], false, seps) : null; SpecimenRequirements = segments.Length > 12 && segments[12].Length > 0 ? TypeSerializer.Deserialize <Text>(segments[12], false, seps) : null; SpecimenPriorities = segments.Length > 13 && segments[13].Length > 0 ? segments[13].Split(seps.FieldRepeatSeparator, StringSplitOptions.None) : null; SpecimenRetentionTime = segments.Length > 14 && segments[14].Length > 0 ? TypeSerializer.Deserialize <CompositeQuantityWithUnits>(segments[14], 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)); } } SetIdFt1 = segments.Length > 1 && segments[1].Length > 0 ? segments[1].ToNullableUInt() : null; TransactionId = segments.Length > 2 && segments[2].Length > 0 ? segments[2] : null; TransactionBatchId = segments.Length > 3 && segments[3].Length > 0 ? segments[3] : null; TransactionDate = segments.Length > 4 && segments[4].Length > 0 ? TypeSerializer.Deserialize <DateTimeRange>(segments[4], false, seps) : null; TransactionPostingDate = segments.Length > 5 && segments[5].Length > 0 ? segments[5].ToNullableDateTime() : null; TransactionType = segments.Length > 6 && segments[6].Length > 0 ? TypeSerializer.Deserialize <CodedWithExceptions>(segments[6], false, seps) : null; TransactionCode = segments.Length > 7 && segments[7].Length > 0 ? TypeSerializer.Deserialize <CodedWithExceptions>(segments[7], false, seps) : null; TransactionDescription = segments.Length > 8 && segments[8].Length > 0 ? segments[8] : null; TransactionDescriptionAlt = segments.Length > 9 && segments[9].Length > 0 ? segments[9] : null; TransactionQuantity = segments.Length > 10 && segments[10].Length > 0 ? segments[10].ToNullableDecimal() : null; TransactionAmountExtended = segments.Length > 11 && segments[11].Length > 0 ? TypeSerializer.Deserialize <CompositePrice>(segments[11], false, seps) : null; TransactionAmountUnit = segments.Length > 12 && segments[12].Length > 0 ? TypeSerializer.Deserialize <CompositePrice>(segments[12], false, seps) : null; DepartmentCode = segments.Length > 13 && segments[13].Length > 0 ? TypeSerializer.Deserialize <CodedWithExceptions>(segments[13], false, seps) : null; HealthPlanId = segments.Length > 14 && segments[14].Length > 0 ? TypeSerializer.Deserialize <CodedWithExceptions>(segments[14], false, seps) : null; InsuranceAmount = segments.Length > 15 && segments[15].Length > 0 ? TypeSerializer.Deserialize <CompositePrice>(segments[15], false, seps) : null; AssignedPatientLocation = segments.Length > 16 && segments[16].Length > 0 ? TypeSerializer.Deserialize <PersonLocation>(segments[16], false, seps) : null; FeeSchedule = segments.Length > 17 && segments[17].Length > 0 ? TypeSerializer.Deserialize <CodedWithExceptions>(segments[17], false, seps) : null; PatientType = segments.Length > 18 && segments[18].Length > 0 ? TypeSerializer.Deserialize <CodedWithExceptions>(segments[18], false, seps) : null; DiagnosisCodeFt1 = segments.Length > 19 && segments[19].Length > 0 ? segments[19].Split(seps.FieldRepeatSeparator, StringSplitOptions.None).Select(x => TypeSerializer.Deserialize <CodedWithExceptions>(x, false, seps)) : null; PerformedByCode = segments.Length > 20 && segments[20].Length > 0 ? segments[20].Split(seps.FieldRepeatSeparator, StringSplitOptions.None).Select(x => TypeSerializer.Deserialize <ExtendedCompositeIdNumberAndNameForPersons>(x, false, seps)) : null; OrderedByCode = segments.Length > 21 && segments[21].Length > 0 ? segments[21].Split(seps.FieldRepeatSeparator, StringSplitOptions.None).Select(x => TypeSerializer.Deserialize <ExtendedCompositeIdNumberAndNameForPersons>(x, false, seps)) : null; UnitCost = segments.Length > 22 && segments[22].Length > 0 ? TypeSerializer.Deserialize <CompositePrice>(segments[22], false, seps) : null; FillerOrderNumber = segments.Length > 23 && segments[23].Length > 0 ? TypeSerializer.Deserialize <EntityIdentifier>(segments[23], false, seps) : null; EnteredByCode = segments.Length > 24 && segments[24].Length > 0 ? segments[24].Split(seps.FieldRepeatSeparator, StringSplitOptions.None).Select(x => TypeSerializer.Deserialize <ExtendedCompositeIdNumberAndNameForPersons>(x, false, seps)) : null; ProcedureCode = segments.Length > 25 && segments[25].Length > 0 ? TypeSerializer.Deserialize <CodedWithNoExceptions>(segments[25], false, seps) : null; ProcedureCodeModifier = segments.Length > 26 && segments[26].Length > 0 ? segments[26].Split(seps.FieldRepeatSeparator, StringSplitOptions.None).Select(x => TypeSerializer.Deserialize <CodedWithNoExceptions>(x, false, seps)) : null; AdvancedBeneficiaryNoticeCode = segments.Length > 27 && segments[27].Length > 0 ? TypeSerializer.Deserialize <CodedWithExceptions>(segments[27], false, seps) : null; MedicallyNecessaryDuplicateProcedureReason = segments.Length > 28 && segments[28].Length > 0 ? TypeSerializer.Deserialize <CodedWithExceptions>(segments[28], false, seps) : null; NdcCode = segments.Length > 29 && segments[29].Length > 0 ? TypeSerializer.Deserialize <CodedWithExceptions>(segments[29], false, seps) : null; PaymentReferenceId = segments.Length > 30 && segments[30].Length > 0 ? TypeSerializer.Deserialize <ExtendedCompositeIdWithCheckDigit>(segments[30], false, seps) : null; TransactionReferenceKey = segments.Length > 31 && segments[31].Length > 0 ? segments[31].Split(seps.FieldRepeatSeparator, StringSplitOptions.None).Select(x => x.ToUInt()) : null; PerformingFacility = segments.Length > 32 && segments[32].Length > 0 ? segments[32].Split(seps.FieldRepeatSeparator, StringSplitOptions.None).Select(x => TypeSerializer.Deserialize <ExtendedCompositeNameAndIdNumberForOrganizations>(x, false, seps)) : null; OrderingFacility = segments.Length > 33 && segments[33].Length > 0 ? TypeSerializer.Deserialize <ExtendedCompositeNameAndIdNumberForOrganizations>(segments[33], false, seps) : null; ItemNumber = segments.Length > 34 && segments[34].Length > 0 ? TypeSerializer.Deserialize <CodedWithExceptions>(segments[34], false, seps) : null; ModelNumber = segments.Length > 35 && segments[35].Length > 0 ? segments[35] : null; SpecialProcessingCode = segments.Length > 36 && segments[36].Length > 0 ? segments[36].Split(seps.FieldRepeatSeparator, StringSplitOptions.None).Select(x => TypeSerializer.Deserialize <CodedWithExceptions>(x, false, seps)) : null; ClinicCode = segments.Length > 37 && segments[37].Length > 0 ? TypeSerializer.Deserialize <CodedWithExceptions>(segments[37], false, seps) : null; ReferralNumber = segments.Length > 38 && segments[38].Length > 0 ? TypeSerializer.Deserialize <ExtendedCompositeIdWithCheckDigit>(segments[38], false, seps) : null; AuthorizationNumber = segments.Length > 39 && segments[39].Length > 0 ? TypeSerializer.Deserialize <ExtendedCompositeIdWithCheckDigit>(segments[39], false, seps) : null; ServiceProviderTaxonomyCode = segments.Length > 40 && segments[40].Length > 0 ? TypeSerializer.Deserialize <CodedWithExceptions>(segments[40], false, seps) : null; RevenueCode = segments.Length > 41 && segments[41].Length > 0 ? TypeSerializer.Deserialize <CodedWithExceptions>(segments[41], false, seps) : null; PrescriptionNumber = segments.Length > 42 && segments[42].Length > 0 ? segments[42] : null; NdcQtyAndUom = segments.Length > 43 && segments[43].Length > 0 ? TypeSerializer.Deserialize <CompositeQuantityWithUnits>(segments[43], 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)); } } CycleStartTime = segments.Length > 1 && segments[1].Length > 0 ? segments[1].ToNullableDateTime() : null; CycleCount = segments.Length > 2 && segments[2].Length > 0 ? segments[2].ToNullableDecimal() : null; TempMax = segments.Length > 3 && segments[3].Length > 0 ? TypeSerializer.Deserialize <CompositeQuantityWithUnits>(segments[3], false, seps) : null; TempMin = segments.Length > 4 && segments[4].Length > 0 ? TypeSerializer.Deserialize <CompositeQuantityWithUnits>(segments[4], false, seps) : null; LoadNumber = segments.Length > 5 && segments[5].Length > 0 ? segments[5].ToNullableDecimal() : null; ConditionTime = segments.Length > 6 && segments[6].Length > 0 ? TypeSerializer.Deserialize <CompositeQuantityWithUnits>(segments[6], false, seps) : null; SterilizeTime = segments.Length > 7 && segments[7].Length > 0 ? TypeSerializer.Deserialize <CompositeQuantityWithUnits>(segments[7], false, seps) : null; ExhaustTime = segments.Length > 8 && segments[8].Length > 0 ? TypeSerializer.Deserialize <CompositeQuantityWithUnits>(segments[8], false, seps) : null; TotalCycleTime = segments.Length > 9 && segments[9].Length > 0 ? TypeSerializer.Deserialize <CompositeQuantityWithUnits>(segments[9], false, seps) : null; DeviceStatus = segments.Length > 10 && segments[10].Length > 0 ? TypeSerializer.Deserialize <CodedWithExceptions>(segments[10], false, seps) : null; CycleStartDateTime = segments.Length > 11 && segments[11].Length > 0 ? segments[11].ToNullableDateTime() : null; DryTime = segments.Length > 12 && segments[12].Length > 0 ? TypeSerializer.Deserialize <CompositeQuantityWithUnits>(segments[12], false, seps) : null; LeakRate = segments.Length > 13 && segments[13].Length > 0 ? TypeSerializer.Deserialize <CompositeQuantityWithUnits>(segments[13], false, seps) : null; ControlTemperature = segments.Length > 14 && segments[14].Length > 0 ? TypeSerializer.Deserialize <CompositeQuantityWithUnits>(segments[14], false, seps) : null; SterilizerTemperature = segments.Length > 15 && segments[15].Length > 0 ? TypeSerializer.Deserialize <CompositeQuantityWithUnits>(segments[15], false, seps) : null; CycleCompleteTime = segments.Length > 16 && segments[16].Length > 0 ? segments[16].ToNullableDateTime() : null; UnderTemperature = segments.Length > 17 && segments[17].Length > 0 ? TypeSerializer.Deserialize <CompositeQuantityWithUnits>(segments[17], false, seps) : null; OverTemperature = segments.Length > 18 && segments[18].Length > 0 ? TypeSerializer.Deserialize <CompositeQuantityWithUnits>(segments[18], false, seps) : null; AbortCycle = segments.Length > 19 && segments[19].Length > 0 ? TypeSerializer.Deserialize <CodedWithNoExceptions>(segments[19], false, seps) : null; Alarm = segments.Length > 20 && segments[20].Length > 0 ? TypeSerializer.Deserialize <CodedWithNoExceptions>(segments[20], false, seps) : null; LongInChargePhase = segments.Length > 21 && segments[21].Length > 0 ? TypeSerializer.Deserialize <CodedWithNoExceptions>(segments[21], false, seps) : null; LongInExhaustPhase = segments.Length > 22 && segments[22].Length > 0 ? TypeSerializer.Deserialize <CodedWithNoExceptions>(segments[22], false, seps) : null; LongInFastExhaustPhase = segments.Length > 23 && segments[23].Length > 0 ? TypeSerializer.Deserialize <CodedWithNoExceptions>(segments[23], false, seps) : null; Reset = segments.Length > 24 && segments[24].Length > 0 ? TypeSerializer.Deserialize <CodedWithNoExceptions>(segments[24], false, seps) : null; OperatorUnload = segments.Length > 25 && segments[25].Length > 0 ? TypeSerializer.Deserialize <ExtendedCompositeIdNumberAndNameForPersons>(segments[25], false, seps) : null; DoorOpen = segments.Length > 26 && segments[26].Length > 0 ? TypeSerializer.Deserialize <CodedWithNoExceptions>(segments[26], false, seps) : null; ReadingFailure = segments.Length > 27 && segments[27].Length > 0 ? TypeSerializer.Deserialize <CodedWithNoExceptions>(segments[27], false, seps) : null; CycleType = segments.Length > 28 && segments[28].Length > 0 ? TypeSerializer.Deserialize <CodedWithExceptions>(segments[28], false, seps) : null; ThermalRinseTime = segments.Length > 29 && segments[29].Length > 0 ? TypeSerializer.Deserialize <CompositeQuantityWithUnits>(segments[29], false, seps) : null; WashTime = segments.Length > 30 && segments[30].Length > 0 ? TypeSerializer.Deserialize <CompositeQuantityWithUnits>(segments[30], false, seps) : null; InjectionRate = segments.Length > 31 && segments[31].Length > 0 ? TypeSerializer.Deserialize <CompositeQuantityWithUnits>(segments[31], false, seps) : null; ProcedureCode = segments.Length > 32 && segments[32].Length > 0 ? TypeSerializer.Deserialize <CodedWithNoExceptions>(segments[32], false, seps) : null; PatientIdentifierList = segments.Length > 33 && segments[33].Length > 0 ? segments[33].Split(seps.FieldRepeatSeparator, StringSplitOptions.None).Select(x => TypeSerializer.Deserialize <ExtendedCompositeIdWithCheckDigit>(x, false, seps)) : null; AttendingDoctor = segments.Length > 34 && segments[34].Length > 0 ? TypeSerializer.Deserialize <ExtendedCompositeIdNumberAndNameForPersons>(segments[34], false, seps) : null; DilutionFactor = segments.Length > 35 && segments[35].Length > 0 ? TypeSerializer.Deserialize <StructuredNumeric>(segments[35], false, seps) : null; FillTime = segments.Length > 36 && segments[36].Length > 0 ? TypeSerializer.Deserialize <CompositeQuantityWithUnits>(segments[36], false, seps) : null; InletTemperature = segments.Length > 37 && segments[37].Length > 0 ? TypeSerializer.Deserialize <CompositeQuantityWithUnits>(segments[37], false, seps) : null; }
public void ToDelimitedString_WithAllProperties_ReturnsCorrectlySequencedFields() { IType hl7Type = new CompositeQuantityWithUnits { Quantity = 1, Units = new CodedWithExceptions { Identifier = "2" } }; string expected = "1^2"; string actual = hl7Type.ToDelimitedString(); Assert.Equal(expected, actual); }
public void FromDelimitedString_WithAllProperties_ReturnsCorrectlyInitializedFields() { IType expected = new CompositeQuantityWithUnits { Quantity = 1, Units = new CodedWithExceptions { IsSubcomponent = true, Identifier = "2" } }; IType actual = new CompositeQuantityWithUnits(); actual.FromDelimitedString("1^2"); expected.Should().BeEquivalentTo(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)); } } BloodProductCode = segments.Length > 1 && segments[1].Length > 0 ? TypeSerializer.Deserialize <CodedWithExceptions>(segments[1], false, seps) : null; BloodAmount = segments.Length > 2 && segments[2].Length > 0 ? TypeSerializer.Deserialize <CompositeQuantityWithUnits>(segments[2], 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)); } } SetIdCdo = segments.Length > 1 && segments[1].Length > 0 ? segments[1].ToNullableUInt() : null; ActionCode = segments.Length > 2 && segments[2].Length > 0 ? segments[2] : null; CumulativeDosageLimit = segments.Length > 3 && segments[3].Length > 0 ? TypeSerializer.Deserialize <CompositeQuantityWithUnits>(segments[3], false, seps) : null; CumulativeDosageLimitTimeInterval = segments.Length > 4 && segments[4].Length > 0 ? TypeSerializer.Deserialize <CompositeQuantityWithUnits>(segments[4], 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)); } } RequestedGiveCode = segments.Length > 1 && segments[1].Length > 0 ? TypeSerializer.Deserialize <CodedElement>(segments[1], false, seps) : null; RequestedGiveAmountMinimum = segments.Length > 2 && segments[2].Length > 0 ? segments[2].ToNullableDecimal() : null; RequestedGiveAmountMaximum = segments.Length > 3 && segments[3].Length > 0 ? segments[3].ToNullableDecimal() : null; RequestedGiveUnits = segments.Length > 4 && segments[4].Length > 0 ? TypeSerializer.Deserialize <CodedElement>(segments[4], false, seps) : null; RequestedDosageForm = segments.Length > 5 && segments[5].Length > 0 ? TypeSerializer.Deserialize <CodedElement>(segments[5], false, seps) : null; ProvidersPharmacyTreatmentInstructions = segments.Length > 6 && segments[6].Length > 0 ? segments[6].Split(seps.FieldRepeatSeparator, StringSplitOptions.None).Select(x => TypeSerializer.Deserialize <CodedElement>(x, false, seps)) : null; ProvidersAdministrationInstructions = segments.Length > 7 && segments[7].Length > 0 ? segments[7].Split(seps.FieldRepeatSeparator, StringSplitOptions.None).Select(x => TypeSerializer.Deserialize <CodedElement>(x, false, seps)) : null; DeliverToLocation = segments.Length > 8 && segments[8].Length > 0 ? TypeSerializer.Deserialize <LocationWithAddressVariationOne>(segments[8], false, seps) : null; AllowSubstitutions = segments.Length > 9 && segments[9].Length > 0 ? segments[9] : null; RequestedDispenseCode = segments.Length > 10 && segments[10].Length > 0 ? TypeSerializer.Deserialize <CodedElement>(segments[10], false, seps) : null; RequestedDispenseAmount = segments.Length > 11 && segments[11].Length > 0 ? segments[11].ToNullableDecimal() : null; RequestedDispenseUnits = segments.Length > 12 && segments[12].Length > 0 ? TypeSerializer.Deserialize <CodedElement>(segments[12], false, seps) : null; NumberOfRefills = segments.Length > 13 && segments[13].Length > 0 ? segments[13].ToNullableDecimal() : null; OrderingProvidersDeaNumber = segments.Length > 14 && segments[14].Length > 0 ? segments[14].Split(seps.FieldRepeatSeparator, StringSplitOptions.None).Select(x => TypeSerializer.Deserialize <ExtendedCompositeIdNumberAndNameForPersons>(x, false, seps)) : null; PharmacistTreatmentSuppliersVerifierId = segments.Length > 15 && segments[15].Length > 0 ? segments[15].Split(seps.FieldRepeatSeparator, StringSplitOptions.None).Select(x => TypeSerializer.Deserialize <ExtendedCompositeIdNumberAndNameForPersons>(x, false, seps)) : null; NeedsHumanReview = segments.Length > 16 && segments[16].Length > 0 ? segments[16] : null; RequestedGivePerTimeUnit = segments.Length > 17 && segments[17].Length > 0 ? segments[17] : null; RequestedGiveStrength = segments.Length > 18 && segments[18].Length > 0 ? segments[18].ToNullableDecimal() : null; RequestedGiveStrengthUnits = segments.Length > 19 && segments[19].Length > 0 ? TypeSerializer.Deserialize <CodedElement>(segments[19], false, seps) : null; Indication = segments.Length > 20 && segments[20].Length > 0 ? segments[20].Split(seps.FieldRepeatSeparator, StringSplitOptions.None).Select(x => TypeSerializer.Deserialize <CodedElement>(x, false, seps)) : null; RequestedGiveRateAmount = segments.Length > 21 && segments[21].Length > 0 ? segments[21] : null; RequestedGiveRateUnits = segments.Length > 22 && segments[22].Length > 0 ? TypeSerializer.Deserialize <CodedElement>(segments[22], false, seps) : null; TotalDailyDose = segments.Length > 23 && segments[23].Length > 0 ? TypeSerializer.Deserialize <CompositeQuantityWithUnits>(segments[23], 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)); } } SubstanceIdentifier = segments.Length > 1 && segments[1].Length > 0 ? TypeSerializer.Deserialize <CodedWithExceptions>(segments[1], false, seps) : null; SubstanceStatus = segments.Length > 2 && segments[2].Length > 0 ? segments[2].Split(seps.FieldRepeatSeparator, StringSplitOptions.None).Select(x => TypeSerializer.Deserialize <CodedWithExceptions>(x, false, seps)) : null; SubstanceType = segments.Length > 3 && segments[3].Length > 0 ? TypeSerializer.Deserialize <CodedWithExceptions>(segments[3], false, seps) : null; InventoryContainerIdentifier = segments.Length > 4 && segments[4].Length > 0 ? TypeSerializer.Deserialize <CodedWithExceptions>(segments[4], false, seps) : null; ContainerCarrierIdentifier = segments.Length > 5 && segments[5].Length > 0 ? TypeSerializer.Deserialize <CodedWithExceptions>(segments[5], false, seps) : null; PositionOnCarrier = segments.Length > 6 && segments[6].Length > 0 ? TypeSerializer.Deserialize <CodedWithExceptions>(segments[6], false, seps) : null; InitialQuantity = segments.Length > 7 && segments[7].Length > 0 ? segments[7].ToNullableDecimal() : null; CurrentQuantity = segments.Length > 8 && segments[8].Length > 0 ? segments[8].ToNullableDecimal() : null; AvailableQuantity = segments.Length > 9 && segments[9].Length > 0 ? segments[9].ToNullableDecimal() : null; ConsumptionQuantity = segments.Length > 10 && segments[10].Length > 0 ? segments[10].ToNullableDecimal() : null; QuantityUnits = segments.Length > 11 && segments[11].Length > 0 ? TypeSerializer.Deserialize <CodedWithExceptions>(segments[11], false, seps) : null; ExpirationDateTime = segments.Length > 12 && segments[12].Length > 0 ? segments[12].ToNullableDateTime() : null; FirstUsedDateTime = segments.Length > 13 && segments[13].Length > 0 ? segments[13].ToNullableDateTime() : null; OnBoardStabilityDuration = segments.Length > 14 && segments[14].Length > 0 ? segments[14] : null; TestFluidIdentifiers = segments.Length > 15 && segments[15].Length > 0 ? segments[15].Split(seps.FieldRepeatSeparator, StringSplitOptions.None).Select(x => TypeSerializer.Deserialize <CodedWithExceptions>(x, false, seps)) : null; ManufacturerLotNumber = segments.Length > 16 && segments[16].Length > 0 ? segments[16] : null; ManufacturerIdentifier = segments.Length > 17 && segments[17].Length > 0 ? TypeSerializer.Deserialize <CodedWithExceptions>(segments[17], false, seps) : null; SupplierIdentifier = segments.Length > 18 && segments[18].Length > 0 ? TypeSerializer.Deserialize <CodedWithExceptions>(segments[18], false, seps) : null; OnBoardStabilityTime = segments.Length > 19 && segments[19].Length > 0 ? TypeSerializer.Deserialize <CompositeQuantityWithUnits>(segments[19], false, seps) : null; TargetValue = segments.Length > 20 && segments[20].Length > 0 ? TypeSerializer.Deserialize <CompositeQuantityWithUnits>(segments[20], false, seps) : null; EquipmentStateIndicatorTypeCode = segments.Length > 21 && segments[21].Length > 0 ? TypeSerializer.Deserialize <CodedWithExceptions>(segments[21], false, seps) : null; EquipmentStateIndicatorValue = segments.Length > 22 && segments[22].Length > 0 ? TypeSerializer.Deserialize <CompositeQuantityWithUnits>(segments[22], false, seps) : null; }