public void FromDelimitedString_WithAllProperties_ReturnsCorrectlyInitializedFields()
        {
            IType expected = new CompositePrice
            {
                Price = new Money
                {
                    IsSubcomponent = true,
                    Quantity       = 1
                },
                PriceType  = "2",
                FromValue  = 3,
                ToValue    = 4,
                RangeUnits = new CodedWithExceptions
                {
                    IsSubcomponent = true,
                    Identifier     = "5"
                },
                RangeType = "6"
            };

            IType actual = new CompositePrice();

            actual.FromDelimitedString("1^2^3^4^5^6");

            expected.Should().BeEquivalentTo(actual);
        }
예제 #2
0
        /// <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));
                }
            }

            SetIdPce = segments.Length > 1 && segments[1].Length > 0 ? segments[1].ToNullableUInt() : null;
            CostCenterAccountNumber = segments.Length > 2 && segments[2].Length > 0 ? TypeSerializer.Deserialize <ExtendedCompositeIdWithCheckDigit>(segments[2], false, seps) : null;
            TransactionCode         = segments.Length > 3 && segments[3].Length > 0 ? TypeSerializer.Deserialize <CodedWithExceptions>(segments[3], false, seps) : null;
            TransactionAmountUnit   = segments.Length > 4 && segments[4].Length > 0 ? TypeSerializer.Deserialize <CompositePrice>(segments[4], false, seps) : null;
        }
예제 #3
0
        /// <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));
                }
            }

            TypeOfBillCode = segments.Length > 1 && segments[1].Length > 0 ? TypeSerializer.Deserialize<CodedWithExceptions>(segments[1], false, seps) : null;
            RevenueCode = segments.Length > 2 && segments[2].Length > 0 ? segments[2].Split(seps.FieldRepeatSeparator, StringSplitOptions.None).Select(x => TypeSerializer.Deserialize<CodedWithExceptions>(x, false, seps)) : null;
            OverallClaimDispositionCode = segments.Length > 3 && segments[3].Length > 0 ? TypeSerializer.Deserialize<CodedWithExceptions>(segments[3], false, seps) : null;
            OceEditsPerVisitCode = segments.Length > 4 && segments[4].Length > 0 ? segments[4].Split(seps.FieldRepeatSeparator, StringSplitOptions.None).Select(x => TypeSerializer.Deserialize<CodedWithExceptions>(x, false, seps)) : null;
            OutlierCost = segments.Length > 5 && segments[5].Length > 0 ? TypeSerializer.Deserialize<CompositePrice>(segments[5], false, seps) : null;
        }
        public void ToDelimitedString_WithAllProperties_ReturnsCorrectlySequencedFields()
        {
            IType hl7Type = new CompositePrice
            {
                Price = new Money
                {
                    Quantity = 1
                },
                PriceType  = "2",
                FromValue  = 3,
                ToValue    = 4,
                RangeUnits = new CodedWithExceptions
                {
                    Identifier = "5"
                },
                RangeType = "6"
            };

            string expected = "1^2^3^4^5^6";
            string actual   = hl7Type.ToDelimitedString();

            Assert.Equal(expected, actual);
        }
예제 #5
0
        /// <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));
                }
            }

            InsuredsEmployeeId           = segments.Length > 1 && segments[1].Length > 0 ? segments[1].Split(seps.FieldRepeatSeparator, StringSplitOptions.None).Select(x => TypeSerializer.Deserialize <ExtendedCompositeIdWithCheckDigit>(x, false, seps)) : null;
            InsuredsSocialSecurityNumber = segments.Length > 2 && segments[2].Length > 0 ? segments[2] : null;
            InsuredsEmployersNameAndId   = segments.Length > 3 && segments[3].Length > 0 ? segments[3].Split(seps.FieldRepeatSeparator, StringSplitOptions.None).Select(x => TypeSerializer.Deserialize <ExtendedCompositeIdNumberAndNameForPersons>(x, false, seps)) : null;
            EmployerInformationData      = segments.Length > 4 && segments[4].Length > 0 ? TypeSerializer.Deserialize <CodedWithExceptions>(segments[4], false, seps) : null;
            MailClaimParty = segments.Length > 5 && segments[5].Length > 0 ? segments[5].Split(seps.FieldRepeatSeparator, StringSplitOptions.None).Select(x => TypeSerializer.Deserialize <CodedWithExceptions>(x, false, seps)) : null;
            MedicareHealthInsCardNumber  = segments.Length > 6 && segments[6].Length > 0 ? segments[6] : null;
            MedicaidCaseName             = segments.Length > 7 && segments[7].Length > 0 ? segments[7].Split(seps.FieldRepeatSeparator, StringSplitOptions.None).Select(x => TypeSerializer.Deserialize <ExtendedPersonName>(x, false, seps)) : null;
            MedicaidCaseNumber           = segments.Length > 8 && segments[8].Length > 0 ? segments[8] : null;
            MilitarySponsorName          = segments.Length > 9 && segments[9].Length > 0 ? segments[9].Split(seps.FieldRepeatSeparator, StringSplitOptions.None).Select(x => TypeSerializer.Deserialize <ExtendedPersonName>(x, false, seps)) : null;
            MilitaryIdNumber             = segments.Length > 10 && segments[10].Length > 0 ? segments[10] : null;
            DependentOfMilitaryRecipient = segments.Length > 11 && segments[11].Length > 0 ? TypeSerializer.Deserialize <CodedWithExceptions>(segments[11], false, seps) : null;
            MilitaryOrganization         = segments.Length > 12 && segments[12].Length > 0 ? segments[12] : null;
            MilitaryStation            = segments.Length > 13 && segments[13].Length > 0 ? segments[13] : null;
            MilitaryService            = segments.Length > 14 && segments[14].Length > 0 ? TypeSerializer.Deserialize <CodedWithExceptions>(segments[14], false, seps) : null;
            MilitaryRankGrade          = segments.Length > 15 && segments[15].Length > 0 ? TypeSerializer.Deserialize <CodedWithExceptions>(segments[15], false, seps) : null;
            MilitaryStatus             = segments.Length > 16 && segments[16].Length > 0 ? TypeSerializer.Deserialize <CodedWithExceptions>(segments[16], false, seps) : null;
            MilitaryRetireDate         = segments.Length > 17 && segments[17].Length > 0 ? segments[17].ToNullableDateTime() : null;
            MilitaryNonAvailCertOnFile = segments.Length > 18 && segments[18].Length > 0 ? segments[18] : null;
            BabyCoverage                 = segments.Length > 19 && segments[19].Length > 0 ? segments[19] : null;
            CombineBabyBill              = segments.Length > 20 && segments[20].Length > 0 ? segments[20] : null;
            BloodDeductible              = segments.Length > 21 && segments[21].Length > 0 ? segments[21] : null;
            SpecialCoverageApprovalName  = segments.Length > 22 && segments[22].Length > 0 ? segments[22].Split(seps.FieldRepeatSeparator, StringSplitOptions.None).Select(x => TypeSerializer.Deserialize <ExtendedPersonName>(x, false, seps)) : null;
            SpecialCoverageApprovalTitle = segments.Length > 23 && segments[23].Length > 0 ? segments[23] : null;
            NonCoveredInsuranceCode      = segments.Length > 24 && segments[24].Length > 0 ? segments[24].Split(seps.FieldRepeatSeparator, StringSplitOptions.None).Select(x => TypeSerializer.Deserialize <CodedWithExceptions>(x, false, seps)) : null;
            PayorId                              = segments.Length > 25 && segments[25].Length > 0 ? segments[25].Split(seps.FieldRepeatSeparator, StringSplitOptions.None).Select(x => TypeSerializer.Deserialize <ExtendedCompositeIdWithCheckDigit>(x, false, seps)) : null;
            PayorSubscriberId                    = segments.Length > 26 && segments[26].Length > 0 ? segments[26].Split(seps.FieldRepeatSeparator, StringSplitOptions.None).Select(x => TypeSerializer.Deserialize <ExtendedCompositeIdWithCheckDigit>(x, false, seps)) : null;
            EligibilitySource                    = segments.Length > 27 && segments[27].Length > 0 ? TypeSerializer.Deserialize <CodedWithExceptions>(segments[27], false, seps) : null;
            RoomCoverageTypeAmount               = segments.Length > 28 && segments[28].Length > 0 ? segments[28].Split(seps.FieldRepeatSeparator, StringSplitOptions.None).Select(x => TypeSerializer.Deserialize <RoomCoverage>(x, false, seps)) : null;
            PolicyTypeAmount                     = segments.Length > 29 && segments[29].Length > 0 ? segments[29].Split(seps.FieldRepeatSeparator, StringSplitOptions.None).Select(x => TypeSerializer.Deserialize <PolicyTypeAndAmount>(x, false, seps)) : null;
            DailyDeductible                      = segments.Length > 30 && segments[30].Length > 0 ? TypeSerializer.Deserialize <DailyDeductibleInformation>(segments[30], false, seps) : null;
            LivingDependency                     = segments.Length > 31 && segments[31].Length > 0 ? TypeSerializer.Deserialize <CodedWithExceptions>(segments[31], false, seps) : null;
            AmbulatoryStatus                     = segments.Length > 32 && segments[32].Length > 0 ? segments[32].Split(seps.FieldRepeatSeparator, StringSplitOptions.None).Select(x => TypeSerializer.Deserialize <CodedWithExceptions>(x, false, seps)) : null;
            Citizenship                          = segments.Length > 33 && segments[33].Length > 0 ? segments[33].Split(seps.FieldRepeatSeparator, StringSplitOptions.None).Select(x => TypeSerializer.Deserialize <CodedWithExceptions>(x, false, seps)) : null;
            PrimaryLanguage                      = segments.Length > 34 && segments[34].Length > 0 ? TypeSerializer.Deserialize <CodedWithExceptions>(segments[34], false, seps) : null;
            LivingArrangement                    = segments.Length > 35 && segments[35].Length > 0 ? TypeSerializer.Deserialize <CodedWithExceptions>(segments[35], false, seps) : null;
            PublicityCode                        = segments.Length > 36 && segments[36].Length > 0 ? TypeSerializer.Deserialize <CodedWithExceptions>(segments[36], false, seps) : null;
            ProtectionIndicator                  = segments.Length > 37 && segments[37].Length > 0 ? segments[37] : null;
            StudentIndicator                     = segments.Length > 38 && segments[38].Length > 0 ? TypeSerializer.Deserialize <CodedWithExceptions>(segments[38], false, seps) : null;
            Religion                             = segments.Length > 39 && segments[39].Length > 0 ? TypeSerializer.Deserialize <CodedWithExceptions>(segments[39], false, seps) : null;
            MothersMaidenName                    = segments.Length > 40 && segments[40].Length > 0 ? segments[40].Split(seps.FieldRepeatSeparator, StringSplitOptions.None).Select(x => TypeSerializer.Deserialize <ExtendedPersonName>(x, false, seps)) : null;
            Nationality                          = segments.Length > 41 && segments[41].Length > 0 ? TypeSerializer.Deserialize <CodedWithExceptions>(segments[41], false, seps) : null;
            EthnicGroup                          = segments.Length > 42 && segments[42].Length > 0 ? segments[42].Split(seps.FieldRepeatSeparator, StringSplitOptions.None).Select(x => TypeSerializer.Deserialize <CodedWithExceptions>(x, false, seps)) : null;
            MaritalStatus                        = segments.Length > 43 && segments[43].Length > 0 ? segments[43].Split(seps.FieldRepeatSeparator, StringSplitOptions.None).Select(x => TypeSerializer.Deserialize <CodedWithExceptions>(x, false, seps)) : null;
            InsuredsEmploymentStartDate          = segments.Length > 44 && segments[44].Length > 0 ? segments[44].ToNullableDateTime() : null;
            EmploymentStopDate                   = segments.Length > 45 && segments[45].Length > 0 ? segments[45].ToNullableDateTime() : null;
            JobTitle                             = segments.Length > 46 && segments[46].Length > 0 ? segments[46] : null;
            JobCodeClass                         = segments.Length > 47 && segments[47].Length > 0 ? TypeSerializer.Deserialize <JobCodeClass>(segments[47], false, seps) : null;
            JobStatus                            = segments.Length > 48 && segments[48].Length > 0 ? TypeSerializer.Deserialize <CodedWithExceptions>(segments[48], false, seps) : null;
            EmployerContactPersonName            = segments.Length > 49 && segments[49].Length > 0 ? segments[49].Split(seps.FieldRepeatSeparator, StringSplitOptions.None).Select(x => TypeSerializer.Deserialize <ExtendedPersonName>(x, false, seps)) : null;
            EmployerContactPersonPhoneNumber     = segments.Length > 50 && segments[50].Length > 0 ? segments[50].Split(seps.FieldRepeatSeparator, StringSplitOptions.None).Select(x => TypeSerializer.Deserialize <ExtendedTelecommunicationNumber>(x, false, seps)) : null;
            EmployerContactReason                = segments.Length > 51 && segments[51].Length > 0 ? TypeSerializer.Deserialize <CodedWithExceptions>(segments[51], false, seps) : null;
            InsuredsContactPersonsName           = segments.Length > 52 && segments[52].Length > 0 ? segments[52].Split(seps.FieldRepeatSeparator, StringSplitOptions.None).Select(x => TypeSerializer.Deserialize <ExtendedPersonName>(x, false, seps)) : null;
            InsuredsContactPersonPhoneNumber     = segments.Length > 53 && segments[53].Length > 0 ? segments[53].Split(seps.FieldRepeatSeparator, StringSplitOptions.None).Select(x => TypeSerializer.Deserialize <ExtendedTelecommunicationNumber>(x, false, seps)) : null;
            InsuredsContactPersonReason          = segments.Length > 54 && segments[54].Length > 0 ? segments[54].Split(seps.FieldRepeatSeparator, StringSplitOptions.None).Select(x => TypeSerializer.Deserialize <CodedWithExceptions>(x, false, seps)) : null;
            RelationshipToThePatientStartDate    = segments.Length > 55 && segments[55].Length > 0 ? segments[55].ToNullableDateTime() : null;
            RelationshipToThePatientStopDate     = segments.Length > 56 && segments[56].Length > 0 ? segments[56].Split(seps.FieldRepeatSeparator, StringSplitOptions.None).Select(x => x.ToDateTime()) : null;
            InsuranceCoContactReason             = segments.Length > 57 && segments[57].Length > 0 ? TypeSerializer.Deserialize <CodedWithExceptions>(segments[57], false, seps) : null;
            InsuranceCoContactPhoneNumber        = segments.Length > 58 && segments[58].Length > 0 ? segments[58].Split(seps.FieldRepeatSeparator, StringSplitOptions.None).Select(x => TypeSerializer.Deserialize <ExtendedTelecommunicationNumber>(x, false, seps)) : null;
            PolicyScope                          = segments.Length > 59 && segments[59].Length > 0 ? TypeSerializer.Deserialize <CodedWithExceptions>(segments[59], false, seps) : null;
            PolicySource                         = segments.Length > 60 && segments[60].Length > 0 ? TypeSerializer.Deserialize <CodedWithExceptions>(segments[60], false, seps) : null;
            PatientMemberNumber                  = segments.Length > 61 && segments[61].Length > 0 ? TypeSerializer.Deserialize <ExtendedCompositeIdWithCheckDigit>(segments[61], false, seps) : null;
            GuarantorsRelationshipToInsured      = segments.Length > 62 && segments[62].Length > 0 ? TypeSerializer.Deserialize <CodedWithExceptions>(segments[62], false, seps) : null;
            InsuredsPhoneNumberHome              = segments.Length > 63 && segments[63].Length > 0 ? segments[63].Split(seps.FieldRepeatSeparator, StringSplitOptions.None).Select(x => TypeSerializer.Deserialize <ExtendedTelecommunicationNumber>(x, false, seps)) : null;
            InsuredsEmployerPhoneNumber          = segments.Length > 64 && segments[64].Length > 0 ? segments[64].Split(seps.FieldRepeatSeparator, StringSplitOptions.None).Select(x => TypeSerializer.Deserialize <ExtendedTelecommunicationNumber>(x, false, seps)) : null;
            MilitaryHandicappedProgram           = segments.Length > 65 && segments[65].Length > 0 ? TypeSerializer.Deserialize <CodedWithExceptions>(segments[65], false, seps) : null;
            SuspendFlag                          = segments.Length > 66 && segments[66].Length > 0 ? segments[66] : null;
            CopayLimitFlag                       = segments.Length > 67 && segments[67].Length > 0 ? segments[67] : null;
            StoplossLimitFlag                    = segments.Length > 68 && segments[68].Length > 0 ? segments[68] : null;
            InsuredOrganizationNameAndId         = segments.Length > 69 && segments[69].Length > 0 ? segments[69].Split(seps.FieldRepeatSeparator, StringSplitOptions.None).Select(x => TypeSerializer.Deserialize <ExtendedCompositeNameAndIdNumberForOrganizations>(x, false, seps)) : null;
            InsuredEmployerOrganizationNameAndId = segments.Length > 70 && segments[70].Length > 0 ? segments[70].Split(seps.FieldRepeatSeparator, StringSplitOptions.None).Select(x => TypeSerializer.Deserialize <ExtendedCompositeNameAndIdNumberForOrganizations>(x, false, seps)) : null;
            Race = segments.Length > 71 && segments[71].Length > 0 ? segments[71].Split(seps.FieldRepeatSeparator, StringSplitOptions.None).Select(x => TypeSerializer.Deserialize <CodedWithExceptions>(x, false, seps)) : null;
            PatientsRelationshipToInsured = segments.Length > 72 ? TypeSerializer.Deserialize <CodedWithExceptions>(segments[72], false, seps) : null;
            CoPayAmount = segments.Length > 73 ? TypeSerializer.Deserialize <CompositePrice>(segments[73], false, seps) : null;
        }